| undefined {\n return this.plugins[id];\n }\n\n /**\n * Returns object with all plugins\n */\n getAll() {\n return this.plugins;\n }\n}\n","/**\n * File made for IE/Edge support\n * https://github.com/GrapesJS/grapesjs/issues/214\n */\nimport { hasWin } from './mixins';\n\nexport default () => {\n /**\n * Check if IE/Edge\n * @return {Boolean}\n */\n const isIE = () => {\n let match;\n const agent = window.navigator.userAgent;\n const rules: [string, RegExp][] = [\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n match = rule[1].exec(agent);\n if (match) break;\n }\n\n return !!match;\n };\n\n if (hasWin() && isIE()) {\n const originalCreateHTMLDocument = DOMImplementation.prototype.createHTMLDocument;\n DOMImplementation.prototype.createHTMLDocument = title => {\n if (!title) title = '';\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\n };\n }\n};\n","import { isElement } from 'underscore';\nimport Editor from './editor';\nimport { EditorConfig } from './editor/config/config';\nimport PluginManager, { Plugin, getPlugin, logPluginWarn } from './plugin_manager';\nimport $ from './utils/cash-dom';\nimport polyfills from './utils/polyfills';\n\ninterface InitEditorConfig extends EditorConfig {\n grapesjs?: typeof GrapesJS;\n}\n\npolyfills();\n\nconst plugins = new PluginManager();\nconst editors: Editor[] = [];\n\nexport const usePlugin = | string>(plugin: P, opts?: P extends Plugin ? C : {}) => {\n let pluginResult = getPlugin(plugin, plugins);\n\n return (editor: Editor) => {\n if (pluginResult) {\n pluginResult(editor, opts || {});\n } else {\n logPluginWarn(editor, plugin as string);\n }\n };\n};\n\nconst GrapesJS = {\n $,\n\n editors,\n\n plugins,\n\n // @ts-ignore Will be replaced on build\n version: __GJS_VERSION__,\n\n /**\n * Initialize the editor with passed options\n * @param {Object} config Configuration object\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\n * @param {Boolean} [config.headless=false] Init headless editor\n * @return {Editor} Editor instance\n * @example\n * var editor = grapesjs.init({\n * container: '#myeditor',\n * components: 'Hello world',\n * style: '.hello{color: red}',\n * })\n */\n init(config: EditorConfig = {}) {\n const { headless } = config;\n const els = config.container;\n if (!els && !headless) throw new Error(\"'container' is required\");\n const initConfig: InitEditorConfig = {\n autorender: true,\n plugins: [],\n pluginsOpts: {},\n ...config,\n grapesjs: this,\n el: headless ? undefined : isElement(els) ? els : (document.querySelector(els!) as HTMLElement),\n };\n const editor = new Editor(initConfig, { $ });\n const em = editor.getModel();\n\n // Load plugins\n initConfig.plugins!.forEach(pluginId => {\n const plugin = getPlugin(pluginId, plugins);\n const plgOptions = initConfig.pluginsOpts![pluginId as string] || {};\n\n if (plugin) {\n plugin(editor, plgOptions);\n } else {\n logPluginWarn(editor, pluginId as string);\n }\n });\n\n // Execute `onLoad` on modules once all plugins are initialized.\n // A plugin might have extended/added some custom type so this\n // is a good point to load stuff like components, css rules, etc.\n em.loadOnStart();\n initConfig.autorender && !headless && editor.render();\n editors.push(editor);\n\n return editor;\n },\n};\n\n// Exports for TS\nexport type { default as Asset } from './asset_manager/model/Asset';\nexport type { default as Assets } from './asset_manager/model/Assets';\nexport type { default as Block } from './block_manager/model/Block';\nexport type { default as Blocks } from './block_manager/model/Blocks';\nexport type { default as Categories } from './block_manager/model/Categories';\nexport type { default as Category } from './block_manager/model/Category';\nexport type { default as Canvas } from './canvas/model/Canvas';\nexport type { default as Frame } from './canvas/model/Frame';\nexport type { default as Frames } from './canvas/model/Frames';\nexport type { default as CssRule } from './css_composer/model/CssRule';\nexport type { default as CssRules } from './css_composer/model/CssRules';\nexport type { default as Device } from './device_manager/model/Device';\nexport type { default as Devices } from './device_manager/model/Devices';\nexport type { default as ComponentManager } from './dom_components';\nexport type { default as Component } from './dom_components/model/Component';\nexport type { default as Components } from './dom_components/model/Components';\nexport type { default as ComponentView } from './dom_components/view/ComponentView';\nexport type { default as Editor } from './editor';\nexport type { default as Modal } from './modal_dialog/model/Modal';\nexport type { default as Page } from './pages/model/Page';\nexport type { default as Pages } from './pages/model/Pages';\nexport type { default as Button } from './panels/model/Button';\nexport type { default as Buttons } from './panels/model/Buttons';\nexport type { default as Panel } from './panels/model/Panel';\nexport type { default as Panels } from './panels/model/Panels';\nexport type { default as Selector } from './selector_manager/model/Selector';\nexport type { default as Selectors } from './selector_manager/model/Selectors';\nexport type { default as State } from './selector_manager/model/State';\nexport type { default as Properties } from './style_manager/model/Properties';\nexport type { default as Property } from './style_manager/model/Property';\nexport type { default as Trait } from './trait_manager/model/Trait';\nexport type { default as Traits } from './trait_manager/model/Traits';\n\nexport default GrapesJS;\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","_","Backbone","core_slice","Array","prototype","slice","apply","fn","ctx","args","length","call","arr","index","hasKeys","obj","keys","isArray","arguments","all","key","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","which","objects","i","l","objectRegistry","register","unregister","isFunction","actionUndoRedo","action","type","undoTypes","object","before","after","options","managerUndoRedo","manager","stack","magic","everything","isCurrentlyUndoRedoing","pointer","actions","isUndo","clone","models","at","where","get","pop","shift","trigger","validateUndoActionCreation","undoTypesType","condition","addToStack","track","res","diff","add","maximumStackLength","isRegistered","cid","contains","push","splice","indexOf","map","concat","UndoTypes","collection","ignore","model","remove","undefined","isEmpty","each","unset","set","unsetData","afterAttributes","changedAttributes","keysAfter","previousAttributes","pick","keysPrevious","val","reset","previousModels","OwnedUndoTypes","manipulateUndoType","manipType","undoType","fns","undoTypesInstance","isObject","extend","Action","Model","defaults","undo","attributes","redo","UndoStack","Collection","Infinity","setMaxLength","UndoManager","initialize","attr","on","value","startTracking","isArguments","stopTracking","isTracking","_addToStack","unregisterAll","undoAll","redoAll","isAvailable","s","merge","undoManager","addUndoType","changeUndoType","removeUndoType","clear","defaultAttributes","self","g","global","$","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","_listening","Events","eventSplitter","eventsApi","iteratee","events","name","callback","opts","names","context","test","split","_events","onApi","listening","_listeners","id","interop","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","Listening","error","tryCatchOn","handlers","count","e","off","offApi","listeners","stopListening","ids","remaining","j","handler","_callback","cleanup","once","onceMap","bind","listenToOnce","offer","Math","max","triggerApi","objEvents","allEvents","triggerEvents","ev","a1","a2","a3","listener","unbind","attrs","preinitialize","cidPrefix","parse","result","changed","validationError","idAttribute","toJSON","sync","escape","has","matches","_validate","silent","changes","changing","_changing","_previousAttributes","current","prev","isEqual","prevId","_pending","hasChanged","old","previous","fetch","success","resp","serverAttrs","wrapError","save","wait","validate","method","isNew","patch","xhr","destroy","url","base","urlError","replace","encodeURIComponent","constructor","isValid","comparator","_reset","setOptions","addOptions","array","insert","min","tail","singular","removed","_removeModels","added","merged","_isModel","toAdd","toMerge","toRemove","modelMap","sort","sortable","sortAttr","isString","existing","_prepareModel","_addReference","orderChanged","some","m","_removeReference","unshift","_byId","modelId","first","findWhere","Error","sortBy","pluck","create","callbackOpts","values","CollectionIterator","ITERATOR_VALUES","ITERATOR_KEYS","entries","ITERATOR_KEYSVALUES","_onModelEvent","event","$$iterator","Symbol","iterator","kind","_collection","_kind","_index","next","done","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","find","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","undelegate","_createElement","document","createElement","className","_setAttributes","addMethod","attribute","cb","defaultVal","addUnderscoreMethods","Class","methods","instance","modelMatcher","matcher","collectionMethods","forEach","collect","reduce","foldl","inject","reduceRight","foldr","detect","filter","select","reject","every","any","include","includes","invoke","toArray","size","head","take","initial","rest","drop","last","without","difference","shuffle","lastIndexOf","chain","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","modelMethods","pairs","invert","omit","config","Base","mixin","mappings","functions","memo","methodMap","params","dataType","data","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","param","decodeURIComponent","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","path","charAt","getFragment","_usePushState","_wantsHashChange","start","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","hash","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","decodedFragment","title","assign","_updateHash","protoProps","staticProps","child","parent","__super__","CodeMirror","extendMode","commentStart","commentEnd","newlineAfterToken","_type","content","textAfter","state","jsonMode","lexical","inlineElements","inline","configuration","defineExtension","isComment","from","to","cm","curMode","innerMode","getMode","getTokenAt","mode","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","substr","substring","cmInstance","indentLine","outer","text","copyState","tabSize","getOption","out","lines","atSol","newline","stream","StringStream","eol","inner","token","cur","pos","string","blankLine","end","setSelection","getCursor","mod","userAgent","navigator","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","chrome_version","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","Number","flipCtrlCmd","captureRightClick","classTest","cls","range","rmClass","node","removeChildren","childNodes","removeChildrenAndAdd","appendChild","elt","tag","cssText","createTextNode","eltP","setAttribute","nodeType","parentNode","host","activeElt","activeElement","shadowRoot","addClass","joinClasses","a","b","as","createRange","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","f","copyObj","target","overwrite","prop","hasOwnProperty","countColumn","startValue","search","n","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","setTimeout","ms","clearTimeout","scrollerGap","Pass","toString","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","score","priority","nothing","createObj","props","inst","Object","nonASCIISingleCaseWordChar","isWordCharBasic","toUpperCase","toLowerCase","isWordChar","helper","source","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","str","dir","findFirst","pred","midF","mid","ceil","floor","iterateBidiSections","order","found","part","level","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","code","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","direction","outerType","len","types","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","reverse","getOrder","noHandlers","emitter","_handlers","getHandlers","signal","signalDOMEvent","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","offsetHeight","offsetWidth","hasBadBidiRects","txt","r0","getBoundingClientRect","r1","left","right","splitLinesAuto","nl","rt","hasSelection","getSelection","te","ownerDocument","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","abs","modes","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","properties","nstate","info","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","doc","chunk","children","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","height","lineNo","no","lineAtHeight","h","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","loop","o","overlay","overlays","i_end","opaque","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","change","full","oldFirst","oldLast","sameLine","offset","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","removeReadOnlyRanges","markers","mark","readOnly","parts","mk","p","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","d","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","cache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","startStyle","endStyle","css","displayText","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","input","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","hidden","buildViewArray","nextPos","view","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","group","callbacks","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","list","fireOrphanDelayed","delayed","updateLineForChanges","dims","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","zIndex","updateLineBackground","background","wrap","getLineContent","ext","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","position","marginLeft","widgetHeight","parentStyle","gutters","wrapper","clientWidth","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","parseInt","paddingRight","isNaN","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","ensureLineHeights","rect","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","bottom","top","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","documentElement","scrollLeft","pageScrollY","marginTop","pageYOffset","scrollTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","box","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","ref","closestDist","endX","dist","textHeight","anchor","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","customCursor","$customCursor","sel","ranges","primIndex","empty","drawSelectionCursor","showCursorWhenSelecting","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","defaultCharWidth","otherCursor","cmpCoords","padding","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","blinker","cursorDiv","visibility","cursorBlinkRate","hasFocus","onBlur","ensureFocus","focus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollIntoView","scrollPosIntoView","margin","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","elementFromPoint","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","force","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","marginBottom","borderRightWidth","selectionSnapshot","active","anchorNode","anchorOffset","focusNode","focusOffset","restoreSelection","snapshot","nodeName","removeAllRanges","addRange","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","comp","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","draggable","wheelDX","wheelDY","activeTouch","init","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","onScrollWheel","chromeScrollHack","pointerEvents","pixelsPerUnit","deltaMode","deltaX","deltaY","canScrollX","canScrollY","pixels","movedX","movedY","Selection","equals","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","v","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","addLineWidget","insertAt","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","cloneNode","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","getValue","join","lineSeparator","setValue","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","t","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","onDragStart","setData","effectAllowed","setDragImage","img","_top","onDragOver","frag","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","fromCharCode","keyMap","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","up","onKeyUp","onKeyPress","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","compare","onMouseDown","supportsTouch","clickInGutter","repeat","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","option","unit","addNew","moveOnDrag","contained","behavior","dragDrop","leftButtonStartDrag","leftButtonSelect","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","bidiSimplify","editorSize","counter","curCount","move","buttons","anchorLine","boundary","headIndex","usePart","gutterEvent","prevent","mX","mY","touches","lineBox","contextMenuInGutter","themeChanged","theme","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","spellcheck","autocorrect","autocapitalize","detach","attach","wrappingChanged","integer","blur","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","toggle","enter","over","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","pageX","pageY","inp","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","inserted","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","border","addEditorMethods","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","amount","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","check","scrollTo","getScrollInfo","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","textContent","nodeValue","domToPos","lineNode","locateNodeInLineView","textNode","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","contentEditable","updateFromDOM","readFromDOMSoon","forceCompositionEnd","label","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","fromTextArea","textarea","tabindex","placeholder","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","offsetParent","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","disabled","dontDelegate","func","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","states","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","script","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","html","htmlState","inTag","endTagA","endTag","localState","localMode","local","statementIndent","jsonldMode","jsonld","json","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","cont","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","cc","marked","expression","statement","lex","inList","block","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","property","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","firstChar","c","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","setStyle","inText","parser","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","run","ed","DomComponents","CssComposer","bindAll","editor","canvasModel","canvas","getCanvasView","toggleMove","disableDragger","getKeyChar","stopCommand","enableDragger","toggleDragger","enable","em","dragger","methodCls","getCanvas","classList","ppfx","getPosition","setPosition","onStart","onDrag","onEnd","methodEv","methodsEv","defineCommand","def","pfx","stylePrefix","pStylePrefix","hoverClass","badgeClass","plhClass","freezClass","Canvas","onFrameScroll","getElement","getCanvasBody","getBody","getCanvasTools","getToolsEl","callRun","abort","sender","callStop","Commands","toSelect","components","component","getSelectedAll","Boolean","logWarning","evName","getEl","guidesStatic","guidesTarget","setupGuides","getModel","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","toggleDrag","getEventOpts","guides","item","guide","guidesEl","getConfig","elInfoX","elInfoY","guideContent","innerHTML","getGlobalToolsEl","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","debounce","updateGuides","debug","renderGuide","getElementGuides","lastEl","getElementPos","getGuidePosUpdate","originRect","un","guideSize","numEl","noScroll","getTranslate","transform","itemStr","trim","parseFloat","setTranslate","getStyle","__p","styleUp","addStyle","avoidStore","Styles","__emitCmpStyleUpdate","getSelected","_getDragData","center","relPos","parentRel","pStyle","getMouseRelativeCanvas","offsetP","guidesInfo","renderGuideInfo","hideGuidesInfo","rectOrigin","isUndefined","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","sizeRaw","matched","coll","snd","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","wrp","findType","rules","getAll","rule","mouseover","startDelete","mouseout","stopDelete","click","onDelete","$this","attachBadge","removeClass","badge","removeBadge","clean","updateBadgeLabel","getName","modal","Modal","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","append","textViewCode","setContent","getHtml","optsHtml","getCss","optsCss","codeName","codeMirror","getViewer","EditorView","isEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","disable","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","targetEl","isElement","getContainer","noSelClass","getBadgeEl","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","drag","cacheEl","startSelectPosition","frameEl","contentDocument","sorter","onEndMove","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","onEndMoveFromModel","initSorterFromModels","lastModel","frame","toMove","onMoveClb","onSelect","endMove","$badge","getBadge","$hl","getHighlighter","am","custom","__customData","onceClose","AssetManager","accept","modalTitle","setTarget","onClick","onDblClick","__behaviour","rendered","__trgCustom","assets","uploadEl","bm","appendTo","firstRender","pn","Panels","getPanel","addPanel","Blocks","lm","LayerManager","lmConfig","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","sm","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","hide","panelC","Config","tm","TraitManager","confTm","toggleTm","clp","lastSelected","addOpts","pasteable","cop","Components","canMove","emitUpdate","cmdOutline","getPanels","preventDrag","tglEffects","mthEv","tlb","getToolbarEl","elP","querySelectorAll","shouldRunSwVisibility","isActive","stopDefault","editorEl","onclick","canvasS","runCommand","runDefault","canvasView","getResizerEl","prefix","posFetcher","mousePosFetcher","getMouseRelativePos","canvasResizer","forceNew","Utils","Resizer","command","Toolbar","mousedown","handleClick","getFrameEl","Editor","onRender","DomainViews","ToolbarView","itemView","showOffsets","frameOff","canvasOff","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","getFrames","win","getWindow","onHover","onOut","trg","getViewEl","frameView","_getFrame","currentDoc","setHovered","useValid","updateLocalPos","views","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","elPos","hideElementOffset","showFixedElementOffset","hideFixedElementOffset","hideHighlighter","opacity","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","customBadgeLabel","badgeLabel","bStyle","getTargetToElementFixed","leftOff","showHighlighter","elem","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","toggleFramesEvents","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","unitHeight","getUnitFromValue","unitWidth","onMove","updateTarget","store","selectedHandler","onlyHeight","onlyWidth","bodyw","getDragMode","finalStyle","updateToolbar","toolbarEl","toolbarStyle","toolbar","showToolbar","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","showOffsetsSelected","toolsEl","canvasRectOffset","topOff","_trgToolUp","targetToElem","canvasOffsetTop","canvasOffsetLeft","refreshCanvas","hideBadge","cleanPrevious","status","hasWin","preserveSelected","setSelected","isPointed","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","wmargin","nested","canvasRelative","scale","getZoomDecimal","startSort","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","isLast","getOffsetMethod","zoom","isTextNode","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","stateLow","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginRightSt","marginRight","marginTopSt","marginBottomSt","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","padBot","padSideH","padSideT","padRight","toggleVis","cv","mth","_upFrame","_onFramesChange","frames","autoAdd","itemsView","itemType","reuseView","addTo","items","itemViewNotFound","ns","warn","typeField","clearItems","onRemoveBefore","onRemove","xyArr","snapOffset","lastScroll","lastScrollDiff","startPointer","startPosition","globScrollDiff","currentPointer","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","actualScroll","scrollDiff","getPointerPos","getStartPosition","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","co","deltaPre","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","cancelled","isEscKey","xPos","yPos","defaultView","parentWindow","getPos","getPointerPosition","pEv","getPointerEvent","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","ready","cash","eq","ele","camelCaseRe","camelCaseWhitespaceRe","camelCase","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","is","splitValuesRe","getSplitValues","unique","computeStyle","isVariable","getPropertyValue","computeStyleInt","hasClass","removeAttr","_value","toggleClass","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","removeData","boxSizing","includeMargins","eventsNamespace","eventsNamespacesSeparator","getEventsCache","parseEventName","removeEvent","namespaces","eventCache","_ref2","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","addEvent","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","query","elements","checked","queryEncode","isMultiple","eleValue","containers","fragmentRe","singleTagRe","table","tr","td","thead","tbody","tfoot","initContainers","$1","insertContent","prepend","isStr","insertAdjacentHTML","insertElement","_this4","outerHTML","insertAfter","_this5","_this6","_this7","_this8","_this9","prependTo","replaceWith","_this10","$eles","replaceAll","docEle","clientTop","contents","nextElementSibling","not","closest","parents","previousElementSibling","siblings","KEY_TAG","KEY_ATTR","motionsEv","isDoc","removeEl","inputs","attrUp","isVisible","oldEl","newEl","appendAtIndex","total","createEl","createText","createCustomEvent","oEvent","err","_parentEvent","keyCodeVal","defineProperty","appendVNodes","vNodes","vnode","getDocumentScroll","isDef","getGlobal","elProt","Element","getUiClass","defCls","appendStyles","stls","link","prepand","shallowDiff","objOrig","objNew","keysNew","origValue","newValue","evs","upFirst","normalizeFloat","step","valueDef","stepDecimals","toFixed","hasDnd","nativeDnD","isCommentNode","escapeNodeContent","deepMerge","targValue","srcValue","__cashData","getElRect","rectText","selectNode","getKeyCode","isEnterKey","isEmptyObj","capitalize","isComponent","toHTML","isRule","toCSS","__gjsv","setViewEl","createId","chars","random","buildBase64UrlFromSvg","svg","base64Str","btoa","Buffer","webpackContext","req","webpackContextResolve","__webpack_require__","resolve","Function","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","isNull","isBoolean","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","isNumber","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","hasName","commonInit","mapTail","mapMethods","setMethods","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","results","currentKey","noop","propertyOf","times","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","template","settings","oldSettings","argument","variable","fallback","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","TypeError","callArgs","strict","idx","memoize","hasher","address","throttle","timeout","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","computed","lastComputed","reStrSymbol","rand","temp","criteria","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","enumerable","toStringTag","literals","raw","acc","lit","subst","substs","fromElement","projectData","noticeOnUnload","forceClass","log","baseCss","protectedCss","canvasCss","defaultCommand","devicePreviewMode","mediaCondition","tagVarStart","tagVarEnd","keepEmptyTextNodes","jsInHtml","multipleSelection","avoidInlineStyle","avoidDefaults","clearStyles","cssIcons","icons","plus","caret","delete","arrowUp","chevron","eye","eyeOff","i18n","assetManager","layerManager","storageManager","richTextEditor","domComponents","codeManager","cssComposer","selectorManager","deviceManager","styleManager","blockManager","traitManager","keepUnusedStyles","multiFrames","customUI","getByComponent","getComponent","addComponent","hasComponent","Selectable","lastComponent","allComponents","removeComponent","moduleName","_em","_name","cfgParent","cfg","_disable","_config","postLoad","__logWarn","__appendTo","elTo","private","skipListen","__initListen","getProjectData","storageKey","loadProjectData","onResult","getAllMap","__catchAllEvent","collections","entity","md","__remove","removeBefore","__onAllEvent","renderProps","_createId","ln","allMap","__listenAdd","__listenRemove","__listenUpdate","__destroy","Module","scripts","autoscrollLimit","extHl","frameContent","frameStyle","notTextable","_module","modelConstructor","newModel","keyAutoW","keyAutoH","domc","conf","allRules","Css","idMap","modOpts","Wrapper","getType","selectors","sSel","idSel","changesCount","_undo","_undoexc","changesUp","temporary","noCount","getStyles","getHead","setHead","addHeadItem","getHeadByAttr","removeHeadByAttr","addLink","removeLink","addScript","removeScript","getPage","page","_emitUpdated","fromUndo","loadedItems","itemsToLoad","onReset","itemLoaded","listenToLoadItems","listenToLoad","defFrame","frms","getId","um","setName","getAllFrames","getMainFrame","getMainComponent","evAll","evPfx","evPageSelect","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","chnSel","typeMain","selectBefore","addBefore","pages","__onChange","_onPageChange","onLoad","mainPage","getMain","Layers","mainComp","setRoot","pg","load","pagesMap","ItemManagerModule","default","devices","widthMedia","checkUnit","pr","getWidthMedia","Devices","updateSelect","startAdd","updateDevice","devEl","devicesEl","getDeviceModel","device","getOptions","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","Device","_onSelect","deviceId","newDevice","getDevices","onZoomChange","_pageUpdated","rulers","getCurrentFrameModel","noUndo","viewCollection","renderView","important","getDeclaration","getBlockId","atRules","addToCollection","fragmentEl","renderStarted","atRule","getAtRule","atRuleEl","styleEl","appendData","clsName","mediaText","defaultBlockId","blockId","getMediaWidth","contRules","sortRules","isMobFirst","prs","rootEl","els","toggleEffects","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","__customTglEff","frameElement","sortOpts","customTarget","startCustom","endCustom","endDrop","dragStop","updateCounter","dt","dragContent","inAbsoluteMode","getWrapper","canvasOffset","getOffset","postLeft","posTop","handleDragEnd","cnt","setDropContent","getContentByData","dragging","lastMaxHeight","tools","frameWrapView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","allowfullscreen","headEl","attrStr","stl","getJsContainer","jsContainer","class","elTools","_getTool","getOffsetViewerEl","getRect","getOffsetRect","scrollBottom","scrollRight","_toggleEffects","startAutoscroll","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","lastClientY","actualTop","limitTop","limitBottom","nextTop","updateClientY","stopAutoscroll","mt","renderScripts","evLoad","evOpts","appendScript","scriptEl","renderBody","write","normalize","prevStyles","_isEditor","droppable","_emitUpdate","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","Dragger","getZoomMultiplier","posOpts","startDrag","__clear","destroyed","updateDim","__handleSize","noChanges","onScroll","onscroll","currW","currH","newW","newH","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","wheel","_renderFrames","currFrame","onCanvasMove","isInputFocused","onWheel","getZoom","defOpts","mpl","framesArea","timerZoom","isElInViewport","frameRect","getFrameOffset","rTop","rLeft","frmOff","cvsOff","winEl","frEl","getCanvasOffset","frameOffset","canvasEl","elRect","frameTop","avoidFrameOffset","frameLeft","avoidFrameZoom","getElementOffsets","bEl","fo","updateScript","scriptContainer","scriptFn","getScriptString","scriptFnStr","scriptProps","__getScriptProps","scr","getFrameView","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getFrame","getFramesEl","getDocument","_getLocalEl","globalEl","compView","getGhostEl","getFixedOffsetViewerEl","setCustomBadgeLabel","topScroll","leftScroll","getTargetToElementDim","canvasPos","toRight","targetHeight","targetWidth","eventToTrigger","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","rectOff","getFrameElFromDoc","canvasRect","fullHeight","addTop","addLeft","subWinOffset","yOffset","xOffset","toIgnore","fr","getCurrentFrame","setZoom","setCoords","getCoords","addFrame","draggableComponents","disableTextInnerChilds","processor","voidElements","htmlType","defaultType","modelAttrStart","compTypes","getPropAttribute","attrName","attrValue","valueLen","lastChar","splitPropsFromAttr","propsResult","parseStyle","decls","decl","parseClass","cl","parseNode","nodes","attrsLen","nodePrev","nodeChild","ct","compType","namespaceURI","inSvg","void","comps","allTxt","foundTextNode","ci","cType","textTags","parserCss","cf","optionsHtml","parserHtml","DOMParser","mimeType","strF","parseFromString","BrowserParserHtml","allowScripts","allowUnsafeAttr","__clearUnsafeAttr","styleStr","resHtml","returnArray","extendStyle","propOrig","propNew","newStyle","noEvent","removeStyle","styleToString","imp","propPrv","getSelectors","getSelectorsString","selectorsToString","getFullString","getComponentIds","getComponentsFromDefs","visitedCmps","restAttr","addAttributes","newComponents","cmps","onAdd","resetChildren","newIds","idsToKeep","keepIds","resetFromString","cssc","allByID","allById","parsed","parseString","newCmps","getRules","newRule","__checkInnerChilds","isTemp","prevColl","Selectors","canRemoveStyle","rulesRemoved","it","__postRemove","df","componentTypes","Parser","parseHtml","componentsById","optsToPass","addCollection","isMult","processDef","__firstAdd","mdl","ccid","modelPr","$$typeof","avoidInline","Component","ensureInList","setClassRule","__postAdd","recursive","TYPE_CLASS","TYPE_ID","namePreEsc","escapeName","nameEsc","Selector","protected","isId","isClass","getFullName","getLabel","setLabel","getActive","setActive","objLen","combine","curr","getStyleable","getValid","noDisabled","combination","changeProp","initValue","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","trait","setTargetValue","fromTarget","getAttributes","valueToSet","valueTrue","valueFalse","setValueFromInput","final","toSet","getInitValue","handleAdd","handleReset","Traits","tf","build","objs","optionsTarget","TraitFactory","eventDrag","keySymbols","keySymbol","keySymbolOvrd","keyUpdate","keyUpdateInside","removable","badgable","stylable","unstylable","highlightable","copyable","editable","layerable","selectable","hoverable","locked","traits","dmode","updated","parentAttr","toPropagate","initClasses","initComponents","initTraits","initToolbar","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","avoidUpdateStyle","__isSymbolOrInst","__initSymb","__hasUm","__changesUp","__propSelfToParent","setDragMode","$els","closestType","setClass","attrPrev","setAttributes","noClass","removeAttributes","attrArr","compAttr","optsAdd","getIdRule","setIdRule","noStyle","addId","__getSymbol","__getSymbols","classe","getClasses","classStr","__logSymbol","toUp","symbol","symbols","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","__isSymbolNested","symbTopSelf","__getSymbTop","symbTop","__getAllById","symb","symbs","__isSymbOvrd","ovrd","prp","__getSymbToUp","fromInstance","noPropagate","propsChanged","__upSymbCls","__upSymbComps","optUp","toUpOpts","addSymb","addedInstances","toAppend","addedInst","addedTop","symbolInv","isSymbNested","toUpFn","symbPrnt","newMods","attrCls","toListen","clsArr","normalizeClasses","addChild","avoidChildren","__loadTraits","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","getLastChild","tb","traitsI","getTraits","setTraits","getTrait","updateTrait","getTraitIndex","removeTrait","addTrait","clm","_inner","cloned","newId","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","customName","noCustom","sTag","customAttr","getAttrToHTML","withProps","valueRes","altQuoteAttr","attrString","getInnerHTML","__innerHTML","getChangedProps","setId","getCurrentView","modelProps","scrStr","reg","onAll","clb","forEachChild","rmOpts","sameParent","isInstanceOf","byType","resetId","oldId","_getStyleRule","idS","_getStyleSelector","idUpdate","idPrev","getList","getDefaults","nextId","getIncrementId","getNewId","ilen","uid","dm","checkId","childrenView","sameFrameView","getTypes","viewObject","logError","parentEl","modelOpt","updateStyle","renderAttributes","updateHighlight","updateStatus","updateContent","handleChange","onActive","onDisable","avoidRender","getEvents","dragstart","_clbObj","__isDraggable","handleDragStart","updateClasses","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","noPointerCls","selCls","noExtHl","avoidHover","clsStr","isTextable","hl","onAttrUpdate","updateAttributes","textable","defaultAttr","contenteditable","hasComps","getChildrenContainer","prevDef","getChildrenSelector","getTemplate","gtop","gleft","assignRect","isInViewport","elDoc","_setData","postRender","columns","rows","rowsToAdd","columnsToAdd","svgAttrs","ratioDefault","cmdName","hasButtonBool","getSrcResult","isDefaultSrc","srcDef","parseUri","uri","URL","hostname","protocol","port","qrs","pair","getQueryObject","defs","mapUrl","mapType","frameborder","parseFromSrc","updateSrc","getMapUrl","addr","qr","q","z","dblclick","classEmpty","fetchFile","fu","Assets","FileUploader","uploadFile","asset","complete","getSrc","onError","noDrag","getIframe","ifrm","frameBorder","updateContentText","syncContent","rte","RichTextEditor","fromDisable","disableEditing","canActivate","rteEnabled","sameInEdit","getEditing","isInnerText","getContent","lastContent","activeRte","toggleEvents","contentOpt","customRte","parseContent","insertComponent","startContainer","startOffset","onInput","disablePropagation","mixins","setEditing","elDocs","yt","vi","ytnc","hasParam","videoId","provider","ytUrl","ytncUrl","viUrl","poster","muted","autoplay","controls","color","modestbranding","sources","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","createElementNS","__escapeContent","createComment","__getSrc","ComponentTableView","ComponentsView","componentHovered","selectAdd","selectRemove","getComponents","componentView","setComponents","addType","extendView","extendFn","extendFnView","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","srcToExt","parentFn","removeType","getShallowWrapper","shallow","shallowEm","reason","srcModel","isTargetInside","getById","maxValue","MAX_VALUE","compCls","buildFromModel","codeJson","onlyMatched","matchedRules","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","dump","selectorStrNoAdd","skipAdd","selectorsAdd","singleAtRule","__cleanSelector","getQueryLength","mediaQuery","itemsArr","mquery","getKey","CSS","ensureSelectors","atRuleType","typeStr","addSelector","selOpts","stateStr","skipState","allowEmpty","getDevice","deviceDefault","getState","stateValue","getStates","sngl","cmpId","ruleProps","wd","selAdd","a1S","a2S","parseCss","CssRules","slc","singleSel","checkNode","console","sl","newSels","le","selec","modelExists","styleUpdate","addRules","setRule","atRuleParams","getRule","optRuleSel","media","getCurrentMedia","getClassRule","getComponentRules","rulesView","blocks","appendOnClick","category","activate","getMedia","getCategoryLabel","ctg","Categories","endDrag","dragend","__getModule","getSorter","validTarget","valid","__currentBlock","setDragHelper","__startDrag","handleDrag","__drag","__endDrag","clsAdd","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","iconEl","blocksEl","categories","renderedCategories","noCatClass","blockContClass","catsClass","updateConfig","ignoreCategories","catModel","catId","getCategoriesEl","catView","catsEl","evDrag","Block","Category","blocksVisible","bhv","__getBehaviour","_dragBlock","dragResult","oldKey","oldActive","toActive","__getFrameViews","_bhv","fv","blocksView","getAllVisible","getCategories","toRender","external","colls","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","inputProp","getInputEl","inputEl","startEditTag","endEditTag","rename","innerText","changeStatus","removeTag","removeSelected","$chk","stateInputId","stateInputC","componentChanged","checkSync","__handleStateChange","renderClasses","tagRemoved","renderStates","labelInfo","labelHead","syncStyle","getTarget","cssC","getCommonSelectors","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","startNewTag","$addBtn","$input","endNewTag","onInputKeyUp","addNewTag","checkStates","statesEl","targets","trgs","validSelectors","__getCommonSelectors","_commonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","selectedName","idRes","stateChanged","addSelected","$states","$statesC","labelStates","tmpOpts","renderRes","$classes","evState","cFirst","__update","__updateSelectedByComponents","selTags","selectorTags","cOpts","cname","selModel","getSelector","newName","setState","setStates","__getCommon","duplicateSelected","commonSelectors","styleToApply","suffix","newSelector","getSelectedTargets","setComponentFirst","getComponentFirst","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propName","propValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","selsArr","lastRule","len3","selsAddStr","sheet","parsedNode","classSets","classSet","autosave","autoload","stepsBeforeSave","recovery","onStore","checkLocal","remote","headers","urlStore","urlLoad","contentTypeJson","fetchOptions","credentials","hasLocal","localStorage","setItem","getItem","thr","_typeof","then","AggregateError","errors","message","P","rejectionReasons","catch","ex","setTimeoutFunc","Promise","_state","_handled","_deferreds","doResolve","deferred","_immediateFn","onFulfilled","onRejected","promise","finale","_unhandledRejectionFn","Handler","prom","promiseFinally","allSettled","race","setImmediate","rej","XMLHttpRequest","withCredentials","statusText","responseText","upload","onProgress","onprogress","send","request","__props","parsable","typeJson","fetchOpts","reqHead","typeHead","FormData","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","confirm","response","toStore","__clearKeys","onAfter","itemKey","canAutoload","appendInput","eventCapture","clsField","onValueChange","removeView","rerender","templateLabel","templateInput","getClbOpts","elInput","getInputElem","onUpdate","onEvent","onChange","getValueForTarget","setInputValue","postUpdate","renderLabel","tpl","createLabel","getModelValue","i18nAttr","getElInput","renderField","createInput","hasLabel","noLabel","tmpl","TraitView","updatedCollection","TraitsView","resultName","valResult","toInit","targetValue","handleModelChange","holderClass","inputClass","elementUpdated","__onInputChange","fromInput","plh","Input","contClass","validateInputValue","deepCheck","validObj","handleUnitChange","getUnitEl","handleKeyDown","upArrowClick","downArrowClick","unitEl","units","normalizeValue","downIncrement","moveIncrement","upIncrement","prValue","defValue","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","InputNumber","keydown","inputNumber","$unit","defaultOpts","beforeShow","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","rgbaSupport","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","spect","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","format","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","convertToPercentage","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","callbackContext","instanceOptions","resize","reflow","throttler","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","updateSelectionPaletteFromStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","getUniqueSelectionPalette","drawInitial","setFromTextInput","updateOriginalInput","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","cW","cH","scL","scT","paletteElementClick","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","t0","rightclick","hex","pad2","clamp01","hue","slices","modification","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","colorEl","getColorEl","tc","valueClr","noneColor","movedColor","cpStyle","elToAppend","colorPickerConfig","colorPicker","noDefault","labelButton","TraitButtonView","typesDef","number","checkbox","upAll","__upSel","__onUp","__ctn","getTraitsViewer","baseView","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","parentView","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","viewLayer","ItemView","opened","inputNameCls","clsTitleC","clsTitle","clsCaret","clsCount","clsMove","clsChildren","clsNoChild","clsEdit","clsNoEdit","initComponent","clsInput","gut","clsBase","checkChildren","updateOpening","updateLayerable","updateName","__render","getInputName","getVisibilityEl","eyeEl","hClass","toggleVisibility","setVisible","handleEdit","handleEditKey","handleEditEnd","inputName","clsOpen","clsChvOpen","getCaret","isOpen","toggleOpening","stopImmediatePropagation","setOpen","handleSelect","setLayerData","handleHover","hovered","handleHoverOut","_rendered","__clearItems","__isLayerable","evRoot","evComponent","styleOpts","propsToListen","__onRootChange","__onComponent","getRoot","prevDspKey","prevDisplay","updateLayer","setLocked","isLocked","getLayerData","cmpOpts","fromLayers","noAssets","uploadName","multiUpload","customFetch","embedAsBase64","beforeUpload","showUrlInput","dropzone","openAssetsOnDrop","dropzoneContent","getFilename","getExtension","Asset","unitDim","__getBhv","getPreview","getInfo","dim","AssetImageView","TypeableCollection","baseType","getBaseType","typeFound","recognizeType","typeView","isType","ModelInst","ViewInst","extendViewApi","renderAssets","addToAsset","removedAsset","deselectAll","handleSubmit","getAddInput","assetsEl","getAssetsEl","globalCollection","inputUrl","toggleNoAssets","addAsset","fuRendered","AssetsView","uploadId","disableUpload","FileUploaderView","onUploadStart","__propEv","onUploadEnd","onUploadError","onUploadResponse","fetchOptsResult","initDrop","that","uploadForm","ondragover","ondragleave","ondrop","initDropzone","addedCls","edEl","updatedCls","dropzoneCls","cleanEditorElCls","onDragLeave","promises","mimeTypeMatcher","Image","readAsDataURL","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetCmd","uploadStart","uploadEnd","uploadError","uploadResponse","assetsVis","assts","__viewParams","editorView","traitInputAttr","localeFallback","detectLocale","messages","en","addButton","inputPlh","uploadTitle","labels","comment","image","video","row","cell","desktop","tablet","mobileLandscape","mobilePortrait","titles","preview","fullscreen","emptyState","hover","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","false","_blank","recover","messagesAdd","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","elT","elL","borderOffset","freezeClass","relative","offTop","offLeft","selectOnEnd","getScale","getDocuments","dropModel","dropContent","updateTextViewCursorPosition","targetDoc","caretRangeFromPoint","poiner","rangeParent","rangeOffset","setContentEditable","activeTextModel","toggleSortCursor","clonedEl","moveDragHelper","posY","posX","dragHelperStyle","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","elIndex","dirValue","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","marg","margI","elDim","pT","pL","obj1","obj2","ancester","s1","toMoveArr","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","onUpdateContainer","minDim","maxDim","silentFrames","avoidContainerUpdate","tl","cr","bl","bc","br","setup","hdl","createHandler","toggleFrames","isHandler","getFocusedEl","getParentEl","getBoundingRect","updateContainer","forceShow","handleMouseDown","mouseFetch","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","calc","updateRect","getSelectedHandler","elStyle","parentW","parentH","startW","startH","ratioActive","ratio","_mods","_scope","_MODIFIERS","control","_MAP","backspace","tab","return","esc","down","del","home","pageup","pagedown","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","setScope","deleteScope","isPressed","getPressedKeyCodes","multipleKeys","modifiersMatch","dispatch","keymaster","keymaps","defKeys","handlerRes","removeAll","backdrop","updateOpen","updateTitle","getCollector","$collector","$content","getTitle","$title","updateAttr","currAttr","_evData","titl","setTitle","onceOpen","getContentEl","swv","expt","osm","otm","ola","obl","ful","prv","togglable","runDefaultCommand","stopDefaultCommand","deactivateAllExceptOne","except","deactivateAll","fromCollection","disableAllButtons","disableAllButtonsExceptOne","Buttons","btn","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","fromListen","$buttons","commandName","noStop","clicked","toggleActive","appendContent","toggleVisible","resz","resLen","forContainer","styleWidth","styleHeight","buttonsView","getPanelsEl","PanelsViewObj","removePanel","panelId","removeButton","getButton","disableButtons","inlineCss","htmlOpts","cleanId","beforeEach","mapModel","scrProps","mapJs","autoFormatRange","noRefresh","CodeMirrorEditor","defaultViewer","generators","viewers","defGenerators","js","defViewers","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewers","createViewer","txtarea","updateViewer","getCode","genId","trackSelection","hasSkip","getChanged","hasUndo","chn","beforeCache","hasRedo","getInstance","getStack","getStackGroup","getGroupedStack","createItem","goToGroup","getPointer","goTo","adjustToolbar","RichTextEditorActionState","RTE_KEY","btnState","isValidTag","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actionbar","inactive","isCustom","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","currentState","INACTIVE","newState","queryCommandSupported","queryCommandState","ACTIVE","__dbdTrgCustom","enabled","__toggleEffects","actionbarEl","syncActions","textHtml","deleteContents","nd","insertNode","toSel","eventsUp","initRte","globalRte","hideToolbar","actionRes","updatePosition","rteInst","currentView","commandsDef","CommandAbstract","defaultCommands","selAll","nativeDrag","defComOptions","hideTlb","altMode","cmdMove","oldCmd","cmdObj","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","functionName","fixedValues","toRequire","requires","requiresParent","parentTarget","__upTargets","Property","callInit","__getParentProp","parentProp","isClear","__getFullValue","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","_up","noTarget","hasValue","getDefaultValue","parentValue","getParentTarget","hasValueParent","noParent","upValue","__parseValue","canClear","getParent","__canClearProp","isFull","parseValue","valueStr","numeric","num","withDefault","getFullValue","fnParameter","skipImportant","__setParentTarget","__parseFn","__checkVisibility","stylableReq","sector","getProperties","callParentInit","skipInit","isNumberType","detached","separator","fromStyle","toStyle","__upProperties","getProperty","getPropertyAt","isDetached","getValues","byName","getSeparator","getSplitSeparator","getJoin","__getJoin","getStyleFromProps","__clearIn","__upTargetsStyleProps","__setProperties","__getSplitValue","__styleHasProps","nameProps","__splitValue","__splitStyleName","props4Nums","__getPropsFromStyle","valuesStr","getIndex","getLayerLabel","isSelected","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","hasPreview","upValues","VALUES_REG","PARTS_REG","layerSeparator","layerJoin","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","getLayers","__getLayers","getLayer","__select","selectLayerAt","currIndex","addLayer","removeLayerAt","getStyleFromLayer","joinLayers","__getJoinLayers","newVal","getLayerSeparator","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","__getLayersFromStyle","separatorLayers","inLayer","clearProp","__destroyFn","iconClose","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","inputValueChanged","emit","__setValueInput","clearCached","__unset","__change","__updateStyle","createdEl","clsType","propsView","iconMove","propertyView","pModel","updateLabel","removeItem","getPropertiesWrapper","propsWrapEl","getPreviewEl","previewEl","getLabelEl","prvEl","wrapEl","iconPlus","layersView","prvBoxEl","backgroundImage","openAssetManager","inputInst","__handleChange","getOptionId","addOption","getOptionLabel","optId","propId","__onOptionChange","updateOptions","styleAttr","inputH","firstOpt","firstId","itemCls","elId","titleAttr","inputHld","inputIn","getUnits","getUnit","getMin","getMax","getStep","upUnit","valueProp","unitProp","getSliderEl","inputValueChangedSoft","propertyAdd","propertyRemove","builded","buildProperties","buildProps","extendProperties","checkExtend","propsModel","extendBuilded","withValue","withParentValue","addProperty","moProps","pLen","mProps","isolated","mProp","mPProps","buildP","builtIn","sect","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","propsToCreate","spread","propToUp","fromRes","iconCaret","clsPfx","getPropertiesEl","renderProperties","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","sectorAdd","sectorRemove","sectorUpdate","Sector","__clearStateTarget","upProps","__upProps","trgCustom","stateTarget","__getStateTarget","addSector","getSector","_logNoSector","getSectors","removeSector","sectorId","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","hasClasses","useClasses","deviceW","cssGen","optsSel","cmpRules","otherRules","createType","SectView","parentStyles","__upProp","sectorVisible","hasVal","isStack","isComposite","canUpdate","parentItem","deps","storableDeps","Window","ar","logs","warning","__skip","defaultRunning","dragMode","toLog","attrsOrig","pageManager","constr","loadModule","loadStorableModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","editing","clipboard","previousModel","storables","modules","toLoad","loadOnStart","headless","loadData","_storageTimeout","EditorModel","stm","getDirtyCount","updateItr","onbeforeunload","InitModule","Mod","handleUpdates","timedInterval","mltSel","multiple","toggleSelected","selColl","selIndex","getHovered","getJs","avoidProt","avoidProtected","protCss","storeData","Storage","clearDirtyCount","editingCmp","destroyAll","grapesjs","logNs","logInfo","initBaseColorPicker","varName","classNames","contEl","shallowCanvasEl","I18n","Keymaps","addComponents","getSelectedToStyle","selectToggle","setDevice","setCustomRte","setCustomParserCss","onReady","plugin","plugins","pluginId","wplg","getPluginById","plg","agent","isIE","DOMImplementation","createHTMLDocument","implementation","polyfills","GrapesJS","initConfig","autorender","pluginsOpts","plgOptions"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"grapes.min.js","mappings":";CAAA,SAA2CA,EAAMC,GAChD,GAAsB,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,SACb,GAAqB,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,OACP,CACJ,IAAIK,EAAIL,IACR,IAAI,IAAIM,KAAKD,GAAuB,iBAAZJ,QAAuBA,QAAUF,GAAMO,GAAKD,EAAEC,EACvE,CACA,CATD,CASyB,oBAAfC,WAA6BA,WAAgC,oBAAXC,OAAyBA,OAASC,MAAO,I,2BCTrG,UAYK,IAEH,EAAO,CAAC,MAAc,aAAoB,0BAAP,EAWlC,SAAUC,EAAGC,GAEf,IAAIC,EAAaC,MAAMC,UAAUC,MAUjC,SAASC,EAAOC,EAAIC,EAAKC,GACxB,OAAOA,EAAKC,QAAU,EACrBH,EAAGI,KAAKH,EAAKC,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC7CF,EAAGD,MAAME,EAAKC,EAChB,CASA,SAASJ,EAAOO,EAAKC,GACpB,OAAOX,EAAWS,KAAKC,EAAKC,EAC7B,CAcA,SAASC,EAASC,EAAKC,GACtB,OAAW,MAAPD,IACCf,EAAEiB,QAAQD,KACdA,EAAOX,EAAMa,UAAW,IAElBlB,EAAEmB,IAAIH,GAAM,SAAUI,GAC5B,OAAOA,KAAOL,CACf,IACD,CAQA,IAAIM,EAAsB,WAgBzB,IAAIC,GAAsB,EAAOC,GAAoB,EACrD,SAASC,IACRD,IACAD,GAAsB,EACtBtB,EAAEyB,OAAM,WAIPH,GAAsB,CACvB,GACD,CACA,OAAO,WAIN,OAHKA,GACJE,IAEMD,CACR,CACA,CAjCyB,GAyC1B,SAASG,IAcR3B,KAAK4B,kBAAoB,GAKzB5B,KAAK6B,WAAa,EACnB,CAyEA,SAASC,EAAMC,EAAOC,EAASxB,EAAIC,GAClC,IAAK,IAA+BO,EAA3BnB,EAAI,EAAGoC,EAAID,EAAQrB,OAAad,EAAIoC,EAAGpC,IAE/C,GADAmB,EAAMgB,EAAQnC,GACd,CACA,GAAc,OAAVkC,GACH,IAAKtB,EAAIyB,eAAeC,SAASnB,GAEhC,cAGD,IAAKP,EAAIyB,eAAeE,WAAWpB,GAElC,SAGEf,EAAEoC,WAAWrB,EAAIe,KACpBf,EAAIe,GAAO,MAAOvB,EAAIC,EAbL,CAgBpB,CASA,SAAS6B,EAAgBP,EAAOQ,GAC/B,IAAIC,EAAOD,EAAOC,KAAMC,EAAYF,EAAOE,UAAWjC,GAAMiC,EAAUD,IAASC,EAAUD,GAAMT,GAC3F9B,EAAEoC,WAAW7B,IAChBA,EAAG+B,EAAOG,OAAQH,EAAOI,OAAQJ,EAAOK,MAAOL,EAAOM,QAExD,CAYA,SAASC,EAAiBf,EAAOgB,EAASC,EAAOC,EAAOC,GACvD,KAAIF,EAAMG,wBACE,SAAVpB,IAAuC,IAAnBiB,EAAMI,SAChB,SAAVrB,GAAoBiB,EAAMI,UAAYJ,EAAMrC,OAAS,GAFvD,CAOAqC,EAAMG,wBAAyB,EAC/B,IAAIZ,EAAQc,EAASC,EAAmB,SAAVvB,EAc9B,IAbImB,EAEHG,EAAUC,GAAUN,EAAMI,UAAYJ,EAAMrC,OAAS,IAChD2C,IAA6B,IAAnBN,EAAMI,QACjBnD,EAAEsD,MAAMP,EAAMQ,QACdrD,EAAWI,MAAMyC,EAAMQ,OAAQF,EAAS,CAAC,EAAGN,EAAMI,SAAW,CAACJ,EAAMI,QAASJ,EAAMrC,OAAS,KAGhG4B,EAASS,EAAMS,GAAGH,EAASN,EAAMI,QAAUJ,EAAMI,QAAU,GAC3DC,EAAUJ,EAAQD,EAAMU,MAAM,CAAC,iBAAoBnB,EAAOoB,IAAI,sBAAwB,CAACpB,IAGxFS,EAAMI,UAAYE,GAAU,EAAI,GAAKD,EAAQ1C,OACtC4B,EAASe,EAASD,EAAQO,MAAQP,EAAQQ,SAEhDtB,EAAOR,KAERiB,EAAMG,wBAAyB,EAE/BJ,EAAQe,QAAQ/B,EAAOgB,EAtBvB,CAuBD,CAaA,SAASgB,EAA4BC,EAAetD,GACnD,IAAIuD,EAAYD,EAAcC,UAAWzB,SAAcyB,EACvD,MAAgB,aAATzB,IAAwBjC,EAAM0D,EAAWD,EAAetD,GACrD,YAAT8B,GAAqByB,CACvB,CAWA,SAASC,EAAWlB,EAAOR,EAAM9B,EAAM+B,GACtC,GAAIO,EAAMmB,QAAUnB,EAAMG,wBAA0BX,KAAQC,GAC3DsB,EAA2BtB,EAAUD,GAAO9B,GAAO,CAEnD,IAAI0D,EAAM7D,EAAMkC,EAAUD,GAAM,MAAOC,EAAUD,GAAO9B,GACxD,GAAIK,EAAQqD,EAAK,SAAU,SAAU,SAAU,CAI9C,GAHAA,EAAI5B,KAAOA,EACX4B,EAAI5C,iBAAmBF,IACvB8C,EAAI3B,UAAYA,EACZO,EAAMI,QAAUJ,EAAMrC,OAAS,EAMlC,IADA,IAAI0D,EAAOrB,EAAMrC,OAASqC,EAAMI,QAAU,EACnCiB,KACNrB,EAAMY,MAGRZ,EAAMI,QAAUJ,EAAMrC,OACtBqC,EAAMsB,IAAIF,GACNpB,EAAMrC,OAASqC,EAAMuB,qBACxBvB,EAAMa,QACNb,EAAMI,UAER,CACD,CACD,CA1MAzB,EAAetB,UAAY,CAQ1BmE,aAAc,SAAUxD,GAIvB,OAAOA,GAAOA,EAAIyD,IAAMzE,KAAK4B,kBAAkBZ,EAAIyD,KAAOxE,EAAEyE,SAAS1E,KAAK4B,kBAAmBZ,EAC9F,EAQAmB,SAAU,SAAUnB,GACnB,OAAKhB,KAAKwE,aAAaxD,KAClBA,GAAOA,EAAIyD,KACdzE,KAAK4B,kBAAkBZ,EAAIyD,KAAOzD,EAClChB,KAAK6B,WAAW8C,KAAK3D,EAAIyD,MAEzBzE,KAAK4B,kBAAkB+C,KAAK3D,IAEtB,EAGT,EAQAoB,WAAY,SAAUpB,GACrB,GAAIhB,KAAKwE,aAAaxD,GAAM,CAC3B,GAAIA,GAAOA,EAAIyD,WACPzE,KAAK4B,kBAAkBZ,EAAIyD,KAClCzE,KAAK6B,WAAW+C,OAAO3E,EAAE4E,QAAQ7E,KAAK6B,WAAYb,EAAIyD,KAAM,OACtD,CACN,IAAI5E,EAAII,EAAE4E,QAAQ7E,KAAK4B,kBAAmBZ,GAC1ChB,KAAK4B,kBAAkBgD,OAAO/E,EAAG,EAClC,CACA,OAAO,CACR,CACA,OAAO,CACR,EAMA8D,IAAK,WACJ,OAAQ1D,EAAE6E,IAAI9E,KAAK6B,YAAY,SAAU4C,GAAM,OAAOzE,KAAK4B,kBAAkB6C,EAAK,GAAGzE,MAAO+E,OAAO/E,KAAK4B,kBACzG,GAqJD,IAAIoD,EAAY,CACf,IAAO,CACN,KAAQ,SAAUC,EAAYC,EAAQC,EAAOtC,GAE5CoC,EAAWG,OAAOD,EAAOtC,EAC1B,EACA,KAAQ,SAAUoC,EAAYC,EAAQC,EAAOtC,GAExCA,EAAQ/B,QACX+B,EAAQY,GAAKZ,EAAQ/B,OAEtBmE,EAAWX,IAAIa,EAAOtC,EACvB,EACA,GAAM,SAAUsC,EAAOF,EAAYpC,GAClC,MAAO,CACNH,OAAQuC,EACRtC,YAAQ0C,EACRzC,MAAOuC,EACPtC,QAAS5C,EAAEsD,MAAMV,GAEnB,GAED,OAAU,CACT,KAAQ,SAAUoC,EAAYE,EAAOD,EAAQrC,GACxC,UAAWA,IACdA,EAAQY,GAAKZ,EAAQ/B,OAEtBmE,EAAWX,IAAIa,EAAOtC,EACvB,EACA,KAAQ,SAAUoC,EAAYE,EAAOD,EAAQrC,GAC5CoC,EAAWG,OAAOD,EAAOtC,EAC1B,EACA,GAAM,SAAUsC,EAAOF,EAAYpC,GAClC,MAAO,CACNH,OAAQuC,EACRtC,OAAQwC,EACRvC,WAAOyC,EACPxC,QAAS5C,EAAEsD,MAAMV,GAEnB,GAED,OAAU,CACT,KAAQ,SAAUsC,EAAOxC,EAAQC,EAAOC,GACnC5C,EAAEqF,QAAQ3C,GACb1C,EAAEsF,KAAKtF,EAAEgB,KAAK2B,GAAQuC,EAAMK,MAAOL,IAEnCA,EAAMM,IAAI9C,GACNE,GAAWA,EAAQ6C,WAAa7C,EAAQ6C,UAAU/C,QAAUE,EAAQ6C,UAAU/C,OAAOhC,QACxFV,EAAEsF,KAAK1C,EAAQ6C,UAAU/C,OAAQwC,EAAMK,MAAOL,GAGjD,EACA,KAAQ,SAAUA,EAAOxC,EAAQC,EAAOC,GACnC5C,EAAEqF,QAAQ1C,GACb3C,EAAEsF,KAAKtF,EAAEgB,KAAK0B,GAASwC,EAAMK,MAAOL,IAEpCA,EAAMM,IAAI7C,GACNC,GAAWA,EAAQ6C,WAAa7C,EAAQ6C,UAAU9C,OAASC,EAAQ6C,UAAU9C,MAAMjC,QACtFV,EAAEsF,KAAK1C,EAAQ6C,UAAU9C,MAAOuC,EAAMK,MAAOL,GAGhD,EACA,GAAM,SAAUA,EAAOtC,GACtB,IACA8C,EAAkBR,EAAMS,oBACxBC,EAAY5F,EAAEgB,KAAK0E,GACnBG,EAAqB7F,EAAE8F,KAAKZ,EAAMW,qBAAsBD,GACxDG,EAAe/F,EAAEgB,KAAK6E,GACtBJ,GAAa7C,IAAYA,EAAU,CAAC,IAAI6C,UAAY,CACnD9C,MAAO,GACPD,OAAQ,IAqBT,OAlBIkD,EAAUlF,QAAUqF,EAAarF,SAEhCkF,EAAUlF,OAASqF,EAAarF,OAEnCV,EAAEsF,KAAKM,GAAW,SAAUI,GACrBA,KAAOH,GACZJ,EAAU/C,OAAOgC,KAAKsB,EAExB,GAAGjG,MAGHC,EAAEsF,KAAKS,GAAc,SAAUC,GACxBA,KAAON,GACZD,EAAU9C,MAAM+B,KAAKsB,EAEvB,KAGK,CACNvD,OAAQyC,EACRxC,OAAQmD,EACRlD,MAAO+C,EACP9C,QAAS5C,EAAEsD,MAAMV,GAEnB,GAED,MAAS,CACR,KAAQ,SAAUoC,EAAYtC,EAAQC,GACrCqC,EAAWiB,MAAMvD,EAClB,EACA,KAAQ,SAAUsC,EAAYtC,EAAQC,GACrCqC,EAAWiB,MAAMtD,EAClB,EACA,GAAM,SAAUqC,EAAYpC,GAC3B,MAAO,CACNH,OAAQuC,EACRtC,OAAQE,EAAQsD,eAChBvD,MAAO3C,EAAEsD,MAAM0B,EAAWzB,QAE5B,IAcF,SAAS4C,IAAmB,CAmB5B,SAASC,EAAoBC,EAAWC,EAAUC,EAAKC,GAKtD,GAAwB,iBAAbF,EAEV,OAAOtG,EAAEsF,KAAKgB,GAAU,SAAUN,EAAK5E,GACnB,IAAdiF,EAEHD,EAAoBC,EAAWL,EAAKO,EAAKC,GAGzCJ,EAAoBC,EAAWjF,EAAK4E,EAAKO,EAE3C,IAGF,OAAQF,GACP,KAAK,EACAvF,EAAQyF,EAAK,OAAQ,OAAQ,OAASvG,EAAEmB,IAAInB,EAAE8F,KAAKS,EAAK,OAAQ,OAAQ,MAAOvG,EAAEoC,cACpFoE,EAAkBF,GAAYC,GAEhC,MACA,KAAK,EACAC,EAAkBF,IAAatG,EAAEyG,SAASF,KAO7CC,EAAkBF,GAAYtG,EAAE0G,OAAO,CAAC,EAAGF,EAAkBF,GAAWC,IAE1E,MACA,KAAK,SACGC,EAAkBF,GAG3B,OAAOvG,IACR,CA1DAoG,EAAe/F,UAAY2E,EAkE3B,IAAI4B,EAAS1G,EAAS2G,MAAMF,OAAO,CAClCG,SAAU,CACTtE,KAAM,KACNE,OAAQ,KACRC,OAAQ,KACRC,MAAO,KACPpB,iBAAkB,MAQnBuF,KAAM,SAAUtE,GACfH,EAAe,OAAQtC,KAAKgH,WAC7B,EAMAC,KAAM,SAAUxE,GACfH,EAAe,OAAQtC,KAAKgH,WAC7B,IAMDE,EAAYhH,EAASiH,WAAWR,OAAO,CACtCxB,MAAOyB,EACPxD,SAAU,EACVe,OAAO,EACPhB,wBAAwB,EACxBoB,mBAAoB6C,IACpBC,aAAc,SAAUpB,GACvBjG,KAAKuE,mBAAqB0B,CAC3B,IAMDqB,EAAcpH,EAAS2G,MAAMF,OAAO,CACnCG,SAAU,CACTvC,mBAAoB6C,IACpBjD,OAAO,GASRoD,WAAY,SAAUC,GACrBxH,KAAKgD,MAAQ,IAAIkE,EACjBlH,KAAKkC,eAAiB,IAAIP,EAC1B3B,KAAKyC,UAAY,IAAI2D,EAGrBpG,KAAKgD,MAAMqE,aAAarH,KAAK2D,IAAI,uBACjC3D,KAAKyH,GAAG,6BAA6B,SAAUtC,EAAOuC,GACrD1H,KAAKgD,MAAMqE,aAAaK,EACzB,GAAG1H,MAGCwH,GAAQA,EAAKrD,OAChBnE,KAAK2H,gBAIFH,GAAQA,EAAKrF,WACZlC,EAAEiB,QAAQsG,EAAKrF,WAAalC,EAAE2H,YAAYJ,EAAKrF,UAClD5B,EAAMP,KAAKmC,SAAUnC,KAAMwH,EAAKrF,UAEhCnC,KAAKmC,SAASqF,EAAKrF,UAGtB,EAKAwF,cAAe,WACd3H,KAAKyF,IAAI,SAAS,GAClBzF,KAAKgD,MAAMmB,OAAQ,CACpB,EAKA0D,aAAc,WACb7H,KAAKyF,IAAI,SAAS,GAClBzF,KAAKgD,MAAMmB,OAAQ,CACpB,EAKA2D,WAAY,WACX,OAAO9H,KAAK2D,IAAI,QACjB,EASAoE,YAAa,SAAUvF,GACtB0B,EAAWlE,KAAKgD,MAAOR,EAAMlC,EAAMa,UAAW,GAAInB,KAAKyC,UACxD,EAMAN,SAAU,WACTL,EAAM,KAAMX,UAAWnB,KAAK+H,YAAa/H,KAC1C,EAMAoC,WAAY,WACXN,EAAM,MAAOX,UAAWnB,KAAK+H,YAAa/H,KAC3C,EAKAgI,cAAe,WACdzH,EAAMP,KAAKoC,WAAYpC,KAAMA,KAAKkC,eAAeyB,MAClD,EAMAoD,KAAM,SAAU9D,GACfH,EAAgB,OAAQ9C,KAAMA,KAAKgD,MAAOC,EAC3C,EAMAgF,QAAS,WACRnF,EAAgB,OAAQ9C,KAAMA,KAAKgD,OAAO,GAAO,EAClD,EAOAiE,KAAM,SAAUhE,GACfH,EAAgB,OAAQ9C,KAAMA,KAAKgD,MAAOC,EAC3C,EAMAiF,QAAS,WACRpF,EAAgB,OAAQ9C,KAAMA,KAAKgD,OAAO,GAAO,EAClD,EAMAmF,YAAa,SAAU3F,GACtB,IAAI4F,EAAIpI,KAAKgD,MAAOf,EAAImG,EAAEzH,OAE1B,OAAQ6B,GACP,IAAK,OAAQ,OAAOP,EAAI,GAAKmG,EAAEhF,SAAW,EAC1C,IAAK,OAAQ,OAAOnB,EAAI,GAAKmG,EAAEhF,QAAUnB,EAAI,EAC7C,QAAS,OAAO,EAElB,EAMAoG,MAAO,SAAUC,GAYhB,IADA,IAAoEvF,EAAhErC,EAAOT,EAAEiB,QAAQoH,GAAeA,EAAchI,EAAMa,WACjD4B,EAAUrC,EAAKkD,OACjBb,aAAmBuE,GACtBvE,EAAQC,iBAAiBkE,IAEzBnE,EAAQC,MAAQhD,KAAKgD,MAGxB,EAOAuF,YAAa,SAAU/F,EAAMgE,GAC5BH,EAAmB,EAAG7D,EAAMgE,EAAKxG,KAAKyC,UACvC,EAOA+F,eAAgB,SAAUhG,EAAMgE,GAC/BH,EAAmB,EAAG7D,EAAMgE,EAAKxG,KAAKyC,UACvC,EAMAgG,eAAgB,SAAUjG,GACzB6D,EAAmB,EAAG7D,OAAM6C,EAAWrF,KAAKyC,UAC7C,EAMAiG,MAAO,WACN1I,KAAKgD,MAAMkD,QACXlG,KAAKgD,MAAMI,SAAW,CACvB,IAwCD,OArCAnD,EAAE0G,OAAOW,EAAa,CAMrBR,SAAU,SAAU6B,GACnB1I,EAAE0G,OAAOW,EAAYjH,UAAUyG,SAAU6B,EAC1C,EAOA,YAAe,SAAUnG,EAAMgE,GAC9BH,EAAmB,EAAG7D,EAAMgE,EAAKxB,EAClC,EAOA,eAAkB,SAAUxC,EAAMgE,GACjCH,EAAmB,EAAG7D,EAAMgE,EAAKxB,EAClC,EAMA,eAAkB,SAAUxC,GAC3B6D,EAAmB,EAAG7D,OAAM6C,EAAWL,EACxC,IAGM9E,EAASoH,YAAcA,CAE/B,GAlzB4C,+B,gBCd5C,SAOA,SAAU/H,GAIR,IAAID,EAAsB,iBAARsJ,MAAoBA,KAAKA,OAASA,MAAQA,MACjC,iBAAV,EAAAC,GAAsB,EAAAA,EAAOC,SAAW,EAAAD,GAAU,EAAAA,EAGnE,GAAI,EACF,EAAO,CAAC,MAAc,OAAU,GAAY,EAAF,SAAW5I,EAAG8I,EAAGvJ,GAGzDF,EAAKY,SAcR,SAASZ,EAAMY,EAAUD,EAAG8I,GAO7B,IAAIC,EAAmB1J,EAAKY,SAGxBI,EAAQF,MAAMC,UAAUC,MAG5BJ,EAAS+I,QAAU,QAInB/I,EAAS6I,EAAIA,EAIb7I,EAASgJ,WAAa,WAEpB,OADA5J,EAAKY,SAAW8I,EACThJ,IACT,EAKAE,EAASiJ,aAAc,EAMvBjJ,EAASkJ,aAAc,EAevB,IAMIC,EANAC,EAASpJ,EAASoJ,OAAS,CAAC,EAG5BC,EAAgB,MAQhBC,EAAY,SAASC,EAAUC,EAAQC,EAAMC,EAAUC,GACzD,IAAWC,EAAPjK,EAAI,EACR,GAAI8J,GAAwB,iBAATA,EAAmB,MAEnB,IAAbC,GAAuB,YAAaC,QAAyB,IAAjBA,EAAKE,UAAoBF,EAAKE,QAAUH,GACxF,IAAKE,EAAQ7J,EAAEgB,KAAK0I,GAAO9J,EAAIiK,EAAMnJ,OAASd,IAC5C6J,EAASF,EAAUC,EAAUC,EAAQI,EAAMjK,GAAI8J,EAAKG,EAAMjK,IAAKgK,EAEnE,MAAO,GAAIF,GAAQJ,EAAcS,KAAKL,GAEpC,IAAKG,EAAQH,EAAKM,MAAMV,GAAgB1J,EAAIiK,EAAMnJ,OAAQd,IACxD6J,EAASD,EAASC,EAAQI,EAAMjK,GAAI+J,EAAUC,QAIhDH,EAASD,EAASC,EAAQC,EAAMC,EAAUC,GAE5C,OAAOH,CACT,EAIAJ,EAAO7B,GAAK,SAASkC,EAAMC,EAAUG,IACnC/J,KAAKkK,QAAUV,EAAUW,EAAOnK,KAAKkK,SAAW,CAAC,EAAGP,EAAMC,EAAU,CAClEG,QAASA,EACTtJ,IAAKT,KACLoK,UAAWf,IAGTA,MACcrJ,KAAKqK,aAAerK,KAAKqK,WAAa,CAAC,IAC7ChB,EAAWiB,IAAMjB,EAG3BA,EAAWkB,SAAU,GAGvB,OAAOvK,IACT,EAKAsJ,EAAOkB,SAAW,SAASxJ,EAAK2I,EAAMC,GACpC,IAAK5I,EAAK,OAAOhB,KACjB,IAAIsK,EAAKtJ,EAAIyJ,YAAczJ,EAAIyJ,UAAYxK,EAAEyK,SAAS,MAClDC,EAAc3K,KAAK4K,eAAiB5K,KAAK4K,aAAe,CAAC,GACzDR,EAAYf,EAAasB,EAAYL,GAIpCF,IACHpK,KAAKyK,YAAczK,KAAKyK,UAAYxK,EAAEyK,SAAS,MAC/CN,EAAYf,EAAasB,EAAYL,GAAM,IAAIO,EAAU7K,KAAMgB,IAIjE,IAAI8J,EAAQC,EAAW/J,EAAK2I,EAAMC,EAAU5J,MAG5C,GAFAqJ,OAAa,EAETyB,EAAO,MAAMA,EAIjB,OAFIV,EAAUG,SAASH,EAAU3C,GAAGkC,EAAMC,GAEnC5J,IACT,EAGA,IAAImK,EAAQ,SAAST,EAAQC,EAAMC,EAAU/G,GAC3C,GAAI+G,EAAU,CACZ,IAAIoB,EAAWtB,EAAOC,KAAUD,EAAOC,GAAQ,IAC3CI,EAAUlH,EAAQkH,QAAStJ,EAAMoC,EAAQpC,IAAK2J,EAAYvH,EAAQuH,UAClEA,GAAWA,EAAUa,QAEzBD,EAASrG,KAAK,CAACiF,SAAUA,EAAUG,QAASA,EAAStJ,IAAKsJ,GAAWtJ,EAAK2J,UAAWA,GACvF,CACA,OAAOV,CACT,EAIIqB,EAAa,SAAS/J,EAAK2I,EAAMC,EAAUG,GAC7C,IACE/I,EAAIyG,GAAGkC,EAAMC,EAAUG,EAGzB,CAFE,MAAOmB,GACP,OAAOA,CACT,CACF,EAMA5B,EAAO6B,IAAM,SAASxB,EAAMC,EAAUG,GACpC,OAAK/J,KAAKkK,SACVlK,KAAKkK,QAAUV,EAAU4B,EAAQpL,KAAKkK,QAASP,EAAMC,EAAU,CAC7DG,QAASA,EACTsB,UAAWrL,KAAKqK,aAGXrK,MANmBA,IAO5B,EAIAsJ,EAAOgC,cAAgB,SAAStK,EAAK2I,EAAMC,GACzC,IAAIe,EAAc3K,KAAK4K,aACvB,IAAKD,EAAa,OAAO3K,KAGzB,IADA,IAAIuL,EAAMvK,EAAM,CAACA,EAAIyJ,WAAaxK,EAAEgB,KAAK0J,GAChC9K,EAAI,EAAGA,EAAI0L,EAAI5K,OAAQd,IAAK,CACnC,IAAIuK,EAAYO,EAAYY,EAAI1L,IAIhC,IAAKuK,EAAW,MAEhBA,EAAUpJ,IAAImK,IAAIxB,EAAMC,EAAU5J,MAC9BoK,EAAUG,SAASH,EAAUe,IAAIxB,EAAMC,EAC7C,CAGA,OAFI3J,EAAEqF,QAAQqF,KAAc3K,KAAK4K,kBAAe,GAEzC5K,IACT,EAGA,IAAIoL,EAAS,SAAS1B,EAAQC,EAAMC,EAAU/G,GAC5C,GAAK6G,EAAL,CAEA,IACWI,EADPC,EAAUlH,EAAQkH,QAASsB,EAAYxI,EAAQwI,UAC/CxL,EAAI,EAGR,GAAK8J,GAASI,GAAYH,EAA1B,CAQA,IADAE,EAAQH,EAAO,CAACA,GAAQ1J,EAAEgB,KAAKyI,GACxB7J,EAAIiK,EAAMnJ,OAAQd,IAAK,CAE5B,IAAImL,EAAWtB,EADfC,EAAOG,EAAMjK,IAIb,IAAKmL,EAAU,MAIf,IADA,IAAIQ,EAAY,GACPC,EAAI,EAAGA,EAAIT,EAASrK,OAAQ8K,IAAK,CACxC,IAAIC,EAAUV,EAASS,GACvB,GACE7B,GAAYA,IAAa8B,EAAQ9B,UAC/BA,IAAa8B,EAAQ9B,SAAS+B,WAC5B5B,GAAWA,IAAY2B,EAAQ3B,QAEnCyB,EAAU7G,KAAK+G,OACV,CACL,IAAItB,EAAYsB,EAAQtB,UACpBA,GAAWA,EAAUe,IAAIxB,EAAMC,EACrC,CACF,CAGI4B,EAAU7K,OACZ+I,EAAOC,GAAQ6B,SAER9B,EAAOC,EAElB,CAEA,OAAOD,CAlCP,CAJE,IAAKI,EAAQ7J,EAAEgB,KAAKoK,GAAYxL,EAAIiK,EAAMnJ,OAAQd,IAChDwL,EAAUvB,EAAMjK,IAAI+L,SARL,CA8CrB,EAMAtC,EAAOuC,KAAO,SAASlC,EAAMC,EAAUG,GAErC,IAAIL,EAASF,EAAUsC,EAAS,CAAC,EAAGnC,EAAMC,EAAU5J,KAAKmL,IAAIY,KAAK/L,OAElE,MADoB,iBAAT2J,GAAgC,MAAXI,IAAiBH,OAAW,GACrD5J,KAAKyH,GAAGiC,EAAQE,EAAUG,EACnC,EAGAT,EAAO0C,aAAe,SAAShL,EAAK2I,EAAMC,GAExC,IAAIF,EAASF,EAAUsC,EAAS,CAAC,EAAGnC,EAAMC,EAAU5J,KAAKsL,cAAcS,KAAK/L,KAAMgB,IAClF,OAAOhB,KAAKwK,SAASxJ,EAAK0I,EAC5B,EAIA,IAAIoC,EAAU,SAAShH,EAAK6E,EAAMC,EAAUqC,GAC1C,GAAIrC,EAAU,CACZ,IAAIiC,EAAO/G,EAAI6E,GAAQ1J,EAAE4L,MAAK,WAC5BI,EAAMtC,EAAMkC,GACZjC,EAASrJ,MAAMP,KAAMmB,UACvB,IACA0K,EAAKF,UAAY/B,CACnB,CACA,OAAO9E,CACT,EAMAwE,EAAOxF,QAAU,SAAS6F,GACxB,IAAK3J,KAAKkK,QAAS,OAAOlK,KAI1B,IAFA,IAAIW,EAASuL,KAAKC,IAAI,EAAGhL,UAAUR,OAAS,GACxCD,EAAON,MAAMO,GACRd,EAAI,EAAGA,EAAIc,EAAQd,IAAKa,EAAKb,GAAKsB,UAAUtB,EAAI,GAGzD,OADA2J,EAAU4C,EAAYpM,KAAKkK,QAASP,OAAM,EAAQjJ,GAC3CV,IACT,EAGA,IAAIoM,EAAa,SAASC,EAAW1C,EAAMC,EAAUlJ,GACnD,GAAI2L,EAAW,CACb,IAAI3C,EAAS2C,EAAU1C,GACnB2C,EAAYD,EAAUjL,IACtBsI,GAAU4C,IAAWA,EAAYA,EAAUhM,SAC3CoJ,GAAQ6C,EAAc7C,EAAQhJ,GAC9B4L,GAAWC,EAAcD,EAAW,CAAC3C,GAAM5E,OAAOrE,GACxD,CACA,OAAO2L,CACT,EAKIE,EAAgB,SAAS7C,EAAQhJ,GACnC,IAAI8L,EAAI3M,GAAK,EAAGoC,EAAIyH,EAAO/I,OAAQ8L,EAAK/L,EAAK,GAAIgM,EAAKhM,EAAK,GAAIiM,EAAKjM,EAAK,GACzE,OAAQA,EAAKC,QACX,KAAK,EAAG,OAASd,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAAShJ,KAAK4L,EAAG/L,KAAM,OAChE,KAAK,EAAG,OAASZ,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAAShJ,KAAK4L,EAAG/L,IAAKgM,GAAK,OACpE,KAAK,EAAG,OAAS5M,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAAShJ,KAAK4L,EAAG/L,IAAKgM,EAAIC,GAAK,OACxE,KAAK,EAAG,OAAS7M,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAAShJ,KAAK4L,EAAG/L,IAAKgM,EAAIC,EAAIC,GAAK,OAC5E,QAAS,OAAS9M,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAASrJ,MAAMiM,EAAG/L,IAAKC,GAAO,OAE5E,EAIImK,EAAY,SAAS+B,EAAU5L,GACjChB,KAAKsK,GAAKsC,EAASnC,UACnBzK,KAAK4M,SAAWA,EAChB5M,KAAKgB,IAAMA,EACXhB,KAAKuK,SAAU,EACfvK,KAAKiL,MAAQ,EACbjL,KAAKkK,aAAU,CACjB,EAEAW,EAAUxK,UAAUoH,GAAK6B,EAAO7B,GAMhCoD,EAAUxK,UAAU8K,IAAM,SAASxB,EAAMC,GACvC,IAAIgC,EACA5L,KAAKuK,SACPvK,KAAKkK,QAAUV,EAAU4B,EAAQpL,KAAKkK,QAASP,EAAMC,EAAU,CAC7DG,aAAS,EACTsB,eAAW,IAEbO,GAAW5L,KAAKkK,UAEhBlK,KAAKiL,QACLW,EAAyB,IAAf5L,KAAKiL,OAEbW,GAAS5L,KAAK4L,SACpB,EAGAf,EAAUxK,UAAUuL,QAAU,kBACrB5L,KAAK4M,SAAShC,aAAa5K,KAAKgB,IAAIyJ,WACtCzK,KAAKuK,gBAAgBvK,KAAKgB,IAAIqJ,WAAWrK,KAAKsK,GACrD,EAGAhB,EAAOyC,KAASzC,EAAO7B,GACvB6B,EAAOuD,OAASvD,EAAO6B,IAIvBlL,EAAE0G,OAAOzG,EAAUoJ,GAYnB,IAAIzC,EAAQ3G,EAAS2G,MAAQ,SAASG,EAAYnE,GAChD,IAAIiK,EAAQ9F,GAAc,CAAC,EAC3BnE,IAAYA,EAAU,CAAC,GACvB7C,KAAK+M,cAAcxM,MAAMP,KAAMmB,WAC/BnB,KAAKyE,IAAMxE,EAAEyK,SAAS1K,KAAKgN,WAC3BhN,KAAKgH,WAAa,CAAC,EACfnE,EAAQoC,aAAYjF,KAAKiF,WAAapC,EAAQoC,YAC9CpC,EAAQoK,QAAOH,EAAQ9M,KAAKiN,MAAMH,EAAOjK,IAAY,CAAC,GAC1D,IAAIiE,EAAW7G,EAAEiN,OAAOlN,KAAM,YAC9B8M,EAAQ7M,EAAE6G,SAAS7G,EAAE0G,OAAO,CAAC,EAAGG,EAAUgG,GAAQhG,GAClD9G,KAAKyF,IAAIqH,EAAOjK,GAChB7C,KAAKmN,QAAU,CAAC,EAChBnN,KAAKuH,WAAWhH,MAAMP,KAAMmB,UAC9B,EAGAlB,EAAE0G,OAAOE,EAAMxG,UAAWiJ,EAAQ,CAGhC6D,QAAS,KAGTC,gBAAiB,KAIjBC,YAAa,KAIbL,UAAW,IAIXD,cAAe,WAAW,EAI1BxF,WAAY,WAAW,EAGvB+F,OAAQ,SAASzK,GACf,OAAO5C,EAAEsD,MAAMvD,KAAKgH,WACtB,EAIAuG,KAAM,WACJ,OAAOrN,EAASqN,KAAKhN,MAAMP,KAAMmB,UACnC,EAGAwC,IAAK,SAAS6D,GACZ,OAAOxH,KAAKgH,WAAWQ,EACzB,EAGAgG,OAAQ,SAAShG,GACf,OAAOvH,EAAEuN,OAAOxN,KAAK2D,IAAI6D,GAC3B,EAIAiG,IAAK,SAASjG,GACZ,OAAyB,MAAlBxH,KAAK2D,IAAI6D,EAClB,EAGAkG,QAAS,SAASZ,GAChB,QAAS7M,EAAEwJ,SAASqD,EAAO9M,KAAlBC,CAAwBD,KAAKgH,WACxC,EAKAvB,IAAK,SAASpE,EAAK4E,EAAKpD,GACtB,GAAW,MAAPxB,EAAa,OAAOrB,KAGxB,IAAI8M,EAWJ,GAVmB,iBAARzL,GACTyL,EAAQzL,EACRwB,EAAUoD,IAET6G,EAAQ,CAAC,GAAGzL,GAAO4E,EAGtBpD,IAAYA,EAAU,CAAC,IAGlB7C,KAAK2N,UAAUb,EAAOjK,GAAU,OAAO,EAG5C,IAAI2C,EAAa3C,EAAQ2C,MACrBoI,EAAa/K,EAAQ+K,OACrBC,EAAa,GACbC,EAAa9N,KAAK+N,UACtB/N,KAAK+N,WAAY,EAEZD,IACH9N,KAAKgO,oBAAsB/N,EAAEsD,MAAMvD,KAAKgH,YACxChH,KAAKmN,QAAU,CAAC,GAGlB,IAAIc,EAAUjO,KAAKgH,WACfmG,EAAUnN,KAAKmN,QACfe,EAAUlO,KAAKgO,oBAGnB,IAAK,IAAIxG,KAAQsF,EACf7G,EAAM6G,EAAMtF,GACPvH,EAAEkO,QAAQF,EAAQzG,GAAOvB,IAAM4H,EAAQlJ,KAAK6C,GAC5CvH,EAAEkO,QAAQD,EAAK1G,GAAOvB,UAGlBkH,EAAQ3F,GAFf2F,EAAQ3F,GAAQvB,EAIlBT,SAAeyI,EAAQzG,GAAQyG,EAAQzG,GAAQvB,EAIjD,GAAIjG,KAAKqN,eAAeP,EAAO,CAC7B,IAAIsB,EAASpO,KAAKsK,GAClBtK,KAAKsK,GAAKtK,KAAK2D,IAAI3D,KAAKqN,aACxBrN,KAAK8D,QAAQ,WAAY9D,KAAMoO,EAAQvL,EACzC,CAGA,IAAK+K,EAAQ,CACPC,EAAQlN,SAAQX,KAAKqO,SAAWxL,GACpC,IAAK,IAAIhD,EAAI,EAAGA,EAAIgO,EAAQlN,OAAQd,IAClCG,KAAK8D,QAAQ,UAAY+J,EAAQhO,GAAIG,KAAMiO,EAAQJ,EAAQhO,IAAKgD,EAEpE,CAIA,GAAIiL,EAAU,OAAO9N,KACrB,IAAK4N,EACH,KAAO5N,KAAKqO,UACVxL,EAAU7C,KAAKqO,SACfrO,KAAKqO,UAAW,EAChBrO,KAAK8D,QAAQ,SAAU9D,KAAM6C,GAKjC,OAFA7C,KAAKqO,UAAW,EAChBrO,KAAK+N,WAAY,EACV/N,IACT,EAIAwF,MAAO,SAASgC,EAAM3E,GACpB,OAAO7C,KAAKyF,IAAI+B,OAAM,EAAQvH,EAAE0G,OAAO,CAAC,EAAG9D,EAAS,CAAC2C,OAAO,IAC9D,EAGAkD,MAAO,SAAS7F,GACd,IAAIiK,EAAQ,CAAC,EACb,IAAK,IAAIzL,KAAOrB,KAAKgH,WAAY8F,EAAMzL,QAAO,EAC9C,OAAOrB,KAAKyF,IAAIqH,EAAO7M,EAAE0G,OAAO,CAAC,EAAG9D,EAAS,CAAC2C,OAAO,IACvD,EAIA8I,WAAY,SAAS9G,GACnB,OAAY,MAARA,GAAsBvH,EAAEqF,QAAQtF,KAAKmN,SAClClN,EAAEwN,IAAIzN,KAAKmN,QAAS3F,EAC7B,EAQA5B,kBAAmB,SAASvB,GAC1B,IAAKA,EAAM,QAAOrE,KAAKsO,cAAerO,EAAEsD,MAAMvD,KAAKmN,SACnD,IAEImB,EAFAC,EAAMvO,KAAK+N,UAAY/N,KAAKgO,oBAAsBhO,KAAKgH,WACvDmG,EAAU,CAAC,EAEf,IAAK,IAAI3F,KAAQnD,EAAM,CACrB,IAAI4B,EAAM5B,EAAKmD,GACXvH,EAAEkO,QAAQI,EAAI/G,GAAOvB,KACzBkH,EAAQ3F,GAAQvB,EAChBqI,GAAa,EACf,CACA,QAAOA,GAAanB,CACtB,EAIAqB,SAAU,SAAShH,GACjB,OAAY,MAARA,GAAiBxH,KAAKgO,oBACnBhO,KAAKgO,oBAAoBxG,GADsB,IAExD,EAIA1B,mBAAoB,WAClB,OAAO7F,EAAEsD,MAAMvD,KAAKgO,oBACtB,EAIAS,MAAO,SAAS5L,GACdA,EAAU5C,EAAE0G,OAAO,CAACsG,OAAO,GAAOpK,GAClC,IAAIsC,EAAQnF,KACR0O,EAAU7L,EAAQ6L,QAQtB,OAPA7L,EAAQ6L,QAAU,SAASC,GACzB,IAAIC,EAAc/L,EAAQoK,MAAQ9H,EAAM8H,MAAM0B,EAAM9L,GAAW8L,EAC/D,IAAKxJ,EAAMM,IAAImJ,EAAa/L,GAAU,OAAO,EACzC6L,GAASA,EAAQ9N,KAAKiC,EAAQkH,QAAS5E,EAAOwJ,EAAM9L,GACxDsC,EAAMrB,QAAQ,OAAQqB,EAAOwJ,EAAM9L,EACrC,EACAgM,EAAU7O,KAAM6C,GACT7C,KAAKuN,KAAK,OAAQvN,KAAM6C,EACjC,EAKAiM,KAAM,SAASzN,EAAK4E,EAAKpD,GAEvB,IAAIiK,EACO,MAAPzL,GAA8B,iBAARA,GACxByL,EAAQzL,EACRwB,EAAUoD,IAET6G,EAAQ,CAAC,GAAGzL,GAAO4E,EAItB,IAAI8I,GADJlM,EAAU5C,EAAE0G,OAAO,CAACqI,UAAU,EAAM/B,OAAO,GAAOpK,IAC/BkM,KAKnB,GAAIjC,IAAUiC,GACZ,IAAK/O,KAAKyF,IAAIqH,EAAOjK,GAAU,OAAO,OACjC,IAAK7C,KAAK2N,UAAUb,EAAOjK,GAChC,OAAO,EAKT,IAAIsC,EAAQnF,KACR0O,EAAU7L,EAAQ6L,QAClB1H,EAAahH,KAAKgH,WACtBnE,EAAQ6L,QAAU,SAASC,GAEzBxJ,EAAM6B,WAAaA,EACnB,IAAI4H,EAAc/L,EAAQoK,MAAQ9H,EAAM8H,MAAM0B,EAAM9L,GAAW8L,EAE/D,GADII,IAAMH,EAAc3O,EAAE0G,OAAO,CAAC,EAAGmG,EAAO8B,IACxCA,IAAgBzJ,EAAMM,IAAImJ,EAAa/L,GAAU,OAAO,EACxD6L,GAASA,EAAQ9N,KAAKiC,EAAQkH,QAAS5E,EAAOwJ,EAAM9L,GACxDsC,EAAMrB,QAAQ,OAAQqB,EAAOwJ,EAAM9L,EACrC,EACAgM,EAAU7O,KAAM6C,GAGZiK,GAASiC,IAAM/O,KAAKgH,WAAa/G,EAAE0G,OAAO,CAAC,EAAGK,EAAY8F,IAE9D,IAAImC,EAASjP,KAAKkP,QAAU,SAAWrM,EAAQsM,MAAQ,QAAU,SAClD,UAAXF,GAAuBpM,EAAQiK,QAAOjK,EAAQiK,MAAQA,GAC1D,IAAIsC,EAAMpP,KAAKuN,KAAK0B,EAAQjP,KAAM6C,GAKlC,OAFA7C,KAAKgH,WAAaA,EAEXoI,CACT,EAKAC,QAAS,SAASxM,GAChBA,EAAUA,EAAU5C,EAAEsD,MAAMV,GAAW,CAAC,EACxC,IAAIsC,EAAQnF,KACR0O,EAAU7L,EAAQ6L,QAClBK,EAAOlM,EAAQkM,KAEfM,EAAU,WACZlK,EAAMmG,gBACNnG,EAAMrB,QAAQ,UAAWqB,EAAOA,EAAMF,WAAYpC,EACpD,EAEAA,EAAQ6L,QAAU,SAASC,GACrBI,GAAMM,IACNX,GAASA,EAAQ9N,KAAKiC,EAAQkH,QAAS5E,EAAOwJ,EAAM9L,GACnDsC,EAAM+J,SAAS/J,EAAMrB,QAAQ,OAAQqB,EAAOwJ,EAAM9L,EACzD,EAEA,IAAIuM,GAAM,EAQV,OAPIpP,KAAKkP,QACPjP,EAAEyB,MAAMmB,EAAQ6L,UAEhBG,EAAU7O,KAAM6C,GAChBuM,EAAMpP,KAAKuN,KAAK,SAAUvN,KAAM6C,IAE7BkM,GAAMM,IACJD,CACT,EAKAE,IAAK,WACH,IAAIC,EACFtP,EAAEiN,OAAOlN,KAAM,YACfC,EAAEiN,OAAOlN,KAAKiF,WAAY,QAC1BuK,IACF,GAAIxP,KAAKkP,QAAS,OAAOK,EACzB,IAAIjF,EAAKtK,KAAK2D,IAAI3D,KAAKqN,aACvB,OAAOkC,EAAKE,QAAQ,SAAU,OAASC,mBAAmBpF,EAC5D,EAIA2C,MAAO,SAAS0B,EAAM9L,GACpB,OAAO8L,CACT,EAGApL,MAAO,WACL,OAAO,IAAIvD,KAAK2P,YAAY3P,KAAKgH,WACnC,EAGAkI,MAAO,WACL,OAAQlP,KAAKyN,IAAIzN,KAAKqN,YACxB,EAGAuC,QAAS,SAAS/M,GAChB,OAAO7C,KAAK2N,UAAU,CAAC,EAAG1N,EAAE0G,OAAO,CAAC,EAAG9D,EAAS,CAACmM,UAAU,IAC7D,EAIArB,UAAW,SAASb,EAAOjK,GACzB,IAAKA,EAAQmM,WAAahP,KAAKgP,SAAU,OAAO,EAChDlC,EAAQ7M,EAAE0G,OAAO,CAAC,EAAG3G,KAAKgH,WAAY8F,GACtC,IAAIhC,EAAQ9K,KAAKoN,gBAAkBpN,KAAKgP,SAASlC,EAAOjK,IAAY,KACpE,OAAKiI,IACL9K,KAAK8D,QAAQ,UAAW9D,KAAM8K,EAAO7K,EAAE0G,OAAO9D,EAAS,CAACuK,gBAAiBtC,MAClE,EACT,IAiBF,IAAI3D,EAAajH,EAASiH,WAAa,SAAS3D,EAAQX,GACtDA,IAAYA,EAAU,CAAC,GACvB7C,KAAK+M,cAAcxM,MAAMP,KAAMmB,WAC3B0B,EAAQsC,QAAOnF,KAAKmF,MAAQtC,EAAQsC,YACb,IAAvBtC,EAAQgN,aAAuB7P,KAAK6P,WAAahN,EAAQgN,YAC7D7P,KAAK8P,SACL9P,KAAKuH,WAAWhH,MAAMP,KAAMmB,WACxBqC,GAAQxD,KAAKkG,MAAM1C,EAAQvD,EAAE0G,OAAO,CAACiH,QAAQ,GAAO/K,GAC1D,EAGIkN,EAAa,CAACzL,KAAK,EAAMc,QAAQ,EAAMiD,OAAO,GAC9C2H,EAAa,CAAC1L,KAAK,EAAMc,QAAQ,GAGjCR,EAAS,SAASqL,EAAOC,EAAQzM,GACnCA,EAAKyI,KAAKiE,IAAIjE,KAAKC,IAAI1I,EAAI,GAAIwM,EAAMtP,QACrC,IAEId,EAFAuQ,EAAOhQ,MAAM6P,EAAMtP,OAAS8C,GAC5B9C,EAASuP,EAAOvP,OAEpB,IAAKd,EAAI,EAAGA,EAAIuQ,EAAKzP,OAAQd,IAAKuQ,EAAKvQ,GAAKoQ,EAAMpQ,EAAI4D,GACtD,IAAK5D,EAAI,EAAGA,EAAIc,EAAQd,IAAKoQ,EAAMpQ,EAAI4D,GAAMyM,EAAOrQ,GACpD,IAAKA,EAAI,EAAGA,EAAIuQ,EAAKzP,OAAQd,IAAKoQ,EAAMpQ,EAAIc,EAAS8C,GAAM2M,EAAKvQ,EAClE,EAGAI,EAAE0G,OAAOQ,EAAW9G,UAAWiJ,EAAQ,CAIrCnE,MAAO0B,EAKPkG,cAAe,WAAW,EAI1BxF,WAAY,WAAW,EAIvB+F,OAAQ,SAASzK,GACf,OAAO7C,KAAK8E,KAAI,SAASK,GAAS,OAAOA,EAAMmI,OAAOzK,EAAU,GAClE,EAGA0K,KAAM,WACJ,OAAOrN,EAASqN,KAAKhN,MAAMP,KAAMmB,UACnC,EAKAmD,IAAK,SAASd,EAAQX,GACpB,OAAO7C,KAAKyF,IAAIjC,EAAQvD,EAAE0G,OAAO,CAAC0B,OAAO,GAAQxF,EAASmN,GAC5D,EAGA5K,OAAQ,SAAS5B,EAAQX,GACvBA,EAAU5C,EAAE0G,OAAO,CAAC,EAAG9D,GACvB,IAAIwN,GAAYpQ,EAAEiB,QAAQsC,GAC1BA,EAAS6M,EAAW,CAAC7M,GAAUA,EAAOlD,QACtC,IAAIgQ,EAAUtQ,KAAKuQ,cAAc/M,EAAQX,GAKzC,OAJKA,EAAQ+K,QAAU0C,EAAQ3P,SAC7BkC,EAAQgL,QAAU,CAAC2C,MAAO,GAAIC,OAAQ,GAAIH,QAASA,GACnDtQ,KAAK8D,QAAQ,SAAU9D,KAAM6C,IAExBwN,EAAWC,EAAQ,GAAKA,CACjC,EAMA7K,IAAK,SAASjC,EAAQX,GACpB,GAAc,MAAVW,EAAJ,EAEAX,EAAU5C,EAAE0G,OAAO,CAAC,EAAGoJ,EAAYlN,IACvBoK,QAAUjN,KAAK0Q,SAASlN,KAClCA,EAASxD,KAAKiN,MAAMzJ,EAAQX,IAAY,IAG1C,IAAIwN,GAAYpQ,EAAEiB,QAAQsC,GAC1BA,EAAS6M,EAAW,CAAC7M,GAAUA,EAAOlD,QAEtC,IAAImD,EAAKZ,EAAQY,GACP,MAANA,IAAYA,GAAMA,GAClBA,EAAKzD,KAAKW,SAAQ8C,EAAKzD,KAAKW,QAC5B8C,EAAK,IAAGA,GAAMzD,KAAKW,OAAS,GAEhC,IAgBIwE,EAAOtF,EAhBP4F,EAAM,GACNkL,EAAQ,GACRC,EAAU,GACVC,EAAW,GACXC,EAAW,CAAC,EAEZxM,EAAMzB,EAAQyB,IACd+D,EAAQxF,EAAQwF,MAChBjD,EAASvC,EAAQuC,OAEjB2L,GAAO,EACPC,EAAWhR,KAAK6P,YAAoB,MAANpM,IAA+B,IAAjBZ,EAAQkO,KACpDE,EAAWhR,EAAEiR,SAASlR,KAAK6P,YAAc7P,KAAK6P,WAAa,KAK/D,IAAKhQ,EAAI,EAAGA,EAAI2D,EAAO7C,OAAQd,IAAK,CAClCsF,EAAQ3B,EAAO3D,GAIf,IAAIsR,EAAWnR,KAAK2D,IAAIwB,GACxB,GAAIgM,EAAU,CACZ,GAAI9I,GAASlD,IAAUgM,EAAU,CAC/B,IAAIrE,EAAQ9M,KAAK0Q,SAASvL,GAASA,EAAM6B,WAAa7B,EAClDtC,EAAQoK,QAAOH,EAAQqE,EAASlE,MAAMH,EAAOjK,IACjDsO,EAAS1L,IAAIqH,EAAOjK,GACpB+N,EAAQjM,KAAKwM,GACTH,IAAaD,IAAMA,EAAOI,EAAS7C,WAAW2C,GACpD,CACKH,EAASK,EAAS1M,OACrBqM,EAASK,EAAS1M,MAAO,EACzBgB,EAAId,KAAKwM,IAEX3N,EAAO3D,GAAKsR,CAGd,MAAW7M,IACTa,EAAQ3B,EAAO3D,GAAKG,KAAKoR,cAAcjM,EAAOtC,MAE5C8N,EAAMhM,KAAKQ,GACXnF,KAAKqR,cAAclM,EAAOtC,GAC1BiO,EAAS3L,EAAMV,MAAO,EACtBgB,EAAId,KAAKQ,GAGf,CAGA,GAAIC,EAAQ,CACV,IAAKvF,EAAI,EAAGA,EAAIG,KAAKW,OAAQd,IAEtBiR,GADL3L,EAAQnF,KAAKwD,OAAO3D,IACA4E,MAAMoM,EAASlM,KAAKQ,GAEtC0L,EAASlQ,QAAQX,KAAKuQ,cAAcM,EAAUhO,EACpD,CAGA,IAAIyO,GAAe,EACf7B,GAAWuB,GAAY1M,GAAOc,EAkBlC,GAjBIK,EAAI9E,QAAU8O,GAChB6B,EAAetR,KAAKW,SAAW8E,EAAI9E,QAAUV,EAAEsR,KAAKvR,KAAKwD,QAAQ,SAASgO,EAAG1Q,GAC3E,OAAO0Q,IAAM/L,EAAI3E,EACnB,IACAd,KAAKwD,OAAO7C,OAAS,EACrBiE,EAAO5E,KAAKwD,OAAQiC,EAAK,GACzBzF,KAAKW,OAASX,KAAKwD,OAAO7C,QACjBgQ,EAAMhQ,SACXqQ,IAAUD,GAAO,GACrBnM,EAAO5E,KAAKwD,OAAQmN,EAAa,MAANlN,EAAazD,KAAKW,OAAS8C,GACtDzD,KAAKW,OAASX,KAAKwD,OAAO7C,QAIxBoQ,GAAM/Q,KAAK+Q,KAAK,CAACnD,QAAQ,KAGxB/K,EAAQ+K,OAAQ,CACnB,IAAK/N,EAAI,EAAGA,EAAI8Q,EAAMhQ,OAAQd,IAClB,MAAN4D,IAAYZ,EAAQ/B,MAAQ2C,EAAK5D,IACrCsF,EAAQwL,EAAM9Q,IACRiE,QAAQ,MAAOqB,EAAOnF,KAAM6C,IAEhCkO,GAAQO,IAActR,KAAK8D,QAAQ,OAAQ9D,KAAM6C,IACjD8N,EAAMhQ,QAAUkQ,EAASlQ,QAAUiQ,EAAQjQ,UAC7CkC,EAAQgL,QAAU,CAChB2C,MAAOG,EACPL,QAASO,EACTJ,OAAQG,GAEV5Q,KAAK8D,QAAQ,SAAU9D,KAAM6C,GAEjC,CAGA,OAAOwN,EAAW7M,EAAO,GAAKA,CA/GJ,CAgH5B,EAMA0C,MAAO,SAAS1C,EAAQX,GACtBA,EAAUA,EAAU5C,EAAEsD,MAAMV,GAAW,CAAC,EACxC,IAAK,IAAIhD,EAAI,EAAGA,EAAIG,KAAKwD,OAAO7C,OAAQd,IACtCG,KAAKyR,iBAAiBzR,KAAKwD,OAAO3D,GAAIgD,GAMxC,OAJAA,EAAQsD,eAAiBnG,KAAKwD,OAC9BxD,KAAK8P,SACLtM,EAASxD,KAAKsE,IAAId,EAAQvD,EAAE0G,OAAO,CAACiH,QAAQ,GAAO/K,IAC9CA,EAAQ+K,QAAQ5N,KAAK8D,QAAQ,QAAS9D,KAAM6C,GAC1CW,CACT,EAGAmB,KAAM,SAASQ,EAAOtC,GACpB,OAAO7C,KAAKsE,IAAIa,EAAOlF,EAAE0G,OAAO,CAAClD,GAAIzD,KAAKW,QAASkC,GACrD,EAGAe,IAAK,SAASf,GACZ,IAAIsC,EAAQnF,KAAKyD,GAAGzD,KAAKW,OAAS,GAClC,OAAOX,KAAKoF,OAAOD,EAAOtC,EAC5B,EAGA6O,QAAS,SAASvM,EAAOtC,GACvB,OAAO7C,KAAKsE,IAAIa,EAAOlF,EAAE0G,OAAO,CAAClD,GAAI,GAAIZ,GAC3C,EAGAgB,MAAO,SAAShB,GACd,IAAIsC,EAAQnF,KAAKyD,GAAG,GACpB,OAAOzD,KAAKoF,OAAOD,EAAOtC,EAC5B,EAGAvC,MAAO,WACL,OAAOA,EAAMC,MAAMP,KAAKwD,OAAQrC,UAClC,EAIAwC,IAAK,SAAS3C,GACZ,GAAW,MAAPA,EACJ,OAAOhB,KAAK2R,MAAM3Q,IAChBhB,KAAK2R,MAAM3R,KAAK4R,QAAQ5R,KAAK0Q,SAAS1P,GAAOA,EAAIgG,WAAahG,EAAKA,EAAIqM,eACvErM,EAAIyD,KAAOzE,KAAK2R,MAAM3Q,EAAIyD,IAC9B,EAGAgJ,IAAK,SAASzM,GACZ,OAAwB,MAAjBhB,KAAK2D,IAAI3C,EAClB,EAGAyC,GAAI,SAAS3C,GAEX,OADIA,EAAQ,IAAGA,GAASd,KAAKW,QACtBX,KAAKwD,OAAO1C,EACrB,EAIA4C,MAAO,SAASoJ,EAAO+E,GACrB,OAAO7R,KAAK6R,EAAQ,OAAS,UAAU/E,EACzC,EAIAgF,UAAW,SAAShF,GAClB,OAAO9M,KAAK0D,MAAMoJ,GAAO,EAC3B,EAKAiE,KAAM,SAASlO,GACb,IAAIgN,EAAa7P,KAAK6P,WACtB,IAAKA,EAAY,MAAM,IAAIkC,MAAM,0CACjClP,IAAYA,EAAU,CAAC,GAEvB,IAAIlC,EAASkP,EAAWlP,OAUxB,OATIV,EAAEoC,WAAWwN,KAAaA,EAAaA,EAAW9D,KAAK/L,OAG5C,IAAXW,GAAgBV,EAAEiR,SAASrB,GAC7B7P,KAAKwD,OAASxD,KAAKgS,OAAOnC,GAE1B7P,KAAKwD,OAAOuN,KAAKlB,GAEdhN,EAAQ+K,QAAQ5N,KAAK8D,QAAQ,OAAQ9D,KAAM6C,GACzC7C,IACT,EAGAiS,MAAO,SAASzK,GACd,OAAOxH,KAAK8E,IAAI0C,EAAO,GACzB,EAKAiH,MAAO,SAAS5L,GAEd,IAAI6L,GADJ7L,EAAU5C,EAAE0G,OAAO,CAACsG,OAAO,GAAOpK,IACZ6L,QAClBzJ,EAAajF,KAQjB,OAPA6C,EAAQ6L,QAAU,SAASC,GACzB,IAAIM,EAASpM,EAAQqD,MAAQ,QAAU,MACvCjB,EAAWgK,GAAQN,EAAM9L,GACrB6L,GAASA,EAAQ9N,KAAKiC,EAAQkH,QAAS9E,EAAY0J,EAAM9L,GAC7DoC,EAAWnB,QAAQ,OAAQmB,EAAY0J,EAAM9L,EAC/C,EACAgM,EAAU7O,KAAM6C,GACT7C,KAAKuN,KAAK,OAAQvN,KAAM6C,EACjC,EAKAqP,OAAQ,SAAS/M,EAAOtC,GAEtB,IAAIkM,GADJlM,EAAUA,EAAU5C,EAAEsD,MAAMV,GAAW,CAAC,GACrBkM,KAEnB,KADA5J,EAAQnF,KAAKoR,cAAcjM,EAAOtC,IACtB,OAAO,EACdkM,GAAM/O,KAAKsE,IAAIa,EAAOtC,GAC3B,IAAIoC,EAAajF,KACb0O,EAAU7L,EAAQ6L,QAMtB,OALA7L,EAAQ6L,QAAU,SAAS8C,EAAG7C,EAAMwD,GAC9BpD,GAAM9J,EAAWX,IAAIkN,EAAGW,GACxBzD,GAASA,EAAQ9N,KAAKuR,EAAapI,QAASyH,EAAG7C,EAAMwD,EAC3D,EACAhN,EAAM2J,KAAK,KAAMjM,GACVsC,CACT,EAIA8H,MAAO,SAAS0B,EAAM9L,GACpB,OAAO8L,CACT,EAGApL,MAAO,WACL,OAAO,IAAIvD,KAAK2P,YAAY3P,KAAKwD,OAAQ,CACvC2B,MAAOnF,KAAKmF,MACZ0K,WAAY7P,KAAK6P,YAErB,EAGA+B,QAAS,SAAS9E,EAAOO,GACvB,OAAOP,EAAMO,GAAerN,KAAKmF,MAAM9E,UAAUgN,aAAe,KAClE,EAGA+E,OAAQ,WACN,OAAO,IAAIC,EAAmBrS,KAAMsS,EACtC,EAGArR,KAAM,WACJ,OAAO,IAAIoR,EAAmBrS,KAAMuS,EACtC,EAGAC,QAAS,WACP,OAAO,IAAIH,EAAmBrS,KAAMyS,EACtC,EAIA3C,OAAQ,WACN9P,KAAKW,OAAS,EACdX,KAAKwD,OAAS,GACdxD,KAAK2R,MAAS,CAAC,CACjB,EAIAP,cAAe,SAAStE,EAAOjK,GAC7B,OAAI7C,KAAK0Q,SAAS5D,IACXA,EAAM7H,aAAY6H,EAAM7H,WAAajF,MACnC8M,KAETjK,EAAUA,EAAU5C,EAAEsD,MAAMV,GAAW,CAAC,GAChCoC,WAAajF,MAInBmF,EADEnF,KAAKmF,MAAM9E,UACL,IAAIL,KAAKmF,MAAM2H,EAAOjK,GAGtB7C,KAAKmF,MAAM2H,EAAOjK,IAGjBuK,iBACXpN,KAAK8D,QAAQ,UAAW9D,KAAMmF,EAAMiI,gBAAiBvK,IAC9C,GAF4BsC,GARnC,IAAIA,CAWN,EAGAoL,cAAe,SAAS/M,EAAQX,GAE9B,IADA,IAAIyN,EAAU,GACLzQ,EAAI,EAAGA,EAAI2D,EAAO7C,OAAQd,IAAK,CACtC,IAAIsF,EAAQnF,KAAK2D,IAAIH,EAAO3D,IAC5B,GAAKsF,EAAL,CAEA,IAAIrE,EAAQd,KAAK6E,QAAQM,GACzBnF,KAAKwD,OAAOoB,OAAO9D,EAAO,GAC1Bd,KAAKW,gBAIEX,KAAK2R,MAAMxM,EAAMV,KACxB,IAAI6F,EAAKtK,KAAK4R,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aACpC,MAAN/C,UAAmBtK,KAAK2R,MAAMrH,GAE7BzH,EAAQ+K,SACX/K,EAAQ/B,MAAQA,EAChBqE,EAAMrB,QAAQ,SAAUqB,EAAOnF,KAAM6C,IAGvCyN,EAAQ3L,KAAKQ,GACbnF,KAAKyR,iBAAiBtM,EAAOtC,EAlBT,CAmBtB,CACA,OAAOyN,CACT,EAIAI,SAAU,SAASvL,GACjB,OAAOA,aAAiB0B,CAC1B,EAGAwK,cAAe,SAASlM,EAAOtC,GAC7B7C,KAAK2R,MAAMxM,EAAMV,KAAOU,EACxB,IAAImF,EAAKtK,KAAK4R,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aACpC,MAAN/C,IAAYtK,KAAK2R,MAAMrH,GAAMnF,GACjCA,EAAMsC,GAAG,MAAOzH,KAAK0S,cAAe1S,KACtC,EAGAyR,iBAAkB,SAAStM,EAAOtC,UACzB7C,KAAK2R,MAAMxM,EAAMV,KACxB,IAAI6F,EAAKtK,KAAK4R,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aACpC,MAAN/C,UAAmBtK,KAAK2R,MAAMrH,GAC9BtK,OAASmF,EAAMF,mBAAmBE,EAAMF,WAC5CE,EAAMgG,IAAI,MAAOnL,KAAK0S,cAAe1S,KACvC,EAMA0S,cAAe,SAASC,EAAOxN,EAAOF,EAAYpC,GAChD,GAAIsC,EAAO,CACT,IAAe,QAAVwN,GAA6B,WAAVA,IAAuB1N,IAAejF,KAAM,OAEpE,GADc,YAAV2S,GAAqB3S,KAAKoF,OAAOD,EAAOtC,GAC9B,aAAV8P,EAAsB,CACxB,IAAIvE,EAASpO,KAAK4R,QAAQzM,EAAMW,qBAAsBX,EAAMkI,aACxD/C,EAAKtK,KAAK4R,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aAChC,MAAVe,UAAuBpO,KAAK2R,MAAMvD,GAC5B,MAAN9D,IAAYtK,KAAK2R,MAAMrH,GAAMnF,EACnC,CACF,CACAnF,KAAK8D,QAAQvD,MAAMP,KAAMmB,UAC3B,IAOF,IAAIyR,EAA+B,mBAAXC,QAAyBA,OAAOC,SACpDF,IACFzL,EAAW9G,UAAUuS,GAAczL,EAAW9G,UAAU+R,QAU1D,IAAIC,EAAqB,SAASpN,EAAY8N,GAC5C/S,KAAKgT,YAAc/N,EACnBjF,KAAKiT,MAAQF,EACb/S,KAAKkT,OAAS,CAChB,EAKIZ,EAAkB,EAClBC,EAAgB,EAChBE,EAAsB,EAGtBG,IACFP,EAAmBhS,UAAUuS,GAAc,WACzC,OAAO5S,IACT,GAGFqS,EAAmBhS,UAAU8S,KAAO,WAClC,GAAInT,KAAKgT,YAAa,CAGpB,GAAIhT,KAAKkT,OAASlT,KAAKgT,YAAYrS,OAAQ,CACzC,IAII+G,EAJAvC,EAAQnF,KAAKgT,YAAYvP,GAAGzD,KAAKkT,QAKrC,GAJAlT,KAAKkT,SAIDlT,KAAKiT,QAAUX,EACjB5K,EAAQvC,MACH,CACL,IAAImF,EAAKtK,KAAKgT,YAAYpB,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aAExD3F,EADE1H,KAAKiT,QAAUV,EACTjI,EAEA,CAACA,EAAInF,EAEjB,CACA,MAAO,CAACuC,MAAOA,EAAO0L,MAAM,EAC9B,CAIApT,KAAKgT,iBAAc,CACrB,CAEA,MAAO,CAACtL,WAAO,EAAQ0L,MAAM,EAC/B,EAeA,IAAIC,EAAOnT,EAASmT,KAAO,SAASxQ,GAClC7C,KAAKyE,IAAMxE,EAAEyK,SAAS,QACtB1K,KAAK+M,cAAcxM,MAAMP,KAAMmB,WAC/BlB,EAAE0G,OAAO3G,KAAMC,EAAE8F,KAAKlD,EAASyQ,IAC/BtT,KAAKuT,iBACLvT,KAAKuH,WAAWhH,MAAMP,KAAMmB,UAC9B,EAGIqS,EAAwB,iBAGxBF,EAAc,CAAC,QAAS,aAAc,KAAM,KAAM,aAAc,YAAa,UAAW,UAG5FrT,EAAE0G,OAAO0M,EAAKhT,UAAWiJ,EAAQ,CAG/BmK,QAAS,MAIT1K,EAAG,SAAS2K,GACV,OAAO1T,KAAK2T,IAAIC,KAAKF,EACvB,EAIA3G,cAAe,WAAW,EAI1BxF,WAAY,WAAW,EAKvBsM,OAAQ,WACN,OAAO7T,IACT,EAIAoF,OAAQ,WAGN,OAFApF,KAAK8T,iBACL9T,KAAKsL,gBACEtL,IACT,EAKA8T,eAAgB,WACd9T,KAAK2T,IAAIvO,QACX,EAIA2O,WAAY,SAASC,GAInB,OAHAhU,KAAKiU,mBACLjU,KAAKkU,YAAYF,GACjBhU,KAAKmU,iBACEnU,IACT,EAOAkU,YAAa,SAASE,GACpBpU,KAAK2T,IAAMS,aAAclU,EAAS6I,EAAIqL,EAAKlU,EAAS6I,EAAEqL,GACtDpU,KAAKoU,GAAKpU,KAAK2T,IAAI,EACrB,EAeAQ,eAAgB,SAASzK,GAEvB,GADAA,IAAWA,EAASzJ,EAAEiN,OAAOlN,KAAM,YAC9B0J,EAAQ,OAAO1J,KAEpB,IAAK,IAAIqB,KADTrB,KAAKiU,mBACWvK,EAAQ,CACtB,IAAIuF,EAASvF,EAAOrI,GAEpB,GADKpB,EAAEoC,WAAW4M,KAASA,EAASjP,KAAKiP,IACpCA,EAAL,CACA,IAAIoF,EAAQhT,EAAIgT,MAAMb,GACtBxT,KAAKsU,SAASD,EAAM,GAAIA,EAAM,GAAIpF,EAAOlD,KAAK/L,MAFzB,CAGvB,CACA,OAAOA,IACT,EAKAsU,SAAU,SAASC,EAAWb,EAAU9G,GAEtC,OADA5M,KAAK2T,IAAIlM,GAAG8M,EAAY,kBAAoBvU,KAAKyE,IAAKiP,EAAU9G,GACzD5M,IACT,EAKAiU,iBAAkB,WAEhB,OADIjU,KAAK2T,KAAK3T,KAAK2T,IAAIxI,IAAI,kBAAoBnL,KAAKyE,KAC7CzE,IACT,EAIAwU,WAAY,SAASD,EAAWb,EAAU9G,GAExC,OADA5M,KAAK2T,IAAIxI,IAAIoJ,EAAY,kBAAoBvU,KAAKyE,IAAKiP,EAAU9G,GAC1D5M,IACT,EAIAyU,eAAgB,SAAShB,GACvB,OAAOiB,SAASC,cAAclB,EAChC,EAMAF,eAAgB,WACd,GAAKvT,KAAKoU,GAORpU,KAAK+T,WAAW9T,EAAEiN,OAAOlN,KAAM,WAPnB,CACZ,IAAI8M,EAAQ7M,EAAE0G,OAAO,CAAC,EAAG1G,EAAEiN,OAAOlN,KAAM,eACpCA,KAAKsK,KAAIwC,EAAMxC,GAAKrK,EAAEiN,OAAOlN,KAAM,OACnCA,KAAK4U,YAAW9H,EAAM,SAAW7M,EAAEiN,OAAOlN,KAAM,cACpDA,KAAK+T,WAAW/T,KAAKyU,eAAexU,EAAEiN,OAAOlN,KAAM,aACnDA,KAAK6U,eAAe/H,EACtB,CAGF,EAIA+H,eAAgB,SAAS7N,GACvBhH,KAAK2T,IAAInM,KAAKR,EAChB,IAWF,IAAI8N,EAAY,SAASvF,EAAM5O,EAAQsO,EAAQ8F,GAC7C,OAAQpU,GACN,KAAK,EAAG,OAAO,WACb,OAAO4O,EAAKN,GAAQjP,KAAK+U,GAC3B,EACA,KAAK,EAAG,OAAO,SAASrN,GACtB,OAAO6H,EAAKN,GAAQjP,KAAK+U,GAAYrN,EACvC,EACA,KAAK,EAAG,OAAO,SAAS+B,EAAUM,GAChC,OAAOwF,EAAKN,GAAQjP,KAAK+U,GAAYC,EAAGvL,EAAUzJ,MAAO+J,EAC3D,EACA,KAAK,EAAG,OAAO,SAASN,EAAUwL,EAAYlL,GAC5C,OAAOwF,EAAKN,GAAQjP,KAAK+U,GAAYC,EAAGvL,EAAUzJ,MAAOiV,EAAYlL,EACvE,EACA,QAAS,OAAO,WACd,IAAIrJ,EAAOJ,EAAMM,KAAKO,WAEtB,OADAT,EAAKgR,QAAQ1R,KAAK+U,IACXxF,EAAKN,GAAQ1O,MAAMgP,EAAM7O,EAClC,EAEJ,EAEIwU,EAAuB,SAASC,EAAO5F,EAAM6F,EAASL,GACxD9U,EAAEsF,KAAK6P,GAAS,SAASzU,EAAQsO,GAC3BM,EAAKN,KAASkG,EAAM9U,UAAU4O,GAAU6F,EAAUvF,EAAM5O,EAAQsO,EAAQ8F,GAC9E,GACF,EAGIC,EAAK,SAASvL,EAAU4L,GAC1B,OAAIpV,EAAEoC,WAAWoH,GAAkBA,EAC/BxJ,EAAEyG,SAAS+C,KAAc4L,EAAS3E,SAASjH,GAAkB6L,EAAa7L,GAC1ExJ,EAAEiR,SAASzH,GAAkB,SAAStE,GAAS,OAAOA,EAAMxB,IAAI8F,EAAW,EACxEA,CACT,EACI6L,EAAe,SAASxI,GAC1B,IAAIyI,EAAUtV,EAAEyN,QAAQZ,GACxB,OAAO,SAAS3H,GACd,OAAOoQ,EAAQpQ,EAAM6B,WACvB,CACF,EAKIwO,EAAoB,CAACC,QAAS,EAAGlQ,KAAM,EAAGT,IAAK,EAAG4Q,QAAS,EAAGC,OAAQ,EACxEC,MAAO,EAAGC,OAAQ,EAAGC,YAAa,EAAGC,MAAO,EAAGnC,KAAM,EAAGoC,OAAQ,EAAGC,OAAQ,EAC3EC,OAAQ,EAAGC,OAAQ,EAAGC,MAAO,EAAGhV,IAAK,EAAGmQ,KAAM,EAAG8E,IAAK,EAAGC,QAAS,EAAGC,SAAU,EAC/E7R,SAAU,EAAG8R,OAAQ,EAAGrK,IAAK,EAAGgE,IAAK,EAAGsG,QAAS,EAAGC,KAAM,EAAG7E,MAAO,EACpE8E,KAAM,EAAGC,KAAM,EAAGC,QAAS,EAAGC,KAAM,EAAG1G,KAAM,EAAG2G,KAAM,EAAGC,KAAM,EAC/DC,QAAS,EAAGC,WAAY,EAAGrS,QAAS,EAAGsS,QAAS,EAAGC,YAAa,EAChE9R,QAAS,EAAG+R,MAAO,EAAGC,OAAQ,EAAGC,UAAW,EAAGC,QAAS,EAAGC,QAAS,EACpEzF,OAAQ,EAAG0F,QAAS,EAAGC,UAAW,EAAGC,cAAe,GAKlDC,EAAe,CAAC5W,KAAM,EAAGmR,OAAQ,EAAG0F,MAAO,EAAGC,OAAQ,EAAGhS,KAAM,EACjEiS,KAAM,EAAGX,MAAO,EAAG/R,QAAS,GAI9BrF,EAAEsF,KAAK,CACL,CAAC4B,EAAYqO,EAAmB,UAChC,CAAC3O,EAAOgR,EAAc,gBACrB,SAASI,GACV,IAAIC,EAAOD,EAAO,GACd7C,EAAU6C,EAAO,GACjBlD,EAAYkD,EAAO,GAEvBC,EAAKC,MAAQ,SAASnX,GACpB,IAAIoX,EAAWnY,EAAE0V,OAAO1V,EAAEoY,UAAUrX,IAAM,SAASsX,EAAM3O,GAEvD,OADA2O,EAAK3O,GAAQ,EACN2O,CACT,GAAG,CAAC,GACJpD,EAAqBgD,EAAMlX,EAAKoX,EAAUrD,EAC5C,EAEAG,EAAqBgD,EAAMjY,EAAGmV,EAASL,EACzC,IAoBA7U,EAASqN,KAAO,SAAS0B,EAAQ9J,EAAOtC,GACtC,IAAIL,EAAO+V,EAAUtJ,GAGrBhP,EAAE6G,SAASjE,IAAYA,EAAU,CAAC,GAAI,CACpCsG,YAAajJ,EAASiJ,YACtBC,YAAalJ,EAASkJ,cAIxB,IAAIoP,EAAS,CAAChW,KAAMA,EAAMiW,SAAU,QAqBpC,GAlBK5V,EAAQyM,MACXkJ,EAAOlJ,IAAMrP,EAAEiN,OAAO/H,EAAO,QAAUqK,KAIrB,MAAhB3M,EAAQ6V,OAAgBvT,GAAqB,WAAX8J,GAAkC,WAAXA,GAAkC,UAAXA,IAClFuJ,EAAOG,YAAc,mBACrBH,EAAOE,KAAOE,KAAKC,UAAUhW,EAAQiK,OAAS3H,EAAMmI,OAAOzK,KAIzDA,EAAQuG,cACVoP,EAAOG,YAAc,oCACrBH,EAAOE,KAAOF,EAAOE,KAAO,CAACvT,MAAOqT,EAAOE,MAAQ,CAAC,GAKlD7V,EAAQsG,cAAyB,QAAT3G,GAA2B,WAATA,GAA8B,UAATA,GAAmB,CACpFgW,EAAOhW,KAAO,OACVK,EAAQuG,cAAaoP,EAAOE,KAAKI,QAAUtW,GAC/C,IAAIuW,EAAalW,EAAQkW,WACzBlW,EAAQkW,WAAa,SAAS3J,GAE5B,GADAA,EAAI4J,iBAAiB,yBAA0BxW,GAC3CuW,EAAY,OAAOA,EAAWxY,MAAMP,KAAMmB,UAChD,CACF,CAGoB,QAAhBqX,EAAOhW,MAAmBK,EAAQuG,cACpCoP,EAAOS,aAAc,GAIvB,IAAInO,EAAQjI,EAAQiI,MACpBjI,EAAQiI,MAAQ,SAASsE,EAAK8J,EAAYC,GACxCtW,EAAQqW,WAAaA,EACrBrW,EAAQsW,YAAcA,EAClBrO,GAAOA,EAAMlK,KAAKiC,EAAQkH,QAASqF,EAAK8J,EAAYC,EAC1D,EAGA,IAAI/J,EAAMvM,EAAQuM,IAAMlP,EAASkZ,KAAKnZ,EAAE0G,OAAO6R,EAAQ3V,IAEvD,OADAsC,EAAMrB,QAAQ,UAAWqB,EAAOiK,EAAKvM,GAC9BuM,CACT,EAGA,IAAImJ,EAAY,CACd,OAAU,OACV,OAAU,MACV,MAAS,QACT,OAAU,SACV,KAAQ,OAKVrY,EAASkZ,KAAO,WACd,OAAOlZ,EAAS6I,EAAEqQ,KAAK7Y,MAAML,EAAS6I,EAAG5H,UAC3C,EAOA,IAAIkY,EAASnZ,EAASmZ,OAAS,SAASxW,GACtCA,IAAYA,EAAU,CAAC,GACvB7C,KAAK+M,cAAcxM,MAAMP,KAAMmB,WAC3B0B,EAAQyW,SAAQtZ,KAAKsZ,OAASzW,EAAQyW,QAC1CtZ,KAAKuZ,cACLvZ,KAAKuH,WAAWhH,MAAMP,KAAMmB,UAC9B,EAIIqY,EAAgB,aAChBC,EAAgB,eAChBC,EAAgB,SAChBC,EAAgB,2BAGpB1Z,EAAE0G,OAAO0S,EAAOhZ,UAAWiJ,EAAQ,CAIjCyD,cAAe,WAAW,EAI1BxF,WAAY,WAAW,EAQvBqS,MAAO,SAASA,EAAOjQ,EAAMC,GACtB3J,EAAE4Z,SAASD,KAAQA,EAAQ5Z,KAAK8Z,eAAeF,IAChD3Z,EAAEoC,WAAWsH,KACfC,EAAWD,EACXA,EAAO,IAEJC,IAAUA,EAAW5J,KAAK2J,IAC/B,IAAIoQ,EAAS/Z,KASb,OARAE,EAAS8Z,QAAQJ,MAAMA,GAAO,SAASK,GACrC,IAAIvZ,EAAOqZ,EAAOG,mBAAmBN,EAAOK,IACC,IAAzCF,EAAOI,QAAQvQ,EAAUlJ,EAAMiJ,KACjCoQ,EAAOjW,QAAQvD,MAAMwZ,EAAQ,CAAC,SAAWpQ,GAAM5E,OAAOrE,IACtDqZ,EAAOjW,QAAQ,QAAS6F,EAAMjJ,GAC9BR,EAAS8Z,QAAQlW,QAAQ,QAASiW,EAAQpQ,EAAMjJ,GAEpD,IACOV,IACT,EAIAma,QAAS,SAASvQ,EAAUlJ,EAAMiJ,GAC5BC,GAAUA,EAASrJ,MAAMP,KAAMU,EACrC,EAGA0Z,SAAU,SAASH,EAAUpX,GAE3B,OADA3C,EAAS8Z,QAAQI,SAASH,EAAUpX,GAC7B7C,IACT,EAKAuZ,YAAa,WACX,GAAKvZ,KAAKsZ,OAAV,CACAtZ,KAAKsZ,OAASrZ,EAAEiN,OAAOlN,KAAM,UAE7B,IADA,IAAI4Z,EAAON,EAASrZ,EAAEgB,KAAKjB,KAAKsZ,QACC,OAAzBM,EAAQN,EAAO1V,QACrB5D,KAAK4Z,MAAMA,EAAO5Z,KAAKsZ,OAAOM,GAJR,CAM1B,EAIAE,eAAgB,SAASF,GAOvB,OANAA,EAAQA,EAAMnK,QAAQkK,EAAc,QACnClK,QAAQ+J,EAAe,WACvB/J,QAAQgK,GAAY,SAASpF,EAAOgG,GACnC,OAAOA,EAAWhG,EAAQ,UAC5B,IACC5E,QAAQiK,EAAY,YACd,IAAIY,OAAO,IAAMV,EAAQ,uBAClC,EAKAM,mBAAoB,SAASN,EAAOK,GAClC,IAAIzB,EAASoB,EAAMW,KAAKN,GAAU3Z,MAAM,GACxC,OAAOL,EAAE6E,IAAI0T,GAAQ,SAASgC,EAAO3a,GAEnC,OAAIA,IAAM2Y,EAAO7X,OAAS,EAAU6Z,GAAS,KACtCA,EAAQC,mBAAmBD,GAAS,IAC7C,GACF,IAYF,IAAIE,EAAUxa,EAASwa,QAAU,WAC/B1a,KAAKgL,SAAW,GAChBhL,KAAK2a,SAAW3a,KAAK2a,SAAS5O,KAAK/L,MAGb,oBAAXD,SACTC,KAAK4a,SAAW7a,OAAO6a,SACvB5a,KAAKga,QAAUja,OAAOia,QAE1B,EAGIa,EAAgB,eAGhBC,EAAe,aAGfC,EAAe,OAGnBL,EAAQM,SAAU,EAGlB/a,EAAE0G,OAAO+T,EAAQra,UAAWiJ,EAAQ,CAIlC2R,SAAU,GAGVC,OAAQ,WAEN,OADWlb,KAAK4a,SAASO,SAAS1L,QAAQ,SAAU,SACpCzP,KAAKV,OAASU,KAAKob,WACrC,EAGAC,UAAW,WAGT,OAFWrb,KAAKsb,eAAetb,KAAK4a,SAASO,UACzB7a,MAAM,EAAGN,KAAKV,KAAKqB,OAAS,GAAK,MACjCX,KAAKV,IAC3B,EAKAgc,eAAgB,SAASrB,GACvB,OAAOsB,UAAUtB,EAASxK,QAAQ,OAAQ,SAC5C,EAIA2L,UAAW,WACT,IAAI/G,EAAQrU,KAAK4a,SAASY,KAAK/L,QAAQ,MAAO,IAAI4E,MAAM,QACxD,OAAOA,EAAQA,EAAM,GAAK,EAC5B,EAIAoH,QAAS,SAAS1b,GAChB,IAAIsU,GAAStU,GAAUC,MAAM4a,SAASY,KAAKnH,MAAM,UACjD,OAAOA,EAAQA,EAAM,GAAK,EAC5B,EAGAqH,QAAS,WACP,IAAIC,EAAO3b,KAAKsb,eACdtb,KAAK4a,SAASO,SAAWnb,KAAKob,aAC9B9a,MAAMN,KAAKV,KAAKqB,OAAS,GAC3B,MAA0B,MAAnBgb,EAAKC,OAAO,GAAaD,EAAKrb,MAAM,GAAKqb,CAClD,EAGAE,YAAa,SAAS5B,GAQpB,OAPgB,MAAZA,IAEAA,EADEja,KAAK8b,gBAAkB9b,KAAK+b,iBACnB/b,KAAK0b,UAEL1b,KAAKyb,WAGbxB,EAASxK,QAAQoL,EAAe,GACzC,EAIAmB,MAAO,SAASnZ,GACd,GAAI6X,EAAQM,QAAS,MAAM,IAAIjJ,MAAM,6CAoBrC,GAnBA2I,EAAQM,SAAU,EAIlBhb,KAAK6C,QAAmB5C,EAAE0G,OAAO,CAACrH,KAAM,KAAMU,KAAK6C,QAASA,GAC5D7C,KAAKV,KAAmBU,KAAK6C,QAAQvD,KACrCU,KAAK+b,kBAA+C,IAA5B/b,KAAK6C,QAAQoZ,WACrCjc,KAAKkc,eAAmB,iBAAkBnc,cAAqC,IAA1B2U,SAASyH,cAA2BzH,SAASyH,aAAe,GACjHnc,KAAKoc,eAAmBpc,KAAK+b,kBAAoB/b,KAAKkc,eACtDlc,KAAKqc,kBAAqBrc,KAAK6C,QAAQyZ,UACvCtc,KAAKuc,iBAAsBvc,KAAKga,UAAWha,KAAKga,QAAQsC,WACxDtc,KAAK8b,cAAmB9b,KAAKqc,iBAAmBrc,KAAKuc,cACrDvc,KAAKia,SAAmBja,KAAK6b,cAG7B7b,KAAKV,MAAQ,IAAMU,KAAKV,KAAO,KAAKmQ,QAAQqL,EAAc,KAItD9a,KAAK+b,kBAAoB/b,KAAKqc,gBAAiB,CAIjD,IAAKrc,KAAKuc,gBAAkBvc,KAAKkb,SAAU,CACzC,IAAIsB,EAAWxc,KAAKV,KAAKgB,MAAM,GAAI,IAAM,IAGzC,OAFAN,KAAK4a,SAASnL,QAAQ+M,EAAW,IAAMxc,KAAK0b,YAErC,CAIT,CAAW1b,KAAKuc,eAAiBvc,KAAKkb,UACpClb,KAAKoa,SAASpa,KAAKyb,UAAW,CAAChM,SAAS,GAG5C,CAKA,IAAKzP,KAAKkc,gBAAkBlc,KAAK+b,mBAAqB/b,KAAK8b,cAAe,CACxE9b,KAAKyc,OAAS/H,SAASC,cAAc,UACrC3U,KAAKyc,OAAOC,IAAM,eAClB1c,KAAKyc,OAAOE,MAAMC,QAAU,OAC5B5c,KAAKyc,OAAOI,UAAY,EACxB,IAAIC,EAAOpI,SAASoI,KAEhBC,EAAUD,EAAKE,aAAahd,KAAKyc,OAAQK,EAAKG,YAAYC,cAC9DH,EAAQrI,SAASyI,OACjBJ,EAAQrI,SAAS0I,QACjBL,EAAQnC,SAASyC,KAAO,IAAMrd,KAAKia,QACrC,CAGA,IAAIqD,EAAmBvd,OAAOud,kBAAoB,SAAS/I,EAAW3H,GACpE,OAAO2Q,YAAY,KAAOhJ,EAAW3H,EACvC,EAYA,GARI5M,KAAK8b,cACPwB,EAAiB,WAAYtd,KAAK2a,UAAU,GACnC3a,KAAKoc,iBAAmBpc,KAAKyc,OACtCa,EAAiB,aAActd,KAAK2a,UAAU,GACrC3a,KAAK+b,mBACd/b,KAAKwd,kBAAoBC,YAAYzd,KAAK2a,SAAU3a,KAAKib,YAGtDjb,KAAK6C,QAAQ+K,OAAQ,OAAO5N,KAAK0d,SACxC,EAIAC,KAAM,WAEJ,IAAIC,EAAsB7d,OAAO6d,qBAAuB,SAASrJ,EAAW3H,GAC1E,OAAOiR,YAAY,KAAOtJ,EAAW3H,EACvC,EAGI5M,KAAK8b,cACP8B,EAAoB,WAAY5d,KAAK2a,UAAU,GACtC3a,KAAKoc,iBAAmBpc,KAAKyc,QACtCmB,EAAoB,aAAc5d,KAAK2a,UAAU,GAI/C3a,KAAKyc,SACP/H,SAASoI,KAAKgB,YAAY9d,KAAKyc,QAC/Bzc,KAAKyc,OAAS,MAIZzc,KAAKwd,mBAAmBO,cAAc/d,KAAKwd,mBAC/C9C,EAAQM,SAAU,CACpB,EAIApB,MAAO,SAASA,EAAOhQ,GACrB5J,KAAKgL,SAAS0G,QAAQ,CAACkI,MAAOA,EAAOhQ,SAAUA,GACjD,EAIA+Q,SAAU,SAASzP,GACjB,IAAI+C,EAAUjO,KAAK6b,cAQnB,GAJI5N,IAAYjO,KAAKia,UAAYja,KAAKyc,SACpCxO,EAAUjO,KAAKyb,QAAQzb,KAAKyc,OAAOS,gBAGjCjP,IAAYjO,KAAKia,SAAU,OAAO,EAClCja,KAAKyc,QAAQzc,KAAKoa,SAASnM,GAC/BjO,KAAK0d,SACP,EAKAA,QAAS,SAASzD,GAEhB,QAAKja,KAAKqb,cACVpB,EAAWja,KAAKia,SAAWja,KAAK6b,YAAY5B,GACrCha,EAAEsR,KAAKvR,KAAKgL,UAAU,SAASU,GACpC,GAAIA,EAAQkO,MAAM5P,KAAKiQ,GAErB,OADAvO,EAAQ9B,SAASqQ,IACV,CAEX,IACF,EASAG,SAAU,SAASH,EAAUpX,GAC3B,IAAK6X,EAAQM,QAAS,OAAO,EACxBnY,IAAuB,IAAZA,IAAkBA,EAAU,CAACiB,UAAWjB,IAGxDoX,EAAWja,KAAK6b,YAAY5B,GAAY,IAGxC,IAAIuC,EAAWxc,KAAKV,KACH,KAAb2a,GAA0C,MAAvBA,EAAS2B,OAAO,KACrCY,EAAWA,EAASlc,MAAM,GAAI,IAAM,KAEtC,IAAIgP,EAAMkN,EAAWvC,EAGrBA,EAAWA,EAASxK,QAAQsL,EAAc,IAG1C,IAAIiD,EAAkBhe,KAAKsb,eAAerB,GAE1C,GAAIja,KAAKia,WAAa+D,EAAtB,CAIA,GAHAhe,KAAKia,SAAW+D,EAGZhe,KAAK8b,cACP9b,KAAKga,QAAQnX,EAAQ4M,QAAU,eAAiB,aAAa,CAAC,EAAGiF,SAASuJ,MAAO3O,OAI5E,KAAItP,KAAK+b,iBAmBd,OAAO/b,KAAK4a,SAASsD,OAAO5O,GAjB5B,GADAtP,KAAKme,YAAYne,KAAK4a,SAAUX,EAAUpX,EAAQ4M,SAC9CzP,KAAKyc,QAAUxC,IAAaja,KAAKyb,QAAQzb,KAAKyc,OAAOS,eAAgB,CACvE,IAAIH,EAAU/c,KAAKyc,OAAOS,cAKrBra,EAAQ4M,UACXsN,EAAQrI,SAASyI,OACjBJ,EAAQrI,SAAS0I,SAGnBpd,KAAKme,YAAYpB,EAAQnC,SAAUX,EAAUpX,EAAQ4M,QACvD,CAMF,CACA,OAAI5M,EAAQiB,QAAgB9D,KAAK0d,QAAQzD,QAAzC,CA9B6C,CA+B/C,EAIAkE,YAAa,SAASvD,EAAUX,EAAUxK,GACxC,GAAIA,EAAS,CACX,IAAI+L,EAAOZ,EAASY,KAAK/L,QAAQ,qBAAsB,IACvDmL,EAASnL,QAAQ+L,EAAO,IAAMvB,EAChC,MAEEW,EAASyC,KAAO,IAAMpD,CAE1B,IAKF/Z,EAAS8Z,QAAU,IAAIU,EAQvB,IAAI/T,EAAS,SAASyX,EAAYC,GAChC,IACIC,EADAC,EAASve,KAwBb,OAjBEse,EADEF,GAAcne,EAAEwN,IAAI2Q,EAAY,eAC1BA,EAAWzO,YAEX,WAAY,OAAO4O,EAAOhe,MAAMP,KAAMmB,UAAY,EAI5DlB,EAAE0G,OAAO2X,EAAOC,EAAQF,GAIxBC,EAAMje,UAAYJ,EAAEiS,OAAOqM,EAAOle,UAAW+d,GAC7CE,EAAMje,UAAUsP,YAAc2O,EAI9BA,EAAME,UAAYD,EAAOle,UAElBie,CACT,EAGAzX,EAAMF,OAASQ,EAAWR,OAAS0S,EAAO1S,OAAS0M,EAAK1M,OAAS+T,EAAQ/T,OAASA,EAGlF,IAAI6I,EAAW,WACb,MAAM,IAAIuC,MAAM,iDAClB,EAGIlD,EAAY,SAAS1J,EAAOtC,GAC9B,IAAIiI,EAAQjI,EAAQiI,MACpBjI,EAAQiI,MAAQ,SAAS6D,GACnB7D,GAAOA,EAAMlK,KAAKiC,EAAQkH,QAAS5E,EAAOwJ,EAAM9L,GACpDsC,EAAMrB,QAAQ,QAASqB,EAAOwJ,EAAM9L,EACtC,CACF,EAEA,OAAO3C,CACT,CAtiEsBX,CAAQD,EAAME,EAASS,EAAG8I,EAC3C,4CAaJ,CA1BD,E,gBCNM,GAMH,SAAS0V,GAEVA,EAAWC,WAAW,MAAO,CAC3BC,aAAc,KACdC,WAAY,KACZC,kBAAmB,SAASC,EAAOC,GACjC,MAAO,UAAU/U,KAAK+U,EACxB,IAGFN,EAAWC,WAAW,aAAc,CAClCC,aAAc,KACdC,WAAY,KAEZC,kBAAmB,SAASC,EAAOC,EAASC,EAAWC,GACrD,OAAIjf,KAAKkf,SACA,WAAWlV,KAAK+U,IAAY,KAAK/U,KAAKgV,IAE9B,KAAXD,IAAkBE,EAAME,SAAiC,KAAtBF,EAAME,QAAQ3c,OAC9C,UAAUwH,KAAK+U,KAAa,KAAK/U,KAAKgV,EAEjD,IAGF,IAAII,EAAiB,kPAErBX,EAAWC,WAAW,MAAO,CAC3BC,aAAc,UACdC,WAAY,SACZC,kBAAmB,SAASrc,EAAMuc,EAASC,EAAWC,GACpD,IAAII,GAAS,EAGb,MAF0B,QAAtBrf,KAAKsf,gBACPD,IAASJ,EAAMlV,SAAUqV,EAAepV,KAAKiV,EAAMlV,QAAQ0J,WACrD4L,IAAoB,OAAR7c,GAAiB,KAAKwH,KAAK+U,IAAYE,EAAMlV,SAC9C,KAAKC,KAAKgV,GAC/B,IAIFP,EAAWc,gBAAgB,gBAAgB,SAAUC,EAAWC,EAAMC,GACpE,IAAIC,EAAK3f,KAAM4f,EAAUnB,EAAWoB,UAAUF,EAAGG,UAAWH,EAAGI,WAAWN,GAAMR,OAAOe,KACvFL,EAAGM,WAAU,WACX,GAAIT,EACFG,EAAGO,aAAaN,EAAQhB,WAAYc,GACpCC,EAAGO,aAAaN,EAAQjB,aAAcc,GAClCA,EAAKU,MAAQT,EAAGS,MAAQV,EAAKW,IAAMV,EAAGU,IACxCT,EAAGU,UAAUZ,EAAKU,KAAMV,EAAKW,GAAKR,EAAQjB,aAAahe,YACpD,CACL,IAAI2f,EAAUX,EAAGY,SAASd,EAAMC,GAC5Bc,EAAaF,EAAQzb,QAAQ+a,EAAQjB,cACrC8B,EAAWH,EAAQlJ,YAAYwI,EAAQhB,YACvC4B,GAAc,GAAKC,GAAY,GAAKA,EAAWD,IAEjDF,EAAUA,EAAQI,OAAO,EAAGF,GAEzBF,EAAQK,UAAUH,EAAaZ,EAAQjB,aAAahe,OAAQ8f,GAE5DH,EAAQI,OAAOD,EAAWb,EAAQhB,WAAWje,SAElDgf,EAAGO,aAAaI,EAASb,EAAMC,EACjC,CACF,GACF,IAGAjB,EAAWc,gBAAgB,mBAAmB,SAAUE,EAAMC,GAC5D,IAAIkB,EAAa5gB,KACjBA,KAAKigB,WAAU,WACb,IAAK,IAAIpgB,EAAI4f,EAAKU,KAAMtgB,GAAK6f,EAAGS,KAAMtgB,IACpC+gB,EAAWC,WAAWhhB,EAAG,QAE7B,GACF,IAGA4e,EAAWc,gBAAgB,mBAAmB,SAAUE,EAAMC,GAC5D,IAAIC,EAAK3f,KACL8gB,EAAQnB,EAAGG,UAAWiB,EAAOpB,EAAGY,SAASd,EAAMC,GAAIzV,MAAM,MACzDgV,EAAQR,EAAWuC,UAAUF,EAAOnB,EAAGI,WAAWN,GAAMR,OACxDgC,EAAUtB,EAAGuB,UAAU,WAEvBC,EAAM,GAAIC,EAAQ,EAAGC,EAAoB,IAAZ5B,EAAKW,GACtC,SAASkB,IACPH,GAAO,KACPE,GAAQ,IACND,CACJ,CAEA,IAAK,IAAIvhB,EAAI,EAAGA,EAAIkhB,EAAKpgB,SAAUd,EAAG,CAEpC,IADA,IAAI0hB,EAAS,IAAI9C,EAAW+C,aAAaT,EAAKlhB,GAAIohB,IAC1CM,EAAOE,OAAO,CACpB,IAAIC,EAAQjD,EAAWoB,UAAUiB,EAAO7B,GACpCtC,EAAQmE,EAAMa,MAAMJ,EAAQtC,GAAQ2C,EAAML,EAAOtT,UACrDsT,EAAOvF,MAAQuF,EAAOM,IACjBR,IAAS,KAAKrX,KAAK4X,KACtBT,GAAOS,EACPP,GAAQ,IAELA,GAASK,EAAM1B,KAAKnB,mBACrB6C,EAAM1B,KAAKnB,kBAAkBlC,EAAOiF,EAAKL,EAAOO,OAAOxhB,MAAMihB,EAAOM,MAAQd,EAAKlhB,EAAE,IAAM,GAAI6hB,EAAMzC,QACrGqC,GACJ,EACKC,EAAOM,KAAOf,EAAMiB,WAAWjB,EAAMiB,UAAU9C,IAC/CoC,GAASxhB,EAAIkhB,EAAKpgB,OAAS,GAAG2gB,GACrC,CAEA3B,EAAGM,WAAU,WACXN,EAAGO,aAAaiB,EAAK1B,EAAMC,GAC3B,IAAK,IAAIkC,EAAMnC,EAAKU,KAAO,EAAG6B,EAAMvC,EAAKU,KAAOiB,EAAOQ,GAAOI,IAAOJ,EACnEjC,EAAGkB,WAAWe,EAAK,SACrBjC,EAAGsC,aAAaxC,EAAME,EAAGuC,WAAU,GACrC,GACF,GACF,CAtHIC,CAAI,EAAQ,K,kBCQd,IAA+D1iB,EAAOD,QAGhE,WAAe,aAIrB,IAAI4iB,EAAYC,UAAUD,UACtBE,EAAWD,UAAUC,SAErBC,EAAQ,aAAavY,KAAKoY,GAC1BI,EAAY,UAAUxY,KAAKoY,GAC3BK,EAAU,wCAAwClI,KAAK6H,GACvDM,EAAO,cAAcnI,KAAK6H,GAC1BO,EAAKH,GAAaC,GAAWC,EAC7BE,EAAaD,IAAOH,EAAY9N,SAASyH,cAAgB,IAAMuG,GAAQD,GAAS,IAChFI,GAAUH,GAAQ,WAAW1Y,KAAKoY,GAClCU,EAAWD,GAAU,eAAe7Y,KAAKoY,GACzCW,GAAUL,GAAQ,gBAAgBnI,KAAK6H,GACvCY,EAAiBD,IAAWA,EAAO,GACnCE,EAAS,UAAUjZ,KAAKoY,GACxBc,EAAS,iBAAiBlZ,KAAKqY,UAAUc,QACzCC,EAAqB,+BAA+BpZ,KAAKoY,GACzDiB,EAAU,YAAYrZ,KAAKoY,GAE3BkB,EAAMJ,IAAW,cAAclZ,KAAKoY,IAAcC,UAAUkB,eAAiB,GAC7EC,EAAU,UAAUxZ,KAAKoY,GAEzBqB,EAASH,GAAOE,GAAW,mDAAmDxZ,KAAKoY,GACnFsB,EAAMJ,GAAO,MAAMtZ,KAAKsY,GACxBqB,EAAW,WAAW3Z,KAAKoY,GAC3BwB,EAAU,OAAO5Z,KAAKsY,GAEtBuB,EAAiBZ,GAAUb,EAAU/N,MAAM,uBAC3CwP,IAAkBA,EAAiBC,OAAOD,EAAe,KACzDA,GAAkBA,GAAkB,KAAMZ,GAAS,EAAOJ,GAAS,GAEvE,IAAIkB,EAAcL,IAAQZ,GAAYG,IAA6B,MAAlBY,GAA0BA,EAAiB,QACxFG,EAAoBzB,GAAUI,GAAMC,GAAc,EAEtD,SAASqB,EAAUC,GAAO,OAAO,IAAI5J,OAAO,UAAY4J,EAAM,gBAAiB,CAE/E,IAkCIC,EAlCAC,EAAU,SAASC,EAAMH,GAC3B,IAAIjW,EAAUoW,EAAKzP,UACfP,EAAQ4P,EAAUC,GAAK3J,KAAKtM,GAChC,GAAIoG,EAAO,CACT,IAAIzR,EAAQqL,EAAQ3N,MAAM+T,EAAMvT,MAAQuT,EAAM,GAAG1T,QACjD0jB,EAAKzP,UAAY3G,EAAQ3N,MAAM,EAAG+T,EAAMvT,QAAU8B,EAAQyR,EAAM,GAAKzR,EAAQ,GAC/E,CACF,EAEA,SAAS0hB,EAAepZ,GACtB,IAAK,IAAID,EAAQC,EAAEqZ,WAAW5jB,OAAQsK,EAAQ,IAAKA,EAC/CC,EAAE4S,YAAY5S,EAAE+R,YACpB,OAAO/R,CACT,CAEA,SAASsZ,EAAqBjG,EAAQrT,GACpC,OAAOoZ,EAAe/F,GAAQkG,YAAYvZ,EAC5C,CAEA,SAASwZ,EAAIC,EAAK5F,EAASnK,EAAW+H,GACpC,IAAIzR,EAAIwJ,SAASC,cAAcgQ,GAG/B,GAFI/P,IAAa1J,EAAE0J,UAAYA,GAC3B+H,IAASzR,EAAEyR,MAAMiI,QAAUjI,GACT,iBAAXoC,EAAuB7T,EAAEuZ,YAAY/P,SAASmQ,eAAe9F,SACnE,GAAIA,EAAW,IAAK,IAAIlf,EAAI,EAAGA,EAAIkf,EAAQpe,SAAUd,EAAKqL,EAAEuZ,YAAY1F,EAAQlf,IACrF,OAAOqL,CACT,CAEA,SAAS4Z,EAAKH,EAAK5F,EAASnK,EAAW+H,GACrC,IAAIzR,EAAIwZ,EAAIC,EAAK5F,EAASnK,EAAW+H,GAErC,OADAzR,EAAE6Z,aAAa,OAAQ,gBAChB7Z,CACT,CAmBA,SAASxG,EAAS6Z,EAAQD,GAGxB,GAFsB,GAAlBA,EAAM0G,WACN1G,EAAQA,EAAM2G,YACd1G,EAAO7Z,SACP,OAAO6Z,EAAO7Z,SAAS4Z,GAC3B,GAEE,GADsB,IAAlBA,EAAM0G,WAAkB1G,EAAQA,EAAM4G,MACtC5G,GAASC,EAAU,OAAO,QACvBD,EAAQA,EAAM2G,WACzB,CAEA,SAASE,IAIP,IAAIC,EACJ,IACEA,EAAgB1Q,SAAS0Q,aAG3B,CAFE,MAAMla,GACNka,EAAgB1Q,SAASoI,MAAQ,IACnC,CACA,KAAOsI,GAAiBA,EAAcC,YAAcD,EAAcC,WAAWD,eACzEA,EAAgBA,EAAcC,WAAWD,cAC7C,OAAOA,CACT,CAEA,SAASE,EAASjB,EAAMH,GACtB,IAAIjW,EAAUoW,EAAKzP,UACdqP,EAAUC,GAAKla,KAAKiE,KAAYoW,EAAKzP,YAAc3G,EAAU,IAAM,IAAMiW,EAChF,CACA,SAASqB,EAAY3lB,EAAG4lB,GAEtB,IADA,IAAIC,EAAK7lB,EAAEqK,MAAM,KACRpK,EAAI,EAAGA,EAAI4lB,EAAG9kB,OAAQd,IACvB4lB,EAAG5lB,KAAOokB,EAAUwB,EAAG5lB,IAAImK,KAAKwb,KAAMA,GAAK,IAAMC,EAAG5lB,IAC5D,OAAO2lB,CACT,CAnD4BrB,EAAxBzP,SAASgR,YAAuB,SAASrB,EAAMrI,EAAOgG,EAAK2D,GAC7D,IAAIC,EAAIlR,SAASgR,cAGjB,OAFAE,EAAEC,OAAOF,GAAWtB,EAAMrC,GAC1B4D,EAAEE,SAASzB,EAAMrI,GACV4J,CACT,EACe,SAASvB,EAAMrI,EAAOgG,GACnC,IAAI4D,EAAIlR,SAASoI,KAAKiJ,kBACtB,IAAMH,EAAEI,kBAAkB3B,EAAKY,WACX,CAApB,MAAM/Z,GAAK,OAAO0a,CAAE,CAIpB,OAHAA,EAAEK,UAAS,GACXL,EAAEM,QAAQ,YAAalE,GACvB4D,EAAEO,UAAU,YAAanK,GAClB4J,CACT,EAuCA,IAAIQ,EAAc,SAAS/B,GAAQA,EAAKnO,QAAU,EAMlD,SAASnK,EAAKsa,GACZ,IAAI3lB,EAAON,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,GACjD,OAAO,WAAW,OAAOklB,EAAE9lB,MAAM,KAAMG,EAAK,CAC9C,CAEA,SAAS4lB,EAAQtlB,EAAKulB,EAAQC,GAE5B,IAAK,IAAIC,KADJF,IAAUA,EAAS,CAAC,GACRvlB,GACTA,EAAI0lB,eAAeD,KAAwB,IAAdD,GAAwBD,EAAOG,eAAeD,KAC7EF,EAAOE,GAAQzlB,EAAIylB,IACzB,OAAOF,CACT,CAIA,SAASI,EAAY7E,EAAQE,EAAKf,EAAST,EAAYoG,GAC1C,MAAP5E,IAEU,IADZA,EAAMF,EAAO+E,OAAO,kBACH7E,EAAMF,EAAOnhB,QAEhC,IAAK,IAAId,EAAI2gB,GAAc,EAAGsG,EAAIF,GAAc,IAAK,CACnD,IAAIG,EAAUjF,EAAOjd,QAAQ,KAAMhF,GACnC,GAAIknB,EAAU,GAAKA,GAAW/E,EAC1B,OAAO8E,GAAK9E,EAAMniB,GACtBinB,GAAKC,EAAUlnB,EACfinB,GAAK7F,EAAW6F,EAAI7F,EACpBphB,EAAIknB,EAAU,CAChB,CACF,CAjCIzD,EACA8C,EAAc,SAAS/B,GAAQA,EAAK2C,eAAiB,EAAG3C,EAAK4C,aAAe5C,EAAK3c,MAAM/G,MAAQ,EAC1FgiB,IACLyD,EAAc,SAAS/B,GAAQ,IAAMA,EAAKnO,QAAuB,CAAX,MAAMgR,GAAK,CAAE,GAgCvE,IAAIC,EAAU,WACZnnB,KAAKsK,GAAK,KACVtK,KAAKqmB,EAAI,KACTrmB,KAAKonB,KAAO,EACZpnB,KAAK0L,QAAUK,EAAK/L,KAAKqnB,UAAWrnB,KACtC,EAmBA,SAAS6E,EAAQoL,EAAOyU,GACtB,IAAK,IAAI7kB,EAAI,EAAGA,EAAIoQ,EAAMtP,SAAUd,EAChC,GAAIoQ,EAAMpQ,IAAM6kB,EAAO,OAAO7kB,EAClC,OAAQ,CACV,CAtBAsnB,EAAQ9mB,UAAUgnB,UAAY,SAAUze,GACtCA,EAAK0B,GAAK,EACN1B,EAAKwe,OAAS,IAAIE,KACpB1e,EAAKyd,IAELkB,WAAW3e,EAAK8C,QAAS9C,EAAKwe,MAAQ,IAAIE,KAE9C,EACAH,EAAQ9mB,UAAUoF,IAAM,SAAU+hB,EAAInB,GACpCrmB,KAAKqmB,EAAIA,EACT,IAAIe,GAAQ,IAAIE,KAAOE,IAClBxnB,KAAKsK,IAAM8c,EAAOpnB,KAAKonB,QAC1BK,aAAaznB,KAAKsK,IAClBtK,KAAKsK,GAAKid,WAAWvnB,KAAK0L,QAAS8b,GACnCxnB,KAAKonB,KAAOA,EAEhB,EASA,IAAIM,EAAc,GAIdC,EAAO,CAACC,SAAU,WAAW,MAAO,iBAAiB,GAGrDC,EAAiB,CAACC,QAAQ,GAAQC,EAAY,CAACC,OAAQ,UAAWC,EAAW,CAACD,OAAQ,SAI1F,SAASE,EAAWpG,EAAQqG,EAAMlH,GAChC,IAAK,IAAIY,EAAM,EAAGuG,EAAM,IAAK,CAC3B,IAAIrB,EAAUjF,EAAOjd,QAAQ,KAAMgd,IACnB,GAAZkF,IAAiBA,EAAUjF,EAAOnhB,QACtC,IAAI0nB,EAAUtB,EAAUlF,EACxB,GAAIkF,GAAWjF,EAAOnhB,QAAUynB,EAAMC,GAAWF,EAC7C,OAAOtG,EAAM3V,KAAKiE,IAAIkY,EAASF,EAAOC,GAI1C,GAHAA,GAAOrB,EAAUlF,EAEjBA,EAAMkF,EAAU,GADhBqB,GAAOnH,EAAWmH,EAAMnH,IAEbkH,EAAQ,OAAOtG,CAC5B,CACF,CAEA,IAAIyG,EAAY,CAAC,IACjB,SAASC,EAASzB,GAChB,KAAOwB,EAAU3nB,QAAUmmB,GACvBwB,EAAU3jB,KAAK6jB,EAAIF,GAAa,KACpC,OAAOA,EAAUxB,EACnB,CAEA,SAAS0B,EAAI3nB,GAAO,OAAOA,EAAIA,EAAIF,OAAO,EAAG,CAE7C,SAASmE,EAAImL,EAAOoW,GAElB,IADA,IAAIlF,EAAM,GACDthB,EAAI,EAAGA,EAAIoQ,EAAMtP,OAAQd,IAAOshB,EAAIthB,GAAKwmB,EAAEpW,EAAMpQ,GAAIA,GAC9D,OAAOshB,CACT,CAEA,SAASsH,EAAaxY,EAAOvI,EAAOghB,GAElC,IADA,IAAI7G,EAAM,EAAG8G,EAAWD,EAAMhhB,GACvBma,EAAM5R,EAAMtP,QAAU+nB,EAAMzY,EAAM4R,KAAS8G,GAAY9G,IAC9D5R,EAAMrL,OAAOid,EAAK,EAAGna,EACvB,CAEA,SAASkhB,IAAW,CAEpB,SAASC,GAAUtZ,EAAMuZ,GACvB,IAAIC,EAQJ,OAPIC,OAAO9W,OACT6W,EAAOC,OAAO9W,OAAO3C,IAErBqZ,EAAQvoB,UAAYkP,EACpBwZ,EAAO,IAAIH,GAETE,GAASxC,EAAQwC,EAAOC,GACrBA,CACT,CAEA,IAAIE,GAA6B,4GACjC,SAASC,GAAgB9I,GACvB,MAAO,KAAKpW,KAAKoW,IAAOA,EAAK,MAC1BA,EAAG+I,eAAiB/I,EAAGgJ,eAAiBH,GAA2Bjf,KAAKoW,GAC7E,CACA,SAASiJ,GAAWjJ,EAAIkJ,GACtB,OAAKA,KACDA,EAAOC,OAAO1kB,QAAQ,QAAU,GAAKqkB,GAAgB9I,KAClDkJ,EAAOtf,KAAKoW,GAFG8I,GAAgB9I,EAGxC,CAEA,SAAS9a,GAAQtE,GACf,IAAK,IAAI8lB,KAAK9lB,EAAO,GAAIA,EAAI0lB,eAAeI,IAAM9lB,EAAI8lB,GAAM,OAAO,EACnE,OAAO,CACT,CAOA,IAAI0C,GAAiB,64DACrB,SAASC,GAAgBrJ,GAAM,OAAOA,EAAGsJ,WAAW,IAAM,KAAOF,GAAexf,KAAKoW,EAAI,CAGzF,SAASuJ,GAAmBC,EAAK/H,EAAKgI,GACpC,MAAQA,EAAM,EAAIhI,EAAM,EAAIA,EAAM+H,EAAIjpB,SAAW8oB,GAAgBG,EAAIhO,OAAOiG,KAASA,GAAOgI,EAC5F,OAAOhI,CACT,CAKA,SAASiI,GAAUC,EAAMtK,EAAMC,GAI7B,IADA,IAAImK,EAAMpK,EAAOC,GAAM,EAAI,IAClB,CACP,GAAID,GAAQC,EAAM,OAAOD,EACzB,IAAIuK,GAAQvK,EAAOC,GAAM,EAAGuK,EAAMJ,EAAM,EAAI3d,KAAKge,KAAKF,GAAQ9d,KAAKie,MAAMH,GACzE,GAAIC,GAAOxK,EAAQ,OAAOsK,EAAKE,GAAOxK,EAAOC,EACzCqK,EAAKE,GAAQvK,EAAKuK,EACfxK,EAAOwK,EAAMJ,CACtB,CACF,CAIA,SAASO,GAAoBC,EAAO5K,EAAMC,EAAI2G,GAC5C,IAAKgE,EAAS,OAAOhE,EAAE5G,EAAMC,EAAI,MAAO,GAExC,IADA,IAAI4K,GAAQ,EACHzqB,EAAI,EAAGA,EAAIwqB,EAAM1pB,SAAUd,EAAG,CACrC,IAAI0qB,EAAOF,EAAMxqB,IACb0qB,EAAK9K,KAAOC,GAAM6K,EAAK7K,GAAKD,GAAQA,GAAQC,GAAM6K,EAAK7K,IAAMD,KAC/D4G,EAAEna,KAAKC,IAAIoe,EAAK9K,KAAMA,GAAOvT,KAAKiE,IAAIoa,EAAK7K,GAAIA,GAAmB,GAAd6K,EAAKC,MAAa,MAAQ,MAAO3qB,GACrFyqB,GAAQ,EAEZ,CACKA,GAASjE,EAAE5G,EAAMC,EAAI,MAC5B,CAEA,IAAI+K,GAAY,KAChB,SAASC,GAAcL,EAAOjK,EAAIuK,GAChC,IAAIL,EACJG,GAAY,KACZ,IAAK,IAAI5qB,EAAI,EAAGA,EAAIwqB,EAAM1pB,SAAUd,EAAG,CACrC,IAAI+hB,EAAMyI,EAAMxqB,GAChB,GAAI+hB,EAAInC,KAAOW,GAAMwB,EAAIlC,GAAKU,EAAM,OAAOvgB,EACvC+hB,EAAIlC,IAAMU,IACRwB,EAAInC,MAAQmC,EAAIlC,IAAgB,UAAViL,EAAsBL,EAAQzqB,EACjD4qB,GAAY5qB,GAEjB+hB,EAAInC,MAAQW,IACVwB,EAAInC,MAAQmC,EAAIlC,IAAgB,UAAViL,EAAsBL,EAAQzqB,EACjD4qB,GAAY5qB,EAEvB,CACA,OAAgB,MAATyqB,EAAgBA,EAAQG,EACjC,CAyBA,IAAIG,GAAe,WAEjB,IAAIC,EAAW,2PAEXC,EAAc,6PAClB,SAASC,EAASC,GAChB,OAAIA,GAAQ,IAAeH,EAASjP,OAAOoP,GAClC,MAASA,GAAQA,GAAQ,KAAgB,IACzC,MAASA,GAAQA,GAAQ,KAAgBF,EAAYlP,OAAOoP,EAAO,MACnE,MAASA,GAAQA,GAAQ,KAAgB,IACzC,MAAUA,GAAQA,GAAQ,KAAiB,IACnC,MAARA,EAAyB,IACpB,GAChB,CAEA,IAAIC,EAAS,4CACTC,EAAY,SAAUC,EAAW,QAASC,EAAe,SAAUC,EAAc,OAErF,SAASC,EAASd,EAAO/K,EAAMC,GAC7B1f,KAAKwqB,MAAQA,EACbxqB,KAAKyf,KAAOA,EAAMzf,KAAK0f,GAAKA,CAC9B,CAEA,OAAO,SAASkK,EAAK2B,GACnB,IAAIC,EAAyB,OAAbD,EAAqB,IAAM,IAE3C,GAAkB,GAAd3B,EAAIjpB,QAA4B,OAAb4qB,IAAuBN,EAAOjhB,KAAK4f,GAAQ,OAAO,EAEzE,IADA,IAAI6B,EAAM7B,EAAIjpB,OAAQ+qB,EAAQ,GACrB7rB,EAAI,EAAGA,EAAI4rB,IAAO5rB,EACvB6rB,EAAM/mB,KAAKomB,EAASnB,EAAIF,WAAW7pB,KAMvC,IAAK,IAAI8rB,EAAM,EAAGzd,EAAOsd,EAAWG,EAAMF,IAAOE,EAAK,CACpD,IAAInpB,EAAOkpB,EAAMC,GACL,KAARnpB,EAAekpB,EAAMC,GAAOzd,EACzBA,EAAO1L,CAChB,CAOA,IAAK,IAAIopB,EAAM,EAAGhK,EAAM4J,EAAWI,EAAMH,IAAOG,EAAK,CACnD,IAAIC,EAASH,EAAME,GACL,KAAVC,GAAwB,KAAPjK,EAAc8J,EAAME,GAAO,IACvCT,EAASnhB,KAAK6hB,KAAWjK,EAAMiK,EAAsB,KAAVA,IAAiBH,EAAME,GAAO,KACpF,CAKA,IAAK,IAAIE,EAAM,EAAGC,EAASL,EAAM,GAAII,EAAML,EAAM,IAAKK,EAAK,CACzD,IAAIE,EAASN,EAAMI,GACL,KAAVE,GAA2B,KAAVD,GAAiC,KAAhBL,EAAMI,EAAI,GAAaJ,EAAMI,GAAO,IACvD,KAAVE,GAAiBD,GAAUL,EAAMI,EAAI,IAC1B,KAAVC,GAA2B,KAAVA,IAAkBL,EAAMI,GAAOC,GAC1DA,EAASC,CACX,CAMA,IAAK,IAAIC,EAAM,EAAGA,EAAMR,IAAOQ,EAAK,CAClC,IAAIC,EAASR,EAAMO,GACnB,GAAc,KAAVC,EAAiBR,EAAMO,GAAO,SAC7B,GAAc,KAAVC,EAAe,CACtB,IAAIlK,OAAM,EACV,IAAKA,EAAMiK,EAAM,EAAGjK,EAAMyJ,GAAqB,KAAdC,EAAM1J,KAAeA,GAEtD,IADA,IAAIvS,EAAWwc,GAAuB,KAAhBP,EAAMO,EAAI,IAAejK,EAAMyJ,GAAqB,KAAdC,EAAM1J,GAAe,IAAM,IAC9EvW,EAAIwgB,EAAKxgB,EAAIuW,IAAOvW,EAAKigB,EAAMjgB,GAAKgE,EAC7Cwc,EAAMjK,EAAM,CACd,CACF,CAKA,IAAK,IAAImK,EAAM,EAAGC,EAAQZ,EAAWW,EAAMV,IAAOU,EAAK,CACrD,IAAIE,EAASX,EAAMS,GACN,KAATC,GAA0B,KAAVC,EAAiBX,EAAMS,GAAO,IACzChB,EAASnhB,KAAKqiB,KAAWD,EAAQC,EAC5C,CAQA,IAAK,IAAIC,EAAM,EAAGA,EAAMb,IAAOa,EAC7B,GAAIpB,EAAUlhB,KAAK0hB,EAAMY,IAAO,CAC9B,IAAIC,OAAQ,EACZ,IAAKA,EAAQD,EAAM,EAAGC,EAAQd,GAAOP,EAAUlhB,KAAK0hB,EAAMa,MAAWA,GAIrE,IAHA,IAAI5pB,EAA6C,MAAnC2pB,EAAMZ,EAAMY,EAAI,GAAKd,GAE/BgB,EAAY7pB,IADwC,MAA3C4pB,EAAQd,EAAMC,EAAMa,GAASf,IACP7oB,EAAS,IAAM,IAAO6oB,EAChDiB,EAAMH,EAAKG,EAAMF,IAASE,EAAOf,EAAMe,GAAOD,EACvDF,EAAMC,EAAQ,CAChB,CASF,IADA,IAAgB/a,EAAZ6Y,EAAQ,GACHqC,EAAM,EAAGA,EAAMjB,GACtB,GAAIL,EAAaphB,KAAK0hB,EAAMgB,IAAO,CACjC,IAAI1Q,EAAQ0Q,EACZ,MAAOA,EAAKA,EAAMjB,GAAOL,EAAaphB,KAAK0hB,EAAMgB,MAASA,GAC1DrC,EAAM1lB,KAAK,IAAI2mB,EAAS,EAAGtP,EAAO0Q,GACpC,KAAO,CACL,IAAI7K,EAAM6K,EAAKjpB,EAAK4mB,EAAM1pB,OAAQgsB,EAAqB,OAAbpB,EAAqB,EAAI,EACnE,MAAOmB,EAAKA,EAAMjB,GAAqB,KAAdC,EAAMgB,KAAeA,GAC9C,IAAK,IAAIE,EAAM/K,EAAK+K,EAAMF,GACxB,GAAIrB,EAAYrhB,KAAK0hB,EAAMkB,IAAO,CAC5B/K,EAAM+K,IAAOvC,EAAMzlB,OAAOnB,EAAI,EAAG,IAAI6nB,EAAS,EAAGzJ,EAAK+K,IAAOnpB,GAAMkpB,GACvE,IAAIE,EAASD,EACb,MAAOA,EAAKA,EAAMF,GAAOrB,EAAYrhB,KAAK0hB,EAAMkB,MAASA,GACzDvC,EAAMzlB,OAAOnB,EAAI,EAAG,IAAI6nB,EAAS,EAAGuB,EAAQD,IAC5CnpB,GAAMkpB,EACN9K,EAAM+K,CACR,OAAWA,EAET/K,EAAM6K,GAAOrC,EAAMzlB,OAAOnB,EAAI,EAAG,IAAI6nB,EAAS,EAAGzJ,EAAK6K,GAC5D,CAaF,MAXiB,OAAbnB,IACoB,GAAlBlB,EAAM,GAAGG,QAAehZ,EAAIoY,EAAIvV,MAAM,WACxCgW,EAAM,GAAG5K,KAAOjO,EAAE,GAAG7Q,OACrB0pB,EAAM3Y,QAAQ,IAAI4Z,EAAS,EAAG,EAAG9Z,EAAE,GAAG7Q,UAEhB,GAApB6nB,EAAI6B,GAAOG,QAAehZ,EAAIoY,EAAIvV,MAAM,WAC1CmU,EAAI6B,GAAO3K,IAAMlO,EAAE,GAAG7Q,OACtB0pB,EAAM1lB,KAAK,IAAI2mB,EAAS,EAAGG,EAAMja,EAAE,GAAG7Q,OAAQ8qB,MAI9B,OAAbF,EAAqBlB,EAAMyC,UAAYzC,CAChD,CACD,CAlJkB,GAuJnB,SAAS0C,GAAS5M,EAAMoL,GACtB,IAAIlB,EAAQlK,EAAKkK,MAEjB,OADa,MAATA,IAAiBA,EAAQlK,EAAKkK,MAAQO,GAAazK,EAAKY,KAAMwK,IAC3DlB,CACT,CAOA,IAAI2C,GAAa,GAEbvlB,GAAK,SAASwlB,EAASzqB,EAAM6jB,GAC/B,GAAI4G,EAAQ3P,iBACV2P,EAAQ3P,iBAAiB9a,EAAM6jB,GAAG,QAC7B,GAAI4G,EAAQ1P,YACjB0P,EAAQ1P,YAAY,KAAO/a,EAAM6jB,OAC5B,CACL,IAAIvhB,EAAMmoB,EAAQC,YAAcD,EAAQC,UAAY,CAAC,GACrDpoB,EAAItC,IAASsC,EAAItC,IAASwqB,IAAYjoB,OAAOshB,EAC/C,CACF,EAEA,SAAS8G,GAAYF,EAASzqB,GAC5B,OAAOyqB,EAAQC,WAAaD,EAAQC,UAAU1qB,IAASwqB,EACzD,CAEA,SAAS7hB,GAAI8hB,EAASzqB,EAAM6jB,GAC1B,GAAI4G,EAAQrP,oBACVqP,EAAQrP,oBAAoBpb,EAAM6jB,GAAG,QAChC,GAAI4G,EAAQpP,YACjBoP,EAAQpP,YAAY,KAAOrb,EAAM6jB,OAC5B,CACL,IAAIvhB,EAAMmoB,EAAQC,UAAWrsB,EAAMiE,GAAOA,EAAItC,GAC9C,GAAI3B,EAAK,CACP,IAAIC,EAAQ+D,EAAQhE,EAAKwlB,GACrBvlB,GAAS,IACTgE,EAAItC,GAAQ3B,EAAIP,MAAM,EAAGQ,GAAOiE,OAAOlE,EAAIP,MAAMQ,EAAQ,IAC/D,CACF,CACF,CAEA,SAASssB,GAAOH,EAASzqB,GACvB,IAAIwI,EAAWmiB,GAAYF,EAASzqB,GACpC,GAAKwI,EAASrK,OAEd,IADA,IAAID,EAAON,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,GACxCtB,EAAI,EAAGA,EAAImL,EAASrK,SAAUd,EAAKmL,EAASnL,GAAGU,MAAM,KAAMG,EACtE,CAKA,SAAS2sB,GAAe1N,EAAIzU,EAAGoiB,GAI7B,MAHgB,iBAALpiB,IACPA,EAAI,CAAC1I,KAAM0I,EAAGqiB,eAAgB,WAAavtB,KAAKwtB,kBAAmB,CAAM,IAC7EJ,GAAOzN,EAAI2N,GAAYpiB,EAAE1I,KAAMmd,EAAIzU,GAC5BuiB,GAAmBviB,IAAMA,EAAEwiB,gBACpC,CAEA,SAASC,GAAqBhO,GAC5B,IAAI9e,EAAM8e,EAAGuN,WAAavN,EAAGuN,UAAUU,eACvC,GAAK/sB,EAEL,IADA,IAAI4E,EAAMka,EAAGkO,MAAMC,yBAA2BnO,EAAGkO,MAAMC,uBAAyB,IACvEjuB,EAAI,EAAGA,EAAIgB,EAAIF,SAAUd,GAAkC,GAAzBgF,EAAQY,EAAK5E,EAAIhB,KACxD4F,EAAId,KAAK9D,EAAIhB,GACnB,CAEA,SAASkuB,GAAWd,EAASzqB,GAC3B,OAAO2qB,GAAYF,EAASzqB,GAAM7B,OAAS,CAC7C,CAIA,SAASqtB,GAAWC,GAClBA,EAAK5tB,UAAUoH,GAAK,SAASjF,EAAM6jB,GAAI5e,GAAGzH,KAAMwC,EAAM6jB,EAAG,EACzD4H,EAAK5tB,UAAU8K,IAAM,SAAS3I,EAAM6jB,GAAIlb,GAAInL,KAAMwC,EAAM6jB,EAAG,CAC7D,CAKA,SAAS6H,GAAiBhjB,GACpBA,EAAEqiB,eAAkBriB,EAAEqiB,iBACnBriB,EAAEijB,aAAc,CACzB,CACA,SAASC,GAAkBljB,GACrBA,EAAEmjB,gBAAmBnjB,EAAEmjB,kBACpBnjB,EAAEojB,cAAe,CAC1B,CACA,SAASb,GAAmBviB,GAC1B,OAA6B,MAAtBA,EAAEsiB,iBAA2BtiB,EAAEsiB,iBAAoC,GAAjBtiB,EAAEijB,WAC7D,CACA,SAASI,GAAOrjB,GAAIgjB,GAAiBhjB,GAAIkjB,GAAkBljB,EAAG,CAE9D,SAASsjB,GAAStjB,GAAI,OAAOA,EAAEqb,QAAUrb,EAAEujB,UAAU,CACrD,SAASC,GAASxjB,GAChB,IAAIsa,EAAIta,EAAEnJ,MAOV,OANS,MAALyjB,IACa,EAAXta,EAAEyjB,OAAcnJ,EAAI,EACJ,EAAXta,EAAEyjB,OAAcnJ,EAAI,EACT,EAAXta,EAAEyjB,SAAcnJ,EAAI,IAE3B9B,GAAOxY,EAAE0jB,SAAgB,GAALpJ,IAAUA,EAAI,GAC/BA,CACT,CAGA,IAQIqJ,GAeAC,GAvBAC,GAAc,WAGhB,GAAIpM,GAAMC,EAAa,EAAK,OAAO,EACnC,IAAIoM,EAAMtK,EAAI,OACd,MAAO,cAAesK,GAAO,aAAcA,CAC7C,CANkB,GASlB,SAASC,GAAiBC,GACxB,GAAqB,MAAjBL,GAAuB,CACzB,IAAI7kB,EAAO0a,EAAI,OAAQ,KACvBF,EAAqB0K,EAASxK,EAAI,OAAQ,CAAC1a,EAAM0K,SAASmQ,eAAe,QAClC,GAAnCqK,EAAQjS,WAAWkS,eACnBN,GAAgB7kB,EAAKolB,aAAe,GAAKplB,EAAKmlB,aAAe,KAAOxM,GAAMC,EAAa,GAC7F,CACA,IAAIyB,EAAOwK,GAAgBnK,EAAI,OAAQ,KACrCA,EAAI,OAAQ,IAAU,KAAM,yDAE9B,OADAL,EAAKU,aAAa,UAAW,IACtBV,CACT,CAIA,SAASgL,GAAgBH,GACvB,GAAoB,MAAhBJ,GAAwB,OAAOA,GACnC,IAAIQ,EAAM9K,EAAqB0K,EAASxa,SAASmQ,eAAe,QAC5D0K,EAAKpL,EAAMmL,EAAK,EAAG,GAAGE,wBACtBC,EAAKtL,EAAMmL,EAAK,EAAG,GAAGE,wBAE1B,OADAlL,EAAe4K,MACVK,GAAMA,EAAGG,MAAQH,EAAGI,SAClBb,GAAgBW,EAAGE,MAAQJ,EAAGI,MAAQ,EAC/C,CAIA,IA8BMzkB,GA9BF0kB,GAA+C,GAA9B,QAAQ3lB,MAAM,MAAMtJ,OAAc,SAAUmhB,GAE/D,IADA,IAAID,EAAM,EAAG3U,EAAS,GAAIjL,EAAI6f,EAAOnhB,OAC9BkhB,GAAO5f,GAAG,CACf,IAAI4tB,EAAK/N,EAAOjd,QAAQ,KAAMgd,IACnB,GAAPgO,IAAYA,EAAK/N,EAAOnhB,QAC5B,IAAIwf,EAAO2B,EAAOxhB,MAAMuhB,EAA8B,MAAzBC,EAAOlG,OAAOiU,EAAK,GAAaA,EAAK,EAAIA,GAClEC,EAAK3P,EAAKtb,QAAQ,OACX,GAAPirB,GACF5iB,EAAOvI,KAAKwb,EAAK7f,MAAM,EAAGwvB,IAC1BjO,GAAOiO,EAAK,IAEZ5iB,EAAOvI,KAAKwb,GACZ0B,EAAMgO,EAAK,EAEf,CACA,OAAO3iB,CACT,EAAI,SAAU4U,GAAU,OAAOA,EAAO7X,MAAM,WAAa,EAErD8lB,GAAehwB,OAAOiwB,aAAe,SAAUC,GACjD,IAAM,OAAOA,EAAGjJ,gBAAkBiJ,EAAGhJ,YACb,CAAxB,MAAM/b,GAAK,OAAO,CAAM,CAC1B,EAAI,SAAU+kB,GACZ,IAAI9L,EACJ,IAAKA,EAAQ8L,EAAGC,cAAcC,UAAUzK,aAC9B,CAAV,MAAMxa,GAAI,CACV,SAAKiZ,GAASA,EAAMiM,iBAAmBH,IACe,GAA/C9L,EAAMkM,iBAAiB,aAAclM,EAC9C,EAEImM,GAEE,WADAplB,GAAIwZ,EAAI,UAEZxZ,GAAE6Z,aAAa,SAAU,WACC,mBAAZ7Z,GAAEqlB,QAGdC,GAAiB,KACrB,SAASC,GAAkBvB,GACzB,GAAsB,MAAlBsB,GAA0B,OAAOA,GACrC,IAAInM,EAAOG,EAAqB0K,EAASxK,EAAI,OAAQ,MACjDgM,EAASrM,EAAKmL,wBACdmB,EAAYxM,EAAME,EAAM,EAAG,GAAGmL,wBAClC,OAAOgB,GAAiBtkB,KAAK0kB,IAAIF,EAAOhB,KAAOiB,EAAUjB,MAAQ,CACnE,CAGA,IAAImB,GAAQ,CAAC,EAAGC,GAAY,CAAC,EAK7B,SAASC,GAAWpnB,EAAMqW,GACpB7e,UAAUR,OAAS,IACnBqf,EAAKgR,aAAe5wB,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,IAC9D0vB,GAAMlnB,GAAQqW,CAChB,CAEA,SAASiR,GAAWC,EAAMC,GACxBL,GAAUI,GAAQC,CACpB,CAIA,SAASC,GAAYD,GACnB,GAAmB,iBAARA,GAAoBL,GAAUpK,eAAeyK,GACtDA,EAAOL,GAAUK,QACZ,GAAIA,GAA4B,iBAAbA,EAAKxnB,MAAoBmnB,GAAUpK,eAAeyK,EAAKxnB,MAAO,CACtF,IAAI2gB,EAAQwG,GAAUK,EAAKxnB,MACP,iBAAT2gB,IAAqBA,EAAQ,CAAC3gB,KAAM2gB,KAC/C6G,EAAOtI,GAAUyB,EAAO6G,IACnBxnB,KAAO2gB,EAAM3gB,IACpB,KAAO,IAAmB,iBAARwnB,GAAoB,0BAA0BnnB,KAAKmnB,GACnE,OAAOC,GAAY,mBACd,GAAmB,iBAARD,GAAoB,2BAA2BnnB,KAAKmnB,GACpE,OAAOC,GAAY,mBACrB,CACA,MAAmB,iBAARD,EAA2B,CAACxnB,KAAMwnB,GAC/BA,GAAQ,CAACxnB,KAAM,OAC/B,CAIA,SAASmW,GAAQjd,EAASsuB,GACxBA,EAAOC,GAAYD,GACnB,IAAIE,EAAWR,GAAMM,EAAKxnB,MAC1B,IAAK0nB,EAAY,OAAOvR,GAAQjd,EAAS,cACzC,IAAIyuB,EAAUD,EAASxuB,EAASsuB,GAChC,GAAII,GAAe7K,eAAeyK,EAAKxnB,MAAO,CAC5C,IAAI6nB,EAAOD,GAAeJ,EAAKxnB,MAC/B,IAAK,IAAI8c,KAAQ+K,EACVA,EAAK9K,eAAeD,KACrB6K,EAAQ5K,eAAeD,KAAS6K,EAAQ,IAAM7K,GAAQ6K,EAAQ7K,IAClE6K,EAAQ7K,GAAQ+K,EAAK/K,GAEzB,CAGA,GAFA6K,EAAQ3nB,KAAOwnB,EAAKxnB,KAChBwnB,EAAKM,aAAcH,EAAQG,WAAaN,EAAKM,YAC7CN,EAAKO,UAAa,IAAK,IAAIC,KAAUR,EAAKO,UAC1CJ,EAAQK,GAAUR,EAAKO,UAAUC,GAErC,OAAOL,CACT,CAIA,IAAIC,GAAiB,CAAC,EACtB,SAAS7S,GAAWsB,EAAM4R,GAExBtL,EAAQsL,EADGL,GAAe7K,eAAe1G,GAAQuR,GAAevR,GAASuR,GAAevR,GAAQ,CAAC,EAEnG,CAEA,SAASgB,GAAUhB,EAAMf,GACvB,IAAc,IAAVA,EAAkB,OAAOA,EAC7B,GAAIe,EAAKgB,UAAa,OAAOhB,EAAKgB,UAAU/B,GAC5C,IAAI4S,EAAS,CAAC,EACd,IAAK,IAAI/K,KAAK7H,EAAO,CACnB,IAAIhZ,EAAMgZ,EAAM6H,GACZ7gB,aAAe7F,QAAS6F,EAAMA,EAAIlB,OAAO,KAC7C8sB,EAAO/K,GAAK7gB,CACd,CACA,OAAO4rB,CACT,CAIA,SAAShS,GAAUG,EAAMf,GAEvB,IADA,IAAI6S,EACG9R,EAAKH,YACViS,EAAO9R,EAAKH,UAAUZ,KACT6S,EAAK9R,MAAQA,GAC1Bf,EAAQ6S,EAAK7S,MACbe,EAAO8R,EAAK9R,KAEd,OAAO8R,GAAQ,CAAC9R,KAAMA,EAAMf,MAAOA,EACrC,CAEA,SAAS8S,GAAW/R,EAAMvT,EAAIC,GAC5B,OAAOsT,EAAK+R,YAAa/R,EAAK+R,WAAWtlB,EAAIC,EAC/C,CAOA,IAAI8U,GAAe,SAASM,EAAQb,EAAS+Q,GAC3ChyB,KAAK6hB,IAAM7hB,KAAKgc,MAAQ,EACxBhc,KAAK8hB,OAASA,EACd9hB,KAAKihB,QAAUA,GAAW,EAC1BjhB,KAAKiyB,cAAgBjyB,KAAKkyB,gBAAkB,EAC5ClyB,KAAKmyB,UAAY,EACjBnyB,KAAKgyB,WAAaA,CACpB,EA0EA,SAASI,GAAQC,EAAKvL,GAEpB,IADAA,GAAKuL,EAAIxgB,OACD,GAAKiV,GAAKuL,EAAI3b,KAAQ,MAAM,IAAI3E,MAAM,qBAAuB+U,EAAIuL,EAAIxgB,OAAS,qBAEtF,IADA,IAAIygB,EAAQD,GACJC,EAAMlR,OACZ,IAAK,IAAIvhB,EAAI,KAAMA,EAAG,CACpB,IAAIye,EAAQgU,EAAMC,SAAS1yB,GAAI2yB,EAAKlU,EAAMmU,YAC1C,GAAI3L,EAAI0L,EAAI,CAAEF,EAAQhU,EAAO,KAAM,CACnCwI,GAAK0L,CACP,CAEF,OAAOF,EAAMlR,MAAM0F,EACrB,CAIA,SAAS4L,GAAWL,EAAKrW,EAAOgG,GAC9B,IAAIb,EAAM,GAAI2F,EAAI9K,EAAMmE,KAQxB,OAPAkS,EAAIM,KAAK3W,EAAMmE,KAAM6B,EAAI7B,KAAO,GAAG,SAAUA,GAC3C,IAAIY,EAAOZ,EAAKY,KACZ+F,GAAK9E,EAAI7B,OAAQY,EAAOA,EAAKzgB,MAAM,EAAG0hB,EAAI5B,KAC1C0G,GAAK9K,EAAMmE,OAAQY,EAAOA,EAAKzgB,MAAM0b,EAAMoE,KAC/Ce,EAAIxc,KAAKoc,KACP+F,CACJ,IACO3F,CACT,CAEA,SAASyR,GAASP,EAAK5S,EAAMC,GAC3B,IAAIyB,EAAM,GAEV,OADAkR,EAAIM,KAAKlT,EAAMC,GAAI,SAAUS,GAAQgB,EAAIxc,KAAKwb,EAAKY,KAAO,IACnDI,CACT,CAIA,SAAS0R,GAAiB1S,EAAM2S,GAC9B,IAAIzuB,EAAOyuB,EAAS3S,EAAK2S,OACzB,GAAIzuB,EAAQ,IAAK,IAAIyiB,EAAI3G,EAAM2G,EAAGA,EAAIA,EAAEvI,OAAUuI,EAAEgM,QAAUzuB,CAChE,CAIA,SAAS0uB,GAAO5S,GACd,GAAmB,MAAfA,EAAK5B,OAAkB,OAAO,KAElC,IADA,IAAIqD,EAAMzB,EAAK5B,OAAQyU,EAAKnuB,EAAQ+c,EAAIR,MAAOjB,GACtCmS,EAAQ1Q,EAAIrD,OAAQ+T,EAAO1Q,EAAM0Q,EAAOA,EAAQA,EAAM/T,OAC7D,IAAK,IAAI1e,EAAI,EACPyyB,EAAMC,SAAS1yB,IAAM+hB,IADR/hB,EAEjBmzB,GAAMV,EAAMC,SAAS1yB,GAAG4yB,YAG5B,OAAOO,EAAKpR,EAAI/P,KAClB,CAIA,SAASohB,GAAaX,EAAOY,GAC3B,IAAIpM,EAAIwL,EAAMzgB,MACdiP,EAAO,EAAG,CACR,IAAK,IAAI6K,EAAM,EAAGA,EAAM2G,EAAMC,SAAS5xB,SAAUgrB,EAAK,CACpD,IAAIrN,EAAQgU,EAAMC,SAAS5G,GAAMvL,EAAK9B,EAAMwU,OAC5C,GAAII,EAAI9S,EAAI,CAAEkS,EAAQhU,EAAO,SAASwC,CAAM,CAC5CoS,GAAK9S,EACL0G,GAAKxI,EAAMmU,WACb,CACA,OAAO3L,CACT,QAAUwL,EAAMlR,OAEhB,IADA,IAAIvhB,EAAI,EACDA,EAAIyyB,EAAMlR,MAAMzgB,SAAUd,EAAG,CAClC,IAA2BszB,EAAhBb,EAAMlR,MAAMvhB,GAAcizB,OACrC,GAAII,EAAIC,EAAM,MACdD,GAAKC,CACP,CACA,OAAOrM,EAAIjnB,CACb,CAEA,SAASuzB,GAAOf,EAAKpwB,GAAI,OAAOA,GAAKowB,EAAIxgB,OAAS5P,EAAIowB,EAAIxgB,MAAQwgB,EAAI3b,IAAI,CAE1E,SAAS2c,GAAcxwB,EAAShD,GAC9B,OAAOyzB,OAAOzwB,EAAQ0wB,oBAAoB1zB,EAAIgD,EAAQ2wB,iBACxD,CAGA,SAASC,GAAItT,EAAMC,EAAIuK,GAGrB,QAFgB,IAAXA,IAAoBA,EAAS,QAE5B3qB,gBAAgByzB,IAAQ,OAAO,IAAIA,GAAItT,EAAMC,EAAIuK,GACvD3qB,KAAKmgB,KAAOA,EACZngB,KAAKogB,GAAKA,EACVpgB,KAAK2qB,OAASA,CAChB,CAIA,SAAS+I,GAAI9zB,EAAG4lB,GAAK,OAAO5lB,EAAEugB,KAAOqF,EAAErF,MAAQvgB,EAAEwgB,GAAKoF,EAAEpF,EAAG,CAE3D,SAASuT,GAAe/zB,EAAG4lB,GAAK,OAAO5lB,EAAE+qB,QAAUnF,EAAEmF,QAAuB,GAAb+I,GAAI9zB,EAAG4lB,EAAQ,CAE9E,SAASoO,GAAQC,GAAI,OAAOJ,GAAII,EAAE1T,KAAM0T,EAAEzT,GAAG,CAC7C,SAAS0T,GAAOl0B,EAAG4lB,GAAK,OAAOkO,GAAI9zB,EAAG4lB,GAAK,EAAIA,EAAI5lB,CAAE,CACrD,SAASm0B,GAAOn0B,EAAG4lB,GAAK,OAAOkO,GAAI9zB,EAAG4lB,GAAK,EAAI5lB,EAAI4lB,CAAE,CAIrD,SAASwO,GAAS3B,EAAKvL,GAAI,OAAO5a,KAAKC,IAAIkmB,EAAIxgB,MAAO3F,KAAKiE,IAAI2W,EAAGuL,EAAIxgB,MAAQwgB,EAAI3b,KAAO,GAAG,CAC5F,SAASud,GAAQ5B,EAAKxQ,GACpB,GAAIA,EAAI1B,KAAOkS,EAAIxgB,MAAS,OAAO4hB,GAAIpB,EAAIxgB,MAAO,GAClD,IAAImF,EAAOqb,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAClC,OAAImL,EAAI1B,KAAOnJ,EAAeyc,GAAIzc,EAAMob,GAAQC,EAAKrb,GAAM+J,KAAKpgB,QACzDuzB,GAAUrS,EAAKuQ,GAAQC,EAAKxQ,EAAI1B,MAAMY,KAAKpgB,OACpD,CACA,SAASuzB,GAAUrS,EAAKsS,GACtB,IAAI/T,EAAKyB,EAAIzB,GACb,OAAU,MAANA,GAAcA,EAAK+T,EAAkBV,GAAI5R,EAAI1B,KAAMgU,GAC9C/T,EAAK,EAAYqT,GAAI5R,EAAI1B,KAAM,GAC1B0B,CAChB,CACA,SAASuS,GAAa/B,EAAKpiB,GAEzB,IADA,IAAIkR,EAAM,GACDthB,EAAI,EAAGA,EAAIoQ,EAAMtP,OAAQd,IAAOshB,EAAIthB,GAAKo0B,GAAQ5B,EAAKpiB,EAAMpQ,IACrE,OAAOshB,CACT,CAlMAK,GAAanhB,UAAUohB,IAAM,WAAa,OAAOzhB,KAAK6hB,KAAO7hB,KAAK8hB,OAAOnhB,MAAM,EAC/E6gB,GAAanhB,UAAUg0B,IAAM,WAAa,OAAOr0B,KAAK6hB,KAAO7hB,KAAKmyB,SAAS,EAC3E3Q,GAAanhB,UAAUi0B,KAAO,WAAa,OAAOt0B,KAAK8hB,OAAOlG,OAAO5b,KAAK6hB,WAAQxc,CAAS,EAC3Fmc,GAAanhB,UAAU8S,KAAO,WAC5B,GAAInT,KAAK6hB,IAAM7hB,KAAK8hB,OAAOnhB,OACvB,OAAOX,KAAK8hB,OAAOlG,OAAO5b,KAAK6hB,MACrC,EACAL,GAAanhB,UAAUk0B,IAAM,SAAUlgB,GACrC,IAAI+L,EAAKpgB,KAAK8hB,OAAOlG,OAAO5b,KAAK6hB,KAIjC,GAFoB,iBAATxN,EAA0B+L,GAAM/L,EAC/B+L,IAAO/L,EAAMrK,KAAOqK,EAAMrK,KAAKoW,GAAM/L,EAAM+L,IAClC,QAAVpgB,KAAK6hB,IAAYzB,CAC9B,EACAoB,GAAanhB,UAAUm0B,SAAW,SAAUngB,GAE1C,IADA,IAAI2H,EAAQhc,KAAK6hB,IACV7hB,KAAKu0B,IAAIlgB,KAChB,OAAOrU,KAAK6hB,IAAM7F,CACpB,EACAwF,GAAanhB,UAAUo0B,SAAW,WAEhC,IADA,IAAIzY,EAAQhc,KAAK6hB,IACV,aAAa7X,KAAKhK,KAAK8hB,OAAOlG,OAAO5b,KAAK6hB,SAAW7hB,KAAK6hB,IACjE,OAAO7hB,KAAK6hB,IAAM7F,CACpB,EACAwF,GAAanhB,UAAUq0B,UAAY,WAAa10B,KAAK6hB,IAAM7hB,KAAK8hB,OAAOnhB,MAAO,EAC9E6gB,GAAanhB,UAAUs0B,OAAS,SAAUvU,GACxC,IAAIkK,EAAQtqB,KAAK8hB,OAAOjd,QAAQub,EAAIpgB,KAAK6hB,KACzC,GAAIyI,GAAS,EAAsB,OAAlBtqB,KAAK6hB,IAAMyI,GAAc,CAC5C,EACA9I,GAAanhB,UAAUu0B,OAAS,SAAU9N,GAAI9mB,KAAK6hB,KAAOiF,CAAE,EAC5DtF,GAAanhB,UAAUw0B,OAAS,WAK9B,OAJI70B,KAAKiyB,cAAgBjyB,KAAKgc,QAC5Bhc,KAAKkyB,gBAAkBvL,EAAY3mB,KAAK8hB,OAAQ9hB,KAAKgc,MAAOhc,KAAKihB,QAASjhB,KAAKiyB,cAAejyB,KAAKkyB,iBACnGlyB,KAAKiyB,cAAgBjyB,KAAKgc,OAErBhc,KAAKkyB,iBAAmBlyB,KAAKmyB,UAAYxL,EAAY3mB,KAAK8hB,OAAQ9hB,KAAKmyB,UAAWnyB,KAAKihB,SAAW,EAC3G,EACAO,GAAanhB,UAAUy0B,YAAc,WACnC,OAAOnO,EAAY3mB,KAAK8hB,OAAQ,KAAM9hB,KAAKihB,UACxCjhB,KAAKmyB,UAAYxL,EAAY3mB,KAAK8hB,OAAQ9hB,KAAKmyB,UAAWnyB,KAAKihB,SAAW,EAC/E,EACAO,GAAanhB,UAAUgU,MAAQ,SAAU0gB,EAASC,EAASC,GACzD,GAAsB,iBAAXF,EAOJ,CACL,IAAI1gB,EAAQrU,KAAK8hB,OAAOxhB,MAAMN,KAAK6hB,KAAKxN,MAAM0gB,GAC9C,OAAI1gB,GAASA,EAAMvT,MAAQ,EAAY,MACnCuT,IAAqB,IAAZ2gB,IAAqBh1B,KAAK6hB,KAAOxN,EAAM,GAAG1T,QAChD0T,EACT,CAXE,IAAI6gB,EAAQ,SAAUtL,GAAO,OAAOqL,EAAkBrL,EAAIR,cAAgBQ,CAAK,EAE/E,GAAIsL,EADSl1B,KAAK8hB,OAAOpB,OAAO1gB,KAAK6hB,IAAKkT,EAAQp0B,UAC7Bu0B,EAAMH,GAEzB,OADgB,IAAZC,IAAqBh1B,KAAK6hB,KAAOkT,EAAQp0B,SACtC,CAQb,EACA6gB,GAAanhB,UAAU4N,QAAU,WAAY,OAAOjO,KAAK8hB,OAAOxhB,MAAMN,KAAKgc,MAAOhc,KAAK6hB,IAAI,EAC3FL,GAAanhB,UAAU80B,eAAiB,SAAUrO,EAAGpF,GACnD1hB,KAAKmyB,WAAarL,EAClB,IAAM,OAAOpF,GACkB,CAA/B,QAAU1hB,KAAKmyB,WAAarL,CAAG,CACjC,EACAtF,GAAanhB,UAAU+0B,UAAY,SAAUtO,GAC3C,IAAIuO,EAASr1B,KAAKgyB,WAClB,OAAOqD,GAAUA,EAAOD,UAAUtO,EACpC,EACAtF,GAAanhB,UAAUi1B,UAAY,WACjC,IAAID,EAASr1B,KAAKgyB,WAClB,OAAOqD,GAAUA,EAAOC,UAAUt1B,KAAK6hB,IACzC,EA+HA,IAAI0T,GAAe,SAAStW,EAAOmW,GACjCp1B,KAAKif,MAAQA,EACbjf,KAAKo1B,UAAYA,CACnB,EAEII,GAAU,SAASnD,EAAKpT,EAAOkB,EAAMiV,GACvCp1B,KAAKif,MAAQA,EACbjf,KAAKqyB,IAAMA,EACXryB,KAAKmgB,KAAOA,EACZngB,KAAKy1B,aAAeL,GAAa,EACjCp1B,KAAK01B,WAAa,KAClB11B,KAAK21B,aAAe,CACtB,EAuCA,SAASC,GAAcjW,EAAIQ,EAAMpW,EAAS8rB,GAGxC,IAAIC,EAAK,CAACnW,EAAGV,MAAM8W,SAAUC,EAAc,CAAC,EAE5CC,GAAQtW,EAAIQ,EAAKY,KAAMpB,EAAG0S,IAAIrS,KAAMjW,GAAS,SAAUiY,EAAKrF,GAAS,OAAOmZ,EAAGnxB,KAAKqd,EAAKrF,EAAQ,GACzFqZ,EAAaH,GAkCrB,IAjCA,IAAI5W,EAAQlV,EAAQkV,MAGhBiX,EAAO,SAAWC,GACpBpsB,EAAQ2rB,WAAaI,EACrB,IAAIM,EAAUzW,EAAGV,MAAMoX,SAASF,GAAIt2B,EAAI,EAAG4D,EAAK,EAChDsG,EAAQkV,OAAQ,EAChBgX,GAAQtW,EAAIQ,EAAKY,KAAMqV,EAAQpW,KAAMjW,GAAS,SAAUiY,EAAKrF,GAG3D,IAFA,IAAIX,EAAQnc,EAEL4D,EAAKue,GAAK,CACf,IAAIsU,EAAQR,EAAGj2B,GACXy2B,EAAQtU,GACR8T,EAAGlxB,OAAO/E,EAAG,EAAGmiB,EAAK8T,EAAGj2B,EAAE,GAAIy2B,GAClCz2B,GAAK,EACL4D,EAAKyI,KAAKiE,IAAI6R,EAAKsU,EACrB,CACA,GAAK3Z,EACL,GAAIyZ,EAAQG,OACVT,EAAGlxB,OAAOoX,EAAOnc,EAAImc,EAAOgG,EAAK,WAAarF,GAC9C9c,EAAImc,EAAQ,OAEZ,KAAOA,EAAQnc,EAAGmc,GAAS,EAAG,CAC5B,IAAI4F,EAAMkU,EAAG9Z,EAAM,GACnB8Z,EAAG9Z,EAAM,IAAM4F,EAAMA,EAAM,IAAM,IAAM,WAAajF,CACtD,CAEJ,GAAGqZ,GACHjsB,EAAQkV,MAAQA,EAChBlV,EAAQ2rB,WAAa,KACrB3rB,EAAQ4rB,aAAe,CACzB,EAESQ,EAAI,EAAGA,EAAIxW,EAAGV,MAAMoX,SAAS11B,SAAUw1B,EAAGD,EAAMC,GAEzD,MAAO,CAACK,OAAQV,EAAIW,QAAST,EAAYU,SAAWV,EAAYW,UAAYX,EAAc,KAC5F,CAEA,SAASY,GAAcjX,EAAIQ,EAAM0W,GAC/B,IAAK1W,EAAKqW,QAAUrW,EAAKqW,OAAO,IAAM7W,EAAGV,MAAM8W,QAAS,CACtD,IAAIhsB,EAAU+sB,GAAiBnX,EAAIoT,GAAO5S,IACtC4W,EAAa5W,EAAKY,KAAKpgB,OAASgf,EAAG9c,QAAQm0B,oBAAsBhW,GAAUrB,EAAG0S,IAAIrS,KAAMjW,EAAQkV,OAChG/R,EAAS0oB,GAAcjW,EAAIQ,EAAMpW,GACjCgtB,IAAchtB,EAAQkV,MAAQ8X,GAClC5W,EAAK8W,WAAaltB,EAAQ+E,MAAMioB,GAChC5W,EAAKqW,OAAStpB,EAAOspB,OACjBtpB,EAAOupB,QAAWtW,EAAK+W,aAAehqB,EAAOupB,QACxCtW,EAAK+W,eAAgB/W,EAAK+W,aAAe,MAC9CL,IAAmBlX,EAAG0S,IAAI8E,oBAC1BxX,EAAG0S,IAAI+E,aAAelrB,KAAKC,IAAIwT,EAAG0S,IAAI+E,eAAgBzX,EAAG0S,IAAI8E,mBACnE,CACA,OAAOhX,EAAKqW,MACd,CAEA,SAASM,GAAiBnX,EAAImH,EAAGuQ,GAC/B,IAAIhF,EAAM1S,EAAG0S,IAAKzV,EAAU+C,EAAG/C,QAC/B,IAAKyV,EAAIrS,KAAK+R,WAAc,OAAO,IAAIyD,GAAQnD,GAAK,EAAMvL,GAC1D,IAAI9K,EAAQsb,GAAc3X,EAAImH,EAAGuQ,GAC7BE,EAAQvb,EAAQqW,EAAIxgB,OAASugB,GAAQC,EAAKrW,EAAQ,GAAGib,WACrDltB,EAAUwtB,EAAQ/B,GAAQgC,UAAUnF,EAAKkF,EAAOvb,GAAS,IAAIwZ,GAAQnD,EAAKN,GAAWM,EAAIrS,MAAOhE,GASpG,OAPAqW,EAAIM,KAAK3W,EAAO8K,GAAG,SAAU3G,GAC3BsX,GAAY9X,EAAIQ,EAAKY,KAAMhX,GAC3B,IAAI8X,EAAM9X,EAAQoW,KAClBA,EAAK8W,WAAapV,GAAOiF,EAAI,GAAKjF,EAAM,GAAK,GAAKA,GAAOjF,EAAQ8a,UAAY7V,EAAMjF,EAAQ+a,OAAS5tB,EAAQ+E,OAAS,KACrH/E,EAAQ6tB,UACV,IACIP,IAAWhF,EAAI+E,aAAertB,EAAQoW,MACnCpW,CACT,CAKA,SAAS0tB,GAAY9X,EAAIoB,EAAMhX,EAAS8tB,GACtC,IAAI7X,EAAOL,EAAG0S,IAAIrS,KACduB,EAAS,IAAIC,GAAaT,EAAMpB,EAAG9c,QAAQoe,QAASlX,GAGxD,IAFAwX,EAAOvF,MAAQuF,EAAOM,IAAMgW,GAAW,EAC3B,IAAR9W,GAAc+W,GAAc9X,EAAMjW,EAAQkV,QACtCsC,EAAOE,OACbsW,GAAU/X,EAAMuB,EAAQxX,EAAQkV,OAChCsC,EAAOvF,MAAQuF,EAAOM,GAE1B,CAEA,SAASiW,GAAc9X,EAAMf,GAC3B,GAAIe,EAAK+B,UAAa,OAAO/B,EAAK+B,UAAU9C,GAC5C,GAAKe,EAAKH,UAAV,CACA,IAAI6B,EAAQ7B,GAAUG,EAAMf,GAC5B,OAAIyC,EAAM1B,KAAK+B,UAAoBL,EAAM1B,KAAK+B,UAAUL,EAAMzC,YAA9D,CAF8B,CAGhC,CAEA,SAAS8Y,GAAU/X,EAAMuB,EAAQtC,EAAOyC,GACtC,IAAK,IAAI7hB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACvB6hB,IAASA,EAAM,GAAK7B,GAAUG,EAAMf,GAAOe,MAC/C,IAAIrD,EAAQqD,EAAK2B,MAAMJ,EAAQtC,GAC/B,GAAIsC,EAAOM,IAAMN,EAAOvF,MAAS,OAAOW,CAC1C,CACA,MAAM,IAAI5K,MAAM,QAAUiO,EAAKrW,KAAO,6BACxC,CA/IA6rB,GAAQn1B,UAAU+0B,UAAY,SAAUtO,GACtC,IAAI3G,EAAOngB,KAAKqyB,IAAID,QAAQpyB,KAAKmgB,KAAO2G,GAExC,OADY,MAAR3G,GAAgB2G,EAAI9mB,KAAKy1B,eAAgBz1B,KAAKy1B,aAAe3O,GAC1D3G,CACT,EAEAqV,GAAQn1B,UAAUi1B,UAAY,SAAUxO,GACtC,IAAK9mB,KAAK01B,WAAc,OAAO,KAC/B,KAAO11B,KAAK01B,WAAW11B,KAAK21B,eAAiB7O,GACzC9mB,KAAK21B,cAAgB,EACzB,IAAInzB,EAAOxC,KAAK01B,WAAW11B,KAAK21B,aAAe,GAC/C,MAAO,CAACnzB,KAAMA,GAAQA,EAAKiN,QAAQ,kBAAmB,IAC9CiH,KAAM1W,KAAK01B,WAAW11B,KAAK21B,cAAgB7O,EACrD,EAEA0O,GAAQn1B,UAAUu3B,SAAW,WAC3B53B,KAAKmgB,OACDngB,KAAKy1B,aAAe,GAAKz1B,KAAKy1B,cACpC,EAEAD,GAAQgC,UAAY,SAAUnF,EAAKkF,EAAOpX,GACxC,OAAIoX,aAAiBhC,GACV,IAAIC,GAAQnD,EAAKrR,GAAUqR,EAAIrS,KAAMuX,EAAMtY,OAAQkB,EAAMoX,EAAMnC,WAE/D,IAAII,GAAQnD,EAAKrR,GAAUqR,EAAIrS,KAAMuX,GAAQpX,EAC1D,EAEAqV,GAAQn1B,UAAUyO,KAAO,SAAUkpB,GACjC,IAAI/Y,GAAiB,IAAT+Y,EAAiBhX,GAAUhhB,KAAKqyB,IAAIrS,KAAMhgB,KAAKif,OAASjf,KAAKif,MACzE,OAAOjf,KAAKy1B,aAAe,EAAI,IAAIF,GAAatW,EAAOjf,KAAKy1B,cAAgBxW,CAC9E,EAmHA,IAAIgZ,GAAQ,SAAS1W,EAAQ/e,EAAMyc,GACjCjf,KAAKgc,MAAQuF,EAAOvF,MAAOhc,KAAKgiB,IAAMT,EAAOM,IAC7C7hB,KAAK8hB,OAASP,EAAOtT,UACrBjO,KAAKwC,KAAOA,GAAQ,KACpBxC,KAAKif,MAAQA,CACf,EAGA,SAASiZ,GAAUvY,EAAIkC,EAAKwV,EAASc,GACnC,IAAmCxb,EAGoCyb,EAHnE/F,EAAM1S,EAAG0S,IAAKrS,EAAOqS,EAAIrS,KAEzBG,EAAOiS,GAAQC,GADnBxQ,EAAMoS,GAAQ5B,EAAKxQ,IACS1B,MAAOpW,EAAU+sB,GAAiBnX,EAAIkC,EAAI1B,KAAMkX,GACxE9V,EAAS,IAAIC,GAAarB,EAAKY,KAAMpB,EAAG9c,QAAQoe,QAASlX,GAE7D,IADIouB,IAAWC,EAAS,KAChBD,GAAW5W,EAAOM,IAAMA,EAAIzB,MAAQmB,EAAOE,OACjDF,EAAOvF,MAAQuF,EAAOM,IACtBlF,EAAQob,GAAU/X,EAAMuB,EAAQxX,EAAQkV,OACpCkZ,GAAWC,EAAOzzB,KAAK,IAAIszB,GAAM1W,EAAQ5E,EAAOqE,GAAUqR,EAAIrS,KAAMjW,EAAQkV,SAElF,OAAOkZ,EAAUC,EAAS,IAAIH,GAAM1W,EAAQ5E,EAAO5S,EAAQkV,MAC7D,CAEA,SAASoZ,GAAmB71B,EAAM81B,GAChC,GAAI91B,EAAQ,OAAS,CACnB,IAAI+1B,EAAY/1B,EAAK6R,MAAM,qCAC3B,IAAKkkB,EAAa,MAClB/1B,EAAOA,EAAKlC,MAAM,EAAGi4B,EAAUz3B,OAAS0B,EAAKlC,MAAMi4B,EAAUz3B,MAAQy3B,EAAU,GAAG53B,QAClF,IAAI8lB,EAAO8R,EAAU,GAAK,UAAY,YAClB,MAAhBD,EAAO7R,GACP6R,EAAO7R,GAAQ8R,EAAU,GACnB,IAAKje,OAAO,YAAcie,EAAU,GAAK,aAAcvuB,KAAKsuB,EAAO7R,MACzE6R,EAAO7R,IAAS,IAAM8R,EAAU,GACtC,CACA,OAAO/1B,CACT,CAGA,SAASyzB,GAAQtW,EAAIoB,EAAMf,EAAMjW,EAASsc,EAAG2P,EAAaH,GACxD,IAAI2C,EAAexY,EAAKwY,aACJ,MAAhBA,IAAwBA,EAAe7Y,EAAG9c,QAAQ21B,cACtD,IACkE7b,EAD9D8b,EAAW,EAAGC,EAAW,KACzBnX,EAAS,IAAIC,GAAaT,EAAMpB,EAAG9c,QAAQoe,QAASlX,GACpD2X,EAAQ/B,EAAG9c,QAAQ81B,cAAgB,CAAC,MAExC,IADY,IAAR5X,GAAcsX,GAAmBP,GAAc9X,EAAMjW,EAAQkV,OAAQ+W,IACjEzU,EAAOE,OAAO,CASpB,GARIF,EAAOM,IAAMlC,EAAG9c,QAAQm0B,oBAC1BwB,GAAe,EACX3C,GAAc4B,GAAY9X,EAAIoB,EAAMhX,EAASwX,EAAOM,KACxDN,EAAOM,IAAMd,EAAKpgB,OAClBgc,EAAQ,MAERA,EAAQ0b,GAAmBN,GAAU/X,EAAMuB,EAAQxX,EAAQkV,MAAOyC,GAAQsU,GAExEtU,EAAO,CACT,IAAIkX,EAAQlX,EAAM,GAAG/X,KACjBivB,IAASjc,EAAQ,MAAQA,EAAQic,EAAQ,IAAMjc,EAAQic,GAC7D,CACA,IAAKJ,GAAgBE,GAAY/b,EAAO,CACtC,KAAO8b,EAAWlX,EAAOvF,OAEvBqK,EADAoS,EAAWvsB,KAAKiE,IAAIoR,EAAOvF,MAAOyc,EAAW,KACjCC,GAEdA,EAAW/b,CACb,CACA4E,EAAOvF,MAAQuF,EAAOM,GACxB,CACA,KAAO4W,EAAWlX,EAAOM,KAAK,CAI5B,IAAIA,EAAM3V,KAAKiE,IAAIoR,EAAOM,IAAK4W,EAAW,KAC1CpS,EAAExE,EAAK6W,GACPD,EAAW5W,CACb,CACF,CAOA,SAASyV,GAAc3X,EAAImH,EAAGuQ,GAG5B,IAFA,IAAIwB,EAAWC,EAASzG,EAAM1S,EAAG0S,IAC7B0G,EAAM1B,GAAW,EAAIvQ,GAAKnH,EAAG0S,IAAIrS,KAAKH,UAAY,IAAO,KACpDgH,EAASC,EAAGD,EAASkS,IAAOlS,EAAQ,CAC3C,GAAIA,GAAUwL,EAAIxgB,MAAS,OAAOwgB,EAAIxgB,MACtC,IAAIsO,EAAOiS,GAAQC,EAAKxL,EAAS,GAAIjkB,EAAQud,EAAK8W,WAClD,GAAIr0B,KAAWy0B,GAAWxQ,GAAUjkB,aAAiB2yB,GAAe3yB,EAAMwyB,UAAY,IAAM/C,EAAI+E,cAC5F,OAAOvQ,EACX,IAAImS,EAAWrS,EAAYxG,EAAKY,KAAM,KAAMpB,EAAG9c,QAAQoe,UACxC,MAAX6X,GAAmBD,EAAYG,KACjCF,EAAUjS,EAAS,EACnBgS,EAAYG,EAEhB,CACA,OAAOF,CACT,CAEA,SAASG,GAAgB5G,EAAKvL,GAE5B,GADAuL,EAAI+E,aAAelrB,KAAKiE,IAAIkiB,EAAI+E,aAActQ,KAC1CuL,EAAI8E,kBAAoBrQ,EAAI,IAAhC,CAEA,IADA,IAAI9K,EAAQqW,EAAIxgB,MACPsO,EAAO2G,EAAI,EAAG3G,EAAOnE,EAAOmE,IAAQ,CAC3C,IAAIoX,EAAQnF,GAAQC,EAAKlS,GAAM8W,WAI/B,GAAIM,MAAYA,aAAiBhC,KAAiBpV,EAAOoX,EAAMnC,UAAYtO,GAAI,CAC7E9K,EAAQmE,EAAO,EACf,KACF,CACF,CACAkS,EAAI8E,kBAAoBjrB,KAAKiE,IAAIkiB,EAAI8E,kBAAmBnb,EAZX,CAa/C,CAGA,IAAIkd,IAAmB,EAAOC,IAAoB,EAElD,SAASC,KACPF,IAAmB,CACrB,CAEA,SAASG,KACPF,IAAoB,CACtB,CAIA,SAASG,GAAWC,EAAQ9Z,EAAMC,GAChC1f,KAAKu5B,OAASA,EACdv5B,KAAKyf,KAAOA,EAAMzf,KAAK0f,GAAKA,CAC9B,CAGA,SAAS8Z,GAAiBC,EAAOF,GAC/B,GAAIE,EAAS,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAAG,CAClD,IAAI65B,EAAOD,EAAM55B,GACjB,GAAI65B,EAAKH,QAAUA,EAAU,OAAOG,CACtC,CACF,CAIA,SAASC,GAAiBF,EAAOC,GAE/B,IADA,IAAI9T,EACK/lB,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAC5B45B,EAAM55B,IAAM65B,IAAS9T,IAAMA,EAAI,KAAKjhB,KAAK80B,EAAM55B,IACvD,OAAO+lB,CACT,CAGA,SAASgU,GAAczZ,EAAMuZ,EAAMG,GACjC,IAAIC,EAAWD,GAAM95B,OAAOg6B,UAAYF,EAAGG,cAAgBH,EAAGG,YAAc,IAAID,UAC5ED,GAAY3Z,EAAK6Z,aAAeF,EAASrsB,IAAI0S,EAAK6Z,aACpD7Z,EAAK6Z,YAAYr1B,KAAK+0B,IAEtBvZ,EAAK6Z,YAAc7Z,EAAK6Z,YAAc7Z,EAAK6Z,YAAYj1B,OAAO,CAAC20B,IAAS,CAACA,GACrEI,GAAYA,EAASx1B,IAAI6b,EAAK6Z,cAEpCN,EAAKH,OAAOU,WAAW9Z,EACzB,CAMA,SAAS+Z,GAAkB3rB,EAAK4rB,EAASC,GACvC,IAAIC,EACJ,GAAI9rB,EAAO,IAAK,IAAI1O,EAAI,EAAGA,EAAI0O,EAAI5N,SAAUd,EAAG,CAC9C,IAAI65B,EAAOnrB,EAAI1O,GAAI05B,EAASG,EAAKH,OAEjC,GADgC,MAAbG,EAAKja,OAAiB8Z,EAAOe,cAAgBZ,EAAKja,MAAQ0a,EAAUT,EAAKja,KAAO0a,IAC/ET,EAAKja,MAAQ0a,GAA0B,YAAfZ,EAAO/2B,QAAwB43B,IAAaV,EAAKH,OAAOgB,YAAa,CAC/G,IAAIC,EAAuB,MAAXd,EAAKha,KAAe6Z,EAAOkB,eAAiBf,EAAKha,IAAMya,EAAUT,EAAKha,GAAKya,IACzFE,IAAOA,EAAK,KAAK11B,KAAK,IAAI20B,GAAWC,EAAQG,EAAKja,KAAM+a,EAAY,KAAOd,EAAKha,IACpF,CACF,CACA,OAAO2a,CACT,CACA,SAASK,GAAiBnsB,EAAKosB,EAAOP,GACpC,IAAIC,EACJ,GAAI9rB,EAAO,IAAK,IAAI1O,EAAI,EAAGA,EAAI0O,EAAI5N,SAAUd,EAAG,CAC9C,IAAI65B,EAAOnrB,EAAI1O,GAAI05B,EAASG,EAAKH,OAEjC,GAD2B,MAAXG,EAAKha,KAAe6Z,EAAOkB,eAAiBf,EAAKha,IAAMib,EAAQjB,EAAKha,GAAKib,IACxEjB,EAAKja,MAAQkb,GAAwB,YAAfpB,EAAO/2B,QAAwB43B,GAAYV,EAAKH,OAAOgB,YAAa,CACzG,IAAIK,EAA4B,MAAblB,EAAKja,OAAiB8Z,EAAOe,cAAgBZ,EAAKja,MAAQkb,EAAQjB,EAAKja,KAAOkb,IAC/FN,IAAOA,EAAK,KAAK11B,KAAK,IAAI20B,GAAWC,EAAQqB,EAAe,KAAOlB,EAAKja,KAAOkb,EAChC,MAAXjB,EAAKha,GAAa,KAAOga,EAAKha,GAAKib,GAC3E,CACF,CACA,OAAON,CACT,CAQA,SAASQ,GAAuBxI,EAAKyI,GACnC,GAAIA,EAAOC,KAAQ,OAAO,KAC1B,IAAIC,EAAW5H,GAAOf,EAAKyI,EAAOrb,KAAKU,OAASiS,GAAQC,EAAKyI,EAAOrb,KAAKU,MAAM6Z,YAC3EiB,EAAU7H,GAAOf,EAAKyI,EAAOpb,GAAGS,OAASiS,GAAQC,EAAKyI,EAAOpb,GAAGS,MAAM6Z,YAC1E,IAAKgB,IAAaC,EAAW,OAAO,KAEpC,IAAId,EAAUW,EAAOrb,KAAKW,GAAIua,EAAQG,EAAOpb,GAAGU,GAAIga,EAA0C,GAA/B1G,GAAIoH,EAAOrb,KAAMqb,EAAOpb,IAEnF7N,EAAQqoB,GAAkBc,EAAUb,EAASC,GAC7CpjB,EAAO0jB,GAAiBO,EAASN,EAAOP,GAGxCc,EAAiC,GAAtBJ,EAAO/Z,KAAKpgB,OAAaw6B,EAAS3S,EAAIsS,EAAO/Z,MAAMpgB,QAAUu6B,EAAWf,EAAU,GACjG,GAAItoB,EAEF,IAAK,IAAIhS,EAAI,EAAGA,EAAIgS,EAAMlR,SAAUd,EAAG,CACrC,IAAI65B,EAAO7nB,EAAMhS,GACjB,GAAe,MAAX65B,EAAKha,GAAY,CACnB,IAAI4K,EAAQkP,GAAiBxiB,EAAM0iB,EAAKH,QACnCjP,EACI4Q,IAAYxB,EAAKha,GAAiB,MAAZ4K,EAAM5K,GAAa,KAAO4K,EAAM5K,GAAKyb,GADtDzB,EAAKha,GAAKya,CAE1B,CACF,CAEF,GAAInjB,EAEF,IAAK,IAAI2U,EAAM,EAAGA,EAAM3U,EAAKrW,SAAUgrB,EAAK,CAC1C,IAAIyP,EAASpkB,EAAK2U,GACD,MAAbyP,EAAO1b,KAAc0b,EAAO1b,IAAMyb,GACnB,MAAfC,EAAO3b,KACK+Z,GAAiB3nB,EAAOupB,EAAO7B,UAE3C6B,EAAO3b,KAAO0b,EACVD,IAAarpB,IAAUA,EAAQ,KAAKlN,KAAKy2B,KAG/CA,EAAO3b,MAAQ0b,EACXD,IAAarpB,IAAUA,EAAQ,KAAKlN,KAAKy2B,GAEjD,CAGEvpB,IAASA,EAAQwpB,GAAgBxpB,IACjCmF,GAAQA,GAAQnF,IAASmF,EAAOqkB,GAAgBrkB,IAEpD,IAAIskB,EAAa,CAACzpB,GAClB,IAAKqpB,EAAU,CAEb,IAAkCK,EAA9BC,EAAMV,EAAO/Z,KAAKpgB,OAAS,EAC/B,GAAI66B,EAAM,GAAK3pB,EACX,IAAK,IAAI+Z,EAAM,EAAGA,EAAM/Z,EAAMlR,SAAUirB,EACjB,MAAjB/Z,EAAM+Z,GAAKlM,KACZ6b,IAAeA,EAAa,KAAK52B,KAAK,IAAI20B,GAAWznB,EAAM+Z,GAAK2N,OAAQ,KAAM,OACvF,IAAK,IAAIzN,EAAM,EAAGA,EAAM0P,IAAO1P,EAC3BwP,EAAW32B,KAAK42B,GACpBD,EAAW32B,KAAKqS,EAClB,CACA,OAAOskB,CACT,CAIA,SAASD,GAAgB5B,GACvB,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAAG,CACrC,IAAI65B,EAAOD,EAAM55B,GACA,MAAb65B,EAAKja,MAAgBia,EAAKja,MAAQia,EAAKha,KAAqC,IAA/Bga,EAAKH,OAAOkC,gBACzDhC,EAAM70B,OAAO/E,IAAK,EACxB,CACA,OAAK45B,EAAM94B,OACJ84B,EADqB,IAE9B,CAGA,SAASiC,GAAqBrJ,EAAK5S,EAAMC,GACvC,IAAIic,EAAU,KAQd,GAPAtJ,EAAIM,KAAKlT,EAAKU,KAAMT,EAAGS,KAAO,GAAG,SAAUA,GACzC,GAAIA,EAAK6Z,YAAe,IAAK,IAAIn6B,EAAI,EAAGA,EAAIsgB,EAAK6Z,YAAYr5B,SAAUd,EAAG,CACxE,IAAI+7B,EAAOzb,EAAK6Z,YAAYn6B,GAAG05B,QAC3BqC,EAAKC,UAAcF,IAAsC,GAA3B92B,EAAQ82B,EAASC,KAC9CD,IAAYA,EAAU,KAAKh3B,KAAKi3B,EACvC,CACF,KACKD,EAAW,OAAO,KAEvB,IADA,IAAIG,EAAQ,CAAC,CAACrc,KAAMA,EAAMC,GAAIA,IACrB7f,EAAI,EAAGA,EAAI87B,EAAQh7B,SAAUd,EAEpC,IADA,IAAIk8B,EAAKJ,EAAQ97B,GAAI2R,EAAIuqB,EAAGnoB,KAAK,GACxBnI,EAAI,EAAGA,EAAIqwB,EAAMn7B,SAAU8K,EAAG,CACrC,IAAIuwB,EAAIF,EAAMrwB,GACd,KAAIioB,GAAIsI,EAAEtc,GAAIlO,EAAEiO,MAAQ,GAAKiU,GAAIsI,EAAEvc,KAAMjO,EAAEkO,IAAM,GAAjD,CACA,IAAIuc,EAAW,CAACxwB,EAAG,GAAIywB,EAAQxI,GAAIsI,EAAEvc,KAAMjO,EAAEiO,MAAO0c,EAAMzI,GAAIsI,EAAEtc,GAAIlO,EAAEkO,KAClEwc,EAAQ,IAAMH,EAAGzB,gBAAkB4B,IACnCD,EAASt3B,KAAK,CAAC8a,KAAMuc,EAAEvc,KAAMC,GAAIlO,EAAEiO,QACnC0c,EAAM,IAAMJ,EAAGtB,iBAAmB0B,IAClCF,EAASt3B,KAAK,CAAC8a,KAAMjO,EAAEkO,GAAIA,GAAIsc,EAAEtc,KACrCoc,EAAMl3B,OAAOrE,MAAMu7B,EAAOG,GAC1BxwB,GAAKwwB,EAASt7B,OAAS,CAPwC,CAQjE,CAEF,OAAOm7B,CACT,CAGA,SAASM,GAAkBjc,GACzB,IAAIsZ,EAAQtZ,EAAK6Z,YACjB,GAAKP,EAAL,CACA,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAChC45B,EAAM55B,GAAG05B,OAAO8C,WAAWlc,GAC/BA,EAAK6Z,YAAc,IAHE,CAIvB,CACA,SAASsC,GAAkBnc,EAAMsZ,GAC/B,GAAKA,EAAL,CACA,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAChC45B,EAAM55B,GAAG05B,OAAOU,WAAW9Z,GAC/BA,EAAK6Z,YAAcP,CAHE,CAIvB,CAIA,SAAS8C,GAAUhD,GAAU,OAAOA,EAAOe,eAAiB,EAAI,CAAE,CAClE,SAASkC,GAAWjD,GAAU,OAAOA,EAAOkB,eAAiB,EAAI,CAAE,CAKnE,SAASgC,GAAwB78B,EAAG4lB,GAClC,IAAIkX,EAAU98B,EAAEwhB,MAAMzgB,OAAS6kB,EAAEpE,MAAMzgB,OACvC,GAAe,GAAX+7B,EAAgB,OAAOA,EAC3B,IAAIC,EAAO/8B,EAAEgU,OAAQgpB,EAAOpX,EAAE5R,OAC1BipB,EAAUnJ,GAAIiJ,EAAKld,KAAMmd,EAAKnd,OAAS8c,GAAU38B,GAAK28B,GAAU/W,GACpE,GAAIqX,EAAW,OAAQA,EACvB,IAAIC,EAAQpJ,GAAIiJ,EAAKjd,GAAIkd,EAAKld,KAAO8c,GAAW58B,GAAK48B,GAAWhX,GAChE,OAAIsX,GACGtX,EAAElb,GAAK1K,EAAE0K,EAClB,CAIA,SAASyyB,GAAoB5c,EAAMnE,GACjC,IAAiDsO,EAA7C0S,EAAM7D,IAAqBhZ,EAAK6Z,YACpC,GAAIgD,EAAO,IAAK,IAAIC,OAAK,EAAUp9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,GAC1Do9B,EAAKD,EAAIn9B,IACF05B,OAAO2D,WAA0C,OAA5BlhB,EAAQihB,EAAGxd,KAAOwd,EAAGvd,OAC3C4K,GAASmS,GAAwBnS,EAAO2S,EAAG1D,QAAU,KACvDjP,EAAQ2S,EAAG1D,QAEjB,OAAOjP,CACT,CACA,SAAS6S,GAAqBhd,GAAQ,OAAO4c,GAAoB5c,GAAM,EAAM,CAC7E,SAASid,GAAmBjd,GAAQ,OAAO4c,GAAoB5c,GAAM,EAAO,CAE5E,SAASkd,GAAoBld,EAAMC,GACjC,IAAiDkK,EAA7C0S,EAAM7D,IAAqBhZ,EAAK6Z,YACpC,GAAIgD,EAAO,IAAK,IAAIn9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,EAAG,CAC9C,IAAIo9B,EAAKD,EAAIn9B,GACTo9B,EAAG1D,OAAO2D,YAAyB,MAAXD,EAAGxd,MAAgBwd,EAAGxd,KAAOW,KAAiB,MAAT6c,EAAGvd,IAAcud,EAAGvd,GAAKU,MACpFkK,GAASmS,GAAwBnS,EAAO2S,EAAG1D,QAAU,KAAMjP,EAAQ2S,EAAG1D,OAC9E,CACA,OAAOjP,CACT,CAKA,SAASgT,GAA0BjL,EAAKU,EAAQtT,EAAMC,EAAI6Z,GACxD,IAAIpZ,EAAOiS,GAAQC,EAAKU,GACpBiK,EAAM7D,IAAqBhZ,EAAK6Z,YACpC,GAAIgD,EAAO,IAAK,IAAIn9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,EAAG,CAC9C,IAAIo9B,EAAKD,EAAIn9B,GACb,GAAKo9B,EAAG1D,OAAO2D,UAAf,CACA,IAAI5S,EAAQ2S,EAAG1D,OAAO3lB,KAAK,GACvBipB,EAAUnJ,GAAIpJ,EAAM7K,KAAMA,IAAS8c,GAAUU,EAAG1D,QAAUgD,GAAUhD,GACpEuD,EAAQpJ,GAAIpJ,EAAM5K,GAAIA,IAAO8c,GAAWS,EAAG1D,QAAUiD,GAAWjD,GACpE,KAAIsD,GAAW,GAAKC,GAAS,GAAKD,GAAW,GAAKC,GAAS,KACvDD,GAAW,IAAMI,EAAG1D,OAAOkB,gBAAkBlB,EAAOe,cAAgB5G,GAAIpJ,EAAM5K,GAAID,IAAS,EAAIiU,GAAIpJ,EAAM5K,GAAID,GAAQ,IACrHod,GAAW,IAAMI,EAAG1D,OAAOkB,gBAAkBlB,EAAOe,cAAgB5G,GAAIpJ,EAAM7K,KAAMC,IAAO,EAAIgU,GAAIpJ,EAAM7K,KAAMC,GAAM,IACrH,OAAO,CAP0B,CAQvC,CACF,CAMA,SAAS6d,GAAWpd,GAElB,IADA,IAAI1P,EACGA,EAAS0sB,GAAqBhd,IACjCA,EAAO1P,EAAOmD,MAAM,GAAG,GAAMuM,KACjC,OAAOA,CACT,CAEA,SAASqd,GAAcrd,GAErB,IADA,IAAI1P,EACGA,EAAS2sB,GAAmBjd,IAC/BA,EAAO1P,EAAOmD,KAAK,GAAG,GAAMuM,KAChC,OAAOA,CACT,CAIA,SAASsd,GAAoBtd,GAE3B,IADA,IAAI1P,EAAQ2Q,EACL3Q,EAAS2sB,GAAmBjd,IACjCA,EAAO1P,EAAOmD,KAAK,GAAG,GAAMuM,MAC1BiB,IAAUA,EAAQ,KAAKzc,KAAKwb,GAEhC,OAAOiB,CACT,CAIA,SAASsc,GAAarL,EAAKsL,GACzB,IAAIxd,EAAOiS,GAAQC,EAAKsL,GAAQC,EAAML,GAAWpd,GACjD,OAAIA,GAAQyd,EAAcD,EACnB5K,GAAO6K,EAChB,CAIA,SAASC,GAAgBxL,EAAKsL,GAC5B,GAAIA,EAAQtL,EAAIyL,WAAc,OAAOH,EACrC,IAAgCltB,EAA5B0P,EAAOiS,GAAQC,EAAKsL,GACxB,IAAKI,GAAa1L,EAAKlS,GAAS,OAAOwd,EACvC,KAAOltB,EAAS2sB,GAAmBjd,IAC/BA,EAAO1P,EAAOmD,KAAK,GAAG,GAAMuM,KAChC,OAAO4S,GAAO5S,GAAQ,CACxB,CAKA,SAAS4d,GAAa1L,EAAKlS,GACzB,IAAI6c,EAAM7D,IAAqBhZ,EAAK6Z,YACpC,GAAIgD,EAAO,IAAK,IAAIC,OAAK,EAAUp9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,EAE1D,IADAo9B,EAAKD,EAAIn9B,IACD05B,OAAO2D,UAAf,CACA,GAAe,MAAXD,EAAGxd,KAAgB,OAAO,EAC9B,IAAIwd,EAAG1D,OAAOyE,YACC,GAAXf,EAAGxd,MAAawd,EAAG1D,OAAOe,eAAiB2D,GAAkB5L,EAAKlS,EAAM8c,GACxE,OAAO,CAJ0B,CAMzC,CACA,SAASgB,GAAkB5L,EAAKlS,EAAMuZ,GACpC,GAAe,MAAXA,EAAKha,GAAY,CACnB,IAAIsC,EAAM0X,EAAKH,OAAO3lB,KAAK,GAAG,GAC9B,OAAOqqB,GAAkB5L,EAAKrQ,EAAI7B,KAAMqZ,GAAiBxX,EAAI7B,KAAK6Z,YAAaN,EAAKH,QACtF,CACA,GAAIG,EAAKH,OAAOkB,gBAAkBf,EAAKha,IAAMS,EAAKY,KAAKpgB,OACnD,OAAO,EACX,IAAK,IAAIs8B,OAAK,EAAUp9B,EAAI,EAAGA,EAAIsgB,EAAK6Z,YAAYr5B,SAAUd,EAE5D,IADAo9B,EAAK9c,EAAK6Z,YAAYn6B,IACf05B,OAAO2D,YAAcD,EAAG1D,OAAOyE,YAAcf,EAAGxd,MAAQia,EAAKha,KACtD,MAATud,EAAGvd,IAAcud,EAAGvd,IAAMga,EAAKja,QAC/Bwd,EAAG1D,OAAOe,eAAiBZ,EAAKH,OAAOkB,iBACxCwD,GAAkB5L,EAAKlS,EAAM8c,GAAO,OAAO,CAEnD,CAGA,SAASiB,GAAaC,GAIpB,IADA,IAAIjL,EAAI,EAAGZ,GAFX6L,EAAUZ,GAAWY,IAEM5f,OAClB1e,EAAI,EAAGA,EAAIyyB,EAAMlR,MAAMzgB,SAAUd,EAAG,CAC3C,IAAIsgB,EAAOmS,EAAMlR,MAAMvhB,GACvB,GAAIsgB,GAAQge,EAAW,MAChBjL,GAAK/S,EAAK2S,MACnB,CACA,IAAK,IAAIkJ,EAAI1J,EAAM/T,OAAQyd,EAAcA,GAAX1J,EAAQ0J,GAAazd,OACjD,IAAK,IAAIoN,EAAM,EAAGA,EAAMqQ,EAAEzJ,SAAS5xB,SAAUgrB,EAAK,CAChD,IAAI/J,EAAMoa,EAAEzJ,SAAS5G,GACrB,GAAI/J,GAAO0Q,EAAS,MACbY,GAAKtR,EAAIkR,MAClB,CAEF,OAAOI,CACT,CAKA,SAASkL,GAAWje,GAClB,GAAmB,GAAfA,EAAK2S,OAAe,OAAO,EAE/B,IADA,IAA4BriB,EAAxBgb,EAAMtL,EAAKY,KAAKpgB,OAAgBihB,EAAMzB,EACnC1P,EAAS0sB,GAAqBvb,IAAM,CACzC,IAAI0I,EAAQ7Z,EAAOmD,KAAK,GAAG,GAC3BgO,EAAM0I,EAAM7K,KAAKU,KACjBsL,GAAOnB,EAAM7K,KAAKW,GAAKkK,EAAM5K,GAAGU,EAClC,CAEA,IADAwB,EAAMzB,EACC1P,EAAS2sB,GAAmBxb,IAAM,CACvC,IAAIyc,EAAU5tB,EAAOmD,KAAK,GAAG,GAC7B6X,GAAO7J,EAAIb,KAAKpgB,OAAS09B,EAAQ5e,KAAKW,GAEtCqL,IADA7J,EAAMyc,EAAQ3e,GAAGS,MACNY,KAAKpgB,OAAS09B,EAAQ3e,GAAGU,EACtC,CACA,OAAOqL,CACT,CAGA,SAAS6S,GAAY3e,GACnB,IAAI4e,EAAI5e,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAC7BkM,EAAEC,QAAUpM,GAAQC,EAAKA,EAAIxgB,OAC7B0sB,EAAEE,cAAgBL,GAAWG,EAAEC,SAC/BD,EAAEG,gBAAiB,EACnBrM,EAAIM,MAAK,SAAUxS,GACjB,IAAIsL,EAAM2S,GAAWje,GACjBsL,EAAM8S,EAAEE,gBACVF,EAAEE,cAAgBhT,EAClB8S,EAAEC,QAAUre,EAEhB,GACF,CAMA,IAAIwe,GAAO,SAAS5d,EAAMiZ,EAAa4E,GACrC5+B,KAAK+gB,KAAOA,EACZub,GAAkBt8B,KAAMg6B,GACxBh6B,KAAK8yB,OAAS8L,EAAiBA,EAAe5+B,MAAQ,CACxD,EAQA,SAAS6+B,GAAW1e,EAAMY,EAAMiZ,EAAa4E,GAC3Cze,EAAKY,KAAOA,EACRZ,EAAK8W,aAAc9W,EAAK8W,WAAa,MACrC9W,EAAKqW,SAAUrW,EAAKqW,OAAS,MACf,MAAdrW,EAAKkK,QAAiBlK,EAAKkK,MAAQ,MACvC+R,GAAkBjc,GAClBmc,GAAkBnc,EAAM6Z,GACxB,IAAI8E,EAAYF,EAAiBA,EAAeze,GAAQ,EACpD2e,GAAa3e,EAAK2S,QAAUD,GAAiB1S,EAAM2e,EACzD,CAGA,SAASC,GAAY5e,GACnBA,EAAK5B,OAAS,KACd6d,GAAkBjc,EACpB,CArBAwe,GAAKt+B,UAAU0yB,OAAS,WAAc,OAAOA,GAAO/yB,KAAM,EAC1DguB,GAAW2Q,IAyBX,IAAIK,GAAoB,CAAC,EAAGC,GAA4B,CAAC,EACzD,SAASC,GAAoBviB,EAAO9Z,GAClC,IAAK8Z,GAAS,QAAQ3S,KAAK2S,GAAU,OAAO,KAC5C,IAAIwiB,EAAQt8B,EAAQ81B,aAAesG,GAA4BD,GAC/D,OAAOG,EAAMxiB,KACVwiB,EAAMxiB,GAASA,EAAMlN,QAAQ,OAAQ,SAC1C,CAOA,SAAS2vB,GAAiBzf,EAAI0f,GAI5B,IAAItgB,EAAU+F,EAAK,OAAQ,KAAM,KAAMjC,EAAS,sBAAwB,MACpEyc,EAAU,CAACC,IAAKza,EAAK,MAAO,CAAC/F,GAAU,mBAAoBA,QAASA,EACzDqJ,IAAK,EAAGvG,IAAK,EAAGlC,GAAIA,EACpB6f,eAAe,EACfC,YAAa9f,EAAGuB,UAAU,iBACzCme,EAASnQ,QAAU,CAAC,EAGpB,IAAK,IAAIrvB,EAAI,EAAGA,IAAMw/B,EAASvoB,KAAOuoB,EAASvoB,KAAKnW,OAAS,GAAId,IAAK,CACpE,IAAIsgB,EAAOtgB,EAAIw/B,EAASvoB,KAAKjX,EAAI,GAAKw/B,EAASlf,KAAMkK,OAAQ,EAC7DiV,EAAQzd,IAAM,EACdyd,EAAQI,SAAWC,GAGftQ,GAAgB1P,EAAG/C,QAAQsS,WAAa7E,EAAQ0C,GAAS5M,EAAMR,EAAG0S,IAAI9G,cACtE+T,EAAQI,SAAWE,GAAkBN,EAAQI,SAAUrV,IAC3DiV,EAAQx6B,IAAM,GAEd+6B,GAAkB1f,EAAMmf,EAAS1I,GAAcjX,EAAIQ,EADzBkf,GAAY1f,EAAG/C,QAAQkjB,kBAAoB/M,GAAO5S,KAExEA,EAAK+W,eACH/W,EAAK+W,aAAaR,UAClB4I,EAAQ5I,QAAUnR,EAAYpF,EAAK+W,aAAaR,QAAS4I,EAAQ5I,SAAW,KAC5EvW,EAAK+W,aAAaP,YAClB2I,EAAQ3I,UAAYpR,EAAYpF,EAAK+W,aAAaP,UAAW2I,EAAQ3I,WAAa,MAI9D,GAAtB2I,EAAQx6B,IAAInE,QACZ2+B,EAAQx6B,IAAIH,KAAK,EAAG,EAAG26B,EAAQvgB,QAAQ0F,YAAYwK,GAAiBtP,EAAG/C,QAAQsS,WAG1E,GAALrvB,GACFw/B,EAASnQ,QAAQpqB,IAAMw6B,EAAQx6B,IAC/Bu6B,EAASnQ,QAAQiQ,MAAQ,CAAC,KAE/BE,EAASnQ,QAAQ6Q,OAASV,EAASnQ,QAAQ6Q,KAAO,KAAKp7B,KAAK26B,EAAQx6B,MAC7Du6B,EAASnQ,QAAQ8Q,SAAWX,EAASnQ,QAAQ8Q,OAAS,KAAKr7B,KAAK,CAAC,GAEvE,CAGA,GAAIke,EAAQ,CACV,IAAI7L,EAAOsoB,EAAQvgB,QAAQkhB,WACvB,aAAaj2B,KAAKgN,EAAKpC,YAAeoC,EAAKkpB,eAAiBlpB,EAAKkpB,cAAc,cAC/EZ,EAAQvgB,QAAQnK,UAAY,mBAClC,CAMA,OAJAwY,GAAOzN,EAAI,aAAcA,EAAI0f,EAASlf,KAAMmf,EAAQC,KAChDD,EAAQC,IAAI3qB,YACZ0qB,EAAQ3I,UAAYpR,EAAY+Z,EAAQC,IAAI3qB,UAAW0qB,EAAQ3I,WAAa,KAEzE2I,CACT,CAEA,SAASa,GAA8B/f,GACrC,IAAIuB,EAAQ+C,EAAI,OAAQ,IAAU,kBAGlC,OAFA/C,EAAM1D,MAAQ,MAAQmC,EAAGsJ,WAAW,GAAG9B,SAAS,IAChDjG,EAAMoD,aAAa,aAAcpD,EAAM1D,OAChC0D,CACT,CAIA,SAASge,GAAWL,EAASve,EAAMpE,EAAOyjB,EAAYC,EAAUC,EAAKt5B,GACnE,GAAK+Z,EAAL,CACA,IAEIhC,EAFAwhB,EAAcjB,EAAQG,YAAcA,GAAY1e,EAAMue,EAAQE,eAAiBze,EAC/Eyf,EAAUlB,EAAQ3f,GAAGV,MAAMwhB,aAAcC,GAAW,EAExD,GAAKF,EAAQx2B,KAAK+W,GAMX,CACLhC,EAAUrK,SAASisB,yBAEnB,IADA,IAAI9e,EAAM,EACH,GAAM,CACX2e,EAAQI,UAAY/e,EACpB,IAAIrQ,EAAIgvB,EAAQjmB,KAAKwG,GACjBsH,EAAU7W,EAAIA,EAAE1Q,MAAQ+gB,EAAMd,EAAKpgB,OAASkhB,EAChD,GAAIwG,EAAS,CACX,IAAIiH,EAAM5a,SAASmQ,eAAe0b,EAAYjgC,MAAMuhB,EAAKA,EAAMwG,IAC3D1F,GAAMC,EAAa,EAAK7D,EAAQ0F,YAAYC,EAAI,OAAQ,CAAC4K,KACtDvQ,EAAQ0F,YAAY6K,GAC3BgQ,EAAQx6B,IAAIH,KAAK26B,EAAQzd,IAAKyd,EAAQzd,IAAMwG,EAASiH,GACrDgQ,EAAQlX,KAAOC,EACfiX,EAAQzd,KAAOwG,CACjB,CACA,IAAK7W,EAAK,MACVqQ,GAAOwG,EAAU,EACjB,IAAIwY,OAAQ,EACZ,GAAY,MAARrvB,EAAE,GAAY,CAChB,IAAIyP,EAAUqe,EAAQ3f,GAAG9c,QAAQoe,QAAS6f,EAAW7f,EAAUqe,EAAQlX,IAAMnH,GAC7E4f,EAAQ9hB,EAAQ0F,YAAYC,EAAI,OAAQ6D,EAASuY,GAAW,YACtD/b,aAAa,OAAQ,gBAC3B8b,EAAM9b,aAAa,UAAW,MAC9Bua,EAAQlX,KAAO0Y,CACjB,KAAmB,MAARtvB,EAAE,IAAsB,MAARA,EAAE,KAC3BqvB,EAAQ9hB,EAAQ0F,YAAYC,EAAI,OAAgB,MAARlT,EAAE,GAAa,IAAW,IAAU,oBACtEuT,aAAa,UAAWvT,EAAE,IAChC8tB,EAAQlX,KAAO,KAEfyY,EAAQvB,EAAQ3f,GAAG9c,QAAQk+B,uBAAuBvvB,EAAE,KAC9CuT,aAAa,UAAWvT,EAAE,IAC5BmR,GAAMC,EAAa,EAAK7D,EAAQ0F,YAAYC,EAAI,OAAQ,CAACmc,KACtD9hB,EAAQ0F,YAAYoc,GAC3BvB,EAAQlX,KAAO,GAEjBkX,EAAQx6B,IAAIH,KAAK26B,EAAQzd,IAAKyd,EAAQzd,IAAM,EAAGgf,GAC/CvB,EAAQzd,KACV,CACF,MA3CEyd,EAAQlX,KAAOrH,EAAKpgB,OACpBoe,EAAUrK,SAASmQ,eAAe0b,GAClCjB,EAAQx6B,IAAIH,KAAK26B,EAAQzd,IAAKyd,EAAQzd,IAAMd,EAAKpgB,OAAQoe,GACrD4D,GAAMC,EAAa,IAAK8d,GAAW,GACvCpB,EAAQzd,KAAOd,EAAKpgB,OAyCtB,GADA2+B,EAAQE,cAA2D,IAA3Ce,EAAY7W,WAAW3I,EAAKpgB,OAAS,GACzDgc,GAASyjB,GAAcC,GAAYK,GAAYJ,GAAOt5B,EAAY,CACpE,IAAIg6B,EAAYrkB,GAAS,GACrByjB,IAAcY,GAAaZ,GAC3BC,IAAYW,GAAaX,GAC7B,IAAI1e,EAAQ+C,EAAI,OAAQ,CAAC3F,GAAUiiB,EAAWV,GAC9C,GAAIt5B,EACF,IAAK,IAAIQ,KAAQR,EAAkBA,EAAW0f,eAAelf,IAAiB,SAARA,GAA2B,SAARA,GACrFma,EAAMoD,aAAavd,EAAMR,EAAWQ,IAE1C,OAAO83B,EAAQvgB,QAAQ0F,YAAY9C,EACrC,CACA2d,EAAQvgB,QAAQ0F,YAAY1F,EA7DR,CA8DtB,CAIA,SAAS0gB,GAAY1e,EAAMkgB,GACzB,GAAIlgB,EAAKpgB,OAAS,IAAM,KAAKqJ,KAAK+W,GAAS,OAAOA,EAElD,IADA,IAAImgB,EAAcD,EAAgB/zB,EAAS,GAClCrN,EAAI,EAAGA,EAAIkhB,EAAKpgB,OAAQd,IAAK,CACpC,IAAIugB,EAAKW,EAAKnF,OAAO/b,GACX,KAANugB,IAAa8gB,GAAgBrhC,GAAKkhB,EAAKpgB,OAAS,GAA+B,IAA1BogB,EAAK2I,WAAW7pB,EAAI,KACzEugB,EAAK,KACTlT,GAAUkT,EACV8gB,EAAoB,KAAN9gB,CAChB,CACA,OAAOlT,CACT,CAIA,SAAS0yB,GAAkBle,EAAO2I,GAChC,OAAO,SAAUiV,EAASve,EAAMpE,EAAOyjB,EAAYC,EAAUC,EAAKt5B,GAChE2V,EAAQA,EAAQA,EAAQ,mBAAqB,kBAE7C,IADA,IAAIX,EAAQsjB,EAAQzd,IAAKG,EAAMhG,EAAQ+E,EAAKpgB,SACnC,CAGP,IADA,IAAI4pB,OAAO,EACF1qB,EAAI,EAAGA,EAAIwqB,EAAM1pB,WACxB4pB,EAAOF,EAAMxqB,IACJ6f,GAAK1D,GAASuO,EAAK9K,MAAQzD,GAFJnc,KAIlC,GAAI0qB,EAAK7K,IAAMsC,EAAO,OAAON,EAAM4d,EAASve,EAAMpE,EAAOyjB,EAAYC,EAAUC,EAAKt5B,GACpF0a,EAAM4d,EAASve,EAAKzgB,MAAM,EAAGiqB,EAAK7K,GAAK1D,GAAQW,EAAOyjB,EAAY,KAAME,EAAKt5B,GAC7Eo5B,EAAa,KACbrf,EAAOA,EAAKzgB,MAAMiqB,EAAK7K,GAAK1D,GAC5BA,EAAQuO,EAAK7K,EACf,CACF,CACF,CAEA,SAASyhB,GAAmB7B,EAAS5oB,EAAM6iB,EAAQ6H,GACjD,IAAIC,GAAUD,GAAgB7H,EAAOyE,WACjCqD,GAAU/B,EAAQx6B,IAAIH,KAAK26B,EAAQzd,IAAKyd,EAAQzd,IAAMnL,EAAM2qB,IAC3DD,GAAgB9B,EAAQ3f,GAAG/C,QAAQ0kB,MAAMC,wBACvCF,IACDA,EAAS/B,EAAQvgB,QAAQ0F,YAAY/P,SAASC,cAAc,UAChE0sB,EAAOtc,aAAa,YAAawU,EAAOjvB,KAEtC+2B,IACF/B,EAAQ3f,GAAG/C,QAAQ0kB,MAAME,cAAcH,GACvC/B,EAAQvgB,QAAQ0F,YAAY4c,IAE9B/B,EAAQzd,KAAOnL,EACf4oB,EAAQE,eAAgB,CAC1B,CAIA,SAASK,GAAkB1f,EAAMmf,EAAS9I,GACxC,IAAIiD,EAAQtZ,EAAK6Z,YAAayH,EAAUthB,EAAKY,KAAMtd,EAAK,EACxD,GAAKg2B,EAQL,IAFA,IAAqD9c,EAAO2jB,EACxCoB,EAAWC,EAAcC,EAAgB1E,EAAWl2B,EADpEykB,EAAMgW,EAAQ9gC,OAAQkhB,EAAM,EAAGhiB,EAAI,EAAGkhB,EAAO,GAC7C8gB,EAAa,IACR,CACP,GAAIA,GAAchgB,EAAK,CACrB6f,EAAYC,EAAeC,EAAiBtB,EAAM,GAClDt5B,EAAa,KACbk2B,EAAY,KAAM2E,EAAaz6B,IAE/B,IADA,IAAI06B,EAAiB,GAAIC,OAAY,EAC5Bt2B,EAAI,EAAGA,EAAIguB,EAAM94B,SAAU8K,EAAG,CACrC,IAAIwxB,EAAKxD,EAAMhuB,GAAI+F,EAAIyrB,EAAG1D,OAC1B,GAAc,YAAV/nB,EAAEhP,MAAsBy6B,EAAGxd,MAAQoC,GAAOrQ,EAAEwsB,WAC9C8D,EAAen9B,KAAK6M,QACf,GAAIyrB,EAAGxd,MAAQoC,IAAiB,MAATob,EAAGvd,IAAcud,EAAGvd,GAAKmC,GAAOrQ,EAAE0rB,WAAaD,EAAGvd,IAAMmC,GAAOob,EAAGxd,MAAQoC,GAAM,CAY5G,GAXa,MAATob,EAAGvd,IAAcud,EAAGvd,IAAMmC,GAAOggB,EAAa5E,EAAGvd,KACnDmiB,EAAa5E,EAAGvd,GAChBiiB,EAAe,IAEbnwB,EAAEoD,YAAa8sB,GAAa,IAAMlwB,EAAEoD,WACpCpD,EAAE8uB,MAAOA,GAAOA,EAAMA,EAAM,IAAM,IAAM9uB,EAAE8uB,KAC1C9uB,EAAE4uB,YAAcnD,EAAGxd,MAAQoC,IAAO+f,GAAkB,IAAMpwB,EAAE4uB,YAC5D5uB,EAAE6uB,UAAYpD,EAAGvd,IAAMmiB,IAAeE,IAAcA,EAAY,KAAKp9B,KAAK6M,EAAE6uB,SAAUpD,EAAGvd,IAGzFlO,EAAEyM,SAAUjX,IAAeA,EAAa,CAAC,IAAIiX,MAAQzM,EAAEyM,OACvDzM,EAAExK,WACJ,IAAK,IAAIQ,KAAQgK,EAAExK,YACdA,IAAeA,EAAa,CAAC,IAAIQ,GAAQgK,EAAExK,WAAWQ,GAEzDgK,EAAE0rB,aAAeA,GAAaT,GAAwBS,EAAU3D,OAAQ/nB,GAAK,KAC7E0rB,EAAYD,EAClB,MAAWA,EAAGxd,KAAOoC,GAAOggB,EAAa5E,EAAGxd,OAC1CoiB,EAAa5E,EAAGxd,KAEpB,CACA,GAAIsiB,EAAa,IAAK,IAAItV,EAAM,EAAGA,EAAMsV,EAAUphC,OAAQ8rB,GAAO,EAC1DsV,EAAUtV,EAAM,IAAMoV,IAAcF,GAAgB,IAAMI,EAAUtV,IAE5E,IAAKyQ,GAAaA,EAAUzd,MAAQoC,EAAO,IAAK,IAAI+K,EAAM,EAAGA,EAAMkV,EAAenhC,SAAUisB,EACxFuU,GAAmB7B,EAAS,EAAGwC,EAAelV,IAClD,GAAIsQ,IAAcA,EAAUzd,MAAQ,IAAMoC,EAAK,CAG7C,GAFAsf,GAAmB7B,GAA0B,MAAhBpC,EAAUxd,GAAa+L,EAAM,EAAIyR,EAAUxd,IAAMmC,EAC3Dqb,EAAU3D,OAA0B,MAAlB2D,EAAUzd,MAC3B,MAAhByd,EAAUxd,GAAc,OACxBwd,EAAUxd,IAAMmC,IAAOqb,GAAY,EACzC,CACF,CACA,GAAIrb,GAAO4J,EAAO,MAGlB,IADA,IAAIuW,EAAO91B,KAAKiE,IAAIsb,EAAKoW,GAClB,GAAM,CACX,GAAI9gB,EAAM,CACR,IAAIiB,EAAMH,EAAMd,EAAKpgB,OACrB,IAAKu8B,EAAW,CACd,IAAI+E,EAAYjgB,EAAMggB,EAAOjhB,EAAKzgB,MAAM,EAAG0hC,EAAOngB,GAAOd,EACzDue,EAAQI,SAASJ,EAAS2C,EAAWtlB,EAAQA,EAAQ+kB,EAAYA,EAChDE,EAAgB/f,EAAMogB,EAAUthC,QAAUkhC,EAAaF,EAAe,GAAIrB,EAAKt5B,EAClG,CACA,GAAIgb,GAAOggB,EAAM,CAACjhB,EAAOA,EAAKzgB,MAAM0hC,EAAOngB,GAAMA,EAAMmgB,EAAM,KAAK,CAClEngB,EAAMG,EACN4f,EAAiB,EACnB,CACA7gB,EAAO0gB,EAAQnhC,MAAMmD,EAAIA,EAAK+yB,EAAO32B,MACrC8c,EAAQuiB,GAAoB1I,EAAO32B,KAAMy/B,EAAQ3f,GAAG9c,QACtD,CACF,MArEE,IAAK,IAAI8oB,EAAM,EAAGA,EAAM6K,EAAO71B,OAAQgrB,GAAK,EACxC2T,EAAQI,SAASJ,EAASmC,EAAQnhC,MAAMmD,EAAIA,EAAK+yB,EAAO7K,IAAOuT,GAAoB1I,EAAO7K,EAAI,GAAI2T,EAAQ3f,GAAG9c,SAqErH,CAMA,SAASq/B,GAAS7P,EAAKlS,EAAMwd,GAE3B39B,KAAKmgB,KAAOA,EAEZngB,KAAK8W,KAAO2mB,GAAoBtd,GAEhCngB,KAAK0W,KAAO1W,KAAK8W,KAAOic,GAAOvK,EAAIxoB,KAAK8W,OAAS6mB,EAAQ,EAAI,EAC7D39B,KAAKqkB,KAAOrkB,KAAK+gB,KAAO,KACxB/gB,KAAKmiC,OAASpE,GAAa1L,EAAKlS,EAClC,CAGA,SAASiiB,GAAeziB,EAAIF,EAAMC,GAEhC,IADA,IAAgB2iB,EAAZpyB,EAAQ,GACH4R,EAAMpC,EAAMoC,EAAMnC,EAAImC,EAAMwgB,EAAS,CAC5C,IAAIC,EAAO,IAAIJ,GAASviB,EAAG0S,IAAKD,GAAQzS,EAAG0S,IAAKxQ,GAAMA,GACtDwgB,EAAUxgB,EAAMygB,EAAK5rB,KACrBzG,EAAMtL,KAAK29B,EACb,CACA,OAAOryB,CACT,CAEA,IAAIsyB,GAAiB,KAErB,SAASC,GAAc3I,GACjB0I,GACFA,GAAeE,IAAI99B,KAAKk1B,GAExBA,EAAG6I,UAAYH,GAAiB,CAC9BE,IAAK,CAAC5I,GACN8I,iBAAkB,GAGxB,CAEA,SAASC,GAAoBC,GAG3B,IAAIC,EAAYD,EAAMF,iBAAkB9iC,EAAI,EAC5C,EAAG,CACD,KAAOA,EAAIijC,EAAUniC,OAAQd,IACzBijC,EAAUjjC,GAAGe,KAAK,MACtB,IAAK,IAAI6K,EAAI,EAAGA,EAAIo3B,EAAMJ,IAAI9hC,OAAQ8K,IAAK,CACzC,IAAIouB,EAAKgJ,EAAMJ,IAAIh3B,GACnB,GAAIouB,EAAG/L,uBACH,KAAO+L,EAAGkJ,qBAAuBlJ,EAAG/L,uBAAuBntB,QACzDk5B,EAAG/L,uBAAuB+L,EAAGkJ,wBAAwBniC,KAAK,KAAMi5B,EAAGla,GAC3E,CACF,OAAS9f,EAAIijC,EAAUniC,OACzB,CAEA,SAASqiC,GAAgBnJ,EAAIoJ,GAC3B,IAAIJ,EAAQhJ,EAAG6I,UACf,GAAKG,EAEL,IAAMD,GAAoBC,EAI1B,CAHA,QACEN,GAAiB,KACjBU,EAAMJ,EACR,CACF,CAEA,IAAIK,GAAyB,KAS7B,SAASC,GAAYlW,EAASzqB,GAC5B,IAAI3B,EAAMssB,GAAYF,EAASzqB,GAC/B,GAAK3B,EAAIF,OAAT,CACA,IAAqDyiC,EAAjD1iC,EAAON,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,GAC7CohC,GACFa,EAAOb,GAAeI,iBACbO,GACTE,EAAOF,IAEPE,EAAOF,GAAyB,GAChC3b,WAAW8b,GAAmB,IAMhC,IAJA,IAAInN,EAAO,SAAWr2B,GACpBujC,EAAKz+B,MAAK,WAAc,OAAO9D,EAAIhB,GAAGU,MAAM,KAAMG,EAAO,GAC3D,EAESb,EAAI,EAAGA,EAAIgB,EAAIF,SAAUd,EAChCq2B,EAAMr2B,EAfkB,CAgB5B,CAEA,SAASwjC,KACP,IAAIC,EAAUJ,GACdA,GAAyB,KACzB,IAAK,IAAIrjC,EAAI,EAAGA,EAAIyjC,EAAQ3iC,SAAUd,EAAKyjC,EAAQzjC,IACrD,CAKA,SAAS0jC,GAAqB5jB,EAAI0f,EAAU1B,EAAO6F,GACjD,IAAK,IAAI/3B,EAAI,EAAGA,EAAI4zB,EAASxxB,QAAQlN,OAAQ8K,IAAK,CAChD,IAAIjJ,EAAO68B,EAASxxB,QAAQpC,GAChB,QAARjJ,EAAkBihC,GAAe9jB,EAAI0f,GACxB,UAAR78B,EAAoBkhC,GAAiB/jB,EAAI0f,EAAU1B,EAAO6F,GAClD,SAARhhC,EAAmBmhC,GAAkBhkB,EAAI0f,GACjC,UAAR78B,GAAoBohC,GAAkBjkB,EAAI0f,EAAUmE,EAC/D,CACAnE,EAASxxB,QAAU,IACrB,CAIA,SAASg2B,GAAkBxE,GAQzB,OAPIA,EAAShb,MAAQgb,EAASte,OAC5Bse,EAAShb,KAAOK,EAAI,MAAO,KAAM,KAAM,sBACnC2a,EAASte,KAAKkE,YACdoa,EAASte,KAAKkE,WAAW6e,aAAazE,EAAShb,KAAMgb,EAASte,MAClEse,EAAShb,KAAKI,YAAY4a,EAASte,MAC/B4B,GAAMC,EAAa,IAAKyc,EAAShb,KAAK1H,MAAMonB,OAAS,IAEpD1E,EAAShb,IAClB,CAEA,SAAS2f,GAAqBrkB,EAAI0f,GAChC,IAAInb,EAAMmb,EAAS3I,QAAU2I,EAAS3I,QAAU,KAAO2I,EAASlf,KAAKuW,SAAW,IAAM2I,EAASlf,KAAKuW,QAEpG,GADIxS,IAAOA,GAAO,8BACdmb,EAAS4E,WACP/f,EAAOmb,EAAS4E,WAAWrvB,UAAYsP,GACpCmb,EAAS4E,WAAWhf,WAAWnH,YAAYuhB,EAAS4E,YAAa5E,EAAS4E,WAAa,WACzF,GAAI/f,EAAK,CACd,IAAIggB,EAAOL,GAAkBxE,GAC7BA,EAAS4E,WAAaC,EAAKlnB,aAAa0H,EAAI,MAAO,KAAMR,GAAMggB,EAAKjnB,YACpE0C,EAAG/C,QAAQ0kB,MAAME,cAAcnC,EAAS4E,WAC1C,CACF,CAIA,SAASE,GAAexkB,EAAI0f,GAC1B,IAAI+E,EAAMzkB,EAAG/C,QAAQkjB,iBACrB,OAAIsE,GAAOA,EAAIjkB,MAAQkf,EAASlf,MAC9BR,EAAG/C,QAAQkjB,iBAAmB,KAC9BT,EAASnQ,QAAUkV,EAAIlV,QAChBkV,EAAIC,OAENjF,GAAiBzf,EAAI0f,EAC9B,CAKA,SAASoE,GAAe9jB,EAAI0f,GAC1B,IAAInb,EAAMmb,EAASte,KAAKnM,UACpByvB,EAAQF,GAAexkB,EAAI0f,GAC3BA,EAASte,MAAQse,EAAShb,OAAQgb,EAAShb,KAAOggB,EAAM9E,KAC5DF,EAASte,KAAKkE,WAAW6e,aAAaO,EAAM9E,IAAKF,EAASte,MAC1Dse,EAASte,KAAOsjB,EAAM9E,IAClB8E,EAAM3N,SAAW2I,EAAS3I,SAAW2N,EAAM1N,WAAa0I,EAAS1I,WACnE0I,EAAS3I,QAAU2N,EAAM3N,QACzB2I,EAAS1I,UAAY0N,EAAM1N,UAC3BgN,GAAkBhkB,EAAI0f,IACbnb,IACTmb,EAASte,KAAKnM,UAAYsP,EAE9B,CAEA,SAASyf,GAAkBhkB,EAAI0f,GAC7B2E,GAAqBrkB,EAAI0f,GACrBA,EAASlf,KAAKmkB,UACdT,GAAkBxE,GAAUzqB,UAAYyqB,EAASlf,KAAKmkB,UACjDjF,EAAShb,MAAQgb,EAASte,OAC/Bse,EAAShb,KAAKzP,UAAY,IAC9B,IAAI+hB,EAAY0I,EAAS1I,UAAY0I,EAAS1I,UAAY,KAAO0I,EAASlf,KAAKwW,WAAa,IAAM0I,EAASlf,KAAKwW,UAChH0I,EAASte,KAAKnM,UAAY+hB,GAAa,EACzC,CAEA,SAAS+M,GAAiB/jB,EAAI0f,EAAU1B,EAAO6F,GAS7C,GARInE,EAASkF,SACXlF,EAAShb,KAAKvG,YAAYuhB,EAASkF,QACnClF,EAASkF,OAAS,MAEhBlF,EAASmF,mBACXnF,EAAShb,KAAKvG,YAAYuhB,EAASmF,kBACnCnF,EAASmF,iBAAmB,MAE1BnF,EAASlf,KAAKskB,YAAa,CAC7B,IAAIP,EAAOL,GAAkBxE,GAC7BA,EAASmF,iBAAmB9f,EAAI,MAAO,KAAM,gCAAkC2a,EAASlf,KAAKskB,YAC5D,UAAY9kB,EAAG9c,QAAQ6hC,YAAclB,EAAKmB,UAAYnB,EAAKoB,kBAAoB,cAAiBpB,EAAqB,iBAAI,MAC1J7jB,EAAG/C,QAAQ0kB,MAAME,cAAcnC,EAASmF,kBACxCN,EAAKlnB,aAAaqiB,EAASmF,iBAAkBnF,EAASte,KACxD,CACA,IAAI4a,EAAU0D,EAASlf,KAAK0kB,cAC5B,GAAIllB,EAAG9c,QAAQiiC,aAAenJ,EAAS,CACrC,IAAIoJ,EAASlB,GAAkBxE,GAC3B2F,EAAa3F,EAASkF,OAAS7f,EAAI,MAAO,KAAM,4BAA8B,UAAY/E,EAAG9c,QAAQ6hC,YAAclB,EAAKmB,UAAYnB,EAAKoB,kBAAoB,MAWjK,GAVAI,EAAWjgB,aAAa,cAAe,QACvCpF,EAAG/C,QAAQ0kB,MAAME,cAAcwD,GAC/BD,EAAO/nB,aAAagoB,EAAY3F,EAASte,MACrCse,EAASlf,KAAKskB,cACdO,EAAWpwB,WAAa,IAAMyqB,EAASlf,KAAKskB,cAC5C9kB,EAAG9c,QAAQiiC,aAAiBnJ,GAAYA,EAAQ,4BAChD0D,EAAS4F,WAAaD,EAAWvgB,YACjCC,EAAI,MAAO2O,GAAc1T,EAAG9c,QAAS86B,GACjC,8CACC,SAAY6F,EAAK0B,WAAW,0BAA6B,cAAiBvlB,EAAG/C,QAAyB,kBAAI,QAC/G+e,EAAW,IAAK,IAAIwJ,EAAI,EAAGA,EAAIxlB,EAAG/C,QAAQwoB,YAAYzkC,SAAUwkC,EAAG,CACrE,IAAI76B,EAAKqV,EAAG/C,QAAQwoB,YAAYD,GAAGvwB,UAAW0V,EAAQqR,EAAQjV,eAAepc,IAAOqxB,EAAQrxB,GACxFggB,GACA0a,EAAWvgB,YAAYC,EAAI,MAAO,CAAC4F,GAAQ,wBACjB,SAAYkZ,EAAK0B,WAAW56B,GAAO,cAAiBk5B,EAAK6B,YAAY/6B,GAAO,MAC5G,CACF,CACF,CAEA,SAASs5B,GAAkBjkB,EAAI0f,EAAUmE,GACnCnE,EAASiG,YAAajG,EAASiG,UAAY,MAE/C,IADA,IAAIC,EAAWthB,EAAU,yBAChBI,EAAOgb,EAAShb,KAAKpH,WAAY9J,OAAO,EAAUkR,EAAMA,EAAOlR,EACtEA,EAAOkR,EAAKmhB,YACRD,EAASv7B,KAAKqa,EAAKzP,YAAcyqB,EAAShb,KAAKvG,YAAYuG,GAEjEohB,GAAkB9lB,EAAI0f,EAAUmE,EAClC,CAGA,SAASkC,GAAiB/lB,EAAI0f,EAAU1B,EAAO6F,GAC7C,IAAIa,EAAQF,GAAexkB,EAAI0f,GAQ/B,OAPAA,EAASte,KAAOse,EAAShb,KAAOggB,EAAM9E,IAClC8E,EAAM3N,UAAW2I,EAAS3I,QAAU2N,EAAM3N,SAC1C2N,EAAM1N,YAAa0I,EAAS1I,UAAY0N,EAAM1N,WAElDgN,GAAkBhkB,EAAI0f,GACtBqE,GAAiB/jB,EAAI0f,EAAU1B,EAAO6F,GACtCiC,GAAkB9lB,EAAI0f,EAAUmE,GACzBnE,EAAShb,IAClB,CAIA,SAASohB,GAAkB9lB,EAAI0f,EAAUmE,GAEvC,GADAmC,GAAqBhmB,EAAI0f,EAASlf,KAAMkf,EAAUmE,GAAM,GACpDnE,EAASvoB,KAAQ,IAAK,IAAIjX,EAAI,EAAGA,EAAIw/B,EAASvoB,KAAKnW,OAAQd,IAC3D8lC,GAAqBhmB,EAAI0f,EAASvoB,KAAKjX,GAAIw/B,EAAUmE,GAAM,EACjE,CAEA,SAASmC,GAAqBhmB,EAAIQ,EAAMkf,EAAUmE,EAAMoC,GACtD,GAAKzlB,EAAK0lB,QAEV,IADA,IAAI3B,EAAOL,GAAkBxE,GACpBx/B,EAAI,EAAGimC,EAAK3lB,EAAK0lB,QAAShmC,EAAIimC,EAAGnlC,SAAUd,EAAG,CACrD,IAAIwhC,EAASyE,EAAGjmC,GAAIwkB,EAAOK,EAAI,MAAO,CAAC2c,EAAOhd,MAAO,yBAA2Bgd,EAAOzsB,UAAY,IAAMysB,EAAOzsB,UAAY,KACvHysB,EAAO0E,mBAAqB1hB,EAAKU,aAAa,mBAAoB,QACvEihB,GAAmB3E,EAAQhd,EAAMgb,EAAUmE,GAC3C7jB,EAAG/C,QAAQ0kB,MAAME,cAAcnd,GAC3BuhB,GAAcvE,EAAO4E,MACrB/B,EAAKlnB,aAAaqH,EAAMgb,EAASkF,QAAUlF,EAASte,MAEpDmjB,EAAKzf,YAAYJ,GACrB8e,GAAY9B,EAAQ,SACtB,CACF,CAEA,SAAS2E,GAAmB3E,EAAQhd,EAAMgb,EAAUmE,GAClD,GAAInC,EAAO6E,UAAW,EACvB7G,EAASiG,YAAcjG,EAASiG,UAAY,KAAK3gC,KAAK0f,GACnD,IAAI8hB,EAAQ3C,EAAK4C,aACjB/hB,EAAK1H,MAAM+S,KAAO8T,EAAKmB,SAAW,KAC7BtD,EAAOgF,cACVF,GAAS3C,EAAKoB,iBACdvgB,EAAK1H,MAAM2pB,YAAc9C,EAAKoB,iBAAmB,MAEnDvgB,EAAK1H,MAAMwpB,MAAQA,EAAQ,IAC7B,CACI9E,EAAOgF,cACThiB,EAAK1H,MAAMonB,OAAS,EACpB1f,EAAK1H,MAAM4pB,SAAW,WACjBlF,EAAO6E,YAAa7hB,EAAK1H,MAAM6pB,YAAchD,EAAKoB,iBAAmB,MAE9E,CAEA,SAAS6B,GAAapF,GACpB,GAAqB,MAAjBA,EAAOvO,OAAkB,OAAOuO,EAAOvO,OAC3C,IAAInT,EAAK0hB,EAAOhP,IAAI1S,GACpB,IAAKA,EAAM,OAAO,EAClB,IAAKjb,EAASgQ,SAASoI,KAAMukB,EAAOhd,MAAO,CACzC,IAAIqiB,EAAc,sBACdrF,EAAOgF,cACPK,GAAe,iBAAmB/mB,EAAG/C,QAAQ+pB,QAAQvX,YAAc,OACnEiS,EAAO6E,YACPQ,GAAe,UAAY/mB,EAAG/C,QAAQgqB,QAAQC,YAAc,OAChEriB,EAAqB7E,EAAG/C,QAAQsS,QAASxK,EAAI,MAAO,CAAC2c,EAAOhd,MAAO,KAAMqiB,GAC3E,CACA,OAAOrF,EAAOvO,OAASuO,EAAOhd,KAAKY,WAAWkK,YAChD,CAGA,SAAS2X,GAAclqB,EAAS1R,GAC9B,IAAK,IAAI4b,EAAI0H,GAAStjB,GAAI4b,GAAKlK,EAAQgqB,QAAS9f,EAAIA,EAAE7B,WACpD,IAAK6B,GAAoB,GAAdA,EAAE9B,UAAuD,QAAtC8B,EAAEigB,aAAa,qBACxCjgB,EAAE7B,YAAcrI,EAAQoqB,OAASlgB,GAAKlK,EAAQqqB,MAC/C,OAAO,CAEf,CAIA,SAASC,GAAWtqB,GAAU,OAAOA,EAAQuqB,UAAUC,SAAS,CAChE,SAASC,GAAYzqB,GAAU,OAAOA,EAAQqqB,MAAM9X,aAAevS,EAAQuqB,UAAUhY,YAAY,CACjG,SAASmY,GAAS1qB,GAChB,GAAIA,EAAQ2qB,eAAkB,OAAO3qB,EAAQ2qB,eAC7C,IAAIr8B,EAAIsZ,EAAqB5H,EAAQsS,QAASxK,EAAI,MAAO,IAAK,yBAC1D/H,EAAQ5c,OAAOynC,iBAAmBznC,OAAOynC,iBAAiBt8B,GAAKA,EAAEu8B,aACjE/uB,EAAO,CAACgX,KAAMgY,SAAS/qB,EAAM2pB,aAAc3W,MAAO+X,SAAS/qB,EAAMgrB,eAErE,OADKC,MAAMlvB,EAAKgX,OAAUkY,MAAMlvB,EAAKiX,SAAU/S,EAAQ2qB,eAAiB7uB,GACjEA,CACT,CAEA,SAASmvB,GAAUloB,GAAM,OAAO+H,EAAc/H,EAAG/C,QAAQkrB,cAAe,CACxE,SAASC,GAAapoB,GACpB,OAAOA,EAAG/C,QAAQorB,SAASnB,YAAcgB,GAAUloB,GAAMA,EAAG/C,QAAQqrB,QACtE,CACA,SAASC,GAAcvoB,GACrB,OAAOA,EAAG/C,QAAQorB,SAASG,aAAeN,GAAUloB,GAAMA,EAAG/C,QAAQwrB,SACvE,CAMA,SAASC,GAAkB1oB,EAAI0f,EAAUiJ,GACvC,IAAIC,EAAW5oB,EAAG9c,QAAQ2lC,aACtBC,EAAWF,GAAYR,GAAapoB,GACxC,IAAK0f,EAASnQ,QAAQwZ,SAAWH,GAAYlJ,EAASnQ,QAAQiX,OAASsC,EAAU,CAC/E,IAAIC,EAAUrJ,EAASnQ,QAAQwZ,QAAU,GACzC,GAAIH,EAAU,CACZlJ,EAASnQ,QAAQiX,MAAQsC,EAEzB,IADA,IAAIE,EAAQtJ,EAASte,KAAK9D,WAAW2rB,iBAC5B/oC,EAAI,EAAGA,EAAI8oC,EAAMhoC,OAAS,EAAGd,IAAK,CACzC,IAAI+hB,EAAM+mB,EAAM9oC,GAAIsT,EAAOw1B,EAAM9oC,EAAI,GACjCqM,KAAK0kB,IAAIhP,EAAIinB,OAAS11B,EAAK01B,QAAU,GACrCH,EAAQ/jC,MAAMid,EAAIinB,OAAS11B,EAAK21B,KAAO,EAAIR,EAAKQ,IACtD,CACF,CACAJ,EAAQ/jC,KAAK2jC,EAAKO,OAASP,EAAKQ,IAClC,CACF,CAKA,SAASC,GAAgB1J,EAAUlf,EAAMwd,GACvC,GAAI0B,EAASlf,MAAQA,EACjB,MAAO,CAACrb,IAAKu6B,EAASnQ,QAAQpqB,IAAKq6B,MAAOE,EAASnQ,QAAQiQ,OAC/D,GAAIE,EAASvoB,KAAM,CACjB,IAAK,IAAIjX,EAAI,EAAGA,EAAIw/B,EAASvoB,KAAKnW,OAAQd,IACtC,GAAIw/B,EAASvoB,KAAKjX,IAAMsgB,EACtB,MAAO,CAACrb,IAAKu6B,EAASnQ,QAAQ6Q,KAAKlgC,GAAIs/B,MAAOE,EAASnQ,QAAQ8Q,OAAOngC,IAC5E,IAAK,IAAI8rB,EAAM,EAAGA,EAAM0T,EAASvoB,KAAKnW,OAAQgrB,IAC1C,GAAIoH,GAAOsM,EAASvoB,KAAK6U,IAAQgS,EAC/B,MAAO,CAAC74B,IAAKu6B,EAASnQ,QAAQ6Q,KAAKpU,GAAMwT,MAAOE,EAASnQ,QAAQ8Q,OAAOrU,GAAMhpB,QAAQ,EAC9F,CACF,CAIA,SAASqmC,GAA0BrpB,EAAIQ,GAErC,IAAIwd,EAAQ5K,GADZ5S,EAAOod,GAAWpd,IAEdmiB,EAAO3iB,EAAG/C,QAAQkjB,iBAAmB,IAAIoC,GAASviB,EAAG0S,IAAKlS,EAAMwd,GACpE2E,EAAK3E,MAAQA,EACb,IAAI0G,EAAQ/B,EAAK+B,MAAQjF,GAAiBzf,EAAI2iB,GAG9C,OAFAA,EAAKvhB,KAAOsjB,EAAM9E,IAClB/a,EAAqB7E,EAAG/C,QAAQqsB,YAAa5E,EAAM9E,KAC5C+C,CACT,CAIA,SAAS4G,GAAYvpB,EAAIQ,EAAMC,EAAI+oB,GACjC,OAAOC,GAAoBzpB,EAAI0pB,GAAsB1pB,EAAIQ,GAAOC,EAAI+oB,EACtE,CAGA,SAASG,GAAgB3pB,EAAIge,GAC3B,GAAIA,GAAShe,EAAG/C,QAAQ8a,UAAYiG,EAAQhe,EAAG/C,QAAQ+a,OACnD,OAAOhY,EAAG/C,QAAQ0lB,KAAKiH,GAAc5pB,EAAIge,IAC7C,IAAIyG,EAAMzkB,EAAG/C,QAAQkjB,iBACrB,OAAIsE,GAAOzG,GAASyG,EAAIzG,OAASA,EAAQyG,EAAIzG,MAAQyG,EAAI1tB,KAC9C0tB,OADX,CAEF,CAOA,SAASiF,GAAsB1pB,EAAIQ,GACjC,IAAIwd,EAAQ5K,GAAO5S,GACfmiB,EAAOgH,GAAgB3pB,EAAIge,GAC3B2E,IAASA,EAAKvhB,KAChBuhB,EAAO,KACEA,GAAQA,EAAKz0B,UACtB01B,GAAqB5jB,EAAI2iB,EAAM3E,EAAO6L,GAAc7pB,IACpDA,EAAGkO,MAAM4b,aAAc,GAEpBnH,IACDA,EAAO0G,GAA0BrpB,EAAIQ,IAEzC,IAAI2R,EAAOiX,GAAgBzG,EAAMniB,EAAMwd,GACvC,MAAO,CACLxd,KAAMA,EAAMmiB,KAAMA,EAAMgG,KAAM,KAC9BxjC,IAAKgtB,EAAKhtB,IAAKq6B,MAAOrN,EAAKqN,MAAOx8B,OAAQmvB,EAAKnvB,OAC/C+mC,YAAY,EAEhB,CAIA,SAASN,GAAoBzpB,EAAIgqB,EAAUvpB,EAAI+oB,EAAMS,GAC/CD,EAAShnC,SAAUyd,GAAM,GAC7B,IAA6BkK,EAAzBjpB,EAAM+e,GAAM+oB,GAAQ,IAaxB,OAZIQ,EAASxK,MAAMzY,eAAerlB,GAChCipB,EAAQqf,EAASxK,MAAM99B,IAElBsoC,EAASrB,OACVqB,EAASrB,KAAOqB,EAASrH,KAAKvhB,KAAKyO,yBAClCma,EAASD,aACZrB,GAAkB1oB,EAAIgqB,EAASrH,KAAMqH,EAASrB,MAC9CqB,EAASD,YAAa,IAExBpf,EAAQuf,GAAiBlqB,EAAIgqB,EAAUvpB,EAAI+oB,IAChCW,QAASH,EAASxK,MAAM99B,GAAOipB,IAErC,CAACoF,KAAMpF,EAAMoF,KAAMC,MAAOrF,EAAMqF,MAC/BmZ,IAAKc,EAAYtf,EAAMyf,KAAOzf,EAAMwe,IACpCD,OAAQe,EAAYtf,EAAM0f,QAAU1f,EAAMue,OACpD,CAEA,IAwbIoB,GAxbAC,GAAW,CAACxa,KAAM,EAAGC,MAAO,EAAGmZ,IAAK,EAAGD,OAAQ,GAEnD,SAASsB,GAAuBrlC,EAAKsb,EAAI+oB,GAIvC,IAHA,IAAI9kB,EAAMrI,EAAOgG,EAAKiE,EAAUmkB,EAAQC,EAG/BxqC,EAAI,EAAGA,EAAIiF,EAAInE,OAAQd,GAAK,EAcnC,GAbAuqC,EAAStlC,EAAIjF,GACbwqC,EAAOvlC,EAAIjF,EAAI,GACXugB,EAAKgqB,GACPpuB,EAAQ,EAAGgG,EAAM,EACjBiE,EAAW,QACF7F,EAAKiqB,EAEdroB,GADAhG,EAAQoE,EAAKgqB,GACC,GACLvqC,GAAKiF,EAAInE,OAAS,GAAKyf,GAAMiqB,GAAQvlC,EAAIjF,EAAI,GAAKugB,KAE3DpE,GADAgG,EAAMqoB,EAAOD,GACC,EACVhqB,GAAMiqB,IAAQpkB,EAAW,UAElB,MAATjK,EAAe,CAIjB,GAHAqI,EAAOvf,EAAIjF,EAAI,GACXuqC,GAAUC,GAAQlB,IAAS9kB,EAAKkW,WAAa,OAAS,WACtDtU,EAAWkjB,GACH,QAARA,GAA2B,GAATntB,EAClB,KAAOnc,GAAKiF,EAAIjF,EAAI,IAAMiF,EAAIjF,EAAI,IAAMiF,EAAIjF,EAAI,GAAG06B,YACnDlW,EAAOvf,GAAKjF,GAAK,GAAK,GACtBomB,EAAW,OAEf,GAAY,SAARkjB,GAAmBntB,GAASquB,EAAOD,EACnC,KAAOvqC,EAAIiF,EAAInE,OAAS,GAAKmE,EAAIjF,EAAI,IAAMiF,EAAIjF,EAAI,KAAOiF,EAAIjF,EAAI,GAAG06B,YACrElW,EAAOvf,GAAKjF,GAAK,GAAK,GACtBomB,EAAW,QAEf,KACF,CAEF,MAAO,CAAC5B,KAAMA,EAAMrI,MAAOA,EAAOgG,IAAKA,EAAKiE,SAAUA,EAAUqkB,WAAYF,EAAQG,SAAUF,EAChG,CAEA,SAASG,GAAc7B,EAAOQ,GAC5B,IAAIb,EAAO4B,GACX,GAAY,QAARf,EAAkB,IAAK,IAAItpC,EAAI,EAAGA,EAAI8oC,EAAMhoC,SACzC2nC,EAAOK,EAAM9oC,IAAI6vB,MAAQ4Y,EAAK3Y,MADmB9vB,UAE7C,IAAK,IAAI8rB,EAAMgd,EAAMhoC,OAAS,EAAGgrB,GAAO,IAC5C2c,EAAOK,EAAMhd,IAAM+D,MAAQ4Y,EAAK3Y,MADehE,KAGtD,OAAO2c,CACT,CAEA,SAASuB,GAAiBlqB,EAAIgqB,EAAUvpB,EAAI+oB,GAC1C,IAGIb,EAHAmC,EAAQN,GAAuBR,EAAS7kC,IAAKsb,EAAI+oB,GACjD9kB,EAAOomB,EAAMpmB,KAAMrI,EAAQyuB,EAAMzuB,MAAOgG,EAAMyoB,EAAMzoB,IAAKiE,EAAWwkB,EAAMxkB,SAG9E,GAAqB,GAAjB5B,EAAKW,SAAe,CACtB,IAAK,IAAI2G,EAAM,EAAGA,EAAM,EAAGA,IAAO,CAChC,KAAO3P,GAASyN,GAAgBkgB,EAASxpB,KAAKY,KAAKnF,OAAO6uB,EAAMH,WAAatuB,OAAaA,EAC1F,KAAOyuB,EAAMH,WAAatoB,EAAMyoB,EAAMF,UAAY9gB,GAAgBkgB,EAASxpB,KAAKY,KAAKnF,OAAO6uB,EAAMH,WAAatoB,OAAWA,EAK1H,IAHIsmB,EADA3lB,GAAMC,EAAa,GAAc,GAAT5G,GAAcgG,GAAOyoB,EAAMF,SAAWE,EAAMH,WAC7DjmB,EAAKY,WAAWuK,wBAEhBgb,GAAcrmB,EAAME,EAAMrI,EAAOgG,GAAK4mB,iBAAkBO,IAC1DzZ,MAAQ4Y,EAAK3Y,OAAkB,GAAT3T,EAAc,MAC7CgG,EAAMhG,EACNA,GAAgB,EAChBiK,EAAW,OACb,CACItD,GAAMC,EAAa,KAAM0lB,EAAOoC,GAA0B/qB,EAAG/C,QAAQsS,QAASoZ,GACpF,KAAO,CAEL,IAAIK,EADA3sB,EAAQ,IAAKiK,EAAWkjB,EAAO,SAG/Bb,EADA3oB,EAAG9c,QAAQ2lC,eAAiBG,EAAQtkB,EAAKukB,kBAAkBjoC,OAAS,EAC7DgoC,EAAc,SAARQ,EAAkBR,EAAMhoC,OAAS,EAAI,GAE3C0jB,EAAKmL,uBAClB,CACA,GAAI7M,GAAMC,EAAa,IAAM5G,KAAWssB,IAASA,EAAK5Y,OAAS4Y,EAAK3Y,OAAQ,CAC1E,IAAIgb,EAAQtmB,EAAKY,WAAW2jB,iBAAiB,GAEzCN,EADAqC,EACO,CAACjb,KAAMib,EAAMjb,KAAMC,MAAOgb,EAAMjb,KAAOkb,GAAUjrB,EAAG/C,SAAUksB,IAAK6B,EAAM7B,IAAKD,OAAQ8B,EAAM9B,QAE5FqB,EACb,CAMA,IAJA,IAAIH,EAAOzB,EAAKQ,IAAMa,EAASrB,KAAKQ,IAAK+B,EAAOvC,EAAKO,OAASc,EAASrB,KAAKQ,IACxE7e,GAAO8f,EAAOc,GAAQ,EACtBnC,EAAUiB,EAASrH,KAAKpT,QAAQwZ,QAChC7oC,EAAI,EACDA,EAAI6oC,EAAQ/nC,OAAS,KACpBspB,EAAMye,EAAQ7oC,IADSA,KAE/B,IAAIipC,EAAMjpC,EAAI6oC,EAAQ7oC,EAAI,GAAK,EAAGirC,EAAMpC,EAAQ7oC,GAC5CqN,EAAS,CAACwiB,MAAmB,SAAZzJ,EAAsBqiB,EAAK3Y,MAAQ2Y,EAAK5Y,MAAQia,EAASrB,KAAK5Y,KACrEC,OAAoB,QAAZ1J,EAAqBqiB,EAAK5Y,KAAO4Y,EAAK3Y,OAASga,EAASrB,KAAK5Y,KACrEoZ,IAAKA,EAAKD,OAAQiC,GAIhC,OAHKxC,EAAK5Y,MAAS4Y,EAAK3Y,QAASziB,EAAO48B,OAAQ,GAC3CnqB,EAAG9c,QAAQkoC,4BAA6B79B,EAAO68B,KAAOA,EAAM78B,EAAO88B,QAAUa,GAE3E39B,CACT,CAIA,SAASw9B,GAA0Bxb,EAASoZ,GAC1C,IAAKvoC,OAAOirC,QAAgC,MAAtBA,OAAOC,aACzBD,OAAOC,aAAeD,OAAOE,aAAeza,GAAkBvB,GAC9D,OAAOoZ,EACX,IAAI6C,EAASH,OAAOC,YAAcD,OAAOE,WACrCE,EAASJ,OAAOK,YAAcL,OAAOM,WACzC,MAAO,CAAC5b,KAAM4Y,EAAK5Y,KAAOyb,EAAQxb,MAAO2Y,EAAK3Y,MAAQwb,EAC9CrC,IAAKR,EAAKQ,IAAMsC,EAAQvC,OAAQP,EAAKO,OAASuC,EACxD,CAEA,SAASG,GAA6BlM,GACpC,GAAIA,EAASnQ,UACXmQ,EAASnQ,QAAQiQ,MAAQ,CAAC,EAC1BE,EAASnQ,QAAQwZ,QAAU,KACvBrJ,EAASvoB,MAAQ,IAAK,IAAIjX,EAAI,EAAGA,EAAIw/B,EAASvoB,KAAKnW,OAAQd,IAC3Dw/B,EAASnQ,QAAQ8Q,OAAOngC,GAAK,CAAC,CAEtC,CAEA,SAAS2rC,GAA0B7rB,GACjCA,EAAG/C,QAAQ6uB,gBAAkB,KAC7BnnB,EAAe3E,EAAG/C,QAAQqsB,aAC1B,IAAK,IAAIppC,EAAI,EAAGA,EAAI8f,EAAG/C,QAAQ0lB,KAAK3hC,OAAQd,IACxC0rC,GAA6B5rB,EAAG/C,QAAQ0lB,KAAKziC,GACnD,CAEA,SAAS6rC,GAAY/rB,GACnB6rB,GAA0B7rB,GAC1BA,EAAG/C,QAAQ+uB,gBAAkBhsB,EAAG/C,QAAQgvB,iBAAmBjsB,EAAG/C,QAAQ2qB,eAAiB,KAClF5nB,EAAG9c,QAAQ2lC,eAAgB7oB,EAAG/C,QAAQ8hB,gBAAiB,GAC5D/e,EAAG/C,QAAQivB,aAAe,IAC5B,CAEA,SAASC,KAIP,OAAI/oB,GAAUS,IAAoB9O,SAASoI,KAAK0S,wBAAwBE,KAAOgY,SAASF,iBAAiB9yB,SAASoI,MAAM0pB,aACjHzmC,OAAOgsC,cAAgBr3B,SAASs3B,iBAAmBt3B,SAASoI,MAAMmvB,UAC3E,CACA,SAASC,KACP,OAAInpB,GAAUS,IAAoB9O,SAASoI,KAAK0S,wBAAwBsZ,IAAMpB,SAASF,iBAAiB9yB,SAASoI,MAAMqvB,YAChHpsC,OAAOqsC,cAAgB13B,SAASs3B,iBAAmBt3B,SAASoI,MAAMuvB,SAC3E,CAEA,SAASC,GAAgBnO,GACvB,IACI0H,EADMtI,GAAWY,GACH0H,QACd/S,EAAS,EACb,GAAI+S,EAAW,IAAK,IAAIhmC,EAAI,EAAGA,EAAIgmC,EAAQllC,SAAUd,EAASgmC,EAAQhmC,GAAGomC,QACrEnT,GAAU2T,GAAaZ,EAAQhmC,KACnC,OAAOizB,CACT,CAMA,SAASyZ,GAAgB5sB,EAAIwe,EAASmK,EAAMv+B,EAASyiC,GACnD,IAAKA,EAAgB,CACnB,IAAI1Z,EAASwZ,GAAgBnO,GAC7BmK,EAAKQ,KAAOhW,EAAQwV,EAAKO,QAAU/V,CACrC,CACA,GAAe,QAAX/oB,EAAqB,OAAOu+B,EAC3Bv+B,IAAWA,EAAU,SAC1B,IAAI0iC,EAAOvO,GAAaC,GAGxB,GAFe,SAAXp0B,EAAsB0iC,GAAQvF,GAAWvnB,EAAG/C,SACzC6vB,GAAQ9sB,EAAG/C,QAAQ8vB,WACX,QAAX3iC,GAAgC,UAAXA,EAAqB,CAC5C,IAAI4iC,EAAOhtB,EAAG/C,QAAQuqB,UAAU3X,wBAChCid,GAAQE,EAAK7D,KAAkB,UAAX/+B,EAAsB,EAAImiC,MAC9C,IAAIU,EAAOD,EAAKjd,MAAmB,UAAX3lB,EAAsB,EAAI+hC,MAClDxD,EAAK5Y,MAAQkd,EAAMtE,EAAK3Y,OAASid,CACnC,CAEA,OADAtE,EAAKQ,KAAO2D,EAAMnE,EAAKO,QAAU4D,EAC1BnE,CACT,CAIA,SAASuE,GAAgBltB,EAAImtB,EAAQ/iC,GACnC,GAAe,OAAXA,EAAoB,OAAO+iC,EAC/B,IAAIpd,EAAOod,EAAOpd,KAAMoZ,EAAMgE,EAAOhE,IAErC,GAAe,QAAX/+B,EACF2lB,GAAQoc,KACRhD,GAAOoD,UACF,GAAe,SAAXniC,IAAuBA,EAAS,CACzC,IAAIgjC,EAAWptB,EAAG/C,QAAQoqB,MAAMxX,wBAChCE,GAAQqd,EAASrd,KACjBoZ,GAAOiE,EAASjE,GAClB,CAEA,IAAIkE,EAAertB,EAAG/C,QAAQuqB,UAAU3X,wBACxC,MAAO,CAACE,KAAMA,EAAOsd,EAAatd,KAAMoZ,IAAKA,EAAMkE,EAAalE,IAClE,CAEA,SAASmE,GAAWttB,EAAIkC,EAAK9X,EAASo0B,EAASgL,GAE7C,OADKhL,IAAWA,EAAU/L,GAAQzS,EAAG0S,IAAKxQ,EAAI1B,OACvCosB,GAAgB5sB,EAAIwe,EAAS+K,GAAYvpB,EAAIwe,EAAStc,EAAIzB,GAAI+oB,GAAOp/B,EAC9E,CAkBA,SAASmjC,GAAavtB,EAAIkC,EAAK9X,EAASo0B,EAASgP,EAAiBvD,GAGhE,SAASjmC,EAAIyc,EAAIuP,GACf,IAAIne,EAAI43B,GAAoBzpB,EAAIwtB,EAAiB/sB,EAAIuP,EAAQ,QAAU,OAAQia,GAE/E,OADIja,EAASne,EAAEke,KAAOle,EAAEme,MAAgBne,EAAEme,MAAQne,EAAEke,KAC7C6c,GAAgB5sB,EAAIwe,EAAS3sB,EAAGzH,EACzC,CANAo0B,EAAUA,GAAW/L,GAAQzS,EAAG0S,IAAKxQ,EAAI1B,MACpCgtB,IAAmBA,EAAkB9D,GAAsB1pB,EAAIwe,IAMpE,IAAI9T,EAAQ0C,GAASoR,EAASxe,EAAG0S,IAAI9G,WAAYnL,EAAKyB,EAAIzB,GAAIuK,EAAS9I,EAAI8I,OAQ3E,GAPIvK,GAAM+d,EAAQpd,KAAKpgB,QACrByf,EAAK+d,EAAQpd,KAAKpgB,OAClBgqB,EAAS,UACAvK,GAAM,IACfA,EAAK,EACLuK,EAAS,UAENN,EAAS,OAAO1mB,EAAc,UAAVgnB,EAAqBvK,EAAK,EAAIA,EAAc,UAAVuK,GAE3D,SAASyiB,EAAQhtB,EAAIitB,EAASt1B,GAE5B,OAAOpU,EAAIoU,EAASqI,EAAK,EAAIA,EADoB,GAAtCiK,EAAMgjB,GAAuB7iB,OACEzS,EAC5C,CACA,IAAIs1B,EAAU3iB,GAAcL,EAAOjK,EAAIuK,GACnC2iB,EAAQ7iB,GACRxkB,EAAMmnC,EAAQhtB,EAAIitB,EAAmB,UAAV1iB,GAE/B,OADa,MAAT2iB,IAAiBrnC,EAAIqnC,MAAQF,EAAQhtB,EAAIktB,EAAiB,UAAV3iB,IAC7C1kB,CACT,CAIA,SAASsnC,GAAe5tB,EAAIkC,GAC1B,IAAI6N,EAAO,EACX7N,EAAMoS,GAAQtU,EAAG0S,IAAKxQ,GACjBlC,EAAG9c,QAAQ2lC,eAAgB9Y,EAAOkb,GAAUjrB,EAAG/C,SAAWiF,EAAIzB,IACnE,IAAI+d,EAAU/L,GAAQzS,EAAG0S,IAAKxQ,EAAI1B,MAC9B2oB,EAAM5K,GAAaC,GAAW+I,GAAWvnB,EAAG/C,SAChD,MAAO,CAAC8S,KAAMA,EAAMC,MAAOD,EAAMoZ,IAAKA,EAAKD,OAAQC,EAAM3K,EAAQrL,OACnE,CAQA,SAAS0a,GAAYrtB,EAAMC,EAAIuK,EAAQ8iB,EAASC,GAC9C,IAAI7rB,EAAM4R,GAAItT,EAAMC,EAAIuK,GAGxB,OAFA9I,EAAI6rB,KAAOA,EACPD,IAAW5rB,EAAI4rB,QAAUA,GACtB5rB,CACT,CAIA,SAAS8rB,GAAWhuB,EAAIkU,EAAG+Z,GACzB,IAAIvb,EAAM1S,EAAG0S,IAEb,IADAub,GAAKjuB,EAAG/C,QAAQ8vB,YACR,EAAK,OAAOc,GAAYnb,EAAIxgB,MAAO,EAAG,MAAO,GAAI,GACzD,IAAI8rB,EAAQ1K,GAAaZ,EAAKub,GAAI52B,EAAOqb,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAChE,GAAIinB,EAAQ3mB,EACR,OAAOw2B,GAAYnb,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAAG0b,GAAQC,EAAKrb,GAAM+J,KAAKpgB,OAAQ,KAAM,EAAG,GACtFkzB,EAAI,IAAKA,EAAI,GAGjB,IADA,IAAIsK,EAAU/L,GAAQC,EAAKsL,KAClB,CACP,IAAIrT,EAAQujB,GAAgBluB,EAAIwe,EAASR,EAAO9J,EAAG+Z,GAC/C1Q,EAAYG,GAAoBc,EAAS7T,EAAMlK,IAAMkK,EAAMojB,KAAO,GAAKpjB,EAAMmjB,QAAU,EAAI,EAAI,IACnG,IAAKvQ,EAAa,OAAO5S,EACzB,IAAIwjB,EAAW5Q,EAAUtpB,KAAK,GAC9B,GAAIk6B,EAAS3tB,MAAQwd,EAAS,OAAOmQ,EACrC3P,EAAU/L,GAAQC,EAAKsL,EAAQmQ,EAAS3tB,KAC1C,CACF,CAEA,SAAS4tB,GAAkBpuB,EAAIwe,EAASgP,EAAiBS,GACvDA,GAAKtB,GAAgBnO,GACrB,IAAInc,EAAMmc,EAAQpd,KAAKpgB,OACnBqtC,EAAQlkB,IAAU,SAAU1J,GAAM,OAAOgpB,GAAoBzpB,EAAIwtB,EAAiB/sB,EAAK,GAAGyoB,QAAU+E,CAAG,GAAG5rB,EAAK,GAEnH,MAAO,CAACgsB,MAAOA,EAAOhsB,IADtBA,EAAM8H,IAAU,SAAU1J,GAAM,OAAOgpB,GAAoBzpB,EAAIwtB,EAAiB/sB,GAAI0oB,IAAM8E,CAAG,GAAGI,EAAOhsB,GAEzG,CAEA,SAASisB,GAAsBtuB,EAAIwe,EAASgP,EAAiB5mB,GAG3D,OAFK4mB,IAAmBA,EAAkB9D,GAAsB1pB,EAAIwe,IAE7D4P,GAAkBpuB,EAAIwe,EAASgP,EADtBZ,GAAgB5sB,EAAIwe,EAASiL,GAAoBzpB,EAAIwtB,EAAiB5mB,GAAS,QAAQuiB,IAEzG,CAIA,SAASoF,GAAWC,EAAKta,EAAG+Z,EAAGle,GAC7B,QAAOye,EAAItF,QAAU+E,KAAYO,EAAIrF,IAAM8E,IAAYle,EAAOye,EAAIze,KAAOye,EAAIxe,OAASkE,EACxF,CAEA,SAASga,GAAgBluB,EAAIwe,EAASpL,EAAQc,EAAG+Z,GAE/CA,GAAK1P,GAAaC,GAClB,IAAIgP,EAAkB9D,GAAsB1pB,EAAIwe,GAG5CsI,EAAe6F,GAAgBnO,GAC/B6P,EAAQ,EAAGhsB,EAAMmc,EAAQpd,KAAKpgB,OAAQytC,GAAM,EAE5C/jB,EAAQ0C,GAASoR,EAASxe,EAAG0S,IAAI9G,WAGrC,GAAIlB,EAAO,CACT,IAAIE,GAAQ5K,EAAG9c,QAAQ2lC,aAAe6F,GAAwBC,IAChD3uB,EAAIwe,EAASpL,EAAQoa,EAAiB9iB,EAAOwJ,EAAG+Z,GAM9DI,GALAI,EAAoB,GAAd7jB,EAAKC,OAKGD,EAAK9K,KAAO8K,EAAK7K,GAAK,EACpCsC,EAAMosB,EAAM7jB,EAAK7K,GAAK6K,EAAK9K,KAAO,CACpC,CAKA,IAYI8uB,EAAO5jB,EAZP6jB,EAAW,KAAMC,EAAY,KAC7BruB,EAAK0J,IAAU,SAAU1J,GAC3B,IAAI+tB,EAAM/E,GAAoBzpB,EAAIwtB,EAAiB/sB,GAEnD,OADA+tB,EAAIrF,KAAOrC,EAAc0H,EAAItF,QAAUpC,IAClCyH,GAAWC,EAAKta,EAAG+Z,GAAG,KACvBO,EAAIrF,KAAO8E,GAAKO,EAAIze,MAAQmE,IAC9B2a,EAAWpuB,EACXquB,EAAYN,IAEP,EACT,GAAGH,EAAOhsB,GAESyrB,GAAU,EAE7B,GAAIgB,EAAW,CAEb,IAAIC,EAAS7a,EAAI4a,EAAU/e,KAAO+e,EAAU9e,MAAQkE,EAAG8a,EAAUD,GAAUN,EAC3EhuB,EAAKouB,GAAYG,EAAU,EAAI,GAC/BhkB,EAASgkB,EAAU,QAAU,SAC7BJ,EAAQG,EAASD,EAAU/e,KAAO+e,EAAU9e,KAC9C,KAAO,CAEAye,GAAQhuB,GAAM4B,GAAO5B,GAAM4tB,GAAU5tB,IAI1CuK,EAAe,GAANvK,EAAU,QAAUA,GAAM+d,EAAQpd,KAAKpgB,OAAS,SACtDyoC,GAAoBzpB,EAAIwtB,EAAiB/sB,GAAMguB,EAAM,EAAI,IAAIvF,OAASpC,GAAgBmH,GAAMQ,EAC7F,QAAU,SAGZ,IAAItB,EAASI,GAAavtB,EAAI8T,GAAIV,EAAQ3S,EAAIuK,GAAS,OAAQwT,EAASgP,GACxEoB,EAAQzB,EAAOpd,KACf+d,EAAUG,EAAId,EAAOhE,KAAO,EAAI8E,GAAKd,EAAOjE,OAAS,EAAI,CAC3D,CAGA,OAAO2E,GAAYza,EADnB3S,EAAKuJ,GAAmBwU,EAAQpd,KAAMX,EAAI,GACXuK,EAAQ8iB,EAAS5Z,EAAI0a,EACtD,CAEA,SAASD,GAAe3uB,EAAIwe,EAASpL,EAAQoa,EAAiB9iB,EAAOwJ,EAAG+Z,GAKtE,IAAI9sC,EAAQgpB,IAAU,SAAUjqB,GAC9B,IAAI0qB,EAAOF,EAAMxqB,GAAIuuC,EAAoB,GAAd7jB,EAAKC,MAChC,OAAO0jB,GAAWhB,GAAavtB,EAAI8T,GAAIV,EAAQqb,EAAM7jB,EAAK7K,GAAK6K,EAAK9K,KAAM2uB,EAAM,SAAW,SAC5D,OAAQjQ,EAASgP,GAAkBtZ,EAAG+Z,GAAG,EAC1E,GAAG,EAAGvjB,EAAM1pB,OAAS,GACjB4pB,EAAOF,EAAMvpB,GAIjB,GAAIA,EAAQ,EAAG,CACb,IAAIstC,EAAoB,GAAd7jB,EAAKC,MACXxO,EAAQkxB,GAAavtB,EAAI8T,GAAIV,EAAQqb,EAAM7jB,EAAK9K,KAAO8K,EAAK7K,GAAI0uB,EAAM,QAAU,UAC3D,OAAQjQ,EAASgP,GACtCe,GAAWlyB,EAAO6X,EAAG+Z,GAAG,IAAS5xB,EAAM8sB,IAAM8E,IAC7CrjB,EAAOF,EAAMvpB,EAAQ,GAC3B,CACA,OAAOypB,CACT,CAEA,SAAS8jB,GAAsB1uB,EAAIwe,EAASyQ,EAASzB,EAAiB9iB,EAAOwJ,EAAG+Z,GAQ9E,IAAIiB,EAAMd,GAAkBpuB,EAAIwe,EAASgP,EAAiBS,GACtDI,EAAQa,EAAIb,MACZhsB,EAAM6sB,EAAI7sB,IACV,KAAKhY,KAAKm0B,EAAQpd,KAAKnF,OAAOoG,EAAM,KAAOA,IAE/C,IADA,IAAIuI,EAAO,KAAMukB,EAAc,KACtBjvC,EAAI,EAAGA,EAAIwqB,EAAM1pB,OAAQd,IAAK,CACrC,IAAIm8B,EAAI3R,EAAMxqB,GACd,KAAIm8B,EAAEvc,MAAQuC,GAAOga,EAAEtc,IAAMsuB,GAA7B,CACA,IACIe,EAAO3F,GAAoBzpB,EAAIwtB,EADd,GAAXnR,EAAExR,MAC8Cte,KAAKiE,IAAI6R,EAAKga,EAAEtc,IAAM,EAAIxT,KAAKC,IAAI6hC,EAAOhS,EAAEvc,OAAOkQ,MAGzGqf,EAAOD,EAAOlb,EAAIA,EAAIkb,EAAO,IAAMA,EAAOlb,IACzCtJ,GAAQukB,EAAcE,KACzBzkB,EAAOyR,EACP8S,EAAcE,EAR+B,CAUjD,CAKA,OAJKzkB,IAAQA,EAAOF,EAAMA,EAAM1pB,OAAS,IAErC4pB,EAAK9K,KAAOuuB,IAASzjB,EAAO,CAAC9K,KAAMuuB,EAAOtuB,GAAI6K,EAAK7K,GAAI8K,MAAOD,EAAKC,QACnED,EAAK7K,GAAKsC,IAAOuI,EAAO,CAAC9K,KAAM8K,EAAK9K,KAAMC,GAAIsC,EAAKwI,MAAOD,EAAKC,QAC5DD,CACT,CAIA,SAAS0kB,GAAWryB,GAClB,GAAgC,MAA5BA,EAAQgvB,iBAA4B,OAAOhvB,EAAQgvB,iBACvD,GAAmB,MAAf3B,GAAqB,CACvBA,GAAcvlB,EAAI,MAAO,KAAM,wBAG/B,IAAK,IAAI7kB,EAAI,EAAGA,EAAI,KAAMA,EACxBoqC,GAAYxlB,YAAY/P,SAASmQ,eAAe,MAChDolB,GAAYxlB,YAAYC,EAAI,OAE9BulB,GAAYxlB,YAAY/P,SAASmQ,eAAe,KAClD,CACAL,EAAqB5H,EAAQsS,QAAS+a,IACtC,IAAInX,EAASmX,GAAY9a,aAAe,GAGxC,OAFI2D,EAAS,IAAKlW,EAAQgvB,iBAAmB9Y,GAC7CxO,EAAe1H,EAAQsS,SAChB4D,GAAU,CACnB,CAGA,SAAS8X,GAAUhuB,GACjB,GAA+B,MAA3BA,EAAQ+uB,gBAA2B,OAAO/uB,EAAQ+uB,gBACtD,IAAIuD,EAASxqB,EAAI,OAAQ,cACrB6a,EAAM7a,EAAI,MAAO,CAACwqB,GAAS,wBAC/B1qB,EAAqB5H,EAAQsS,QAASqQ,GACtC,IAAI+I,EAAO4G,EAAO1f,wBAAyB2W,GAASmC,EAAK3Y,MAAQ2Y,EAAK5Y,MAAQ,GAE9E,OADIyW,EAAQ,IAAKvpB,EAAQ+uB,gBAAkBxF,GACpCA,GAAS,EAClB,CAIA,SAASqD,GAAc7pB,GAGrB,IAFA,IAAI4e,EAAI5e,EAAG/C,QAAS8S,EAAO,CAAC,EAAGyW,EAAQ,CAAC,EACpCjB,EAAa3G,EAAEoI,QAAQwI,WAClBroB,EAAIyX,EAAEoI,QAAQ1pB,WAAYpd,EAAI,EAAGinB,EAAGA,EAAIA,EAAE0e,cAAe3lC,EAAG,CACnE,IAAIyK,EAAKqV,EAAG/C,QAAQwoB,YAAYvlC,GAAG+U,UACnC8a,EAAKplB,GAAMwc,EAAEsoB,WAAatoB,EAAEqoB,WAAajK,EACzCiB,EAAM77B,GAAMwc,EAAE+f,WAChB,CACA,MAAO,CAAClC,SAAU0K,GAAqB9Q,GAC/BqG,iBAAkBrG,EAAEoI,QAAQvX,YAC5B8V,WAAYxV,EACZ2V,YAAac,EACbC,aAAc7H,EAAEqI,QAAQC,YAClC,CAKA,SAASwI,GAAqBzyB,GAC5B,OAAOA,EAAQorB,SAASxY,wBAAwBE,KAAO9S,EAAQoqB,MAAMxX,wBAAwBE,IAC/F,CAKA,SAASkP,GAAejf,GACtB,IAAI2vB,EAAKL,GAAWtvB,EAAG/C,SAAU2rB,EAAW5oB,EAAG9c,QAAQ2lC,aACnD+G,EAAUhH,GAAYr8B,KAAKC,IAAI,EAAGwT,EAAG/C,QAAQorB,SAASnB,YAAc+D,GAAUjrB,EAAG/C,SAAW,GAChG,OAAO,SAAUuD,GACf,GAAI4d,GAAape,EAAG0S,IAAKlS,GAAS,OAAO,EAEzC,IAAIqvB,EAAgB,EACpB,GAAIrvB,EAAK0lB,QAAW,IAAK,IAAIhmC,EAAI,EAAGA,EAAIsgB,EAAK0lB,QAAQllC,OAAQd,IACvDsgB,EAAK0lB,QAAQhmC,GAAGizB,SAAU0c,GAAiBrvB,EAAK0lB,QAAQhmC,GAAGizB,QAGjE,OAAIyV,EACOiH,GAAiBtjC,KAAKge,KAAK/J,EAAKY,KAAKpgB,OAAS4uC,IAAY,GAAKD,EAE/DE,EAAgBF,CAC7B,CACF,CAEA,SAASG,GAAoB9vB,GAC3B,IAAI0S,EAAM1S,EAAG0S,IAAKqd,EAAM9Q,GAAejf,GACvC0S,EAAIM,MAAK,SAAUxS,GACjB,IAAI2e,EAAY4Q,EAAIvvB,GAChB2e,GAAa3e,EAAK2S,QAAUD,GAAiB1S,EAAM2e,EACzD,GACF,CAOA,SAAS6Q,GAAahwB,EAAIzU,EAAG0kC,EAASC,GACpC,IAAIjzB,EAAU+C,EAAG/C,QACjB,IAAKgzB,GAAyD,QAA9CphB,GAAStjB,GAAG67B,aAAa,kBAA+B,OAAO,KAE/E,IAAIlT,EAAG+Z,EAAGkC,EAAQlzB,EAAQuqB,UAAU3X,wBAEpC,IAAMqE,EAAI3oB,EAAE6kC,QAAUD,EAAMpgB,KAAMke,EAAI1iC,EAAE8kC,QAAUF,EAAMhH,GAC9B,CAA1B,MAAOmH,GAAO,OAAO,IAAK,CAC1B,IAAmC9vB,EAA/B2sB,EAASa,GAAWhuB,EAAIkU,EAAG+Z,GAC/B,GAAIiC,GAAW/C,EAAOY,KAAO,IAAMvtB,EAAOiS,GAAQzS,EAAG0S,IAAKya,EAAO3sB,MAAMY,MAAMpgB,QAAUmsC,EAAO1sB,GAAI,CAChG,IAAI8vB,EAAUvpB,EAAYxG,EAAMA,EAAKxf,OAAQgf,EAAG9c,QAAQoe,SAAWd,EAAKxf,OACxEmsC,EAASrZ,GAAIqZ,EAAO3sB,KAAMjU,KAAKC,IAAI,EAAGD,KAAKikC,OAAOtc,EAAIyT,GAAS3nB,EAAG/C,SAAS8S,MAAQkb,GAAUjrB,EAAG/C,UAAYszB,GAC9G,CACA,OAAOpD,CACT,CAIA,SAASvD,GAAc5pB,EAAImH,GACzB,GAAIA,GAAKnH,EAAG/C,QAAQ+a,OAAU,OAAO,KAErC,IADA7Q,GAAKnH,EAAG/C,QAAQ8a,UACR,EAAK,OAAO,KAEpB,IADA,IAAI4K,EAAO3iB,EAAG/C,QAAQ0lB,KACbziC,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAE/B,IADAinB,GAAKwb,EAAKziC,GAAG6W,MACL,EAAK,OAAO7W,CAExB,CAQA,SAASuwC,GAAUzwB,EAAIF,EAAMC,EAAI2wB,GACnB,MAAR5wB,IAAgBA,EAAOE,EAAG0S,IAAIxgB,OACxB,MAAN6N,IAAcA,EAAKC,EAAG0S,IAAIxgB,MAAQ8N,EAAG0S,IAAI3b,MACxC25B,IAAWA,EAAU,GAE1B,IAAIzzB,EAAU+C,EAAG/C,QAOjB,GANIyzB,GAAW3wB,EAAK9C,EAAQ+a,SACM,MAA7B/a,EAAQ0zB,mBAA6B1zB,EAAQ0zB,kBAAoB7wB,KAClE7C,EAAQ0zB,kBAAoB7wB,GAEhCE,EAAGkO,MAAM0iB,aAAc,EAEnB9wB,GAAQ7C,EAAQ+a,OACdwB,IAAqBuE,GAAa/d,EAAG0S,IAAK5S,GAAQ7C,EAAQ+a,QAC1D6Y,GAAU7wB,QACT,GAAID,GAAM9C,EAAQ8a,SACnByB,IAAqB0E,GAAgBle,EAAG0S,IAAK3S,EAAK2wB,GAAWzzB,EAAQ8a,SACvE8Y,GAAU7wB,IAEV/C,EAAQ8a,UAAY2Y,EACpBzzB,EAAQ+a,QAAU0Y,QAEf,GAAI5wB,GAAQ7C,EAAQ8a,UAAYhY,GAAM9C,EAAQ+a,OACnD6Y,GAAU7wB,QACL,GAAIF,GAAQ7C,EAAQ8a,SAAU,CACnC,IAAI+Y,EAAMC,GAAiB/wB,EAAID,EAAIA,EAAK2wB,EAAS,GAC7CI,GACF7zB,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAMmwC,EAAI3vC,OACtC8b,EAAQ8a,SAAW+Y,EAAI9S,MACvB/gB,EAAQ+a,QAAU0Y,GAElBG,GAAU7wB,EAEd,MAAO,GAAID,GAAM9C,EAAQ+a,OAAQ,CAC/B,IAAIgZ,EAAQD,GAAiB/wB,EAAIF,EAAMA,GAAO,GAC1CkxB,GACF/zB,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAM,EAAGqwC,EAAM7vC,OAC3C8b,EAAQ+a,OAASgZ,EAAMhT,OAEvB6S,GAAU7wB,EAEd,KAAO,CACL,IAAIixB,EAASF,GAAiB/wB,EAAIF,EAAMA,GAAO,GAC3CoxB,EAASH,GAAiB/wB,EAAID,EAAIA,EAAK2wB,EAAS,GAChDO,GAAUC,GACZj0B,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAM,EAAGswC,EAAO9vC,OACzCiE,OAAOq9B,GAAeziB,EAAIixB,EAAOjT,MAAOkT,EAAOlT,QAC/C54B,OAAO6X,EAAQ0lB,KAAKhiC,MAAMuwC,EAAO/vC,QACpC8b,EAAQ+a,QAAU0Y,GAElBG,GAAU7wB,EAEd,CAEA,IAAIykB,EAAMxnB,EAAQkjB,iBACdsE,IACE1kB,EAAK0kB,EAAIzG,MACTyG,EAAIzG,OAAS0S,EACR5wB,EAAO2kB,EAAIzG,MAAQyG,EAAI1tB,OAC5BkG,EAAQkjB,iBAAmB,MAEnC,CAIA,SAASgR,GAAcnxB,EAAIQ,EAAM3d,GAC/Bmd,EAAGkO,MAAM0iB,aAAc,EACvB,IAAI3zB,EAAU+C,EAAG/C,QAASwnB,EAAMzkB,EAAG/C,QAAQkjB,iBAI3C,GAHIsE,GAAOjkB,GAAQikB,EAAIzG,OAASxd,EAAOikB,EAAIzG,MAAQyG,EAAI1tB,OACnDkG,EAAQkjB,iBAAmB,QAE3B3f,EAAOvD,EAAQ8a,UAAYvX,GAAQvD,EAAQ+a,QAA/C,CACA,IAAI0H,EAAWziB,EAAQ0lB,KAAKiH,GAAc5pB,EAAIQ,IAC9C,GAAqB,MAAjBkf,EAAShb,KAAb,CACA,IAAIxjB,EAAMw+B,EAASxxB,UAAYwxB,EAASxxB,QAAU,KACvB,GAAvBhJ,EAAQhE,EAAK2B,IAAe3B,EAAI8D,KAAKnC,EAFL,CAF4B,CAKlE,CAGA,SAASguC,GAAU7wB,GACjBA,EAAG/C,QAAQ8a,SAAW/X,EAAG/C,QAAQ+a,OAAShY,EAAG0S,IAAIxgB,MACjD8N,EAAG/C,QAAQ0lB,KAAO,GAClB3iB,EAAG/C,QAAQ8vB,WAAa,CAC1B,CAEA,SAASgE,GAAiB/wB,EAAIoxB,EAAMC,EAAMnnB,GACxC,IAAqCxlB,EAAjCvD,EAAQyoC,GAAc5pB,EAAIoxB,GAAazO,EAAO3iB,EAAG/C,QAAQ0lB,KAC7D,IAAKnJ,IAAqB6X,GAAQrxB,EAAG0S,IAAIxgB,MAAQ8N,EAAG0S,IAAI3b,KACpD,MAAO,CAAC5V,MAAOA,EAAO68B,MAAOqT,GAEjC,IADA,IAAIlqB,EAAInH,EAAG/C,QAAQ8a,SACV73B,EAAI,EAAGA,EAAIiB,EAAOjB,IACvBinB,GAAKwb,EAAKziC,GAAG6W,KACjB,GAAIoQ,GAAKiqB,EAAM,CACb,GAAIlnB,EAAM,EAAG,CACX,GAAI/oB,GAASwhC,EAAK3hC,OAAS,EAAK,OAAO,KACvC0D,EAAQyiB,EAAIwb,EAAKxhC,GAAO4V,KAAQq6B,EAChCjwC,GACF,MACEuD,EAAOyiB,EAAIiqB,EAEbA,GAAQ1sC,EAAM2sC,GAAQ3sC,CACxB,CACA,KAAOq5B,GAAa/d,EAAG0S,IAAK2e,IAASA,GAAM,CACzC,GAAIlwC,IAAU+oB,EAAM,EAAI,EAAIyY,EAAK3hC,OAAS,GAAM,OAAO,KACvDqwC,GAAQnnB,EAAMyY,EAAKxhC,GAAS+oB,EAAM,EAAI,EAAI,IAAInT,KAC9C5V,GAAS+oB,CACX,CACA,MAAO,CAAC/oB,MAAOA,EAAO68B,MAAOqT,EAC/B,CAIA,SAASC,GAAWtxB,EAAIF,EAAMC,GAC5B,IAAI9C,EAAU+C,EAAG/C,QACE,GADcA,EAAQ0lB,KAChC3hC,QAAe8e,GAAQ7C,EAAQ+a,QAAUjY,GAAM9C,EAAQ8a,UAC9D9a,EAAQ0lB,KAAOF,GAAeziB,EAAIF,EAAMC,GACxC9C,EAAQ8a,SAAWjY,IAEf7C,EAAQ8a,SAAWjY,EACnB7C,EAAQ0lB,KAAOF,GAAeziB,EAAIF,EAAM7C,EAAQ8a,UAAU3yB,OAAO6X,EAAQ0lB,MACpE1lB,EAAQ8a,SAAWjY,IACxB7C,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAMipC,GAAc5pB,EAAIF,KACxD7C,EAAQ8a,SAAWjY,EACf7C,EAAQ+a,OAASjY,EACjB9C,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKv9B,OAAOq9B,GAAeziB,EAAI/C,EAAQ+a,OAAQjY,IACjE9C,EAAQ+a,OAASjY,IACtB9C,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAM,EAAGipC,GAAc5pB,EAAID,MAE7D9C,EAAQ+a,OAASjY,CACnB,CAIA,SAASwxB,GAAevxB,GAEtB,IADA,IAAI2iB,EAAO3iB,EAAG/C,QAAQ0lB,KAAM6O,EAAQ,EAC3BtxC,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAAK,CACpC,IAAIw/B,EAAWiD,EAAKziC,GACfw/B,EAAS8C,QAAY9C,EAAShb,OAAQgb,EAASxxB,WAAcsjC,CACpE,CACA,OAAOA,CACT,CAEA,SAASC,GAAgBzxB,GACvBA,EAAG/C,QAAQ0kB,MAAM+P,cAAc1xB,EAAG/C,QAAQ0kB,MAAMgQ,mBAClD,CAEA,SAASA,GAAiB3xB,EAAI4xB,QACX,IAAZA,IAAqBA,GAAU,GAEpC,IAAIlf,EAAM1S,EAAG0S,IAAKnlB,EAAS,CAAC,EACxBskC,EAActkC,EAAOukC,QAAU/8B,SAASisB,yBACxC+Q,EAAcxkC,EAAOijB,UAAYzb,SAASisB,yBAE1CgR,EAAehyB,EAAG9c,QAAQ+uC,cAC1BD,IAAgBJ,GAAU,GAC9B,IAAK,IAAI1xC,EAAI,EAAGA,EAAIwyB,EAAIwf,IAAIC,OAAOnxC,OAAQd,IACzC,GAAK0xC,GAAW1xC,GAAKwyB,EAAIwf,IAAIE,UAA7B,CACA,IAAI5tB,EAAQkO,EAAIwf,IAAIC,OAAOjyC,GAC3B,KAAIskB,EAAM1E,OAAOU,MAAQR,EAAG/C,QAAQ+a,QAAUxT,EAAMzE,KAAKS,KAAOR,EAAG/C,QAAQ8a,UAA3E,CACA,IAAIwF,EAAY/Y,EAAM6tB,QACtB,GAAIL,EAAc,CAChB,IAAIh7B,EAAOg7B,EAAahyB,EAAIwE,GACxBxN,GAAQs7B,GAAoBtyB,EAAIhJ,EAAM66B,EAC5C,MAAWtU,GAAavd,EAAG9c,QAAQqvC,0BACjCD,GAAoBtyB,EAAIwE,EAAMxN,KAAM66B,GAEjCtU,GACDiV,GAAmBxyB,EAAIwE,EAAOutB,EAT8D,CAF7C,CAarD,OAAOxkC,CACT,CAGA,SAAS+kC,GAAoBtyB,EAAIhJ,EAAM2hB,GACrC,IAAIzW,EAAMqrB,GAAavtB,EAAIhJ,EAAM,MAAO,KAAM,MAAOgJ,EAAG9c,QAAQkoC,2BAE5DqH,EAAS9Z,EAAO7T,YAAYC,EAAI,MAAO,IAAU,sBAKrD,GAJA0tB,EAAOz1B,MAAM+S,KAAO7N,EAAI6N,KAAO,KAC/B0iB,EAAOz1B,MAAMmsB,IAAMjnB,EAAIinB,IAAM,KAC7BsJ,EAAOz1B,MAAMmW,OAAS5mB,KAAKC,IAAI,EAAG0V,EAAIgnB,OAAShnB,EAAIinB,KAAOnpB,EAAG9c,QAAQwvC,aAAe,KAEhF,oBAAoBroC,KAAK2V,EAAG2yB,oBAAoB19B,WAAY,CAC9D,IAAI29B,EAAUtF,GAAWttB,EAAIhJ,EAAM,MAAO,KAAM,MAC5CwvB,EAAQoM,EAAQ5iB,MAAQ4iB,EAAQ7iB,KACpC0iB,EAAOz1B,MAAMwpB,OAASA,EAAQ,EAAIA,EAAQxmB,EAAG6yB,oBAAsB,IACrE,CAEA,GAAI3wB,EAAIyrB,MAAO,CAEb,IAAImF,EAAcna,EAAO7T,YAAYC,EAAI,MAAO,IAAU,iDAC1D+tB,EAAY91B,MAAMC,QAAU,GAC5B61B,EAAY91B,MAAM+S,KAAO7N,EAAIyrB,MAAM5d,KAAO,KAC1C+iB,EAAY91B,MAAMmsB,IAAMjnB,EAAIyrB,MAAMxE,IAAM,KACxC2J,EAAY91B,MAAMmW,OAA8C,KAApCjR,EAAIyrB,MAAMzE,OAAShnB,EAAIyrB,MAAMxE,KAAa,IACxE,CACF,CAEA,SAAS4J,GAAU9yC,EAAG4lB,GAAK,OAAO5lB,EAAEkpC,IAAMtjB,EAAEsjB,KAAOlpC,EAAE8vB,KAAOlK,EAAEkK,IAAK,CAGnE,SAASyiB,GAAmBxyB,EAAIwE,EAAOmU,GACrC,IAAI1b,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAC/BpY,EAAWvF,SAASisB,yBACpBgS,EAAUrL,GAAS3nB,EAAG/C,SAAUg2B,EAAWD,EAAQjjB,KACnDmjB,EAAY3mC,KAAKC,IAAIyQ,EAAQk2B,WAAY/K,GAAapoB,GAAM/C,EAAQoqB,MAAMoI,YAAcuD,EAAQhjB,MAChGojB,EAA0B,OAAjB1gB,EAAI9G,UAEjB,SAASjnB,EAAIorB,EAAMoZ,EAAK3C,EAAO0C,GACzBC,EAAM,IAAKA,EAAM,GACrBA,EAAM58B,KAAKikC,MAAMrH,GACjBD,EAAS38B,KAAKikC,MAAMtH,GACpB5uB,EAASwK,YAAYC,EAAI,MAAO,KAAM,sBAAwB,6BAA+BgL,EAAO,0CAA4CoZ,EAAM,eAA0B,MAAT3C,EAAgB0M,EAAYnjB,EAAOyW,GAAS,8CAAgD0C,EAASC,GAAO,MACrR,CAEA,SAASkK,EAAY7yB,EAAM8yB,EAASC,GAClC,IAEIl3B,EAAOgG,EAFPmc,EAAU/L,GAAQC,EAAKlS,GACvBgzB,EAAUhV,EAAQpd,KAAKpgB,OAE3B,SAASmsC,EAAO1sB,EAAI+oB,GAClB,OAAO8D,GAAWttB,EAAI8T,GAAItT,EAAMC,GAAK,MAAO+d,EAASgL,EACvD,CAEA,SAASiK,EAAMvxB,EAAKgI,EAAKwpB,GACvB,IAAIC,EAASrF,GAAsBtuB,EAAIwe,EAAS,KAAMtc,GAClD4E,EAAe,OAAPoD,IAA0B,SAARwpB,GAAmB,OAAS,QAE1D,OAAOvG,EADU,SAARuG,EAAkBC,EAAOtF,MAAQsF,EAAOtxB,KAAO,KAAKhY,KAAKm0B,EAAQpd,KAAKnF,OAAO03B,EAAOtxB,IAAM,IAAM,EAAI,GAC3FyE,GAAMA,EAC1B,CAEA,IAAI4D,EAAQ0C,GAASoR,EAAS9L,EAAI9G,WAqClC,OApCAnB,GAAoBC,EAAO4oB,GAAW,EAAY,MAATC,EAAgBC,EAAUD,GAAO,SAAUzzB,EAAMC,EAAImK,EAAKhqB,GACjG,IAAIuuC,EAAa,OAAPvkB,EACN0pB,EAAUzG,EAAOrtB,EAAM2uB,EAAM,OAAS,SACtCoF,EAAQ1G,EAAOptB,EAAK,EAAG0uB,EAAM,QAAU,QAEvCqF,EAAuB,MAAXR,GAA2B,GAARxzB,EAAWi0B,EAAmB,MAATR,GAAiBxzB,GAAMyzB,EAC3EthC,EAAa,GAALhS,EAAQmX,GAAQqT,GAASxqB,GAAKwqB,EAAM1pB,OAAS,EACzD,GAAI6yC,EAAM1K,IAAMyK,EAAQzK,KAAO,EAAG,CAChC,IACI6K,GAAaZ,EAASW,EAAUD,IAAcz8B,EAC9C0Y,GAFYqjB,EAASU,EAAYC,IAAY7hC,EAE3B+gC,GAAYxE,EAAMmF,EAAUC,GAAO9jB,KACrDC,EAAQgkB,EAAYd,GAAazE,EAAMoF,EAAQD,GAAS5jB,MAC5DrrB,EAAIorB,EAAM6jB,EAAQzK,IAAKnZ,EAAQD,EAAM6jB,EAAQ1K,OAC/C,KAAO,CACL,IAAI+K,EAASC,EAAUC,EAASC,EAC5B3F,GACFwF,EAAUb,GAAUU,GAAa5hC,EAAQ+gC,EAAWW,EAAQ7jB,KAC5DmkB,EAAWd,EAASF,EAAYO,EAAM3zB,EAAMoK,EAAK,UACjDiqB,EAAUf,EAASH,EAAWQ,EAAM1zB,EAAImK,EAAK,SAC7CkqB,EAAWhB,GAAUW,GAAW18B,EAAO67B,EAAYW,EAAM7jB,QAEzDikB,EAAWb,EAAoBK,EAAM3zB,EAAMoK,EAAK,UAA5B+oB,EACpBiB,GAAYd,GAAUU,GAAa5hC,EAAQghC,EAAYU,EAAQ5jB,MAC/DmkB,GAAWf,GAAUW,GAAW18B,EAAO47B,EAAWY,EAAM9jB,KACxDqkB,EAAYhB,EAAqBK,EAAM1zB,EAAImK,EAAK,SAA3BgpB,GAEvBvuC,EAAIsvC,EAASL,EAAQzK,IAAK+K,EAAWD,EAASL,EAAQ1K,QAClD0K,EAAQ1K,OAAS2K,EAAM1K,KAAOxkC,EAAIsuC,EAAUW,EAAQ1K,OAAQ,KAAM2K,EAAM1K,KAC5ExkC,EAAIwvC,EAASN,EAAM1K,IAAKiL,EAAWD,EAASN,EAAM3K,OACpD,GAEK7sB,GAAS02B,GAAUa,EAASv3B,GAAS,KAAKA,EAAQu3B,GACnDb,GAAUc,EAAOx3B,GAAS,IAAKA,EAAQw3B,KACtCxxB,GAAO0wB,GAAUa,EAASvxB,GAAO,KAAKA,EAAMuxB,GAC7Cb,GAAUc,EAAOxxB,GAAO,IAAKA,EAAMwxB,EACzC,IACO,CAACx3B,MAAOA,EAAOgG,IAAKA,EAC7B,CAEA,IAAIgyB,EAAQ7vB,EAAM1E,OAAQw0B,EAAM9vB,EAAMzE,KACtC,GAAIs0B,EAAM7zB,MAAQ8zB,EAAI9zB,KACpB6yB,EAAYgB,EAAM7zB,KAAM6zB,EAAM5zB,GAAI6zB,EAAI7zB,QACjC,CACL,IAAI8zB,EAAW9hB,GAAQC,EAAK2hB,EAAM7zB,MAAOg0B,EAAS/hB,GAAQC,EAAK4hB,EAAI9zB,MAC/Di0B,EAAc7W,GAAW2W,IAAa3W,GAAW4W,GACjDE,EAAUrB,EAAYgB,EAAM7zB,KAAM6zB,EAAM5zB,GAAIg0B,EAAcF,EAASnzB,KAAKpgB,OAAS,EAAI,MAAMqhB,IAC3FsyB,EAAatB,EAAYiB,EAAI9zB,KAAMi0B,EAAc,EAAI,KAAMH,EAAI7zB,IAAIpE,MACnEo4B,IACEC,EAAQvL,IAAMwL,EAAWxL,IAAM,GACjCxkC,EAAI+vC,EAAQ1kB,MAAO0kB,EAAQvL,IAAK,KAAMuL,EAAQxL,QAC9CvkC,EAAIsuC,EAAU0B,EAAWxL,IAAKwL,EAAW5kB,KAAM4kB,EAAWzL,SAE1DvkC,EAAI+vC,EAAQ1kB,MAAO0kB,EAAQvL,IAAKwL,EAAW5kB,KAAO2kB,EAAQ1kB,MAAO0kB,EAAQxL,SAGzEwL,EAAQxL,OAASyL,EAAWxL,KAC5BxkC,EAAIsuC,EAAUyB,EAAQxL,OAAQ,KAAMyL,EAAWxL,IACrD,CAEAxQ,EAAO7T,YAAYxK,EACrB,CAGA,SAASs6B,GAAa50B,GACpB,GAAKA,EAAGV,MAAMu1B,QAAd,CACA,IAAI53B,EAAU+C,EAAG/C,QACjBmB,cAAcnB,EAAQ63B,SACtB,IAAIhtC,GAAK,EACTmV,EAAQ83B,UAAU/3B,MAAMg4B,WAAa,GACjCh1B,EAAG9c,QAAQ+xC,gBAAkB,EAC7Bh4B,EAAQ63B,QAAUh3B,aAAY,WACzBkC,EAAGk1B,YAAcC,GAAOn1B,GAC7B/C,EAAQ83B,UAAU/3B,MAAMg4B,YAAcltC,GAAMA,GAAM,GAAK,QACzD,GAAGkY,EAAG9c,QAAQ+xC,iBACPj1B,EAAG9c,QAAQ+xC,gBAAkB,IAClCh4B,EAAQ83B,UAAU/3B,MAAMg4B,WAAa,SAXT,CAYlC,CAEA,SAASI,GAAYp1B,GACdA,EAAGk1B,aACNl1B,EAAG/C,QAAQ0kB,MAAM0T,QACZr1B,EAAGV,MAAMu1B,SAAWS,GAAQt1B,GAErC,CAEA,SAASu1B,GAAev1B,GACtBA,EAAGV,MAAMk2B,mBAAoB,EAC7B5tB,YAAW,WAAkB5H,EAAGV,MAAMk2B,oBACpCx1B,EAAGV,MAAMk2B,mBAAoB,EACzBx1B,EAAGV,MAAMu1B,SAAWM,GAAOn1B,GAC/B,GAAG,IACP,CAEA,SAASs1B,GAAQt1B,EAAIzU,GACfyU,EAAGV,MAAMk2B,oBAAsBx1B,EAAGV,MAAMm2B,eAAgBz1B,EAAGV,MAAMk2B,mBAAoB,GAE9D,YAAvBx1B,EAAG9c,QAAQg5B,WACVlc,EAAGV,MAAMu1B,UACZpnB,GAAOzN,EAAI,QAASA,EAAIzU,GACxByU,EAAGV,MAAMu1B,SAAU,EACnBlvB,EAAS3F,EAAG/C,QAAQgqB,QAAS,sBAIxBjnB,EAAGkO,OAASlO,EAAG/C,QAAQy4B,mBAAqB11B,EAAG0S,IAAIwf,MACtDlyB,EAAG/C,QAAQ0kB,MAAMp7B,QACb2c,GAAU0E,YAAW,WAAc,OAAO5H,EAAG/C,QAAQ0kB,MAAMp7B,OAAM,EAAO,GAAG,KAEjFyZ,EAAG/C,QAAQ0kB,MAAMgU,iBAEnBf,GAAa50B,GACf,CACA,SAASm1B,GAAOn1B,EAAIzU,GACdyU,EAAGV,MAAMk2B,oBAETx1B,EAAGV,MAAMu1B,UACXpnB,GAAOzN,EAAI,OAAQA,EAAIzU,GACvByU,EAAGV,MAAMu1B,SAAU,EACnBpwB,EAAQzE,EAAG/C,QAAQgqB,QAAS,uBAE9B7oB,cAAc4B,EAAG/C,QAAQ63B,SACzBltB,YAAW,WAAmB5H,EAAGV,MAAMu1B,UAAW70B,EAAG/C,QAAQ/Y,OAAQ,EAAS,GAAG,KACnF,CAIA,SAAS0xC,GAAwB51B,GAM/B,IALA,IAAI/C,EAAU+C,EAAG/C,QACb44B,EAAa54B,EAAQ64B,QAAQrO,UAC7BsO,EAAUxpC,KAAKC,IAAI,EAAGyQ,EAAQorB,SAASxY,wBAAwBsZ,KAC/D6M,EAAY/4B,EAAQ64B,QAAQjmB,wBAAwBsZ,IACpD8M,EAAa,EACR/1C,EAAI,EAAGA,EAAI+c,EAAQ0lB,KAAK3hC,OAAQd,IAAK,CAC5C,IAAI+hB,EAAMhF,EAAQ0lB,KAAKziC,GAAI0oC,EAAW5oB,EAAG9c,QAAQ2lC,aAC7C1V,OAAS,EAAUqT,EAAQ,EAC/B,IAAIvkB,EAAIugB,OAAR,CAEA,GADAwT,GAAa/zB,EAAIzB,KAAK2S,OAClBnQ,GAAMC,EAAa,EAAG,CACxB,IAAIkoB,EAAMlpB,EAAIyC,KAAK+iB,UAAYxlB,EAAIyC,KAAK8K,aACxC2D,EAASgY,EAAM0K,EACfA,EAAa1K,CACf,KAAO,CACL,IAAIqD,EAAMvsB,EAAIyC,KAAKmL,wBACnBsD,EAASqb,EAAItF,OAASsF,EAAIrF,KAGrBP,GAAY3mB,EAAIb,KAAK9D,aACtBkpB,EAAQvkB,EAAIb,KAAK9D,WAAWuS,wBAAwBG,MAAQwe,EAAIze,KAAO,EAC7E,CACA,IAAIrrB,EAAOud,EAAIzB,KAAK2S,OAASA,EAC7B,IAAIzuB,EAAO,MAAQA,GAAQ,QACrBsxC,EAAYD,IAAWE,GAAcvxC,GACzCwuB,GAAiBjR,EAAIzB,KAAM2S,GAC3B+iB,GAAmBj0B,EAAIzB,MACnByB,EAAI9K,MAAQ,IAAK,IAAIrL,EAAI,EAAGA,EAAImW,EAAI9K,KAAKnW,OAAQ8K,IACjDoqC,GAAmBj0B,EAAI9K,KAAKrL,IAElC,GAAI06B,EAAQxmB,EAAG/C,QAAQk2B,WAAY,CACjC,IAAIgD,EAAU5pC,KAAKge,KAAKic,EAAQyE,GAAUjrB,EAAG/C,UACzCk5B,EAAUn2B,EAAG/C,QAAQ6hB,gBACvB9e,EAAG/C,QAAQ6hB,cAAgBqX,EAC3Bn2B,EAAG/C,QAAQ4hB,QAAU5c,EAAIzB,KACzBR,EAAG/C,QAAQ8hB,gBAAiB,EAEhC,CA7B2B,CA8B7B,CACIxyB,KAAK0kB,IAAIglB,GAAc,IAAKh5B,EAAQorB,SAASqE,WAAauJ,EAChE,CAIA,SAASC,GAAmB11B,GAC1B,GAAIA,EAAK0lB,QAAW,IAAK,IAAIhmC,EAAI,EAAGA,EAAIsgB,EAAK0lB,QAAQllC,SAAUd,EAAG,CAChE,IAAIk2C,EAAI51B,EAAK0lB,QAAQhmC,GAAI0e,EAASw3B,EAAE1xB,KAAKY,WACrC1G,IAAUw3B,EAAEjjB,OAASvU,EAAO4Q,aAClC,CACF,CAKA,SAAS6mB,GAAap5B,EAASyV,EAAK4jB,GAClC,IAAInN,EAAMmN,GAA4B,MAAhBA,EAASnN,IAAc58B,KAAKC,IAAI,EAAG8pC,EAASnN,KAAOlsB,EAAQorB,SAASqE,UAC1FvD,EAAM58B,KAAKie,MAAM2e,EAAM5B,GAAWtqB,IAClC,IAAIisB,EAASoN,GAA+B,MAAnBA,EAASpN,OAAiBoN,EAASpN,OAASC,EAAMlsB,EAAQgqB,QAAQuB,aAEvF1oB,EAAOwT,GAAaZ,EAAKyW,GAAMppB,EAAKuT,GAAaZ,EAAKwW,GAG1D,GAAIoN,GAAYA,EAASC,OAAQ,CAC/B,IAAIC,EAAaF,EAASC,OAAOz2B,KAAKU,KAAMi2B,EAAWH,EAASC,OAAOx2B,GAAGS,KACtEg2B,EAAa12B,GACfA,EAAO02B,EACPz2B,EAAKuT,GAAaZ,EAAK6L,GAAa9L,GAAQC,EAAK8jB,IAAev5B,EAAQgqB,QAAQuB,eACvEj8B,KAAKiE,IAAIimC,EAAU/jB,EAAIyL,aAAepe,IAC/CD,EAAOwT,GAAaZ,EAAK6L,GAAa9L,GAAQC,EAAK+jB,IAAax5B,EAAQgqB,QAAQuB,cAChFzoB,EAAK02B,EAET,CACA,MAAO,CAAC32B,KAAMA,EAAMC,GAAIxT,KAAKC,IAAIuT,EAAID,EAAO,GAC9C,CAMA,SAAS42B,GAAkB12B,EAAI2oB,GAC7B,IAAIjb,GAAe1N,EAAI,wBAAvB,CAEA,IAAI/C,EAAU+C,EAAG/C,QAASuxB,EAAMvxB,EAAQoqB,MAAMxX,wBAAyB8mB,EAAW,KAGlF,GAFIhO,EAAKQ,IAAMqF,EAAIrF,IAAM,EAAKwN,GAAW,EAChChO,EAAKO,OAASsF,EAAIrF,KAAO/oC,OAAOw2C,aAAe7hC,SAASs3B,gBAAgB7D,gBAAiBmO,GAAW,GAC7F,MAAZA,IAAqBjzB,EAAS,CAChC,IAAImzB,EAAa9xB,EAAI,MAAO,IAAU,KAAO,uDAAyD4jB,EAAKQ,IAAMlsB,EAAQ8vB,WAAaxF,GAAWvnB,EAAG/C,UAAY,0CAA4C0rB,EAAKO,OAASP,EAAKQ,IAAMjB,GAAUloB,GAAM/C,EAAQwrB,WAAa,uCAA0CE,EAAS,KAAI,cAAiBp8B,KAAKC,IAAI,EAAGm8B,EAAK3Y,MAAQ2Y,EAAK5Y,MAAS,OACzX/P,EAAG/C,QAAQuqB,UAAU1iB,YAAY+xB,GACjCA,EAAWC,eAAeH,GAC1B32B,EAAG/C,QAAQuqB,UAAUrpB,YAAY04B,EACnC,CAVyD,CAW3D,CAKA,SAASE,GAAkB/2B,EAAIkC,EAAKG,EAAK20B,GAEvC,IAAIrO,EADU,MAAVqO,IAAkBA,EAAS,GAE1Bh3B,EAAG9c,QAAQ2lC,cAAgB3mB,GAAOG,IAIrCA,EAAoB,UAAdH,EAAI8I,OAAqB8I,GAAI5R,EAAI1B,KAAM0B,EAAIzB,GAAK,EAAG,UAAYyB,EACrEA,EAAMA,EAAIzB,GAAKqT,GAAI5R,EAAI1B,KAAoB,UAAd0B,EAAI8I,OAAqB9I,EAAIzB,GAAK,EAAIyB,EAAIzB,GAAI,SAAWyB,GAExF,IAAK,IAAI+0B,EAAQ,EAAGA,EAAQ,EAAGA,IAAS,CACtC,IAAIzpC,GAAU,EACV2/B,EAASI,GAAavtB,EAAIkC,GAC1Bg1B,EAAa70B,GAAOA,GAAOH,EAAeqrB,GAAavtB,EAAIqC,GAA1B8qB,EAKjCgK,EAAYC,GAAmBp3B,EAJnC2oB,EAAO,CAAC5Y,KAAMxjB,KAAKiE,IAAI28B,EAAOpd,KAAMmnB,EAAUnnB,MACtCoZ,IAAK58B,KAAKiE,IAAI28B,EAAOhE,IAAK+N,EAAU/N,KAAO6N,EAC3ChnB,MAAOzjB,KAAKC,IAAI2gC,EAAOpd,KAAMmnB,EAAUnnB,MACvCmZ,OAAQ38B,KAAKC,IAAI2gC,EAAOjE,OAAQgO,EAAUhO,QAAU8N,IAExDK,EAAWr3B,EAAG0S,IAAIga,UAAW4K,EAAYt3B,EAAG0S,IAAI4Z,WASpD,GAR2B,MAAvB6K,EAAUzK,YACZ6K,GAAgBv3B,EAAIm3B,EAAUzK,WAC1BngC,KAAK0kB,IAAIjR,EAAG0S,IAAIga,UAAY2K,GAAY,IAAK7pC,GAAU,IAEjC,MAAxB2pC,EAAU7K,aACZkL,GAAcx3B,EAAIm3B,EAAU7K,YACxB//B,KAAK0kB,IAAIjR,EAAG0S,IAAI4Z,WAAagL,GAAa,IAAK9pC,GAAU,KAE1DA,EAAW,KAClB,CACA,OAAOm7B,CACT,CAGA,SAASmO,GAAe92B,EAAI2oB,GAC1B,IAAIwO,EAAYC,GAAmBp3B,EAAI2oB,GACZ,MAAvBwO,EAAUzK,WAAqB6K,GAAgBv3B,EAAIm3B,EAAUzK,WACrC,MAAxByK,EAAU7K,YAAsBkL,GAAcx3B,EAAIm3B,EAAU7K,WAClE,CAMA,SAAS8K,GAAmBp3B,EAAI2oB,GAC9B,IAAI1rB,EAAU+C,EAAG/C,QAASw6B,EAAanI,GAAWtvB,EAAG/C,SACjD0rB,EAAKQ,IAAM,IAAKR,EAAKQ,IAAM,GAC/B,IAAIuO,EAAY13B,EAAGkO,OAA+B,MAAtBlO,EAAGkO,MAAMwe,UAAoB1sB,EAAGkO,MAAMwe,UAAYzvB,EAAQorB,SAASqE,UAC3FrB,EAAS9C,GAAcvoB,GAAKzS,EAAS,CAAC,EACtCo7B,EAAKO,OAASP,EAAKQ,IAAMkC,IAAU1C,EAAKO,OAASP,EAAKQ,IAAMkC,GAChE,IAAIsM,EAAY33B,EAAG0S,IAAIS,OAASuU,GAAYzqB,GACxC26B,EAAQjP,EAAKQ,IAAMsO,EAAYI,EAAWlP,EAAKO,OAASyO,EAAYF,EACxE,GAAI9O,EAAKQ,IAAMuO,EACbnqC,EAAOm/B,UAAYkL,EAAQ,EAAIjP,EAAKQ,SAC/B,GAAIR,EAAKO,OAASwO,EAAYrM,EAAQ,CAC3C,IAAIyM,EAASvrC,KAAKiE,IAAIm4B,EAAKQ,KAAM0O,EAAWF,EAAYhP,EAAKO,QAAUmC,GACnEyM,GAAUJ,IAAanqC,EAAOm/B,UAAYoL,EAChD,CAEA,IAAIC,EAAc/3B,EAAG9c,QAAQ6hC,YAAc,EAAI9nB,EAAQ+pB,QAAQvX,YAC3DuoB,EAAah4B,EAAGkO,OAAgC,MAAvBlO,EAAGkO,MAAMoe,WAAqBtsB,EAAGkO,MAAMoe,WAAarvB,EAAQorB,SAASiE,WAAayL,EAC3GE,EAAU7P,GAAapoB,GAAM/C,EAAQ+pB,QAAQvX,YAC7CyoB,EAAUvP,EAAK3Y,MAAQ2Y,EAAK5Y,KAAOkoB,EAQvC,OAPIC,IAAWvP,EAAK3Y,MAAQ2Y,EAAK5Y,KAAOkoB,GACpCtP,EAAK5Y,KAAO,GACZxiB,EAAO++B,WAAa,EACf3D,EAAK5Y,KAAOioB,EACjBzqC,EAAO++B,WAAa//B,KAAKC,IAAI,EAAGm8B,EAAK5Y,KAAOgoB,GAAeG,EAAU,EAAI,KACpEvP,EAAK3Y,MAAQioB,EAAUD,EAAa,IACzCzqC,EAAO++B,WAAa3D,EAAK3Y,OAASkoB,EAAU,EAAI,IAAMD,GACnD1qC,CACT,CAIA,SAAS4qC,GAAen4B,EAAImpB,GACf,MAAPA,IACJiP,GAAmBp4B,GACnBA,EAAGkO,MAAMwe,WAAmC,MAAtB1sB,EAAGkO,MAAMwe,UAAoB1sB,EAAG0S,IAAIga,UAAY1sB,EAAGkO,MAAMwe,WAAavD,EAC9F,CAIA,SAASkP,GAAoBr4B,GAC3Bo4B,GAAmBp4B,GACnB,IAAIiC,EAAMjC,EAAGuC,YACbvC,EAAGkO,MAAMoqB,YAAc,CAACx4B,KAAMmC,EAAKlC,GAAIkC,EAAK+0B,OAAQh3B,EAAG9c,QAAQq1C,mBACjE,CAEA,SAASC,GAAex4B,EAAIkU,EAAG+Z,GACpB,MAAL/Z,GAAkB,MAAL+Z,GAAamK,GAAmBp4B,GACxC,MAALkU,IAAalU,EAAGkO,MAAMoe,WAAapY,GAC9B,MAAL+Z,IAAajuB,EAAGkO,MAAMwe,UAAYuB,EACxC,CAEA,SAASwK,GAAcz4B,EAAIwE,GACzB4zB,GAAmBp4B,GACnBA,EAAGkO,MAAMoqB,YAAc9zB,CACzB,CAMA,SAAS4zB,GAAmBp4B,GAC1B,IAAIwE,EAAQxE,EAAGkO,MAAMoqB,YACjB9zB,IACFxE,EAAGkO,MAAMoqB,YAAc,KAEvBI,GAAoB14B,EADT4tB,GAAe5tB,EAAIwE,EAAM1E,MAAY8tB,GAAe5tB,EAAIwE,EAAMzE,IACvCyE,EAAMwyB,QAE5C,CAEA,SAAS0B,GAAoB14B,EAAIF,EAAMC,EAAIi3B,GACzC,IAAI2B,EAAOvB,GAAmBp3B,EAAI,CAChC+P,KAAMxjB,KAAKiE,IAAIsP,EAAKiQ,KAAMhQ,EAAGgQ,MAC7BoZ,IAAK58B,KAAKiE,IAAIsP,EAAKqpB,IAAKppB,EAAGopB,KAAO6N,EAClChnB,MAAOzjB,KAAKC,IAAIsT,EAAKkQ,MAAOjQ,EAAGiQ,OAC/BkZ,OAAQ38B,KAAKC,IAAIsT,EAAKopB,OAAQnpB,EAAGmpB,QAAU8N,IAE7CwB,GAAex4B,EAAI24B,EAAKrM,WAAYqM,EAAKjM,UAC3C,CAIA,SAAS6K,GAAgBv3B,EAAI1Z,GACvBiG,KAAK0kB,IAAIjR,EAAG0S,IAAIga,UAAYpmC,GAAO,IAClCsc,GAASg2B,GAAoB54B,EAAI,CAACmpB,IAAK7iC,IAC5CuyC,GAAa74B,EAAI1Z,GAAK,GAClBsc,GAASg2B,GAAoB54B,GACjC84B,GAAY94B,EAAI,KAClB,CAEA,SAAS64B,GAAa74B,EAAI1Z,EAAKyyC,GAC7BzyC,EAAMiG,KAAKC,IAAI,EAAGD,KAAKiE,IAAIwP,EAAG/C,QAAQorB,SAAS2Q,aAAeh5B,EAAG/C,QAAQorB,SAASG,aAAcliC,KAC5F0Z,EAAG/C,QAAQorB,SAASqE,WAAapmC,GAAQyyC,KAC7C/4B,EAAG0S,IAAIga,UAAYpmC,EACnB0Z,EAAG/C,QAAQg8B,WAAWJ,aAAavyC,GAC/B0Z,EAAG/C,QAAQorB,SAASqE,WAAapmC,IAAO0Z,EAAG/C,QAAQorB,SAASqE,UAAYpmC,GAC9E,CAIA,SAASkxC,GAAcx3B,EAAI1Z,EAAK4yC,EAAYH,GAC1CzyC,EAAMiG,KAAKC,IAAI,EAAGD,KAAKiE,IAAIlK,EAAK0Z,EAAG/C,QAAQorB,SAAS8Q,YAAcn5B,EAAG/C,QAAQorB,SAASnB,eACjFgS,EAAa5yC,GAAO0Z,EAAG0S,IAAI4Z,WAAa//B,KAAK0kB,IAAIjR,EAAG0S,IAAI4Z,WAAahmC,GAAO,KAAOyyC,IACxF/4B,EAAG0S,IAAI4Z,WAAahmC,EACpB8yC,GAAkBp5B,GACdA,EAAG/C,QAAQorB,SAASiE,YAAchmC,IAAO0Z,EAAG/C,QAAQorB,SAASiE,WAAahmC,GAC9E0Z,EAAG/C,QAAQg8B,WAAWzB,cAAclxC,GACtC,CAMA,SAAS+yC,GAAqBr5B,GAC5B,IAAI4e,EAAI5e,EAAG/C,QAASq8B,EAAU1a,EAAEoI,QAAQvX,YACpC8pB,EAAOhtC,KAAKikC,MAAMxwB,EAAG0S,IAAIS,OAASuU,GAAY1nB,EAAG/C,UACrD,MAAO,CACLurB,aAAc5J,EAAEyJ,SAASG,aACzBgR,WAAY5a,EAAEqI,QAAQuB,aACtB2Q,YAAava,EAAEyJ,SAAS8Q,YAAajS,YAAatI,EAAEyJ,SAASnB,YAC7DuS,UAAW7a,EAAEqI,QAAQC,YACrBwS,QAAS15B,EAAG9c,QAAQ6hC,YAAcuU,EAAU,EAC5CK,UAAWJ,EACXP,aAAcO,EAAOrR,GAAUloB,GAAM4e,EAAE6J,UACvCN,eAAgBvJ,EAAEuJ,eAClBzC,YAAa4T,EAEjB,CAEA,IAAIM,GAAmB,SAAS9O,EAAO3iB,EAAQnI,GAC7C3f,KAAK2f,GAAKA,EACV,IAAI65B,EAAOx5C,KAAKw5C,KAAO90B,EAAI,MAAO,CAACA,EAAI,MAAO,KAAM,KAAM,mBAAoB,yBAC1E+0B,EAAQz5C,KAAKy5C,MAAQ/0B,EAAI,MAAO,CAACA,EAAI,MAAO,KAAM,KAAM,kCAAmC,yBAC/F80B,EAAK38B,SAAW48B,EAAM58B,UAAY,EAClC4tB,EAAM+O,GAAO/O,EAAMgP,GAEnBhyC,GAAG+xC,EAAM,UAAU,WACbA,EAAKrR,cAAgBrgB,EAAO0xB,EAAKnN,UAAW,WAClD,IACA5kC,GAAGgyC,EAAO,UAAU,WACdA,EAAM5S,aAAe/e,EAAO2xB,EAAMxN,WAAY,aACpD,IAEAjsC,KAAK05C,kBAAmB,EAEpB/2B,GAAMC,EAAa,IAAK5iB,KAAKy5C,MAAM98B,MAAMg9B,UAAY35C,KAAKw5C,KAAK78B,MAAMi9B,SAAW,OACtF,EAEAL,GAAiBl5C,UAAUw5C,OAAS,SAAU3qB,GAC5C,IAAI4qB,EAAS5qB,EAAQ4pB,YAAc5pB,EAAQ2X,YAAc,EACrDkT,EAAS7qB,EAAQypB,aAAezpB,EAAQiZ,aAAe,EACvD6R,EAAS9qB,EAAQ4Y,eAErB,GAAIiS,EAAQ,CACV/5C,KAAKw5C,KAAK78B,MAAMC,QAAU,QAC1B5c,KAAKw5C,KAAK78B,MAAMksB,OAASiR,EAASE,EAAS,KAAO,IAClD,IAAIC,EAAc/qB,EAAQiqB,YAAcW,EAASE,EAAS,GAE1Dh6C,KAAKw5C,KAAKv8B,WAAWN,MAAMmW,OACzB5mB,KAAKC,IAAI,EAAG+iB,EAAQypB,aAAezpB,EAAQiZ,aAAe8R,GAAe,IAC7E,MACEj6C,KAAKw5C,KAAKnN,UAAY,EACtBrsC,KAAKw5C,KAAK78B,MAAMC,QAAU,GAC1B5c,KAAKw5C,KAAKv8B,WAAWN,MAAMmW,OAAS,IAGtC,GAAIgnB,EAAQ,CACV95C,KAAKy5C,MAAM98B,MAAMC,QAAU,QAC3B5c,KAAKy5C,MAAM98B,MAAMgT,MAAQoqB,EAASC,EAAS,KAAO,IAClDh6C,KAAKy5C,MAAM98B,MAAM+S,KAAOR,EAAQmqB,QAAU,KAC1C,IAAIa,EAAahrB,EAAQkqB,UAAYlqB,EAAQmqB,SAAWU,EAASC,EAAS,GAC1Eh6C,KAAKy5C,MAAMx8B,WAAWN,MAAMwpB,MAC1Bj6B,KAAKC,IAAI,EAAG+iB,EAAQ4pB,YAAc5pB,EAAQ2X,YAAcqT,GAAc,IAC1E,MACEl6C,KAAKy5C,MAAM98B,MAAMC,QAAU,GAC3B5c,KAAKy5C,MAAMx8B,WAAWN,MAAMwpB,MAAQ,IAQtC,OALKnmC,KAAK05C,kBAAoBxqB,EAAQiZ,aAAe,IACrC,GAAV6R,GAAeh6C,KAAKm6C,gBACxBn6C,KAAK05C,kBAAmB,GAGnB,CAAC/pB,MAAOoqB,EAASC,EAAS,EAAGnR,OAAQiR,EAASE,EAAS,EAChE,EAEAT,GAAiBl5C,UAAU82C,cAAgB,SAAUt1B,GAC/C7hB,KAAKy5C,MAAMxN,YAAcpqB,IAAO7hB,KAAKy5C,MAAMxN,WAAapqB,GACxD7hB,KAAKo6C,cAAgBp6C,KAAKq6C,mBAAmBr6C,KAAKy5C,MAAOz5C,KAAKo6C,aAAc,QAClF,EAEAb,GAAiBl5C,UAAUm4C,aAAe,SAAU32B,GAC9C7hB,KAAKw5C,KAAKnN,WAAaxqB,IAAO7hB,KAAKw5C,KAAKnN,UAAYxqB,GACpD7hB,KAAKs6C,aAAet6C,KAAKq6C,mBAAmBr6C,KAAKw5C,KAAMx5C,KAAKs6C,YAAa,OAC/E,EAEAf,GAAiBl5C,UAAU85C,cAAgB,WACzC,IAAIpE,EAAIryB,IAAQN,EAAqB,OAAS,OAC9CpjB,KAAKy5C,MAAM98B,MAAMmW,OAAS9yB,KAAKw5C,KAAK78B,MAAMwpB,MAAQ4P,EAClD/1C,KAAKy5C,MAAM98B,MAAMg4B,WAAa30C,KAAKw5C,KAAK78B,MAAMg4B,WAAa,SAC3D30C,KAAKo6C,aAAe,IAAIjzB,EACxBnnB,KAAKs6C,YAAc,IAAInzB,CACzB,EAEAoyB,GAAiBl5C,UAAUg6C,mBAAqB,SAAUE,EAAKC,EAAOh4C,GAEpE,SAASi4C,IAOP,IAAItM,EAAMoM,EAAI/qB,yBACI,QAARhtB,EAAiBkS,SAASgmC,iBAAiBvM,EAAIxe,MAAQ,GAAIwe,EAAIrF,IAAMqF,EAAItF,QAAU,GACvFn0B,SAASgmC,kBAAkBvM,EAAIxe,MAAQwe,EAAIze,MAAQ,EAAGye,EAAItF,OAAS,KAC9D0R,EAAOA,EAAI59B,MAAMg4B,WAAa,SAClC6F,EAAM/0C,IAAI,IAAMg1C,EACzB,CAbAF,EAAI59B,MAAMg4B,WAAa,GAcvB6F,EAAM/0C,IAAI,IAAMg1C,EAClB,EAEAlB,GAAiBl5C,UAAUqI,MAAQ,WACjC,IAAI6V,EAASve,KAAKy5C,MAAMx0B,WACxB1G,EAAOT,YAAY9d,KAAKy5C,OACxBl7B,EAAOT,YAAY9d,KAAKw5C,KAC1B,EAEA,IAAImB,GAAiB,WAAa,EAOlC,SAASC,GAAiBj7B,EAAIuP,GACvBA,IAAWA,EAAU8pB,GAAqBr5B,IAC/C,IAAIk7B,EAAal7B,EAAG/C,QAAQqrB,SAAU6S,EAAcn7B,EAAG/C,QAAQwrB,UAC/D2S,GAAsBp7B,EAAIuP,GAC1B,IAAK,IAAIrvB,EAAI,EAAGA,EAAI,GAAKg7C,GAAcl7B,EAAG/C,QAAQqrB,UAAY6S,GAAen7B,EAAG/C,QAAQwrB,UAAWvoC,IAC7Fg7C,GAAcl7B,EAAG/C,QAAQqrB,UAAYtoB,EAAG9c,QAAQ2lC,cAChD+M,GAAwB51B,GAC5Bo7B,GAAsBp7B,EAAIq5B,GAAqBr5B,IAC/Ck7B,EAAal7B,EAAG/C,QAAQqrB,SAAU6S,EAAcn7B,EAAG/C,QAAQwrB,SAE/D,CAIA,SAAS2S,GAAsBp7B,EAAIuP,GACjC,IAAIqP,EAAI5e,EAAG/C,QACPo+B,EAAQzc,EAAEqa,WAAWiB,OAAO3qB,GAEhCqP,EAAEyI,MAAMrqB,MAAMgrB,cAAgBpJ,EAAE0J,SAAW+S,EAAMrrB,OAAS,KAC1D4O,EAAEyI,MAAMrqB,MAAMs+B,eAAiB1c,EAAE6J,UAAY4S,EAAMnS,QAAU,KAC7DtK,EAAE2c,aAAav+B,MAAMw+B,aAAeH,EAAMnS,OAAS,uBAE/CmS,EAAMrrB,OAASqrB,EAAMnS,QACvBtK,EAAE6c,gBAAgBz+B,MAAMC,QAAU,QAClC2hB,EAAE6c,gBAAgBz+B,MAAMmW,OAASkoB,EAAMnS,OAAS,KAChDtK,EAAE6c,gBAAgBz+B,MAAMwpB,MAAQ6U,EAAMrrB,MAAQ,MACvC4O,EAAE6c,gBAAgBz+B,MAAMC,QAAU,GACvCo+B,EAAMnS,QAAUlpB,EAAG9c,QAAQw4C,4BAA8B17B,EAAG9c,QAAQ6hC,aACtEnG,EAAE+c,aAAa3+B,MAAMC,QAAU,QAC/B2hB,EAAE+c,aAAa3+B,MAAMmW,OAASkoB,EAAMnS,OAAS,KAC7CtK,EAAE+c,aAAa3+B,MAAMwpB,MAAQjX,EAAQmW,YAAc,MAC5C9G,EAAE+c,aAAa3+B,MAAMC,QAAU,EAC1C,CArCA+9B,GAAet6C,UAAUw5C,OAAS,WAAc,MAAO,CAAChR,OAAQ,EAAGlZ,MAAO,EAAG,EAC7EgrB,GAAet6C,UAAU82C,cAAgB,WAAa,EACtDwD,GAAet6C,UAAUm4C,aAAe,WAAa,EACrDmC,GAAet6C,UAAUqI,MAAQ,WAAa,EAoC9C,IAAI6yC,GAAiB,CAAC,OAAUhC,GAAkB,KAAQoB,IAE1D,SAASa,GAAe77B,GAClBA,EAAG/C,QAAQg8B,aACbj5B,EAAG/C,QAAQg8B,WAAWlwC,QAClBiX,EAAG/C,QAAQg8B,WAAWtzB,UACtBlB,EAAQzE,EAAG/C,QAAQgqB,QAASjnB,EAAG/C,QAAQg8B,WAAWtzB,WAGxD3F,EAAG/C,QAAQg8B,WAAa,IAAI2C,GAAe57B,EAAG9c,QAAQ44C,iBAAgB,SAAUp3B,GAC9E1E,EAAG/C,QAAQgqB,QAAQ5pB,aAAaqH,EAAM1E,EAAG/C,QAAQw+B,iBAEjD3zC,GAAG4c,EAAM,aAAa,WAChB1E,EAAGV,MAAMu1B,SAAWjtB,YAAW,WAAc,OAAO5H,EAAG/C,QAAQ0kB,MAAM0T,OAAS,GAAG,EACvF,IACA3wB,EAAKU,aAAa,iBAAkB,OACtC,IAAG,SAAUlD,EAAK65B,GACJ,cAARA,EAAwBvE,GAAcx3B,EAAIkC,GACvCq1B,GAAgBv3B,EAAIkC,EAC7B,GAAGlC,GACCA,EAAG/C,QAAQg8B,WAAWtzB,UACtBA,EAAS3F,EAAG/C,QAAQgqB,QAASjnB,EAAG/C,QAAQg8B,WAAWtzB,SACzD,CAQA,IAAIq2B,GAAW,EAEf,SAASC,GAAej8B,GACtBA,EAAGkO,MAAQ,CACTlO,GAAIA,EACJ4wB,aAAa,EACbuK,YAAan7B,EAAG0S,IAAIS,OACpB2W,aAAa,EACboS,YAAa,EACbC,QAAQ,EACRC,WAAY,KACZjuB,uBAAwB,KACxBiV,qBAAsB,EACtBiZ,kBAAkB,EAClBC,eAAe,EACfhQ,WAAY,KAAMI,UAAW,KAC7B4L,YAAa,KACbjD,OAAO,EACP1qC,KAAMqxC,GACNO,WAAY,MAEd1Z,GAAc7iB,EAAGkO,MACnB,CAGA,SAASsuB,GAAax8B,GACpB,IAAIka,EAAKla,EAAGkO,MACRgM,GAAMmJ,GAAgBnJ,GAAI,SAAUgJ,GACtC,IAAK,IAAIhjC,EAAI,EAAGA,EAAIgjC,EAAMJ,IAAI9hC,OAAQd,IAClCgjC,EAAMJ,IAAI5iC,GAAG8f,GAAGkO,MAAQ,KAC5BuuB,GAAcvZ,EAChB,GACF,CAIA,SAASuZ,GAAcvZ,GAErB,IADA,IAAIJ,EAAMI,EAAMJ,IACP5iC,EAAI,EAAGA,EAAI4iC,EAAI9hC,OAAQd,IAC5Bw8C,GAAgB5Z,EAAI5iC,IACxB,IAAK,IAAI8rB,EAAM,EAAGA,EAAM8W,EAAI9hC,OAAQgrB,IAChC2wB,GAAgB7Z,EAAI9W,IACxB,IAAK,IAAIC,EAAM,EAAGA,EAAM6W,EAAI9hC,OAAQirB,IAChC2wB,GAAgB9Z,EAAI7W,IACxB,IAAK,IAAIE,EAAM,EAAGA,EAAM2W,EAAI9hC,OAAQmrB,IAChC0wB,GAAgB/Z,EAAI3W,IACxB,IAAK,IAAIG,EAAM,EAAGA,EAAMwW,EAAI9hC,OAAQsrB,IAChCwwB,GAAoBha,EAAIxW,GAC9B,CAEA,SAASowB,GAAgBxiB,GACvB,IAAIla,EAAKka,EAAGla,GAAI/C,EAAU+C,EAAG/C,QAC7B8/B,GAAoB/8B,GAChBka,EAAGoiB,eAAiB3d,GAAY3e,GAEpCka,EAAG8iB,WAAa9iB,EAAG0W,aAAe1W,EAAG4P,aAA+B,MAAhB5P,EAAGwS,WACrDxS,EAAGoe,cAAgBpe,EAAGoe,YAAYx4B,KAAKU,KAAOvD,EAAQ8a,UACnCmC,EAAGoe,YAAYv4B,GAAGS,MAAQvD,EAAQ+a,SACrD/a,EAAQ8hB,gBAAkB/e,EAAG9c,QAAQ2lC,aACvC3O,EAAGggB,OAAShgB,EAAG8iB,YACb,IAAIC,GAAcj9B,EAAIka,EAAG8iB,YAAc,CAAC7T,IAAKjP,EAAGwS,UAAW6J,OAAQrc,EAAGoe,aAAcpe,EAAG4P,YAC3F,CAEA,SAAS6S,GAAgBziB,GACvBA,EAAGgjB,eAAiBhjB,EAAG8iB,YAAcG,GAAsBjjB,EAAGla,GAAIka,EAAGggB,OACvE,CAEA,SAAS0C,GAAgB1iB,GACvB,IAAIla,EAAKka,EAAGla,GAAI/C,EAAU+C,EAAG/C,QACzBid,EAAGgjB,gBAAkBtH,GAAwB51B,GAEjDka,EAAGkjB,WAAa/D,GAAqBr5B,GAKjC/C,EAAQ8hB,iBAAmB/e,EAAG9c,QAAQ2lC,eACxC3O,EAAGmjB,cAAgB9T,GAAYvpB,EAAI/C,EAAQ4hB,QAAS5hB,EAAQ4hB,QAAQzd,KAAKpgB,QAAQ+uB,KAAO,EACxF/P,EAAG/C,QAAQk2B,WAAajZ,EAAGmjB,cAC3BnjB,EAAGkjB,WAAWjE,YACZ5sC,KAAKC,IAAIyQ,EAAQorB,SAASnB,YAAajqB,EAAQoqB,MAAMoI,WAAavV,EAAGmjB,cAAgBnV,GAAUloB,GAAMA,EAAG/C,QAAQqrB,UAClHpO,EAAGojB,cAAgB/wC,KAAKC,IAAI,EAAGyQ,EAAQoqB,MAAMoI,WAAavV,EAAGmjB,cAAgBjV,GAAapoB,MAGxFka,EAAGgjB,gBAAkBhjB,EAAGmiB,oBACxBniB,EAAGqjB,kBAAoBtgC,EAAQ0kB,MAAMgQ,mBAC3C,CAEA,SAASkL,GAAgB3iB,GACvB,IAAIla,EAAKka,EAAGla,GAEY,MAApBka,EAAGmjB,gBACLr9B,EAAG/C,QAAQoqB,MAAMrqB,MAAMi9B,SAAW/f,EAAGmjB,cAAgB,KACjDnjB,EAAGojB,cAAgBt9B,EAAG0S,IAAI4Z,YAC1BkL,GAAcx3B,EAAIzT,KAAKiE,IAAIwP,EAAG/C,QAAQorB,SAASiE,WAAYpS,EAAGojB,gBAAgB,GAClFt9B,EAAG/C,QAAQ8hB,gBAAiB,GAG9B,IAAIye,EAAYtjB,EAAGmb,OAASnb,EAAGmb,OAAS7vB,IACpC0U,EAAGqjB,mBACHv9B,EAAG/C,QAAQ0kB,MAAM+P,cAAcxX,EAAGqjB,kBAAmBC,IACrDtjB,EAAGgjB,gBAAkBhjB,EAAGihB,aAAen7B,EAAG0S,IAAIS,SAC9C8nB,GAAiBj7B,EAAIka,EAAGkjB,YACxBljB,EAAGgjB,gBACHO,GAAkBz9B,EAAIka,EAAGkjB,YAEzBljB,EAAGmiB,kBAAoBzH,GAAa50B,GAEpCA,EAAGV,MAAMu1B,SAAW3a,EAAGgiB,aACvBl8B,EAAG/C,QAAQ0kB,MAAMp7B,MAAM2zB,EAAGiiB,QAC1BqB,GAAapI,GAAYlb,EAAGla,GAClC,CAEA,SAAS88B,GAAoB5iB,GAC3B,IAAIla,EAAKka,EAAGla,GAAI/C,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAE3CwH,EAAGgjB,gBAAkBQ,GAAkB19B,EAAIka,EAAGggB,QAGvB,MAAvBj9B,EAAQ0gC,aAAwC,MAAhBzjB,EAAGwS,WAAsC,MAAjBxS,EAAGoS,aAAsBpS,EAAGoe,cACpFr7B,EAAQ0gC,YAAc1gC,EAAQ2gC,YAAc,MAG5B,MAAhB1jB,EAAGwS,WAAqBmM,GAAa74B,EAAIka,EAAGwS,UAAWxS,EAAG6e,aAEzC,MAAjB7e,EAAGoS,YAAsBkL,GAAcx3B,EAAIka,EAAGoS,YAAY,GAAM,GAEhEpS,EAAGoe,aAGL5B,GAAkB12B,EAFP+2B,GAAkB/2B,EAAIsU,GAAQ5B,EAAKwH,EAAGoe,YAAYx4B,MAChCwU,GAAQ5B,EAAKwH,EAAGoe,YAAYv4B,IAAKma,EAAGoe,YAAYtB,SAM/E,IAAIxU,EAAStI,EAAG2jB,mBAAoBC,EAAW5jB,EAAG6jB,qBAClD,GAAIvb,EAAU,IAAK,IAAItiC,EAAI,EAAGA,EAAIsiC,EAAOxhC,SAAUd,EAC1CsiC,EAAOtiC,GAAGuhB,MAAMzgB,QAAUysB,GAAO+U,EAAOtiC,GAAI,QACrD,GAAI49C,EAAY,IAAK,IAAI9xB,EAAM,EAAGA,EAAM8xB,EAAS98C,SAAUgrB,EACnD8xB,EAAS9xB,GAAKvK,MAAMzgB,QAAUysB,GAAOqwB,EAAS9xB,GAAM,UAExD/O,EAAQgqB,QAAQzX,eAChBkD,EAAIga,UAAY1sB,EAAG/C,QAAQorB,SAASqE,WAGpCxS,EAAGkiB,YACH3uB,GAAOzN,EAAI,UAAWA,EAAIka,EAAGkiB,YAC7BliB,EAAGggB,QACHhgB,EAAGggB,OAAO8D,QAChB,CAGA,SAASC,GAAQj+B,EAAI0G,GACnB,GAAI1G,EAAGkO,MAAS,OAAOxH,IACvBu1B,GAAej8B,GACf,IAAM,OAAO0G,GACe,CAA5B,QAAU81B,GAAax8B,EAAK,CAC9B,CAEA,SAASM,GAAUN,EAAI0G,GACrB,OAAO,WACL,GAAI1G,EAAGkO,MAAS,OAAOxH,EAAE9lB,MAAMof,EAAIxe,WACnCy6C,GAAej8B,GACf,IAAM,OAAO0G,EAAE9lB,MAAMof,EAAIxe,UACG,CAA5B,QAAUg7C,GAAax8B,EAAK,CAC9B,CACF,CAGA,SAASk+B,GAASx3B,GAChB,OAAO,WACL,GAAIrmB,KAAK6tB,MAAS,OAAOxH,EAAE9lB,MAAMP,KAAMmB,WACvCy6C,GAAe57C,MACf,IAAM,OAAOqmB,EAAE9lB,MAAMP,KAAMmB,UACG,CAA9B,QAAUg7C,GAAan8C,KAAO,CAChC,CACF,CACA,SAAS89C,GAAYz3B,GACnB,OAAO,WACL,IAAI1G,EAAK3f,KAAK2f,GACd,IAAKA,GAAMA,EAAGkO,MAAS,OAAOxH,EAAE9lB,MAAMP,KAAMmB,WAC5Cy6C,GAAej8B,GACf,IAAM,OAAO0G,EAAE9lB,MAAMP,KAAMmB,UACC,CAA5B,QAAUg7C,GAAax8B,EAAK,CAC9B,CACF,CAIA,SAAS84B,GAAY94B,EAAIyH,GACnBzH,EAAG0S,IAAI8E,kBAAoBxX,EAAG/C,QAAQ+a,QACtChY,EAAGV,MAAM8+B,UAAUt4C,IAAI2hB,EAAMrb,EAAKiyC,GAAiBr+B,GACzD,CAEA,SAASq+B,GAAgBr+B,GACvB,IAAI0S,EAAM1S,EAAG0S,IACb,KAAIA,EAAI8E,mBAAqBxX,EAAG/C,QAAQ+a,QAAxC,CACA,IAAI3V,GAAO,IAAIsF,KAAO3H,EAAG9c,QAAQo7C,SAC7Bl0C,EAAU+sB,GAAiBnX,EAAI0S,EAAI8E,mBACnC+mB,EAAe,GAEnB7rB,EAAIM,KAAK5oB,EAAQoW,KAAMjU,KAAKiE,IAAIkiB,EAAIxgB,MAAQwgB,EAAI3b,KAAMiJ,EAAG/C,QAAQ+a,OAAS,MAAM,SAAUxX,GACxF,GAAIpW,EAAQoW,MAAQR,EAAG/C,QAAQ8a,SAAU,CACvC,IAAIymB,EAAYh+B,EAAKqW,OACjBO,EAAa5W,EAAKY,KAAKpgB,OAASgf,EAAG9c,QAAQm0B,mBAAqBhW,GAAUqR,EAAIrS,KAAMjW,EAAQkV,OAAS,KACrGm/B,EAAcxoB,GAAcjW,EAAIQ,EAAMpW,GAAS,GAC/CgtB,IAAchtB,EAAQkV,MAAQ8X,GAClC5W,EAAKqW,OAAS4nB,EAAY5nB,OAC1B,IAAI6nB,EAASl+B,EAAK+W,aAAconB,EAASF,EAAY3nB,QACjD6nB,EAAUn+B,EAAK+W,aAAeonB,EACzBD,IAAUl+B,EAAK+W,aAAe,MAGvC,IAFA,IAAIqnB,GAAYJ,GAAaA,EAAUx9C,QAAUwf,EAAKqW,OAAO71B,QAC3D09C,GAAUC,KAAYD,IAAWC,GAAUD,EAAO3nB,SAAW4nB,EAAO5nB,SAAW2nB,EAAO1nB,WAAa2nB,EAAO3nB,WACnG92B,EAAI,GAAI0+C,GAAY1+C,EAAIs+C,EAAUx9C,SAAUd,EAAK0+C,EAAWJ,EAAUt+C,IAAMsgB,EAAKqW,OAAO32B,GAC7F0+C,GAAYL,EAAav5C,KAAKoF,EAAQoW,MAC1CA,EAAK8W,WAAaltB,EAAQ+E,OAC1B/E,EAAQ6tB,UACV,MACMzX,EAAKY,KAAKpgB,QAAUgf,EAAG9c,QAAQm0B,oBAC/BS,GAAY9X,EAAIQ,EAAKY,KAAMhX,GAC/BoW,EAAK8W,WAAaltB,EAAQoW,KAAO,GAAK,EAAIpW,EAAQ+E,OAAS,KAC3D/E,EAAQ6tB,WAEV,IAAK,IAAItQ,KAAOtF,EAEd,OADAy2B,GAAY94B,EAAIA,EAAG9c,QAAQ27C,YACpB,CAEX,IACAnsB,EAAI8E,kBAAoBptB,EAAQoW,KAChCkS,EAAI+E,aAAelrB,KAAKC,IAAIkmB,EAAI+E,aAAcrtB,EAAQoW,MAClD+9B,EAAav9C,QAAUi9C,GAAQj+B,GAAI,WACrC,IAAK,IAAI9f,EAAI,EAAGA,EAAIq+C,EAAav9C,OAAQd,IACrCixC,GAAcnxB,EAAIu+B,EAAar+C,GAAI,OACzC,GArCyD,CAsC3D,CAIA,IAAI+8C,GAAgB,SAASj9B,EAAIs2B,EAAUwI,GACzC,IAAI7hC,EAAU+C,EAAG/C,QAEjB5c,KAAKi2C,SAAWA,EAEhBj2C,KAAK0+C,QAAU1I,GAAap5B,EAAS+C,EAAG0S,IAAK4jB,GAC7Cj2C,KAAK2+C,gBAAkB/hC,EAAQgqB,QAAQxX,YACvCpvB,KAAK4+C,cAAgBhiC,EAAQgqB,QAAQuB,aACrCnoC,KAAKomC,aAAexpB,EAAQgqB,QAAQC,YACpC7mC,KAAK6+C,gBAAkB9W,GAAapoB,GACpC3f,KAAKy+C,MAAQA,EACbz+C,KAAKwjC,KAAOgG,GAAc7pB,GAC1B3f,KAAK0J,OAAS,EAChB,EAWA,SAASgzC,GAAoB/8B,GAC3B,IAAI/C,EAAU+C,EAAG/C,SACZA,EAAQkiC,mBAAqBliC,EAAQorB,SAAS5Y,cACjDxS,EAAQkrB,eAAiBlrB,EAAQorB,SAAS5Y,YAAcxS,EAAQorB,SAASnB,YACzEjqB,EAAQs+B,aAAav+B,MAAMmW,OAAS+U,GAAUloB,GAAM,KACpD/C,EAAQoqB,MAAMrqB,MAAMoiC,cAAgBniC,EAAQkrB,eAAiB,KAC7DlrB,EAAQoqB,MAAMrqB,MAAMqiC,iBAAmBnX,GAAUloB,GAAM,KACvD/C,EAAQkiC,mBAAoB,EAEhC,CAEA,SAASG,GAAkBt/B,GACzB,GAAIA,EAAGk1B,WAAc,OAAO,KAC5B,IAAIqK,EAAS/5B,IACb,IAAK+5B,IAAWx6C,EAASib,EAAG/C,QAAQ64B,QAASyJ,GAAW,OAAO,KAC/D,IAAIhyC,EAAS,CAACiY,UAAW+5B,GACzB,GAAIn/C,OAAOiwB,aAAc,CACvB,IAAI6hB,EAAM9xC,OAAOiwB,eACb6hB,EAAIsN,YAActN,EAAIlrC,QAAUjC,EAASib,EAAG/C,QAAQ64B,QAAS5D,EAAIsN,cACnEjyC,EAAOiyC,WAAatN,EAAIsN,WACxBjyC,EAAOkyC,aAAevN,EAAIuN,aAC1BlyC,EAAOmyC,UAAYxN,EAAIwN,UACvBnyC,EAAOoyC,YAAczN,EAAIyN,YAE7B,CACA,OAAOpyC,CACT,CAEA,SAASqyC,GAAiBC,GACxB,GAAKA,GAAaA,EAASr6B,WAAaq6B,EAASr6B,WAAaA,MAC9Dq6B,EAASr6B,UAAU6vB,SACd,qBAAqBhrC,KAAKw1C,EAASr6B,UAAUs6B,WAC9CD,EAASL,YAAcz6C,EAASgQ,SAASoI,KAAM0iC,EAASL,aAAez6C,EAASgQ,SAASoI,KAAM0iC,EAASH,YAAY,CACtH,IAAIxN,EAAM9xC,OAAOiwB,eAAgB7L,EAAQzP,SAASgR,cAClDvB,EAAM0B,OAAO25B,EAASL,WAAYK,EAASJ,cAC3Cj7B,EAAM8B,UAAS,GACf4rB,EAAI6N,kBACJ7N,EAAI8N,SAASx7B,GACb0tB,EAAIlrC,OAAO64C,EAASH,UAAWG,EAASF,YAC1C,CACF,CAKA,SAASxC,GAAsBn9B,EAAIk6B,GACjC,IAAIj9B,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAEnC,GAAIwnB,EAAO8E,eAET,OADAnO,GAAU7wB,IACH,EAIT,IAAKk6B,EAAO4E,OACR5E,EAAO6E,QAAQj/B,MAAQ7C,EAAQ8a,UAAYmiB,EAAO6E,QAAQh/B,IAAM9C,EAAQ+a,SAC1C,MAA7B/a,EAAQ0zB,mBAA6B1zB,EAAQ0zB,mBAAqB1zB,EAAQ+a,SAC3E/a,EAAQgjC,cAAgBhjC,EAAQ0lB,MAA8B,GAAtB4O,GAAevxB,GACvD,OAAO,EAEPkgC,GAA2BlgC,KAC7B6wB,GAAU7wB,GACVk6B,EAAOrW,KAAOgG,GAAc7pB,IAI9B,IAAIqC,EAAMqQ,EAAIxgB,MAAQwgB,EAAI3b,KACtB+I,EAAOvT,KAAKC,IAAI0tC,EAAO6E,QAAQj/B,KAAOE,EAAG9c,QAAQi9C,eAAgBztB,EAAIxgB,OACrE6N,EAAKxT,KAAKiE,IAAI6R,EAAK63B,EAAO6E,QAAQh/B,GAAKC,EAAG9c,QAAQi9C,gBAClDljC,EAAQ8a,SAAWjY,GAAQA,EAAO7C,EAAQ8a,SAAW,KAAMjY,EAAOvT,KAAKC,IAAIkmB,EAAIxgB,MAAO+K,EAAQ8a,WAC9F9a,EAAQ+a,OAASjY,GAAM9C,EAAQ+a,OAASjY,EAAK,KAAMA,EAAKxT,KAAKiE,IAAI6R,EAAKpF,EAAQ+a,SAC9EwB,KACF1Z,EAAOie,GAAa/d,EAAG0S,IAAK5S,GAC5BC,EAAKme,GAAgBle,EAAG0S,IAAK3S,IAG/B,IAAIqgC,EAAYtgC,GAAQ7C,EAAQ8a,UAAYhY,GAAM9C,EAAQ+a,QACxD/a,EAAQojC,gBAAkBnG,EAAO+E,eAAiBhiC,EAAQqjC,eAAiBpG,EAAOzT,aACpF6K,GAAWtxB,EAAIF,EAAMC,GAErB9C,EAAQ8vB,WAAaxO,GAAa9L,GAAQzS,EAAG0S,IAAKzV,EAAQ8a,WAE1D/X,EAAG/C,QAAQqqB,MAAMtqB,MAAMmsB,IAAMlsB,EAAQ8vB,WAAa,KAElD,IAAIwT,EAAWhP,GAAevxB,GAC9B,IAAKogC,GAAyB,GAAZG,IAAkBrG,EAAO4E,OAAS7hC,EAAQgjC,cAAgBhjC,EAAQ0lB,OAClD,MAA7B1lB,EAAQ0zB,mBAA6B1zB,EAAQ0zB,mBAAqB1zB,EAAQ+a,QAC3E,OAAO,EAIX,IAAIwoB,EAAclB,GAAkBt/B,GAuBpC,OAtBIugC,EAAW,IAAKtjC,EAAQ64B,QAAQ94B,MAAMC,QAAU,QACpDwjC,GAAazgC,EAAI/C,EAAQ0zB,kBAAmBuJ,EAAOrW,MAC/C0c,EAAW,IAAKtjC,EAAQ64B,QAAQ94B,MAAMC,QAAU,IACpDA,EAAQgjC,aAAehjC,EAAQ0lB,KAG/Bid,GAAiBY,GAIjB77B,EAAe1H,EAAQ83B,WACvBpwB,EAAe1H,EAAQyjC,cACvBzjC,EAAQ+pB,QAAQhqB,MAAMmW,OAASlW,EAAQoqB,MAAMrqB,MAAMg9B,UAAY,EAE3DoG,IACFnjC,EAAQojC,eAAiBnG,EAAO+E,cAChChiC,EAAQqjC,cAAgBpG,EAAOzT,aAC/BqS,GAAY94B,EAAI,MAGlB/C,EAAQ0zB,kBAAoB,MAErB,CACT,CAEA,SAAS+M,GAAkB19B,EAAIk6B,GAG7B,IAFA,IAAI5D,EAAW4D,EAAO5D,SAEbpkC,GAAQ,GAAOA,GAAQ,EAAO,CACrC,GAAKA,GAAU8N,EAAG9c,QAAQ2lC,cAAgBqR,EAAOgF,iBAAmB9W,GAAapoB,GAStE9N,IACTgoC,EAAO6E,QAAU1I,GAAar2B,EAAG/C,QAAS+C,EAAG0S,IAAK4jB,SAHlD,GALIA,GAA4B,MAAhBA,EAASnN,MACrBmN,EAAW,CAACnN,IAAK58B,KAAKiE,IAAIwP,EAAG0S,IAAIS,OAASuU,GAAY1nB,EAAG/C,SAAWsrB,GAAcvoB,GAAKs2B,EAASnN,OAGpG+Q,EAAO6E,QAAU1I,GAAar2B,EAAG/C,QAAS+C,EAAG0S,IAAK4jB,GAC9C4D,EAAO6E,QAAQj/B,MAAQE,EAAG/C,QAAQ8a,UAAYmiB,EAAO6E,QAAQh/B,IAAMC,EAAG/C,QAAQ+a,OAC9E,MAIN,IAAKmlB,GAAsBn9B,EAAIk6B,GAAW,MAC1CtE,GAAwB51B,GACxB,IAAIo9B,EAAa/D,GAAqBr5B,GACtCyxB,GAAgBzxB,GAChBi7B,GAAiBj7B,EAAIo9B,GACrBK,GAAkBz9B,EAAIo9B,GACtBlD,EAAO4E,OAAQ,CACjB,CAEA5E,EAAOzsB,OAAOzN,EAAI,SAAUA,GACxBA,EAAG/C,QAAQ8a,UAAY/X,EAAG/C,QAAQ0jC,kBAAoB3gC,EAAG/C,QAAQ+a,QAAUhY,EAAG/C,QAAQ2jC,iBACxF1G,EAAOzsB,OAAOzN,EAAI,iBAAkBA,EAAIA,EAAG/C,QAAQ8a,SAAU/X,EAAG/C,QAAQ+a,QACxEhY,EAAG/C,QAAQ0jC,iBAAmB3gC,EAAG/C,QAAQ8a,SAAU/X,EAAG/C,QAAQ2jC,eAAiB5gC,EAAG/C,QAAQ+a,OAE9F,CAEA,SAAS4gB,GAAoB54B,EAAIs2B,GAC/B,IAAI4D,EAAS,IAAI+C,GAAcj9B,EAAIs2B,GACnC,GAAI6G,GAAsBn9B,EAAIk6B,GAAS,CACrCtE,GAAwB51B,GACxB09B,GAAkB19B,EAAIk6B,GACtB,IAAIkD,EAAa/D,GAAqBr5B,GACtCyxB,GAAgBzxB,GAChBi7B,GAAiBj7B,EAAIo9B,GACrBK,GAAkBz9B,EAAIo9B,GACtBlD,EAAO8D,QACT,CACF,CAMA,SAASyC,GAAazgC,EAAI6gC,EAAmBhd,GAC3C,IAAI5mB,EAAU+C,EAAG/C,QAASkoB,EAAcnlB,EAAG9c,QAAQiiC,YAC/C2b,EAAY7jC,EAAQ64B,QAAS7zB,EAAM6+B,EAAUxjC,WAEjD,SAASyjC,EAAGr8B,GACV,IAAIlR,EAAOkR,EAAKmhB,YAMhB,OAJI3iB,GAAUa,GAAO/D,EAAG/C,QAAQ+jC,oBAAsBt8B,EAClDA,EAAK1H,MAAMC,QAAU,OAErByH,EAAKY,WAAWnH,YAAYuG,GACzBlR,CACT,CAKA,IAHA,IAAImvB,EAAO1lB,EAAQ0lB,KAAM3E,EAAQ/gB,EAAQ8a,SAGhC73B,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAAK,CACpC,IAAIw/B,EAAWiD,EAAKziC,GACpB,GAAIw/B,EAAS8C,aAAe,GAAK9C,EAAShb,MAAQgb,EAAShb,KAAKY,YAAcw7B,EAGvE,CACL,KAAO7+B,GAAOyd,EAAShb,MAAQzC,EAAM8+B,EAAG9+B,GACxC,IAAIg/B,EAAe9b,GAAoC,MAArB0b,GAChCA,GAAqB7iB,GAAS0B,EAAS4F,WACrC5F,EAASxxB,UACPhJ,EAAQw6B,EAASxxB,QAAS,WAAa,IAAK+yC,GAAe,GAC/Drd,GAAqB5jB,EAAI0f,EAAU1B,EAAO6F,IAExCod,IACFt8B,EAAe+a,EAAS4F,YACxB5F,EAAS4F,WAAWxgB,YAAY/P,SAASmQ,eAAewO,GAAc1T,EAAG9c,QAAS86B,MAEpF/b,EAAMyd,EAAShb,KAAKmhB,WACtB,KAhByF,CACvF,IAAInhB,EAAOqhB,GAAiB/lB,EAAI0f,EAAU1B,EAAO6F,GACjDid,EAAUzjC,aAAaqH,EAAMzC,EAC/B,CAcA+b,GAAS0B,EAAS3oB,IACpB,CACA,KAAOkL,GAAOA,EAAM8+B,EAAG9+B,EACzB,CAEA,SAASi/B,GAAkBjkC,GACzB,IAAIupB,EAAQvpB,EAAQ+pB,QAAQvX,YAC5BxS,EAAQoqB,MAAMrqB,MAAM6pB,WAAaL,EAAQ,KAEzChD,GAAYvmB,EAAS,gBAAiBA,EACxC,CAEA,SAASwgC,GAAkBz9B,EAAIuP,GAC7BvP,EAAG/C,QAAQoqB,MAAMrqB,MAAMg9B,UAAYzqB,EAAQoqB,UAAY,KACvD35B,EAAG/C,QAAQs+B,aAAav+B,MAAMmsB,IAAM5Z,EAAQoqB,UAAY,KACxD35B,EAAG/C,QAAQ+pB,QAAQhqB,MAAMmW,OAAU5D,EAAQoqB,UAAY35B,EAAG/C,QAAQwrB,UAAYP,GAAUloB,GAAO,IACjG,CAIA,SAASo5B,GAAkBp5B,GACzB,IAAI/C,EAAU+C,EAAG/C,QAAS0lB,EAAO1lB,EAAQ0lB,KACzC,GAAK1lB,EAAQkkC,cAAkBlkC,EAAQ+pB,QAAQ1pB,YAAe0C,EAAG9c,QAAQ6hC,YAAzE,CAGA,IAFA,IAAIqc,EAAO1R,GAAqBzyB,GAAWA,EAAQorB,SAASiE,WAAatsB,EAAG0S,IAAI4Z,WAC5EgN,EAAUr8B,EAAQ+pB,QAAQvX,YAAaM,EAAOqxB,EAAO,KAChDlhD,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAAO,IAAKyiC,EAAKziC,GAAGsiC,OAAQ,CACvDxiB,EAAG9c,QAAQ6hC,cACTpC,EAAKziC,GAAG0kC,SACRjC,EAAKziC,GAAG0kC,OAAO5nB,MAAM+S,KAAOA,GAC5B4S,EAAKziC,GAAG2kC,mBACRlC,EAAKziC,GAAG2kC,iBAAiB7nB,MAAM+S,KAAOA,IAE5C,IAAIsxB,EAAQ1e,EAAKziC,GAAGylC,UACpB,GAAI0b,EAAS,IAAK,IAAIv1C,EAAI,EAAGA,EAAIu1C,EAAMrgD,OAAQ8K,IAC3Cu1C,EAAMv1C,GAAGkR,MAAM+S,KAAOA,CAC5B,CACI/P,EAAG9c,QAAQ6hC,cACX9nB,EAAQ+pB,QAAQhqB,MAAM+S,KAAQqxB,EAAO9H,EAAW,KAf4C,CAgBlG,CAKA,SAAS4G,GAA2BlgC,GAClC,IAAKA,EAAG9c,QAAQiiC,YAAe,OAAO,EACtC,IAAIzS,EAAM1S,EAAG0S,IAAKrb,EAAOqc,GAAc1T,EAAG9c,QAASwvB,EAAIxgB,MAAQwgB,EAAI3b,KAAO,GAAIkG,EAAU+C,EAAG/C,QAC3F,GAAI5F,EAAKrW,QAAUic,EAAQivB,aAAc,CACvC,IAAI7hC,EAAO4S,EAAQsS,QAAQzK,YAAYC,EAAI,MAAO,CAACA,EAAI,MAAO1N,IACnB,gDACvCiqC,EAASj3C,EAAKiT,WAAWmS,YAAaujB,EAAU3oC,EAAKolB,YAAc6xB,EAOvE,OANArkC,EAAQskC,WAAWvkC,MAAMwpB,MAAQ,GACjCvpB,EAAQukC,kBAAoBj1C,KAAKC,IAAI80C,EAAQrkC,EAAQskC,WAAW9xB,YAAcujB,GAAW,EACzF/1B,EAAQwkC,aAAexkC,EAAQukC,kBAAoBxO,EACnD/1B,EAAQivB,aAAejvB,EAAQukC,kBAAoBnqC,EAAKrW,QAAU,EAClEic,EAAQskC,WAAWvkC,MAAMwpB,MAAQvpB,EAAQwkC,aAAe,KACxDP,GAAkBlhC,EAAG/C,UACd,CACT,CACA,OAAO,CACT,CAEA,SAASykC,GAAW1a,EAAS7B,GAE3B,IADA,IAAI53B,EAAS,GAAIo0C,GAAiB,EACzBzhD,EAAI,EAAGA,EAAI8mC,EAAQhmC,OAAQd,IAAK,CACvC,IAAI8J,EAAOg9B,EAAQ9mC,GAAI8c,EAAQ,KAE/B,GADmB,iBAARhT,IAAoBgT,EAAQhT,EAAKgT,MAAOhT,EAAOA,EAAKiL,WACnD,0BAARjL,EAAkC,CACpC,IAAKm7B,EAAe,SACbwc,GAAiB,CAC1B,CACAp0C,EAAOvI,KAAK,CAACiQ,UAAWjL,EAAMgT,MAAOA,GACvC,CAEA,OADImoB,IAAgBwc,GAAkBp0C,EAAOvI,KAAK,CAACiQ,UAAW,yBAA0B+H,MAAO,OACxFzP,CACT,CAIA,SAASq0C,GAAc3kC,GACrB,IAAI+pB,EAAU/pB,EAAQ+pB,QAAS6a,EAAQ5kC,EAAQwoB,YAC/C9gB,EAAeqiB,GACf/pB,EAAQskC,WAAa,KACrB,IAAK,IAAIrhD,EAAI,EAAGA,EAAI2hD,EAAM7gD,SAAUd,EAAG,CACrC,IAAIgvC,EAAM2S,EAAM3hD,GACZ+U,EAAYi6B,EAAIj6B,UAChB+H,EAAQkyB,EAAIlyB,MACZ8kC,EAAO9a,EAAQliB,YAAYC,EAAI,MAAO,KAAM,qBAAuB9P,IACnE+H,IAAS8kC,EAAK9kC,MAAMiI,QAAUjI,GACjB,0BAAb/H,IACFgI,EAAQskC,WAAaO,EACrBA,EAAK9kC,MAAMwpB,OAASvpB,EAAQwkC,cAAgB,GAAK,KAErD,CACAza,EAAQhqB,MAAMC,QAAU4kC,EAAM7gD,OAAS,GAAK,OAC5CkgD,GAAkBjkC,EACpB,CAEA,SAAS8kC,GAAc/hC,GACrB4hC,GAAc5hC,EAAG/C,SACjBwzB,GAAUzwB,GACVo5B,GAAkBp5B,EACpB,CAMA,SAASgiC,GAAQlX,EAAOpY,EAAKiP,EAAOz+B,GAClC,IAAI07B,EAAIv+B,KACRA,KAAKshC,MAAQA,EAGb/C,EAAE6c,gBAAkB12B,EAAI,MAAO,KAAM,+BACrC6Z,EAAE6c,gBAAgBr2B,aAAa,iBAAkB,QAGjDwZ,EAAE+c,aAAe52B,EAAI,MAAO,KAAM,4BAClC6Z,EAAE+c,aAAav2B,aAAa,iBAAkB,QAE9CwZ,EAAEkX,QAAU3wB,EAAK,MAAO,KAAM,mBAE9ByZ,EAAE8hB,aAAe37B,EAAI,MAAO,KAAM,KAAM,kCACxC6Z,EAAEmW,UAAYhwB,EAAI,MAAO,KAAM,sBAE/B6Z,EAAErP,QAAUxK,EAAI,MAAO,KAAM,sBAE7B6Z,EAAE0K,YAAcvkB,EAAI,MAAO,KAAM,sBAEjC6Z,EAAE4I,UAAYriB,EAAK,MAAO,CAACyZ,EAAErP,QAASqP,EAAE0K,YAAa1K,EAAE8hB,aAAc9hB,EAAEmW,UAAWnW,EAAEkX,SAClE,KAAM,qCACxB,IAAIr0B,EAAQ0D,EAAK,MAAO,CAACyZ,EAAE4I,WAAY,oBAEvC5I,EAAE0I,MAAQviB,EAAI,MAAO,CAACtD,GAAQ,KAAM,sBAEpCmd,EAAEyI,MAAQtiB,EAAI,MAAO,CAAC6Z,EAAE0I,OAAQ,oBAChC1I,EAAEuU,WAAa,KAIfvU,EAAE2c,aAAex2B,EAAI,MAAO,KAAM,KAAM,+BAAiCgD,EAAc,mBAEvF6W,EAAEoI,QAAUjiB,EAAI,MAAO,KAAM,sBAC7B6Z,EAAE2iB,WAAa,KAEf3iB,EAAEyJ,SAAWtjB,EAAI,MAAO,CAAC6Z,EAAEyI,MAAOzI,EAAE2c,aAAc3c,EAAEoI,SAAU,qBAC9DpI,EAAEyJ,SAASjjB,aAAa,WAAY,MAEpCwZ,EAAEqI,QAAUliB,EAAI,MAAO,CAAC6Z,EAAE6c,gBAAiB7c,EAAE+c,aAAc/c,EAAEyJ,UAAW,cAIxEzJ,EAAEqI,QAAQ7hB,aAAa,YAAa,MAGhCpC,GAAMC,EAAa,IAAK2b,EAAEoI,QAAQhqB,MAAMonB,QAAU,EAAGxF,EAAEyJ,SAASrrB,MAAMgrB,aAAe,GACpF9kB,GAAYN,GAASkB,IAAW8a,EAAEyJ,SAAS4Z,WAAY,GAExDnX,IACEA,EAAMhmB,YAAegmB,EAAMhmB,YAAY8Z,EAAEqI,SACtC6D,EAAMlM,EAAEqI,UAIjBrI,EAAE7G,SAAW6G,EAAE5G,OAAStF,EAAIxgB,MAC5B0sB,EAAE+hB,iBAAmB/hB,EAAEgiB,eAAiBluB,EAAIxgB,MAE5C0sB,EAAE+D,KAAO,GACT/D,EAAEqhB,aAAe,KAGjBrhB,EAAEuB,iBAAmB,KAErBvB,EAAEmO,WAAa,EACfnO,EAAEyhB,eAAiBzhB,EAAE0hB,cAAgB,EACrC1hB,EAAE+R,kBAAoB,KAEtB/R,EAAEuJ,eAAiBvJ,EAAE6J,UAAY7J,EAAE0J,SAAW,EAC9C1J,EAAEugB,mBAAoB,EAItBvgB,EAAE6iB,aAAe7iB,EAAE4iB,kBAAoB5iB,EAAEsN,aAAe,KAIxDtN,EAAEuiB,cAAe,EAEjBviB,EAAEoN,gBAAkBpN,EAAEqN,iBAAmBrN,EAAEgJ,eAAiB,KAI5DhJ,EAAEC,QAAU,KACZD,EAAEE,cAAgB,EAClBF,EAAEG,gBAAiB,EAGnBH,EAAEsjB,QAAUtjB,EAAEujB,QAAUvjB,EAAE+e,YAAc/e,EAAEgf,YAAc,KAGxDhf,EAAE16B,OAAQ,EAIV06B,EAAE8W,kBAAoB,KAEtB9W,EAAEwjB,YAAc,KAEhBxjB,EAAE6G,YAAcic,GAAWx+C,EAAQ8jC,QAAS9jC,EAAQiiC,aACpDyc,GAAchjB,GAEd+C,EAAM0gB,KAAKzjB,EACb,CAtaAqe,GAAcv8C,UAAU+sB,OAAS,SAAUH,EAASzqB,GAC9CurB,GAAWd,EAASzqB,IACpBxC,KAAK0J,OAAO/E,KAAKxD,UACvB,EACAy7C,GAAcv8C,UAAUs9C,OAAS,WAC/B,IAAK,IAAI99C,EAAI,EAAGA,EAAIG,KAAK0J,OAAO/I,OAAQd,IACpCutB,GAAO7sB,MAAM,KAAMP,KAAK0J,OAAO7J,GACrC,EA4aA,IAAIoiD,GAAe,EAAGC,GAAqB,KAU3C,SAASC,GAAgBj3C,GACvB,IAAIk3C,EAAKl3C,EAAEm3C,YAAaC,EAAKp3C,EAAEq3C,YAI/B,OAHU,MAANH,GAAcl3C,EAAEs3C,QAAUt3C,EAAEwwC,MAAQxwC,EAAEu3C,kBAAmBL,EAAKl3C,EAAEs3C,QAC1D,MAANF,GAAcp3C,EAAEs3C,QAAUt3C,EAAEwwC,MAAQxwC,EAAEw3C,cAAiBJ,EAAKp3C,EAAEs3C,OACnD,MAANF,IAAcA,EAAKp3C,EAAEy3C,YACvB,CAAC9uB,EAAGuuB,EAAIxU,EAAG0U,EACpB,CACA,SAASM,GAAiB13C,GACxB,IAAI23C,EAAQV,GAAgBj3C,GAG5B,OAFA23C,EAAMhvB,GAAKquB,GACXW,EAAMjV,GAAKsU,GACJW,CACT,CAEA,SAASC,GAAcnjC,EAAIzU,GAIrB6X,GAAUC,GAAkB,MACK,MAA/BrD,EAAG/C,QAAQmmC,iBAA4BpjC,EAAG/C,QAAQoqB,MAAMrqB,MAAMqmC,cAAgB,OAC3Ev7B,aAAa9H,EAAG/C,QAAQmmC,kBAC/BpjC,EAAG/C,QAAQmmC,iBAAmBx7B,YAAW,WACvC5H,EAAG/C,QAAQmmC,iBAAmB,KAC9BpjC,EAAG/C,QAAQoqB,MAAMrqB,MAAMqmC,cAAgB,EACzC,GAAG,MAEL,IAAIH,EAAQV,GAAgBj3C,GAAIk3C,EAAKS,EAAMhvB,EAAGyuB,EAAKO,EAAMjV,EACrDqV,EAAgBf,GACA,IAAhBh3C,EAAEg4C,YACJd,EAAKl3C,EAAEi4C,OACPb,EAAKp3C,EAAEk4C,OACPH,EAAgB,GAGlB,IAAIrmC,EAAU+C,EAAG/C,QAASkL,EAASlL,EAAQorB,SAEvCqb,EAAav7B,EAAOgxB,YAAchxB,EAAO+e,YACzCyc,EAAax7B,EAAO6wB,aAAe7wB,EAAOqgB,aAC9C,GAAMia,GAAMiB,GAAcf,GAAMgB,EAAhC,CAMA,GAAIhB,GAAM5+B,GAAOb,EACf/B,EAAO,IAAK,IAAIc,EAAM1W,EAAEqb,OAAQ+b,EAAO1lB,EAAQ0lB,KAAM1gB,GAAOkG,EAAQlG,EAAMA,EAAIqD,WAC5E,IAAK,IAAIplB,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAC/B,GAAIyiC,EAAKziC,GAAGwkB,MAAQzC,EAAK,CACvBjC,EAAG/C,QAAQ+jC,mBAAqB/+B,EAChC,MAAMd,CACR,CAWN,GAAIshC,IAAO7/B,IAAUU,GAA2B,MAAjBggC,EAW7B,OAVIX,GAAMgB,GACNpM,GAAgBv3B,EAAIzT,KAAKC,IAAI,EAAG2b,EAAOukB,UAAYiW,EAAKW,IAC5D9L,GAAcx3B,EAAIzT,KAAKC,IAAI,EAAG2b,EAAOmkB,WAAamW,EAAKa,MAKlDX,GAAOA,GAAMgB,IACdp1B,GAAiBhjB,QACrB0R,EAAQ0gC,YAAc,MAMxB,GAAIgF,GAAuB,MAAjBW,EAAuB,CAC/B,IAAIM,EAASjB,EAAKW,EACdna,EAAMnpB,EAAG0S,IAAIga,UAAWvB,EAAMhC,EAAMlsB,EAAQgqB,QAAQuB,aACpDob,EAAS,EAAKza,EAAM58B,KAAKC,IAAI,EAAG28B,EAAMya,EAAS,IAC5CzY,EAAM5+B,KAAKiE,IAAIwP,EAAG0S,IAAIS,OAAQgY,EAAMyY,EAAS,IACpDhL,GAAoB54B,EAAI,CAACmpB,IAAKA,EAAKD,OAAQiC,GAC7C,CAEImX,GAAe,IAAsB,IAAhB/2C,EAAEg4C,YACE,MAAvBtmC,EAAQ0gC,aACV1gC,EAAQ0gC,YAAcx1B,EAAOmkB,WAAYrvB,EAAQ2gC,YAAcz1B,EAAOukB,UACtEzvB,EAAQilC,QAAUO,EAAIxlC,EAAQklC,QAAUQ,EACxC/6B,YAAW,WACT,GAA2B,MAAvB3K,EAAQ0gC,YAAZ,CACA,IAAIkG,EAAS17B,EAAOmkB,WAAarvB,EAAQ0gC,YACrCmG,EAAS37B,EAAOukB,UAAYzvB,EAAQ2gC,YACpCjmC,EAAUmsC,GAAU7mC,EAAQklC,SAAW2B,EAAS7mC,EAAQklC,SACzD0B,GAAU5mC,EAAQilC,SAAW2B,EAAS5mC,EAAQilC,QACjDjlC,EAAQ0gC,YAAc1gC,EAAQ2gC,YAAc,KACvCjmC,IACL4qC,IAAsBA,GAAqBD,GAAe3qC,IAAW2qC,GAAe,KAClFA,GARwC,CAS5C,GAAG,OAEHrlC,EAAQilC,SAAWO,EAAIxlC,EAAQklC,SAAWQ,GA/DQ,CAkExD,CA7GI3/B,EAAMu/B,IAAsB,IACvB3/B,EAAS2/B,GAAqB,GAC9Bn/B,EAAUm/B,IAAsB,GAChCh/B,IAAUg/B,IAAsB,EAAE,GAiH3C,IAAIwB,GAAY,SAAS5R,EAAQC,GAC/B/xC,KAAK8xC,OAASA,EACd9xC,KAAK+xC,UAAYA,CACnB,EAEA2R,GAAUrjD,UAAUkxC,QAAU,WAAc,OAAOvxC,KAAK8xC,OAAO9xC,KAAK+xC,UAAW,EAE/E2R,GAAUrjD,UAAUsjD,OAAS,SAAUrW,GACrC,GAAIA,GAASttC,KAAQ,OAAO,EAC5B,GAAIstC,EAAMyE,WAAa/xC,KAAK+xC,WAAazE,EAAMwE,OAAOnxC,QAAUX,KAAK8xC,OAAOnxC,OAAU,OAAO,EAC7F,IAAK,IAAId,EAAI,EAAGA,EAAIG,KAAK8xC,OAAOnxC,OAAQd,IAAK,CAC3C,IAAI+jD,EAAO5jD,KAAK8xC,OAAOjyC,GAAIgkD,EAAQvW,EAAMwE,OAAOjyC,GAChD,IAAK8zB,GAAeiwB,EAAK1U,OAAQ2U,EAAM3U,UAAYvb,GAAeiwB,EAAKjtC,KAAMktC,EAAMltC,MAAS,OAAO,CACrG,CACA,OAAO,CACT,EAEA+sC,GAAUrjD,UAAUyjD,SAAW,WAE7B,IADA,IAAI3iC,EAAM,GACDthB,EAAI,EAAGA,EAAIG,KAAK8xC,OAAOnxC,OAAQd,IACpCshB,EAAIthB,GAAK,IAAIkkD,GAAMnwB,GAAQ5zB,KAAK8xC,OAAOjyC,GAAGqvC,QAAStb,GAAQ5zB,KAAK8xC,OAAOjyC,GAAG8W,OAC9E,OAAO,IAAI+sC,GAAUviC,EAAKnhB,KAAK+xC,UACjC,EAEA2R,GAAUrjD,UAAU2jD,kBAAoB,WACtC,IAAK,IAAInkD,EAAI,EAAGA,EAAIG,KAAK8xC,OAAOnxC,OAAQd,IACpC,IAAKG,KAAK8xC,OAAOjyC,GAAGmyC,QAAW,OAAO,EAC1C,OAAO,CACT,EAEA0R,GAAUrjD,UAAUqE,SAAW,SAAUmd,EAAKG,GACvCA,IAAOA,EAAMH,GAClB,IAAK,IAAIhiB,EAAI,EAAGA,EAAIG,KAAK8xC,OAAOnxC,OAAQd,IAAK,CAC3C,IAAIskB,EAAQnkB,KAAK8xC,OAAOjyC,GACxB,GAAI6zB,GAAI1R,EAAKmC,EAAM1E,SAAW,GAAKiU,GAAI7R,EAAKsC,EAAMzE,OAAS,EACvD,OAAO7f,CACb,CACA,OAAQ,CACV,EAEA,IAAIkkD,GAAQ,SAAS7U,EAAQv4B,GAC3B3W,KAAKkvC,OAASA,EAAQlvC,KAAK2W,KAAOA,CACpC,EASA,SAASstC,GAAmBtkC,EAAImyB,EAAQC,GACtC,IAAImS,EAAWvkC,GAAMA,EAAG9c,QAAQshD,mBAC5BC,EAAOtS,EAAOC,GAClBD,EAAO/gC,MAAK,SAAUnR,EAAG4lB,GAAK,OAAOkO,GAAI9zB,EAAE6f,OAAQ+F,EAAE/F,OAAS,IAC9DsyB,EAAYltC,EAAQitC,EAAQsS,GAC5B,IAAK,IAAIvkD,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAI+hB,EAAMkwB,EAAOjyC,GAAIqO,EAAO4jC,EAAOjyC,EAAI,GACnCwE,EAAOqvB,GAAIxlB,EAAKwR,KAAMkC,EAAInC,QAC9B,GAAIykC,IAAatiC,EAAIowB,QAAU3tC,EAAO,EAAIA,GAAQ,EAAG,CACnD,IAAIob,EAAOsU,GAAO7lB,EAAKuR,OAAQmC,EAAInC,QAASC,EAAKoU,GAAO5lB,EAAKwR,KAAMkC,EAAIlC,MACnE2kC,EAAMn2C,EAAK8jC,QAAUpwB,EAAInC,QAAUmC,EAAIjL,KAAOzI,EAAKuR,QAAUvR,EAAKyI,KAClE9W,GAAKkyC,KAAeA,EACxBD,EAAOltC,SAAS/E,EAAG,EAAG,IAAIkkD,GAAMM,EAAM3kC,EAAKD,EAAM4kC,EAAM5kC,EAAOC,GAChE,CACF,CACA,OAAO,IAAIgkC,GAAU5R,EAAQC,EAC/B,CAEA,SAASuS,GAAgBpV,EAAQv4B,GAC/B,OAAO,IAAI+sC,GAAU,CAAC,IAAIK,GAAM7U,EAAQv4B,GAAQu4B,IAAU,EAC5D,CAIA,SAASqV,GAAUzpB,GACjB,OAAKA,EAAO/Z,KACL0S,GAAIqH,EAAOrb,KAAKU,KAAO2a,EAAO/Z,KAAKpgB,OAAS,EACxC6nB,EAAIsS,EAAO/Z,MAAMpgB,QAAgC,GAAtBm6B,EAAO/Z,KAAKpgB,OAAcm6B,EAAOrb,KAAKW,GAAK,IAFtD0a,EAAOpb,EAGpC,CAIA,SAAS8kC,GAAgB3iC,EAAKiZ,GAC5B,GAAIpH,GAAI7R,EAAKiZ,EAAOrb,MAAQ,EAAK,OAAOoC,EACxC,GAAI6R,GAAI7R,EAAKiZ,EAAOpb,KAAO,EAAK,OAAO6kC,GAAUzpB,GAEjD,IAAI3a,EAAO0B,EAAI1B,KAAO2a,EAAO/Z,KAAKpgB,QAAUm6B,EAAOpb,GAAGS,KAAO2a,EAAOrb,KAAKU,MAAQ,EAAGC,EAAKyB,EAAIzB,GAE7F,OADIyB,EAAI1B,MAAQ2a,EAAOpb,GAAGS,OAAQC,GAAMmkC,GAAUzpB,GAAQ1a,GAAK0a,EAAOpb,GAAGU,IAClEqT,GAAItT,EAAMC,EACnB,CAEA,SAASqkC,GAAsBpyB,EAAKyI,GAElC,IADA,IAAI3Z,EAAM,GACDthB,EAAI,EAAGA,EAAIwyB,EAAIwf,IAAIC,OAAOnxC,OAAQd,IAAK,CAC9C,IAAIskB,EAAQkO,EAAIwf,IAAIC,OAAOjyC,GAC3BshB,EAAIxc,KAAK,IAAIo/C,GAAMS,GAAgBrgC,EAAM+qB,OAAQpU,GAC9B0pB,GAAgBrgC,EAAMxN,KAAMmkB,IACjD,CACA,OAAOmpB,GAAmB5xB,EAAI1S,GAAIwB,EAAKkR,EAAIwf,IAAIE,UACjD,CAEA,SAAS2S,GAAU7iC,EAAKtT,EAAK8rB,GAC3B,OAAIxY,EAAI1B,MAAQ5R,EAAI4R,KACTsT,GAAI4G,EAAGla,KAAM0B,EAAIzB,GAAK7R,EAAI6R,GAAKia,EAAGja,IAElCqT,GAAI4G,EAAGla,MAAQ0B,EAAI1B,KAAO5R,EAAI4R,MAAO0B,EAAIzB,GACtD,CAIA,SAASukC,GAAmBtyB,EAAKxkB,EAAS+2C,GAGxC,IAFA,IAAIzjC,EAAM,GACN0jC,EAAUpxB,GAAIpB,EAAIxgB,MAAO,GAAIizC,EAAUD,EAClChlD,EAAI,EAAGA,EAAIgO,EAAQlN,OAAQd,IAAK,CACvC,IAAIi7B,EAASjtB,EAAQhO,GACjB4f,EAAOilC,GAAU5pB,EAAOrb,KAAMolC,EAASC,GACvCplC,EAAKglC,GAAUH,GAAUzpB,GAAS+pB,EAASC,GAG/C,GAFAD,EAAU/pB,EAAOpb,GACjBolC,EAAUplC,EACE,UAARklC,EAAkB,CACpB,IAAIzgC,EAAQkO,EAAIwf,IAAIC,OAAOjyC,GAAIwkD,EAAM3wB,GAAIvP,EAAMxN,KAAMwN,EAAM+qB,QAAU,EACrE/tB,EAAIthB,GAAK,IAAIkkD,GAAMM,EAAM3kC,EAAKD,EAAM4kC,EAAM5kC,EAAOC,EACnD,MACEyB,EAAIthB,GAAK,IAAIkkD,GAAMtkC,EAAMA,EAE7B,CACA,OAAO,IAAIikC,GAAUviC,EAAKkR,EAAIwf,IAAIE,UACpC,CAIA,SAASgT,GAASplC,GAChBA,EAAG0S,IAAIrS,KAAOF,GAAQH,EAAG9c,QAAS8c,EAAG0S,IAAI2yB,YACzCC,GAAetlC,EACjB,CAEA,SAASslC,GAAetlC,GACtBA,EAAG0S,IAAIM,MAAK,SAAUxS,GAChBA,EAAK8W,aAAc9W,EAAK8W,WAAa,MACrC9W,EAAKqW,SAAUrW,EAAKqW,OAAS,KACnC,IACA7W,EAAG0S,IAAI+E,aAAezX,EAAG0S,IAAI8E,kBAAoBxX,EAAG0S,IAAIxgB,MACxD4mC,GAAY94B,EAAI,KAChBA,EAAGV,MAAM8W,UACLpW,EAAGkO,OAASuiB,GAAUzwB,EAC5B,CAOA,SAASulC,GAAkB7yB,EAAKyI,GAC9B,OAAyB,GAAlBA,EAAOrb,KAAKW,IAA2B,GAAhB0a,EAAOpb,GAAGU,IAA+B,IAApBoI,EAAIsS,EAAO/Z,SAC1DsR,EAAI1S,IAAM0S,EAAI1S,GAAG9c,QAAQsiD,sBAC/B,CAGA,SAASC,GAAU/yB,EAAKyI,EAAQd,EAAa4E,GAC3C,SAASymB,EAASv+B,GAAI,OAAOkT,EAAcA,EAAYlT,GAAK,IAAI,CAChE,SAAS+yB,EAAO15B,EAAMY,EAAM0Y,GAC1BoF,GAAW1e,EAAMY,EAAM0Y,EAAOmF,GAC9BuE,GAAYhjB,EAAM,SAAUA,EAAM2a,EACpC,CACA,SAASwqB,EAAStpC,EAAOgG,GAEvB,IADA,IAAI9U,EAAS,GACJrN,EAAImc,EAAOnc,EAAImiB,IAAOniB,EAC3BqN,EAAOvI,KAAK,IAAIg6B,GAAK5d,EAAKlhB,GAAIwlD,EAASxlD,GAAI++B,IAC/C,OAAO1xB,CACT,CAEA,IAAIuS,EAAOqb,EAAOrb,KAAMC,EAAKob,EAAOpb,GAAIqB,EAAO+Z,EAAO/Z,KAClDwkC,EAAYnzB,GAAQC,EAAK5S,EAAKU,MAAO2d,EAAW1L,GAAQC,EAAK3S,EAAGS,MAChEqlC,EAAWh9B,EAAIzH,GAAO0kC,EAAYJ,EAAStkC,EAAKpgB,OAAS,GAAI+kD,EAAShmC,EAAGS,KAAOV,EAAKU,KAGzF,GAAI2a,EAAOC,KACT1I,EAAIniB,OAAO,EAAGo1C,EAAS,EAAGvkC,EAAKpgB,SAC/B0xB,EAAIjtB,OAAO2b,EAAKpgB,OAAQ0xB,EAAI3b,KAAOqK,EAAKpgB,aACnC,GAAIukD,GAAkB7yB,EAAKyI,GAAS,CAGzC,IAAItqB,EAAQ80C,EAAS,EAAGvkC,EAAKpgB,OAAS,GACtCk5C,EAAO/b,EAAUA,EAAS/c,KAAM0kC,GAC5BC,GAAUrzB,EAAIjtB,OAAOqa,EAAKU,KAAMulC,GAChCl1C,EAAM7P,QAAU0xB,EAAIniB,OAAOuP,EAAKU,KAAM3P,EAC5C,MAAO,GAAI+0C,GAAaznB,EACtB,GAAmB,GAAf/c,EAAKpgB,OACPk5C,EAAO0L,EAAWA,EAAUxkC,KAAKzgB,MAAM,EAAGmf,EAAKW,IAAMolC,EAAWD,EAAUxkC,KAAKzgB,MAAMof,EAAGU,IAAKqlC,OACxF,CACL,IAAIE,EAAUL,EAAS,EAAGvkC,EAAKpgB,OAAS,GACxCglD,EAAQhhD,KAAK,IAAIg6B,GAAK6mB,EAAWD,EAAUxkC,KAAKzgB,MAAMof,EAAGU,IAAKqlC,EAAW7mB,IACzEib,EAAO0L,EAAWA,EAAUxkC,KAAKzgB,MAAM,EAAGmf,EAAKW,IAAMW,EAAK,GAAIskC,EAAS,IACvEhzB,EAAIniB,OAAOuP,EAAKU,KAAO,EAAGwlC,EAC5B,MACK,GAAmB,GAAf5kC,EAAKpgB,OACdk5C,EAAO0L,EAAWA,EAAUxkC,KAAKzgB,MAAM,EAAGmf,EAAKW,IAAMW,EAAK,GAAK+c,EAAS/c,KAAKzgB,MAAMof,EAAGU,IAAKilC,EAAS,IACpGhzB,EAAIjtB,OAAOqa,EAAKU,KAAO,EAAGulC,OACrB,CACL7L,EAAO0L,EAAWA,EAAUxkC,KAAKzgB,MAAM,EAAGmf,EAAKW,IAAMW,EAAK,GAAIskC,EAAS,IACvExL,EAAO/b,EAAU0nB,EAAW1nB,EAAS/c,KAAKzgB,MAAMof,EAAGU,IAAKqlC,GACxD,IAAIG,EAAUN,EAAS,EAAGvkC,EAAKpgB,OAAS,GACpC+kD,EAAS,GAAKrzB,EAAIjtB,OAAOqa,EAAKU,KAAO,EAAGulC,EAAS,GACrDrzB,EAAIniB,OAAOuP,EAAKU,KAAO,EAAGylC,EAC5B,CAEAziB,GAAY9Q,EAAK,SAAUA,EAAKyI,EAClC,CAGA,SAAS+qB,GAAWxzB,EAAKhM,EAAGy/B,GAC1B,SAASC,EAAU1zB,EAAK2zB,EAAMC,GAC5B,GAAI5zB,EAAI6zB,OAAU,IAAK,IAAIrmD,EAAI,EAAGA,EAAIwyB,EAAI6zB,OAAOvlD,SAAUd,EAAG,CAC5D,IAAIsmD,EAAM9zB,EAAI6zB,OAAOrmD,GACrB,GAAIsmD,EAAI9zB,KAAO2zB,EAAf,CACA,IAAII,EAASH,GAAcE,EAAIF,WAC3BH,IAAmBM,IACvB//B,EAAE8/B,EAAI9zB,IAAK+zB,GACXL,EAAUI,EAAI9zB,IAAKA,EAAK+zB,GAJQ,CAKlC,CACF,CACAL,EAAU1zB,EAAK,MAAM,EACvB,CAGA,SAASg0B,GAAU1mC,EAAI0S,GACrB,GAAIA,EAAI1S,GAAM,MAAM,IAAI5N,MAAM,oCAC9B4N,EAAG0S,IAAMA,EACTA,EAAI1S,GAAKA,EACT8vB,GAAoB9vB,GACpBolC,GAASplC,GACT2mC,GAAkB3mC,GAClBA,EAAG9c,QAAQ0oB,UAAY8G,EAAI9G,UACtB5L,EAAG9c,QAAQ2lC,cAAgBlK,GAAY3e,GAC5CA,EAAG9c,QAAQmd,KAAOqS,EAAI2yB,WACtB5U,GAAUzwB,EACZ,CAEA,SAAS2mC,GAAkB3mC,IACN,OAApBA,EAAG0S,IAAI9G,UAAqBjG,EAAWlB,GAASzE,EAAG/C,QAAQ64B,QAAS,iBACrE,CAEA,SAAS8Q,GAAiB5mC,GACxBi+B,GAAQj+B,GAAI,WACV2mC,GAAkB3mC,GAClBywB,GAAUzwB,EACZ,GACF,CAEA,SAASjF,GAAQxM,GAIflO,KAAKoT,KAAO,GAAIpT,KAAKwmD,OAAS,GAC9BxmD,KAAKymD,UAAYv4C,EAAOA,EAAKu4C,UAAYr/C,IAGzCpH,KAAK0mD,YAAc1mD,KAAK2mD,YAAc,EACtC3mD,KAAK4mD,OAAS5mD,KAAK6mD,UAAY,KAC/B7mD,KAAK8mD,WAAa9mD,KAAK+mD,cAAgB,KAEvC/mD,KAAKgnD,WAAahnD,KAAKinD,cAAgB/4C,EAAOA,EAAK+4C,cAAgB,CACrE,CAIA,SAASC,GAAwB70B,EAAKyI,GACpC,IAAIqsB,EAAa,CAAC1nC,KAAMmU,GAAQkH,EAAOrb,MAAOC,GAAI6kC,GAAUzpB,GAAS/Z,KAAM2R,GAAWL,EAAKyI,EAAOrb,KAAMqb,EAAOpb,KAG/G,OAFA0nC,GAAiB/0B,EAAK80B,EAAYrsB,EAAOrb,KAAKU,KAAM2a,EAAOpb,GAAGS,KAAO,GACrE0lC,GAAWxzB,GAAK,SAAUA,GAAO,OAAO+0B,GAAiB/0B,EAAK80B,EAAYrsB,EAAOrb,KAAKU,KAAM2a,EAAOpb,GAAGS,KAAO,EAAI,IAAG,GAC7GgnC,CACT,CAIA,SAASE,GAAqBp3C,GAC5B,KAAOA,EAAMtP,QACA6nB,EAAIvY,GACN6hC,QAAU7hC,EAAMrM,KAG7B,CAIA,SAAS0jD,GAAgBC,EAAM9I,GAC7B,OAAIA,GACF4I,GAAqBE,EAAKn0C,MACnBoV,EAAI++B,EAAKn0C,OACPm0C,EAAKn0C,KAAKzS,SAAW6nB,EAAI++B,EAAKn0C,MAAM0+B,OACtCtpB,EAAI++B,EAAKn0C,MACPm0C,EAAKn0C,KAAKzS,OAAS,IAAM4mD,EAAKn0C,KAAKm0C,EAAKn0C,KAAKzS,OAAS,GAAGmxC,QAClEyV,EAAKn0C,KAAKxP,MACH4kB,EAAI++B,EAAKn0C,YAFX,CAIT,CAKA,SAASo0C,GAAmBn1B,EAAKyI,EAAQ2sB,EAAUC,GACjD,IAAIH,EAAOl1B,EAAIrY,QACfutC,EAAKf,OAAO7lD,OAAS,EACrB,IAAsBihB,EAClB5K,EADAoQ,GAAQ,IAAIE,KAGhB,IAAKigC,EAAKX,QAAUc,GACfH,EAAKT,YAAchsB,EAAO9S,QAAU8S,EAAO9S,SACd,KAA3B8S,EAAO9S,OAAOpM,OAAO,IAAa2rC,EAAKb,YAAct/B,GAAQiL,EAAI1S,GAAK0S,EAAI1S,GAAG9c,QAAQ8kD,kBAAoB,MAC/E,KAA3B7sB,EAAO9S,OAAOpM,OAAO,OACtBgG,EAAM0lC,GAAgBC,EAAMA,EAAKX,QAAUc,IAE9C1wC,EAAOwR,EAAI5G,EAAI/T,SACoB,GAA/B6lB,GAAIoH,EAAOrb,KAAMqb,EAAOpb,KAAyC,GAA7BgU,GAAIoH,EAAOrb,KAAMzI,EAAK0I,IAG5D1I,EAAK0I,GAAK6kC,GAAUzpB,GAGpBlZ,EAAI/T,QAAQlJ,KAAKuiD,GAAwB70B,EAAKyI,QAE3C,CAEL,IAAIn4B,EAAS6lB,EAAI++B,EAAKn0C,MAMtB,IALKzQ,GAAWA,EAAOmvC,QACnB8V,GAAuBv1B,EAAIwf,IAAK0V,EAAKn0C,MACzCwO,EAAM,CAAC/T,QAAS,CAACq5C,GAAwB70B,EAAKyI,IACvCksB,WAAYO,EAAKP,YACxBO,EAAKn0C,KAAKzO,KAAKid,GACR2lC,EAAKn0C,KAAKzS,OAAS4mD,EAAKd,WAC7Bc,EAAKn0C,KAAKvP,QACL0jD,EAAKn0C,KAAK,GAAG0+B,QAAUyV,EAAKn0C,KAAKvP,OAE1C,CACA0jD,EAAKn0C,KAAKzO,KAAK8iD,GACfF,EAAKP,aAAeO,EAAKN,cACzBM,EAAKb,YAAca,EAAKZ,YAAcv/B,EACtCmgC,EAAKX,OAASW,EAAKV,UAAYa,EAC/BH,EAAKT,WAAaS,EAAKR,cAAgBjsB,EAAO9S,OAEzChR,GAAQoW,GAAOiF,EAAK,eAC3B,CAEA,SAASw1B,GAA0Bx1B,EAAKrK,EAAQ9Z,EAAM2jC,GACpD,IAAIzxB,EAAK4H,EAAOpM,OAAO,GACvB,MAAa,KAANwE,GACC,KAANA,GACAlS,EAAK4jC,OAAOnxC,QAAUkxC,EAAIC,OAAOnxC,QACjCuN,EAAK81C,qBAAuBnS,EAAImS,qBAChC,IAAI18B,KAAO+K,EAAIrY,QAAQ2sC,cAAgBt0B,EAAI1S,GAAK0S,EAAI1S,GAAG9c,QAAQ8kD,kBAAoB,IACvF,CAMA,SAASG,GAAsBz1B,EAAKwf,EAAK6V,EAAM7kD,GAC7C,IAAI0kD,EAAOl1B,EAAIrY,QAASgO,EAASnlB,GAAWA,EAAQmlB,OAMhD0/B,GAAQH,EAAKV,WACZ7+B,GAAUu/B,EAAKR,eAAiB/+B,IAC/Bu/B,EAAKb,aAAea,EAAKZ,aAAeY,EAAKT,YAAc9+B,GAC3D6/B,GAA0Bx1B,EAAKrK,EAAQQ,EAAI++B,EAAKn0C,MAAOy+B,IACzD0V,EAAKn0C,KAAKm0C,EAAKn0C,KAAKzS,OAAS,GAAKkxC,EAElC+V,GAAuB/V,EAAK0V,EAAKn0C,MAErCm0C,EAAKZ,aAAe,IAAIr/B,KACxBigC,EAAKR,cAAgB/+B,EACrBu/B,EAAKV,UAAYa,EACb7kD,IAAiC,IAAtBA,EAAQklD,WACnBV,GAAqBE,EAAKf,OAChC,CAEA,SAASoB,GAAuB/V,EAAKmW,GACnC,IAAIlf,EAAMtgB,EAAIw/B,GACRlf,GAAOA,EAAIgJ,QAAUhJ,EAAI6a,OAAO9R,IAClCmW,EAAKrjD,KAAKktC,EAChB,CAGA,SAASuV,GAAiB/0B,EAAKyI,EAAQrb,EAAMC,GAC3C,IAAIvO,EAAW2pB,EAAO,SAAWzI,EAAI/nB,IAAKwc,EAAI,EAC9CuL,EAAIM,KAAKzmB,KAAKC,IAAIkmB,EAAIxgB,MAAO4N,GAAOvT,KAAKiE,IAAIkiB,EAAIxgB,MAAQwgB,EAAI3b,KAAMgJ,IAAK,SAAUS,GAC5EA,EAAK6Z,eACJ7oB,IAAaA,EAAW2pB,EAAO,SAAWzI,EAAI/nB,IAAM,CAAC,IAAIwc,GAAK3G,EAAK6Z,eACtElT,CACJ,GACF,CAIA,SAASmhC,GAAmBxuB,GAC1B,IAAKA,EAAS,OAAO,KAErB,IADA,IAAItY,EACKthB,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAC9B45B,EAAM55B,GAAG05B,OAAO2uB,kBAA0B/mC,IAAOA,EAAMsY,EAAMn5B,MAAM,EAAGT,IACjEshB,GAAOA,EAAIxc,KAAK80B,EAAM55B,IAEjC,OAAQshB,EAAcA,EAAIxgB,OAASwgB,EAAM,KAA3BsY,CAChB,CAGA,SAAS0uB,GAAY91B,EAAKyI,GACxB,IAAIxQ,EAAQwQ,EAAO,SAAWzI,EAAI/nB,IAClC,IAAKggB,EAAS,OAAO,KAErB,IADA,IAAI+P,EAAK,GACAx6B,EAAI,EAAGA,EAAIi7B,EAAO/Z,KAAKpgB,SAAUd,EACtCw6B,EAAG11B,KAAKsjD,GAAmB39B,EAAMzqB,KACrC,OAAOw6B,CACT,CAMA,SAAS+tB,GAAc/1B,EAAKyI,GAC1B,IAAIvsB,EAAM45C,GAAY91B,EAAKyI,GACvButB,EAAYxtB,GAAuBxI,EAAKyI,GAC5C,IAAKvsB,EAAO,OAAO85C,EACnB,IAAKA,EAAa,OAAO95C,EAEzB,IAAK,IAAI1O,EAAI,EAAGA,EAAI0O,EAAI5N,SAAUd,EAAG,CACnC,IAAIyoD,EAAS/5C,EAAI1O,GAAI0oD,EAAaF,EAAUxoD,GAC5C,GAAIyoD,GAAUC,EACZ9uB,EAAO,IAAK,IAAIhuB,EAAI,EAAGA,EAAI88C,EAAW5nD,SAAU8K,EAAG,CAEjD,IADA,IAAIiuB,EAAO6uB,EAAW98C,GACb05B,EAAI,EAAGA,EAAImjB,EAAO3nD,SAAUwkC,EACjC,GAAImjB,EAAOnjB,GAAG5L,QAAUG,EAAKH,OAAU,SAASE,EACpD6uB,EAAO3jD,KAAK+0B,EACd,MACS6uB,IACTh6C,EAAI1O,GAAK0oD,EAEb,CACA,OAAOh6C,CACT,CAIA,SAASi6C,GAAiB9+C,EAAQ++C,EAAUC,GAE1C,IADA,IAAI1wB,EAAO,GACFn4B,EAAI,EAAGA,EAAI6J,EAAO/I,SAAUd,EAAG,CACtC,IAAI8S,EAAQjJ,EAAO7J,GACnB,GAAI8S,EAAMm/B,OACR9Z,EAAKrzB,KAAK+jD,EAAiBhF,GAAUrjD,UAAUyjD,SAASljD,KAAK+R,GAASA,OADxE,CAIA,IAAI9E,EAAU8E,EAAM9E,QAAS86C,EAAa,GAC1C3wB,EAAKrzB,KAAK,CAACkJ,QAAS86C,IACpB,IAAK,IAAIl9C,EAAI,EAAGA,EAAIoC,EAAQlN,SAAU8K,EAAG,CACvC,IAAIqvB,EAASjtB,EAAQpC,GAAI+F,OAAI,EAE7B,GADAm3C,EAAWhkD,KAAK,CAAC8a,KAAMqb,EAAOrb,KAAMC,GAAIob,EAAOpb,GAAIqB,KAAM+Z,EAAO/Z,OAC5D0nC,EAAY,IAAK,IAAIhiC,KAAQqU,GAActpB,EAAIiV,EAAKpS,MAAM,mBACxDxP,EAAQ4jD,EAAU3kC,OAAOtS,EAAE,MAAQ,IACrCgX,EAAImgC,GAAYliC,GAAQqU,EAAOrU,UACxBqU,EAAOrU,GAGpB,CAZA,CAaF,CACA,OAAOuR,CACT,CAUA,SAAS4wB,GAAYzkC,EAAOxN,EAAM22B,EAAO3mC,GACvC,GAAIA,EAAQ,CACV,IAAIuoC,EAAS/qB,EAAM+qB,OACnB,GAAI5B,EAAO,CACT,IAAIub,EAAYn1B,GAAI/c,EAAMu4B,GAAU,EAChC2Z,GAAcn1B,GAAI4Z,EAAO4B,GAAU,GACrCA,EAASv4B,EACTA,EAAO22B,GACEub,GAAcn1B,GAAI/c,EAAM22B,GAAS,IAC1C32B,EAAO22B,EAEX,CACA,OAAO,IAAIyW,GAAM7U,EAAQv4B,EAC3B,CACE,OAAO,IAAIotC,GAAMzW,GAAS32B,EAAMA,EAEpC,CAGA,SAASmyC,GAAgBz2B,EAAK1b,EAAM22B,EAAOzqC,EAAS8D,GACpC,MAAVA,IAAkBA,EAAS0rB,EAAI1S,KAAO0S,EAAI1S,GAAG/C,QAAQ/Y,OAASwuB,EAAI1rB,SACtEsb,GAAaoQ,EAAK,IAAIqxB,GAAU,CAACkF,GAAYv2B,EAAIwf,IAAIN,UAAW56B,EAAM22B,EAAO3mC,IAAU,GAAI9D,EAC7F,CAIA,SAASkmD,GAAiB12B,EAAK22B,EAAOnmD,GAGpC,IAFA,IAAIse,EAAM,GACNxa,EAAS0rB,EAAI1S,KAAO0S,EAAI1S,GAAG/C,QAAQ/Y,OAASwuB,EAAI1rB,QAC3C9G,EAAI,EAAGA,EAAIwyB,EAAIwf,IAAIC,OAAOnxC,OAAQd,IACvCshB,EAAIthB,GAAK+oD,GAAYv2B,EAAIwf,IAAIC,OAAOjyC,GAAImpD,EAAMnpD,GAAI,KAAM8G,GAE5Dsb,GAAaoQ,EADA4xB,GAAmB5xB,EAAI1S,GAAIwB,EAAKkR,EAAIwf,IAAIE,WAC3BlvC,EAC5B,CAGA,SAASomD,GAAoB52B,EAAKxyB,EAAGskB,EAAOthB,GAC1C,IAAIivC,EAASzf,EAAIwf,IAAIC,OAAOxxC,MAAM,GAClCwxC,EAAOjyC,GAAKskB,EACZlC,GAAaoQ,EAAK4xB,GAAmB5xB,EAAI1S,GAAImyB,EAAQzf,EAAIwf,IAAIE,WAAYlvC,EAC3E,CAGA,SAASqmD,GAAmB72B,EAAK6c,EAAQv4B,EAAM9T,GAC7Cof,GAAaoQ,EAAKiyB,GAAgBpV,EAAQv4B,GAAO9T,EACnD,CAIA,SAASsmD,GAAsB92B,EAAKwf,EAAKhvC,GACvC,IAAI7B,EAAM,CACR8wC,OAAQD,EAAIC,OACZ+H,OAAQ,SAAS/H,GACf9xC,KAAK8xC,OAAS,GACd,IAAK,IAAIjyC,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAC/BG,KAAK8xC,OAAOjyC,GAAK,IAAIkkD,GAAM9vB,GAAQ5B,EAAKyf,EAAOjyC,GAAGqvC,QACzBjb,GAAQ5B,EAAKyf,EAAOjyC,GAAG8W,MACtD,EACAqR,OAAQnlB,GAAWA,EAAQmlB,QAI7B,OAFAoF,GAAOiF,EAAK,wBAAyBA,EAAKrxB,GACtCqxB,EAAI1S,IAAMyN,GAAOiF,EAAI1S,GAAI,wBAAyB0S,EAAI1S,GAAI3e,GAC1DA,EAAI8wC,QAAUD,EAAIC,OAAiBmS,GAAmB5xB,EAAI1S,GAAI3e,EAAI8wC,OAAQ9wC,EAAI8wC,OAAOnxC,OAAS,GACpFkxC,CAChB,CAEA,SAASuX,GAA2B/2B,EAAKwf,EAAKhvC,GAC5C,IAAIuQ,EAAOif,EAAIrY,QAAQ5G,KAAM4D,EAAOwR,EAAIpV,GACpC4D,GAAQA,EAAK86B,QACf1+B,EAAKA,EAAKzS,OAAS,GAAKkxC,EACxBwX,GAAmBh3B,EAAKwf,EAAKhvC,IAE7Bof,GAAaoQ,EAAKwf,EAAKhvC,EAE3B,CAGA,SAASof,GAAaoQ,EAAKwf,EAAKhvC,GAC9BwmD,GAAmBh3B,EAAKwf,EAAKhvC,GAC7BilD,GAAsBz1B,EAAKA,EAAIwf,IAAKxf,EAAI1S,GAAK0S,EAAI1S,GAAGkO,MAAMvjB,GAAKg/C,IAAKzmD,EACtE,CAEA,SAASwmD,GAAmBh3B,EAAKwf,EAAKhvC,IAChCkrB,GAAWsE,EAAK,0BAA4BA,EAAI1S,IAAMoO,GAAWsE,EAAI1S,GAAI,4BACzEkyB,EAAMsX,GAAsB92B,EAAKwf,EAAKhvC,IAE1C,IAAIsmC,EAAOtmC,GAAWA,EAAQsmC,OAC3BzV,GAAIme,EAAIN,UAAU56B,KAAM0b,EAAIwf,IAAIN,UAAU56B,MAAQ,GAAK,EAAI,GAC9D4yC,GAAkBl3B,EAAKm3B,GAAsBn3B,EAAKwf,EAAK1I,GAAM,IAEvDtmC,IAA8B,IAAnBA,EAAQilB,SAAqBuK,EAAI1S,IAAsC,YAAhC0S,EAAI1S,GAAGuB,UAAU,aACrE82B,GAAoB3lB,EAAI1S,GAC9B,CAEA,SAAS4pC,GAAkBl3B,EAAKwf,GAC1BA,EAAI8R,OAAOtxB,EAAIwf,OAEnBxf,EAAIwf,IAAMA,EAENxf,EAAI1S,KACN0S,EAAI1S,GAAGkO,MAAMguB,YAAc,EAC3BxpB,EAAI1S,GAAGkO,MAAMmuB,kBAAmB,EAChCruB,GAAqB0E,EAAI1S,KAE3BwjB,GAAY9Q,EAAK,iBAAkBA,GACrC,CAIA,SAASo3B,GAAiBp3B,GACxBk3B,GAAkBl3B,EAAKm3B,GAAsBn3B,EAAKA,EAAIwf,IAAK,MAAM,GACnE,CAIA,SAAS2X,GAAsBn3B,EAAKwf,EAAK1I,EAAMugB,GAE7C,IADA,IAAIvoC,EACKthB,EAAI,EAAGA,EAAIgyC,EAAIC,OAAOnxC,OAAQd,IAAK,CAC1C,IAAIskB,EAAQ0tB,EAAIC,OAAOjyC,GACnB0O,EAAMsjC,EAAIC,OAAOnxC,QAAU0xB,EAAIwf,IAAIC,OAAOnxC,QAAU0xB,EAAIwf,IAAIC,OAAOjyC,GACnE8pD,EAAYC,GAAWv3B,EAAKlO,EAAM+qB,OAAQ3gC,GAAOA,EAAI2gC,OAAQ/F,EAAMugB,GACnEG,EAAU1lC,EAAMxN,MAAQwN,EAAM+qB,OAASya,EAAYC,GAAWv3B,EAAKlO,EAAMxN,KAAMpI,GAAOA,EAAIoI,KAAMwyB,EAAMugB,IACtGvoC,GAAOwoC,GAAaxlC,EAAM+qB,QAAU2a,GAAW1lC,EAAMxN,QAClDwK,IAAOA,EAAM0wB,EAAIC,OAAOxxC,MAAM,EAAGT,IACtCshB,EAAIthB,GAAK,IAAIkkD,GAAM4F,EAAWE,GAElC,CACA,OAAO1oC,EAAM8iC,GAAmB5xB,EAAI1S,GAAIwB,EAAK0wB,EAAIE,WAAaF,CAChE,CAEA,SAASiY,GAAgBz3B,EAAKxQ,EAAKkoC,EAAQlgC,EAAK6/B,GAC9C,IAAIvpC,EAAOiS,GAAQC,EAAKxQ,EAAI1B,MAC5B,GAAIA,EAAK6Z,YAAe,IAAK,IAAIn6B,EAAI,EAAGA,EAAIsgB,EAAK6Z,YAAYr5B,SAAUd,EAAG,CACxE,IAAIo9B,EAAK9c,EAAK6Z,YAAYn6B,GAAI2R,EAAIyrB,EAAG1D,OAKjCywB,EAAqB,eAAgBx4C,GAAMA,EAAEy4C,WAAaz4C,EAAE8oB,cAC5D4vB,EAAsB,gBAAiB14C,GAAMA,EAAE24C,YAAc34C,EAAEipB,eAEnE,IAAgB,MAAXwC,EAAGxd,OAAiBuqC,EAAoB/sB,EAAGxd,MAAQoC,EAAIzB,GAAK6c,EAAGxd,KAAOoC,EAAIzB,OACjE,MAAT6c,EAAGvd,KAAewqC,EAAqBjtB,EAAGvd,IAAMmC,EAAIzB,GAAK6c,EAAGvd,GAAKmC,EAAIzB,KAAM,CAC9E,GAAIspC,IACFt8B,GAAO5b,EAAG,qBACNA,EAAE02C,mBAAmB,CACvB,GAAK/nC,EAAK6Z,YACL,GAAGn6B,EAAG,QAAQ,CADM,KAE3B,CAEF,IAAK2R,EAAE44C,OAAU,SAEjB,GAAIL,EAAQ,CACV,IAAIM,EAAO74C,EAAEoC,KAAKiW,EAAM,EAAI,GAAK,GAAIxlB,OAAO,EAG5C,IAFIwlB,EAAM,EAAIqgC,EAAqBF,KAC/BK,EAAOC,GAAQj4B,EAAKg4B,GAAOxgC,EAAKwgC,GAAQA,EAAKlqC,MAAQ0B,EAAI1B,KAAOA,EAAO,OACvEkqC,GAAQA,EAAKlqC,MAAQ0B,EAAI1B,OAAS9b,EAAOqvB,GAAI22B,EAAMN,MAAalgC,EAAM,EAAIxlB,EAAO,EAAIA,EAAO,GAC5F,OAAOylD,GAAgBz3B,EAAKg4B,EAAMxoC,EAAKgI,EAAK6/B,EAClD,CAEA,IAAIa,EAAM/4C,EAAEoC,KAAKiW,EAAM,GAAK,EAAI,GAGhC,OAFIA,EAAM,EAAImgC,EAAoBE,KAC9BK,EAAMD,GAAQj4B,EAAKk4B,EAAK1gC,EAAK0gC,EAAIpqC,MAAQ0B,EAAI1B,KAAOA,EAAO,OACxDoqC,EAAMT,GAAgBz3B,EAAKk4B,EAAK1oC,EAAKgI,EAAK6/B,GAAY,IAC/D,CACF,CACA,OAAO7nC,CACT,CAGA,SAAS+nC,GAAWv3B,EAAKxQ,EAAKkoC,EAAQ5gB,EAAMugB,GAC1C,IAAI7/B,EAAMsf,GAAQ,EACd7e,EAAQw/B,GAAgBz3B,EAAKxQ,EAAKkoC,EAAQlgC,EAAK6/B,KAC7CA,GAAYI,GAAgBz3B,EAAKxQ,EAAKkoC,EAAQlgC,GAAK,IACrDigC,GAAgBz3B,EAAKxQ,EAAKkoC,GAASlgC,EAAK6/B,KACtCA,GAAYI,GAAgBz3B,EAAKxQ,EAAKkoC,GAASlgC,GAAK,GAC1D,OAAKS,IACH+H,EAAIm4B,UAAW,EACR/2B,GAAIpB,EAAIxgB,MAAO,GAG1B,CAEA,SAASy4C,GAAQj4B,EAAKxQ,EAAKgI,EAAK1J,GAC9B,OAAI0J,EAAM,GAAe,GAAVhI,EAAIzB,GACbyB,EAAI1B,KAAOkS,EAAIxgB,MAAgBoiB,GAAQ5B,EAAKoB,GAAI5R,EAAI1B,KAAO,IACjD,KACL0J,EAAM,GAAKhI,EAAIzB,KAAOD,GAAQiS,GAAQC,EAAKxQ,EAAI1B,OAAOY,KAAKpgB,OAChEkhB,EAAI1B,KAAOkS,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAAY+c,GAAI5R,EAAI1B,KAAO,EAAG,GACtD,KAEP,IAAIsT,GAAI5R,EAAI1B,KAAM0B,EAAIzB,GAAKyJ,EAEtC,CAEA,SAAS4gC,GAAU9qC,GACjBA,EAAGsC,aAAawR,GAAI9T,EAAG4lC,YAAa,GAAI9xB,GAAI9T,EAAGme,YAAajW,EAC9D,CAKA,SAAS6iC,GAAar4B,EAAKyI,EAAQ+e,GACjC,IAAI74C,EAAM,CACR2pD,UAAU,EACVlrC,KAAMqb,EAAOrb,KACbC,GAAIob,EAAOpb,GACXqB,KAAM+Z,EAAO/Z,KACbiH,OAAQ8S,EAAO9S,OACf4iC,OAAQ,WAAc,OAAO5pD,EAAI2pD,UAAW,CAAM,GAWpD,OATI9Q,IAAU74C,EAAI64C,OAAS,SAAUp6B,EAAMC,EAAIqB,EAAMiH,GAC/CvI,IAAQze,EAAIye,KAAOwU,GAAQ5B,EAAK5S,IAChCC,IAAM1e,EAAI0e,GAAKuU,GAAQ5B,EAAK3S,IAC5BqB,IAAQ/f,EAAI+f,KAAOA,QACR1b,IAAX2iB,IAAwBhnB,EAAIgnB,OAASA,EAC3C,GACAoF,GAAOiF,EAAK,eAAgBA,EAAKrxB,GAC7BqxB,EAAI1S,IAAMyN,GAAOiF,EAAI1S,GAAI,eAAgB0S,EAAI1S,GAAI3e,GAEjDA,EAAI2pD,UACFt4B,EAAI1S,KAAM0S,EAAI1S,GAAGkO,MAAMguB,YAAc,GAClC,MAEF,CAACp8B,KAAMze,EAAIye,KAAMC,GAAI1e,EAAI0e,GAAIqB,KAAM/f,EAAI+f,KAAMiH,OAAQhnB,EAAIgnB,OAClE,CAIA,SAAS6iC,GAAWx4B,EAAKyI,EAAQgwB,GAC/B,GAAIz4B,EAAI1S,GAAI,CACV,IAAK0S,EAAI1S,GAAGkO,MAAS,OAAO5N,GAAUoS,EAAI1S,GAAIkrC,GAAlB5qC,CAA8BoS,EAAKyI,EAAQgwB,GACvE,GAAIz4B,EAAI1S,GAAGV,MAAM8rC,cAAiB,MACpC,CAEA,KAAIh9B,GAAWsE,EAAK,iBAAmBA,EAAI1S,IAAMoO,GAAWsE,EAAI1S,GAAI,mBAClEmb,EAAS4vB,GAAar4B,EAAKyI,GAAQ,IADrC,CAOA,IAAI7wB,EAAQivB,KAAqB4xB,GAAkBpvB,GAAqBrJ,EAAKyI,EAAOrb,KAAMqb,EAAOpb,IACjG,GAAIzV,EACF,IAAK,IAAIpK,EAAIoK,EAAMtJ,OAAS,EAAGd,GAAK,IAAKA,EACrCmrD,GAAgB34B,EAAK,CAAC5S,KAAMxV,EAAMpK,GAAG4f,KAAMC,GAAIzV,EAAMpK,GAAG6f,GAAIqB,KAAMlhB,EAAI,CAAC,IAAMi7B,EAAO/Z,KAAMiH,OAAQ8S,EAAO9S,cAE7GgjC,GAAgB34B,EAAKyI,EATvB,CAWF,CAEA,SAASkwB,GAAgB34B,EAAKyI,GAC5B,GAA0B,GAAtBA,EAAO/Z,KAAKpgB,QAAiC,IAAlBm6B,EAAO/Z,KAAK,IAA2C,GAA/B2S,GAAIoH,EAAOrb,KAAMqb,EAAOpb,IAA/E,CACA,IAAI+nC,EAAWhD,GAAsBpyB,EAAKyI,GAC1C0sB,GAAmBn1B,EAAKyI,EAAQ2sB,EAAUp1B,EAAI1S,GAAK0S,EAAI1S,GAAGkO,MAAMvjB,GAAKg/C,KAErE2B,GAAoB54B,EAAKyI,EAAQ2sB,EAAU5sB,GAAuBxI,EAAKyI,IACvE,IAAIowB,EAAU,GAEdrF,GAAWxzB,GAAK,SAAUA,EAAK4zB,GACxBA,IAAgD,GAAlCphD,EAAQqmD,EAAS74B,EAAIrY,WACtCmxC,GAAW94B,EAAIrY,QAAS8gB,GACxBowB,EAAQvmD,KAAK0tB,EAAIrY,UAEnBixC,GAAoB54B,EAAKyI,EAAQ,KAAMD,GAAuBxI,EAAKyI,GACrE,GAbkG,CAcpG,CAGA,SAASswB,GAAsB/4B,EAAK7vB,EAAM6oD,GACxC,IAAIC,EAAWj5B,EAAI1S,IAAM0S,EAAI1S,GAAGV,MAAM8rC,cACtC,IAAIO,GAAaD,EAAjB,CAQA,IANA,IAAwB14C,EAApB40C,EAAOl1B,EAAIrY,QAAgBytC,EAAWp1B,EAAIwf,IAC1CtoB,EAAiB,QAAR/mB,EAAiB+kD,EAAKn0C,KAAOm0C,EAAKf,OAAQwB,EAAe,QAARxlD,EAAiB+kD,EAAKf,OAASe,EAAKn0C,KAI9FvT,EAAI,EACDA,EAAI0pB,EAAO5oB,SAChBgS,EAAQ4W,EAAO1pB,GACXwrD,GAAqB14C,EAAMm/B,QAAWn/B,EAAMgxC,OAAOtxB,EAAIwf,KAAQl/B,EAAMm/B,QAFjDjyC,KAK1B,GAAIA,GAAK0pB,EAAO5oB,OAAhB,CAGA,IAFA4mD,EAAKT,WAAaS,EAAKR,cAAgB,OAE9B,CAEP,KADAp0C,EAAQ4W,EAAO3lB,OACLkuC,OAOH,IAAIwZ,EAET,YADA/hC,EAAO5kB,KAAKgO,GAEL,KAAM,CARb,GADAi1C,GAAuBj1C,EAAOq1C,GAC1BqD,IAAuB14C,EAAMgxC,OAAOtxB,EAAIwf,KAE1C,YADA5vB,GAAaoQ,EAAK1f,EAAO,CAACo1C,WAAW,IAGvCN,EAAW90C,CAKf,CAIA,IAAI44C,EAAc,GAClB3D,GAAuBH,EAAUO,GACjCA,EAAKrjD,KAAK,CAACkJ,QAAS09C,EAAavE,WAAYO,EAAKP,aAClDO,EAAKP,WAAar0C,EAAMq0C,cAAgBO,EAAKN,cA6B7C,IA3BA,IAAIhxC,EAAS8X,GAAWsE,EAAK,iBAAmBA,EAAI1S,IAAMoO,GAAWsE,EAAI1S,GAAI,gBAEzEuW,EAAO,SAAWr2B,GACpB,IAAIi7B,EAASnoB,EAAM9E,QAAQhO,GAE3B,GADAi7B,EAAO9S,OAASxlB,EACZyT,IAAWy0C,GAAar4B,EAAKyI,GAAQ,GAEvC,OADAvR,EAAO5oB,OAAS,EACT,CAAC,EAGV4qD,EAAY5mD,KAAKuiD,GAAwB70B,EAAKyI,IAE9C,IAAIl4B,EAAQ/C,EAAI4kD,GAAsBpyB,EAAKyI,GAAUtS,EAAIe,GACzD0hC,GAAoB54B,EAAKyI,EAAQl4B,EAAOwlD,GAAc/1B,EAAKyI,KACtDj7B,GAAKwyB,EAAI1S,IAAM0S,EAAI1S,GAAG82B,eAAe,CAACh3B,KAAMqb,EAAOrb,KAAMC,GAAI6kC,GAAUzpB,KAC5E,IAAIowB,EAAU,GAGdrF,GAAWxzB,GAAK,SAAUA,EAAK4zB,GACxBA,IAAgD,GAAlCphD,EAAQqmD,EAAS74B,EAAIrY,WACtCmxC,GAAW94B,EAAIrY,QAAS8gB,GACxBowB,EAAQvmD,KAAK0tB,EAAIrY,UAEnBixC,GAAoB54B,EAAKyI,EAAQ,KAAMstB,GAAc/1B,EAAKyI,GAC5D,GACF,EAESnP,EAAMhZ,EAAM9E,QAAQlN,OAAS,EAAGgrB,GAAO,IAAKA,EAAK,CACxD,IAAI6/B,EAAWt1B,EAAMvK,GAErB,GAAK6/B,EAAW,OAAOA,EAASC,CAClC,CAxDiC,CAba,CAsEhD,CAIA,SAASC,GAASr5B,EAAKs5B,GACrB,GAAgB,GAAZA,IACJt5B,EAAIxgB,OAAS85C,EACbt5B,EAAIwf,IAAM,IAAI6R,GAAU5+C,EAAIutB,EAAIwf,IAAIC,QAAQ,SAAU3tB,GAAS,OAAO,IAAI4/B,GACxEtwB,GAAItP,EAAM+qB,OAAO/uB,KAAOwrC,EAAUxnC,EAAM+qB,OAAO9uB,IAC/CqT,GAAItP,EAAMxN,KAAKwJ,KAAOwrC,EAAUxnC,EAAMxN,KAAKyJ,IAC1C,IAAIiS,EAAIwf,IAAIE,WACX1f,EAAI1S,IAAI,CACVywB,GAAU/d,EAAI1S,GAAI0S,EAAIxgB,MAAOwgB,EAAIxgB,MAAQ85C,EAAUA,GACnD,IAAK,IAAIptB,EAAIlM,EAAI1S,GAAG/C,QAAS3a,EAAIs8B,EAAE7G,SAAUz1B,EAAIs8B,EAAE5G,OAAQ11B,IACvD6uC,GAAcze,EAAI1S,GAAI1d,EAAG,SAC/B,CACF,CAIA,SAASgpD,GAAoB54B,EAAKyI,EAAQ2sB,EAAUhuB,GAClD,GAAIpH,EAAI1S,KAAO0S,EAAI1S,GAAGkO,MAClB,OAAO5N,GAAUoS,EAAI1S,GAAIsrC,GAAlBhrC,CAAuCoS,EAAKyI,EAAQ2sB,EAAUhuB,GAEzE,GAAIqB,EAAOpb,GAAGS,KAAOkS,EAAIxgB,MACvB65C,GAASr5B,EAAKyI,EAAO/Z,KAAKpgB,OAAS,GAAKm6B,EAAOpb,GAAGS,KAAO2a,EAAOrb,KAAKU,YAGvE,KAAI2a,EAAOrb,KAAKU,KAAOkS,EAAIyL,YAA3B,CAGA,GAAIhD,EAAOrb,KAAKU,KAAOkS,EAAIxgB,MAAO,CAChC,IAAIhO,EAAQi3B,EAAO/Z,KAAKpgB,OAAS,GAAK0xB,EAAIxgB,MAAQipB,EAAOrb,KAAKU,MAC9DurC,GAASr5B,EAAKxuB,GACdi3B,EAAS,CAACrb,KAAMgU,GAAIpB,EAAIxgB,MAAO,GAAI6N,GAAI+T,GAAIqH,EAAOpb,GAAGS,KAAOtc,EAAOi3B,EAAOpb,GAAGU,IACnEW,KAAM,CAACyH,EAAIsS,EAAO/Z,OAAQiH,OAAQ8S,EAAO9S,OACrD,CACA,IAAIhR,EAAOqb,EAAIyL,WACXhD,EAAOpb,GAAGS,KAAOnJ,IACnB8jB,EAAS,CAACrb,KAAMqb,EAAOrb,KAAMC,GAAI+T,GAAIzc,EAAMob,GAAQC,EAAKrb,GAAM+J,KAAKpgB,QACzDogB,KAAM,CAAC+Z,EAAO/Z,KAAK,IAAKiH,OAAQ8S,EAAO9S,SAGnD8S,EAAOxqB,QAAUoiB,GAAWL,EAAKyI,EAAOrb,KAAMqb,EAAOpb,IAEhD+nC,IAAYA,EAAWhD,GAAsBpyB,EAAKyI,IACnDzI,EAAI1S,GAAMisC,GAA4Bv5B,EAAI1S,GAAImb,EAAQrB,GACnD2rB,GAAU/yB,EAAKyI,EAAQrB,GAC9B4vB,GAAmBh3B,EAAKo1B,EAAU5/B,GAE9BwK,EAAIm4B,UAAYZ,GAAWv3B,EAAKoB,GAAIpB,EAAIkzB,YAAa,MACrDlzB,EAAIm4B,UAAW,EAvB6B,CAwBlD,CAIA,SAASoB,GAA4BjsC,EAAImb,EAAQrB,GAC/C,IAAIpH,EAAM1S,EAAG0S,IAAKzV,EAAU+C,EAAG/C,QAAS6C,EAAOqb,EAAOrb,KAAMC,EAAKob,EAAOpb,GAEpEmsC,GAAqB,EAAOC,EAAkBrsC,EAAKU,KAClDR,EAAG9c,QAAQ2lC,eACdsjB,EAAkB/4B,GAAOwK,GAAWnL,GAAQC,EAAK5S,EAAKU,QACtDkS,EAAIM,KAAKm5B,EAAiBpsC,EAAGS,KAAO,GAAG,SAAUA,GAC/C,GAAIA,GAAQvD,EAAQ4hB,QAElB,OADAqtB,GAAqB,GACd,CAEX,KAGEx5B,EAAIwf,IAAIntC,SAASo2B,EAAOrb,KAAMqb,EAAOpb,KAAO,GAC5CiO,GAAqBhO,GAEzBylC,GAAU/yB,EAAKyI,EAAQrB,EAAOmF,GAAejf,IAExCA,EAAG9c,QAAQ2lC,eACdnW,EAAIM,KAAKm5B,EAAiBrsC,EAAKU,KAAO2a,EAAO/Z,KAAKpgB,QAAQ,SAAUwf,GAClE,IAAIsL,EAAM2S,GAAWje,GACjBsL,EAAM7O,EAAQ6hB,gBAChB7hB,EAAQ4hB,QAAUre,EAClBvD,EAAQ6hB,cAAgBhT,EACxB7O,EAAQ8hB,gBAAiB,EACzBmtB,GAAqB,EAEzB,IACIA,IAAsBlsC,EAAGkO,MAAMouB,eAAgB,IAGrDhjB,GAAgB5G,EAAK5S,EAAKU,MAC1Bs4B,GAAY94B,EAAI,KAEhB,IAAI0wB,EAAUvV,EAAO/Z,KAAKpgB,QAAU+e,EAAGS,KAAOV,EAAKU,MAAQ,EAEvD2a,EAAOC,KACPqV,GAAUzwB,GACLF,EAAKU,MAAQT,EAAGS,MAA8B,GAAtB2a,EAAO/Z,KAAKpgB,QAAgBukD,GAAkBvlC,EAAG0S,IAAKyI,GAGnFsV,GAAUzwB,EAAIF,EAAKU,KAAMT,EAAGS,KAAO,EAAGkwB,GAFtCS,GAAcnxB,EAAIF,EAAKU,KAAM,QAIjC,IAAI4rC,EAAiBh+B,GAAWpO,EAAI,WAAYqsC,EAAgBj+B,GAAWpO,EAAI,UAC/E,GAAIqsC,GAAiBD,EAAgB,CACnC,IAAI/qD,EAAM,CACRye,KAAMA,EAAMC,GAAIA,EAChBqB,KAAM+Z,EAAO/Z,KACbzQ,QAASwqB,EAAOxqB,QAChB0X,OAAQ8S,EAAO9S,QAEbgkC,GAAiB7oB,GAAYxjB,EAAI,SAAUA,EAAI3e,GAC/C+qD,IAAmBpsC,EAAGkO,MAAMkuB,aAAep8B,EAAGkO,MAAMkuB,WAAa,KAAKp3C,KAAK3D,EACjF,CACA2e,EAAG/C,QAAQy4B,kBAAoB,IACjC,CAEA,SAASn1B,GAAamS,EAAKrH,EAAMvL,EAAMC,EAAIsI,GACzC,IAAI9J,EAECwB,IAAMA,EAAKD,GACZiU,GAAIhU,EAAID,GAAQ,IAA2BA,GAArBvB,EAAS,CAACwB,EAAID,IAAqB,GAAIC,EAAKxB,EAAO,IAC1D,iBAAR8M,IAAoBA,EAAOqH,EAAI45B,WAAWjhC,IACrD6/B,GAAWx4B,EAAK,CAAC5S,KAAMA,EAAMC,GAAIA,EAAIqB,KAAMiK,EAAMhD,OAAQA,GAC3D,CAIA,SAASkkC,GAAoBrqC,EAAKpC,EAAMC,EAAIrb,GACtCqb,EAAKmC,EAAI1B,KACX0B,EAAI1B,MAAQ9b,EACHob,EAAOoC,EAAI1B,OACpB0B,EAAI1B,KAAOV,EACXoC,EAAIzB,GAAK,EAEb,CASA,SAAS+rC,GAAgBl8C,EAAOwP,EAAMC,EAAIrb,GACxC,IAAK,IAAIxE,EAAI,EAAGA,EAAIoQ,EAAMtP,SAAUd,EAAG,CACrC,IAAIusD,EAAMn8C,EAAMpQ,GAAIwsD,GAAK,EACzB,GAAID,EAAIta,OAAR,CACOsa,EAAIE,UAAUF,EAAMn8C,EAAMpQ,GAAKusD,EAAItI,YAAgBwI,QAAS,GACjE,IAAK,IAAI7gD,EAAI,EAAGA,EAAI2gD,EAAIta,OAAOnxC,OAAQ8K,IACrCygD,GAAoBE,EAAIta,OAAOrmC,GAAGyjC,OAAQzvB,EAAMC,EAAIrb,GACpD6nD,GAAoBE,EAAIta,OAAOrmC,GAAGkL,KAAM8I,EAAMC,EAAIrb,EAGtD,KAPA,CAQA,IAAK,IAAIooB,EAAM,EAAGA,EAAM2/B,EAAIv+C,QAAQlN,SAAU8rB,EAAK,CACjD,IAAI7K,EAAMwqC,EAAIv+C,QAAQ4e,GACtB,GAAI/M,EAAKkC,EAAInC,KAAKU,KAChByB,EAAInC,KAAOgU,GAAI7R,EAAInC,KAAKU,KAAO9b,EAAMud,EAAInC,KAAKW,IAC9CwB,EAAIlC,GAAK+T,GAAI7R,EAAIlC,GAAGS,KAAO9b,EAAMud,EAAIlC,GAAGU,SACnC,GAAIX,GAAQmC,EAAIlC,GAAGS,KAAM,CAC9BksC,GAAK,EACL,KACF,CACF,CACKA,IACHp8C,EAAMrL,OAAO,EAAG/E,EAAI,GACpBA,EAAI,EAbN,CAeF,CACF,CAEA,SAASsrD,GAAW5D,EAAMzsB,GACxB,IAAIrb,EAAOqb,EAAOrb,KAAKU,KAAMT,EAAKob,EAAOpb,GAAGS,KAAM9b,EAAOy2B,EAAO/Z,KAAKpgB,QAAU+e,EAAKD,GAAQ,EAC5F0sC,GAAgB5E,EAAKn0C,KAAMqM,EAAMC,EAAIrb,GACrC8nD,GAAgB5E,EAAKf,OAAQ/mC,EAAMC,EAAIrb,EACzC,CAKA,SAASkoD,GAAWl6B,EAAKm6B,EAAQC,EAAY5yB,GAC3C,IAAI7G,EAAKw5B,EAAQrsC,EAAOqsC,EAGxB,MAFqB,iBAAVA,EAAsBrsC,EAAOiS,GAAQC,EAAK2B,GAAS3B,EAAKm6B,IAC5Dx5B,EAAKD,GAAOy5B,GACT,MAANx5B,EAAqB,MACrB6G,EAAG1Z,EAAM6S,IAAOX,EAAI1S,IAAMmxB,GAAcze,EAAI1S,GAAIqT,EAAIy5B,GACjDtsC,EACT,CAeA,SAASusC,GAAUtrC,GACjBphB,KAAKohB,MAAQA,EACbphB,KAAKue,OAAS,KAEd,IADA,IAAIuU,EAAS,EACJjzB,EAAI,EAAGA,EAAIuhB,EAAMzgB,SAAUd,EAClCuhB,EAAMvhB,GAAG0e,OAASve,KAClB8yB,GAAU1R,EAAMvhB,GAAGizB,OAErB9yB,KAAK8yB,OAASA,CAChB,CAoCA,SAAS65B,GAAYp6B,GACnBvyB,KAAKuyB,SAAWA,EAEhB,IADA,IAAI7b,EAAO,EAAGoc,EAAS,EACdjzB,EAAI,EAAGA,EAAI0yB,EAAS5xB,SAAUd,EAAG,CACxC,IAAIugB,EAAKmS,EAAS1yB,GAClB6W,GAAQ0J,EAAGqS,YAAaK,GAAU1S,EAAG0S,OACrC1S,EAAG7B,OAASve,IACd,CACAA,KAAK0W,KAAOA,EACZ1W,KAAK8yB,OAASA,EACd9yB,KAAKue,OAAS,IAChB,CAtgCAwlC,GAAM1jD,UAAUof,KAAO,WAAc,OAAOsU,GAAO/zB,KAAKkvC,OAAQlvC,KAAK2W,KAAM,EAC3EotC,GAAM1jD,UAAUqf,GAAK,WAAc,OAAOoU,GAAO9zB,KAAKkvC,OAAQlvC,KAAK2W,KAAM,EACzEotC,GAAM1jD,UAAU2xC,MAAQ,WAAc,OAAOhyC,KAAK2W,KAAKwJ,MAAQngB,KAAKkvC,OAAO/uB,MAAQngB,KAAK2W,KAAKyJ,IAAMpgB,KAAKkvC,OAAO9uB,EAAG,EAu9BlHssC,GAAUrsD,UAAY,CACpBoyB,UAAW,WAAa,OAAOzyB,KAAKohB,MAAMzgB,MAAO,EAGjDisD,YAAa,SAASnpD,EAAIqjB,GACxB,IAAK,IAAIjnB,EAAI4D,EAAIyH,EAAIzH,EAAKqjB,EAAGjnB,EAAIqL,IAAKrL,EAAG,CACvC,IAAIsgB,EAAOngB,KAAKohB,MAAMvhB,GACtBG,KAAK8yB,QAAU3S,EAAK2S,OACpBiM,GAAY5e,GACZgjB,GAAYhjB,EAAM,SACpB,CACAngB,KAAKohB,MAAMxc,OAAOnB,EAAIqjB,EACxB,EAGAb,SAAU,SAAS7E,GACjBA,EAAMzc,KAAKpE,MAAM6gB,EAAOphB,KAAKohB,MAC/B,EAIAyrC,YAAa,SAASppD,EAAI2d,EAAO0R,GAC/B9yB,KAAK8yB,QAAUA,EACf9yB,KAAKohB,MAAQphB,KAAKohB,MAAM9gB,MAAM,EAAGmD,GAAIsB,OAAOqc,GAAOrc,OAAO/E,KAAKohB,MAAM9gB,MAAMmD,IAC3E,IAAK,IAAI5D,EAAI,EAAGA,EAAIuhB,EAAMzgB,SAAUd,EAAKuhB,EAAMvhB,GAAG0e,OAASve,IAC7D,EAGA8sD,MAAO,SAASrpD,EAAIqjB,EAAG+S,GACrB,IAAK,IAAI3uB,EAAIzH,EAAKqjB,EAAGrjB,EAAKyH,IAAKzH,EAC3B,GAAIo2B,EAAG75B,KAAKohB,MAAM3d,IAAQ,OAAO,CACvC,GAgBFkpD,GAAYtsD,UAAY,CACtBoyB,UAAW,WAAa,OAAOzyB,KAAK0W,IAAK,EAEzCk2C,YAAa,SAASnpD,EAAIqjB,GACxB9mB,KAAK0W,MAAQoQ,EACb,IAAK,IAAIjnB,EAAI,EAAGA,EAAIG,KAAKuyB,SAAS5xB,SAAUd,EAAG,CAC7C,IAAIye,EAAQte,KAAKuyB,SAAS1yB,GAAI2yB,EAAKlU,EAAMmU,YACzC,GAAIhvB,EAAK+uB,EAAI,CACX,IAAIkuB,EAAKx0C,KAAKiE,IAAI2W,EAAG0L,EAAK/uB,GAAKkyC,EAAYr3B,EAAMwU,OAIjD,GAHAxU,EAAMsuC,YAAYnpD,EAAIi9C,GACtB1gD,KAAK8yB,QAAU6iB,EAAYr3B,EAAMwU,OAC7BN,GAAMkuB,IAAM1gD,KAAKuyB,SAAS3tB,OAAO/E,IAAK,GAAIye,EAAMC,OAAS,MAC5C,IAAZuI,GAAK45B,GAAY,MACtBj9C,EAAK,CACP,MAASA,GAAM+uB,CACjB,CAGA,GAAIxyB,KAAK0W,KAAOoQ,EAAI,KACf9mB,KAAKuyB,SAAS5xB,OAAS,KAAOX,KAAKuyB,SAAS,aAAcm6B,KAAa,CAC1E,IAAItrC,EAAQ,GACZphB,KAAKimB,SAAS7E,GACdphB,KAAKuyB,SAAW,CAAC,IAAIm6B,GAAUtrC,IAC/BphB,KAAKuyB,SAAS,GAAGhU,OAASve,IAC5B,CACF,EAEAimB,SAAU,SAAS7E,GACjB,IAAK,IAAIvhB,EAAI,EAAGA,EAAIG,KAAKuyB,SAAS5xB,SAAUd,EAAKG,KAAKuyB,SAAS1yB,GAAGomB,SAAS7E,EAC7E,EAEAyrC,YAAa,SAASppD,EAAI2d,EAAO0R,GAC/B9yB,KAAK0W,MAAQ0K,EAAMzgB,OACnBX,KAAK8yB,QAAUA,EACf,IAAK,IAAIjzB,EAAI,EAAGA,EAAIG,KAAKuyB,SAAS5xB,SAAUd,EAAG,CAC7C,IAAIye,EAAQte,KAAKuyB,SAAS1yB,GAAI2yB,EAAKlU,EAAMmU,YACzC,GAAIhvB,GAAM+uB,EAAI,CAEZ,GADAlU,EAAMuuC,YAAYppD,EAAI2d,EAAO0R,GACzBxU,EAAM8C,OAAS9C,EAAM8C,MAAMzgB,OAAS,GAAI,CAI1C,IADA,IAAI6K,EAAY8S,EAAM8C,MAAMzgB,OAAS,GAAK,GACjCkhB,EAAMrW,EAAWqW,EAAMvD,EAAM8C,MAAMzgB,QAAS,CACnD,IAAIosD,EAAO,IAAIL,GAAUpuC,EAAM8C,MAAM9gB,MAAMuhB,EAAKA,GAAO,KACvDvD,EAAMwU,QAAUi6B,EAAKj6B,OACrB9yB,KAAKuyB,SAAS3tB,SAAS/E,EAAG,EAAGktD,GAC7BA,EAAKxuC,OAASve,IAChB,CACAse,EAAM8C,MAAQ9C,EAAM8C,MAAM9gB,MAAM,EAAGkL,GACnCxL,KAAKgtD,YACP,CACA,KACF,CACAvpD,GAAM+uB,CACR,CACF,EAGAw6B,WAAY,WACV,KAAIhtD,KAAKuyB,SAAS5xB,QAAU,IAA5B,CACA,IAAIssD,EAAKjtD,KACT,EAAG,CACD,IACIktD,EAAU,IAAIP,GADJM,EAAG16B,SAAS3tB,OAAOqoD,EAAG16B,SAAS5xB,OAAS,EAAG,IAEzD,GAAKssD,EAAG1uC,OAKF,CACJ0uC,EAAGv2C,MAAQw2C,EAAQx2C,KACnBu2C,EAAGn6B,QAAUo6B,EAAQp6B,OACrB,IAAIq6B,EAAUtoD,EAAQooD,EAAG1uC,OAAOgU,SAAU06B,GAC1CA,EAAG1uC,OAAOgU,SAAS3tB,OAAOuoD,EAAU,EAAG,EAAGD,EAC5C,KAVgB,CACd,IAAIl1B,EAAO,IAAI20B,GAAYM,EAAG16B,UAC9ByF,EAAKzZ,OAAS0uC,EACdA,EAAG16B,SAAW,CAACyF,EAAMk1B,GACrBD,EAAKj1B,CACR,CAMCk1B,EAAQ3uC,OAAS0uC,EAAG1uC,MACtB,OAAS0uC,EAAG16B,SAAS5xB,OAAS,IAC9BssD,EAAG1uC,OAAOyuC,YAlB+B,CAmB3C,EAEAF,MAAO,SAASrpD,EAAIqjB,EAAG+S,GACrB,IAAK,IAAIh6B,EAAI,EAAGA,EAAIG,KAAKuyB,SAAS5xB,SAAUd,EAAG,CAC7C,IAAIye,EAAQte,KAAKuyB,SAAS1yB,GAAI2yB,EAAKlU,EAAMmU,YACzC,GAAIhvB,EAAK+uB,EAAI,CACX,IAAI46B,EAAOlhD,KAAKiE,IAAI2W,EAAG0L,EAAK/uB,GAC5B,GAAI6a,EAAMwuC,MAAMrpD,EAAI2pD,EAAMvzB,GAAO,OAAO,EACxC,GAAmB,IAAd/S,GAAKsmC,GAAc,MACxB3pD,EAAK,CACP,MAASA,GAAM+uB,CACjB,CACF,GAKF,IAAI66B,GAAa,SAASh7B,EAAKhO,EAAMxhB,GACnC,GAAIA,EAAW,IAAK,IAAIyqD,KAAOzqD,EAAeA,EAAQ6jB,eAAe4mC,KACjEttD,KAAKstD,GAAOzqD,EAAQyqD,IACxBttD,KAAKqyB,IAAMA,EACXryB,KAAKqkB,KAAOA,CACd,EAoCA,SAASkpC,GAA6B5tC,EAAIQ,EAAM9b,GAC1C65B,GAAa/d,IAAUR,EAAGkO,OAASlO,EAAGkO,MAAMwe,WAAc1sB,EAAG0S,IAAIga,YACjEyL,GAAen4B,EAAItb,EACzB,CAEA,SAASmpD,GAAcn7B,EAAKm6B,EAAQnoC,EAAMxhB,GACxC,IAAIw+B,EAAS,IAAIgsB,GAAWh7B,EAAKhO,EAAMxhB,GACnC8c,EAAK0S,EAAI1S,GAgBb,OAfIA,GAAM0hB,EAAO6E,YAAavmB,EAAG/C,QAAQkkC,cAAe,GACxDyL,GAAWl6B,EAAKm6B,EAAQ,UAAU,SAAUrsC,GAC1C,IAAI0lB,EAAU1lB,EAAK0lB,UAAY1lB,EAAK0lB,QAAU,IAI9C,GAHuB,MAAnBxE,EAAOosB,SAAoB5nB,EAAQlhC,KAAK08B,GACrCwE,EAAQjhC,OAAOsH,KAAKiE,IAAI01B,EAAQllC,OAAQuL,KAAKC,IAAI,EAAGk1B,EAAOosB,WAAY,EAAGpsB,GACjFA,EAAOlhB,KAAOA,EACVR,IAAOoe,GAAa1L,EAAKlS,GAAO,CAClC,IAAIutC,EAAexvB,GAAa/d,GAAQkS,EAAIga,UAC5CxZ,GAAiB1S,EAAMA,EAAK2S,OAAS2T,GAAapF,IAC9CqsB,GAAgB5V,GAAen4B,EAAI0hB,EAAOvO,QAC9CnT,EAAGkO,MAAM4b,aAAc,CACzB,CACA,OAAO,CACT,IACI9pB,GAAMwjB,GAAYxjB,EAAI,kBAAmBA,EAAI0hB,EAAyB,iBAAVmrB,EAAqBA,EAASz5B,GAAOy5B,IAC9FnrB,CACT,CA1DAgsB,GAAWhtD,UAAUqI,MAAQ,WAC3B,IAAIiX,EAAK3f,KAAKqyB,IAAI1S,GAAImmB,EAAK9lC,KAAKmgB,KAAK0lB,QAAS1lB,EAAOngB,KAAKmgB,KAAM6S,EAAKD,GAAO5S,GAC5E,GAAU,MAAN6S,GAAe8S,EAAnB,CACA,IAAK,IAAIjmC,EAAI,EAAGA,EAAIimC,EAAGnlC,SAAUd,EAASimC,EAAGjmC,IAAMG,MAAQ8lC,EAAGlhC,OAAO/E,IAAK,GACrEimC,EAAGnlC,SAAUwf,EAAK0lB,QAAU,MACjC,IAAI/S,EAAS2T,GAAazmC,MAC1B6yB,GAAiB1S,EAAMjU,KAAKC,IAAI,EAAGgU,EAAK2S,OAASA,IAC7CnT,IACFi+B,GAAQj+B,GAAI,WACV4tC,GAA6B5tC,EAAIQ,GAAO2S,GACxCge,GAAcnxB,EAAIqT,EAAI,SACxB,IACAmQ,GAAYxjB,EAAI,oBAAqBA,EAAI3f,KAAMgzB,GAVjB,CAYlC,EAEAq6B,GAAWhtD,UAAU8M,QAAU,WAC3B,IAAIwgD,EAAS3tD,KAEX4tD,EAAO5tD,KAAK8yB,OAAQnT,EAAK3f,KAAKqyB,IAAI1S,GAAIQ,EAAOngB,KAAKmgB,KACtDngB,KAAK8yB,OAAS,KACd,IAAIzuB,EAAOoiC,GAAazmC,MAAQ4tD,EAC3BvpD,IACA05B,GAAa/9B,KAAKqyB,IAAKlS,IAAS0S,GAAiB1S,EAAMA,EAAK2S,OAASzuB,GACtEsb,GACFi+B,GAAQj+B,GAAI,WACVA,EAAGkO,MAAM4b,aAAc,EACvB8jB,GAA6B5tC,EAAIQ,EAAM9b,GACvC8+B,GAAYxjB,EAAI,oBAAqBA,EAAIguC,EAAQ56B,GAAO5S,GAC1D,IAEJ,EACA6N,GAAWq/B,IA2CX,IAAIQ,GAAe,EAEfC,GAAa,SAASz7B,EAAK7vB,GAC7BxC,KAAKohB,MAAQ,GACbphB,KAAKwC,KAAOA,EACZxC,KAAKqyB,IAAMA,EACXryB,KAAKsK,KAAOujD,EACd,EAiHA,SAASE,GAAS17B,EAAK5S,EAAMC,EAAI7c,EAASL,GAIxC,GAAIK,GAAWA,EAAQujD,OAAU,OAAO4H,GAAe37B,EAAK5S,EAAMC,EAAI7c,EAASL,GAE/E,GAAI6vB,EAAI1S,KAAO0S,EAAI1S,GAAGkO,MAAS,OAAO5N,GAAUoS,EAAI1S,GAAIouC,GAAlB9tC,CAA4BoS,EAAK5S,EAAMC,EAAI7c,EAASL,GAE1F,IAAI+2B,EAAS,IAAIu0B,GAAWz7B,EAAK7vB,GAAO6B,EAAOqvB,GAAIjU,EAAMC,GAGzD,GAFI7c,GAAWyjB,EAAQzjB,EAAS02B,GAAQ,GAEpCl1B,EAAO,GAAa,GAARA,IAAuC,IAA1Bk1B,EAAOkC,eAChC,OAAOlC,EAQX,GAPIA,EAAO00B,eAET10B,EAAO2D,WAAY,EACnB3D,EAAOyE,WAAalZ,EAAK,OAAQ,CAACyU,EAAO00B,cAAe,qBACnDprD,EAAQkjC,mBAAqBxM,EAAOyE,WAAWjZ,aAAa,mBAAoB,QACjFliB,EAAQ03B,aAAchB,EAAOyE,WAAWzD,YAAa,IAEvDhB,EAAO2D,UAAW,CACpB,GAAII,GAA0BjL,EAAK5S,EAAKU,KAAMV,EAAMC,EAAI6Z,IACpD9Z,EAAKU,MAAQT,EAAGS,MAAQmd,GAA0BjL,EAAK3S,EAAGS,KAAMV,EAAMC,EAAI6Z,GAC1E,MAAM,IAAIxnB,MAAM,oEACpBsnB,IACF,CAEIE,EAAO20B,cACP1G,GAAmBn1B,EAAK,CAAC5S,KAAMA,EAAMC,GAAIA,EAAIsI,OAAQ,YAAaqK,EAAIwf,IAAKyX,KAE/E,IAAsCrN,EAAlCkS,EAAU1uC,EAAKU,KAAMR,EAAK0S,EAAI1S,GA0BlC,GAzBA0S,EAAIM,KAAKw7B,EAASzuC,EAAGS,KAAO,GAAG,SAAUA,GACnCR,GAAM4Z,EAAO2D,YAAcvd,EAAG9c,QAAQ2lC,cAAgBjL,GAAWpd,IAASR,EAAG/C,QAAQ4hB,UACrFyd,GAAgB,GAChB1iB,EAAO2D,WAAaixB,GAAW1uC,EAAKU,MAAQ0S,GAAiB1S,EAAM,GACvEyZ,GAAczZ,EAAM,IAAImZ,GAAWC,EACA40B,GAAW1uC,EAAKU,KAAOV,EAAKW,GAAK,KACjC+tC,GAAWzuC,EAAGS,KAAOT,EAAGU,GAAK,MAAOiS,EAAI1S,IAAM0S,EAAI1S,GAAGkO,SACtFsgC,CACJ,IAEI50B,EAAO2D,WAAa7K,EAAIM,KAAKlT,EAAKU,KAAMT,EAAGS,KAAO,GAAG,SAAUA,GAC7D4d,GAAa1L,EAAKlS,IAAS0S,GAAiB1S,EAAM,EACxD,IAEIoZ,EAAO60B,cAAgB3mD,GAAG8xB,EAAQ,qBAAqB,WAAc,OAAOA,EAAO7wB,OAAS,IAE5F6wB,EAAOsC,WACTzC,MACI/G,EAAIrY,QAAQ5G,KAAKzS,QAAU0xB,EAAIrY,QAAQwsC,OAAO7lD,SAC9C0xB,EAAIg8B,gBAEN90B,EAAO2D,YACT3D,EAAOjvB,KAAOujD,GACdt0B,EAAO6wB,QAAS,GAEdzqC,EAAI,CAGN,GADIs8B,IAAiBt8B,EAAGkO,MAAMouB,eAAgB,GAC1C1iB,EAAO2D,UACPkT,GAAUzwB,EAAIF,EAAKU,KAAMT,EAAGS,KAAO,QAClC,GAAIoZ,EAAO3kB,WAAa2kB,EAAO6G,YAAc7G,EAAO8G,UAAY9G,EAAO+G,KACnE/G,EAAOvyB,YAAcuyB,EAAOtb,MACjC,IAAK,IAAIpe,EAAI4f,EAAKU,KAAMtgB,GAAK6f,EAAGS,KAAMtgB,IAAOixC,GAAcnxB,EAAI9f,EAAG,QAClE05B,EAAO6wB,QAAUX,GAAiB9pC,EAAG0S,KACzC8Q,GAAYxjB,EAAI,cAAeA,EAAI4Z,EACrC,CACA,OAAOA,CACT,CAlLAu0B,GAAWztD,UAAUqI,MAAQ,WAC3B,IAAI1I,KAAKkoD,kBAAT,CACA,IAAIvoC,EAAK3f,KAAKqyB,IAAI1S,GAAI2uC,EAAS3uC,IAAOA,EAAGkO,MAEzC,GADIygC,GAAU1S,GAAej8B,GACzBoO,GAAW/tB,KAAM,SAAU,CAC7B,IAAIsqB,EAAQtqB,KAAK4T,OACb0W,GAAS6Y,GAAYnjC,KAAM,QAASsqB,EAAM7K,KAAM6K,EAAM5K,GAC5D,CAEA,IADA,IAAIvP,EAAM,KAAMhE,EAAM,KACbtM,EAAI,EAAGA,EAAIG,KAAKohB,MAAMzgB,SAAUd,EAAG,CAC1C,IAAIsgB,EAAOngB,KAAKohB,MAAMvhB,GAClB65B,EAAOF,GAAiBrZ,EAAK6Z,YAAah6B,MAC1C2f,IAAO3f,KAAKk9B,UAAa4T,GAAcnxB,EAAIoT,GAAO5S,GAAO,QACpDR,IACQ,MAAX+Z,EAAKha,KAAcvT,EAAM4mB,GAAO5S,IACnB,MAAbuZ,EAAKja,OAAgBtP,EAAM4iB,GAAO5S,KAExCA,EAAK6Z,YAAcL,GAAiBxZ,EAAK6Z,YAAaN,GACrC,MAAbA,EAAKja,MAAgBzf,KAAKk9B,YAAca,GAAa/9B,KAAKqyB,IAAKlS,IAASR,GACxEkT,GAAiB1S,EAAM8uB,GAAWtvB,EAAG/C,SAC3C,CACA,GAAI+C,GAAM3f,KAAKk9B,YAAcvd,EAAG9c,QAAQ2lC,aAAgB,IAAK,IAAI7c,EAAM,EAAGA,EAAM3rB,KAAKohB,MAAMzgB,SAAUgrB,EAAK,CACxG,IAAI4iC,EAAShxB,GAAWv9B,KAAKohB,MAAMuK,IAAOF,EAAM2S,GAAWmwB,GACvD9iC,EAAM9L,EAAG/C,QAAQ6hB,gBACnB9e,EAAG/C,QAAQ4hB,QAAU+vB,EACrB5uC,EAAG/C,QAAQ6hB,cAAgBhT,EAC3B9L,EAAG/C,QAAQ8hB,gBAAiB,EAEhC,CAEW,MAAPvuB,GAAewP,GAAM3f,KAAKk9B,WAAakT,GAAUzwB,EAAIxP,EAAKhE,EAAM,GACpEnM,KAAKohB,MAAMzgB,OAAS,EACpBX,KAAKkoD,mBAAoB,EACrBloD,KAAKoqD,QAAUpqD,KAAKqyB,IAAIm4B,WAC1BxqD,KAAKqyB,IAAIm4B,UAAW,EAChB7qC,GAAM8pC,GAAiB9pC,EAAG0S,MAE5B1S,GAAMwjB,GAAYxjB,EAAI,gBAAiBA,EAAI3f,KAAMmQ,EAAKhE,GACtDmiD,GAAUnS,GAAax8B,GACvB3f,KAAKue,QAAUve,KAAKue,OAAO7V,OAtCM,CAuCvC,EAOAolD,GAAWztD,UAAUuT,KAAO,SAAUy/B,EAAMlV,GAE1C,IAAI1e,EAAMC,EADE,MAAR2zB,GAA6B,YAAbrzC,KAAKwC,OAAsB6wC,EAAO,GAEtD,IAAK,IAAIxzC,EAAI,EAAGA,EAAIG,KAAKohB,MAAMzgB,SAAUd,EAAG,CAC1C,IAAIsgB,EAAOngB,KAAKohB,MAAMvhB,GAClB65B,EAAOF,GAAiBrZ,EAAK6Z,YAAah6B,MAC9C,GAAiB,MAAb05B,EAAKja,OACPA,EAAOgU,GAAI0K,EAAUhe,EAAO4S,GAAO5S,GAAOuZ,EAAKja,OAClC,GAAT4zB,GAAc,OAAO5zB,EAE3B,GAAe,MAAXia,EAAKha,KACPA,EAAK+T,GAAI0K,EAAUhe,EAAO4S,GAAO5S,GAAOuZ,EAAKha,IACjC,GAAR2zB,GAAa,OAAO3zB,CAE5B,CACA,OAAOD,GAAQ,CAACA,KAAMA,EAAMC,GAAIA,EAClC,EAIAouC,GAAWztD,UAAU8M,QAAU,WAC3B,IAAIwgD,EAAS3tD,KAEX6hB,EAAM7hB,KAAK4T,MAAM,GAAG,GAAOytB,EAASrhC,KAAM2f,EAAK3f,KAAKqyB,IAAI1S,GACvDkC,GAAQlC,GACbi+B,GAAQj+B,GAAI,WACV,IAAIQ,EAAO0B,EAAI1B,KAAMwd,EAAQ5K,GAAOlR,EAAI1B,MACpCmiB,EAAOgH,GAAgB3pB,EAAIge,GAM/B,GALI2E,IACFiJ,GAA6BjJ,GAC7B3iB,EAAGkO,MAAMmuB,iBAAmBr8B,EAAGkO,MAAM4b,aAAc,GAErD9pB,EAAGkO,MAAMouB,eAAgB,GACpBle,GAAasD,EAAOhP,IAAKlS,IAA0B,MAAjBkhB,EAAOvO,OAAgB,CAC5D,IAAI6iB,EAAYtU,EAAOvO,OACvBuO,EAAOvO,OAAS,KAChB,IAAI07B,EAAU/nB,GAAapF,GAAUsU,EACjC6Y,GACA37B,GAAiB1S,EAAMA,EAAK2S,OAAS07B,EAC3C,CACArrB,GAAYxjB,EAAI,gBAAiBA,EAAIguC,EACvC,GACF,EAEAG,GAAWztD,UAAU45B,WAAa,SAAU9Z,GAC1C,IAAKngB,KAAKohB,MAAMzgB,QAAUX,KAAKqyB,IAAI1S,GAAI,CACrC,IAAIka,EAAK75B,KAAKqyB,IAAI1S,GAAGkO,MAChBgM,EAAG2jB,qBAA+D,GAAzC34C,EAAQg1B,EAAG2jB,mBAAoBx9C,QACxD65B,EAAG6jB,uBAAyB7jB,EAAG6jB,qBAAuB,KAAK/4C,KAAK3E,KACvE,CACAA,KAAKohB,MAAMzc,KAAKwb,EAClB,EAEA2tC,GAAWztD,UAAUg8B,WAAa,SAAUlc,GAE1C,GADAngB,KAAKohB,MAAMxc,OAAOC,EAAQ7E,KAAKohB,MAAOjB,GAAO,IACxCngB,KAAKohB,MAAMzgB,QAAUX,KAAKqyB,IAAI1S,GAAI,CACrC,IAAIka,EAAK75B,KAAKqyB,IAAI1S,GAAGkO,OACnBgM,EAAG2jB,qBAAuB3jB,EAAG2jB,mBAAqB,KAAK74C,KAAK3E,KAChE,CACF,EACAguB,GAAW8/B,IA8EX,IAAIW,GAAmB,SAAS9yB,EAAS4V,GACvCvxC,KAAK27B,QAAUA,EACf37B,KAAKuxC,QAAUA,EACf,IAAK,IAAI1xC,EAAI,EAAGA,EAAI87B,EAAQh7B,SAAUd,EAClC87B,EAAQ97B,GAAG0e,OAASve,IAC1B,EAeA,SAASguD,GAAe37B,EAAK5S,EAAMC,EAAI7c,EAASL,IAC9CK,EAAUyjB,EAAQzjB,IACVujD,QAAS,EACjB,IAAIzqB,EAAU,CAACoyB,GAAS17B,EAAK5S,EAAMC,EAAI7c,EAASL,IAAQ+uC,EAAU5V,EAAQ,GACtE0F,EAASx+B,EAAQm7B,WAQrB,OAPA6nB,GAAWxzB,GAAK,SAAUA,GACpBgP,IAAUx+B,EAAQm7B,WAAaqD,EAAOqtB,WAAU,IACpD/yB,EAAQh3B,KAAKopD,GAAS17B,EAAK4B,GAAQ5B,EAAK5S,GAAOwU,GAAQ5B,EAAK3S,GAAK7c,EAASL,IAC1E,IAAK,IAAI3C,EAAI,EAAGA,EAAIwyB,EAAI6zB,OAAOvlD,SAAUd,EACrC,GAAIwyB,EAAI6zB,OAAOrmD,GAAG8uD,SAAY,OAClCpd,EAAU/oB,EAAImT,EAChB,IACO,IAAI8yB,GAAiB9yB,EAAS4V,EACvC,CAEA,SAASqd,GAAkBv8B,GACzB,OAAOA,EAAIw8B,UAAUp7B,GAAIpB,EAAIxgB,MAAO,GAAIwgB,EAAI4B,QAAQR,GAAIpB,EAAIyL,cAAc,SAAUtsB,GAAK,OAAOA,EAAE+M,MAAQ,GAC5G,CAEA,SAASuwC,GAAkBz8B,EAAKsJ,GAC9B,IAAK,IAAI97B,EAAI,EAAGA,EAAI87B,EAAQh7B,OAAQd,IAAK,CACvC,IAAI05B,EAASoC,EAAQ97B,GAAIgiB,EAAM0X,EAAO3lB,OAClCm7C,EAAQ18B,EAAI4B,QAAQpS,EAAIpC,MAAOuvC,EAAM38B,EAAI4B,QAAQpS,EAAInC,IACzD,GAAIgU,GAAIq7B,EAAOC,GAAM,CACnB,IAAIC,EAAUlB,GAAS17B,EAAK08B,EAAOC,EAAKz1B,EAAOgY,QAAShY,EAAOgY,QAAQ/uC,MACvE+2B,EAAOoC,QAAQh3B,KAAKsqD,GACpBA,EAAQ1wC,OAASgb,CACnB,CACF,CACF,CAEA,SAAS21B,GAAoBvzB,GAa3B,IAZA,IAAIzF,EAAO,SAAWr2B,GACpB,IAAI05B,EAASoC,EAAQ97B,GAAIqmD,EAAS,CAAC3sB,EAAOgY,QAAQlf,KAClDwzB,GAAWtsB,EAAOgY,QAAQlf,KAAK,SAAUkM,GAAK,OAAO2nB,EAAOvhD,KAAK45B,EAAI,IACrE,IAAK,IAAI9yB,EAAI,EAAGA,EAAI8tB,EAAOoC,QAAQh7B,OAAQ8K,IAAK,CAC9C,IAAI0jD,EAAY51B,EAAOoC,QAAQlwB,IACQ,GAAnC5G,EAAQqhD,EAAQiJ,EAAU98B,OAC5B88B,EAAU5wC,OAAS,KACnBgb,EAAOoC,QAAQ/2B,OAAO6G,IAAK,GAE/B,CACF,EAES5L,EAAI,EAAGA,EAAI87B,EAAQh7B,OAAQd,IAAKq2B,EAAMr2B,EACjD,CA1DA4uD,GAAiBpuD,UAAUqI,MAAQ,WACjC,IAAI1I,KAAKkoD,kBAAT,CACAloD,KAAKkoD,mBAAoB,EACzB,IAAK,IAAIroD,EAAI,EAAGA,EAAIG,KAAK27B,QAAQh7B,SAAUd,EACvCG,KAAK27B,QAAQ97B,GAAG6I,QACpBy6B,GAAYnjC,KAAM,QAJmB,CAKvC,EAEAyuD,GAAiBpuD,UAAUuT,KAAO,SAAUy/B,EAAMlV,GAChD,OAAOn+B,KAAKuxC,QAAQ39B,KAAKy/B,EAAMlV,EACjC,EACAnQ,GAAWygC,IAiDX,IAAIW,GAAY,EACZC,GAAM,SAAStuC,EAAMf,EAAMulC,EAAW+J,EAAS/jC,GACjD,KAAMvrB,gBAAgBqvD,IAAQ,OAAO,IAAIA,GAAItuC,EAAMf,EAAMulC,EAAW+J,EAAS/jC,GAC5D,MAAbg6B,IAAqBA,EAAY,GAErCoH,GAAY/rD,KAAKZ,KAAM,CAAC,IAAI0sD,GAAU,CAAC,IAAI/tB,GAAK,GAAI,UACpD3+B,KAAK6R,MAAQ0zC,EACbvlD,KAAKqsC,UAAYrsC,KAAKisC,WAAa,EACnCjsC,KAAKwqD,UAAW,EAChBxqD,KAAKuvD,gBAAkB,EACvBvvD,KAAKo3B,aAAep3B,KAAKm3B,kBAAoBouB,EAC7C,IAAIvpC,EAAQyX,GAAI8xB,EAAW,GAC3BvlD,KAAK6xC,IAAMyS,GAAgBtoC,GAC3Bhc,KAAKga,QAAU,IAAIU,GAAQ,MAC3B1a,KAAKsK,KAAO8kD,GACZpvD,KAAKglD,WAAahlC,EAClBhgB,KAAKsvD,QAAUA,EACftvD,KAAKurB,UAA0B,OAAbA,EAAsB,MAAQ,MAChDvrB,KAAK2G,QAAS,EAEK,iBAARoa,IAAoBA,EAAO/gB,KAAKisD,WAAWlrC,IACtDqkC,GAAUplD,KAAM,CAACyf,KAAMzD,EAAO0D,GAAI1D,EAAO+E,KAAMA,IAC/CkB,GAAajiB,KAAMskD,GAAgBtoC,GAAQ6L,EAC7C,EAEAwnC,GAAIhvD,UAAYwoB,GAAU8jC,GAAYtsD,UAAW,CAC/CsP,YAAa0/C,GAKb18B,KAAM,SAASlT,EAAMC,EAAIma,GACnBA,EAAM75B,KAAK8sD,MAAMrtC,EAAOzf,KAAK6R,MAAO6N,EAAKD,EAAMoa,GAC5C75B,KAAK8sD,MAAM9sD,KAAK6R,MAAO7R,KAAK6R,MAAQ7R,KAAK0W,KAAM+I,EACxD,EAGAvP,OAAQ,SAASzM,EAAI2d,GAEnB,IADA,IAAI0R,EAAS,EACJjzB,EAAI,EAAGA,EAAIuhB,EAAMzgB,SAAUd,EAAKizB,GAAU1R,EAAMvhB,GAAGizB,OAC5D9yB,KAAK6sD,YAAYppD,EAAKzD,KAAK6R,MAAOuP,EAAO0R,EAC3C,EACA1tB,OAAQ,SAAS3B,EAAIqjB,GAAK9mB,KAAK4sD,YAAYnpD,EAAKzD,KAAK6R,MAAOiV,EAAI,EAKhE0oC,SAAU,SAASF,GACjB,IAAIluC,EAAQwR,GAAS5yB,KAAMA,KAAK6R,MAAO7R,KAAK6R,MAAQ7R,KAAK0W,MACzD,OAAgB,IAAZ44C,EAA4BluC,EACzBA,EAAMquC,KAAKH,GAAWtvD,KAAK0vD,gBACpC,EACAC,SAAU7R,IAAY,SAAS9yB,GAC7B,IAAI8d,EAAMrV,GAAIzzB,KAAK6R,MAAO,GAAImF,EAAOhX,KAAK6R,MAAQ7R,KAAK0W,KAAO,EAC9Dm0C,GAAW7qD,KAAM,CAACyf,KAAMqpB,EAAKppB,GAAI+T,GAAIzc,EAAMob,GAAQpyB,KAAMgX,GAAM+J,KAAKpgB,QAClDogB,KAAM/gB,KAAKisD,WAAWjhC,GAAOhD,OAAQ,WAAY+S,MAAM,IAAO,GAC5E/6B,KAAK2f,IAAMw4B,GAAen4C,KAAK2f,GAAI,EAAG,GAC1CsC,GAAajiB,KAAMskD,GAAgBxb,GAAMjhB,EAC3C,IACA3H,aAAc,SAAS8K,EAAMvL,EAAMC,EAAIsI,GAGrC9H,GAAalgB,KAAMgrB,EAFnBvL,EAAOwU,GAAQj0B,KAAMyf,GACrBC,EAAKA,EAAKuU,GAAQj0B,KAAM0f,GAAMD,EACKuI,EACrC,EACAzH,SAAU,SAASd,EAAMC,EAAI4vC,GAC3B,IAAIluC,EAAQsR,GAAW1yB,KAAMi0B,GAAQj0B,KAAMyf,GAAOwU,GAAQj0B,KAAM0f,IAChE,OAAgB,IAAZ4vC,EAA4BluC,EAChB,KAAZkuC,EAAyBluC,EAAMquC,KAAK,IACjCruC,EAAMquC,KAAKH,GAAWtvD,KAAK0vD,gBACpC,EAEAt9B,QAAS,SAASjS,GAAO,IAAIle,EAAIjC,KAAK4vD,cAAczvC,GAAO,OAAOle,GAAKA,EAAE8e,IAAI,EAE7E6uC,cAAe,SAASzvC,GAAO,GAAIiT,GAAOpzB,KAAMmgB,GAAS,OAAOiS,GAAQpyB,KAAMmgB,EAAO,EACrF0vC,cAAe,SAAS1vC,GAAO,OAAO4S,GAAO5S,EAAK,EAElD2vC,yBAA0B,SAAS3vC,GAEjC,MADmB,iBAARA,IAAoBA,EAAOiS,GAAQpyB,KAAMmgB,IAC7Cod,GAAWpd,EACpB,EAEA4vC,UAAW,WAAY,OAAO/vD,KAAK0W,IAAI,EACvC6uC,UAAW,WAAY,OAAOvlD,KAAK6R,KAAK,EACxCisB,SAAU,WAAY,OAAO99B,KAAK6R,MAAQ7R,KAAK0W,KAAO,CAAC,EAEvDud,QAAS,SAASpS,GAAM,OAAOoS,GAAQj0B,KAAM6hB,EAAI,EAEjDK,UAAW,SAASlG,GAClB,IAAImI,EAAQnkB,KAAK6xC,IAAIN,UAKrB,OAJa,MAATv1B,GAA0B,QAATA,EAAyBmI,EAAMxN,KAClC,UAATqF,EAA2BmI,EAAM+qB,OACxB,OAATlzB,GAA2B,MAATA,IAA2B,IAAVA,EAAyBmI,EAAMzE,KAC9DyE,EAAM1E,MAErB,EACAuwC,eAAgB,WAAa,OAAOhwD,KAAK6xC,IAAIC,MAAO,EACpDkS,kBAAmB,WAAY,OAAOhkD,KAAK6xC,IAAImS,mBAAmB,EAElE3jC,UAAWy9B,IAAY,SAAS39B,EAAMC,EAAIvd,GACxCqmD,GAAmBlpD,KAAMi0B,GAAQj0B,KAAqB,iBAARmgB,EAAmBsT,GAAItT,EAAMC,GAAM,GAAKD,GAAO,KAAMtd,EACrG,IACAof,aAAc67B,IAAY,SAAS5O,EAAQv4B,EAAM9T,GAC/CqmD,GAAmBlpD,KAAMi0B,GAAQj0B,KAAMkvC,GAASjb,GAAQj0B,KAAM2W,GAAQu4B,GAASrsC,EACjF,IACAimD,gBAAiBhL,IAAY,SAASnnC,EAAM22B,EAAOzqC,GACjDimD,GAAgB9oD,KAAMi0B,GAAQj0B,KAAM2W,GAAO22B,GAASrZ,GAAQj0B,KAAMstC,GAAQzqC,EAC5E,IACAkmD,iBAAkBjL,IAAY,SAASkL,EAAOnmD,GAC5CkmD,GAAiB/oD,KAAMo0B,GAAap0B,KAAMgpD,GAAQnmD,EACpD,IACAotD,mBAAoBnS,IAAY,SAASz3B,EAAGxjB,GAE1CkmD,GAAiB/oD,KAAMo0B,GAAap0B,KADxB8E,EAAI9E,KAAK6xC,IAAIC,OAAQzrB,IACiBxjB,EACpD,IACAqtD,cAAepS,IAAY,SAAShM,EAAQP,EAAS1uC,GACnD,GAAKivC,EAAOnxC,OAAZ,CAEA,IADA,IAAIwgB,EAAM,GACDthB,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAC/BshB,EAAIthB,GAAK,IAAIkkD,GAAM9vB,GAAQj0B,KAAM8xC,EAAOjyC,GAAGqvC,QAC1Bjb,GAAQj0B,KAAM8xC,EAAOjyC,GAAG8W,MAAQm7B,EAAOjyC,GAAGqvC,SAChD,MAAXqC,IAAmBA,EAAUrlC,KAAKiE,IAAI2hC,EAAOnxC,OAAS,EAAGX,KAAK6xC,IAAIE,YACtE9vB,GAAajiB,KAAMikD,GAAmBjkD,KAAK2f,GAAIwB,EAAKowB,GAAU1uC,EANjC,CAO/B,IACAstD,aAAcrS,IAAY,SAAS5O,EAAQv4B,EAAM9T,GAC/C,IAAIivC,EAAS9xC,KAAK6xC,IAAIC,OAAOxxC,MAAM,GACnCwxC,EAAOntC,KAAK,IAAIo/C,GAAM9vB,GAAQj0B,KAAMkvC,GAASjb,GAAQj0B,KAAM2W,GAAQu4B,KACnEjtB,GAAajiB,KAAMikD,GAAmBjkD,KAAK2f,GAAImyB,EAAQA,EAAOnxC,OAAS,GAAIkC,EAC7E,IAEAmtB,aAAc,SAASs/B,GAErB,IADA,IAA8BluC,EAA1B0wB,EAAS9xC,KAAK6xC,IAAIC,OACbjyC,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAIgyC,EAAMnf,GAAW1yB,KAAM8xC,EAAOjyC,GAAG4f,OAAQqyB,EAAOjyC,GAAG6f,MACvD0B,EAAQA,EAAQA,EAAMrc,OAAO8sC,GAAOA,CACtC,CACA,OAAgB,IAAZyd,EAA4BluC,EAClBA,EAAMquC,KAAKH,GAAWtvD,KAAK0vD,gBAC3C,EACAU,cAAe,SAASd,GAEtB,IADA,IAAIxzB,EAAQ,GAAIgW,EAAS9xC,KAAK6xC,IAAIC,OACzBjyC,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAIgyC,EAAMnf,GAAW1yB,KAAM8xC,EAAOjyC,GAAG4f,OAAQqyB,EAAOjyC,GAAG6f,OACvC,IAAZ4vC,IAAqBzd,EAAMA,EAAI4d,KAAKH,GAAWtvD,KAAK0vD,kBACxD5zB,EAAMj8B,GAAKgyC,CACb,CACA,OAAO/V,CACT,EACAu0B,iBAAkB,SAASrlC,EAAM/E,EAAU+B,GAEzC,IADA,IAAIsoC,EAAM,GACDzwD,EAAI,EAAGA,EAAIG,KAAK6xC,IAAIC,OAAOnxC,OAAQd,IACxCywD,EAAIzwD,GAAKmrB,EACbhrB,KAAKuwD,kBAAkBD,EAAKrqC,EAAU+B,GAAU,SAClD,EACAuoC,kBAAmBzS,IAAY,SAAS9yB,EAAM/E,EAAU+B,GAEtD,IADA,IAAIna,EAAU,GAAIgkC,EAAM7xC,KAAK6xC,IACpBhyC,EAAI,EAAGA,EAAIgyC,EAAIC,OAAOnxC,OAAQd,IAAK,CAC1C,IAAIskB,EAAQ0tB,EAAIC,OAAOjyC,GACvBgO,EAAQhO,GAAK,CAAC4f,KAAM0E,EAAM1E,OAAQC,GAAIyE,EAAMzE,KAAMqB,KAAM/gB,KAAKisD,WAAWjhC,EAAKnrB,IAAKmoB,OAAQA,EAC5F,CAEA,IADA,IAAIwoC,EAASvqC,GAAwB,OAAZA,GAAqB0+B,GAAmB3kD,KAAM6N,EAASoY,GACvE0F,EAAM9d,EAAQlN,OAAS,EAAGgrB,GAAO,EAAGA,IACzCk/B,GAAW7qD,KAAM6N,EAAQ8d,IACzB6kC,EAAUpH,GAA2BppD,KAAMwwD,GACtCxwD,KAAK2f,IAAMq4B,GAAoBh4C,KAAK2f,GAC/C,IACA5Y,KAAM+2C,IAAY,WAAYsN,GAAsBprD,KAAM,OAAQ,IAClEiH,KAAM62C,IAAY,WAAYsN,GAAsBprD,KAAM,OAAQ,IAClEywD,cAAe3S,IAAY,WAAYsN,GAAsBprD,KAAM,QAAQ,EAAM,IACjF0wD,cAAe5S,IAAY,WAAYsN,GAAsBprD,KAAM,QAAQ,EAAM,IAEjF2wD,aAAc,SAAS1qD,GAAMjG,KAAK2G,OAASV,CAAI,EAC/C2qD,aAAc,WAAY,OAAO5wD,KAAK2G,MAAM,EAE5CkqD,YAAa,WAEX,IADA,IAAItJ,EAAOvnD,KAAKga,QAAS5G,EAAO,EAAGozC,EAAS,EACnC3mD,EAAI,EAAGA,EAAI0nD,EAAKn0C,KAAKzS,OAAQd,IAAY0nD,EAAKn0C,KAAKvT,GAAGiyC,UAAY1+B,EAC3E,IAAK,IAAIuY,EAAM,EAAGA,EAAM47B,EAAKf,OAAO7lD,OAAQgrB,IAAc47B,EAAKf,OAAO76B,GAAKmmB,UAAY0U,EACvF,MAAO,CAACz/C,KAAMqM,EAAMnM,KAAMu/C,EAC5B,EACA6H,aAAc,WACZ,IAAIV,EAAS3tD,KAEbA,KAAKga,QAAU,IAAIU,GAAQ1a,KAAKga,SAChC6rC,GAAW7lD,MAAM,SAAUqyB,GAAO,OAAOA,EAAIrY,QAAU2zC,EAAO3zC,OAAS,IAAG,EAC5E,EAEA82C,UAAW,WACT9wD,KAAKuvD,gBAAkBvvD,KAAK+wD,kBAAiB,EAC/C,EACAA,iBAAkB,SAASC,GAGzB,OAFIA,IACAhxD,KAAKga,QAAQ4sC,OAAS5mD,KAAKga,QAAQ6sC,UAAY7mD,KAAKga,QAAQ8sC,WAAa,MACtE9mD,KAAKga,QAAQgtC,UACtB,EACAiK,QAAS,SAAUC,GACjB,OAAOlxD,KAAKga,QAAQgtC,aAAekK,GAAOlxD,KAAKuvD,gBACjD,EAEA4B,WAAY,WACV,MAAO,CAAC/9C,KAAMo1C,GAAiBxoD,KAAKga,QAAQ5G,MACpCozC,OAAQgC,GAAiBxoD,KAAKga,QAAQwsC,QAChD,EACA4K,WAAY,SAASC,GACnB,IAAI9J,EAAOvnD,KAAKga,QAAU,IAAIU,GAAQ1a,KAAKga,SAC3CutC,EAAKn0C,KAAOo1C,GAAiB6I,EAASj+C,KAAK9S,MAAM,GAAI,MAAM,GAC3DinD,EAAKf,OAASgC,GAAiB6I,EAAS7K,OAAOlmD,MAAM,GAAI,MAAM,EACjE,EAEAgxD,gBAAiBxT,IAAY,SAAS39B,EAAMoxC,EAAU7pD,GACpD,OAAO6kD,GAAWvsD,KAAMmgB,EAAM,UAAU,SAAUA,GAChD,IAAIwb,EAAUxb,EAAK0kB,gBAAkB1kB,EAAK0kB,cAAgB,CAAC,GAG3D,OAFAlJ,EAAQ41B,GAAY7pD,GACfA,GAASpC,GAAQq2B,KAAYxb,EAAK0kB,cAAgB,OAChD,CACT,GACF,IAEA2sB,YAAa1T,IAAY,SAASyT,GAChC,IAAI5D,EAAS3tD,KAEbA,KAAK2yB,MAAK,SAAUxS,GACdA,EAAK0kB,eAAiB1kB,EAAK0kB,cAAc0sB,IAC3ChF,GAAWoB,EAAQxtC,EAAM,UAAU,WAGjC,OAFAA,EAAK0kB,cAAc0sB,GAAY,KAC3BjsD,GAAQ6a,EAAK0kB,iBAAkB1kB,EAAK0kB,cAAgB,OACjD,CACT,GAEJ,GACF,IAEA4sB,SAAU,SAAStxC,GACjB,IAAI2G,EACJ,GAAmB,iBAAR3G,EAAkB,CAC3B,IAAKiT,GAAOpzB,KAAMmgB,GAAS,OAAO,KAGlC,GAFA2G,EAAI3G,IACJA,EAAOiS,GAAQpyB,KAAMmgB,IACR,OAAO,IACtB,MAEE,GAAS,OADT2G,EAAIiM,GAAO5S,IACM,OAAO,KAE1B,MAAO,CAACA,KAAM2G,EAAG0lC,OAAQrsC,EAAMY,KAAMZ,EAAKY,KAAM8jB,cAAe1kB,EAAK0kB,cAC5DlO,UAAWxW,EAAKwW,UAAWD,QAASvW,EAAKuW,QAAS4N,UAAWnkB,EAAKmkB,UAClEuB,QAAS1lB,EAAK0lB,QACxB,EAEA6rB,aAAc5T,IAAY,SAAS0O,EAAQ9oD,EAAOwgB,GAChD,OAAOqoC,GAAWvsD,KAAMwsD,EAAiB,UAAT9oD,EAAoB,SAAW,SAAS,SAAUyc,GAChF,IAAIsG,EAAgB,QAAT/iB,EAAkB,YACT,cAATA,EAAwB,UACf,UAATA,EAAoB,cAAgB,YAC/C,GAAKyc,EAAKsG,GACL,IAAIxC,EAAUC,GAAKla,KAAKmW,EAAKsG,IAAU,OAAO,EAC5CtG,EAAKsG,IAAS,IAAMvC,CAAK,MAFb/D,EAAKsG,GAAQvC,EAGhC,OAAO,CACT,GACF,IACAytC,gBAAiB7T,IAAY,SAAS0O,EAAQ9oD,EAAOwgB,GACnD,OAAOqoC,GAAWvsD,KAAMwsD,EAAiB,UAAT9oD,EAAoB,SAAW,SAAS,SAAUyc,GAChF,IAAIsG,EAAgB,QAAT/iB,EAAkB,YACT,cAATA,EAAwB,UACf,UAATA,EAAoB,cAAgB,YAC3Cke,EAAMzB,EAAKsG,GACf,IAAK7E,EAAO,OAAO,EACd,GAAW,MAAPsC,EAAe/D,EAAKsG,GAAQ,SAChC,CACH,IAAI6D,EAAQ1I,EAAIvN,MAAM4P,EAAUC,IAChC,IAAKoG,EAAS,OAAO,EACrB,IAAItI,EAAMsI,EAAMxpB,MAAQwpB,EAAM,GAAG3pB,OACjCwf,EAAKsG,GAAQ7E,EAAIthB,MAAM,EAAGgqB,EAAMxpB,QAAWwpB,EAAMxpB,OAASkhB,GAAOJ,EAAIjhB,OAAc,IAAL,IAAYihB,EAAIthB,MAAM0hB,IAAQ,IAC9G,CACA,OAAO,CACT,GACF,IAEAwrC,cAAe1P,IAAY,SAAS0O,EAAQnoC,EAAMxhB,GAChD,OAAO2qD,GAAcxtD,KAAMwsD,EAAQnoC,EAAMxhB,EAC3C,IACA+uD,iBAAkB,SAASvwB,GAAUA,EAAO34B,OAAS,EAErDqlD,SAAU,SAAStuC,EAAMC,EAAI7c,GAC3B,OAAOkrD,GAAS/tD,KAAMi0B,GAAQj0B,KAAMyf,GAAOwU,GAAQj0B,KAAM0f,GAAK7c,EAASA,GAAWA,EAAQL,MAAQ,QACpG,EACAqvD,YAAa,SAAShwC,EAAKhf,GACzB,IAAIivD,EAAW,CAAC7D,aAAcprD,IAAgC,MAApBA,EAAQmiB,SAAmBniB,EAAQw+B,OAASx+B,GACtE03B,WAAY13B,GAAWA,EAAQ03B,WAC/BkB,gBAAgB,EAAO2qB,OAAQvjD,GAAWA,EAAQujD,OAClDrgB,kBAAmBljC,GAAWA,EAAQkjC,mBAEtD,OAAOgoB,GAAS/tD,KADhB6hB,EAAMoS,GAAQj0B,KAAM6hB,GACOA,EAAKiwC,EAAU,WAC5C,EACAC,YAAa,SAASlwC,GAEpB,IAAI8Z,EAAU,GAAIlC,EAAQrH,GAAQpyB,MADlC6hB,EAAMoS,GAAQj0B,KAAM6hB,IACwB1B,MAAM6Z,YAClD,GAAIP,EAAS,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAAG,CAClD,IAAI65B,EAAOD,EAAM55B,IACC,MAAb65B,EAAKja,MAAgBia,EAAKja,MAAQoC,EAAIzB,MAC3B,MAAXsZ,EAAKha,IAAcga,EAAKha,IAAMmC,EAAIzB,KACnCub,EAAQh3B,KAAK+0B,EAAKH,OAAOhb,QAAUmb,EAAKH,OAC9C,CACA,OAAOoC,CACT,EACAkzB,UAAW,SAASpvC,EAAMC,EAAIzJ,GAC5BwJ,EAAOwU,GAAQj0B,KAAMyf,GAAOC,EAAKuU,GAAQj0B,KAAM0f,GAC/C,IAAI4K,EAAQ,GAAIyI,EAAStT,EAAKU,KAa9B,OAZAngB,KAAK2yB,KAAKlT,EAAKU,KAAMT,EAAGS,KAAO,GAAG,SAAUA,GAC1C,IAAIsZ,EAAQtZ,EAAK6Z,YACjB,GAAIP,EAAS,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,OAAQd,IAAK,CAClD,IAAI65B,EAAOD,EAAM55B,GACA,MAAX65B,EAAKha,IAAcqT,GAAUtT,EAAKU,MAAQV,EAAKW,IAAMsZ,EAAKha,IAC7C,MAAbga,EAAKja,MAAgBsT,GAAUtT,EAAKU,MACvB,MAAbuZ,EAAKja,MAAgBsT,GAAUrT,EAAGS,MAAQuZ,EAAKja,MAAQC,EAAGU,IAC1DnK,IAAUA,EAAOyjB,EAAKH,SACxBjP,EAAM3lB,KAAK+0B,EAAKH,OAAOhb,QAAUmb,EAAKH,OAC5C,GACExG,CACJ,IACOzI,CACT,EACA0nC,YAAa,WACX,IAAIr2B,EAAU,GAMd,OALA37B,KAAK2yB,MAAK,SAAUxS,GAClB,IAAI6c,EAAM7c,EAAK6Z,YACf,GAAIgD,EAAO,IAAK,IAAIn9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,EACtB,MAAfm9B,EAAIn9B,GAAG4f,MAAgBkc,EAAQh3B,KAAKq4B,EAAIn9B,GAAG05B,OACrD,IACOoC,CACT,EAEAs2B,aAAc,SAAS9mD,GACrB,IAAIiV,EAAI2S,EAAS/yB,KAAK6R,MAAOqgD,EAAUlyD,KAAK0vD,gBAAgB/uD,OAO5D,OANAX,KAAK2yB,MAAK,SAAUxS,GAClB,IAAIqS,EAAKrS,EAAKY,KAAKpgB,OAASuxD,EAC5B,GAAI1/B,EAAKrnB,EAAiB,OAAViV,EAAKjV,GAAY,EACjCA,GAAOqnB,IACLO,CACJ,IACOkB,GAAQj0B,KAAMyzB,GAAIV,EAAQ3S,GACnC,EACA+xC,aAAc,SAAUrlB,GAEtB,IAAIhsC,GADJgsC,EAAS7Y,GAAQj0B,KAAM8sC,IACJ1sB,GACnB,GAAI0sB,EAAO3sB,KAAOngB,KAAK6R,OAASi7B,EAAO1sB,GAAK,EAAK,OAAO,EACxD,IAAI8xC,EAAUlyD,KAAK0vD,gBAAgB/uD,OAInC,OAHAX,KAAK2yB,KAAK3yB,KAAK6R,MAAOi7B,EAAO3sB,MAAM,SAAUA,GAC3Crf,GAASqf,EAAKY,KAAKpgB,OAASuxD,CAC9B,IACOpxD,CACT,EAEAk3B,KAAM,SAASo6B,GACb,IAAI//B,EAAM,IAAIg9B,GAAIz8B,GAAS5yB,KAAMA,KAAK6R,MAAO7R,KAAK6R,MAAQ7R,KAAK0W,MAC7C1W,KAAKglD,WAAYhlD,KAAK6R,MAAO7R,KAAKsvD,QAAStvD,KAAKurB,WAQlE,OAPA8G,EAAIga,UAAYrsC,KAAKqsC,UAAWha,EAAI4Z,WAAajsC,KAAKisC,WACtD5Z,EAAIwf,IAAM7xC,KAAK6xC,IACfxf,EAAI1rB,QAAS,EACTyrD,IACF//B,EAAIrY,QAAQysC,UAAYzmD,KAAKga,QAAQysC,UACrCp0B,EAAI++B,WAAWpxD,KAAKmxD,eAEf9+B,CACT,EAEAggC,UAAW,SAASxvD,GACbA,IAAWA,EAAU,CAAC,GAC3B,IAAI4c,EAAOzf,KAAK6R,MAAO6N,EAAK1f,KAAK6R,MAAQ7R,KAAK0W,KAC1B,MAAhB7T,EAAQ4c,MAAgB5c,EAAQ4c,KAAOA,IAAQA,EAAO5c,EAAQ4c,MAChD,MAAd5c,EAAQ6c,IAAc7c,EAAQ6c,GAAKA,IAAMA,EAAK7c,EAAQ6c,IAC1D,IAAIsY,EAAO,IAAIq3B,GAAIz8B,GAAS5yB,KAAMyf,EAAMC,GAAK7c,EAAQmd,MAAQhgB,KAAKglD,WAAYvlC,EAAMzf,KAAKsvD,QAAStvD,KAAKurB,WAKvG,OAJI1oB,EAAQojD,aAAcjuB,EAAKhe,QAAUha,KAAKga,UAC1Cha,KAAKkmD,SAAWlmD,KAAKkmD,OAAS,KAAKvhD,KAAK,CAAC0tB,IAAK2F,EAAMiuB,WAAYpjD,EAAQojD,aAC5EjuB,EAAKkuB,OAAS,CAAC,CAAC7zB,IAAKryB,KAAM2uD,UAAU,EAAM1I,WAAYpjD,EAAQojD,aAC/D6I,GAAkB92B,EAAM42B,GAAkB5uD,OACnCg4B,CACT,EACAs6B,UAAW,SAAShlB,GAElB,GADIA,aAAiB7uB,KAAc6uB,EAAQA,EAAMjb,KAC7CryB,KAAKkmD,OAAU,IAAK,IAAIrmD,EAAI,EAAGA,EAAIG,KAAKkmD,OAAOvlD,SAAUd,EAE3D,GADWG,KAAKkmD,OAAOrmD,GACdwyB,KAAOib,EAAhB,CACAttC,KAAKkmD,OAAOthD,OAAO/E,EAAG,GACtBytC,EAAMglB,UAAUtyD,MAChBkvD,GAAoBN,GAAkB5uD,OACtC,KAJkC,CAOpC,GAAIstC,EAAMtzB,SAAWha,KAAKga,QAAS,CACjC,IAAIu4C,EAAW,CAACjlB,EAAMhjC,IACtBu7C,GAAWvY,GAAO,SAAUjb,GAAO,OAAOkgC,EAAS5tD,KAAK0tB,EAAI/nB,GAAK,IAAG,GACpEgjC,EAAMtzB,QAAU,IAAIU,GAAQ,MAC5B4yB,EAAMtzB,QAAQ5G,KAAOo1C,GAAiBxoD,KAAKga,QAAQ5G,KAAMm/C,GACzDjlB,EAAMtzB,QAAQwsC,OAASgC,GAAiBxoD,KAAKga,QAAQwsC,OAAQ+L,EAC/D,CACF,EACAC,eAAgB,SAASnsC,GAAIw/B,GAAW7lD,KAAMqmB,EAAG,EAEjDvG,QAAS,WAAY,OAAO9f,KAAKggB,IAAI,EACrCyyC,UAAW,WAAY,OAAOzyD,KAAK2f,EAAE,EAErCssC,WAAY,SAASriC,GACnB,OAAI5pB,KAAKsvD,QAAkB1lC,EAAI3f,MAAMjK,KAAKsvD,SACnC1/B,GAAehG,EACxB,EACA8lC,cAAe,WAAa,OAAO1vD,KAAKsvD,SAAW,IAAK,EAExDoD,aAAc5U,IAAY,SAAUj0B,GACvB,OAAPA,IAAgBA,EAAM,OACtBA,GAAO7pB,KAAKurB,YAChBvrB,KAAKurB,UAAY1B,EACjB7pB,KAAK2yB,MAAK,SAAUxS,GAAQ,OAAOA,EAAKkK,MAAQ,IAAM,IAClDrqB,KAAK2f,IAAM4mC,GAAiBvmD,KAAK2f,IACvC,MAIF0vC,GAAIhvD,UAAUsyD,SAAWtD,GAAIhvD,UAAUsyB,KAIvC,IAAIigC,GAAW,EAEf,SAASC,GAAO3nD,GACd,IAAIyU,EAAK3f,KAET,GADA8yD,GAAgBnzC,IACZ0N,GAAe1N,EAAIzU,KAAM47B,GAAcnnB,EAAG/C,QAAS1R,GAAvD,CAEAgjB,GAAiBhjB,GACbyX,IAAMiwC,IAAY,IAAItrC,MAC1B,IAAIzF,EAAM8tB,GAAahwB,EAAIzU,GAAG,GAAO6nD,EAAQ7nD,EAAE8nD,aAAaD,MAC5D,GAAKlxC,IAAOlC,EAAGszC,aAGf,GAAIF,GAASA,EAAMpyD,QAAUZ,OAAOmzD,YAAcnzD,OAAOozD,KAkCvD,IAjCA,IAAIrsC,EAAIisC,EAAMpyD,OAAQogB,EAAO3gB,MAAM0mB,GAAIssC,EAAO,EAC1CC,EAAsC,aAClCD,GAAQtsC,GACZ7G,GAAUN,GAAI,WAEZ,IAAImb,EAAS,CAACrb,KADdoC,EAAMoS,GAAQtU,EAAG0S,IAAKxQ,GACGnC,GAAImC,EACfd,KAAMpB,EAAG0S,IAAI45B,WACTlrC,EAAK9K,QAAO,SAAUq9C,GAAK,OAAY,MAALA,CAAW,IAAG7D,KAAK9vC,EAAG0S,IAAIq9B,kBAChE1nC,OAAQ,SACtB6iC,GAAWlrC,EAAG0S,IAAKyI,GACnBsuB,GAA2BzpC,EAAG0S,IAAKiyB,GAAgBrwB,GAAQtU,EAAG0S,IAAKxQ,GAAMoS,GAAQtU,EAAG0S,IAAKkyB,GAAUzpB,KACrG,GARA7a,EAUJ,EACIszC,EAAmB,SAAUC,EAAM3zD,GACrC,GAAI8f,EAAG9c,QAAQ4wD,qBAC2C,GAAtD5uD,EAAQ8a,EAAG9c,QAAQ4wD,mBAAoBD,EAAKhxD,MAC9C6wD,QAFF,CAKA,IAAIK,EAAS,IAAIR,WACjBQ,EAAOC,QAAU,WAAc,OAAON,GAAuC,EAC7EK,EAAOE,OAAS,WACd,IAAI70C,EAAU20C,EAAOxmD,OACjB,0BAA0BlD,KAAK+U,KAInCgC,EAAKlhB,GAAKkf,GAHRs0C,GAKJ,EACAK,EAAOG,WAAWL,EAZlB,CAaF,EACS3zD,EAAI,EAAGA,EAAIkzD,EAAMpyD,OAAQd,IAAO0zD,EAAiBR,EAAMlzD,GAAIA,OAC/D,CAEL,GAAI8f,EAAGV,MAAMm2B,cAAgBz1B,EAAG0S,IAAIwf,IAAIntC,SAASmd,IAAQ,EAIvD,OAHAlC,EAAGV,MAAMm2B,aAAalqC,QAEtBqc,YAAW,WAAc,OAAO5H,EAAG/C,QAAQ0kB,MAAM0T,OAAS,GAAG,IAG/D,IACE,IAAI8e,EAAS5oD,EAAE8nD,aAAae,QAAQ,QACpC,GAAID,EAAQ,CACV,IAAIE,EAIJ,GAHIr0C,EAAGV,MAAMm2B,eAAiBz1B,EAAGV,MAAMm2B,aAAapd,OAChDg8B,EAAWr0C,EAAGqwC,kBAClB3G,GAAmB1pC,EAAG0S,IAAKiyB,GAAgBziC,EAAKA,IAC5CmyC,EAAY,IAAK,IAAIroC,EAAM,EAAGA,EAAMqoC,EAASrzD,SAAUgrB,EACvDzL,GAAaP,EAAG0S,IAAK,GAAI2hC,EAASroC,GAAKujB,OAAQ8kB,EAASroC,GAAKhV,KAAM,QACvEgJ,EAAG0wC,iBAAiByD,EAAQ,SAAU,SACtCn0C,EAAG/C,QAAQ0kB,MAAM0T,OACnB,CAES,CAAX,MAAM/E,GAAK,CACb,CAhEW,CAiEb,CAEA,SAASgkB,GAAYt0C,EAAIzU,GACvB,GAAIyX,KAAQhD,EAAGV,MAAMm2B,eAAiB,IAAI9tB,KAAOsrC,GAAW,KAAQrkC,GAAOrjB,QAC3E,IAAImiB,GAAe1N,EAAIzU,KAAM47B,GAAcnnB,EAAG/C,QAAS1R,KAEvDA,EAAE8nD,aAAakB,QAAQ,OAAQv0C,EAAGqQ,gBAClC9kB,EAAE8nD,aAAamB,cAAgB,WAI3BjpD,EAAE8nD,aAAaoB,eAAiBlxC,GAAQ,CAC1C,IAAImxC,EAAM3vC,EAAI,MAAO,KAAM,KAAM,qCACjC2vC,EAAI33C,IAAM,6EACNuG,IACFoxC,EAAIluB,MAAQkuB,EAAIvhC,OAAS,EACzBnT,EAAG/C,QAAQgqB,QAAQniB,YAAY4vC,GAE/BA,EAAIC,KAAOD,EAAIjtB,WAEjBl8B,EAAE8nD,aAAaoB,aAAaC,EAAK,EAAG,GAChCpxC,GAAUoxC,EAAIpvC,WAAWnH,YAAYu2C,EAC3C,CACF,CAEA,SAASE,GAAW50C,EAAIzU,GACtB,IAAI2W,EAAM8tB,GAAahwB,EAAIzU,GAC3B,GAAK2W,EAAL,CACA,IAAI2yC,EAAO9/C,SAASisB,yBACpBsR,GAAoBtyB,EAAIkC,EAAK2yC,GACxB70C,EAAG/C,QAAQ63C,aACd90C,EAAG/C,QAAQ63C,WAAa/vC,EAAI,MAAO,KAAM,6CACzC/E,EAAG/C,QAAQuqB,UAAUnqB,aAAa2C,EAAG/C,QAAQ63C,WAAY90C,EAAG/C,QAAQ83B,YAEtElwB,EAAqB7E,EAAG/C,QAAQ63C,WAAYD,EAPzB,CAQrB,CAEA,SAAS1B,GAAgBnzC,GACnBA,EAAG/C,QAAQ63C,aACb90C,EAAG/C,QAAQuqB,UAAUrpB,YAAY6B,EAAG/C,QAAQ63C,YAC5C90C,EAAG/C,QAAQ63C,WAAa,KAE5B,CAMA,SAASC,GAAkBruC,GACzB,GAAK3R,SAASigD,uBAAd,CAEA,IADA,IAAIC,EAAUlgD,SAASigD,uBAAuB,cAAeE,EAAU,GAC9Dh1D,EAAI,EAAGA,EAAI+0D,EAAQj0D,OAAQd,IAAK,CACvC,IAAI8f,EAAKi1C,EAAQ/0D,GAAG4e,WAChBkB,GAAMk1C,EAAQlwD,KAAKgb,EACzB,CACIk1C,EAAQl0D,QAAUk0D,EAAQ,GAAG50C,WAAU,WACzC,IAAK,IAAIpgB,EAAI,EAAGA,EAAIg1D,EAAQl0D,OAAQd,IAAOwmB,EAAEwuC,EAAQh1D,GACvD,GAR+C,CASjD,CAEA,IAAIi1D,IAAoB,EACxB,SAASC,KACHD,KACJE,KACAF,IAAoB,EACtB,CACA,SAASE,KAEP,IAAIC,EACJxtD,GAAG1H,OAAQ,UAAU,WACA,MAAfk1D,IAAuBA,EAAc1tC,YAAW,WAClD0tC,EAAc,KACdP,GAAkBQ,GACpB,GAAG,KACL,IAEAztD,GAAG1H,OAAQ,QAAQ,WAAc,OAAO20D,GAAkB5f,GAAS,GACrE,CAEA,SAASogB,GAASv1C,GAChB,IAAI4e,EAAI5e,EAAG/C,QAEX2hB,EAAEoN,gBAAkBpN,EAAEqN,iBAAmBrN,EAAEgJ,eAAiB,KAC5DhJ,EAAEugB,mBAAoB,EACtBn/B,EAAGw1C,SACL,CAcA,IAZA,IAAIC,GAAW,CACb,EAAG,QAAS,EAAG,YAAa,EAAG,MAAO,GAAI,QAAS,GAAI,QAAS,GAAI,OAAQ,GAAI,MAChF,GAAI,QAAS,GAAI,WAAY,GAAI,MAAO,GAAI,QAAS,GAAI,SAAU,GAAI,WAAY,GAAI,MACvF,GAAI,OAAQ,GAAI,OAAQ,GAAI,KAAM,GAAI,QAAS,GAAI,OAAQ,GAAI,YAAa,GAAI,SAChF,GAAI,SAAU,GAAI,IAAK,GAAI,IAAK,GAAI,MAAO,GAAI,MAAO,GAAI,MAC1D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,aACvD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/F,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,KAAM,MAAO,OAAQ,MAAO,OAAQ,MAAO,QAAS,MAAO,SAClG,MAAO,OAAQ,MAAO,MAAO,MAAO,SAAU,MAAO,WAAY,MAAO,UAIjEv1D,GAAI,EAAGA,GAAI,GAAIA,KAAOu1D,GAASv1D,GAAI,IAAMu1D,GAASv1D,GAAI,IAAMyzB,OAAOzzB,IAE5E,IAAK,IAAI8rB,GAAM,GAAIA,IAAO,GAAIA,KAASypC,GAASzpC,IAAO2H,OAAO+hC,aAAa1pC,IAE3E,IAAK,IAAIC,GAAM,EAAGA,IAAO,GAAIA,KAASwpC,GAASxpC,GAAM,KAAOwpC,GAASxpC,GAAM,OAAS,IAAMA,GAE1F,IAAI0pC,GAAS,CAAC,EA4Cd,SAASC,GAAiB5rD,GACxB,IAEI6rD,EAAKC,EAAM5xD,EAAO6xD,EAFlB55B,EAAQnyB,EAAKM,MAAM,UACvBN,EAAOmyB,EAAMA,EAAMn7B,OAAS,GAE5B,IAAK,IAAId,EAAI,EAAGA,EAAIi8B,EAAMn7B,OAAS,EAAGd,IAAK,CACzC,IAAIsiB,EAAM2Z,EAAMj8B,GAChB,GAAI,kBAAkBmK,KAAKmY,GAAQuzC,GAAM,OACpC,GAAI,YAAY1rD,KAAKmY,GAAQqzC,GAAM,OACnC,GAAI,sBAAsBxrD,KAAKmY,GAAQszC,GAAO,MAC9C,KAAI,cAAczrD,KAAKmY,GACrB,MAAM,IAAIpQ,MAAM,+BAAiCoQ,GADpBte,GAAQ,CACiB,CAC/D,CAKA,OAJI2xD,IAAO7rD,EAAO,OAASA,GACvB8rD,IAAQ9rD,EAAO,QAAUA,GACzB+rD,IAAO/rD,EAAO,OAASA,GACvB9F,IAAS8F,EAAO,SAAWA,GACxBA,CACT,CAOA,SAASgsD,GAAgBC,GACvB,IAAI59B,EAAO,CAAC,EACZ,IAAK,IAAI69B,KAAWD,EAAU,GAAIA,EAAOlvC,eAAemvC,GAAU,CAChE,IAAInuD,EAAQkuD,EAAOC,GACnB,GAAI,mCAAmC7rD,KAAK6rD,GAAY,SACxD,GAAa,OAATnuD,EAAgB,QAASkuD,EAAOC,GAAU,QAAS,CAGvD,IADA,IAAI50D,EAAO6D,EAAI+wD,EAAQ5rD,MAAM,KAAMsrD,IAC1B11D,EAAI,EAAGA,EAAIoB,EAAKN,OAAQd,IAAK,CACpC,IAAIoG,OAAM,EAAU0D,OAAO,EACvB9J,GAAKoB,EAAKN,OAAS,GACrBgJ,EAAO1I,EAAKwuD,KAAK,KACjBxpD,EAAMyB,IAENiC,EAAO1I,EAAKX,MAAM,EAAGT,EAAI,GAAG4vD,KAAK,KACjCxpD,EAAM,OAER,IAAIiI,EAAO8pB,EAAKruB,GAChB,GAAKuE,GACA,GAAIA,GAAQjI,EAAO,MAAM,IAAI8L,MAAM,6BAA+BpI,QAD1DquB,EAAKruB,GAAQ1D,CAE5B,QACO2vD,EAAOC,EAChB,CACA,IAAK,IAAIpvC,KAAQuR,EAAQ49B,EAAOnvC,GAAQuR,EAAKvR,GAC7C,OAAOmvC,CACT,CAEA,SAASE,GAAUz0D,EAAKyD,EAAK0nD,EAAQziD,GAEnC,IAAIugB,GADJxlB,EAAMixD,GAAUjxD,IACAlE,KAAOkE,EAAIlE,KAAKS,EAAK0I,GAAWjF,EAAIzD,GACpD,IAAc,IAAVipB,EAAmB,MAAO,UAC9B,GAAc,QAAVA,EAAmB,MAAO,QAC9B,GAAa,MAATA,GAAiBkiC,EAAOliC,GAAU,MAAO,UAE7C,GAAIxlB,EAAIkxD,YAAa,CACnB,GAAuD,kBAAnDhtC,OAAO3oB,UAAUunB,SAAShnB,KAAKkE,EAAIkxD,aACnC,OAAOF,GAAUz0D,EAAKyD,EAAIkxD,YAAaxJ,EAAQziD,GACnD,IAAK,IAAIlK,EAAI,EAAGA,EAAIiF,EAAIkxD,YAAYr1D,OAAQd,IAAK,CAC/C,IAAIqN,EAAS4oD,GAAUz0D,EAAKyD,EAAIkxD,YAAYn2D,GAAI2sD,EAAQziD,GACxD,GAAImD,EAAU,OAAOA,CACvB,CACF,CACF,CAIA,SAAS+oD,GAAcvuD,GACrB,IAAIiC,EAAuB,iBAATjC,EAAoBA,EAAQ0tD,GAAS1tD,EAAMwuD,SAC7D,MAAe,QAARvsD,GAA0B,OAARA,GAAyB,SAARA,GAA2B,OAARA,CAC/D,CAEA,SAASwsD,GAAiBxsD,EAAMgJ,EAAOyjD,GACrC,IAAI7mD,EAAO5F,EAKX,OAJIgJ,EAAM0jD,QAAkB,OAAR9mD,IAAiB5F,EAAO,OAASA,IAChDoa,EAAcpR,EAAM2jD,QAAU3jD,EAAMic,UAAoB,QAARrf,IAAkB5F,EAAO,QAAUA,IACnFoa,EAAcpR,EAAMic,QAAUjc,EAAM2jD,UAAoB,OAAR/mD,IAAiB5F,EAAO,OAASA,IACjFysD,GAAWzjD,EAAM4jD,UAAoB,SAARhnD,IAAmB5F,EAAO,SAAWA,GAChEA,CACT,CAGA,SAAS6sD,GAAQ7jD,EAAOyjD,GACtB,GAAInzC,GAA2B,IAAjBtQ,EAAMujD,SAAiBvjD,EAAM,QAAW,OAAO,EAC7D,IAAIhJ,EAAOyrD,GAASziD,EAAMujD,SAC1B,OAAY,MAARvsD,IAAgBgJ,EAAM8jD,cAGL,GAAjB9jD,EAAMujD,SAAgBvjD,EAAMqY,OAAQrhB,EAAOgJ,EAAMqY,MAC9CmrC,GAAiBxsD,EAAMgJ,EAAOyjD,GACvC,CAEA,SAASL,GAAU9vD,GACjB,MAAqB,iBAAPA,EAAkBqvD,GAAOrvD,GAAOA,CAChD,CAIA,SAASywD,GAAoB/2C,EAAIg3C,GAI/B,IAHA,IAAI7kB,EAASnyB,EAAG0S,IAAIwf,IAAIC,OAAQ8kB,EAAO,GAG9B/2D,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CAEtC,IADA,IAAIg3D,EAASF,EAAQ7kB,EAAOjyC,IACrB+2D,EAAKj2D,QAAU+yB,GAAImjC,EAAOp3C,KAAM+I,EAAIouC,GAAMl3C,KAAO,GAAG,CACzD,IAAIo3C,EAAWF,EAAKhzD,MACpB,GAAI8vB,GAAIojC,EAASr3C,KAAMo3C,EAAOp3C,MAAQ,EAAG,CACvCo3C,EAAOp3C,KAAOq3C,EAASr3C,KACvB,KACF,CACF,CACAm3C,EAAKjyD,KAAKkyD,EACZ,CAEAjZ,GAAQj+B,GAAI,WACV,IAAK,IAAI9f,EAAI+2D,EAAKj2D,OAAS,EAAGd,GAAK,EAAGA,IAClCqgB,GAAaP,EAAG0S,IAAK,GAAIukC,EAAK/2D,GAAG4f,KAAMm3C,EAAK/2D,GAAG6f,GAAI,WACvDs4B,GAAoBr4B,EACtB,GACF,CAEA,SAASo3C,GAAkB52C,EAAMC,EAAIyJ,GACnC,IAAItD,EAASoD,GAAmBxJ,EAAKY,KAAMX,EAAKyJ,EAAKA,GACrD,OAAOtD,EAAS,GAAKA,EAASpG,EAAKY,KAAKpgB,OAAS,KAAO4lB,CAC1D,CAEA,SAASywC,GAAc72C,EAAMnE,EAAO6N,GAClC,IAAIzJ,EAAK22C,GAAkB52C,EAAMnE,EAAMoE,GAAIyJ,GAC3C,OAAa,MAANzJ,EAAa,KAAO,IAAIqT,GAAIzX,EAAMmE,KAAMC,EAAIyJ,EAAM,EAAI,QAAU,SACzE,CAEA,SAASotC,GAAUC,EAAUv3C,EAAIwe,EAASpL,EAAQlJ,GAChD,GAAIqtC,EAAU,CACY,OAApBv3C,EAAG0S,IAAI9G,YAAsB1B,GAAOA,GACxC,IAAIQ,EAAQ0C,GAASoR,EAASxe,EAAG0S,IAAI9G,WACrC,GAAIlB,EAAO,CACT,IAGIjK,EAHAmK,EAAOV,EAAM,EAAIrB,EAAI6B,GAASA,EAAM,GAEpCM,EADsBd,EAAM,IAAqB,GAAdU,EAAKC,OACV,QAAU,SAQ5C,GAAID,EAAKC,MAAQ,GAAyB,OAApB7K,EAAG0S,IAAI9G,UAAoB,CAC/C,IAAI4rC,EAAO9tB,GAAsB1pB,EAAIwe,GACrC/d,EAAKyJ,EAAM,EAAIsU,EAAQpd,KAAKpgB,OAAS,EAAI,EACzC,IAAIy2D,EAAYhuB,GAAoBzpB,EAAIw3C,EAAM/2C,GAAI0oB,IAClD1oB,EAAK0J,IAAU,SAAU1J,GAAM,OAAOgpB,GAAoBzpB,EAAIw3C,EAAM/2C,GAAI0oB,KAAOsuB,CAAW,GAAIvtC,EAAM,IAAqB,GAAdU,EAAKC,OAAcD,EAAK9K,KAAO8K,EAAK7K,GAAK,EAAGU,GACzI,UAAVuK,IAAsBvK,EAAK22C,GAAkB54B,EAAS/d,EAAI,GAChE,MAASA,EAAKyJ,EAAM,EAAIU,EAAK7K,GAAK6K,EAAK9K,KACvC,OAAO,IAAIgU,GAAIV,EAAQ3S,EAAIuK,EAC7B,CACF,CACA,OAAO,IAAI8I,GAAIV,EAAQlJ,EAAM,EAAIsU,EAAQpd,KAAKpgB,OAAS,EAAGkpB,EAAM,EAAI,SAAW,QACjF,CAEA,SAASwtC,GAAa13C,EAAIQ,EAAMnE,EAAO6N,GACrC,IAAIytC,EAAOvqC,GAAS5M,EAAMR,EAAG0S,IAAI9G,WACjC,IAAK+rC,EAAQ,OAAON,GAAc72C,EAAMnE,EAAO6N,GAC3C7N,EAAMoE,IAAMD,EAAKY,KAAKpgB,QACxBqb,EAAMoE,GAAKD,EAAKY,KAAKpgB,OACrBqb,EAAM2O,OAAS,UACN3O,EAAMoE,IAAM,IACrBpE,EAAMoE,GAAK,EACXpE,EAAM2O,OAAS,SAEjB,IAAI0iB,EAAU3iB,GAAc4sC,EAAMt7C,EAAMoE,GAAIpE,EAAM2O,QAASJ,EAAO+sC,EAAKjqB,GACvE,GAAwB,OAApB1tB,EAAG0S,IAAI9G,WAAsBhB,EAAKC,MAAQ,GAAK,IAAMX,EAAM,EAAIU,EAAK7K,GAAK1D,EAAMoE,GAAKmK,EAAK9K,KAAOzD,EAAMoE,IAGxG,OAAO42C,GAAc72C,EAAMnE,EAAO6N,GAGpC,IACIstC,EADAI,EAAK,SAAU11C,EAAKgI,GAAO,OAAOktC,GAAkB52C,EAAM0B,aAAe4R,GAAM5R,EAAIzB,GAAKyB,EAAKgI,EAAM,EAEnG2tC,EAAuB,SAAUp3C,GACnC,OAAKT,EAAG9c,QAAQ2lC,cAChB2uB,EAAOA,GAAQ9tB,GAAsB1pB,EAAIQ,GAClC8tB,GAAsBtuB,EAAIQ,EAAMg3C,EAAM/2C,IAFN,CAAC4tB,MAAO,EAAGhsB,IAAK7B,EAAKY,KAAKpgB,OAGnE,EACIotC,EAAoBypB,EAAqC,UAAhBx7C,EAAM2O,OAAqB4sC,EAAGv7C,GAAQ,GAAKA,EAAMoE,IAE9F,GAAwB,OAApBT,EAAG0S,IAAI9G,WAAoC,GAAdhB,EAAKC,MAAY,CAChD,IAAIitC,EAAoC,GAAdltC,EAAKC,OAAgBX,EAAM,EACjDzJ,EAAKm3C,EAAGv7C,EAAOy7C,EAAqB,GAAK,GAC7C,GAAU,MAANr3C,IAAgBq3C,EAAwEr3C,GAAMmK,EAAK7K,IAAMU,GAAM2tB,EAAkB/rB,IAA5F5B,GAAMmK,EAAK9K,MAAQW,GAAM2tB,EAAkBC,OAAuD,CAEzI,IAAIrjB,EAAS8sC,EAAqB,SAAW,QAC7C,OAAO,IAAIhkC,GAAIzX,EAAMmE,KAAMC,EAAIuK,EACjC,CACF,CAKA,IAAI+sC,EAAqB,SAAUrqB,EAASxjB,EAAKkkB,GAK/C,IAJA,IAAI4pB,EAAS,SAAUv3C,EAAIq3C,GAAsB,OAAOA,EACpD,IAAIhkC,GAAIzX,EAAMmE,KAAMo3C,EAAGn3C,EAAI,GAAI,UAC/B,IAAIqT,GAAIzX,EAAMmE,KAAMC,EAAI,QAAU,EAE/BitB,GAAW,GAAKA,EAAUiqB,EAAK32D,OAAQ0sC,GAAWxjB,EAAK,CAC5D,IAAIU,EAAO+sC,EAAKjqB,GACZoqB,EAAsB5tC,EAAM,IAAqB,GAAdU,EAAKC,OACxCpK,EAAKq3C,EAAqB1pB,EAAkBC,MAAQupB,EAAGxpB,EAAkB/rB,KAAM,GACnF,GAAIuI,EAAK9K,MAAQW,GAAMA,EAAKmK,EAAK7K,GAAM,OAAOi4C,EAAOv3C,EAAIq3C,GAEzD,GADAr3C,EAAKq3C,EAAqBltC,EAAK9K,KAAO83C,EAAGhtC,EAAK7K,IAAK,GAC/CquB,EAAkBC,OAAS5tB,GAAMA,EAAK2tB,EAAkB/rB,IAAO,OAAO21C,EAAOv3C,EAAIq3C,EACvF,CACF,EAGIrzD,EAAMszD,EAAmBrqB,EAAUxjB,EAAKA,EAAKkkB,GACjD,GAAI3pC,EAAO,OAAOA,EAGlB,IAAIwzD,EAAS/tC,EAAM,EAAIkkB,EAAkB/rB,IAAMu1C,EAAGxpB,EAAkBC,OAAQ,GAC5E,OAAc,MAAV4pB,GAAoB/tC,EAAM,GAAK+tC,GAAUz3C,EAAKY,KAAKpgB,UACrDyD,EAAMszD,EAAmB7tC,EAAM,EAAI,EAAIytC,EAAK32D,OAAS,EAAGkpB,EAAK2tC,EAAqBI,KAK7E,KAJaxzD,CAKtB,CA/QAkxD,GAAOuC,MAAQ,CACb,KAAQ,aAAc,MAAS,cAAe,GAAM,WAAY,KAAQ,aACxE,IAAO,YAAa,KAAQ,mBAAoB,OAAU,WAAY,SAAY,aAClF,OAAU,eAAgB,UAAa,gBAAiB,kBAAmB,gBAC3E,IAAO,aAAc,YAAa,aAClC,MAAS,mBAAoB,OAAU,kBACvC,IAAO,mBAKTvC,GAAOwC,UAAY,CACjB,SAAU,YAAa,SAAU,aAAc,SAAU,OAAQ,eAAgB,OAAQ,SAAU,OACnG,YAAa,aAAc,WAAY,WAAY,UAAW,WAAY,YAAa,aACvF,YAAa,cAAe,aAAc,eAAgB,WAAY,cAAe,YAAa,YAClG,iBAAkB,iBAAkB,cAAe,gBAAiB,SAAU,OAAQ,SAAU,OAChG,SAAU,WAAY,eAAgB,WAAY,eAAgB,UAAW,eAAgB,aAC7F,SAAU,aAAc,SAAU,aAClC,SAAU,gBAAiB,eAAgB,gBAAiB,QAAS,gBACrE,YAAe,SAGjBxC,GAAOyC,OAAS,CACd,SAAU,cAAe,SAAU,aAAc,SAAU,WAAY,SAAU,aACjF,SAAU,cAAe,SAAU,YAAa,SAAU,aAAc,eAAgB,WACxF,SAAU,eAAgB,SAAU,gBAAiB,gBAAiB,gBAAiB,SAAU,WACjG,SAAU,iBAAkB,SAAU,YAExCzC,GAAO0C,WAAa,CAClB,QAAS,YAAa,QAAS,aAAc,QAAS,OAAQ,cAAe,OAAQ,QAAS,OAC9F,WAAY,aAAc,SAAU,aAAc,UAAW,WAAY,WAAY,WAAY,WAAY,cAC7G,YAAa,eAAgB,WAAY,aAAc,YAAa,cAAe,gBAAiB,iBACpG,qBAAsB,gBAAiB,aAAc,gBAAiB,QAAS,OAAQ,QAAS,OAChG,QAAS,WAAY,cAAe,WAAY,YAAa,UAAW,kBAAmB,aAC3F,QAAS,aAAc,QAAS,aAAc,gBAAiB,qBAAsB,aAAc,sBACnG,QAAS,gBAAiB,cAAe,gBAAiB,UAAW,aAAc,YAAa,WAChG,YAAe,CAAC,QAAS,WAE3B1C,GAAO,WAAa5xC,EAAM4xC,GAAO0C,WAAa1C,GAAOwC,UA6OrD,IAAIG,GAAW,CACbxN,UAAWA,GACXyN,gBAAiB,SAAUv4C,GAAM,OAAOA,EAAGsC,aAAatC,EAAGuC,UAAU,UAAWvC,EAAGuC,UAAU,QAAS2F,EAAiB,EACvHswC,SAAU,SAAUx4C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GACjE,GAAIA,EAAM6tB,QAAS,CACjB,IAAIvmB,EAAM2G,GAAQzS,EAAG0S,IAAKlO,EAAMxN,KAAKwJ,MAAMY,KAAKpgB,OAChD,OAAIwjB,EAAMxN,KAAKyJ,IAAMqL,GAAOtH,EAAMxN,KAAKwJ,KAAOR,EAAGme,WACtC,CAACre,KAAM0E,EAAMxN,KAAM+I,GAAI+T,GAAItP,EAAMxN,KAAKwJ,KAAO,EAAG,IAEhD,CAACV,KAAM0E,EAAMxN,KAAM+I,GAAI+T,GAAItP,EAAMxN,KAAKwJ,KAAMsL,GACzD,CACE,MAAO,CAAChM,KAAM0E,EAAM1E,OAAQC,GAAIyE,EAAMzE,KAE1C,GAAI,EACJ04C,WAAY,SAAUz4C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GAAS,MAAO,CACnF1E,KAAMgU,GAAItP,EAAM1E,OAAOU,KAAM,GAC7BT,GAAIuU,GAAQtU,EAAG0S,IAAKoB,GAAItP,EAAMzE,KAAKS,KAAO,EAAG,IAC3C,GAAI,EACRk4C,YAAa,SAAU14C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GAAS,MAAO,CACpF1E,KAAMgU,GAAItP,EAAM1E,OAAOU,KAAM,GAAIT,GAAIyE,EAAM1E,OACzC,GAAI,EACR64C,mBAAoB,SAAU34C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GAC3E,IAAI2kB,EAAMnpB,EAAGstB,WAAW9oB,EAAMxN,KAAM,OAAOmyB,IAAM,EAEjD,MAAO,CAACrpB,KADME,EAAGguB,WAAW,CAACje,KAAM,EAAGoZ,IAAKA,GAAM,OAC1BppB,GAAIyE,EAAM1E,OACnC,GAAI,EACJ84C,oBAAqB,SAAU54C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GAC5E,IAAI2kB,EAAMnpB,EAAGstB,WAAW9oB,EAAMxN,KAAM,OAAOmyB,IAAM,EAC7C0vB,EAAW74C,EAAGguB,WAAW,CAACje,KAAM/P,EAAG/C,QAAQ64B,QAAQrmB,YAAc,IAAK0Z,IAAKA,GAAM,OACrF,MAAO,CAACrpB,KAAM0E,EAAM1E,OAAQC,GAAI84C,EAClC,GAAI,EACJzxD,KAAM,SAAU4Y,GAAM,OAAOA,EAAG5Y,MAAQ,EACxCE,KAAM,SAAU0Y,GAAM,OAAOA,EAAG1Y,MAAQ,EACxCwpD,cAAe,SAAU9wC,GAAM,OAAOA,EAAG8wC,eAAiB,EAC1DC,cAAe,SAAU/wC,GAAM,OAAOA,EAAG+wC,eAAiB,EAC1D+H,WAAY,SAAU94C,GAAM,OAAOA,EAAGmpC,gBAAgBr1B,GAAI9T,EAAG4lC,YAAa,GAAK,EAC/EmT,SAAU,SAAU/4C,GAAM,OAAOA,EAAGmpC,gBAAgBr1B,GAAI9T,EAAGme,YAAc,EACzE66B,YAAa,SAAUh5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GAAS,OAAOgO,GAAUxS,EAAIwE,EAAMxN,KAAKwJ,KAAO,GAClH,CAAC6H,OAAQ,QAASmhB,KAAM,GACvB,EACHyvB,iBAAkB,SAAUj5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GAAS,OAAO00C,GAAel5C,EAAIwE,EAAMxN,KAAO,GACvH,CAACqR,OAAQ,QAASmhB,KAAM,GACvB,EACH2vB,UAAW,SAAUn5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GAAS,OAAO40C,GAAQp5C,EAAIwE,EAAMxN,KAAKwJ,KAAO,GAC9G,CAAC6H,OAAQ,QAASmhB,MAAO,GACxB,EACH6vB,YAAa,SAAUr5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GAClE,IAAI2kB,EAAMnpB,EAAGutB,aAAa/oB,EAAMxN,KAAM,OAAOmyB,IAAM,EACnD,OAAOnpB,EAAGguB,WAAW,CAACje,KAAM/P,EAAG/C,QAAQ64B,QAAQrmB,YAAc,IAAK0Z,IAAKA,GAAM,MAC/E,GAAG7gB,EAAW,EACdgxC,WAAY,SAAUt5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GACjE,IAAI2kB,EAAMnpB,EAAGutB,aAAa/oB,EAAMxN,KAAM,OAAOmyB,IAAM,EACnD,OAAOnpB,EAAGguB,WAAW,CAACje,KAAM,EAAGoZ,IAAKA,GAAM,MAC5C,GAAG7gB,EAAW,EACdixC,gBAAiB,SAAUv5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GACtE,IAAI2kB,EAAMnpB,EAAGutB,aAAa/oB,EAAMxN,KAAM,OAAOmyB,IAAM,EAC/CjnB,EAAMlC,EAAGguB,WAAW,CAACje,KAAM,EAAGoZ,IAAKA,GAAM,OAC7C,OAAIjnB,EAAIzB,GAAKT,EAAGyS,QAAQvQ,EAAI1B,MAAM0G,OAAO,MAAgBgyC,GAAel5C,EAAIwE,EAAMxN,MAC3EkL,CACT,GAAGoG,EAAW,EACdkxC,SAAU,SAAUx5C,GAAM,OAAOA,EAAGy5C,OAAO,EAAG,OAAS,EACvDC,WAAY,SAAU15C,GAAM,OAAOA,EAAGy5C,MAAM,EAAG,OAAS,EACxDE,SAAU,SAAU35C,GAAM,OAAOA,EAAGy5C,OAAO,EAAG,OAAS,EACvDG,WAAY,SAAU55C,GAAM,OAAOA,EAAGy5C,MAAM,EAAG,OAAS,EACxDI,WAAY,SAAU75C,GAAM,OAAOA,EAAG85C,OAAO,EAAG,OAAS,EACzDC,YAAa,SAAU/5C,GAAM,OAAOA,EAAG85C,MAAM,EAAG,OAAS,EACzDE,aAAc,SAAUh6C,GAAM,OAAOA,EAAG85C,OAAO,EAAG,SAAW,EAC7DG,cAAe,SAAUj6C,GAAM,OAAOA,EAAG85C,MAAM,EAAG,SAAW,EAC7DI,WAAY,SAAUl6C,GAAM,OAAOA,EAAG85C,OAAO,EAAG,OAAS,EACzDK,aAAc,SAAUn6C,GAAM,OAAOA,EAAG85C,MAAM,EAAG,QAAU,EAC3DM,YAAa,SAAUp6C,GAAM,OAAOA,EAAG85C,OAAO,EAAG,QAAU,EAC3DO,YAAa,SAAUr6C,GAAM,OAAOA,EAAG85C,MAAM,EAAG,OAAS,EACzDQ,cAAe,SAAUt6C,GAAM,OAAOA,EAAGu6C,SAAS,EAAG,YAAc,EACnEC,aAAc,SAAUx6C,GAAM,OAAOA,EAAGu6C,QAAQ,EAAG,OAAS,EAC5DE,cAAe,SAAUz6C,GAAM,OAAOA,EAAGu6C,SAAS,EAAG,OAAS,EAC9DG,aAAc,SAAU16C,GAAM,OAAOA,EAAGu6C,QAAQ,EAAG,OAAS,EAC5DI,eAAgB,SAAU36C,GAAM,OAAOA,EAAGu6C,SAAS,EAAG,QAAU,EAChEK,cAAe,SAAU56C,GAAM,OAAOA,EAAGu6C,QAAQ,EAAG,QAAU,EAC9DM,WAAY,SAAU76C,GAAM,OAAOA,EAAG86C,gBAAgB,QAAU,EAChEC,WAAY,SAAU/6C,GAAM,OAAOA,EAAG86C,gBAAgB,MAAQ,EAC9DE,WAAY,SAAUh7C,GAAM,OAAOA,EAAG86C,gBAAgB,WAAa,EACnEG,UAAW,SAAUj7C,GAAM,OAAOA,EAAG0wC,iBAAiB,KAAO,EAC7DwK,cAAe,SAAUl7C,GAEvB,IADA,IAAIm7C,EAAS,GAAIhpB,EAASnyB,EAAGqwC,iBAAkB/uC,EAAUtB,EAAG9c,QAAQoe,QAC3DphB,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAIgiB,EAAMiwB,EAAOjyC,GAAG4f,OAChB2I,EAAMzB,EAAYhH,EAAGyS,QAAQvQ,EAAI1B,MAAO0B,EAAIzB,GAAIa,GACpD65C,EAAOn2D,KAAK4jB,EAAStH,EAAUmH,EAAMnH,GACvC,CACAtB,EAAG4wC,kBAAkBuK,EACvB,EACAC,WAAY,SAAUp7C,GAChBA,EAAGqkC,oBAAuBrkC,EAAG86C,gBAAgB,OAC1C96C,EAAGq7C,YAAY,YACxB,EAQAC,eAAgB,SAAUt7C,GAAM,OAAOi+B,GAAQj+B,GAAI,WAEjD,IADA,IAAImyB,EAASnyB,EAAGqwC,iBAAkBQ,EAAS,GAClC3wD,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IACjC,GAAKiyC,EAAOjyC,GAAGmyC,QAAf,CACA,IAAIpwB,EAAMkwB,EAAOjyC,GAAG8W,KAAMwJ,EAAOiS,GAAQzS,EAAG0S,IAAKzQ,EAAIzB,MAAMY,KAC3D,GAAIZ,EAEF,GADIyB,EAAIxB,IAAMD,EAAKxf,SAAUihB,EAAM,IAAI6R,GAAI7R,EAAIzB,KAAMyB,EAAIxB,GAAK,IAC1DwB,EAAIxB,GAAK,EACXwB,EAAM,IAAI6R,GAAI7R,EAAIzB,KAAMyB,EAAIxB,GAAK,GACjCT,EAAGO,aAAaC,EAAKvE,OAAOgG,EAAIxB,GAAK,GAAKD,EAAKvE,OAAOgG,EAAIxB,GAAK,GAC/CqT,GAAI7R,EAAIzB,KAAMyB,EAAIxB,GAAK,GAAIwB,EAAK,mBAC3C,GAAIA,EAAIzB,KAAOR,EAAG0S,IAAIxgB,MAAO,CAClC,IAAI3D,EAAOkkB,GAAQzS,EAAG0S,IAAKzQ,EAAIzB,KAAO,GAAGY,KACrC7S,IACF0T,EAAM,IAAI6R,GAAI7R,EAAIzB,KAAM,GACxBR,EAAGO,aAAaC,EAAKvE,OAAO,GAAK+D,EAAG0S,IAAIq9B,gBACxBxhD,EAAK0N,OAAO1N,EAAKvN,OAAS,GAC1B8yB,GAAI7R,EAAIzB,KAAO,EAAGjS,EAAKvN,OAAS,GAAIihB,EAAK,cAE7D,CAEF4uC,EAAO7rD,KAAK,IAAIo/C,GAAMniC,EAAKA,GAlBQ,CAoBrCjC,EAAGuwC,cAAcM,EACnB,GAAI,EACJ0K,iBAAkB,SAAUv7C,GAAM,OAAOi+B,GAAQj+B,GAAI,WAEnD,IADA,IAAIw7C,EAAOx7C,EAAGqwC,iBACLnwD,EAAIs7D,EAAKx6D,OAAS,EAAGd,GAAK,EAAGA,IAClC8f,EAAGO,aAAaP,EAAG0S,IAAIq9B,gBAAiByL,EAAKt7D,GAAGqvC,OAAQisB,EAAKt7D,GAAG8W,KAAM,UAC1EwkD,EAAOx7C,EAAGqwC,iBACV,IAAK,IAAIrkC,EAAM,EAAGA,EAAMwvC,EAAKx6D,OAAQgrB,IACjChM,EAAGkB,WAAWs6C,EAAKxvC,GAAKlM,OAAOU,KAAM,MAAM,GAC/C63B,GAAoBr4B,EACtB,GAAI,EACJy7C,SAAU,SAAUz7C,GAAM,OAAOA,EAAG0wC,iBAAiB,KAAM,QAAU,EACrEgL,gBAAiB,SAAU17C,GAAM,OAAOA,EAAG07C,iBAAmB,GAIhE,SAASlpC,GAAUxS,EAAIge,GACrB,IAAIxd,EAAOiS,GAAQzS,EAAG0S,IAAKsL,GACvB4wB,EAAShxB,GAAWpd,GAExB,OADIouC,GAAUpuC,IAAQwd,EAAQ5K,GAAOw7B,IAC9B0I,IAAU,EAAMt3C,EAAI4uC,EAAQ5wB,EAAO,EAC5C,CACA,SAASo7B,GAAQp5C,EAAIge,GACnB,IAAIxd,EAAOiS,GAAQzS,EAAG0S,IAAKsL,GACvB4wB,EAAS/wB,GAAcrd,GAE3B,OADIouC,GAAUpuC,IAAQwd,EAAQ5K,GAAOw7B,IAC9B0I,IAAU,EAAMt3C,EAAIQ,EAAMwd,GAAQ,EAC3C,CACA,SAASk7B,GAAel5C,EAAIkC,GAC1B,IAAI7F,EAAQmW,GAAUxS,EAAIkC,EAAI1B,MAC1BA,EAAOiS,GAAQzS,EAAG0S,IAAKrW,EAAMmE,MAC7BkK,EAAQ0C,GAAS5M,EAAMR,EAAG0S,IAAI9G,WAClC,IAAKlB,GAA2B,GAAlBA,EAAM,GAAGG,MAAY,CACjC,IAAI8wC,EAAapvD,KAAKC,IAAI6P,EAAMoE,GAAID,EAAKY,KAAK8F,OAAO,OACjD00C,EAAO15C,EAAI1B,MAAQnE,EAAMmE,MAAQ0B,EAAIzB,IAAMk7C,GAAcz5C,EAAIzB,GACjE,OAAOqT,GAAIzX,EAAMmE,KAAMo7C,EAAO,EAAID,EAAYt/C,EAAM2O,OACtD,CACA,OAAO3O,CACT,CAGA,SAASw/C,GAAgB77C,EAAI87C,EAAOC,GAClC,GAAoB,iBAATD,KACTA,EAAQxD,GAASwD,IACH,OAAO,EAIvB97C,EAAG/C,QAAQ0kB,MAAMq6B,eACjB,IAAIC,EAAYj8C,EAAG/C,QAAQ/Y,MAAOuP,GAAO,EACzC,IACMuM,EAAGszC,eAAgBtzC,EAAGV,MAAM8rC,eAAgB,GAC5C2Q,IAAa/7C,EAAG/C,QAAQ/Y,OAAQ,GACpCuP,EAAOqoD,EAAM97C,IAAOgI,CAItB,CAHE,QACAhI,EAAG/C,QAAQ/Y,MAAQ+3D,EACnBj8C,EAAGV,MAAM8rC,eAAgB,CAC3B,CACA,OAAO33C,CACT,CAEA,SAASyoD,GAAmBl8C,EAAIhW,EAAM6iD,GACpC,IAAK,IAAI3sD,EAAI,EAAGA,EAAI8f,EAAGV,MAAM68C,QAAQn7D,OAAQd,IAAK,CAChD,IAAIqN,EAAS4oD,GAAUnsD,EAAMgW,EAAGV,MAAM68C,QAAQj8D,GAAI2sD,EAAQ7sC,GAC1D,GAAIzS,EAAU,OAAOA,CACvB,CACA,OAAQyS,EAAG9c,QAAQk5D,WAAajG,GAAUnsD,EAAMgW,EAAG9c,QAAQk5D,UAAWvP,EAAQ7sC,IACzEm2C,GAAUnsD,EAAMgW,EAAG9c,QAAQyyD,OAAQ9I,EAAQ7sC,EAClD,CAKA,IAAIq8C,GAAU,IAAI70C,EAElB,SAAS80C,GAAYt8C,EAAIhW,EAAMuB,EAAGshD,GAChC,IAAI0P,EAAMv8C,EAAGV,MAAMk9C,OACnB,GAAID,EAAK,CACP,GAAIjG,GAActsD,GAAS,MAAO,UAUlC,GATI,MAAMK,KAAKL,GACXgW,EAAGV,MAAMk9C,OAAS,KAElBH,GAAQv2D,IAAI,IAAI,WACZka,EAAGV,MAAMk9C,QAAUD,IACrBv8C,EAAGV,MAAMk9C,OAAS,KAClBx8C,EAAG/C,QAAQ0kB,MAAMp7B,QAErB,IACEk2D,GAAiBz8C,EAAIu8C,EAAM,IAAMvyD,EAAMuB,EAAGshD,GAAW,OAAO,CAClE,CACA,OAAO4P,GAAiBz8C,EAAIhW,EAAMuB,EAAGshD,EACvC,CAEA,SAAS4P,GAAiBz8C,EAAIhW,EAAMuB,EAAGshD,GACrC,IAAIt/C,EAAS2uD,GAAmBl8C,EAAIhW,EAAM6iD,GAY1C,MAVc,SAAVt/C,IACAyS,EAAGV,MAAMk9C,OAASxyD,GACR,WAAVuD,GACAi2B,GAAYxjB,EAAI,aAAcA,EAAIhW,EAAMuB,GAE9B,WAAVgC,GAAiC,SAAVA,IACzBghB,GAAiBhjB,GACjBqpC,GAAa50B,MAGNzS,CACX,CAGA,SAASmvD,GAAiB18C,EAAIzU,GAC5B,IAAIvB,EAAO6sD,GAAQtrD,GAAG,GACtB,QAAKvB,IAEDuB,EAAEqrD,WAAa52C,EAAGV,MAAMk9C,OAInBF,GAAYt8C,EAAI,SAAWhW,EAAMuB,GAAG,SAAUsa,GAAK,OAAOg2C,GAAgB77C,EAAI6F,GAAG,EAAO,KACxFy2C,GAAYt8C,EAAIhW,EAAMuB,GAAG,SAAUsa,GACjC,GAAgB,iBAALA,EAAgB,WAAWxb,KAAKwb,GAAKA,EAAE82C,OAC9C,OAAOd,GAAgB77C,EAAI6F,EACjC,IAEAy2C,GAAYt8C,EAAIhW,EAAMuB,GAAG,SAAUsa,GAAK,OAAOg2C,GAAgB77C,EAAI6F,EAAI,IAElF,CAGA,SAAS+2C,GAAkB58C,EAAIzU,EAAGkV,GAChC,OAAO67C,GAAYt8C,EAAI,IAAMS,EAAK,IAAKlV,GAAG,SAAUsa,GAAK,OAAOg2C,GAAgB77C,EAAI6F,GAAG,EAAO,GAChG,CAEA,IAAIg3C,GAAiB,KACrB,SAASC,GAAUvxD,GACjB,IAAIyU,EAAK3f,KACT,KAAIkL,EAAEqb,QAAUrb,EAAEqb,QAAU5G,EAAG/C,QAAQ0kB,MAAMo7B,aAC7C/8C,EAAGkO,MAAMmnB,MAAQ7vB,IACbkI,GAAe1N,EAAIzU,KAAvB,CAEIyX,GAAMC,EAAa,IAAmB,IAAb1X,EAAEgrD,UAAiBhrD,EAAEijB,aAAc,GAChE,IAAInD,EAAO9f,EAAEgrD,QACbv2C,EAAG/C,QAAQ/Y,MAAgB,IAARmnB,GAAc9f,EAAEqrD,SACnC,IAAIoG,EAAUN,GAAiB18C,EAAIzU,GAC/B+X,IACFu5C,GAAiBG,EAAU3xC,EAAO,KAE7B2xC,GAAmB,IAAR3xC,GAAesF,MAAiB5M,EAAMxY,EAAEorD,QAAUprD,EAAE0jB,UAChEjP,EAAG0wC,iBAAiB,GAAI,KAAM,QAEhC9tC,IAAUmB,IAAQi5C,GAAmB,IAAR3xC,GAAc9f,EAAEqrD,WAAarrD,EAAE0jB,SAAWla,SAASsmD,aAChFtmD,SAASsmD,YAAY,OAGb,IAARhwC,GAAe,2BAA2BhhB,KAAK2V,EAAG/C,QAAQ64B,QAAQ7gC,YAClEgoD,GAAcj9C,EAjBkB,CAkBtC,CAEA,SAASi9C,GAAcj9C,GACrB,IAAI81B,EAAU91B,EAAG/C,QAAQ64B,QAGzB,SAASonB,EAAG3xD,GACO,IAAbA,EAAEgrD,SAAkBhrD,EAAEmrD,SACxBjyC,EAAQqxB,EAAS,wBACjBtqC,GAAIuJ,SAAU,QAASmoD,GACvB1xD,GAAIuJ,SAAU,YAAamoD,GAE/B,CARAv3C,EAASmwB,EAAS,wBASlBhuC,GAAGiN,SAAU,QAASmoD,GACtBp1D,GAAGiN,SAAU,YAAamoD,EAC5B,CAEA,SAASC,GAAQ5xD,GACE,IAAbA,EAAEgrD,UAAiBl2D,KAAKqyB,IAAIwf,IAAIhuC,OAAQ,GAC5CwpB,GAAertB,KAAMkL,EACvB,CAEA,SAAS6xD,GAAW7xD,GAClB,IAAIyU,EAAK3f,KACT,KAAIkL,EAAEqb,QAAUrb,EAAEqb,QAAU5G,EAAG/C,QAAQ0kB,MAAMo7B,YACzC51B,GAAcnnB,EAAG/C,QAAS1R,IAAMmiB,GAAe1N,EAAIzU,IAAMA,EAAE0jB,UAAY1jB,EAAEmrD,QAAU3yC,GAAOxY,EAAEorD,SAAhG,CACA,IAAIJ,EAAUhrD,EAAEgrD,QAAS8G,EAAW9xD,EAAE8xD,SACtC,GAAI/5C,GAAUizC,GAAWsG,GAA6D,OAA5CA,GAAiB,UAAMtuC,GAAiBhjB,GAClF,IAAK+X,GAAY/X,EAAEnJ,SAASmJ,EAAEnJ,MAAQ,MAAQs6D,GAAiB18C,EAAIzU,GAAnE,CACA,IAAIkV,EAAKkT,OAAO+hC,aAAyB,MAAZ2H,EAAmB9G,EAAU8G,GAEhD,MAAN58C,IACAm8C,GAAkB58C,EAAIzU,EAAGkV,IAC7BT,EAAG/C,QAAQ0kB,MAAMy7B,WAAW7xD,GALoD,CAHkC,CASpH,CAEA,IAaI+xD,GAAWC,GAbXC,GAAoB,IAEpBC,GAAY,SAASh2C,EAAMvF,EAAK8M,GAClC3uB,KAAKonB,KAAOA,EACZpnB,KAAK6hB,IAAMA,EACX7hB,KAAK2uB,OAASA,CAChB,EAQA,SAAS0uC,GAAYx7C,EAAK8M,GACxB,IAAI2uC,GAAO,IAAIh2C,KACf,OAAI41C,IAAmBA,GAAgBK,QAAQD,EAAKz7C,EAAK8M,IACvDsuC,GAAYC,GAAkB,KACvB,UACED,IAAaA,GAAUM,QAAQD,EAAKz7C,EAAK8M,IAClDuuC,GAAkB,IAAIE,GAAUE,EAAKz7C,EAAK8M,GAC1CsuC,GAAY,KACL,WAEPA,GAAY,IAAIG,GAAUE,EAAKz7C,EAAK8M,GACpCuuC,GAAkB,KACX,SAEX,CAOA,SAASM,GAAYtyD,GACnB,IAAIyU,EAAK3f,KAAM4c,EAAU+C,EAAG/C,QAC5B,KAAIyQ,GAAe1N,EAAIzU,IAAM0R,EAAQmlC,aAAenlC,EAAQ0kB,MAAMm8B,iBAIlE,GAHA7gD,EAAQ0kB,MAAMq6B,eACd/+C,EAAQ/Y,MAAQqH,EAAEqrD,SAEdzvB,GAAclqB,EAAS1R,GACpB2X,IAGHjG,EAAQorB,SAAS4Z,WAAY,EAC7Br6B,YAAW,WAAc,OAAO3K,EAAQorB,SAAS4Z,WAAY,CAAM,GAAG,WAI1E,IAAI8b,GAAc/9C,EAAIzU,GAAtB,CACA,IAAI2W,EAAM8tB,GAAahwB,EAAIzU,GAAIyjB,EAASD,GAASxjB,GAAIyyD,EAAS97C,EAAMw7C,GAAYx7C,EAAK8M,GAAU,SAC/F5uB,OAAOi1C,QAGO,GAAVrmB,GAAehP,EAAGV,MAAM2+C,eACxBj+C,EAAGV,MAAM2+C,cAAc1yD,GAEvB2W,GAAOg8C,GAAmBl+C,EAAIgP,EAAQ9M,EAAK87C,EAAQzyD,KAEzC,GAAVyjB,EACE9M,EAAOi8C,GAAen+C,EAAIkC,EAAK87C,EAAQzyD,GAClCsjB,GAAStjB,IAAM0R,EAAQorB,UAAY9Z,GAAiBhjB,GAC1C,GAAVyjB,GACL9M,GAAOinC,GAAgBnpC,EAAG0S,IAAKxQ,GACnC0F,YAAW,WAAc,OAAO3K,EAAQ0kB,MAAM0T,OAAS,GAAG,KACvC,GAAVrmB,IACL3K,EAAqBrE,EAAG/C,QAAQ0kB,MAAMy8B,cAAc7yD,GACjDgqC,GAAev1B,IAlBW,CAoBrC,CAEA,SAASk+C,GAAmBl+C,EAAIgP,EAAQ9M,EAAK87C,EAAQhrD,GACnD,IAAIhJ,EAAO,QAKX,MAJc,UAAVg0D,EAAsBh0D,EAAO,SAAWA,EACzB,UAAVg0D,IAAsBh0D,EAAO,SAAWA,GAG1CsyD,GAAYt8C,EAAKw2C,GAFxBxsD,GAAkB,GAAVglB,EAAc,OAAmB,GAAVA,EAAc,SAAW,SAAWhlB,EAEpBgJ,GAAQA,GAAO,SAAU8oD,GAEtE,GADoB,iBAATA,IAAqBA,EAAQxD,GAASwD,KAC5CA,EAAS,OAAO,EACrB,IAAIroD,GAAO,EACX,IACMuM,EAAGszC,eAAgBtzC,EAAGV,MAAM8rC,eAAgB,GAChD33C,EAAOqoD,EAAM97C,EAAIkC,IAAQ8F,CAG3B,CAFE,QACAhI,EAAGV,MAAM8rC,eAAgB,CAC3B,CACA,OAAO33C,CACT,GACF,CAEA,SAAS4qD,GAAer+C,EAAIg+C,EAAQhrD,GAClC,IAAIsrD,EAASt+C,EAAGuB,UAAU,kBACtBxZ,EAAQu2D,EAASA,EAAOt+C,EAAIg+C,EAAQhrD,GAAS,CAAC,EAClD,GAAkB,MAAdjL,EAAMw2D,KAAc,CACtB,IAAI51B,EAAO3kB,EAAWhR,EAAM4jD,UAAY5jD,EAAM2jD,QAAU3jD,EAAM0jD,OAC9D3uD,EAAMw2D,KAAO51B,EAAO,YAAwB,UAAVq1B,EAAqB,OAAmB,UAAVA,EAAqB,OAAS,MAChG,CAIA,OAHoB,MAAhBj2D,EAAMf,QAAkBgZ,EAAG0S,IAAI1rB,UAAUe,EAAMf,OAASgZ,EAAG0S,IAAI1rB,QAAUgM,EAAM4jD,UAC/D,MAAhB7uD,EAAMy2D,SAAkBz2D,EAAMy2D,OAASz6C,EAAM/Q,EAAM2jD,QAAU3jD,EAAMic,SAC/C,MAApBlnB,EAAM02D,aAAsB12D,EAAM02D,aAAe16C,EAAM/Q,EAAM0jD,OAAS1jD,EAAMic,UACzElnB,CACT,CAEA,SAASo2D,GAAen+C,EAAIkC,EAAK87C,EAAQhrD,GACnCgQ,EAAM4E,WAAWxb,EAAKgpC,GAAap1B,GAAK,GACrCA,EAAGkO,MAAMmnB,MAAQ7vB,IAExB,IAEsBk5C,EAFlBC,EAAWN,GAAer+C,EAAIg+C,EAAQhrD,GAEtCk/B,EAAMlyB,EAAG0S,IAAIwf,IACblyB,EAAG9c,QAAQ07D,UAAYxvC,KAAgBpP,EAAGszC,cAChC,UAAV0K,IAAuBU,EAAYxsB,EAAIntC,SAASmd,KAAS,IACxD6R,IAAK2qC,EAAYxsB,EAAIC,OAAOusB,IAAY5+C,OAAQoC,GAAO,GAAKA,EAAI6rB,KAAO,KACvEha,GAAI2qC,EAAU3+C,KAAMmC,GAAO,GAAKA,EAAI6rB,KAAO,GAC5C8wB,GAAoB7+C,EAAIhN,EAAOkP,EAAKy8C,GAEpCG,GAAiB9+C,EAAIhN,EAAOkP,EAAKy8C,EACvC,CAIA,SAASE,GAAoB7+C,EAAIhN,EAAOkP,EAAKy8C,GAC3C,IAAI1hD,EAAU+C,EAAG/C,QAAS8hD,GAAQ,EAC9BC,EAAU1+C,GAAUN,GAAI,SAAUzU,GAChC2X,IAAUjG,EAAQorB,SAAS4Z,WAAY,GAC3CjiC,EAAGV,MAAMm2B,cAAe,EACpBz1B,EAAGV,MAAMk2B,oBACPx1B,EAAGk1B,WAAcl1B,EAAGV,MAAMk2B,mBAAoB,EAC3CD,GAAev1B,IAExBxU,GAAIyR,EAAQgqB,QAAQ1W,cAAe,UAAWyuC,GAC9CxzD,GAAIyR,EAAQgqB,QAAQ1W,cAAe,YAAa0uC,GAChDzzD,GAAIyR,EAAQorB,SAAU,YAAa62B,GACnC1zD,GAAIyR,EAAQorB,SAAU,OAAQ22B,GACzBD,IACHxwC,GAAiBhjB,GACZozD,EAASH,QACVrV,GAAgBnpC,EAAG0S,IAAKxQ,EAAK,KAAM,KAAMy8C,EAAS33D,QAEjDkc,IAAWK,GAAWP,GAAoB,GAAdC,EAC7B2E,YAAW,WAAa3K,EAAQgqB,QAAQ1W,cAAcpT,KAAKk4B,MAAM,CAAC8pB,eAAe,IAAQliD,EAAQ0kB,MAAM0T,OAAQ,GAAG,IAElHp4B,EAAQ0kB,MAAM0T,QAEtB,IACI4pB,EAAY,SAASG,GACvBL,EAAQA,GAASxyD,KAAK0kB,IAAIje,EAAMo9B,QAAUgvB,EAAGhvB,SAAW7jC,KAAK0kB,IAAIje,EAAMq9B,QAAU+uB,EAAG/uB,UAAY,EAClG,EACI6uB,EAAY,WAAc,OAAOH,GAAQ,CAAM,EAE/C77C,IAAUjG,EAAQorB,SAAS4Z,WAAY,GAC3CjiC,EAAGV,MAAMm2B,aAAeupB,EACxBA,EAAQ3mC,MAAQsmC,EAASF,WACzB32D,GAAGmV,EAAQgqB,QAAQ1W,cAAe,UAAWyuC,GAC7Cl3D,GAAGmV,EAAQgqB,QAAQ1W,cAAe,YAAa0uC,GAC/Cn3D,GAAGmV,EAAQorB,SAAU,YAAa62B,GAClCp3D,GAAGmV,EAAQorB,SAAU,OAAQ22B,GAE7Bh/C,EAAGV,MAAMk2B,mBAAoB,EAC7B5tB,YAAW,WAAc,OAAO3K,EAAQ0kB,MAAM0T,OAAS,GAAG,IAEtDp4B,EAAQorB,SAASu2B,UAAY3hD,EAAQorB,SAASu2B,UACpD,CAEA,SAASS,GAAar/C,EAAIkC,EAAKq8C,GAC7B,GAAY,QAARA,EAAkB,OAAO,IAAIna,GAAMliC,EAAKA,GAC5C,GAAY,QAARq8C,EAAkB,OAAOv+C,EAAGs/C,WAAWp9C,GAC3C,GAAY,QAARq8C,EAAkB,OAAO,IAAIna,GAAMtwB,GAAI5R,EAAI1B,KAAM,GAAI8T,GAAQtU,EAAG0S,IAAKoB,GAAI5R,EAAI1B,KAAO,EAAG,KAC3F,IAAIjT,EAASgxD,EAAKv+C,EAAIkC,GACtB,OAAO,IAAIkiC,GAAM72C,EAAOuS,KAAMvS,EAAOwS,GACvC,CAGA,SAAS++C,GAAiB9+C,EAAIhN,EAAOqJ,EAAOsiD,GACtC37C,GAAMuyB,GAAev1B,GACzB,IAAI/C,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IACnCnE,GAAiBvb,GAEjB,IAAIusD,EAAUC,EAAUC,EAAW/sC,EAAIwf,IAAKC,EAASstB,EAASttB,OAY9D,GAXIwsB,EAASH,SAAWG,EAAS33D,QAC/Bw4D,EAAW9sC,EAAIwf,IAAIntC,SAASsX,GAExBkjD,EADAC,GAAY,EACDrtB,EAAOqtB,GAEP,IAAIpb,GAAM/nC,EAAOA,KAEhCkjD,EAAW7sC,EAAIwf,IAAIN,UACnB4tB,EAAW9sC,EAAIwf,IAAIE,WAGA,aAAjBusB,EAASJ,KACNI,EAASH,SAAUe,EAAW,IAAInb,GAAM/nC,EAAOA,IACpDA,EAAQ2zB,GAAahwB,EAAIhN,GAAO,GAAM,GACtCwsD,GAAY,MACP,CACL,IAAIh7C,EAAQ66C,GAAar/C,EAAI3D,EAAOsiD,EAASJ,MAEzCgB,EADAZ,EAAS33D,OACEiiD,GAAYsW,EAAU/6C,EAAM+qB,OAAQ/qB,EAAMxN,KAAM2nD,EAAS33D,QAEzDwd,CACjB,CAEKm6C,EAASH,QAIU,GAAbgB,GACTA,EAAWrtB,EAAOnxC,OAClBshB,GAAaoQ,EAAK4xB,GAAmBtkC,EAAImyB,EAAO/sC,OAAO,CAACm6D,IAAYC,GACvD,CAACr3C,QAAQ,EAAOE,OAAQ,YAC5B8pB,EAAOnxC,OAAS,GAAKmxC,EAAOqtB,GAAUntB,SAA4B,QAAjBssB,EAASJ,OAAmBI,EAAS33D,QAC/Fsb,GAAaoQ,EAAK4xB,GAAmBtkC,EAAImyB,EAAOxxC,MAAM,EAAG6+D,GAAUp6D,OAAO+sC,EAAOxxC,MAAM6+D,EAAW,IAAK,GAC1F,CAACr3C,QAAQ,EAAOE,OAAQ,WACrCo3C,EAAW/sC,EAAIwf,KAEfoX,GAAoB52B,EAAK8sC,EAAUD,EAAUn3C,IAZ7Co3C,EAAW,EACXl9C,GAAaoQ,EAAK,IAAIqxB,GAAU,CAACwb,GAAW,GAAIn3C,GAChDq3C,EAAW/sC,EAAIwf,KAajB,IAAIwtB,EAAUrjD,EACd,SAASsjD,EAASz9C,GAChB,GAAyB,GAArB6R,GAAI2rC,EAASx9C,GAGjB,GAFAw9C,EAAUx9C,EAEW,aAAjBy8C,EAASJ,KAAqB,CAKhC,IAJA,IAAIpsB,EAAS,GAAI7wB,EAAUtB,EAAG9c,QAAQoe,QAClCs+C,EAAW54C,EAAYyL,GAAQC,EAAKrW,EAAMmE,MAAMY,KAAM/E,EAAMoE,GAAIa,GAChEu+C,EAAS74C,EAAYyL,GAAQC,EAAKxQ,EAAI1B,MAAMY,KAAMc,EAAIzB,GAAIa,GAC1DyO,EAAOxjB,KAAKiE,IAAIovD,EAAUC,GAAS7vC,EAAQzjB,KAAKC,IAAIozD,EAAUC,GACzDr/C,EAAOjU,KAAKiE,IAAI6L,EAAMmE,KAAM0B,EAAI1B,MAAO6B,EAAM9V,KAAKiE,IAAIwP,EAAGme,WAAY5xB,KAAKC,IAAI6P,EAAMmE,KAAM0B,EAAI1B,OAClGA,GAAQ6B,EAAK7B,IAAQ,CACxB,IAAIY,EAAOqR,GAAQC,EAAKlS,GAAMY,KAAM0+C,EAAUv3C,EAAWnH,EAAM2O,EAAMzO,GACjEyO,GAAQC,EACRmiB,EAAOntC,KAAK,IAAIo/C,GAAMtwB,GAAItT,EAAMs/C,GAAUhsC,GAAItT,EAAMs/C,KAC/C1+C,EAAKpgB,OAAS8+D,GACnB3tB,EAAOntC,KAAK,IAAIo/C,GAAMtwB,GAAItT,EAAMs/C,GAAUhsC,GAAItT,EAAM+H,EAAWnH,EAAM4O,EAAO1O,KAClF,CACK6wB,EAAOnxC,QAAUmxC,EAAOntC,KAAK,IAAIo/C,GAAM/nC,EAAOA,IACnDiG,GAAaoQ,EAAK4xB,GAAmBtkC,EAAIy/C,EAASttB,OAAOxxC,MAAM,EAAG6+D,GAAUp6D,OAAO+sC,GAASqtB,GAC/E,CAACn3C,OAAQ,SAAUF,QAAQ,IACxCnI,EAAG82B,eAAe50B,EACpB,KAAO,CACL,IAE8BlL,EAF1B+oD,EAAWR,EACX/6C,EAAQ66C,GAAar/C,EAAIkC,EAAKy8C,EAASJ,MACvChvB,EAASwwB,EAASxwB,OAClBxb,GAAIvP,EAAM+qB,OAAQA,GAAU,GAC9Bv4B,EAAOwN,EAAMxN,KACbu4B,EAASnb,GAAO2rC,EAASjgD,OAAQ0E,EAAM+qB,UAEvCv4B,EAAOwN,EAAM+qB,OACbA,EAASpb,GAAO4rC,EAAShgD,KAAMyE,EAAMxN,OAEvC,IAAIgpD,EAAWP,EAASttB,OAAOxxC,MAAM,GACrCq/D,EAASR,GAAYS,GAAajgD,EAAI,IAAIokC,GAAM9vB,GAAQ5B,EAAK6c,GAASv4B,IACtEsL,GAAaoQ,EAAK4xB,GAAmBtkC,EAAIggD,EAAUR,GAAWp3C,EAChE,CACF,CAEA,IAAI83C,EAAajjD,EAAQgqB,QAAQpX,wBAK7BswC,EAAU,EAEd,SAASn5D,EAAOuE,GACd,IAAI60D,IAAaD,EACbl+C,EAAM+tB,GAAahwB,EAAIzU,GAAG,EAAuB,aAAjBozD,EAASJ,MAC7C,GAAKt8C,EACL,GAAyB,GAArB8R,GAAI9R,EAAKy9C,GAAe,CAC1B1/C,EAAGkO,MAAMmnB,MAAQ7vB,IACjBm6C,EAAS19C,GACT,IAAI88B,EAAU1I,GAAap5B,EAASyV,IAChCzQ,EAAIzB,MAAQu+B,EAAQh/B,IAAMkC,EAAIzB,KAAOu+B,EAAQj/B,OAC7C8H,WAAWtH,GAAUN,GAAI,WAAiBmgD,GAAWC,GAAYp5D,EAAOuE,EAAK,IAAI,IACvF,KAAO,CACL,IAAIuiC,EAAUviC,EAAE8kC,QAAU6vB,EAAW/2B,KAAO,GAAK59B,EAAE8kC,QAAU6vB,EAAWh3B,OAAS,GAAK,EAClF4E,GAAWlmB,WAAWtH,GAAUN,GAAI,WAClCmgD,GAAWC,IACfnjD,EAAQorB,SAASqE,WAAaoB,EAC9B9mC,EAAOuE,GACT,IAAI,GACN,CACF,CAEA,SAASkI,EAAKlI,GACZyU,EAAGV,MAAM2+C,eAAgB,EACzBkC,EAAU14D,IAIN8D,IACFgjB,GAAiBhjB,GACjB0R,EAAQ0kB,MAAM0T,SAEhB7pC,GAAIyR,EAAQgqB,QAAQ1W,cAAe,YAAa8vC,GAChD70D,GAAIyR,EAAQgqB,QAAQ1W,cAAe,UAAW2sC,GAC9CxqC,EAAIrY,QAAQ+sC,cAAgB,IAC9B,CAEA,IAAIiZ,EAAO//C,GAAUN,GAAI,SAAUzU,GACf,IAAdA,EAAE+0D,SAAkBvxC,GAASxjB,GAC1BvE,EAAOuE,GADyBkI,EAAKlI,EAE9C,IACI2xD,EAAK58C,GAAUN,EAAIvM,GACvBuM,EAAGV,MAAM2+C,cAAgBf,EACzBp1D,GAAGmV,EAAQgqB,QAAQ1W,cAAe,YAAa8vC,GAC/Cv4D,GAAGmV,EAAQgqB,QAAQ1W,cAAe,UAAW2sC,EAC/C,CAIA,SAAS+C,GAAajgD,EAAIwE,GACxB,IAAI+qB,EAAS/qB,EAAM+qB,OACfv4B,EAAOwN,EAAMxN,KACbupD,EAAa9tC,GAAQzS,EAAG0S,IAAK6c,EAAO/uB,MACxC,GAAyB,GAArBuT,GAAIwb,EAAQv4B,IAAcu4B,EAAOvkB,QAAUhU,EAAKgU,OAAU,OAAOxG,EACrE,IAAIkG,EAAQ0C,GAASmzC,GACrB,IAAK71C,EAAS,OAAOlG,EACrB,IAAIrjB,EAAQ4pB,GAAcL,EAAO6kB,EAAO9uB,GAAI8uB,EAAOvkB,QAASJ,EAAOF,EAAMvpB,GACzE,GAAIypB,EAAK9K,MAAQyvB,EAAO9uB,IAAMmK,EAAK7K,IAAMwvB,EAAO9uB,GAAM,OAAO+D,EAC7D,IAKIyuB,EALAutB,EAAWr/D,GAAUypB,EAAK9K,MAAQyvB,EAAO9uB,KAAsB,GAAdmK,EAAKC,OAAc,EAAI,GAC5E,GAAgB,GAAZ21C,GAAiBA,GAAY91C,EAAM1pB,OAAU,OAAOwjB,EAKxD,GAAIxN,EAAKwJ,MAAQ+uB,EAAO/uB,KACtByyB,GAAYj8B,EAAKwJ,KAAO+uB,EAAO/uB,OAA6B,OAApBR,EAAG0S,IAAI9G,UAAqB,GAAK,GAAK,MACzE,CACL,IAAI60C,EAAY11C,GAAcL,EAAO1T,EAAKyJ,GAAIzJ,EAAKgU,QAC/Cd,EAAMu2C,EAAYt/D,IAAU6V,EAAKyJ,GAAK8uB,EAAO9uB,KAAqB,GAAdmK,EAAKC,OAAc,EAAI,GAE3EooB,EADAwtB,GAAaD,EAAW,GAAKC,GAAaD,EAC/Bt2C,EAAM,EAENA,EAAM,CACvB,CAEA,IAAIw2C,EAAUh2C,EAAM81C,GAAYvtB,GAAY,EAAI,IAC5CnzB,EAAOmzB,IAA8B,GAAjBytB,EAAQ71C,OAC5BpK,EAAKX,EAAO4gD,EAAQ5gD,KAAO4gD,EAAQ3gD,GAAIiL,EAASlL,EAAO,QAAU,SACrE,OAAOyvB,EAAO9uB,IAAMA,GAAM8uB,EAAOvkB,QAAUA,EAASxG,EAAQ,IAAI4/B,GAAM,IAAItwB,GAAIyb,EAAO/uB,KAAMC,EAAIuK,GAAShU,EAC1G,CAKA,SAAS2pD,GAAY3gD,EAAIzU,EAAG1I,EAAM+9D,GAChC,IAAIC,EAAIC,EACR,GAAIv1D,EAAEw1D,QACJF,EAAKt1D,EAAEw1D,QAAQ,GAAG3wB,QAClB0wB,EAAKv1D,EAAEw1D,QAAQ,GAAG1wB,aAElB,IAAMwwB,EAAKt1D,EAAE6kC,QAAS0wB,EAAKv1D,EAAE8kC,OACH,CAA1B,MAAMC,GAAO,OAAO,CAAM,CAE5B,GAAIuwB,GAAMt0D,KAAKie,MAAMxK,EAAG/C,QAAQ+pB,QAAQnX,wBAAwBG,OAAU,OAAO,EAC7E4wC,GAAWryC,GAAiBhjB,GAEhC,IAAI0R,EAAU+C,EAAG/C,QACb+jD,EAAU/jD,EAAQ64B,QAAQjmB,wBAE9B,GAAIixC,EAAKE,EAAQ93B,SAAW9a,GAAWpO,EAAInd,GAAS,OAAOirB,GAAmBviB,GAC9Eu1D,GAAME,EAAQ73B,IAAMlsB,EAAQ8vB,WAE5B,IAAK,IAAI7sC,EAAI,EAAGA,EAAI8f,EAAG/C,QAAQwoB,YAAYzkC,SAAUd,EAAG,CACtD,IAAIgJ,EAAI+T,EAAQ+pB,QAAQpiB,WAAW1kB,GACnC,GAAIgJ,GAAKA,EAAE2mB,wBAAwBG,OAAS6wC,EAI1C,OADApzC,GAAOzN,EAAInd,EAAMmd,EAFNsT,GAAatT,EAAG0S,IAAKouC,GACnB9gD,EAAG/C,QAAQwoB,YAAYvlC,GACF+U,UAAW1J,GACtCuiB,GAAmBviB,EAE9B,CACF,CAEA,SAASwyD,GAAc/9C,EAAIzU,GACzB,OAAOo1D,GAAY3gD,EAAIzU,EAAG,eAAe,EAC3C,CAOA,SAAS6yD,GAAcp+C,EAAIzU,GACrB47B,GAAcnnB,EAAG/C,QAAS1R,IAAM01D,GAAoBjhD,EAAIzU,IACxDmiB,GAAe1N,EAAIzU,EAAG,gBACrB8Y,GAAqBrE,EAAG/C,QAAQ0kB,MAAMy8B,cAAc7yD,EAC3D,CAEA,SAAS01D,GAAoBjhD,EAAIzU,GAC/B,QAAK6iB,GAAWpO,EAAI,sBACb2gD,GAAY3gD,EAAIzU,EAAG,qBAAqB,EACjD,CAEA,SAAS21D,GAAalhD,GACpBA,EAAG/C,QAAQgqB,QAAQhyB,UAAY+K,EAAG/C,QAAQgqB,QAAQhyB,UAAUnF,QAAQ,eAAgB,IAClFkQ,EAAG9c,QAAQi+D,MAAMrxD,QAAQ,aAAc,UACzCi8B,GAAY/rB,EACd,CAzYAy9C,GAAU/8D,UAAUk9D,QAAU,SAAUn2C,EAAMvF,EAAK8M,GACjD,OAAO3uB,KAAKonB,KAAO+1C,GAAoB/1C,GACf,GAAtBsM,GAAI7R,EAAK7hB,KAAK6hB,MAAa8M,GAAU3uB,KAAK2uB,MAC9C,EAwYA,IAAIoyC,GAAO,CAACn5C,SAAU,WAAW,MAAO,iBAAiB,GAErD9gB,GAAW,CAAC,EACZk6D,GAAiB,CAAC,EAEtB,SAASC,GAAcxiD,GACrB,IAAIuiD,EAAiBviD,EAAWuiD,eAEhC,SAAS/C,EAAOt0D,EAAMu3D,EAAO1U,EAAQ2U,GACnC1iD,EAAW3X,SAAS6C,GAAQu3D,EACxB1U,IAAUwU,EAAer3D,GAC3Bw3D,EAAY,SAAUxhD,EAAI1Z,EAAKsI,GAAUA,GAAOwyD,IAAQvU,EAAO7sC,EAAI1Z,EAAKsI,EAAO,EAAIi+C,EACvF,CAEA/tC,EAAW2iD,aAAenD,EAG1Bx/C,EAAWsiD,KAAOA,GAIlB9C,EAAO,QAAS,IAAI,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAGgwC,SAAS1pD,EAAM,IAAG,GACrEg4D,EAAO,OAAQ,MAAM,SAAUt+C,EAAI1Z,GACjC0Z,EAAG0S,IAAI2yB,WAAa/+C,EACpB8+C,GAASplC,EACX,IAAG,GAEHs+C,EAAO,aAAc,EAAGlZ,IAAU,GAClCkZ,EAAO,kBAAkB,GACzBA,EAAO,eAAe,GACtBA,EAAO,UAAW,GAAG,SAAUt+C,GAC7BslC,GAAetlC,GACf+rB,GAAY/rB,GACZywB,GAAUzwB,EACZ,IAAG,GAEHs+C,EAAO,gBAAiB,MAAM,SAAUt+C,EAAI1Z,GAE1C,GADA0Z,EAAG0S,IAAIi9B,QAAUrpD,EACZA,EAAL,CACA,IAAIo7D,EAAY,GAAItuC,EAASpT,EAAG0S,IAAIxgB,MACpC8N,EAAG0S,IAAIM,MAAK,SAAUxS,GACpB,IAAK,IAAI0B,EAAM,IAAK,CAClB,IAAIyI,EAAQnK,EAAKY,KAAKlc,QAAQoB,EAAK4b,GACnC,IAAc,GAAVyI,EAAe,MACnBzI,EAAMyI,EAAQrkB,EAAItF,OAClB0gE,EAAU18D,KAAK8uB,GAAIV,EAAQzI,GAC7B,CACAyI,GACF,IACA,IAAK,IAAIlzB,EAAIwhE,EAAU1gE,OAAS,EAAGd,GAAK,EAAGA,IACvCqgB,GAAaP,EAAG0S,IAAKpsB,EAAKo7D,EAAUxhE,GAAI4zB,GAAI4tC,EAAUxhE,GAAGsgB,KAAMkhD,EAAUxhE,GAAGugB,GAAKna,EAAItF,QAZtE,CAarB,IACAs9D,EAAO,eAAgB,8FAA8F,SAAUt+C,EAAI1Z,EAAKsI,GACtIoR,EAAGV,MAAMwhB,aAAe,IAAInmB,OAAOrU,EAAIsjB,QAAUtjB,EAAI+D,KAAK,MAAQ,GAAK,OAAQ,KAC3EuE,GAAOwyD,IAAQphD,EAAG2hD,SACxB,IACArD,EAAO,yBAA0B99B,IAA+B,SAAUxgB,GAAM,OAAOA,EAAG2hD,SAAW,IAAG,GACxGrD,EAAO,iBAAiB,GACxBA,EAAO,aAAcx6C,EAAS,kBAAoB,YAAY,WAC5D,MAAM,IAAI1R,MAAM,0DAClB,IAAG,GACHksD,EAAO,cAAc,GAAO,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG4hD,gBAAgBC,WAAav7D,CAAK,IAAG,GAChGg4D,EAAO,eAAe,GAAO,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG4hD,gBAAgBE,YAAcx7D,CAAK,IAAG,GAClGg4D,EAAO,kBAAkB,GAAO,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG4hD,gBAAgBG,eAAiBz7D,CAAK,IAAG,GACxGg4D,EAAO,mBAAoBr6C,GAC3Bq6C,EAAO,yBAAyB,GAEhCA,EAAO,QAAS,WAAW,SAAUt+C,GACnCkhD,GAAalhD,GACb+hC,GAAc/hC,EAChB,IAAG,GACHs+C,EAAO,SAAU,WAAW,SAAUt+C,EAAI1Z,EAAKsI,GAC7C,IAAI4E,EAAO4iD,GAAU9vD,GACjBiI,EAAOK,GAAOwyD,IAAQhL,GAAUxnD,GAChCL,GAAQA,EAAKyzD,QAAUzzD,EAAKyzD,OAAOhiD,EAAIxM,GACvCA,EAAKyuD,QAAUzuD,EAAKyuD,OAAOjiD,EAAIzR,GAAQ,KAC7C,IACA+vD,EAAO,YAAa,MACpBA,EAAO,iBAAkB,MAEzBA,EAAO,gBAAgB,EAAO4D,IAAiB,GAC/C5D,EAAO,UAAW,IAAI,SAAUt+C,EAAI1Z,GAClC0Z,EAAG/C,QAAQwoB,YAAcic,GAAWp7C,EAAK0Z,EAAG9c,QAAQiiC,aACpD4c,GAAc/hC,EAChB,IAAG,GACHs+C,EAAO,eAAe,GAAM,SAAUt+C,EAAI1Z,GACxC0Z,EAAG/C,QAAQ+pB,QAAQhqB,MAAM+S,KAAOzpB,EAAMopC,GAAqB1vB,EAAG/C,SAAW,KAAO,IAChF+C,EAAG2hD,SACL,IAAG,GACHrD,EAAO,8BAA8B,GAAO,SAAUt+C,GAAM,OAAOi7B,GAAiBj7B,EAAK,IAAG,GAC5Fs+C,EAAO,iBAAkB,UAAU,SAAUt+C,GAC3C67B,GAAe77B,GACfi7B,GAAiBj7B,GACjBA,EAAG/C,QAAQg8B,WAAWJ,aAAa74B,EAAG0S,IAAIga,WAC1C1sB,EAAG/C,QAAQg8B,WAAWzB,cAAcx3B,EAAG0S,IAAI4Z,WAC7C,IAAG,GACHgyB,EAAO,eAAe,GAAO,SAAUt+C,EAAI1Z,GACzC0Z,EAAG/C,QAAQwoB,YAAcic,GAAW1hC,EAAG9c,QAAQ8jC,QAAS1gC,GACxDy7C,GAAc/hC,EAChB,IAAG,GACHs+C,EAAO,kBAAmB,EAAGvc,IAAe,GAC5Cuc,EAAO,uBAAuB,SAAU6D,GAAW,OAAOA,CAAS,GAAGpgB,IAAe,GACrFuc,EAAO,2BAA2B,EAAO7sB,IAAiB,GAE1D6sB,EAAO,+BAA+B,GACtCA,EAAO,mBAAmB,GAC1BA,EAAO,0BAA0B,GACjCA,EAAO,sBAAsB,GAE7BA,EAAO,YAAY,GAAO,SAAUt+C,EAAI1Z,GAC3B,YAAPA,IACF6uC,GAAOn1B,GACPA,EAAG/C,QAAQ0kB,MAAMygC,QAEnBpiD,EAAG/C,QAAQ0kB,MAAM0gC,gBAAgB/7D,EACnC,IAEAg4D,EAAO,oBAAqB,MAAM,SAAUt+C,EAAI1Z,GAC9CA,EAAe,KAARA,EAAc,KAAOA,EAC5B0Z,EAAG/C,QAAQ0kB,MAAM2gC,yBAAyBh8D,EAC5C,IAEAg4D,EAAO,gBAAgB,GAAO,SAAUt+C,EAAI1Z,GAAWA,GAAO0Z,EAAG/C,QAAQ0kB,MAAMp7B,OAAU,IAAG,GAC5F+3D,EAAO,YAAY,EAAMiE,IACzBjE,EAAO,qBAAsB,MAE7BA,EAAO,kBAAmB,KAC1BA,EAAO,qBAAsB,GAC7BA,EAAO,eAAgB,EAAG7sB,IAAiB,GAC3C6sB,EAAO,6BAA6B,EAAM7sB,IAAiB,GAC3D6sB,EAAO,WAAY,KACnBA,EAAO,YAAa,KACpBA,EAAO,gBAAgB,EAAMhZ,IAAgB,GAC7CgZ,EAAO,gBAAgB,EAAOhZ,IAAgB,GAC9CgZ,EAAO,eAAgB,KACvBA,EAAO,YAAa,KAAK,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG0S,IAAIrY,QAAQysC,UAAYxgD,CAAK,IACrFg4D,EAAO,oBAAqB,MAC5BA,EAAO,iBAAkB,IAAI,SAAUt+C,GAAM,OAAOA,EAAG2hD,SAAW,IAAG,GACrErD,EAAO,qBAAsB,IAAOhZ,IAAgB,GACpDgZ,EAAO,uBAAuB,GAAM,SAAUt+C,EAAI1Z,GAC3CA,GAAO0Z,EAAG/C,QAAQ0kB,MAAM6gC,eAC/B,IAEAlE,EAAO,WAAY,MAAM,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG/C,QAAQ0kB,MAAMo7B,WAAW7/C,SAAW5W,GAAO,EAAI,IACvGg4D,EAAO,YAAa,MACpBA,EAAO,YAAa,OAAO,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG0S,IAAIqgC,aAAazsD,EAAM,IAAG,GACpFg4D,EAAO,UAAW,KACpB,CAEA,SAASiE,GAAgBviD,EAAIjY,EAAO6G,GAElC,IAAK7G,KADO6G,GAAOA,GAAOwyD,IACJ,CACpB,IAAIqB,EAAQziD,EAAG/C,QAAQylD,cACnBC,EAAS56D,EAAQD,GAAK0D,GAC1Bm3D,EAAO3iD,EAAG/C,QAAQorB,SAAU,YAAao6B,EAAMpmD,OAC/CsmD,EAAO3iD,EAAG/C,QAAQorB,SAAU,YAAao6B,EAAMG,OAC/CD,EAAO3iD,EAAG/C,QAAQorB,SAAU,WAAYo6B,EAAMI,MAC9CF,EAAO3iD,EAAG/C,QAAQorB,SAAU,YAAao6B,EAAMK,OAC/CH,EAAO3iD,EAAG/C,QAAQorB,SAAU,OAAQo6B,EAAMrrD,KAC5C,CACF,CAEA,SAAS8qD,GAAgBliD,GACnBA,EAAG9c,QAAQ2lC,cACbljB,EAAS3F,EAAG/C,QAAQgqB,QAAS,mBAC7BjnB,EAAG/C,QAAQoqB,MAAMrqB,MAAMi9B,SAAW,GAClCj6B,EAAG/C,QAAQk2B,WAAa,OAExB1uB,EAAQzE,EAAG/C,QAAQgqB,QAAS,mBAC5BtI,GAAY3e,IAEd8vB,GAAoB9vB,GACpBywB,GAAUzwB,GACV+rB,GAAY/rB,GACZ4H,YAAW,WAAc,OAAOqzB,GAAiBj7B,EAAK,GAAG,IAC3D,CAKA,SAASlB,GAAWgsB,EAAO5nC,GACzB,IAAI8qD,EAAS3tD,KAEb,KAAMA,gBAAgBye,IAAe,OAAO,IAAIA,GAAWgsB,EAAO5nC,GAElE7C,KAAK6C,QAAUA,EAAUA,EAAUyjB,EAAQzjB,GAAW,CAAC,EAEvDyjB,EAAQxf,GAAUjE,GAAS,GAE3B,IAAIwvB,EAAMxvB,EAAQ6E,MACA,iBAAP2qB,EAAmBA,EAAM,IAAIg9B,GAAIh9B,EAAKxvB,EAAQmd,KAAM,KAAMnd,EAAQ6sD,cAAe7sD,EAAQ0oB,WAC3F1oB,EAAQmd,OAAQqS,EAAI2yB,WAAaniD,EAAQmd,MAClDhgB,KAAKqyB,IAAMA,EAEX,IAAIiP,EAAQ,IAAI7iB,GAAWikD,YAAY7/D,EAAQ8/D,YAAY3iE,MACvD4c,EAAU5c,KAAK4c,QAAU,IAAI+kC,GAAQlX,EAAOpY,EAAKiP,EAAOz+B,GA2C5D,IAAK,IAAIyqD,KA1CT1wC,EAAQgqB,QAAQnoB,WAAaze,KAC7B6gE,GAAa7gE,MACT6C,EAAQ2lC,eACRxoC,KAAK4c,QAAQgqB,QAAQhyB,WAAa,oBACtC4mC,GAAex7C,MAEfA,KAAKif,MAAQ,CACX68C,QAAS,GACTzlC,SAAU,GACVN,QAAS,EACTvP,WAAW,EACX2uB,mBAAmB,EACnBX,SAAS,EACTuW,eAAe,EACf6X,eAAgB,EAAGC,aAAc,EACjCjF,eAAe,EACfxoB,cAAc,EACd2I,UAAW,IAAI52B,EACfg1C,OAAQ,KACR17B,aAAc,MAGZ59B,EAAQigE,YAAcr/C,GAAU7G,EAAQ0kB,MAAM0T,QAI9CryB,GAAMC,EAAa,IAAM2E,YAAW,WAAc,OAAOomC,EAAO/wC,QAAQ0kB,MAAMp7B,OAAM,EAAO,GAAG,IAElG68D,GAAsB/iE,MACtB+0D,KAEAnZ,GAAe57C,MACfA,KAAK6tB,MAAM4b,aAAc,EACzB4c,GAAUrmD,KAAMqyB,GAEXxvB,EAAQigE,YAAcr/C,GAAWzjB,KAAK60C,WACvCttB,YAAW,WACPomC,EAAO9Y,aAAe8Y,EAAO1uC,MAAMu1B,SAAWS,GAAQ0Y,EAC5D,GAAG,IAED7Y,GAAO90C,MAEKghE,GAAsBA,GAAet6C,eAAe4mC,IAChE0T,GAAe1T,GAAKttD,KAAM6C,EAAQyqD,GAAMyT,IAC5ClhB,GAA2B7/C,MACvB6C,EAAQmgE,YAAcngE,EAAQmgE,WAAWhjE,MAC7C,IAAK,IAAIH,EAAI,EAAGA,EAAIojE,GAAUtiE,SAAUd,EAAKojE,GAAUpjE,GAAGG,MAC1Dm8C,GAAan8C,MAGT6iB,GAAUhgB,EAAQ2lC,cACiC,sBAAnDhB,iBAAiB5qB,EAAQ64B,SAASytB,gBAClCtmD,EAAQ64B,QAAQ94B,MAAMumD,cAAgB,OAC5C,CAQA,SAASH,GAAsBpjD,GAC7B,IAAI4e,EAAI5e,EAAG/C,QACXnV,GAAG82B,EAAEyJ,SAAU,YAAa/nB,GAAUN,EAAI69C,KAGtC/1D,GAAG82B,EAAEyJ,SAAU,WADfrlB,GAAMC,EAAa,GACQ3C,GAAUN,GAAI,SAAUzU,GACnD,IAAImiB,GAAe1N,EAAIzU,GAAvB,CACA,IAAI2W,EAAM8tB,GAAahwB,EAAIzU,GAC3B,GAAK2W,IAAO67C,GAAc/9C,EAAIzU,KAAM47B,GAAcnnB,EAAG/C,QAAS1R,GAA9D,CACAgjB,GAAiBhjB,GACjB,IAAIi4D,EAAOxjD,EAAGs/C,WAAWp9C,GACzBinC,GAAgBnpC,EAAG0S,IAAK8wC,EAAKj0B,OAAQi0B,EAAKxsD,KAHiC,CAFvC,CAMtC,IAE6B,SAAUzL,GAAK,OAAOmiB,GAAe1N,EAAIzU,IAAMgjB,GAAiBhjB,EAAI,GAInGzD,GAAG82B,EAAEyJ,SAAU,eAAe,SAAU98B,GAAK,OAAO6yD,GAAcp+C,EAAIzU,EAAI,IAC1EzD,GAAG82B,EAAE+C,MAAMo7B,WAAY,eAAe,SAAUxxD,GACzCqzB,EAAEyJ,SAAStjC,SAASwG,EAAEqb,SAAWw3C,GAAcp+C,EAAIzU,EAC1D,IAGA,IAAIk4D,EAAeC,EAAY,CAACrhD,IAAK,GACrC,SAASshD,IACH/kC,EAAEwjB,cACJqhB,EAAgB77C,YAAW,WAAc,OAAOgX,EAAEwjB,YAAc,IAAM,GAAG,MACzEshB,EAAY9kC,EAAEwjB,aACJ//B,KAAO,IAAIsF,KAEzB,CACA,SAASi8C,EAAsBr4D,GAC7B,GAAwB,GAApBA,EAAEw1D,QAAQ//D,OAAe,OAAO,EACpC,IAAI6iE,EAAQt4D,EAAEw1D,QAAQ,GACtB,OAAO8C,EAAMC,SAAW,GAAKD,EAAME,SAAW,CAChD,CACA,SAASC,EAAQH,EAAOl2B,GACtB,GAAkB,MAAdA,EAAM5d,KAAgB,OAAO,EACjC,IAAI0yB,EAAK9U,EAAM5d,KAAO8zC,EAAM9zC,KAAM4yB,EAAKhV,EAAMxE,IAAM06B,EAAM16B,IACzD,OAAOsZ,EAAKA,EAAKE,EAAKA,EAAK,GAAK,EAClC,CACA76C,GAAG82B,EAAEyJ,SAAU,cAAc,SAAU98B,GACrC,IAAKmiB,GAAe1N,EAAIzU,KAAOq4D,EAAsBr4D,KAAOwyD,GAAc/9C,EAAIzU,GAAI,CAChFqzB,EAAE+C,MAAMq6B,eACRl0C,aAAa27C,GACb,IAAI9F,GAAO,IAAIh2C,KACfiX,EAAEwjB,YAAc,CAAC/lC,MAAOshD,EAAKoB,OAAO,EACnBxwD,KAAMovD,EAAM+F,EAAUrhD,KAAO,IAAMqhD,EAAY,MACxC,GAApBn4D,EAAEw1D,QAAQ//D,SACZ49B,EAAEwjB,YAAYryB,KAAOxkB,EAAEw1D,QAAQ,GAAGkD,MAClCrlC,EAAEwjB,YAAYjZ,IAAM59B,EAAEw1D,QAAQ,GAAGmD,MAErC,CACF,IACAp8D,GAAG82B,EAAEyJ,SAAU,aAAa,WACtBzJ,EAAEwjB,cAAexjB,EAAEwjB,YAAY2c,OAAQ,EAC7C,IACAj3D,GAAG82B,EAAEyJ,SAAU,YAAY,SAAU98B,GACnC,IAAIs4D,EAAQjlC,EAAEwjB,YACd,GAAIyhB,IAAU18B,GAAcvI,EAAGrzB,IAAoB,MAAds4D,EAAM9zC,OACtC8zC,EAAM9E,OAAS,IAAIp3C,KAAOk8C,EAAMxnD,MAAQ,IAAK,CAChD,IAAgDmI,EAA5CtC,EAAMlC,EAAGguB,WAAWpP,EAAEwjB,YAAa,QAEnC59B,GADCq/C,EAAMt1D,MAAQy1D,EAAQH,EAAOA,EAAMt1D,MAC5B,IAAI61C,GAAMliC,EAAKA,IACjB2hD,EAAMt1D,KAAKA,MAAQy1D,EAAQH,EAAOA,EAAMt1D,KAAKA,MAC3CyR,EAAGs/C,WAAWp9C,GAEd,IAAIkiC,GAAMtwB,GAAI5R,EAAI1B,KAAM,GAAI8T,GAAQtU,EAAG0S,IAAKoB,GAAI5R,EAAI1B,KAAO,EAAG,KAC1ER,EAAGsC,aAAakC,EAAM+qB,OAAQ/qB,EAAMxN,MACpCgJ,EAAGq1B,QACH9mB,GAAiBhjB,EACnB,CACAo4D,GACF,IACA77D,GAAG82B,EAAEyJ,SAAU,cAAes7B,GAI9B77D,GAAG82B,EAAEyJ,SAAU,UAAU,WACnBzJ,EAAEyJ,SAASG,eACb+O,GAAgBv3B,EAAI4e,EAAEyJ,SAASqE,WAC/B8K,GAAcx3B,EAAI4e,EAAEyJ,SAASiE,YAAY,GACzC7e,GAAOzN,EAAI,SAAUA,GAEzB,IAGAlY,GAAG82B,EAAEyJ,SAAU,cAAc,SAAU98B,GAAK,OAAO43C,GAAcnjC,EAAIzU,EAAI,IACzEzD,GAAG82B,EAAEyJ,SAAU,kBAAkB,SAAU98B,GAAK,OAAO43C,GAAcnjC,EAAIzU,EAAI,IAG7EzD,GAAG82B,EAAEqI,QAAS,UAAU,WAAc,OAAOrI,EAAEqI,QAAQyF,UAAY9N,EAAEqI,QAAQqF,WAAa,CAAG,IAE7F1N,EAAE8jC,cAAgB,CAChBE,MAAO,SAAUr3D,GAASmiB,GAAe1N,EAAIzU,IAAMqjB,GAAOrjB,EAAK,EAC/Ds3D,KAAM,SAAUt3D,GAASmiB,GAAe1N,EAAIzU,KAAMqpD,GAAW50C,EAAIzU,GAAIqjB,GAAOrjB,GAAK,EACjF8Q,MAAO,SAAU9Q,GAAK,OAAO+oD,GAAYt0C,EAAIzU,EAAI,EACjD6L,KAAMkJ,GAAUN,EAAIkzC,IACpB4P,MAAO,SAAUv3D,GAASmiB,GAAe1N,EAAIzU,IAAM4nD,GAAgBnzC,EAAM,GAG3E,IAAImkD,EAAMvlC,EAAE+C,MAAMo7B,WAClBj1D,GAAGq8D,EAAK,SAAS,SAAU54D,GAAK,OAAO4xD,GAAQl8D,KAAK+e,EAAIzU,EAAI,IAC5DzD,GAAGq8D,EAAK,UAAW7jD,GAAUN,EAAI88C,KACjCh1D,GAAGq8D,EAAK,WAAY7jD,GAAUN,EAAIo9C,KAClCt1D,GAAGq8D,EAAK,SAAS,SAAU54D,GAAK,OAAO+pC,GAAQt1B,EAAIzU,EAAI,IACvDzD,GAAGq8D,EAAK,QAAQ,SAAU54D,GAAK,OAAO4pC,GAAOn1B,EAAIzU,EAAI,GACvD,CAjHAuT,GAAW3X,SAAWA,GAEtB2X,GAAWuiD,eAAiBA,GAiH5B,IAAIiC,GAAY,GAQhB,SAASpiD,GAAWlB,EAAImH,EAAGi9C,EAAKC,GAC9B,IAAkB/kD,EAAdoT,EAAM1S,EAAG0S,IACF,MAAP0xC,IAAeA,EAAM,OACd,SAAPA,IAGG1xC,EAAIrS,KAAKikD,OACPhlD,EAAQ6X,GAAiBnX,EAAImH,GAAG7H,MADf8kD,EAAM,QAIhC,IAAI9iD,EAAUtB,EAAG9c,QAAQoe,QACrBd,EAAOiS,GAAQC,EAAKvL,GAAIo9C,EAAWv9C,EAAYxG,EAAKY,KAAM,KAAME,GAChEd,EAAK8W,aAAc9W,EAAK8W,WAAa,MACzC,IAAiDnC,EAA7CqvC,EAAiBhkD,EAAKY,KAAK1M,MAAM,QAAQ,GAC7C,GAAK2vD,GAAe,KAAKh6D,KAAKmW,EAAKY,OAG5B,GAAW,SAAPgjD,KACTjvC,EAAczC,EAAIrS,KAAKikD,OAAOhlD,EAAOkB,EAAKY,KAAKzgB,MAAM6jE,EAAexjE,QAASwf,EAAKY,QAC/D4G,GAAQmN,EAAc,KAAK,CAC5C,IAAKkvC,EAAc,OACnBD,EAAM,MACR,OAPAjvC,EAAc,EACdivC,EAAM,MAQG,QAAPA,EACmBjvC,EAAjBhO,EAAIuL,EAAIxgB,MAAuB8U,EAAYyL,GAAQC,EAAKvL,EAAE,GAAG/F,KAAM,KAAME,GACxD,EACL,OAAP8iD,EACTjvC,EAAcovC,EAAWvkD,EAAG9c,QAAQuhE,WACpB,YAAPL,EACTjvC,EAAcovC,EAAWvkD,EAAG9c,QAAQuhE,WACb,iBAAPL,IAChBjvC,EAAcovC,EAAWH,GAE3BjvC,EAAc5oB,KAAKC,IAAI,EAAG2oB,GAE1B,IAAIuvC,EAAe,GAAIxiD,EAAM,EAC7B,GAAIlC,EAAG9c,QAAQyhE,eACX,IAAK,IAAIzkE,EAAIqM,KAAKie,MAAM2K,EAAc7T,GAAUphB,IAAKA,EAAIgiB,GAAOZ,EAASojD,GAAgB,KAG7F,GAFIxiD,EAAMiT,IAAeuvC,GAAgB97C,EAASuM,EAAcjT,IAE5DwiD,GAAgBF,EAGlB,OAFAjkD,GAAamS,EAAKgyC,EAAc5wC,GAAI3M,EAAG,GAAI2M,GAAI3M,EAAGq9C,EAAexjE,QAAS,UAC1Ewf,EAAK8W,WAAa,MACX,EAIP,IAAK,IAAItL,EAAM,EAAGA,EAAM0G,EAAIwf,IAAIC,OAAOnxC,OAAQgrB,IAAO,CACpD,IAAIxH,EAAQkO,EAAIwf,IAAIC,OAAOnmB,GAC3B,GAAIxH,EAAMxN,KAAKwJ,MAAQ2G,GAAK3C,EAAMxN,KAAKyJ,GAAK+jD,EAAexjE,OAAQ,CACjE,IAAI4jE,EAAQ9wC,GAAI3M,EAAGq9C,EAAexjE,QAClCsoD,GAAoB52B,EAAK1G,EAAK,IAAIo4B,GAAMwgB,EAAOA,IAC/C,KACF,CACF,CAEJ,CAhEA9lD,GAAW+lD,eAAiB,SAAUn+C,GAAK,OAAO48C,GAAUt+D,KAAK0hB,EAAI,EAqErE,IAAIo+C,GAAa,KAEjB,SAASC,GAAcC,GACrBF,GAAaE,CACf,CAEA,SAASC,GAAejlD,EAAIklD,EAAUC,EAASjzB,EAAK7pB,GAClD,IAAIqK,EAAM1S,EAAG0S,IACb1S,EAAG/C,QAAQ/Y,OAAQ,EACdguC,IAAOA,EAAMxf,EAAIwf,KAEtB,IAAIkzB,GAAU,IAAIz9C,KAAO,IACrB09C,EAAkB,SAAVh9C,GAAqBrI,EAAGV,MAAM2jD,cAAgBmC,EACtDE,EAAYr1C,GAAei1C,GAAWK,EAAa,KAEvD,GAAIF,GAASnzB,EAAIC,OAAOnxC,OAAS,EAC/B,GAAI8jE,IAAcA,GAAW1jD,KAAK0uC,KAAK,OAASoV,GAC9C,GAAIhzB,EAAIC,OAAOnxC,OAAS8jE,GAAW1jD,KAAKpgB,QAAU,EAAG,CACnDukE,EAAa,GACb,IAAK,IAAIrlE,EAAI,EAAGA,EAAI4kE,GAAW1jD,KAAKpgB,OAAQd,IACxCqlE,EAAWvgE,KAAK0tB,EAAI45B,WAAWwY,GAAW1jD,KAAKlhB,IACrD,OACSolE,EAAUtkE,QAAUkxC,EAAIC,OAAOnxC,QAAUgf,EAAG9c,QAAQsiE,yBAC7DD,EAAapgE,EAAImgE,GAAW,SAAUhjE,GAAK,MAAO,CAACA,EAAI,KAM3D,IAFA,IAAI45C,EAAcl8B,EAAGkO,MAAMguB,YAElBlwB,EAAMkmB,EAAIC,OAAOnxC,OAAS,EAAGgrB,GAAO,EAAGA,IAAO,CACrD,IAAIxH,EAAQ0tB,EAAIC,OAAOnmB,GACnBlM,EAAO0E,EAAM1E,OAAQC,EAAKyE,EAAMzE,KAChCyE,EAAM6tB,UACJ8yB,GAAWA,EAAU,EACrBrlD,EAAOgU,GAAIhU,EAAKU,KAAMV,EAAKW,GAAK0kD,GAC3BnlD,EAAGV,MAAMuH,YAAcw+C,EAC5BtlD,EAAK+T,GAAI/T,EAAGS,KAAMjU,KAAKiE,IAAIiiB,GAAQC,EAAK3S,EAAGS,MAAMY,KAAKpgB,OAAQ+e,EAAGU,GAAKoI,EAAIy8C,GAAWtkE,SAChFqkE,GAASP,IAAcA,GAAWW,UAAYX,GAAW1jD,KAAK0uC,KAAK,OAASwV,EAAUxV,KAAK,QAChGhwC,EAAOC,EAAK+T,GAAIhU,EAAKU,KAAM,KAEjC,IAAIklD,EAAc,CAAC5lD,KAAMA,EAAMC,GAAIA,EAAIqB,KAAMmkD,EAAaA,EAAWv5C,EAAMu5C,EAAWvkE,QAAUskE,EAC7Ej9C,OAAQA,IAAWg9C,EAAQ,QAAUrlD,EAAGV,MAAM4jD,YAAckC,EAAS,MAAQ,WAChGla,GAAWlrC,EAAG0S,IAAKgzC,GACnBliC,GAAYxjB,EAAI,YAAaA,EAAI0lD,EACnC,CACIR,IAAaG,GACbM,GAAgB3lD,EAAIklD,GAExB7sB,GAAoBr4B,GAChBA,EAAGkO,MAAMguB,YAAc,IAAKl8B,EAAGkO,MAAMguB,YAAcA,GACvDl8B,EAAGkO,MAAMiuB,QAAS,EAClBn8B,EAAGV,MAAM2jD,cAAgBjjD,EAAGV,MAAM4jD,aAAe,CACnD,CAEA,SAAS0C,GAAYr6D,EAAGyU,GACtB,IAAI6lD,EAASt6D,EAAEu6D,eAAiBv6D,EAAEu6D,cAAc1R,QAAQ,QACxD,GAAIyR,EAIF,OAHAt6D,EAAEqiB,iBACG5N,EAAGszC,cAAiBtzC,EAAG9c,QAAQ6iE,eAAgB/lD,EAAGk1B,YACnD+I,GAAQj+B,GAAI,WAAc,OAAOilD,GAAejlD,EAAI6lD,EAAQ,EAAG,KAAM,QAAU,KAC5E,CAEX,CAEA,SAASF,GAAgB3lD,EAAIklD,GAE3B,GAAKllD,EAAG9c,QAAQ8iE,eAAkBhmD,EAAG9c,QAAQ+iE,YAG7C,IAFA,IAAI/zB,EAAMlyB,EAAG0S,IAAIwf,IAERhyC,EAAIgyC,EAAIC,OAAOnxC,OAAS,EAAGd,GAAK,EAAGA,IAAK,CAC/C,IAAIskB,EAAQ0tB,EAAIC,OAAOjyC,GACvB,KAAIskB,EAAMxN,KAAKyJ,GAAK,KAAQvgB,GAAKgyC,EAAIC,OAAOjyC,EAAI,GAAG8W,KAAKwJ,MAAQgE,EAAMxN,KAAKwJ,MAA3E,CACA,IAAIH,EAAOL,EAAGkmD,UAAU1hD,EAAMxN,MAC1BqiB,GAAW,EACf,GAAIhZ,EAAK2lD,eACP,IAAK,IAAIl6D,EAAI,EAAGA,EAAIuU,EAAK2lD,cAAchlE,OAAQ8K,IAC3C,GAAIo5D,EAAShgE,QAAQmb,EAAK2lD,cAAc/pD,OAAOnQ,KAAO,EAAG,CACzDutB,EAAWnY,GAAWlB,EAAIwE,EAAMxN,KAAKwJ,KAAM,SAC3C,KACF,OACOH,EAAK8lD,eACV9lD,EAAK8lD,cAAc97D,KAAKooB,GAAQzS,EAAG0S,IAAKlO,EAAMxN,KAAKwJ,MAAMY,KAAKzgB,MAAM,EAAG6jB,EAAMxN,KAAKyJ,OAClF4Y,EAAWnY,GAAWlB,EAAIwE,EAAMxN,KAAKwJ,KAAM,UAE7C6Y,GAAYmK,GAAYxjB,EAAI,gBAAiBA,EAAIwE,EAAMxN,KAAKwJ,KAb6B,CAc/F,CACF,CAEA,SAAS4lD,GAAepmD,GAEtB,IADA,IAAIoB,EAAO,GAAI+wB,EAAS,GACfjyC,EAAI,EAAGA,EAAI8f,EAAG0S,IAAIwf,IAAIC,OAAOnxC,OAAQd,IAAK,CACjD,IAAIsgB,EAAOR,EAAG0S,IAAIwf,IAAIC,OAAOjyC,GAAG8W,KAAKwJ,KACjC6lD,EAAY,CAAC92B,OAAQzb,GAAItT,EAAM,GAAIxJ,KAAM8c,GAAItT,EAAO,EAAG,IAC3D2xB,EAAOntC,KAAKqhE,GACZjlD,EAAKpc,KAAKgb,EAAGY,SAASylD,EAAU92B,OAAQ82B,EAAUrvD,MACpD,CACA,MAAO,CAACoK,KAAMA,EAAM+wB,OAAQA,EAC9B,CAEA,SAASm0B,GAAoBC,EAAO1E,EAAYC,EAAaC,GAC3DwE,EAAMnhD,aAAa,cAAe08C,EAAc,GAAK,OACrDyE,EAAMnhD,aAAa,iBAAkB28C,EAAiB,GAAK,OAC3DwE,EAAMnhD,aAAa,eAAgBy8C,EACrC,CAEA,SAAS2E,KACP,IAAIl2C,EAAKvL,EAAI,WAAY,KAAM,KAAM,yGACjCsK,EAAMtK,EAAI,MAAO,CAACuL,GAAK,KAAM,kEAUjC,OALIpN,EAAUoN,EAAGtT,MAAMwpB,MAAQ,SACxBlW,EAAGlL,aAAa,OAAQ,OAE3BzB,IAAO2M,EAAGtT,MAAMypD,OAAS,mBAC7BH,GAAoBh2C,GACbjB,CACT,CAUA,SAASq3C,GAAiB5nD,GACxB,IAAIuiD,EAAiBviD,EAAWuiD,eAE5BsF,EAAU7nD,EAAW6nD,QAAU,CAAC,EAEpC7nD,EAAWpe,UAAY,CACrBsP,YAAa8O,EACbu2B,MAAO,WAAWj1C,OAAOi1C,QAASh1C,KAAK4c,QAAQ0kB,MAAM0T,OAAQ,EAE7DuxB,UAAW,SAAStI,EAAQv2D,GAC1B,IAAI7E,EAAU7C,KAAK6C,QAAS0L,EAAM1L,EAAQo7D,GACtCp7D,EAAQo7D,IAAWv2D,GAAmB,QAAVu2D,IAChCp7D,EAAQo7D,GAAUv2D,EACds5D,EAAet6C,eAAeu3C,IAC9Bh+C,GAAUjgB,KAAMghE,EAAe/C,GAA/Bh+C,CAAwCjgB,KAAM0H,EAAO6G,GACzD6e,GAAOptB,KAAM,eAAgBA,KAAMi+D,GACrC,EAEA/8C,UAAW,SAAS+8C,GAAS,OAAOj+D,KAAK6C,QAAQo7D,EAAO,EACxDuI,OAAQ,WAAY,OAAOxmE,KAAKqyB,GAAG,EAEnCo0C,UAAW,SAAS3hE,EAAK+jC,GACvB7oC,KAAKif,MAAM68C,QAAQjzB,EAAS,OAAS,WAAWktB,GAAUjxD,GAC5D,EACA4hE,aAAc,SAAS5hE,GAErB,IADA,IAAIi7B,EAAO//B,KAAKif,MAAM68C,QACbj8D,EAAI,EAAGA,EAAIkgC,EAAKp/B,SAAUd,EAC/B,GAAIkgC,EAAKlgC,IAAMiF,GAAOi7B,EAAKlgC,GAAG8J,MAAQ7E,EAEtC,OADAi7B,EAAKn7B,OAAO/E,EAAG,IACR,CAEb,EAEA8mE,WAAY9oB,IAAS,SAAS1sB,EAAMtuB,GAClC,IAAImd,EAAOmR,EAAKxP,MAAQwP,EAAO1S,EAAWqB,QAAQ9f,KAAK6C,QAASsuB,GAChE,GAAInR,EAAK+R,WAAc,MAAM,IAAIhgB,MAAM,iCACvC0W,EAAazoB,KAAKif,MAAMoX,SACX,CAACrW,KAAMA,EAAM4mD,SAAUz1C,EAAMoF,OAAQ1zB,GAAWA,EAAQ0zB,OACvD5N,SAAW9lB,GAAWA,EAAQ8lB,UAAa,IAC5C,SAAUyN,GAAW,OAAOA,EAAQzN,QAAU,IAC3D3oB,KAAKif,MAAM8W,UACXqa,GAAUpwC,KACZ,IACA6mE,cAAehpB,IAAS,SAAS1sB,GAE/B,IADA,IAAIkF,EAAWr2B,KAAKif,MAAMoX,SACjBx2B,EAAI,EAAGA,EAAIw2B,EAAS11B,SAAUd,EAAG,CACxC,IAAI+hB,EAAMyU,EAASx2B,GAAG+mE,SACtB,GAAIhlD,GAAOuP,GAAuB,iBAARA,GAAoBvP,EAAIjY,MAAQwnB,EAIxD,OAHAkF,EAASzxB,OAAO/E,EAAG,GACnBG,KAAKif,MAAM8W,eACXqa,GAAUpwC,KAGd,CACF,IAEA6gB,WAAYg9B,IAAS,SAAS/2B,EAAG+C,EAAKm6C,GAClB,iBAAPn6C,GAAiC,iBAAPA,IAChBA,EAAR,MAAPA,EAAqB7pB,KAAK6C,QAAQ+iE,YAAc,QAAU,OACjD/7C,EAAM,MAAQ,YAEzBuJ,GAAOpzB,KAAKqyB,IAAKvL,IAAMjG,GAAW7gB,KAAM8mB,EAAG+C,EAAKm6C,EACtD,IACAvJ,gBAAiB5c,IAAS,SAASkmB,GAEjC,IADA,IAAIjyB,EAAS9xC,KAAKqyB,IAAIwf,IAAIC,OAAQ9vB,GAAO,EAChCniB,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAIskB,EAAQ2tB,EAAOjyC,GACnB,GAAKskB,EAAM6tB,QASA7tB,EAAMxN,KAAKwJ,KAAO6B,IAC3BnB,GAAW7gB,KAAMmkB,EAAMxN,KAAKwJ,KAAM4jD,GAAK,GACvC/hD,EAAMmC,EAAMxN,KAAKwJ,KACbtgB,GAAKG,KAAKqyB,IAAIwf,IAAIE,WAAaiG,GAAoBh4C,WAZrC,CAClB,IAAIyf,EAAO0E,EAAM1E,OAAQC,EAAKyE,EAAMzE,KAChC1D,EAAQ9P,KAAKC,IAAI6V,EAAKvC,EAAKU,MAC/B6B,EAAM9V,KAAKiE,IAAInQ,KAAK89B,WAAYpe,EAAGS,MAAQT,EAAGU,GAAK,EAAI,IAAM,EAC7D,IAAK,IAAI3U,EAAIuQ,EAAOvQ,EAAIuW,IAAOvW,EAC3BoV,GAAW7gB,KAAMyL,EAAGs4D,GACxB,IAAI+C,EAAY9mE,KAAKqyB,IAAIwf,IAAIC,OACd,GAAXryB,EAAKW,IAAW0xB,EAAOnxC,QAAUmmE,EAAUnmE,QAAUmmE,EAAUjnE,GAAG4f,OAAOW,GAAK,GAC9E6oC,GAAoBjpD,KAAKqyB,IAAKxyB,EAAG,IAAIkkD,GAAMtkC,EAAMqnD,EAAUjnE,GAAG6f,MAAOmI,EAC3E,CAKF,CACF,IAIA9H,WAAY,SAAS8B,EAAKwV,GACxB,OAAOa,GAAUl4B,KAAM6hB,EAAKwV,EAC9B,EAEA0vC,cAAe,SAAS5mD,EAAMkX,GAC5B,OAAOa,GAAUl4B,KAAMyzB,GAAItT,GAAOkX,GAAS,EAC7C,EAEA2vC,eAAgB,SAASnlD,GACvBA,EAAMoS,GAAQj0B,KAAKqyB,IAAKxQ,GACxB,IAEIrf,EAFAg0B,EAASI,GAAc52B,KAAMoyB,GAAQpyB,KAAKqyB,IAAKxQ,EAAI1B,OACnDxd,EAAS,EAAGC,GAAS4zB,EAAO71B,OAAS,GAAK,EAAGyf,EAAKyB,EAAIzB,GAE1D,GAAU,GAANA,EAAW5d,EAAOg0B,EAAO,QACtB,OAAS,CACd,IAAIvM,EAAOtnB,EAASC,GAAU,EAC9B,IAAKqnB,EAAMuM,EAAa,EAANvM,EAAU,GAAK,IAAM7J,EAAMxd,EAAQqnB,MAChD,MAAIuM,EAAa,EAANvM,EAAU,GAAK7J,GAC1B,CAAE5d,EAAOg0B,EAAa,EAANvM,EAAU,GAAI,KAAM,CADJtnB,EAASsnB,EAAM,CACX,CAC3C,CACA,IAAIwmB,EAAMjuC,EAAOA,EAAKqC,QAAQ,aAAe,EAC7C,OAAO4rC,EAAM,EAAIjuC,EAAc,GAAPiuC,EAAW,KAAOjuC,EAAKlC,MAAM,EAAGmwC,EAAM,EAChE,EAEAo1B,UAAW,SAAShkD,GAClB,IAAI7B,EAAOhgB,KAAKqyB,IAAIrS,KACpB,OAAKA,EAAKH,UACHpB,EAAWoB,UAAUG,EAAMhgB,KAAK+f,WAAW8B,GAAK5C,OAAOe,KADhCA,CAEhC,EAEAinD,UAAW,SAASplD,EAAKrf,GACvB,OAAOxC,KAAKknE,WAAWrlD,EAAKrf,GAAM,EACpC,EAEA0kE,WAAY,SAASrlD,EAAKrf,GACxB,IAAI8nB,EAAQ,GACZ,IAAKg8C,EAAQ5/C,eAAelkB,GAAS,OAAO8nB,EAC5C,IAAI68C,EAAOb,EAAQ9jE,GAAOwd,EAAOhgB,KAAK6lE,UAAUhkD,GAChD,GAAyB,iBAAd7B,EAAKxd,GACV2kE,EAAKnnD,EAAKxd,KAAU8nB,EAAM3lB,KAAKwiE,EAAKnnD,EAAKxd,UACxC,GAAIwd,EAAKxd,GACd,IAAK,IAAI3C,EAAI,EAAGA,EAAImgB,EAAKxd,GAAM7B,OAAQd,IAAK,CAC1C,IAAIoG,EAAMkhE,EAAKnnD,EAAKxd,GAAM3C,IACtBoG,GAAOqkB,EAAM3lB,KAAKsB,EACxB,MACS+Z,EAAKyR,YAAc01C,EAAKnnD,EAAKyR,YACtCnH,EAAM3lB,KAAKwiE,EAAKnnD,EAAKyR,aACZ01C,EAAKnnD,EAAKrW,OACnB2gB,EAAM3lB,KAAKwiE,EAAKnnD,EAAKrW,OAEvB,IAAK,IAAIgiB,EAAM,EAAGA,EAAMw7C,EAAKC,QAAQzmE,OAAQgrB,IAAO,CAClD,IAAI/J,EAAMulD,EAAKC,QAAQz7C,GACnB/J,EAAImI,KAAK/J,EAAMhgB,QAAqC,GAA5B6E,EAAQylB,EAAO1I,EAAI3b,MAC3CqkB,EAAM3lB,KAAKid,EAAI3b,IACrB,CACA,OAAOqkB,CACT,EAEA+8C,cAAe,SAASlnD,EAAMkX,GAC5B,IAAIhF,EAAMryB,KAAKqyB,IAEf,OAAOyE,GAAiB92B,MADxBmgB,EAAO6T,GAAS3B,EAAa,MAARlS,EAAekS,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAAGyJ,IACzB,EAAGkX,GAASpY,KACnD,EAEAiuB,aAAc,SAASlxB,EAAOgE,GAC5B,IAASmE,EAAQnkB,KAAKqyB,IAAIwf,IAAIN,UAI9B,OAAOrE,GAAaltC,KAHP,MAATgc,EAAuBmI,EAAMxN,KACR,iBAATqF,EAA2BiY,GAAQj0B,KAAKqyB,IAAKrW,GAChDA,EAAQmI,EAAM1E,OAAS0E,EAAMzE,KACXM,GAAQ,OACzC,EAEAitB,WAAY,SAASprB,EAAK7B,GACxB,OAAOitB,GAAWjtC,KAAMi0B,GAAQj0B,KAAKqyB,IAAKxQ,GAAM7B,GAAQ,OAC1D,EAEA2tB,WAAY,SAASb,EAAQ9sB,GAE3B,OAAO2tB,GAAW3tC,MADlB8sC,EAASD,GAAgB7sC,KAAM8sC,EAAQ9sB,GAAQ,SAChB0P,KAAMod,EAAOhE,IAC9C,EAEA7V,aAAc,SAASH,EAAQ9S,GAE7B,OADA8S,EAAS+Z,GAAgB7sC,KAAM,CAAC8oC,IAAKhW,EAAQpD,KAAM,GAAI1P,GAAQ,QAAQ8oB,IAChE7V,GAAajzB,KAAKqyB,IAAKS,EAAS9yB,KAAK4c,QAAQ8vB,WACtD,EACAxO,aAAc,SAAS/d,EAAMH,EAAMwsB,GACjC,IAAiBrO,EAAbnc,GAAM,EACV,GAAmB,iBAAR7B,EAAkB,CAC3B,IAAInJ,EAAOhX,KAAKqyB,IAAIxgB,MAAQ7R,KAAKqyB,IAAI3b,KAAO,EACxCyJ,EAAOngB,KAAKqyB,IAAIxgB,MAASsO,EAAOngB,KAAKqyB,IAAIxgB,MACpCsO,EAAOnJ,IAAQmJ,EAAOnJ,EAAMgL,GAAM,GAC3Cmc,EAAU/L,GAAQpyB,KAAKqyB,IAAKlS,EAC9B,MACEge,EAAUhe,EAEZ,OAAOosB,GAAgBvsC,KAAMm+B,EAAS,CAAC2K,IAAK,EAAGpZ,KAAM,GAAI1P,GAAQ,OAAQwsB,GAAkBxqB,GAAK8mB,KAC7F9mB,EAAMhiB,KAAKqyB,IAAIS,OAASoL,GAAaC,GAAW,EACrD,EAEAmpC,kBAAmB,WAAa,OAAOr4B,GAAWjvC,KAAK4c,QAAS,EAChE41B,iBAAkB,WAAa,OAAO5H,GAAU5qC,KAAK4c,QAAS,EAE9D2qD,YAAa,WAAa,MAAO,CAAC9nD,KAAMzf,KAAK4c,QAAQ8a,SAAUhY,GAAI1f,KAAK4c,QAAQ+a,OAAO,EAEvF6vC,UAAW,SAAS3lD,EAAKwC,EAAMyD,EAAQ0xB,EAAMC,GAC3C,IAAI78B,EAAU5c,KAAK4c,QAEfksB,GADJjnB,EAAMqrB,GAAaltC,KAAMi0B,GAAQj0B,KAAKqyB,IAAKxQ,KAC7BgnB,OAAQnZ,EAAO7N,EAAI6N,KAKjC,GAJArL,EAAK1H,MAAM4pB,SAAW,WACtBliB,EAAKU,aAAa,mBAAoB,QACtC/kB,KAAK4c,QAAQ0kB,MAAME,cAAcnd,GACjCzH,EAAQoqB,MAAMviB,YAAYJ,GACd,QAARm1B,EACF1Q,EAAMjnB,EAAIinB,SACL,GAAY,SAAR0Q,GAA2B,QAARA,EAAgB,CAC5C,IAAIiuB,EAASv7D,KAAKC,IAAIyQ,EAAQgqB,QAAQuB,aAAcnoC,KAAKqyB,IAAIS,QAC7D40C,EAASx7D,KAAKC,IAAIyQ,EAAQoqB,MAAMH,YAAajqB,EAAQuqB,UAAUN,cAElD,SAAR2S,GAAmB33B,EAAIgnB,OAASxkB,EAAK8K,aAAes4C,IAAW5lD,EAAIinB,IAAMzkB,EAAK8K,aAC/E2Z,EAAMjnB,EAAIinB,IAAMzkB,EAAK8K,aAChBtN,EAAIgnB,OAASxkB,EAAK8K,cAAgBs4C,IACvC3+B,EAAMjnB,EAAIgnB,QACVnZ,EAAOrL,EAAK+K,YAAcs4C,IAC1Bh4C,EAAOg4C,EAASrjD,EAAK+K,YAC3B,CACA/K,EAAK1H,MAAMmsB,IAAMA,EAAM,KACvBzkB,EAAK1H,MAAM+S,KAAOrL,EAAK1H,MAAMgT,MAAQ,GACxB,SAAT8pB,GACF/pB,EAAO9S,EAAQoqB,MAAMH,YAAcxiB,EAAK+K,YACxC/K,EAAK1H,MAAMgT,MAAQ,QAEN,QAAT8pB,EAAmB/pB,EAAO,EACZ,UAAT+pB,IAAqB/pB,GAAQ9S,EAAQoqB,MAAMH,YAAcxiB,EAAK+K,aAAe,GACtF/K,EAAK1H,MAAM+S,KAAOA,EAAO,MAEvB5H,GACA2uB,GAAez2C,KAAM,CAAC0vB,KAAMA,EAAMoZ,IAAKA,EAAKnZ,MAAOD,EAAOrL,EAAK+K,YAAayZ,OAAQC,EAAMzkB,EAAK8K,cACrG,EAEAw4C,iBAAkB9pB,GAAS4e,IAC3BmL,kBAAmB/pB,GAASkf,IAC5B8K,eAAgB/K,GAChBgL,mBAAoBjqB,GAAS2f,IAE7BxC,YAAa,SAAStF,GACpB,GAAIuC,GAASvxC,eAAegvC,GACxB,OAAOuC,GAASvC,GAAK90D,KAAK,KAAMZ,KACtC,EAEAslE,gBAAiBznB,IAAS,SAAS98B,GAAQukD,GAAgBtlE,KAAM+gB,EAAO,IAExEgnD,SAAU,SAAStoD,EAAMuoD,EAAQ9J,EAAMhH,GACrC,IAAIrtC,EAAM,EACNm+C,EAAS,IAAKn+C,GAAO,EAAGm+C,GAAUA,GAEtC,IADA,IAAIpmD,EAAMqS,GAAQj0B,KAAKqyB,IAAK5S,GACnB5f,EAAI,EAAGA,EAAImoE,KAClBpmD,EAAMmmD,GAAS/nE,KAAKqyB,IAAKzQ,EAAKiI,EAAKq0C,EAAMhH,IACjC+Q,UAFoBpoE,GAI9B,OAAO+hB,CACT,EAEA63C,MAAO5b,IAAS,SAASh0B,EAAKq0C,GAC5B,IAAIvQ,EAAS3tD,KAEbA,KAAKiwD,oBAAmB,SAAU9rC,GAChC,OAAIwpC,EAAO/wC,QAAQ/Y,OAAS8pD,EAAOt7B,IAAI1rB,QAAUwd,EAAM6tB,QAC5C+1B,GAASpa,EAAOt7B,IAAKlO,EAAMxN,KAAMkT,EAAKq0C,EAAMvQ,EAAO9qD,QAAQqlE,iBAE3Dr+C,EAAM,EAAI1F,EAAM1E,OAAS0E,EAAMzE,IAC5C,GAAGuI,EACL,IAEAiyC,QAASrc,IAAS,SAASh0B,EAAKq0C,GAC9B,IAAIrsB,EAAM7xC,KAAKqyB,IAAIwf,IAAKxf,EAAMryB,KAAKqyB,IAC/Bwf,EAAImS,oBACJ3xB,EAAIg+B,iBAAiB,GAAI,KAAM,WAE/BqG,GAAoB12D,MAAM,SAAUmkB,GACpC,IAAImpB,EAAQy6B,GAAS11C,EAAKlO,EAAMxN,KAAMkT,EAAKq0C,GAAM,GACjD,OAAOr0C,EAAM,EAAI,CAACpK,KAAM6tB,EAAO5tB,GAAIyE,EAAMxN,MAAQ,CAAC8I,KAAM0E,EAAMxN,KAAM+I,GAAI4tB,EAC1E,GACJ,IAEA66B,SAAU,SAAS1oD,EAAMuoD,EAAQ9J,EAAMkK,GACrC,IAAIv+C,EAAM,EAAGgK,EAAIu0C,EACbJ,EAAS,IAAKn+C,GAAO,EAAGm+C,GAAUA,GAEtC,IADA,IAAIpmD,EAAMqS,GAAQj0B,KAAKqyB,IAAK5S,GACnB5f,EAAI,EAAGA,EAAImoE,IAAUnoE,EAAG,CAC/B,IAAIitC,EAASI,GAAaltC,KAAM4hB,EAAK,OAIrC,GAHS,MAALiS,EAAaA,EAAIiZ,EAAOpd,KACrBod,EAAOpd,KAAOmE,GACrBjS,EAAMumD,GAASnoE,KAAM8sC,EAAQjjB,EAAKq0C,IAC1B+J,QAAW,KACrB,CACA,OAAOrmD,CACT,EAEAw3C,MAAOvb,IAAS,SAASh0B,EAAKq0C,GAC5B,IAAIvQ,EAAS3tD,KAETqyB,EAAMryB,KAAKqyB,IAAKg2C,EAAQ,GACxBpiD,GAAYjmB,KAAK4c,QAAQ/Y,QAAUwuB,EAAI1rB,QAAU0rB,EAAIwf,IAAImS,oBAY7D,GAXA3xB,EAAI49B,oBAAmB,SAAU9rC,GAC/B,GAAI8B,EACA,OAAO4D,EAAM,EAAI1F,EAAM1E,OAAS0E,EAAMzE,KAC1C,IAAI4oD,EAAUp7B,GAAaygB,EAAQxpC,EAAMxN,KAAM,OACvB,MAApBwN,EAAMikD,aAAsBE,EAAQ54C,KAAOvL,EAAMikD,YACrDC,EAAM1jE,KAAK2jE,EAAQ54C,MACnB,IAAI7N,EAAMsmD,GAASxa,EAAQ2a,EAASz+C,EAAKq0C,GAGzC,MAFY,QAARA,GAAkB/5C,GAASkO,EAAIwf,IAAIN,WACnCuG,GAAe6V,EAAQ1gB,GAAW0gB,EAAQ9rC,EAAK,OAAOinB,IAAMw/B,EAAQx/B,KACjEjnB,CACT,GAAGoG,GACCogD,EAAM1nE,OAAU,IAAK,IAAId,EAAI,EAAGA,EAAIwyB,EAAIwf,IAAIC,OAAOnxC,OAAQd,IAC3DwyB,EAAIwf,IAAIC,OAAOjyC,GAAGuoE,WAAaC,EAAMxoE,EAC3C,IAGAo/D,WAAY,SAASp9C,GACnB,IAAoB1B,EAAOiS,GAAjBpyB,KAAKqyB,IAAyBxQ,EAAI1B,MAAMY,KAC9C/E,EAAQ6F,EAAIzB,GAAI4B,EAAMH,EAAIzB,GAC9B,GAAID,EAAM,CACR,IAAImJ,EAAStpB,KAAKinE,UAAUplD,EAAK,aACd,UAAdA,EAAI8I,QAAsB3I,GAAO7B,EAAKxf,SAAWqb,IAA6BgG,IAAlBhG,EAMjE,IALA,IAAIusD,EAAYpoD,EAAKvE,OAAOI,GACxBwsD,EAAQn/C,GAAWk/C,EAAWj/C,GAC9B,SAAUlJ,GAAM,OAAOiJ,GAAWjJ,EAAIkJ,EAAS,EAC/C,KAAKtf,KAAKu+D,GAAa,SAAUnoD,GAAM,MAAO,KAAKpW,KAAKoW,EAAK,EAC7D,SAAUA,GAAM,OAAS,KAAKpW,KAAKoW,KAAQiJ,GAAWjJ,EAAM,EACzDpE,EAAQ,GAAKwsD,EAAMroD,EAAKvE,OAAOI,EAAQ,OAASA,EACvD,KAAOgG,EAAM7B,EAAKxf,QAAU6nE,EAAMroD,EAAKvE,OAAOoG,OAAWA,CAC3D,CACA,OAAO,IAAI+hC,GAAMtwB,GAAI5R,EAAI1B,KAAMnE,GAAQyX,GAAI5R,EAAI1B,KAAM6B,GACvD,EAEAq5C,gBAAiB,SAAS3zD,GACX,MAATA,GAAiBA,GAAS1H,KAAKif,MAAMuH,aACrCxmB,KAAKif,MAAMuH,WAAaxmB,KAAKif,MAAMuH,WACnClB,EAAStlB,KAAK4c,QAAQ83B,UAAW,wBAEjCtwB,EAAQpkB,KAAK4c,QAAQ83B,UAAW,wBAEpCtnB,GAAOptB,KAAM,kBAAmBA,KAAMA,KAAKif,MAAMuH,WACnD,EACAquB,SAAU,WAAa,OAAO70C,KAAK4c,QAAQ0kB,MAAMo7B,YAAcv3C,GAAY,EAC3E8tC,WAAY,WAAa,SAAUjzD,KAAK6C,QAAQg5B,WAAY77B,KAAKqyB,IAAIm4B,SAAU,EAE/Eie,SAAU5qB,IAAS,SAAUhqB,EAAG+Z,GAAKuK,GAAen4C,KAAM6zB,EAAG+Z,EAAI,IACjE86B,cAAe,WACb,IAAI1gC,EAAWhoC,KAAK4c,QAAQorB,SAC5B,MAAO,CAACtY,KAAMsY,EAASiE,WAAYnD,IAAKd,EAASqE,UACzCvZ,OAAQkV,EAAS2Q,aAAe9Q,GAAU7nC,MAAQA,KAAK4c,QAAQwrB,UAC/DjC,MAAO6B,EAAS8Q,YAAcjR,GAAU7nC,MAAQA,KAAK4c,QAAQqrB,SAC7DE,aAAcD,GAAcloC,MAAO6mC,YAAakB,GAAa/nC,MACvE,EAEAy2C,eAAgBoH,IAAS,SAAS15B,EAAOwyB,GAC1B,MAATxyB,GACFA,EAAQ,CAAC1E,KAAMzf,KAAKqyB,IAAIwf,IAAIN,UAAU56B,KAAM+I,GAAI,MAClC,MAAVi3B,IAAkBA,EAAS32C,KAAK6C,QAAQq1C,qBACnB,iBAAT/zB,EAChBA,EAAQ,CAAC1E,KAAMgU,GAAItP,EAAO,GAAIzE,GAAI,MACX,MAAdyE,EAAM1E,OACf0E,EAAQ,CAAC1E,KAAM0E,EAAOzE,GAAI,OAEvByE,EAAMzE,KAAMyE,EAAMzE,GAAKyE,EAAM1E,MAClC0E,EAAMwyB,OAASA,GAAU,EAEF,MAAnBxyB,EAAM1E,KAAKU,KACbi4B,GAAcp4C,KAAMmkB,GAEpBk0B,GAAoBr4C,KAAMmkB,EAAM1E,KAAM0E,EAAMzE,GAAIyE,EAAMwyB,OAE1D,IAEAwe,QAAStX,IAAS,SAAS1X,EAAOrT,GAChC,IAAI66B,EAAS3tD,KAET2oE,EAAY,SAAU1iE,GAAO,MAAqB,iBAAPA,GAAmB,QAAQ+D,KAAKspB,OAAOrtB,IAAQA,EAAM,KAAOA,CAAK,EACnG,MAATkgC,IAAiBnmC,KAAK4c,QAAQgqB,QAAQjqB,MAAMwpB,MAAQwiC,EAAUxiC,IACpD,MAAVrT,IAAkB9yB,KAAK4c,QAAQgqB,QAAQjqB,MAAMmW,OAAS61C,EAAU71C,IAChE9yB,KAAK6C,QAAQ2lC,cAAgBgD,GAA0BxrC,MAC3D,IAAI+yB,EAAS/yB,KAAK4c,QAAQ8a,SAC1B13B,KAAKqyB,IAAIM,KAAKI,EAAQ/yB,KAAK4c,QAAQ+a,QAAQ,SAAUxX,GACnD,GAAIA,EAAK0lB,QAAW,IAAK,IAAIhmC,EAAI,EAAGA,EAAIsgB,EAAK0lB,QAAQllC,OAAQd,IACzD,GAAIsgB,EAAK0lB,QAAQhmC,GAAGqmC,UAAW,CAAE4K,GAAc6c,EAAQ56B,EAAQ,UAAW,KAAM,GAClFA,CACJ,IACA/yB,KAAK6tB,MAAM4b,aAAc,EACzBrc,GAAOptB,KAAM,UAAWA,KAC1B,IAEAigB,UAAW,SAASoG,GAAG,OAAOu3B,GAAQ59C,KAAMqmB,EAAE,EAC9Cu1B,eAAgB,WAAW,OAAOA,GAAe57C,KAAK,EACtDm8C,aAAc,WAAW,OAAOA,GAAan8C,KAAK,EAElDshE,QAASzjB,IAAS,WAChB,IAAIlI,EAAY31C,KAAK4c,QAAQgvB,iBAC7BwE,GAAUpwC,MACVA,KAAK6tB,MAAM4b,aAAc,EACzBiC,GAAY1rC,MACZm4C,GAAen4C,KAAMA,KAAKqyB,IAAI4Z,WAAYjsC,KAAKqyB,IAAIga,WACnDwU,GAAkB7gD,KAAK4c,UACN,MAAb+4B,GAAqBzpC,KAAK0kB,IAAI+kB,EAAY1G,GAAWjvC,KAAK4c,UAAY,IAAM5c,KAAK6C,QAAQ2lC,eACzFiH,GAAoBzvC,MACxBotB,GAAOptB,KAAM,UAAWA,KAC1B,IAEA4oE,QAAS/qB,IAAS,SAASxrB,GACzB,IAAI9jB,EAAMvO,KAAKqyB,IAUf,OATA9jB,EAAIoR,GAAK,KAEL3f,KAAKif,MAAM2+C,eAAiB59D,KAAKif,MAAM2+C,gBAC3CvX,GAAUrmD,KAAMqyB,GAChBqZ,GAAY1rC,MACZA,KAAK4c,QAAQ0kB,MAAMp7B,QACnBiyC,GAAen4C,KAAMqyB,EAAI4Z,WAAY5Z,EAAIga,WACzCrsC,KAAK6tB,MAAM6qB,aAAc,EACzBvV,GAAYnjC,KAAM,UAAWA,KAAMuO,GAC5BA,CACT,IAEAs6D,OAAQ,SAASC,GACf,IAAIC,EAAU/oE,KAAK6C,QAAQkmE,QAC3B,OAAOA,GAAW//C,OAAO3oB,UAAUqmB,eAAe9lB,KAAKmoE,EAASD,GAAcC,EAAQD,GAAcA,CACtG,EAEAvH,cAAe,WAAW,OAAOvhE,KAAK4c,QAAQ0kB,MAAMo7B,UAAU,EAC9DpqB,kBAAmB,WAAW,OAAOtyC,KAAK4c,QAAQgqB,OAAO,EACzDoiC,mBAAoB,WAAW,OAAOhpE,KAAK4c,QAAQorB,QAAQ,EAC3DihC,iBAAkB,WAAW,OAAOjpE,KAAK4c,QAAQ+pB,OAAO,GAE1D3Y,GAAWvP,GAEXA,EAAWyqD,eAAiB,SAAS1mE,EAAMmH,EAAMjC,GAC1C4+D,EAAQ5/C,eAAelkB,KAAS8jE,EAAQ9jE,GAAQic,EAAWjc,GAAQ,CAAC4kE,QAAS,KAClFd,EAAQ9jE,GAAMmH,GAAQjC,CACxB,EACA+W,EAAW0qD,qBAAuB,SAAS3mE,EAAMmH,EAAMy/D,EAAW1hE,GAChE+W,EAAWyqD,eAAe1mE,EAAMmH,EAAMjC,GACtC4+D,EAAQ9jE,GAAM4kE,QAAQziE,KAAK,CAAColB,KAAMq/C,EAAWnjE,IAAKyB,GACpD,CACF,CAWA,SAASqgE,GAAS11C,EAAKxQ,EAAKgI,EAAKq0C,EAAMhH,GACrC,IAAInN,EAASloC,EACTwnD,EAAUx/C,EACVsU,EAAU/L,GAAQC,EAAKxQ,EAAI1B,MAC3BmpD,EAAUpS,GAA6B,OAAjB7kC,EAAI9G,WAAsB1B,EAAMA,EAC1D,SAAS0/C,IACP,IAAItnE,EAAI4f,EAAI1B,KAAOmpD,EACnB,QAAIrnE,EAAIowB,EAAIxgB,OAAS5P,GAAKowB,EAAIxgB,MAAQwgB,EAAI3b,QAC1CmL,EAAM,IAAI4R,GAAIxxB,EAAG4f,EAAIzB,GAAIyB,EAAI8I,QACtBwT,EAAU/L,GAAQC,EAAKpwB,GAChC,CACA,SAASunE,EAASC,GAChB,IAAIt2D,EACJ,GAAY,aAAR+qD,EAAqB,CACvB,IAAI99C,EAAK+d,EAAQpd,KAAK2I,WAAW7H,EAAIzB,IAAMyJ,EAAM,EAAI,GAAK,IAC1D,GAAI+d,MAAMxnB,GACRjN,EAAO,SACF,CACL,IAAIu2D,EAAS7/C,EAAM,EAAIzJ,GAAM,OAAUA,EAAK,MAASA,GAAM,OAAUA,EAAK,MAC1EjN,EAAO,IAAIsgB,GAAI5R,EAAI1B,KAAMjU,KAAKC,IAAI,EAAGD,KAAKiE,IAAIguB,EAAQpd,KAAKpgB,OAAQkhB,EAAIzB,GAAKyJ,GAAO6/C,EAAS,EAAI,MAAO7/C,EACzG,CACF,MACE1W,EADS+jD,EACFG,GAAahlC,EAAI1S,GAAIwe,EAAStc,EAAKgI,GAEnCmtC,GAAc74B,EAAStc,EAAKgI,GAErC,GAAY,MAAR1W,EAAc,CAChB,GAAKs2D,IAAeF,IAGhB,OAAO,EAFP1nD,EAAMo1C,GAAUC,EAAU7kC,EAAI1S,GAAIwe,EAAStc,EAAI1B,KAAMmpD,EAG3D,MACEznD,EAAM1O,EAER,OAAO,CACT,CAEA,GAAY,QAAR+qD,GAA0B,aAARA,EACpBsL,SACK,GAAY,UAARtL,EACTsL,GAAS,QACJ,GAAY,QAARtL,GAA0B,SAARA,EAG3B,IAFA,IAAIyL,EAAU,KAAM9mC,EAAgB,SAARq7B,EACxB50C,EAAS+I,EAAI1S,IAAM0S,EAAI1S,GAAGsnD,UAAUplD,EAAK,aACpChQ,GAAQ,IACXgY,EAAM,IAAM2/C,GAAU33D,GADJA,GAAQ,EAAO,CAErC,IAAI+P,EAAMuc,EAAQpd,KAAKnF,OAAOiG,EAAIzB,KAAO,KACrC5d,EAAO6mB,GAAWzH,EAAK0H,GAAU,IACjCuZ,GAAgB,MAAPjhB,EAAc,KACtBihB,GAAS,KAAK74B,KAAK4X,GAAO,KAC3B,IAEJ,IADIihB,GAAUhxB,GAAUrP,IAAQA,EAAO,KACnCmnE,GAAWA,GAAWnnE,EAAM,CAC1BqnB,EAAM,IAAIA,EAAM,EAAG2/C,IAAY3nD,EAAI8I,OAAS,SAChD,KACF,CAGA,GADInoB,IAAQmnE,EAAUnnE,GAClBqnB,EAAM,IAAM2/C,GAAU33D,GAAU,KACtC,CAEF,IAAI3E,EAAS08C,GAAWv3B,EAAKxQ,EAAKkoC,EAAQsf,GAAS,GAEnD,OADI11C,GAAeo2B,EAAQ78C,KAAWA,EAAO+6D,SAAU,GAChD/6D,CACT,CAKA,SAASi7D,GAASxoD,EAAIkC,EAAKgI,EAAKq0C,GAC9B,IAAgCtwB,EAS5BrnB,EATA8L,EAAM1S,EAAG0S,IAAKwB,EAAIhS,EAAI6N,KAC1B,GAAY,QAARwuC,EAAgB,CAClB,IAAI0L,EAAW19D,KAAKiE,IAAIwP,EAAG/C,QAAQgqB,QAAQuB,aAAcpoC,OAAOw2C,aAAe7hC,SAASs3B,gBAAgB7D,cACpG0hC,EAAa39D,KAAKC,IAAIy9D,EAAW,GAAK36B,GAAWtvB,EAAG/C,SAAU,GAClEgxB,GAAK/jB,EAAM,EAAIhI,EAAIgnB,OAAShnB,EAAIinB,KAAOjf,EAAMggD,CAE/C,KAAmB,QAAR3L,IACTtwB,EAAI/jB,EAAM,EAAIhI,EAAIgnB,OAAS,EAAIhnB,EAAIinB,IAAM,GAG3C,MACEviB,EAASonB,GAAWhuB,EAAIkU,EAAG+Z,IACfH,SAFL,CAGP,GAAI5jB,EAAM,EAAI+jB,GAAK,EAAIA,GAAKvb,EAAIS,OAAQ,CAAEvM,EAAO0hD,SAAU,EAAM,KAAM,CACvEr6B,GAAW,EAAN/jB,CACP,CACA,OAAOtD,CACT,CAIA,IAAIujD,GAAuB,SAASnqD,GAClC3f,KAAK2f,GAAKA,EACV3f,KAAK+pE,eAAiB/pE,KAAKgqE,iBAAmBhqE,KAAKiqE,cAAgBjqE,KAAKkqE,gBAAkB,KAC1FlqE,KAAKmqE,QAAU,IAAIhjD,EACnBnnB,KAAKoqE,UAAY,KACjBpqE,KAAKqqE,aAAc,EACnBrqE,KAAKsqE,eAAiB,IACxB,EA0XA,SAASC,GAAS5qD,EAAIkC,GACpB,IAAIygB,EAAOgH,GAAgB3pB,EAAIkC,EAAI1B,MACnC,IAAKmiB,GAAQA,EAAKH,OAAU,OAAO,KACnC,IAAIhiB,EAAOiS,GAAQzS,EAAG0S,IAAKxQ,EAAI1B,MAC3B2R,EAAOiX,GAAgBzG,EAAMniB,EAAM0B,EAAI1B,MAEvCkK,EAAQ0C,GAAS5M,EAAMR,EAAG0S,IAAI9G,WAAY8nB,EAAO,OACjDhpB,IAEFgpB,EADc3oB,GAAcL,EAAOxI,EAAIzB,IACtB,EAAI,QAAU,QAEjC,IAAIlT,EAASi9B,GAAuBrY,EAAKhtB,IAAK+c,EAAIzB,GAAIizB,GAEtD,OADAnmC,EAAOiuB,OAA4B,SAAnBjuB,EAAO+Y,SAAsB/Y,EAAO8U,IAAM9U,EAAO8O,MAC1D9O,CACT,CAEA,SAASs9D,GAAWnmD,GAClB,IAAK,IAAIomD,EAAOpmD,EAAMomD,EAAMA,EAAOA,EAAKxlD,WACpC,GAAI,4BAA4Bjb,KAAKygE,EAAK71D,WAAc,OAAO,EACnE,OAAO,CACT,CAEA,SAAS81D,GAAO7oD,EAAK8oD,GAAoC,OAAzBA,IAAO9oD,EAAI8oD,KAAM,GAAe9oD,CAAI,CAEpE,SAAS+oD,GAAejrD,EAAIF,EAAMC,EAAIw0B,EAAUC,GAC9C,IAAIpzB,EAAO,GAAI8pD,GAAU,EAAOvb,EAAU3vC,EAAG0S,IAAIq9B,gBAAiBob,GAAiB,EACnF,SAASC,EAAgBzgE,GAAM,OAAO,SAAUivB,GAAU,OAAOA,EAAOjvB,IAAMA,CAAI,CAAE,CACpF,SAAS8S,IACHytD,IACF9pD,GAAQuuC,EACJwb,IAAkB/pD,GAAQuuC,GAC9Bub,EAAUC,GAAiB,EAE/B,CACA,SAASE,EAAQphD,GACXA,IACFxM,IACA2D,GAAQ6I,EAEZ,CACA,SAASqhD,EAAK5mD,GACZ,GAAqB,GAAjBA,EAAKW,SAAe,CACtB,IAAIkmD,EAAS7mD,EAAK0iB,aAAa,WAC/B,GAAImkC,EAEF,YADAF,EAAQE,GAGV,IAA+C/mD,EAA3CgnD,EAAW9mD,EAAK0iB,aAAa,aACjC,GAAIokC,EAAU,CACZ,IAAI7gD,EAAQ3K,EAAGkvC,UAAUp7B,GAAIygB,EAAU,GAAIzgB,GAAI0gB,EAAS,EAAG,GAAI42B,GAAiBI,IAGhF,YAFI7gD,EAAM3pB,SAAWwjB,EAAQmG,EAAM,GAAG1W,KAAK,KACvCo3D,EAAQt4C,GAAW/S,EAAG0S,IAAKlO,EAAM1E,KAAM0E,EAAMzE,IAAI+vC,KAAKH,IAE5D,CACA,GAA4C,SAAxCjrC,EAAK0iB,aAAa,mBAAiC,OACvD,IAAIqkC,EAAU,6BAA6BphE,KAAKqa,EAAKo7B,UACrD,IAAK,QAAQz1C,KAAKqa,EAAKo7B,WAAwC,GAA3Bp7B,EAAKgnD,YAAY1qE,OAAe,OAEhEyqE,GAAWhuD,IACf,IAAK,IAAIvd,EAAI,EAAGA,EAAIwkB,EAAKE,WAAW5jB,OAAQd,IACxCorE,EAAK5mD,EAAKE,WAAW1kB,IAErB,aAAamK,KAAKqa,EAAKo7B,YAAaqrB,GAAiB,GACrDM,IAAWP,GAAU,EAC3B,MAA4B,GAAjBxmD,EAAKW,UACdgmD,EAAQ3mD,EAAKinD,UAAU77D,QAAQ,UAAW,IAAIA,QAAQ,UAAW,KAErE,CACA,KACEw7D,EAAKxrD,GACDA,GAAQC,GACZD,EAAOA,EAAK+lB,YACZslC,GAAiB,EAEnB,OAAO/pD,CACT,CAEA,SAASwqD,GAAS5rD,EAAI0E,EAAM8W,GAC1B,IAAIqwC,EACJ,GAAInnD,GAAQ1E,EAAG/C,QAAQ64B,QAAS,CAE9B,KADA+1B,EAAW7rD,EAAG/C,QAAQ64B,QAAQlxB,WAAW4W,IACxB,OAAOuvC,GAAO/qD,EAAGsU,QAAQR,GAAI9T,EAAG/C,QAAQ+a,OAAS,KAAK,GACvEtT,EAAO,KAAM8W,EAAS,CACxB,MACE,IAAKqwC,EAAWnnD,GAAOmnD,EAAWA,EAASvmD,WAAY,CACrD,IAAKumD,GAAYA,GAAY7rD,EAAG/C,QAAQ64B,QAAW,OAAO,KAC1D,GAAI+1B,EAASvmD,YAAcumD,EAASvmD,YAActF,EAAG/C,QAAQ64B,QAAW,KAC1E,CAEF,IAAK,IAAI51C,EAAI,EAAGA,EAAI8f,EAAG/C,QAAQ0lB,KAAK3hC,OAAQd,IAAK,CAC/C,IAAIw/B,EAAW1f,EAAG/C,QAAQ0lB,KAAKziC,GAC/B,GAAIw/B,EAAShb,MAAQmnD,EACjB,OAAOC,GAAqBpsC,EAAUhb,EAAM8W,EAClD,CACF,CAEA,SAASswC,GAAqBpsC,EAAUhb,EAAM8W,GAC5C,IAAIyL,EAAUvH,EAASte,KAAK9D,WAAY0tD,GAAM,EAC9C,IAAKtmD,IAAS3f,EAASkiC,EAASviB,GAAS,OAAOqmD,GAAOj3C,GAAIV,GAAOsM,EAASlf,MAAO,IAAI,GACtF,GAAIkE,GAAQuiB,IACV+jC,GAAM,EACNtmD,EAAOuiB,EAAQriB,WAAW4W,GAC1BA,EAAS,GACJ9W,GAAM,CACT,IAAIlE,EAAOkf,EAASvoB,KAAO0R,EAAI6W,EAASvoB,MAAQuoB,EAASlf,KACzD,OAAOuqD,GAAOj3C,GAAIV,GAAO5S,GAAOA,EAAKY,KAAKpgB,QAASgqE,EACrD,CAGF,IAAIe,EAA4B,GAAjBrnD,EAAKW,SAAgBX,EAAO,KAAMsnD,EAAUtnD,EAK3D,IAJKqnD,GAAsC,GAA1BrnD,EAAKE,WAAW5jB,QAA2C,GAA5B0jB,EAAKpH,WAAW+H,WAC9D0mD,EAAWrnD,EAAKpH,WACZke,IAAUA,EAASuwC,EAASJ,UAAU3qE,SAErCgrE,EAAQ1mD,YAAc2hB,GAAW+kC,EAAUA,EAAQ1mD,WAC1D,IAAIiK,EAAUmQ,EAASnQ,QAAS6Q,EAAO7Q,EAAQ6Q,KAE/C,SAASnsB,EAAK83D,EAAUC,EAASxwC,GAC/B,IAAK,IAAIt7B,GAAK,EAAGA,GAAKkgC,EAAOA,EAAKp/B,OAAS,GAAId,IAE7C,IADA,IAAIiF,EAAMjF,EAAI,EAAIqvB,EAAQpqB,IAAMi7B,EAAKlgC,GAC5B4L,EAAI,EAAGA,EAAI3G,EAAInE,OAAQ8K,GAAK,EAAG,CACtC,IAAImgE,EAAU9mE,EAAI2G,EAAI,GACtB,GAAImgE,GAAWF,GAAYE,GAAWD,EAAS,CAC7C,IAAIxrD,EAAO4S,GAAOlzB,EAAI,EAAIw/B,EAASlf,KAAOkf,EAASvoB,KAAKjX,IACpDugB,EAAKtb,EAAI2G,GAAK0vB,EAElB,OADIA,EAAS,GAAKywC,GAAWF,KAAYtrD,EAAKtb,EAAI2G,GAAK0vB,EAAS,EAAI,KAC7D1H,GAAItT,EAAMC,EACnB,CACF,CAEJ,CACA,IAAIkK,EAAQ1W,EAAK83D,EAAUC,EAASxwC,GACpC,GAAI7Q,EAAS,OAAOogD,GAAOpgD,EAAOqgD,GAGlC,IAAK,IAAI/nE,EAAQ+oE,EAAQnmC,YAAawJ,EAAO08B,EAAWA,EAASJ,UAAU3qE,OAASw6B,EAAS,EAAGv4B,EAAOA,EAAQA,EAAM4iC,YAAa,CAEhI,GADAlb,EAAQ1W,EAAKhR,EAAOA,EAAMqa,WAAY,GAElC,OAAOytD,GAAOj3C,GAAInJ,EAAMnK,KAAMmK,EAAMlK,GAAK4uB,GAAO27B,GAEhD37B,GAAQpsC,EAAMyoE,YAAY1qE,MAChC,CACA,IAAK,IAAIgC,EAASgpE,EAAQE,gBAAiBC,EAAS3wC,EAAQx4B,EAAQA,EAASA,EAAOkpE,gBAAiB,CAEnG,GADAvhD,EAAQ1W,EAAKjR,EAAQA,EAAOsa,YAAa,GAErC,OAAOytD,GAAOj3C,GAAInJ,EAAMnK,KAAMmK,EAAMlK,GAAK0rD,GAASnB,GAElDmB,GAAUnpE,EAAO0oE,YAAY1qE,MACnC,CACF,CA7gBAmpE,GAAqBzpE,UAAU2hD,KAAO,SAAUplC,GAC5C,IAAI+wC,EAAS3tD,KAEXshC,EAAQthC,KAAM2f,EAAK2hB,EAAM3hB,GACzBqP,EAAMsS,EAAMtS,IAAMpS,EAAQ64B,QAI9B,SAASs2B,EAAe7gE,GACtB,IAAK,IAAIooD,EAAIpoD,EAAEqb,OAAQ+sC,EAAGA,EAAIA,EAAEruC,WAAY,CAC1C,GAAIquC,GAAKtkC,EAAO,OAAO,EACvB,GAAI,iCAAiChlB,KAAKspD,EAAE1+C,WAAc,KAC5D,CACA,OAAO,CACT,CA2BA,SAASo3D,EAAU9gE,GACjB,GAAK6gE,EAAe7gE,KAAMmiB,GAAe1N,EAAIzU,GAA7C,CACA,GAAIyU,EAAGqkC,oBACL0gB,GAAc,CAACU,UAAU,EAAOrkD,KAAMpB,EAAGywC,kBAC3B,OAAVllD,EAAE1I,MAAiBmd,EAAG0wC,iBAAiB,GAAI,KAAM,WAChD,KAAK1wC,EAAG9c,QAAQopE,gBACrB,OAEA,IAAIn6B,EAASi0B,GAAepmD,GAC5B+kD,GAAc,CAACU,UAAU,EAAMrkD,KAAM+wB,EAAO/wB,OAC9B,OAAV7V,EAAE1I,MACJmd,EAAGM,WAAU,WACXN,EAAGuwC,cAAcpe,EAAOA,OAAQ,EAAGjqB,GACnClI,EAAG0wC,iBAAiB,GAAI,KAAM,MAChC,GAEJ,CACA,GAAInlD,EAAEu6D,cAAe,CACnBv6D,EAAEu6D,cAAcyG,YAChB,IAAIntD,EAAU0lD,GAAW1jD,KAAK0uC,KAAK,MAGnC,GADAvkD,EAAEu6D,cAAcvR,QAAQ,OAAQn1C,GAC5B7T,EAAEu6D,cAAc1R,QAAQ,SAAWh1C,EAErC,YADA7T,EAAEqiB,gBAGN,CAEA,IAAI4+C,EAAShG,KAAkBl2C,EAAKk8C,EAAOlvD,WAC3C0C,EAAG/C,QAAQuqB,UAAUnqB,aAAamvD,EAAQxsD,EAAG/C,QAAQuqB,UAAUlqB,YAC/DgT,EAAGvoB,MAAQ+8D,GAAW1jD,KAAK0uC,KAAK,MAChC,IAAI2c,EAAWjnD,IACfiB,EAAY6J,GACZ1I,YAAW,WACT5H,EAAG/C,QAAQuqB,UAAUrpB,YAAYquD,GACjCC,EAASp3B,QACLo3B,GAAYp9C,GAAOsS,EAAM+qC,sBAC/B,GAAG,GApCuD,CAqC5D,CA1EAr9C,EAAIs9C,iBAAkB,EACtBrG,GAAoBj3C,EAAKrP,EAAG9c,QAAQ2+D,WAAY7hD,EAAG9c,QAAQ4+D,YAAa9hD,EAAG9c,QAAQ6+D,gBAUnFj6D,GAAGunB,EAAK,SAAS,SAAU9jB,IACpB6gE,EAAe7gE,IAAMmiB,GAAe1N,EAAIzU,IAAMq6D,GAAYr6D,EAAGyU,IAE9DiD,GAAc,IAAM2E,WAAWtH,GAAUN,GAAI,WAAc,OAAOguC,EAAO4e,eAAiB,IAAI,GACpG,IAEA9kE,GAAGunB,EAAK,oBAAoB,SAAU9jB,GACpCyiD,EAAOyc,UAAY,CAAC1xD,KAAMxN,EAAEwN,KAAMtF,MAAM,EAC1C,IACA3L,GAAGunB,EAAK,qBAAqB,SAAU9jB,GAChCyiD,EAAOyc,YAAazc,EAAOyc,UAAY,CAAC1xD,KAAMxN,EAAEwN,KAAMtF,MAAM,GACnE,IACA3L,GAAGunB,EAAK,kBAAkB,SAAU9jB,GAC9ByiD,EAAOyc,YACLl/D,EAAEwN,MAAQi1C,EAAOyc,UAAU1xD,MAAQi1C,EAAO6e,kBAC9C7e,EAAOyc,UAAUh3D,MAAO,EAE5B,IAEA3L,GAAGunB,EAAK,cAAc,WAAc,OAAOsS,EAAMmrC,qBAAuB,IAExEhlE,GAAGunB,EAAK,SAAS,WACV2+B,EAAOyc,WAAazc,EAAO6e,iBAClC,IAyCA/kE,GAAGunB,EAAK,OAAQg9C,GAChBvkE,GAAGunB,EAAK,MAAOg9C,EACjB,EAEAlC,GAAqBzpE,UAAU4hE,yBAA2B,SAAUyK,GAE/DA,EACD1sE,KAAKgvB,IAAIjK,aAAa,aAAc2nD,GAEpC1sE,KAAKgvB,IAAI29C,gBAAgB,aAE7B,EAEA7C,GAAqBzpE,UAAUixC,iBAAmB,WAChD,IAAIpkC,EAASokC,GAAiBtxC,KAAK2f,IAAI,GAEvC,OADAzS,EAAO8nC,MAAQ7vB,KAAenlB,KAAKgvB,IAC5B9hB,CACT,EAEA48D,GAAqBzpE,UAAUgxC,cAAgB,SAAUvf,EAAMqrB,GACxDrrB,GAAS9xB,KAAK2f,GAAG/C,QAAQ0lB,KAAK3hC,UAC/BmxB,EAAKkjB,OAASmI,IAAan9C,KAAKqsE,uBACpCrsE,KAAK4sE,uBAAuB96C,GAC9B,EAEAg4C,GAAqBzpE,UAAU2vB,aAAe,WAC5C,OAAOhwB,KAAK2f,GAAG/C,QAAQgqB,QAAQ1W,cAAcF,cAC/C,EAEA85C,GAAqBzpE,UAAUgsE,qBAAuB,WACpD,IAAIx6B,EAAM7xC,KAAKgwB,eAAgBrQ,EAAK3f,KAAK2f,GAAIykC,EAAOzkC,EAAG0S,IAAIwf,IAAIN,UAC3D9xB,EAAO2kC,EAAK3kC,OAAQC,EAAK0kC,EAAK1kC,KAElC,GAAIC,EAAG/C,QAAQ+a,QAAUhY,EAAG/C,QAAQ8a,UAAYjY,EAAKU,MAAQR,EAAG/C,QAAQ+a,QAAUjY,EAAGS,KAAOR,EAAG/C,QAAQ8a,SACrGma,EAAI6N,sBADN,CAKA,IAAImtB,EAAYtB,GAAS5rD,EAAIkyB,EAAIsN,WAAYtN,EAAIuN,cAC7C0tB,EAAWvB,GAAS5rD,EAAIkyB,EAAIwN,UAAWxN,EAAIyN,aAC/C,IAAIutB,GAAcA,EAAUlC,MAAOmC,GAAaA,EAASnC,KACX,GAA1Cj3C,GAAIK,GAAO84C,EAAWC,GAAWrtD,IACO,GAAxCiU,GAAII,GAAO+4C,EAAWC,GAAWptD,GAFrC,CAKA,IAAI4iB,EAAO3iB,EAAG/C,QAAQ0lB,KAClBtmB,EAASyD,EAAKU,MAAQR,EAAG/C,QAAQ8a,UAAY6yC,GAAS5qD,EAAIF,IAC1D,CAAC4E,KAAMie,EAAK,GAAGpT,QAAQpqB,IAAI,GAAIq2B,OAAQ,GACvCnZ,EAAMtC,EAAGS,KAAOR,EAAG/C,QAAQ+a,QAAU4yC,GAAS5qD,EAAID,GACtD,IAAKsC,EAAK,CACR,IAAIkN,EAAUoT,EAAKA,EAAK3hC,OAAS,GAAGuuB,QAChCpqB,EAAMoqB,EAAQ6Q,KAAO7Q,EAAQ6Q,KAAK7Q,EAAQ6Q,KAAKp/B,OAAS,GAAKuuB,EAAQpqB,IACzEkd,EAAM,CAACqC,KAAMvf,EAAIA,EAAInE,OAAS,GAAIw6B,OAAQr2B,EAAIA,EAAInE,OAAS,GAAKmE,EAAIA,EAAInE,OAAS,GACnF,CAEA,GAAKqb,GAAUgG,EAAf,CAKA,IAA+C+qD,EAA3Cx+D,EAAMsjC,EAAIm7B,YAAcn7B,EAAIo7B,WAAW,GAC3C,IAAMF,EAAM5oD,EAAMnI,EAAMqI,KAAMrI,EAAMmf,OAAQnZ,EAAImZ,OAAQnZ,EAAIqC,KAClD,CAAV,MAAMnZ,GAAI,CACN6hE,KACGxqD,GAAS5C,EAAGV,MAAMu1B,SACrB3C,EAAI5rB,SAASjK,EAAMqI,KAAMrI,EAAMmf,QAC1B4xC,EAAI7vC,YACP2U,EAAI6N,kBACJ7N,EAAI8N,SAASotB,MAGfl7B,EAAI6N,kBACJ7N,EAAI8N,SAASotB,IAEXx+D,GAAyB,MAAlBsjC,EAAIsN,WAAsBtN,EAAI8N,SAASpxC,GACzCgU,GAASviB,KAAKktE,oBAEzBltE,KAAKmtE,mBAnBL,MAFEt7B,EAAI6N,iBAbK,CAPX,CA0CF,EAEAoqB,GAAqBzpE,UAAU6sE,iBAAmB,WAC9C,IAAIvf,EAAS3tD,KAEfynB,aAAaznB,KAAKqqE,aAClBrqE,KAAKqqE,YAAc9iD,YAAW,WAC5BomC,EAAO0c,aAAc,EACjB1c,EAAO3R,oBACP2R,EAAOhuC,GAAGM,WAAU,WAAc,OAAO0tC,EAAOhuC,GAAGkO,MAAMmuB,kBAAmB,CAAM,GACxF,GAAG,GACL,EAEA8tB,GAAqBzpE,UAAUusE,uBAAyB,SAAU96C,GAChEtN,EAAqBxkB,KAAK2f,GAAG/C,QAAQ83B,UAAW5iB,EAAK2f,SACrDjtB,EAAqBxkB,KAAK2f,GAAG/C,QAAQyjC,aAAcvuB,EAAK3B,UAC1D,EAEA25C,GAAqBzpE,UAAU8sE,kBAAoB,WACjD,IAAIt7B,EAAM7xC,KAAKgwB,eACfhwB,KAAK+pE,eAAiBl4B,EAAIsN,WAAYn/C,KAAKgqE,iBAAmBn4B,EAAIuN,aAClEp/C,KAAKiqE,cAAgBp4B,EAAIwN,UAAWr/C,KAAKkqE,gBAAkBr4B,EAAIyN,WACjE,EAEAwqB,GAAqBzpE,UAAU+sE,kBAAoB,WACjD,IAAIv7B,EAAM7xC,KAAKgwB,eACf,IAAK6hB,EAAIm7B,WAAc,OAAO,EAC9B,IAAI3oD,EAAOwtB,EAAIo7B,WAAW,GAAGI,wBAC7B,OAAO3oE,EAAS1E,KAAKgvB,IAAK3K,EAC5B,EAEAylD,GAAqBzpE,UAAU20C,MAAQ,WACL,YAA5Bh1C,KAAK2f,GAAG9c,QAAQg5B,WACb77B,KAAKotE,qBAAuBjoD,KAAenlB,KAAKgvB,KACjDhvB,KAAKqxC,cAAcrxC,KAAKsxC,oBAAoB,GAChDtxC,KAAKgvB,IAAIgmB,QAEb,EACA80B,GAAqBzpE,UAAU0hE,KAAO,WAAc/hE,KAAKgvB,IAAI+yC,MAAQ,EACrE+H,GAAqBzpE,UAAUq8D,SAAW,WAAc,OAAO18D,KAAKgvB,GAAI,EAExE86C,GAAqBzpE,UAAUo9D,cAAgB,WAAc,OAAO,CAAK,EAEzEqM,GAAqBzpE,UAAUi1C,cAAgB,WAC3C,IAAIqY,EAAS3tD,KAEXshC,EAAQthC,KAMZ,SAASstE,IACHhsC,EAAM3hB,GAAGV,MAAMu1B,UACjBlT,EAAMisC,gBACNjsC,EAAM6oC,QAAQ1kE,IAAI67B,EAAM3hB,GAAG9c,QAAQ2qE,aAAcF,GAErD,CAVIttE,KAAKotE,oBACL7lD,YAAW,WAAc,OAAOomC,EAAO4f,eAAiB,GAAG,IAE3D3vB,GAAQ59C,KAAK2f,IAAI,WAAc,OAAO2hB,EAAM3hB,GAAGkO,MAAMmuB,kBAAmB,CAAM,IAQlFh8C,KAAKmqE,QAAQ1kE,IAAIzF,KAAK2f,GAAG9c,QAAQ2qE,aAAcF,EACjD,EAEAxD,GAAqBzpE,UAAU27C,iBAAmB,WAChD,IAAInK,EAAM7xC,KAAKgwB,eACf,OAAO6hB,EAAIsN,YAAcn/C,KAAK+pE,gBAAkBl4B,EAAIuN,cAAgBp/C,KAAKgqE,kBACvEn4B,EAAIwN,WAAar/C,KAAKiqE,eAAiBp4B,EAAIyN,aAAet/C,KAAKkqE,eACnE,EAEAJ,GAAqBzpE,UAAUktE,cAAgB,WAC7C,GAA2B,MAAvBvtE,KAAKsqE,iBAA0BtqE,KAAKqqE,aAAgBrqE,KAAKg8C,mBAA7D,CACA,IAAInK,EAAM7xC,KAAKgwB,eAAgBrQ,EAAK3f,KAAK2f,GAOzC,GAAI6D,GAAWT,GAAU/iB,KAAK2f,GAAG/C,QAAQwoB,YAAYzkC,QAAU6pE,GAAW34B,EAAIsN,YAI5E,OAHAn/C,KAAK2f,GAAGgoD,iBAAiB,CAACnlE,KAAM,UAAW0zD,QAAS,EAAG3oC,eAAgBrhB,KAAK0kB,MAC5E5wB,KAAK+hE,YACL/hE,KAAKg1C,QAGP,IAAIh1C,KAAKoqE,UAAT,CACApqE,KAAKmtE,oBACL,IAAIj+B,EAASq8B,GAAS5rD,EAAIkyB,EAAIsN,WAAYtN,EAAIuN,cAC1CzoC,EAAO40D,GAAS5rD,EAAIkyB,EAAIwN,UAAWxN,EAAIyN,aACvCpQ,GAAUv4B,GAAQinC,GAAQj+B,GAAI,WAChCsC,GAAatC,EAAG0S,IAAKiyB,GAAgBpV,EAAQv4B,GAAOkR,IAChDqnB,EAAOy7B,KAAOh0D,EAAKg0D,OAAOhrD,EAAGkO,MAAMmuB,kBAAmB,EAC5D,GAP6B,CAd6D,CAsB5F,EAEA8tB,GAAqBzpE,UAAUotE,YAAc,WAChB,MAAvBztE,KAAKsqE,iBACP7iD,aAAaznB,KAAKsqE,gBAClBtqE,KAAKsqE,eAAiB,MAGxB,IAQIoD,EAAWx5B,EAAUy5B,EARrBhuD,EAAK3f,KAAK2f,GAAI/C,EAAU+C,EAAG/C,QAASi1B,EAAMlyB,EAAG0S,IAAIwf,IAAIN,UACrD9xB,EAAOoyB,EAAIpyB,OAAQC,EAAKmyB,EAAInyB,KAKhC,GAJe,GAAXD,EAAKW,IAAWX,EAAKU,KAAOR,EAAG4lC,cAC/B9lC,EAAOgU,GAAIhU,EAAKU,KAAO,EAAGiS,GAAQzS,EAAG0S,IAAK5S,EAAKU,KAAO,GAAGxf,SACzD+e,EAAGU,IAAMgS,GAAQzS,EAAG0S,IAAK3S,EAAGS,MAAMY,KAAKpgB,QAAU+e,EAAGS,KAAOR,EAAGme,aAC9Dpe,EAAK+T,GAAI/T,EAAGS,KAAO,EAAG,IACtBV,EAAKU,KAAOvD,EAAQ8a,UAAYhY,EAAGS,KAAOvD,EAAQ+a,OAAS,EAAK,OAAO,EAGvElY,EAAKU,MAAQvD,EAAQ8a,UAA0D,IAA7Cg2C,EAAYnkC,GAAc5pB,EAAIF,EAAKU,QACvE+zB,EAAWnhB,GAAOnW,EAAQ0lB,KAAK,GAAGniB,MAClCwtD,EAAW/wD,EAAQ0lB,KAAK,GAAGje,OAE3B6vB,EAAWnhB,GAAOnW,EAAQ0lB,KAAKorC,GAAWvtD,MAC1CwtD,EAAW/wD,EAAQ0lB,KAAKorC,EAAY,GAAGrpD,KAAKmhB,aAE9C,IACI2O,EAAQy5B,EADRC,EAAUtkC,GAAc5pB,EAAID,EAAGS,MAUnC,GARI0tD,GAAWjxD,EAAQ0lB,KAAK3hC,OAAS,GACnCwzC,EAASv3B,EAAQ+a,OAAS,EAC1Bi2C,EAAShxD,EAAQ64B,QAAQxV,YAEzBkU,EAASphB,GAAOnW,EAAQ0lB,KAAKurC,EAAU,GAAG1tD,MAAQ,EAClDytD,EAAShxD,EAAQ0lB,KAAKurC,EAAU,GAAGxpD,KAAKwnD,kBAGrC8B,EAAY,OAAO,EAGxB,IAFA,IAAIG,EAAUnuD,EAAG0S,IAAI45B,WAAW2e,GAAejrD,EAAIguD,EAAUC,EAAQ15B,EAAUC,IAC3E45B,EAAUr7C,GAAW/S,EAAG0S,IAAKoB,GAAIygB,EAAU,GAAIzgB,GAAI0gB,EAAQ/hB,GAAQzS,EAAG0S,IAAK8hB,GAAQpzB,KAAKpgB,SACrFmtE,EAAQntE,OAAS,GAAKotE,EAAQptE,OAAS,GAC5C,GAAI6nB,EAAIslD,IAAYtlD,EAAIulD,GAAYD,EAAQlqE,MAAOmqE,EAAQnqE,MAAOuwC,QAC7D,IAAI25B,EAAQ,IAAMC,EAAQ,GACxB,MAD8BD,EAAQjqE,QAASkqE,EAAQlqE,QAASqwC,GAC1D,CAKf,IAFA,IAAI85B,EAAW,EAAGC,EAAS,EACvBx2B,EAASq2B,EAAQ,GAAII,EAASH,EAAQ,GAAII,EAAcjiE,KAAKiE,IAAIsnC,EAAO92C,OAAQutE,EAAOvtE,QACpFqtE,EAAWG,GAAe12B,EAAO/tB,WAAWskD,IAAaE,EAAOxkD,WAAWskD,MAC5EA,EAIN,IAHA,IAAII,EAAS5lD,EAAIslD,GAAUO,EAAS7lD,EAAIulD,GACpCO,EAAYpiE,KAAKiE,IAAIi+D,EAAOztE,QAA4B,GAAlBmtE,EAAQntE,OAAcqtE,EAAW,GAClDK,EAAO1tE,QAA4B,GAAlBotE,EAAQptE,OAAcqtE,EAAW,IACpEC,EAASK,GACTF,EAAO1kD,WAAW0kD,EAAOztE,OAASstE,EAAS,IAAMI,EAAO3kD,WAAW2kD,EAAO1tE,OAASstE,EAAS,MAC7FA,EAEN,GAAsB,GAAlBH,EAAQntE,QAAiC,GAAlBotE,EAAQptE,QAAeuzC,GAAYz0B,EAAKU,KACjE,KAAO6tD,GAAYA,EAAWvuD,EAAKW,IAC5BguD,EAAO1kD,WAAW0kD,EAAOztE,OAASstE,EAAS,IAAMI,EAAO3kD,WAAW2kD,EAAO1tE,OAASstE,EAAS,IACjGD,IACAC,IAIJH,EAAQA,EAAQntE,OAAS,GAAKytE,EAAO9tE,MAAM,EAAG8tE,EAAOztE,OAASstE,GAAQx+D,QAAQ,WAAY,IAC1Fq+D,EAAQ,GAAKA,EAAQ,GAAGxtE,MAAM0tE,GAAUv+D,QAAQ,WAAY,IAE5D,IAAI8+D,EAAS96C,GAAIygB,EAAU85B,GACvBQ,EAAO/6C,GAAI0gB,EAAQ45B,EAAQptE,OAAS6nB,EAAIulD,GAASptE,OAASstE,EAAS,GACvE,OAAIH,EAAQntE,OAAS,GAAKmtE,EAAQ,IAAMp6C,GAAI66C,EAAQC,IAClDtuD,GAAaP,EAAG0S,IAAKy7C,EAASS,EAAQC,EAAM,WACrC,QAFT,CAIF,EAEA1E,GAAqBzpE,UAAUs7D,aAAe,WAC5C37D,KAAKysE,qBACP,EACA3C,GAAqBzpE,UAAU6F,MAAQ,WACrClG,KAAKysE,qBACP,EACA3C,GAAqBzpE,UAAUosE,oBAAsB,WAC9CzsE,KAAKoqE,YACV3iD,aAAaznB,KAAKsqE,gBAClBtqE,KAAKoqE,UAAY,KACjBpqE,KAAKusE,gBACLvsE,KAAKgvB,IAAI+yC,OACT/hE,KAAKgvB,IAAIgmB,QACX,EACA80B,GAAqBzpE,UAAUmsE,gBAAkB,WAC7C,IAAI7e,EAAS3tD,KAEY,MAAvBA,KAAKsqE,iBACTtqE,KAAKsqE,eAAiB/iD,YAAW,WAE/B,GADAomC,EAAO2c,eAAiB,KACpB3c,EAAOyc,UAAW,CACpB,IAAIzc,EAAOyc,UAAUh3D,KACd,OADsBu6C,EAAOyc,UAAY,IAElD,CACAzc,EAAO4e,eACT,GAAG,IACL,EAEAzC,GAAqBzpE,UAAUksE,cAAgB,WAC3C,IAAI5e,EAAS3tD,MAEXA,KAAK2f,GAAGszC,cAAiBjzD,KAAKytE,eAC9B7vB,GAAQ59C,KAAK2f,IAAI,WAAc,OAAOywB,GAAUud,EAAOhuC,GAAK,GAClE,EAEAmqD,GAAqBzpE,UAAUmhC,cAAgB,SAAUnd,GACvDA,EAAKioD,gBAAkB,OACzB,EAEAxC,GAAqBzpE,UAAU08D,WAAa,SAAU7xD,GAClC,GAAdA,EAAE8xD,UAAiBh9D,KAAKoqE,YAC5Bl/D,EAAEqiB,iBACGvtB,KAAK2f,GAAGszC,cACThzC,GAAUjgB,KAAK2f,GAAIilD,GAAnB3kD,CAAmCjgB,KAAK2f,GAAI2T,OAAO+hC,aAA2B,MAAdnqD,EAAE8xD,SAAmB9xD,EAAEgrD,QAAUhrD,EAAE8xD,UAAW,GACpH,EAEA8M,GAAqBzpE,UAAU2hE,gBAAkB,SAAU/7D,GACzDjG,KAAKgvB,IAAIs9C,gBAAkBh5C,OAAc,YAAPrtB,EACpC,EAEA6jE,GAAqBzpE,UAAU09D,cAAgB,WAAa,EAC5D+L,GAAqBzpE,UAAU8hE,cAAgB,WAAa,EAE5D2H,GAAqBzpE,UAAUkhC,uBAAwB,EA2JvD,IAAIktC,GAAgB,SAAS9uD,GAC3B3f,KAAK2f,GAAKA,EAEV3f,KAAK0uE,UAAY,GAKjB1uE,KAAK2uE,aAAc,EAEnB3uE,KAAKmqE,QAAU,IAAIhjD,EAEnBnnB,KAAK+vB,cAAe,EACpB/vB,KAAKoqE,UAAY,IACnB,EA4VA,SAASwE,GAAaC,EAAUhsE,GAS9B,IARAA,EAAUA,EAAUyjB,EAAQzjB,GAAW,CAAC,GAChC6E,MAAQmnE,EAASnnE,OACpB7E,EAAQisE,UAAYD,EAAShyD,WAC9Bha,EAAQisE,SAAWD,EAAShyD,WAC3Bha,EAAQksE,aAAeF,EAASE,cACjClsE,EAAQksE,YAAcF,EAASE,aAGV,MAArBlsE,EAAQigE,UAAmB,CAC7B,IAAIjuB,EAAW1vB,IACftiB,EAAQigE,UAAYjuB,GAAYg6B,GACQ,MAAtCA,EAAS9nC,aAAa,cAAwB8N,GAAYngC,SAASoI,IACvE,CAEA,SAAShO,IAAQ+/D,EAASnnE,MAAQiY,EAAG6vC,UAAW,CAEhD,IAAIwf,EACJ,GAAIH,EAASI,OACXxnE,GAAGonE,EAASI,KAAM,SAAUngE,IAEvBjM,EAAQqsE,wBAAwB,CACnC,IAAID,EAAOJ,EAASI,KACpBD,EAAaC,EAAKE,OAClB,IACE,IAAIC,EAAgBH,EAAKE,OAAS,WAChCrgE,IACAmgE,EAAKE,OAASH,EACdC,EAAKE,SACLF,EAAKE,OAASC,CAChB,CACU,CAAV,MAAMlkE,GAAI,CACd,CAGFrI,EAAQmgE,WAAa,SAAUrjD,GAC7BA,EAAG7Q,KAAOA,EACV6Q,EAAG0vD,YAAc,WAAc,OAAOR,CAAU,EAChDlvD,EAAG2vD,WAAa,WACd3vD,EAAG2vD,WAAa1nC,MAChB94B,IACA+/D,EAAS5pD,WAAWnH,YAAY6B,EAAG2yB,qBACnCu8B,EAASlyD,MAAMC,QAAU,GACrBiyD,EAASI,OACX9jE,GAAI0jE,EAASI,KAAM,SAAUngE,GACxBjM,EAAQqsE,wBAAyD,mBAAxBL,EAASI,KAAKE,SACxDN,EAASI,KAAKE,OAASH,GAE/B,CACF,EAEAH,EAASlyD,MAAMC,QAAU,OACzB,IAAI+C,EAAKlB,IAAW,SAAU4F,GAAQ,OAAOwqD,EAAS5pD,WAAWjI,aAAaqH,EAAMwqD,EAASrpC,YAAc,GACzG3iC,GACF,OAAO8c,CACT,CAEA,SAAS4vD,GAAe9wD,GACtBA,EAAWtT,IAAMA,GACjBsT,EAAWhX,GAAKA,GAChBgX,EAAWmkC,iBAAmBA,GAC9BnkC,EAAW4wC,IAAMA,GACjB5wC,EAAWwtC,WAAar8B,GACxBnR,EAAWkI,YAAcA,EACzBlI,EAAWyJ,WAAaA,EACxBzJ,EAAW4K,WAAaH,GACxBzK,EAAWkJ,KAAOA,EAClBlJ,EAAW2O,OAASA,GACpB3O,EAAWkgB,KAAOA,GAClBlgB,EAAW8lC,UAAYA,GACvB9lC,EAAW88B,eAAiBA,GAC5B98B,EAAWgV,IAAMA,GACjBhV,EAAW+wD,OAAS97C,GACpBjV,EAAWoS,MAAQA,GACnBpS,EAAWqS,UAAYA,GACvBrS,EAAW2S,YAAcA,GACzB3S,EAAWqB,QAAUA,GACrBrB,EAAW8S,eAAiBA,GAC5B9S,EAAWC,WAAaA,GACxBD,EAAWuC,UAAYA,GACvBvC,EAAWsT,WAAaA,GACxBtT,EAAWoB,UAAYA,GACvBpB,EAAWw5C,SAAWA,GACtBx5C,EAAW62C,OAASA,GACpB72C,EAAW+3C,QAAUA,GACrB/3C,EAAWw3C,cAAgBA,GAC3Bx3C,EAAWq3C,UAAYA,GACvBr3C,EAAWk3C,gBAAkBA,GAC7Bl3C,EAAW+C,aAAeA,GAC1B/C,EAAWgwC,iBAAmBA,GAC9BhwC,EAAWqvC,WAAaA,GACxBrvC,EAAW4uC,WAAaA,GACxB5uC,EAAWyP,iBAAmBA,GAC9BzP,EAAW2P,kBAAoBA,GAC/B3P,EAAW8P,OAASA,GACpB9P,EAAW6G,SAAWA,EACtB7G,EAAW/Z,SAAWA,EACtB+Z,EAAW2F,QAAUA,EACrB3F,EAAW22C,SAAWA,EACxB,CA7bAqZ,GAAcpuE,UAAU2hD,KAAO,SAAUplC,GACrC,IAAI+wC,EAAS3tD,KAEXshC,EAAQthC,KAAM2f,EAAK3f,KAAK2f,GAC5B3f,KAAKyvE,YAAY7yD,GACjB,IAAIqT,EAAKjwB,KAAK6uE,SAmBd,SAASa,EAAexkE,GACtB,IAAImiB,GAAe1N,EAAIzU,GAAvB,CACA,GAAIyU,EAAGqkC,oBACL0gB,GAAc,CAACU,UAAU,EAAOrkD,KAAMpB,EAAGywC,sBACpC,KAAKzwC,EAAG9c,QAAQopE,gBACrB,OAEA,IAAIn6B,EAASi0B,GAAepmD,GAC5B+kD,GAAc,CAACU,UAAU,EAAMrkD,KAAM+wB,EAAO/wB,OAC9B,OAAV7V,EAAE1I,KACJmd,EAAGuwC,cAAcpe,EAAOA,OAAQ,KAAMjqB,IAEtCyZ,EAAMotC,UAAY,GAClBz+C,EAAGvoB,MAAQoqC,EAAO/wB,KAAK0uC,KAAK,MAC5BrpC,EAAY6J,GAEhB,CACc,OAAV/kB,EAAE1I,OAAiBmd,EAAGV,MAAM4jD,aAAe,IAAIv7C,KAhBf,CAiBtC,CAnCA1K,EAAQgqB,QAAQ5pB,aAAahd,KAAK4mC,QAAShqB,EAAQgqB,QAAQ3pB,YAGvDqG,IAAO2M,EAAGtT,MAAMwpB,MAAQ,OAE5B1+B,GAAGwoB,EAAI,SAAS,WACVtN,GAAMC,GAAc,GAAK+qC,EAAO59B,eAAgB49B,EAAO59B,aAAe,MAC1EuR,EAAMgsC,MACR,IAEA7lE,GAAGwoB,EAAI,SAAS,SAAU/kB,GACpBmiB,GAAe1N,EAAIzU,IAAMq6D,GAAYr6D,EAAGyU,KAE5CA,EAAGV,MAAM2jD,eAAiB,IAAIt7C,KAC9Bga,EAAMquC,WACR,IAqBAloE,GAAGwoB,EAAI,MAAOy/C,GACdjoE,GAAGwoB,EAAI,OAAQy/C,GAEfjoE,GAAGmV,EAAQorB,SAAU,SAAS,SAAU98B,GACtC,IAAI47B,GAAclqB,EAAS1R,KAAMmiB,GAAe1N,EAAIzU,GAApD,CACA,IAAK+kB,EAAG2/C,cAGN,OAFAjwD,EAAGV,MAAM2jD,eAAiB,IAAIt7C,UAC9Bga,EAAM0T,QAKR,IAAIriC,EAAQ,IAAIk9D,MAAM,SACtBl9D,EAAM8yD,cAAgBv6D,EAAEu6D,cACxBx1C,EAAG2/C,cAAcj9D,EAVgD,CAWnE,IAGAlL,GAAGmV,EAAQuqB,UAAW,eAAe,SAAUj8B,GACxC47B,GAAclqB,EAAS1R,IAAMgjB,GAAiBhjB,EACrD,IAEAzD,GAAGwoB,EAAI,oBAAoB,WACzB,IAAIjU,EAAQ2D,EAAGuC,UAAU,QACrBof,EAAM8oC,WAAa9oC,EAAM8oC,UAAUjmD,MAAMzb,QAC7C44B,EAAM8oC,UAAY,CAChBpuD,MAAOA,EACPmI,MAAOxE,EAAGouC,SAAS/xC,EAAO2D,EAAGuC,UAAU,MAAO,CAACtN,UAAW,yBAE9D,IACAnN,GAAGwoB,EAAI,kBAAkB,WACnBqR,EAAM8oC,YACR9oC,EAAMgsC,OACNhsC,EAAM8oC,UAAUjmD,MAAMzb,QACtB44B,EAAM8oC,UAAY,KAEtB,GACF,EAEAqE,GAAcpuE,UAAUovE,YAAc,SAAUK,GAE9C9vE,KAAK4mC,QAAUu/B,KAGfnmE,KAAK6uE,SAAW7uE,KAAK4mC,QAAQ3pB,UAC/B,EAEAwxD,GAAcpuE,UAAU4hE,yBAA2B,SAAUyK,GAExDA,EACD1sE,KAAK6uE,SAAS9pD,aAAa,aAAc2nD,GAEzC1sE,KAAK6uE,SAASlC,gBAAgB,aAElC,EAEA8B,GAAcpuE,UAAUixC,iBAAmB,WAEzC,IAAI3xB,EAAK3f,KAAK2f,GAAI/C,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAC7CnlB,EAASokC,GAAiB3xB,GAG9B,GAAIA,EAAG9c,QAAQktE,oBAAqB,CAClC,IAAIzH,EAAUp7B,GAAavtB,EAAI0S,EAAIwf,IAAIN,UAAU56B,KAAM,OACnDq5D,EAAUpzD,EAAQgqB,QAAQpX,wBAAyBygD,EAAUrzD,EAAQ64B,QAAQjmB,wBACjFtiB,EAAOgjE,MAAQhkE,KAAKC,IAAI,EAAGD,KAAKiE,IAAIyM,EAAQgqB,QAAQuB,aAAe,GAC/BmgC,EAAQx/B,IAAMmnC,EAAQnnC,IAAMknC,EAAQlnC,MACxE57B,EAAOijE,OAASjkE,KAAKC,IAAI,EAAGD,KAAKiE,IAAIyM,EAAQgqB,QAAQC,YAAc,GAC9ByhC,EAAQ54C,KAAOugD,EAAQvgD,KAAOsgD,EAAQtgD,MAC7E,CAEA,OAAOxiB,CACT,EAEAuhE,GAAcpuE,UAAUgxC,cAAgB,SAAU++B,GAChD,IAAkBxzD,EAAT5c,KAAK2f,GAAiB/C,QAC/B4H,EAAqB5H,EAAQ83B,UAAW07B,EAAM3+B,SAC9CjtB,EAAqB5H,EAAQyjC,aAAc+vB,EAAMjgD,WAC9B,MAAfigD,EAAMF,QACRlwE,KAAK4mC,QAAQjqB,MAAMmsB,IAAMsnC,EAAMF,MAAQ,KACvClwE,KAAK4mC,QAAQjqB,MAAM+S,KAAO0gD,EAAMD,OAAS,KAE7C,EAIA1B,GAAcpuE,UAAU6F,MAAQ,SAAU41C,GACxC,IAAI97C,KAAKqwE,qBAAsBrwE,KAAKoqE,UAApC,CACA,IAAIzqD,EAAK3f,KAAK2f,GACd,GAAIA,EAAGqkC,oBAAqB,CAC1BhkD,KAAK0uE,UAAY,GACjB,IAAI3vD,EAAUY,EAAGqQ,eACjBhwB,KAAK6uE,SAASnnE,MAAQqX,EAClBY,EAAGV,MAAMu1B,SAAWpuB,EAAYpmB,KAAK6uE,UACrClsD,GAAMC,GAAc,IAAK5iB,KAAK+vB,aAAehR,EACnD,MAAY+8B,IACV97C,KAAK0uE,UAAY1uE,KAAK6uE,SAASnnE,MAAQ,GACnCib,GAAMC,GAAc,IAAK5iB,KAAK+vB,aAAe,MAVK,CAY1D,EAEA0+C,GAAcpuE,UAAUq8D,SAAW,WAAc,OAAO18D,KAAK6uE,QAAS,EAEtEJ,GAAcpuE,UAAUo9D,cAAgB,WAAc,OAAO,CAAM,EAEnEgR,GAAcpuE,UAAU20C,MAAQ,WAC9B,GAAgC,YAA5Bh1C,KAAK2f,GAAG9c,QAAQg5B,YAA4BpY,GAAU0B,KAAenlB,KAAK6uE,UAC5E,IAAM7uE,KAAK6uE,SAAS75B,OACT,CAAX,MAAO9pC,GAAI,CAEf,EAEAujE,GAAcpuE,UAAU0hE,KAAO,WAAc/hE,KAAK6uE,SAAS9M,MAAQ,EAEnE0M,GAAcpuE,UAAU8hE,cAAgB,WACtCniE,KAAK4mC,QAAQjqB,MAAMmsB,IAAM9oC,KAAK4mC,QAAQjqB,MAAM+S,KAAO,CACrD,EAEA++C,GAAcpuE,UAAUi1C,cAAgB,WAAct1C,KAAKswE,UAAY,EAIvE7B,GAAcpuE,UAAUiwE,SAAW,WAC/B,IAAI3iB,EAAS3tD,KAEXA,KAAK2uE,aACT3uE,KAAKmqE,QAAQ1kE,IAAIzF,KAAK2f,GAAG9c,QAAQ2qE,cAAc,WAC7C7f,EAAO2f,OACH3f,EAAOhuC,GAAGV,MAAMu1B,SAAWmZ,EAAO2iB,UACxC,GACF,EAKA7B,GAAcpuE,UAAUsvE,SAAW,WACjC,IAAIY,GAAS,EAAOjvC,EAAQthC,KAE5B,SAASg8B,IACOsF,EAAMgsC,QACHiD,GACXjvC,EAAMqtC,aAAc,EAAOrtC,EAAMgvC,aADbC,GAAS,EAAMjvC,EAAM6oC,QAAQ1kE,IAAI,GAAIu2B,GAEjE,CALAsF,EAAMqtC,aAAc,EAMpBrtC,EAAM6oC,QAAQ1kE,IAAI,GAAIu2B,EACxB,EAQAyyC,GAAcpuE,UAAUitE,KAAO,WAC3B,IAAI3f,EAAS3tD,KAEX2f,EAAK3f,KAAK2f,GAAI2hB,EAAQthC,KAAK6uE,SAAUH,EAAY1uE,KAAK0uE,UAK1D,GAAI1uE,KAAKqwE,qBAAuB1wD,EAAGV,MAAMu1B,SACpCzkB,GAAauR,KAAWotC,IAAc1uE,KAAKoqE,WAC5CzqD,EAAGszC,cAAgBtzC,EAAG9c,QAAQ6iE,cAAgB/lD,EAAGV,MAAMk9C,OACvD,OAAO,EAEX,IAAIp7C,EAAOugB,EAAM55B,MAEjB,GAAIqZ,GAAQ2tD,IAAc/uD,EAAGqkC,oBAAuB,OAAO,EAI3D,GAAIrhC,GAAMC,GAAc,GAAK5iB,KAAK+vB,eAAiBhP,GAC/C2C,GAAO,kBAAkB1Z,KAAK+W,GAEhC,OADApB,EAAG/C,QAAQ0kB,MAAMp7B,SACV,EAGT,GAAIyZ,EAAG0S,IAAIwf,KAAOlyB,EAAG/C,QAAQy4B,kBAAmB,CAC9C,IAAIxjC,EAAQkP,EAAK2I,WAAW,GAE5B,GADa,MAAT7X,GAAoB68D,IAAaA,EAAY,KACpC,MAAT78D,EAAiC,OAAd7R,KAAKkG,QAAgBlG,KAAK2f,GAAGq7C,YAAY,OAClE,CAGA,IADA,IAAIwV,EAAO,EAAGvuE,EAAIiK,KAAKiE,IAAIu+D,EAAU/tE,OAAQogB,EAAKpgB,QAC3C6vE,EAAOvuE,GAAKysE,EAAUhlD,WAAW8mD,IAASzvD,EAAK2I,WAAW8mD,MAAWA,EAgB5E,OAdA5yB,GAAQj+B,GAAI,WACVilD,GAAejlD,EAAIoB,EAAKzgB,MAAMkwE,GAAO9B,EAAU/tE,OAAS6vE,EACzC,KAAM7iB,EAAOyc,UAAY,WAAa,MAGjDrpD,EAAKpgB,OAAS,KAAQogB,EAAKlc,QAAQ,OAAS,EAAKy8B,EAAM55B,MAAQimD,EAAO+gB,UAAY,GAC/E/gB,EAAO+gB,UAAY3tD,EAEtB4sC,EAAOyc,YACTzc,EAAOyc,UAAUjmD,MAAMzb,QACvBilD,EAAOyc,UAAUjmD,MAAQxE,EAAGouC,SAASJ,EAAOyc,UAAUpuD,MAAO2D,EAAGuC,UAAU,MACvC,CAACtN,UAAW,yBAEnD,KACO,CACT,EAEA65D,GAAcpuE,UAAUs7D,aAAe,WACjC37D,KAAK2uE,aAAe3uE,KAAKstE,SAAUttE,KAAK2uE,aAAc,EAC5D,EAEAF,GAAcpuE,UAAU08D,WAAa,WAC/Bp6C,GAAMC,GAAc,IAAK5iB,KAAK+vB,aAAe,MACjD/vB,KAAK2vE,UACP,EAEAlB,GAAcpuE,UAAU09D,cAAgB,SAAU7yD,GAChD,IAAIo2B,EAAQthC,KAAM2f,EAAK2hB,EAAM3hB,GAAI/C,EAAU+C,EAAG/C,QAASqT,EAAKqR,EAAMutC,SAC9DvtC,EAAM+uC,oBAAsB/uC,EAAM+uC,qBACtC,IAAIxuD,EAAM8tB,GAAahwB,EAAIzU,GAAI4rC,EAAYl6B,EAAQorB,SAASqE,UAC5D,GAAKxqB,IAAOoB,EAAZ,CAIYtD,EAAG9c,QAAQ4tE,8BACmB,GAA7B9wD,EAAG0S,IAAIwf,IAAIntC,SAASmd,IAC7B5B,GAAUN,EAAIsC,GAAdhC,CAA4BN,EAAG0S,IAAKiyB,GAAgBziC,GAAMgG,GAE9D,IAII6oD,EAJAC,EAAS1gD,EAAGtT,MAAMiI,QAASgsD,EAAgBtvC,EAAMsF,QAAQjqB,MAAMiI,QAC/DisD,EAAavvC,EAAMsF,QAAQkqC,aAAathD,wBAwD5C,GAvDA8R,EAAMsF,QAAQjqB,MAAMiI,QAAU,mBAC9BqL,EAAGtT,MAAMiI,QAAU,+DAAiE1Z,EAAE8kC,QAAU6gC,EAAW/nC,IAAM,GAAK,cAAgB59B,EAAE6kC,QAAU8gC,EAAWnhD,KAAO,GAAK,0CAA4C/M,EAAK,2BAA6B,eAAiB,oHAEpQE,IAAU6tD,EAAa3wE,OAAOgxE,SAClCn0D,EAAQ0kB,MAAM0T,QACVnyB,GAAU9iB,OAAO0oE,SAAS,KAAMiI,GACpC9zD,EAAQ0kB,MAAMp7B,QAETyZ,EAAGqkC,sBAAuB/zB,EAAGvoB,MAAQ45B,EAAMotC,UAAY,KAC5DptC,EAAM+uC,mBAAqBW,EAC3Bp0D,EAAQy4B,kBAAoB11B,EAAG0S,IAAIwf,IACnCpqB,aAAa7K,EAAQq0D,oBA2CjBtuD,GAAMC,GAAc,GAAKsuD,IACzBltD,EAAmB,CACrBuK,GAAOrjB,GACP,IAAIimE,EAAU,WACZhmE,GAAIpL,OAAQ,UAAWoxE,GACvB5pD,WAAWypD,EAAQ,GACrB,EACAvpE,GAAG1H,OAAQ,UAAWoxE,EACxB,MACE5pD,WAAWypD,EAAQ,GAzEQ,CA0B7B,SAASE,IACP,GAAyB,MAArBjhD,EAAGjJ,eAAwB,CAC7B,IAAIgtC,EAAWr0C,EAAGqkC,oBACdotB,EAAS,KAAYpd,EAAW/jC,EAAGvoB,MAAQ,IAC/CuoB,EAAGvoB,MAAQ,IACXuoB,EAAGvoB,MAAQ0pE,EACX9vC,EAAMotC,UAAY1a,EAAW,GAAK,IAClC/jC,EAAGjJ,eAAiB,EAAGiJ,EAAGhJ,aAAemqD,EAAOzwE,OAGhDic,EAAQy4B,kBAAoB11B,EAAG0S,IAAIwf,GACrC,CACF,CACA,SAASm/B,IACP,GAAI1vC,EAAM+uC,oBAAsBW,IAChC1vC,EAAM+uC,oBAAqB,EAC3B/uC,EAAMsF,QAAQjqB,MAAMiI,QAAUgsD,EAC9B3gD,EAAGtT,MAAMiI,QAAU+rD,EACfhuD,GAAMC,EAAa,GAAKhG,EAAQg8B,WAAWJ,aAAa57B,EAAQorB,SAASqE,UAAYyK,GAGhE,MAArB7mB,EAAGjJ,gBAAwB,GACxBrE,GAAOA,GAAMC,EAAa,IAAMsuD,IACrC,IAAIrxE,EAAI,EAAGytE,EAAO,WACZ1wD,EAAQy4B,mBAAqB11B,EAAG0S,IAAIwf,KAA4B,GAArB5hB,EAAGjJ,gBAC9CiJ,EAAGhJ,aAAe,GAAwB,KAAnBqa,EAAMotC,UAC/BzuD,GAAUN,EAAI8qC,GAAdxqC,CAAyBN,GAChB9f,IAAM,GACf+c,EAAQq0D,mBAAqB1pD,WAAW+lD,EAAM,MAE9C1wD,EAAQy4B,kBAAoB,KAC5Bz4B,EAAQ0kB,MAAMp7B,QAElB,EACA0W,EAAQq0D,mBAAqB1pD,WAAW+lD,EAAM,IAChD,CACF,CAaF,EAEAmB,GAAcpuE,UAAU2hE,gBAAkB,SAAU/7D,GAC7CA,GAAOjG,KAAKkG,QACjBlG,KAAK6uE,SAASwC,SAAkB,YAAPprE,EACzBjG,KAAK6uE,SAAShzC,WAAa51B,CAC7B,EAEAwoE,GAAcpuE,UAAUmhC,cAAgB,WAAa,EAErDitC,GAAcpuE,UAAUkhC,uBAAwB,EAyGhD0/B,GAAcxiD,IAEd4nD,GAAiB5nD,IAGjB,IAAI6yD,GAAe,gDAAgDrnE,MAAM,KACzE,IAAK,IAAIwc,MAAQ4oC,GAAIhvD,UAAiBgvD,GAAIhvD,UAAUqmB,eAAeD,KAAS5hB,EAAQysE,GAAc7qD,IAAQ,IACtGhI,GAAWpe,UAAUomB,IAAQ,SAAUxX,GACvC,OAAO,WAAY,OAAOA,EAAO1O,MAAMP,KAAKqyB,IAAKlxB,UAAU,CAC5D,CAF8B,CAE5BkuD,GAAIhvD,UAAUomB,MAkCnB,OAhCAuH,GAAWqhC,IACX5wC,GAAWikD,YAAc,CAAC,SAAY+L,GAAe,gBAAmB3E,IAKxErrD,GAAWsS,WAAa,SAASpnB,GAC1B8U,GAAW3X,SAASkZ,MAAgB,QAARrW,IAAkB8U,GAAW3X,SAASkZ,KAAOrW,GAC9EonB,GAAWxwB,MAAMP,KAAMmB,UACzB,EAEAsd,GAAWwS,WAAaA,GAGxBxS,GAAWsS,WAAW,QAAQ,WAAc,MAAO,CAAEpP,MAAO,SAAUJ,GAAU,OAAOA,EAAOmT,WAAa,EAAK,IAChHjW,GAAWwS,WAAW,aAAc,QAIpCxS,GAAWc,gBAAkB,SAAU5V,EAAM4nE,GAC3C9yD,GAAWpe,UAAUsJ,GAAQ4nE,CAC/B,EACA9yD,GAAW+yD,mBAAqB,SAAU7nE,EAAM4nE,GAC9CliB,GAAIhvD,UAAUsJ,GAAQ4nE,CACxB,EAEA9yD,GAAWmwD,aAAeA,GAE1BW,GAAe9wD,IAEfA,GAAWgzD,QAAU,SAEdhzD,EAER,CA1nTiFlf,G,gBCN5E,GAMH,SAASkf,GACZ,aAuZE,SAASizD,EAAOzhE,GAEd,IADA,IAAIhP,EAAO,CAAC,EACHpB,EAAI,EAAGA,EAAIoQ,EAAMtP,SAAUd,EAClCoB,EAAKgP,EAAMpQ,GAAGupB,gBAAiB,EAEjC,OAAOnoB,CACT,CA3ZFwd,EAAWsS,WAAW,OAAO,SAAS9Y,EAAQ05D,GAC5C,IAAItyD,EAASsyD,EAAatyD,OACrBsyD,EAAaC,mBAAkBD,EAAelzD,EAAW2S,YAAY,aAE1E,IAiBI5uB,EAAM8qB,EAjBN82C,EAAansD,EAAOmsD,WACpByN,EAAaF,EAAaE,WAC1BC,EAAgBH,EAAaG,eAAiB,CAAC,EAC/CC,EAAaJ,EAAaI,YAAc,CAAC,EACzCC,EAAgBL,EAAaK,eAAiB,CAAC,EAC/CC,EAAqBN,EAAaM,oBAAsB,CAAC,EACzDL,EAAmBD,EAAaC,kBAAoB,CAAC,EACrDM,EAA8BP,EAAaO,6BAA+B,CAAC,EAC3EC,EAAiBR,EAAaQ,gBAAkB,CAAC,EACjDC,EAAqBT,EAAaS,oBAAsB,CAAC,EACzDC,EAAgBV,EAAaU,eAAiB,CAAC,EAC/CC,EAAgBX,EAAaW,eAAiB,CAAC,EAC/CC,EAAcZ,EAAaY,YAC3BC,EAAcb,EAAaa,YAC3BC,GAA2D,IAArCd,EAAac,oBACnCC,GAAuF,IAAhDz6D,EAAOy6D,qCAGlD,SAASC,EAAIh2D,EAAOi2D,GAAiB,OAAXpwE,EAAOowE,EAAWj2D,CAAO,CAInD,SAASk2D,EAAUtxD,EAAQtC,GACzB,IAAImB,EAAKmB,EAAOpO,OAChB,GAAI0+D,EAAWzxD,GAAK,CAClB,IAAIlT,EAAS2kE,EAAWzxD,GAAImB,EAAQtC,GACpC,IAAe,IAAX/R,EAAkB,OAAOA,CAC/B,CACA,MAAU,KAANkT,GACFmB,EAAOiT,SAAS,YACTm+C,EAAI,MAAOpxD,EAAOtT,YACV,KAANmS,IAAoB,KAANA,GAAmB,KAANA,IAAcmB,EAAOgT,IAAI,KACtDo+C,EAAI,KAAM,WACF,MAANvyD,GAAoB,KAANA,GACvBnB,EAAM6zD,SAAWC,EAAY3yD,GACtBnB,EAAM6zD,SAASvxD,EAAQtC,IACf,KAANmB,GACTmB,EAAOiT,SAAS,YACTm+C,EAAI,OAAQ,SACJ,KAANvyD,GACTmB,EAAOlN,MAAM,WACNs+D,EAAI,UAAW,cACb,KAAK3oE,KAAKoW,IAAa,KAANA,GAAamB,EAAOgT,IAAI,OAClDhT,EAAOiT,SAAS,UACTm+C,EAAI,SAAU,SACL,MAAPvyD,EAYA,WAAWpW,KAAKoW,GAClBuyD,EAAI,KAAM,aACF,KAANvyD,GAAamB,EAAOlN,MAAM,yBAC5Bs+D,EAAI,YAAa,aACf,iBAAiB3oE,KAAKoW,GACxBuyD,EAAI,KAAMvyD,GACRmB,EAAOlN,MAAM,mBAClB,mCAAmCrK,KAAKuX,EAAOtT,aACjDgR,EAAM6zD,SAAWE,GAEZL,EAAI,kBAAmB,aACrB,WAAW3oE,KAAKoW,IACzBmB,EAAOiT,SAAS,YACTm+C,EAAI,WAAY,SAEhBA,EAAI,KAAM,MA1Bb,QAAQ3oE,KAAKuX,EAAO+S,SACtB/S,EAAOiT,SAAS,UACTm+C,EAAI,SAAU,SACZpxD,EAAOlN,MAAM,gBACtBkN,EAAOiT,SAAS,YACZjT,EAAOlN,MAAM,SAAS,GACjBs+D,EAAI,aAAc,uBACpBA,EAAI,aAAc,aAChBpxD,EAAOlN,MAAM,SACfs+D,EAAI,OAAQ,aADd,CAoBX,CAEA,SAASI,EAAYE,GACnB,OAAO,SAAS1xD,EAAQtC,GAEtB,IADA,IAAqBmB,EAAjB8yD,GAAU,EACiB,OAAvB9yD,EAAKmB,EAAOpO,SAAiB,CACnC,GAAIiN,GAAM6yD,IAAUC,EAAS,CACd,KAATD,GAAc1xD,EAAOqT,OAAO,GAChC,KACF,CACAs+C,GAAWA,GAAiB,MAAN9yD,CACxB,CAEA,OADIA,GAAM6yD,IAAUC,GAAoB,KAATD,KAAch0D,EAAM6zD,SAAW,MACvDH,EAAI,SAAU,SACvB,CACF,CAEA,SAASK,EAAmBzxD,EAAQtC,GAMlC,OALAsC,EAAOpO,OACFoO,EAAOlN,MAAM,eAAe,GAG/B4K,EAAM6zD,SAAW,KAFjB7zD,EAAM6zD,SAAWC,EAAY,KAGxBJ,EAAI,KAAM,IACnB,CAIA,SAASn9C,EAAQhzB,EAAMyhE,EAAQ/1D,GAC7BlO,KAAKwC,KAAOA,EACZxC,KAAKikE,OAASA,EACdjkE,KAAKkO,KAAOA,CACd,CAEA,SAASilE,EAAYl0D,EAAOsC,EAAQ/e,EAAMyhE,GAExC,OADAhlD,EAAMlV,QAAU,IAAIyrB,EAAQhzB,EAAM+e,EAAOuT,gBAA4B,IAAXmvC,EAAmB,EAAIG,GAAanlD,EAAMlV,SAC7FvH,CACT,CAEA,SAAS4wE,EAAWn0D,GAGlB,OAFIA,EAAMlV,QAAQmE,OAChB+Q,EAAMlV,QAAUkV,EAAMlV,QAAQmE,MACzB+Q,EAAMlV,QAAQvH,IACvB,CAEA,SAAS6wE,EAAK7wE,EAAM+e,EAAQtC,GAC1B,OAAOq0D,EAAOr0D,EAAMlV,QAAQvH,MAAMA,EAAM+e,EAAQtC,EAClD,CACA,SAASs0D,EAAW/wE,EAAM+e,EAAQtC,EAAO6H,GACvC,IAAK,IAAIjnB,EAAIinB,GAAK,EAAGjnB,EAAI,EAAGA,IAC1Bof,EAAMlV,QAAUkV,EAAMlV,QAAQmE,KAChC,OAAOmlE,EAAK7wE,EAAM+e,EAAQtC,EAC5B,CAIA,SAASu0D,EAAYjyD,GACnB,IAAI4hD,EAAO5hD,EAAOtT,UAAUmb,cAE1BkE,EADEglD,EAAc5rD,eAAey8C,GACpB,OACJkP,EAAc3rD,eAAey8C,GACzB,UAEA,UACf,CAEA,IAAImQ,EAAS,CAEbA,IAAa,SAAS9wE,EAAM+e,EAAQtC,GAClC,GAAY,KAARzc,EACF,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,SAC7B,GAAY,KAAR/e,GAAeyc,EAAMlV,QAAQmE,KACtC,OAAOklE,EAAWn0D,GACb,GAAIwzD,GAAuB,cAAczoE,KAAKxH,GACnD,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,oBAC7B,GAAI,uBAAuBvX,KAAKxH,GACrC,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,iBAC7B,GAAI,+CAA+CvX,KAAKxH,GAC7D,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,WAC7B,GAAI,+BAA+BvX,KAAKxH,GAE7C,OADAyc,EAAMw0D,SAAWjxE,EACV,4BACF,GAAI,sCAAsCwH,KAAKxH,GACpD,MAAO,YACF,GAAIA,GAA0B,KAAlBA,EAAKoZ,OAAO,GAC7B,OAAOu3D,EAAYl0D,EAAOsC,EAAQ,MAC7B,GAAY,QAAR/e,EACT8qB,EAAW,eACN,GAAY,QAAR9qB,EACT8qB,EAAW,UACN,IAAY,uBAAR9qB,EACT,MAAO,YACF,GAAY,iBAARA,EACT,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,iBAC7B,GAAY,KAAR/e,EACT,MAAO,SACF,GAAI+vE,GAAuB,KAAR/vE,EACxB,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,SACpC,CACA,OAAOtC,EAAMlV,QAAQvH,IACvB,EAEA8wE,MAAe,SAAS9wE,EAAM+e,EAAQtC,GACpC,GAAY,QAARzc,EAAgB,CAClB,IAAI2gE,EAAO5hD,EAAOtT,UAAUmb,cAC5B,OAAIwoD,EAAiBlrD,eAAey8C,IAClC71C,EAAW,WACJ,aACE4kD,EAA4BxrD,eAAey8C,IACpD71C,EAAWolD,EAAuC,WAAa,WACxD,aACEH,GACTjlD,EAAW/L,EAAOlN,MAAM,iBAAiB,GAAS,WAAa,MACxD,UAEPiZ,GAAY,SACL,YAEX,CAAO,MAAY,QAAR9qB,EACF,QACG+vE,GAAwB,QAAR/vE,GAA0B,aAARA,EAIrC8wE,EAAOxqC,IAAItmC,EAAM+e,EAAQtC,IAHhCqO,EAAW,QACJ,QAIX,EAEAgmD,UAAmB,SAAS9wE,EAAM+e,EAAQtC,GACxC,MAAY,KAARzc,EAAoB2wE,EAAYl0D,EAAOsC,EAAQ,QAC5C8xD,EAAK7wE,EAAM+e,EAAQtC,EAC5B,EAEAq0D,KAAc,SAAS9wE,EAAM+e,EAAQtC,GACnC,GAAY,KAARzc,EAAa,OAAO4wE,EAAWn0D,GACnC,GAAY,KAARzc,GAAe+vE,EAAa,OAAOY,EAAYl0D,EAAOsC,EAAQ,aAClE,GAAY,KAAR/e,GAAuB,KAARA,EAAa,OAAO+wE,EAAW/wE,EAAM+e,EAAQtC,GAChE,GAAY,KAARzc,EAAa,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,UAEnD,GAAY,QAAR/e,GAAmB,sDAAsDwH,KAAKuX,EAAOtT,YAElF,GAAY,QAARzL,EACTgxE,EAAYjyD,QACP,GAAY,iBAAR/e,EACT,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,sBAJlC+L,GAAY,SAMd,MAAO,MACT,EAEAgmD,UAAmB,SAAS9wE,EAAMkxE,EAASz0D,GACzC,MAAY,KAARzc,EAAoB4wE,EAAWn0D,GACvB,QAARzc,GAAkB8qB,EAAW,WAAmB,aAC7CrO,EAAMlV,QAAQvH,IACvB,EAEA8wE,OAAgB,SAAS9wE,EAAM+e,EAAQtC,GACrC,MAAY,KAARzc,GAAuB,KAARA,EAAoB+wE,EAAW/wE,EAAM+e,EAAQtC,GACpD,KAARzc,EAAoB4wE,EAAWn0D,GACvB,KAARzc,EAAoB2wE,EAAYl0D,EAAOsC,EAAQ,UACvC,iBAAR/e,EAAgC2wE,EAAYl0D,EAAOsC,EAAQ,kBACnD,QAAR/e,GAAgBgxE,EAAYjyD,GACzB,SACT,EAEA+xD,OAAgB,SAAS9wE,EAAM+e,EAAQtC,GACrC,MAAY,QAARzc,EAAuB,SAEf,QAARA,GACF8qB,EAAW,aACJrO,EAAMlV,QAAQvH,MAEhB6wE,EAAK7wE,EAAM+e,EAAQtC,EAC5B,EAEAq0D,cAAuB,SAAS9wE,EAAM+e,EAAQtC,GAC5C,MAAY,QAARzc,GAAkBsvE,EAAcprD,eAAenF,EAAOtT,YACxDqf,EAAW,MACJrO,EAAMlV,QAAQvH,MAEd8wE,EAAOK,QAAQnxE,EAAM+e,EAAQtC,EAExC,EAEAq0D,QAAiB,SAAS9wE,EAAM+e,EAAQtC,GACtC,GAAY,KAARzc,EAAa,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,kBACnD,GAAY,KAAR/e,GAAuB,KAARA,EAAa,OAAO+wE,EAAW/wE,EAAM+e,EAAQtC,GAChE,GAAY,KAARzc,EAAa,OAAO4wE,EAAWn0D,IAAUk0D,EAAYl0D,EAAOsC,EAAQgxD,EAAc,QAAU,OAEhG,GAAY,iBAAR/vE,EAAyB,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,iBAE/D,GAAY,QAAR/e,EAAgB,CAClB,IAAI2gE,EAAO5hD,EAAOtT,UAAUmb,cAE1BkE,EADU,QAAR61C,GAA0B,OAARA,GAAyB,OAARA,GAAyB,MAARA,EAC3C,UACJ4O,EAAWrrD,eAAey8C,GACtB,YACJ6O,EAActrD,eAAey8C,GACzB,WACJ8O,EAAmBvrD,eAAey8C,GAC9B,UACJyO,EAAiBlrD,eAAey8C,GAC5B,WACJ+O,EAA4BxrD,eAAey8C,GACvCuP,EAAuC,WAAa,WACxDJ,EAAc5rD,eAAey8C,GACzB,OACJkP,EAAc3rD,eAAey8C,GACzB,UAEA,OACf,CACA,OAAOlkD,EAAMlV,QAAQvH,IACvB,EAEA8wE,iBAA0B,SAAS9wE,EAAM+e,EAAQtC,GAC/C,MAAY,KAARzc,EACK+wE,EAAW/wE,EAAM+e,EAAQtC,GACtB,KAARzc,EACK4wE,EAAWn0D,IAAUk0D,EAAYl0D,EAAOsC,EAAQgxD,EAAc,QAAU,OAAO,IAC5E,QAAR/vE,IACF8qB,EAAW,SACNrO,EAAMlV,QAAQvH,KACvB,EAEA8wE,eAAwB,SAAS9wE,EAAM+e,EAAQtC,GAC7C,MAAY,KAARzc,EAAoB4wE,EAAWn0D,GACvB,KAARzc,GAAuB,KAARA,EAAoB+wE,EAAW/wE,EAAM+e,EAAQtC,EAAO,GAChEq0D,EAAOK,QAAQnxE,EAAM+e,EAAQtC,EACtC,EAEAq0D,0BAAmC,SAAS9wE,EAAM+e,EAAQtC,GACxD,MAAY,KAARzc,EACK2wE,EAAYl0D,EAAOsC,EAAQ,sBACxB,QAAR/e,GAAoC,kBAAlByc,EAAMw0D,UAC1BnmD,EAAW,WACJ,6BAEF+lD,EAAK7wE,EAAM+e,EAAQtC,EAC5B,EAEAq0D,mBAA4B,SAAS9wE,EAAM+e,EAAQtC,GACjD,MAAY,KAARzc,GACFyc,EAAMw0D,SAAW,KACVL,EAAWn0D,IAER,QAARzc,GAGA8qB,EAFqB,cAAlBrO,EAAMw0D,WAA6BtB,EAAezrD,eAAenF,EAAOtT,UAAUmb,gBAChE,kBAAlBnK,EAAMw0D,WAAiCrB,EAAmB1rD,eAAenF,EAAOtT,UAAUmb,eAClF,QAEA,WACN,aAEF,oBACT,EAEAkqD,UAAmB,SAAS9wE,EAAM+e,EAAQtC,GACxC,MAAY,QAARzc,GAAkB8qB,EAAW,WAAmB,aACxC,KAAR9qB,EAAoB2wE,EAAYl0D,EAAOsC,EAAQ,OAC5C8xD,EAAK7wE,EAAM+e,EAAQtC,EAC5B,EAEAq0D,GAAY,SAAS9wE,EAAM+e,EAAQtC,GACjC,MAAY,KAARzc,EAAoB4wE,EAAWn0D,GACvB,KAARzc,GAAuB,KAARA,EAAoB+wE,EAAW/wE,EAAM+e,EAAQtC,IACpD,QAARzc,EAAgB8qB,EAAW,MACd,QAAR9qB,IAAgB8qB,EAAW,WAC7B,KACT,EAEAgmD,cAAuB,SAAS9wE,EAAM+e,EAAQtC,GAC5C,MAAY,KAARzc,EAAoB4wE,EAAWn0D,GACvB,KAARzc,GAAuB,KAARA,EAAoB+wE,EAAW/wE,EAAM+e,EAAQtC,IACpD,QAARzc,EAAgB8qB,EAAW,WACd,YAAR9qB,GAA8B,KAARA,GAAuB,KAARA,IAAa8qB,EAAW,SAC/D,gBACT,GAEA,MAAO,CACLyE,WAAY,SAASxiB,GACnB,MAAO,CAACujE,SAAU,KACV7zD,MAAOI,EAAS,QAAU,MAC1Bo0D,SAAU,KACV1pE,QAAS,IAAIyrB,EAAQnW,EAAS,QAAU,MAAO9P,GAAQ,EAAG,MACpE,EAEAoS,MAAO,SAASJ,EAAQtC,GACtB,IAAKA,EAAM6zD,UAAYvxD,EAAOkT,WAAY,OAAO,KACjD,IAAI9X,GAASsC,EAAM6zD,UAAYD,GAAWtxD,EAAQtC,GAQlD,OAPItC,GAAyB,iBAATA,IAClBna,EAAOma,EAAM,GACbA,EAAQA,EAAM,IAEhB2Q,EAAW3Q,EACC,WAARna,IACFyc,EAAMA,MAAQq0D,EAAOr0D,EAAMA,OAAOzc,EAAM+e,EAAQtC,IAC3CqO,CACT,EAEA22C,OAAQ,SAAShlD,EAAOD,GACtB,IAAI40D,EAAK30D,EAAMlV,QAASqW,EAAKpB,GAAaA,EAAUpD,OAAO,GACvDqoD,EAAS2P,EAAG3P,OAchB,MAbe,QAAX2P,EAAGpxE,MAAyB,KAAN4d,GAAmB,KAANA,IAAYwzD,EAAKA,EAAG1lE,MACvD0lE,EAAG1lE,OACK,KAANkS,GAAyB,SAAXwzD,EAAGpxE,MAA8B,OAAXoxE,EAAGpxE,MACd,iBAAXoxE,EAAGpxE,MAAsC,sBAAXoxE,EAAGpxE,MAIlC,KAAN4d,GAAyB,UAAXwzD,EAAGpxE,MAA+B,kBAAXoxE,EAAGpxE,QACzC,KAAN4d,GAAyB,MAAXwzD,EAAGpxE,MAA2B,WAAXoxE,EAAGpxE,QAEtCyhE,EAAS/3D,KAAKC,IAAI,EAAGynE,EAAG3P,OAASG,IAJjCH,GADA2P,EAAKA,EAAG1lE,MACI+1D,QAOTA,CACT,EAEA0B,cAAe,IACfkO,kBAAmB,KACnBC,gBAAiB,KACjBC,qBAAsB,MACtBvB,YAAaA,EACbwB,KAAM,QAEV,IAUE,IAAIC,EAAiB,CACnB,SAAU,SAAU,MAAO,cAC1BnC,EAAgBJ,EAAOuC,GAEtBC,EAAc,CAChB,MAAO,QAAS,UAAW,WAAY,QAAS,aAAc,SAC9D,MAAO,KAAM,YACZnC,EAAaL,EAAOwC,GAEnBC,EAAiB,CACnB,QAAS,YAAa,YAAa,SAAU,aAAc,aAC3D,eAAgB,mBAAoB,mBAAoB,gBACxD,oBAAqB,oBAAqB,eAC1C,mBAAoB,mBAAoB,sBACxC,0BAA2B,0BAA2B,QAAS,YAC/D,YAAa,cAAe,kBAAmB,kBAC/C,aAAc,iBAAkB,iBAAkB,aAClD,iBAAkB,iBAAkB,OAAQ,OAAQ,cACpD,qBAAsB,yBAA0B,yBAChD,UAAW,cAAe,QAAS,YAAa,uBAChD,gBAAiB,uBAChBnC,EAAgBN,EAAOyC,GAEtBC,EAAsB,CACxB,YAAa,WAAY,OAAQ,SAAU,OAAQ,YAAa,QAChE,YAAa,cACb,OAAQ,QACR,WAAY,QACXnC,EAAqBP,EAAO0C,GAE3BC,EAAoB,CACtB,gBAAiB,cAAe,aAAc,mBAC9C,qBAAsB,MAAO,eAAgB,YAAa,kBAC1D,sBAAuB,qBAAsB,sBAC7C,4BAA6B,iBAAkB,uBAC/C,4BAA6B,aAAc,UAAW,kBACtD,sBAAuB,aAAc,wBACrC,wBAAyB,kBAAmB,mBAC5C,mBAAoB,oBAAqB,sBACzC,wBAAyB,wBAAyB,oBAClD,kBAAmB,iBAAkB,UAAW,QAAS,aACzD,iBAAkB,iBAAkB,iBAAkB,kBACtD,SAAU,gBAAiB,sBAAuB,4BAClD,6BAA8B,sBAAuB,sBACrD,kBAAmB,eAAgB,eAAgB,sBACnD,sBAAuB,qBAAsB,sBAC7C,qBAAsB,cAAe,oBAAqB,oBAC1D,oBAAqB,gBAAiB,eAAgB,qBACtD,qBAAsB,qBAAsB,iBAAkB,eAC9D,aAAc,mBAAoB,yBAClC,0BAA2B,mBAAoB,mBAC/C,eAAgB,SAAU,uBAAwB,aAAc,aAChE,cAAe,eAAgB,eAAgB,eAAgB,cAC/D,QAAS,OAAQ,QAAS,gBAAiB,eAAgB,cAC3D,aAAc,cAAe,oBAAqB,oBAClD,oBAAqB,cAAe,eAAgB,UAAW,UAC/D,UAAW,oBAAqB,gBAAiB,OAAQ,MAAO,YAChE,aAAc,SAAU,YAAa,UAAW,oBAChD,4BAA6B,2BAC7B,6BAA8B,4BAA6B,oBAC3D,qBAAsB,YAAa,cAAe,MAAO,cAAe,eACxE,OAAQ,aAAc,iBAAkB,YAAa,YACrD,cAAe,YAAa,QAAS,eAAgB,YAAa,YAClE,OAAQ,cAAe,wBAAyB,eAChD,yBAA0B,sBAAuB,YACjD,mBAAoB,eAAgB,aAAc,iBAClD,eAAgB,0BAA2B,oBAC3C,0BAA2B,yBAA0B,uBACrD,wBAAyB,0BAA2B,cAAe,MACnE,OAAQ,YAAa,oBAAqB,iBAAkB,iBAC5D,cAAe,kBAAmB,kBAAmB,oBACrD,WAAY,WAAY,eAAgB,eAAgB,iBACxD,gBAAiB,sBAAuB,wBACxC,qBAAsB,sBAAuB,SAAU,UAAW,OAClE,oBAAqB,kBAAmB,mBAAoB,mBAC5D,QAAS,cAAe,kBAAmB,oBAAqB,eAChE,mBAAoB,qBAAsB,YAAa,kBACvD,gBAAiB,eAAgB,OAAQ,iBAAkB,aAC3D,cAAe,mBAAoB,gBAAiB,qBACpD,sBAAuB,yBAA0B,aACjD,mBAAoB,sBAAuB,kBAAmB,SAC9D,gBAAiB,cAAe,eAAgB,aAAc,QAC9D,oBAAqB,eAAgB,qBAAsB,gBAC3D,gBAAiB,YAAa,iBAAkB,aAAc,YAC9D,cAAe,gBAAiB,cAAe,YAAY,YAC3D,iBAAkB,aAAc,kBAChC,YAAa,iBAAkB,aAAc,kBAAmB,YAChE,iBAAkB,UAAW,WAAY,YAAa,WAAY,YAClE,SAAU,aAAc,kBAAmB,SAAU,gBACrD,kBAAmB,cAAe,kBAAmB,gBACrD,UAAW,QAAS,UAAW,UAAW,gBAAiB,iBAC3D,gBAAiB,gBAAiB,WAAY,iBAC9C,gBAAiB,aAAc,aAAc,UAAW,iBACxD,eAAgB,gBAAiB,cAAe,OAAQ,mBACxD,oBAAqB,oBAAqB,cAAe,QACzD,cAAe,eAAgB,cAAe,qBAAsB,QACpE,cAAe,gBAAiB,cAAe,aAAc,cAC7D,WAAY,qBAAsB,mBAAoB,SACtD,qBAAsB,sBAAuB,sBAC7C,kBAAmB,mBAAoB,SAAU,OAAQ,aACzD,cAAe,WAAY,QAAS,SAAU,WAAY,iBAC1D,UAAW,aAAc,gBAAiB,gBAAiB,YAC3D,QAAS,kBAAmB,gBAAiB,sBAC7C,0BAA2B,4BAA6B,uBACxD,uBAAwB,2BACxB,6BAA8B,qBAAsB,sBACpD,oBAAqB,iBAAkB,uBACvC,2BAA4B,6BAC5B,wBAAyB,wBAAyB,4BAClD,8BAA+B,sBAAuB,uBACtD,qBAAsB,oBAAqB,mBAC3C,wBAAyB,eAAgB,eAAgB,gBACzD,OAAQ,QAAS,WAAY,eAAgB,gBAC7C,oBAAqB,cAAe,SAAU,aAAc,WAC5D,eAAgB,SAAU,cAAe,aAAc,kBACvD,aAAc,kBAAmB,uBAAwB,kBACzD,wBAAyB,uBAAwB,uBACjD,2BAA4B,wBAAyB,gBACrD,sBAAuB,yBAA0B,sBACjD,cAAe,cAAe,eAAgB,mBAC9C,eAAgB,gBAAiB,iBAAkB,cACnD,mBAAoB,sBAAuB,iBAC3C,0BAA2B,YAAa,MAAO,eAAgB,YAAa,mBAC5E,kBAAmB,aAAc,mBAAoB,sBACrD,sBAAuB,6BAA8B,YACrD,eAAgB,cAAe,iBAAkB,aAAc,gBAC/D,iBAAkB,eAAgB,cAAe,cAAe,aAChE,eAAgB,eAAgB,SAAU,cAAe,SAAU,QACnE,cAAe,aAAc,eAAgB,YAAa,eAAgB,UAE1E,YAAa,YAAa,OAAQ,oBAAqB,SAAU,cACjE,gBAAiB,iBAAkB,aAAc,eAAgB,iBACjE,sBAAuB,8BACvB,kBAAmB,OAAQ,eAAgB,YAAa,kBACxD,SAAU,aAAc,aAAc,eAAgB,cAAe,kBAAmB,SACxF,mBAAoB,oBAAqB,iBAAkB,kBAC3D,oBAAqB,iBAAkB,eAAgB,iBACvD,iBAAkB,oBAAqB,+BACvC,6BAA8B,cAAe,gBAC5CzC,EAAmBF,EAAO2C,GAEzBC,EAA+B,CACjC,eAAgB,eAAgB,eAAgB,qBAAsB,mBACtE,yBAA0B,yBAA0B,yBACpD,qBAAsB,2BAA4B,2BAClD,2BAA4B,qBAAsB,qBAClD,gBAAiB,sBAAuB,oBACxC,0BAA2B,0BAC3B,0BAA2B,sBAAuB,4BAClD,4BAA6B,4BAC7B,sBAAuB,sBAAuB,qBAAsB,eACpE,mBAAoB,qBAAsB,gBAAiB,oBAC3D,sBAAuB,kBAAmB,sBAAuB,gBAAiB,oBAClF,sBAAuB,iBAAkB,qBACzC,uBAAwB,mBAAoB,2BAC5C,wBAAyB,uBAAwB,8BACjD,uBAAwB,4BAA6B,yBACrD,wBAAyB,4BAA6B,yBACtD,6BAA8B,iCAAkC,eAAgB,QAC/EpC,EAA8BR,EAAO4C,GAKrCnC,EAAiBT,EAHE,CACpB,eAAgB,cAAe,MAAO,gBAAiB,eACtD,wBAAyB,eAAgB,cAAe,eAMxDU,EAAqBV,EAHE,CACxB,mBAAoB,WAAY,WAAY,MAAO,SAAU,QAC7D,WAAY,SAAU,UAAW,WAG/B6C,EAAiB,CACnB,YAAa,eAAgB,OAAQ,aAAc,QAAS,QAC5D,SAAU,QAAS,iBAAkB,OAAQ,aAAc,QAC3D,YAAa,YAAa,aAAc,YAAa,QAAS,iBAC9D,WAAY,UAAW,OAAQ,WAAY,WAAY,gBACvD,WAAY,YAAa,WAAY,YAAa,cAAe,iBACjE,aAAc,aAAc,UAAW,aAAc,eACrD,gBAAiB,gBAAiB,gBAAiB,gBAAiB,aACpE,WAAY,cAAe,UAAW,UAAW,aAAc,YAC/D,cAAe,cAAe,UAAW,YAAa,aACtD,OAAQ,YAAa,OAAQ,OAAQ,QAAS,cAAe,WAC7D,UAAW,YAAa,SAAU,QAAS,QAAS,WACpD,gBAAiB,YAAa,eAAgB,YAAa,aAC3D,YAAa,uBAAwB,YAAa,aAAc,YAAa,YAC7E,cAAe,gBAAiB,eAAgB,iBAAkB,iBAClE,iBAAkB,cAAe,OAAQ,YAAa,QAAS,UAC/D,SAAU,mBAAoB,aAAc,eAAgB,eAC5D,iBAAkB,kBAAmB,oBAAqB,kBAC1D,kBAAmB,eAAgB,YAAa,YAAa,WAC7D,cAAe,OAAQ,UAAW,QAAS,YAAa,SAAU,YAClE,SAAU,gBAAiB,YAAa,gBAAiB,gBACzD,aAAc,YAAa,OAAQ,OAAQ,OAAQ,aACnD,SAAU,gBAAiB,MAAO,YAAa,YAAa,cAC5D,SAAU,aAAc,WAAY,WAAY,SAAU,SAAU,UACpE,YAAa,YAAa,YAAa,OAAQ,cAAe,YAAa,MAC3E,OAAQ,UAAW,SAAU,YAAa,SAAU,QAAS,QAC7D,aAAc,SAAU,eACvBlC,EAAgBX,EAAO6C,GAEtBC,EAAiB,CACnB,QAAS,WAAY,eAAgB,WAAY,gBAAiB,OAClE,oBAAqB,QAAS,QAAS,MAAO,aAAc,aAAc,YAC1E,SAAU,UAAW,kBAAmB,cAAe,eACvD,eAAgB,WAAY,YAAa,OAAQ,OAAQ,YAAa,QAAS,eAAgB,aAC/F,eAAgB,WAAY,aAAc,YAAa,WAAY,QAAS,gBAAiB,SAC7F,UAAW,QAAS,QAAS,aAAc,OAAQ,OAAQ,SAAU,SAAU,aAC/E,OAAQ,SAAU,QAAS,YAAa,aAAc,aAAc,UAAW,SAC/E,aAAc,kBAAmB,eAAgB,aAAc,OAAQ,YACvE,aAAc,sBAAuB,UAAW,cAAe,QAC/D,OAAQ,SAAU,WAAY,SAAU,cAAe,qBACvD,oBAAqB,kBAAmB,QAAS,OAAQ,cACzD,aAAc,WAAY,QAAS,aAAc,cAAe,SAAU,iBAC1E,UAAW,YAAa,iBAAkB,UAAW,UAAW,WAChE,cAAe,eAAgB,aAAc,WAAY,OAAQ,UAAW,WAAY,QAAS,OACjG,QAAS,YAAa,eAAgB,eAAgB,UAAW,SAAU,SAAU,SAAU,UAC/F,uBAAwB,UAAW,iBAAkB,QAAS,mBAC9D,iBAAkB,kBAAmB,mBAAoB,aAAc,aACvE,OAAQ,UAAW,oBAAqB,kBAAmB,WAC3D,WAAY,eACZ,SAAU,SAAU,OAAQ,cAAe,WAAY,OAAQ,UAAW,cAAe,WACzF,UAAW,UAAW,WAAY,QAAS,MAAO,WAAY,mBAC9D,yBAA0B,uBAAwB,yBAClD,yBAA0B,0BAC1B,0BAA2B,0BAC3B,wBAAyB,0BACzB,2BAA4B,0BAC5B,0BAA2B,0BAA2B,wBACtD,mBAAoB,YAAa,YAAa,WAAY,UAAW,kBACrE,iBAAkB,UAAW,OAAQ,OAAQ,WAAY,QAAS,OAAQ,OAAQ,WAAY,aAAc,YAC5G,WAAY,OAAQ,qBAAsB,WAAY,YAAa,WAAY,OAAQ,SACvF,WAAY,WAAY,OAAQ,SAAU,mBAAoB,aAAc,SAC5E,OAAQ,SAAU,OAAQ,SAAU,YAAa,gBACjD,WAAY,iBAAkB,aAAc,MAAO,OAAQ,MAAO,aAAc,OAAQ,SACxF,iBAAkB,kBAAmB,sBAAuB,WAC5D,iBAAkB,WAAY,UAAW,UAAW,SAAU,cAC9D,eAAgB,cAAe,cAAe,eAAgB,QAAS,SAAU,YAAa,SAC9F,SAAU,kBAAmB,oBAAqB,UAAW,UAC7D,WAAY,iBAAkB,WAAY,QAC1C,uBAAwB,sBAAuB,wBAC/C,YAAa,MAAO,QAAS,SAAU,OAAQ,QAAS,UAAW,UACnE,eAAgB,SAAU,kBAAmB,QAAS,YAAa,UAAW,WAC9E,QAAS,UAAW,OAAQ,QAAS,cAAe,iBACpD,cAAe,oBAAqB,cAAe,kBACnD,cAAe,YAAa,MAAO,aAAc,YAAa,eAAgB,QAAS,SAAU,WACjG,oBAAqB,eAAgB,oBACrC,sBAAuB,2BAA4B,SACnD,OAAQ,WAAY,kBACpB,WAAY,cAAe,SAAU,gBACrC,MAAO,YAAa,YAAa,OAAQ,WAAY,uBAAwB,WAAY,UAAW,WACpG,WAAY,YAAa,cAAe,iBAAkB,UAC1D,gBAAiB,YAAa,OAAQ,SAAU,cAAe,SAC/D,YAAa,UAAW,UAAW,YAAa,cAAe,UAAW,QAAS,UAAW,aAC9F,qBAAsB,gBAAiB,QAAS,QAAS,SACzD,UAAW,gBAAiB,UAAW,WAAY,UAAW,cAC9D,UAAW,OAAQ,SAAU,UAAW,cAAe,aAAc,cAAe,eACpF,UAAW,UAAW,WAAY,MAAO,WAAY,WAAY,cACjE,WAAY,cAAe,kBAAmB,QAAS,YACvD,aAAc,4BAA6B,YAAa,SACxD,WAAY,SAAU,4BAA6B,4BACnD,2BAA4B,WAAY,WAAY,QAAS,UAC7D,MAAO,OAAQ,QAAS,QAAS,SAAU,WAAY,UAAW,UAClE,UAAW,QAAS,MAAO,aAAc,cAAe,MAAO,SAAU,UACzE,WAAY,aAAc,WAAY,aAAc,QAAS,UAAW,SAAU,SAAU,SAAU,SACtG,SAAU,YAAa,kBAAmB,YAAa,cACvD,4BAA6B,yBAC7B,6BAA8B,iCAAkC,aAAc,WAC9E,iBAAkB,gBAAiB,WAAY,QAAS,QAAS,OAAQ,SACzE,sBAAuB,wBAAyB,SAChD,OAAQ,QAAS,QAAS,mBAAoB,QAAS,oBACvD,kBAAmB,yBAA0B,uBAAwB,OACrE,QAAS,aAAc,gBAAiB,UAAW,aAAc,QAAS,SAC1E,cAAe,YAAa,aAAc,cAAe,QAAS,eAAgB,gBAAiB,eAAgB,YAAa,SAChI,gBAAiB,QAAS,SAAU,aAAc,UAAW,SAAU,aAAc,MACrF,uBAAwB,YAAa,QAAS,YAAa,WAAY,UAAW,YAAa,QAC/F,gBAAiB,aAAc,eAAgB,qBAC/C,qBAAsB,qBAAsB,YAAa,kBACzD,QACA,SAAU,OAAQ,cAAe,WAAY,WAAY,YAAa,OACtE,QAAS,OAAQ,mBAAoB,aAAc,kBACnD,oBAAqB,eAAgB,UAAW,QAAS,cACzD,sBAAuB,cAAe,sBAAuB,KAAM,MACnE,sBAAuB,wBAAyB,YAChD,YAAa,cAAe,aAAc,aAAc,aACxD,cAAe,kBAAmB,iBAAkB,YAAa,qBAAsB,QAAS,KAChG,cAAe,iBAAkB,cAAe,oBAChD,cAAe,kBAAmB,cAAe,YAAa,OAAQ,MACtE,MAAO,WAAY,gBAAiB,WAAY,UAAW,cAAe,iBAC1E,gBAAiB,SAAU,WAAY,OAAQ,OAAQ,QACvD,SAAU,cAAe,aAAc,QAAS,OAAQ,eAAgB,UAAW,UAAW,MAC9F,WAAY,YACXlC,EAAgBZ,EAAO8C,GAEtBC,EAAWR,EAAelvE,OAAOmvE,GAAanvE,OAAOovE,GAAgBpvE,OAAOqvE,GAC7ErvE,OAAOsvE,GAAmBtvE,OAAOuvE,GAA8BvvE,OAAOwvE,GACtExvE,OAAOyvE,GAGV,SAASE,EAAcnzD,EAAQtC,GAE7B,IADA,IAAsBmB,EAAlBu0D,GAAW,EACgB,OAAvBv0D,EAAKmB,EAAOpO,SAAiB,CACnC,GAAIwhE,GAAkB,KAANv0D,EAAW,CACzBnB,EAAM6zD,SAAW,KACjB,KACF,CACA6B,EAAkB,KAANv0D,CACd,CACA,MAAO,CAAC,UAAW,UACrB,CAZA3B,EAAWyqD,eAAe,YAAa,MAAOuL,GAc9Ch2D,EAAWwS,WAAW,WAAY,CAChC6gD,cAAeA,EACfC,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BC,eAAgBA,EAChBC,mBAAoBA,EACpBC,cAAeA,EACfC,cAAeA,EACfT,WAAY,CACV,IAAK,SAAStwD,EAAQtC,GACpB,QAAKsC,EAAOgT,IAAI,OAChBtV,EAAM6zD,SAAW4B,EACVA,EAAcnzD,EAAQtC,GAC/B,GAEFtV,KAAM,QAGR8U,EAAWwS,WAAW,cAAe,CACnC8gD,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BG,cAAeA,EACfC,cAAeA,EACfH,eAAgBA,EAChBI,aAAa,EACbC,YAAa,KACbX,WAAY,CACV,IAAK,SAAStwD,EAAQtC,GACpB,OAAIsC,EAAOgT,IAAI,MACbhT,EAAOmT,YACA,CAAC,UAAW,YACVnT,EAAOgT,IAAI,MACpBtV,EAAM6zD,SAAW4B,EACVA,EAAcnzD,EAAQtC,IAEtB,CAAC,WAAY,WAExB,EACA,IAAK,SAASsC,GACZ,QAAIA,EAAOlN,MAAM,UAAU,IAClB,CAAC,KAAM,KAElB,EACA,EAAK,SAASkN,GAEZ,OADAA,EAAOlN,MAAM,WACTkN,EAAOlN,MAAM,SAAS,GACjB,CAAC,aAAc,uBACjB,CAAC,aAAc,WACxB,EACA,IAAK,SAASkN,GACZ,QAAKA,EAAOgT,IAAI,MACT,CAAC,KAAM,gBAChB,GAEF5qB,KAAM,MACN8nB,WAAY,SAGdhT,EAAWwS,WAAW,cAAe,CACnC8gD,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BG,cAAeA,EACfC,cAAeA,EACfH,eAAgBA,EAChBI,aAAa,EACbC,YAAa,KACbX,WAAY,CACV,IAAK,SAAStwD,EAAQtC,GACpB,OAAIsC,EAAOgT,IAAI,MACbhT,EAAOmT,YACA,CAAC,UAAW,YACVnT,EAAOgT,IAAI,MACpBtV,EAAM6zD,SAAW4B,EACVA,EAAcnzD,EAAQtC,IAEtB,CAAC,WAAY,WAExB,EACA,IAAK,SAASsC,GACZ,OAAIA,EAAOgT,IAAI,KAAa,CAAC,KAAM,kBAC/BhT,EAAOlN,MAAM,yGAAyG,KAC1HkN,EAAOiT,SAAS,YACZjT,EAAOlN,MAAM,SAAS,GACjB,CAAC,aAAc,uBACjB,CAAC,aAAc,YACxB,EACA,IAAK,WACH,MAAO,CAAC,OAAQ,OAClB,GAEF1K,KAAM,MACN8nB,WAAY,SAGdhT,EAAWwS,WAAW,aAAc,CAClC6gD,cAAeA,EACfC,WAAYA,EACZC,cAAeA,EACfJ,iBAAkBA,EAClBM,4BAA6BA,EAC7BC,eAAgBA,EAChBC,mBAAoBA,EACpBC,cAAeA,EACfC,cAAeA,EACfG,qBAAqB,EACrBZ,WAAY,CACV,IAAK,SAAStwD,EAAQtC,GACpB,QAAKsC,EAAOgT,IAAI,OAChBtV,EAAM6zD,SAAW4B,EACVA,EAAcnzD,EAAQtC,GAC/B,GAEFtV,KAAM,MACN8nB,WAAY,OAGhB,CAx1BItP,CAAI,EAAQ,K,gBCDV,GAMH,SAAS1D,GACV,aAEA,IAAIm2D,EAAc,CAChBC,OAAQ,CACN,CAAC,OAAQ,sBAAuB,cAChC,CAAC,OAAQ,kEAAmE,cAC5E,CAAC,OAAQ,IAAK,cACd,CAAC,KAAM,KAAM,eAEfl4D,MAAQ,CACN,CAAC,OAAQ,SAAU,OACnB,CAAC,OAAQ,oCAAqC,OAC9C,CAAC,OAAQ,IAAK,cACd,CAAC,KAAM,KAAM,SAIjB,SAASm4D,EAAYvzD,EAAQwzD,EAAKp4D,GAChC,IAAIiF,EAAML,EAAOtT,UAAWmP,EAAQwE,EAAIiF,OAAOkuD,GAO/C,OANI33D,GAAS,EACXmE,EAAOqT,OAAOhT,EAAIjhB,OAASyc,GAClBwE,EAAIvN,MAAM,WACnBkN,EAAOqT,OAAOhT,EAAIjhB,QACb4gB,EAAOlN,MAAM0gE,GAAK,IAAQxzD,EAAOlN,MAAMuN,IAEvCjF,CACT,CAEA,IAAIq4D,EAAkB,CAAC,EACvB,SAASC,EAAcztE,GACrB,IAAI0tE,EAASF,EAAgBxtE,GAC7B,OAAI0tE,IACGF,EAAgBxtE,GAAQ,IAAI8S,OAAO,OAAS9S,EAAO,wCAC5D,CAEA,SAAS2tE,EAAap0D,EAAMvZ,GAC1B,IAAI6M,EAAQ0M,EAAK1M,MAAM4gE,EAAcztE,IACrC,OAAO6M,EAAQ,gBAAgBkG,KAAKlG,EAAM,IAAI,GAAK,EACrD,CAEA,SAAS+gE,EAAa3hE,EAAS4hE,GAC7B,OAAO,IAAI/6D,QAAQ+6D,EAAW,IAAM,IAAM,SAAY5hE,EAAU,QAAS,IAC3E,CAEA,SAAS6hE,EAAQ71D,EAAMC,GACrB,IAAK,IAAIiF,KAAOlF,EAGd,IAFA,IAAIuoC,EAAOtoC,EAAGiF,KAASjF,EAAGiF,GAAO,IAC7B4E,EAAS9J,EAAKkF,GACT9kB,EAAI0pB,EAAO5oB,OAAS,EAAGd,GAAK,EAAGA,IACtCmoD,EAAKt2C,QAAQ6X,EAAO1pB,GAE1B,CAEA,SAAS01E,EAAiBC,EAASC,GACjC,IAAK,IAAI51E,EAAI,EAAGA,EAAI21E,EAAQ70E,OAAQd,IAAK,CACvC,IAAIsxB,EAAOqkD,EAAQ31E,GACnB,IAAKsxB,EAAK,IAAMA,EAAK,GAAGnnB,KAAKmrE,EAAaM,EAAStkD,EAAK,KAAM,OAAOA,EAAK,EAC5E,CACF,CAEA1S,EAAWsS,WAAW,aAAa,SAAU9Y,EAAQ05D,GACnD,IAAI+D,EAAWj3D,EAAWqB,QAAQ7H,EAAQ,CACxCtO,KAAM,MACN+rE,UAAU,EACVC,yBAA0BhE,EAAagE,yBACvCC,0BAA2BjE,EAAaiE,0BACxCC,oBAAqBlE,EAAakE,sBAGhCC,EAAO,CAAC,EACRC,EAAapE,GAAgBA,EAAamE,KAAME,EAAerE,GAAgBA,EAAasE,YAGhG,GAFAX,EAAQV,EAAakB,GACjBC,GAAYT,EAAQS,EAAYD,GAChCE,EAAc,IAAK,IAAIn2E,EAAIm2E,EAAar1E,OAAS,EAAGd,GAAK,EAAGA,IAC9Di2E,EAAKjB,OAAOnjE,QAAQ,CAAC,OAAQskE,EAAan2E,GAAG6N,QAASsoE,EAAan2E,GAAGmgB,OAExE,SAASk2D,EAAK30D,EAAQtC,GACpB,IAAkFxL,EAA9EkJ,EAAQ+4D,EAAS/zD,MAAMJ,EAAQtC,EAAMk3D,WAAYxxD,EAAM,UAAU3a,KAAK2S,GAC1E,GAAIgI,IAAQ,WAAW3a,KAAKuX,EAAOtT,aAC9BwF,EAAUwL,EAAMk3D,UAAU1iE,SAAWwL,EAAMk3D,UAAU1iE,QAAQ2V,gBAC9D0sD,EAAKpvD,eAAejT,GACtBwL,EAAMm3D,MAAQ3iE,EAAU,SACnB,GAAIwL,EAAMm3D,OAASzxD,GAAO,KAAK3a,KAAKuX,EAAOtT,WAAY,CAC5D,IAAImoE,EAAQ,gBAAgB77D,KAAK0E,EAAMm3D,OACvCn3D,EAAMm3D,MAAQ,KACd,IAAIxP,EAA+B,KAApBrlD,EAAOtT,WAAoBsnE,EAAiBO,EAAKM,EAAM,IAAKA,EAAM,IAC7Ep2D,EAAOvB,EAAWqB,QAAQ7H,EAAQ2uD,GAClCyP,EAAUjB,EAAagB,EAAM,IAAI,GAAOE,EAASlB,EAAagB,EAAM,IAAI,GAC5En3D,EAAM0C,MAAQ,SAAUJ,EAAQtC,GAC9B,OAAIsC,EAAOlN,MAAMgiE,GAAS,IACxBp3D,EAAM0C,MAAQu0D,EACdj3D,EAAMs3D,WAAat3D,EAAMu3D,UAAY,KAC9B,MAEF1B,EAAYvzD,EAAQ+0D,EAAQr3D,EAAMu3D,UAAU70D,MAAMJ,EAAQtC,EAAMs3D,YACzE,EACAt3D,EAAMu3D,UAAYx2D,EAClBf,EAAMs3D,WAAa93D,EAAWsT,WAAW/R,EAAM01D,EAASzR,OAAOhlD,EAAMk3D,UAAW,GAAI,IACtF,MAAWl3D,EAAMm3D,QACfn3D,EAAMm3D,OAAS70D,EAAOtT,UAClBsT,EAAOE,QAAOxC,EAAMm3D,OAAS,MAEnC,OAAOz5D,CACT,CAEA,MAAO,CACLoV,WAAY,WAEV,MAAO,CAACpQ,MAAOu0D,EAAME,MAAO,KAAMI,UAAW,KAAMD,WAAY,KAAMJ,UADzD13D,EAAWsT,WAAW2jD,GAEpC,EAEA10D,UAAW,SAAU/B,GACnB,IAAIw3D,EAIJ,OAHIx3D,EAAMs3D,aACRE,EAAQh4D,EAAWuC,UAAU/B,EAAMu3D,UAAWv3D,EAAMs3D,aAE/C,CAAC50D,MAAO1C,EAAM0C,MAAOy0D,MAAOn3D,EAAMm3D,MACjCI,UAAWv3D,EAAMu3D,UAAWD,WAAYE,EACxCN,UAAW13D,EAAWuC,UAAU00D,EAAUz2D,EAAMk3D,WAC1D,EAEAx0D,MAAO,SAAUJ,EAAQtC,GACvB,OAAOA,EAAM0C,MAAMJ,EAAQtC,EAC7B,EAEAglD,OAAQ,SAAUhlD,EAAOD,EAAWmB,GAClC,OAAKlB,EAAMu3D,WAAa,UAAUxsE,KAAKgV,GAC9B02D,EAASzR,OAAOhlD,EAAMk3D,UAAWn3D,EAAWmB,GAC5ClB,EAAMu3D,UAAUvS,OAChBhlD,EAAMu3D,UAAUvS,OAAOhlD,EAAMs3D,WAAYv3D,EAAWmB,GAEpD1B,EAAWkJ,IACtB,EAEA9H,UAAW,SAAUZ,GACnB,MAAO,CAACA,MAAOA,EAAMs3D,YAAct3D,EAAMk3D,UAAWn2D,KAAMf,EAAMu3D,WAAad,EAC/E,EAEJ,GAAG,MAAO,aAAc,OAExBj3D,EAAWwS,WAAW,YAAa,YACrC,CAnJI9O,CAAI,EAAQ,KAAyB,EAAQ,KAAe,EAAQ,KAA6B,EAAQ,K,gBCDvG,GAMH,SAAS1D,GACZ,aAEAA,EAAWsS,WAAW,cAAc,SAAS9Y,EAAQ05D,GACnD,IA8CInvE,EAAMuc,EA9CNqlD,EAAansD,EAAOmsD,WACpBsS,EAAkB/E,EAAa+E,gBAC/BC,EAAahF,EAAaiF,OAC1B13D,EAAWyyD,EAAakF,MAAQF,EAChCG,GAAyC,IAA5BnF,EAAamF,WAC1BC,EAAOpF,EAAaqF,WACpBC,EAAStF,EAAauF,gBAAkB,mBAIxCC,EAAW,WACb,SAASC,EAAG50E,GAAO,MAAO,CAACA,KAAMA,EAAMma,MAAO,UAAW,CACzD,IAAI06D,EAAID,EAAG,aAAcE,EAAIF,EAAG,aAAcG,EAAIH,EAAG,aAAcI,EAAIJ,EAAG,aACtEK,EAAWL,EAAG,YAAaM,EAAO,CAACl1E,KAAM,OAAQma,MAAO,QAE5D,MAAO,CACL,GAAMy6D,EAAG,MAAO,MAASC,EAAG,KAAQA,EAAG,KAAQC,EAAG,GAAMA,EAAG,IAAOA,EAAG,QAAWA,EAChF,OAAUE,EAAG,MAASA,EAAG,SAAYA,EAAG,IAAOJ,EAAG,OAAQ,OAAUG,EAAG,KAAQA,EAAG,MAASA,EAC3F,SAAYH,EAAG,YAAa,IAAOA,EAAG,OAAQ,MAASA,EAAG,OAAQ,IAAOA,EAAG,OAC5E,SAAYA,EAAG,YAAa,MAASA,EAAG,SACxC,IAAOA,EAAG,OAAQ,OAAUA,EAAG,UAAW,KAAQA,EAAG,QAAS,QAAWA,EAAG,WAC5E,GAAMK,EAAU,OAAUA,EAAU,WAAcA,EAClD,KAAQC,EAAM,MAASA,EAAM,KAAQA,EAAM,UAAaA,EAAM,IAAOA,EAAM,SAAYA,EACvF,KAAQN,EAAG,QAAS,MAASA,EAAG,SAAU,MAASA,EAAG,QACtD,MAASG,EAAG,OAAUH,EAAG,UAAW,OAAUA,EAAG,UAAW,QAAWG,EACvE,MAASA,EAEb,CAjBe,GAmBXI,EAAiB,oBACjBC,EAAkB,wFAEtB,SAASC,EAAWt2D,GAElB,IADA,IAAqBpO,EAAjB+/D,GAAU,EAAa4E,GAAQ,EACF,OAAzB3kE,EAAOoO,EAAOpO,SAAiB,CACrC,IAAK+/D,EAAS,CACZ,GAAY,KAAR//D,IAAgB2kE,EAAO,OACf,KAAR3kE,EAAa2kE,GAAQ,EAChBA,GAAiB,KAAR3kE,IAAa2kE,GAAQ,EACzC,CACA5E,GAAWA,GAAmB,MAAR//D,CACxB,CACF,CAKA,SAASw/D,EAAIC,EAAIj2D,EAAOo7D,GAEtB,OADAv1E,EAAOowE,EAAI7zD,EAAUg5D,EACdp7D,CACT,CACA,SAASk2D,EAAUtxD,EAAQtC,GACzB,IAAImB,EAAKmB,EAAOpO,OAChB,GAAU,KAANiN,GAAmB,KAANA,EAEf,OADAnB,EAAM6zD,SAAWC,EAAY3yD,GACtBnB,EAAM6zD,SAASvxD,EAAQtC,GACzB,GAAU,KAANmB,GAAamB,EAAOlN,MAAM,kCACnC,OAAOs+D,EAAI,SAAU,UAChB,GAAU,KAANvyD,GAAamB,EAAOlN,MAAM,MACnC,OAAOs+D,EAAI,SAAU,QAChB,GAAI,qBAAqB3oE,KAAKoW,GACnC,OAAOuyD,EAAIvyD,GACN,GAAU,KAANA,GAAamB,EAAOgT,IAAI,KACjC,OAAOo+C,EAAI,KAAM,YACZ,GAAU,KAANvyD,GAAamB,EAAOlN,MAAM,yCACnC,OAAOs+D,EAAI,SAAU,UAChB,GAAI,KAAK3oE,KAAKoW,GAEnB,OADAmB,EAAOlN,MAAM,oDACNs+D,EAAI,SAAU,UAChB,GAAU,KAANvyD,EACT,OAAImB,EAAOgT,IAAI,MACbtV,EAAM6zD,SAAWkF,EACVA,EAAaz2D,EAAQtC,IACnBsC,EAAOgT,IAAI,MACpBhT,EAAOmT,YACAi+C,EAAI,UAAW,YACbsF,GAAkB12D,EAAQtC,EAAO,IAC1C44D,EAAWt2D,GACXA,EAAOlN,MAAM,qCACNs+D,EAAI,SAAU,cAErBpxD,EAAOgT,IAAI,KACJo+C,EAAI,WAAY,WAAYpxD,EAAOtT,YAEvC,GAAU,KAANmS,EAET,OADAnB,EAAM6zD,SAAWoF,EACVA,EAAW32D,EAAQtC,GACrB,GAAU,KAANmB,GAA8B,KAAjBmB,EAAO+S,OAE7B,OADA/S,EAAOmT,YACAi+C,EAAI,OAAQ,QACd,GAAU,KAANvyD,GAAamB,EAAOiT,SAASyiD,GACtC,OAAOtE,EAAI,WAAY,YAClB,GAAU,KAANvyD,GAAamB,EAAOlN,MAAM,QACnB,KAAN+L,GAAamB,EAAOlN,MAAM,QAAU,KAAKrK,KAAKuX,EAAOO,OAAOxhB,MAAM,EAAGihB,EAAOvF,QAEtF,OADAuF,EAAOmT,YACAi+C,EAAI,UAAW,WACjB,GAAIgF,EAAe3tE,KAAKoW,GAS7B,MARU,KAANA,GAAcnB,EAAME,SAAiC,KAAtBF,EAAME,QAAQ3c,OAC3C+e,EAAOgT,IAAI,KACH,KAANnU,GAAmB,KAANA,GAAWmB,EAAOgT,IAAI,KAC9B,cAAcvqB,KAAKoW,KAC5BmB,EAAOgT,IAAInU,GACD,KAANA,GAAWmB,EAAOgT,IAAInU,KAGpB,KAANA,GAAamB,EAAOgT,IAAI,KAAao+C,EAAI,KACtCA,EAAI,WAAY,WAAYpxD,EAAOtT,WACrC,GAAIgpE,EAAOjtE,KAAKoW,GAAK,CAC1BmB,EAAOiT,SAASyiD,GAChB,IAAI9T,EAAO5hD,EAAOtT,UAClB,GAAsB,KAAlBgR,EAAMk5D,SAAiB,CACzB,GAAIhB,EAASiB,qBAAqBjV,GAAO,CACvC,IAAIiU,EAAKD,EAAShU,GAClB,OAAOwP,EAAIyE,EAAG50E,KAAM40E,EAAGz6D,MAAOwmD,EAChC,CACA,GAAY,SAARA,GAAmB5hD,EAAOlN,MAAM,4CAA4C,GAC9E,OAAOs+D,EAAI,QAAS,UAAWxP,EACnC,CACA,OAAOwP,EAAI,WAAY,WAAYxP,EACrC,CACF,CAEA,SAAS4P,EAAYE,GACnB,OAAO,SAAS1xD,EAAQtC,GACtB,IAAqB9L,EAAjB+/D,GAAU,EACd,GAAIyD,GAA+B,KAAjBp1D,EAAO+S,QAAiB/S,EAAOlN,MAAMujE,GAErD,OADA34D,EAAM6zD,SAAWD,EACVF,EAAI,iBAAkB,QAE/B,KAAiC,OAAzBx/D,EAAOoO,EAAOpO,UAChBA,GAAQ8/D,GAAUC,IACtBA,GAAWA,GAAmB,MAAR//D,EAGxB,OADK+/D,IAASj0D,EAAM6zD,SAAWD,GACxBF,EAAI,SAAU,SACvB,CACF,CAEA,SAASqF,EAAaz2D,EAAQtC,GAE5B,IADA,IAAsBmB,EAAlBu0D,GAAW,EACRv0D,EAAKmB,EAAOpO,QAAQ,CACzB,GAAU,KAANiN,GAAau0D,EAAU,CACzB11D,EAAM6zD,SAAWD,EACjB,KACF,CACA8B,EAAkB,KAANv0D,CACd,CACA,OAAOuyD,EAAI,UAAW,UACxB,CAEA,SAASuF,EAAW32D,EAAQtC,GAE1B,IADA,IAAqB9L,EAAjB+/D,GAAU,EACmB,OAAzB//D,EAAOoO,EAAOpO,SAAiB,CACrC,IAAK+/D,IAAoB,KAAR//D,GAAuB,KAARA,GAAeoO,EAAOgT,IAAI,MAAO,CAC/DtV,EAAM6zD,SAAWD,EACjB,KACF,CACAK,GAAWA,GAAmB,MAAR//D,CACxB,CACA,OAAOw/D,EAAI,QAAS,WAAYpxD,EAAOtT,UACzC,CAEA,IAAIoqE,EAAW,SAQf,SAASC,EAAa/2D,EAAQtC,GACxBA,EAAMs5D,aAAYt5D,EAAMs5D,WAAa,MACzC,IAAIC,EAAQj3D,EAAOO,OAAOjd,QAAQ,KAAM0c,EAAOvF,OAC/C,KAAIw8D,EAAQ,GAAZ,CAEA,GAAIzB,EAAM,CACR,IAAIvlE,EAAI,6CAA6C+I,KAAKgH,EAAOO,OAAOxhB,MAAMihB,EAAOvF,MAAOw8D,IACxFhnE,IAAGgnE,EAAQhnE,EAAE1Q,MACnB,CAGA,IADA,IAAI23E,EAAQ,EAAGC,GAAe,EACrB72D,EAAM22D,EAAQ,EAAG32D,GAAO,IAAKA,EAAK,CACzC,IAAIzB,EAAKmB,EAAOO,OAAOlG,OAAOiG,GAC1B82D,EAAUN,EAASxzE,QAAQub,GAC/B,GAAIu4D,GAAW,GAAKA,EAAU,EAAG,CAC/B,IAAKF,EAAO,GAAI52D,EAAK,KAAO,CAC5B,GAAe,KAAT42D,EAAY,CAAY,KAANr4D,IAAWs4D,GAAe,GAAM,KAAO,CACjE,MAAO,GAAIC,GAAW,GAAKA,EAAU,IACjCF,OACG,GAAIxB,EAAOjtE,KAAKoW,GACrBs4D,GAAe,OACV,GAAI,UAAU1uE,KAAKoW,GACxB,QAAUyB,EAAK,CACb,GAAW,GAAPA,EAAU,OAEd,GADWN,EAAOO,OAAOlG,OAAOiG,EAAM,IAC1BzB,GAAuC,MAAjCmB,EAAOO,OAAOlG,OAAOiG,EAAM,GAAY,CAAEA,IAAO,KAAM,CAC1E,MACK,GAAI62D,IAAiBD,EAAO,GAC/B52D,EACF,KACF,CACF,CACI62D,IAAiBD,IAAOx5D,EAAMs5D,WAAa12D,EA7B1B,CA8BvB,CAIA,IAAI+2D,EAAc,CAAC,MAAQ,EAAM,QAAU,EAAM,UAAY,EAAM,QAAU,EAC1D,QAAU,EAAM,MAAQ,EAAM,QAAU,EAAM,kBAAkB,GAEnF,SAASC,EAAU7/C,EAAUnE,EAAQryB,EAAMw+C,EAAO9yC,EAAM4jB,GACtD9xB,KAAKg5B,SAAWA,EAChBh5B,KAAK60B,OAASA,EACd70B,KAAKwC,KAAOA,EACZxC,KAAKkO,KAAOA,EACZlO,KAAK8xB,KAAOA,EACC,MAATkvB,IAAehhD,KAAKghD,MAAQA,EAClC,CAEA,SAAS83B,EAAQ75D,EAAO85D,GACtB,IAAKjC,EAAY,OAAO,EACxB,IAAK,IAAIrrB,EAAIxsC,EAAM+5D,UAAWvtB,EAAGA,EAAIA,EAAEt4C,KACrC,GAAIs4C,EAAE9hD,MAAQovE,EAAS,OAAO,EAChC,IAAK,IAAInF,EAAK30D,EAAMlV,QAAS6pE,EAAIA,EAAKA,EAAG1lE,KACvC,IAASu9C,EAAImoB,EAAGqF,KAAMxtB,EAAGA,EAAIA,EAAEt4C,KAC7B,GAAIs4C,EAAE9hD,MAAQovE,EAAS,OAAO,CAEpC,CAEA,SAASG,EAAQj6D,EAAOtC,EAAOna,EAAMuc,EAASwC,GAC5C,IAAI43D,EAAKl6D,EAAMk6D,GAQf,IALAvF,EAAG30D,MAAQA,EAAO20D,EAAGryD,OAASA,EAAQqyD,EAAGwF,OAAS,KAAMxF,EAAGuF,GAAKA,EAAIvF,EAAGj3D,MAAQA,EAE1EsC,EAAME,QAAQuH,eAAe,WAChCzH,EAAME,QAAQ6hC,OAAQ,GAElB,GAEJ,IADiBm4B,EAAGx4E,OAASw4E,EAAGv1E,MAAQsb,EAAWm6D,EAAaC,GACjD92E,EAAMuc,GAAU,CAC7B,KAAMo6D,EAAGx4E,QAAUw4E,EAAGA,EAAGx4E,OAAS,GAAG44E,KACnCJ,EAAGv1E,KAAHu1E,GACF,OAAIvF,EAAGwF,OAAexF,EAAGwF,OACb,YAAR52E,GAAsBs2E,EAAQ75D,EAAOF,GAAiB,aACnDpC,CACT,CAEJ,CAIA,IAAIi3D,EAAK,CAAC30D,MAAO,KAAM4V,OAAQ,KAAMukD,OAAQ,KAAMD,GAAI,MACvD,SAAS9F,IACP,IAAK,IAAIxzE,EAAIsB,UAAUR,OAAS,EAAGd,GAAK,EAAGA,IAAK+zE,EAAGuF,GAAGx0E,KAAKxD,UAAUtB,GACvE,CACA,SAASk4E,IAEP,OADA1E,EAAK9yE,MAAM,KAAMY,YACV,CACT,CACA,SAASq4E,EAAO7vE,EAAMy5B,GACpB,IAAK,IAAIqoB,EAAIroB,EAAMqoB,EAAGA,EAAIA,EAAEt4C,KAAM,GAAIs4C,EAAE9hD,MAAQA,EAAM,OAAO,EAC7D,OAAO,CACT,CACA,SAASxH,EAAS42E,GAChB,IAAI95D,EAAQ20D,EAAG30D,MAEf,GADA20D,EAAGwF,OAAS,MACPtC,EAAL,CACA,GAAI73D,EAAMlV,QACR,GAA0B,OAAtBkV,EAAME,QAAQ2S,MAAiB7S,EAAMlV,SAAWkV,EAAMlV,QAAQ0vE,MAAO,CAEvE,IAAIC,EAAaC,EAAkBZ,EAAS95D,EAAMlV,SAClD,GAAkB,MAAd2vE,EAEF,YADAz6D,EAAMlV,QAAU2vE,EAGpB,MAAO,IAAKF,EAAOT,EAAS95D,EAAM+5D,WAEhC,YADA/5D,EAAM+5D,UAAY,IAAIY,EAAIb,EAAS95D,EAAM+5D,YAKzCrH,EAAakI,aAAeL,EAAOT,EAAS95D,EAAM46D,cACpD56D,EAAM46D,WAAa,IAAID,EAAIb,EAAS95D,EAAM46D,YAhB3B,CAiBnB,CACA,SAASF,EAAkBZ,EAAShvE,GAClC,GAAKA,EAEE,IAAIA,EAAQ0vE,MAAO,CACxB,IAAI/3D,EAAQi4D,EAAkBZ,EAAShvE,EAAQmE,MAC/C,OAAKwT,EACDA,GAAS3X,EAAQmE,KAAanE,EAC3B,IAAIyrB,EAAQ9T,EAAO3X,EAAQkvE,MAAM,GAFrB,IAGrB,CAAO,OAAIO,EAAOT,EAAShvE,EAAQkvE,MAC1BlvE,EAEA,IAAIyrB,EAAQzrB,EAAQmE,KAAM,IAAI0rE,EAAIb,EAAShvE,EAAQkvE,OAAO,EACnE,CAVE,OAAO,IAWX,CAEA,SAASa,EAAWnwE,GAClB,MAAe,UAARA,GAA4B,WAARA,GAA6B,aAARA,GAA+B,YAARA,GAA8B,YAARA,CAC/F,CAIA,SAAS6rB,EAAQtnB,EAAM+qE,EAAMQ,GAASz5E,KAAKkO,KAAOA,EAAMlO,KAAKi5E,KAAOA,EAAMj5E,KAAKy5E,MAAQA,CAAM,CAC7F,SAASG,EAAIjwE,EAAMwJ,GAAQnT,KAAK2J,KAAOA,EAAM3J,KAAKmT,KAAOA,CAAK,CAE9D,IAAI4mE,EAAc,IAAIH,EAAI,OAAQ,IAAIA,EAAI,YAAa,OACvD,SAASI,IACPpG,EAAG30D,MAAMlV,QAAU,IAAIyrB,EAAQo+C,EAAG30D,MAAMlV,QAAS6pE,EAAG30D,MAAM+5D,WAAW,GACrEpF,EAAG30D,MAAM+5D,UAAYe,CACvB,CACA,SAASE,IACPrG,EAAG30D,MAAMlV,QAAU,IAAIyrB,EAAQo+C,EAAG30D,MAAMlV,QAAS6pE,EAAG30D,MAAM+5D,WAAW,GACrEpF,EAAG30D,MAAM+5D,UAAY,IACvB,CAEA,SAASkB,IACPtG,EAAG30D,MAAM+5D,UAAYpF,EAAG30D,MAAMlV,QAAQkvE,KACtCrF,EAAG30D,MAAMlV,QAAU6pE,EAAG30D,MAAMlV,QAAQmE,IACtC,CAEA,SAASisE,EAAQ33E,EAAMsvB,GACrB,IAAI5kB,EAAS,WACX,IAAI+R,EAAQ20D,EAAG30D,MAAOglD,EAAShlD,EAAM+Z,SACrC,GAA0B,QAAtB/Z,EAAME,QAAQ3c,KAAgByhE,EAAShlD,EAAME,QAAQ6Z,cACpD,IAAK,IAAIlY,EAAQ7B,EAAME,QAAS2B,GAAuB,KAAdA,EAAMte,MAAese,EAAMkgC,MAAOlgC,EAAQA,EAAM5S,KAC5F+1D,EAASnjD,EAAMkY,SACjB/Z,EAAME,QAAU,IAAI05D,EAAU5U,EAAQ2P,EAAGryD,OAAOsT,SAAUryB,EAAM,KAAMyc,EAAME,QAAS2S,EACvF,EAEA,OADA5kB,EAAOqsE,KAAM,EACNrsE,CACT,CACA,SAASktE,IACP,IAAIn7D,EAAQ20D,EAAG30D,MACXA,EAAME,QAAQjR,OACU,KAAtB+Q,EAAME,QAAQ3c,OAChByc,EAAM+Z,SAAW/Z,EAAME,QAAQ6Z,UACjC/Z,EAAME,QAAUF,EAAME,QAAQjR,KAElC,CAGA,SAASmsE,EAAOC,GACd,SAASC,EAAI/3E,GACX,OAAIA,GAAQ83E,EAAevC,IACR,KAAVuC,GAAyB,KAAR93E,GAAuB,KAARA,GAAuB,KAARA,EAAoB6wE,IAChE0E,EAAKwC,EACnB,CACA,OAAOA,CACT,CAEA,SAASjB,EAAU92E,EAAMkF,GACvB,MAAY,OAARlF,EAAsBu1E,EAAKoC,EAAQ,SAAUzyE,GAAQ8yE,GAAQH,EAAO,KAAMD,GAClE,aAAR53E,EAA4Bu1E,EAAKoC,EAAQ,QAASM,EAAWnB,EAAWc,GAChE,aAAR53E,EAA4Bu1E,EAAKoC,EAAQ,QAASb,EAAWc,GACrD,aAAR53E,EAA4BoxE,EAAGryD,OAAOlN,MAAM,SAAS,GAAS0jE,IAASA,EAAKoC,EAAQ,QAASO,EAAiBL,EAAO,KAAMD,GACnH,YAAR53E,EAA2Bu1E,EAAKsC,EAAO,MAC/B,KAAR73E,EAAoBu1E,EAAKoC,EAAQ,KAAMF,EAAkBR,GAAOW,EAAQF,GAChE,KAAR13E,EAAoBu1E,IACZ,MAARv1E,GAC2B,QAAzBoxE,EAAG30D,MAAME,QAAQ2S,MAAkB8hD,EAAG30D,MAAMk6D,GAAGvF,EAAG30D,MAAMk6D,GAAGx4E,OAAS,IAAMy5E,GAC5ExG,EAAG30D,MAAMk6D,GAAGv1E,KAAZgwE,GACKmE,EAAKoC,EAAQ,QAASM,EAAWnB,EAAWc,EAAQO,KAEjD,YAARn4E,EAA2Bu1E,EAAK6C,IACxB,OAARp4E,EAAsBu1E,EAAKoC,EAAQ,QAASF,EAAkBY,GAASvB,EAAWY,EAAYE,GACtF,SAAR53E,GAAoBu0E,GAAiB,aAATrvE,GAC9BksE,EAAGwF,OAAS,UACLrB,EAAKoC,EAAQ,OAAgB,SAAR33E,EAAkBA,EAAOkF,GAAQkN,GAAWwlE,IAE9D,YAAR53E,EACEu0E,GAAiB,WAATrvE,GACVksE,EAAGwF,OAAS,UACLrB,EAAKuB,IACHvC,IAAkB,UAATrvE,GAA8B,QAATA,GAA4B,QAATA,IAAoBksE,EAAGryD,OAAOlN,MAAM,UAAU,IACxGu/D,EAAGwF,OAAS,UACC,QAAT1xE,EAAwBqwE,EAAK+C,IACf,QAATpzE,EAAwBqwE,EAAKgD,GAAUV,EAAO,YAAaW,GAAUX,EAAO,MACzEtC,EAAKoC,EAAQ,QAASplD,GAASslD,EAAO,KAAMF,EAAQ,KAAMV,GAAOW,EAAQA,IAC5ErD,GAAiB,aAATrvE,GACjBksE,EAAGwF,OAAS,UACLrB,EAAKoC,EAAQ,QAASd,EAAYC,EAAWc,IAC3CrD,GAAiB,YAATrvE,GACjBksE,EAAGwF,OAAS,UACLrB,EAAKuB,IAELvB,EAAKoC,EAAQ,QAASc,IAGrB,UAARz4E,EAAyBu1E,EAAKoC,EAAQ,QAASM,EAAWJ,EAAO,KAAMF,EAAQ,IAAK,UAAWF,EACjER,GAAOW,EAAQA,EAAQF,GAC7C,QAAR13E,EAAuBu1E,EAAKsB,EAAYgB,EAAO,MACvC,WAAR73E,EAA0Bu1E,EAAKsC,EAAO,MAC9B,SAAR73E,EAAwBu1E,EAAKoC,EAAQ,QAASH,EAAakB,EAAmB5B,EAAWc,EAAQF,GACzF,UAAR13E,EAAyBu1E,EAAKoC,EAAQ,QAASgB,GAAaf,GACpD,UAAR53E,EAAyBu1E,EAAKoC,EAAQ,QAASiB,GAAahB,GACpD,SAAR53E,EAAwBu1E,EAAKuB,GACpB,KAAT5xE,EAAqBqwE,EAAKsB,EAAYC,GACnCjG,EAAK8G,EAAQ,QAASd,EAAYgB,EAAO,KAAMD,EACxD,CACA,SAASc,EAAkB14E,GACzB,GAAY,KAARA,EAAa,OAAOu1E,EAAKsD,GAAQhB,EAAO,KAC9C,CACA,SAAShB,EAAW72E,EAAMkF,GACxB,OAAO4zE,EAAgB94E,EAAMkF,GAAO,EACtC,CACA,SAAS6zE,EAAkB/4E,EAAMkF,GAC/B,OAAO4zE,EAAgB94E,EAAMkF,GAAO,EACtC,CACA,SAAS+yE,EAAUj4E,GACjB,MAAY,KAARA,EAAoB6wE,IACjB0E,EAAKoC,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,EAC1D,CACA,SAASkB,EAAgB94E,EAAMkF,EAAO8zE,GACpC,GAAI5H,EAAG30D,MAAMs5D,YAAc3E,EAAGryD,OAAOvF,MAAO,CAC1C,IAAIc,EAAO0+D,EAAUC,GAAmBC,GACxC,GAAY,KAARl5E,EAAa,OAAOu1E,EAAKiC,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQC,EAAO,MAAOv9D,EAAMo9D,GACtG,GAAY,YAAR13E,EAAoB,OAAO6wE,EAAK2G,EAAajlD,GAASslD,EAAO,MAAOv9D,EAAMo9D,EACrF,CAEA,IAAI0B,EAAUJ,EAAUK,EAAuBC,EAC/C,OAAIlD,EAAYlyD,eAAelkB,GAAcu1E,EAAK6D,GACtC,YAARp5E,EAA2Bu1E,EAAK6C,GAAagB,GACrC,SAARp5E,GAAoBu0E,GAAiB,aAATrvE,GAAyBksE,EAAGwF,OAAS,UAAkBrB,EAAKoC,EAAQ,QAAS4B,GAAiB3B,IAClH,aAAR53E,GAA+B,SAARA,EAAwBu1E,EAAKyD,EAAUD,EAAoBlC,GAC1E,KAAR72E,EAAoBu1E,EAAKoC,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,EAAQwB,GACrE,YAARp5E,GAA8B,UAARA,EAAyBu1E,EAAKyD,EAAUD,EAAoBlC,GAC1E,KAAR72E,EAAoBu1E,EAAKoC,EAAQ,KAAM6B,GAAc5B,EAAQwB,GACrD,KAARp5E,EAAoBy5E,GAAaC,GAAS,IAAK,KAAMN,GAC7C,SAARp5E,EAAwB6wE,EAAK8I,EAAOP,GAC5B,OAARp5E,EAAsBu1E,EAAKqE,GAAYZ,IACpCzD,GACT,CACA,SAAS2C,EAAgBl4E,GACvB,OAAIA,EAAK6R,MAAM,cAAsBg/D,IAC9BA,EAAKgG,EACd,CAEA,SAASyC,EAAmBt5E,EAAMkF,GAChC,MAAY,KAARlF,EAAoBu1E,EAAK2C,GACtBmB,EAAqBr5E,EAAMkF,GAAO,EAC3C,CACA,SAASm0E,EAAqBr5E,EAAMkF,EAAO8zE,GACzC,IAAIvuB,EAAgB,GAAXuuB,EAAmBM,EAAqBD,EAC7CQ,EAAkB,GAAXb,EAAmBnC,EAAakC,EAC3C,MAAY,MAAR/4E,EAAqBu1E,EAAKiC,EAAawB,EAAUC,GAAmBC,GAAWxB,GACvE,YAAR13E,EACE,UAAUwH,KAAKtC,IAAUqvE,GAAiB,KAATrvE,EAAqBqwE,EAAK9qB,GAC3D8pB,GAAiB,KAATrvE,GAAgBksE,EAAGryD,OAAOlN,MAAM,4BAA4B,GAC/D0jE,EAAKoC,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQntB,GAChD,KAATvlD,EAAqBqwE,EAAKsB,EAAYgB,EAAO,KAAMgC,GAChDtE,EAAKsE,GAEF,SAAR75E,EAA0B6wE,EAAK8I,EAAOlvB,GAC9B,KAARzqD,EACQ,KAARA,EAAoBy5E,GAAaV,EAAmB,IAAK,OAAQtuB,GACzD,KAARzqD,EAAoBu1E,EAAKuE,GAAUrvB,GAC3B,KAARzqD,EAAoBu1E,EAAKoC,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,EAAQntB,GAC7E8pB,GAAiB,MAATrvE,GAAiBksE,EAAGwF,OAAS,UAAkBrB,EAAKiD,GAAU/tB,IAC9D,UAARzqD,GACFoxE,EAAG30D,MAAMk5D,SAAWvE,EAAGwF,OAAS,WAChCxF,EAAGryD,OAAOqT,OAAOg/C,EAAGryD,OAAOM,IAAM+xD,EAAGryD,OAAOvF,MAAQ,GAC5C+7D,EAAKsE,SAHd,OALA,CAUF,CACA,SAASF,EAAM35E,EAAMkF,GACnB,MAAY,SAARlF,EAAwB6wE,IACS,MAAjC3rE,EAAMpH,MAAMoH,EAAM/G,OAAS,GAAmBo3E,EAAKoE,GAChDpE,EAAK2C,EAAiB6B,EAC/B,CACA,SAASA,EAAc/5E,GACrB,GAAY,KAARA,EAGF,OAFAoxE,EAAGwF,OAAS,WACZxF,EAAG30D,MAAM6zD,SAAWoF,EACbH,EAAKoE,EAEhB,CACA,SAAST,GAAUl5E,GAEjB,OADA81E,EAAa1E,EAAGryD,OAAQqyD,EAAG30D,OACpBo0D,EAAa,KAAR7wE,EAAc82E,EAAYD,EACxC,CACA,SAASoC,GAAiBj5E,GAExB,OADA81E,EAAa1E,EAAGryD,OAAQqyD,EAAG30D,OACpBo0D,EAAa,KAAR7wE,EAAc82E,EAAYiC,EACxC,CACA,SAASa,GAAYZ,GACnB,OAAO,SAASh5E,GACd,MAAY,KAARA,EAAoBu1E,EAAKyD,EAAUgB,GAAgBj2D,IACtC,YAAR/jB,GAAsBu0E,EAAagB,EAAK0E,GAAejB,EAAUK,EAAuBC,GACrFzI,EAAKmI,EAAUD,EAAoBlC,EACjD,CACF,CACA,SAAS9yD,GAAOtmB,EAAGyH,GACjB,GAAa,UAATA,EAA4C,OAAvBksE,EAAGwF,OAAS,UAAkBrB,EAAK+D,EAC9D,CACA,SAASU,GAAcv8E,EAAGyH,GACxB,GAAa,UAATA,EAA4C,OAAvBksE,EAAGwF,OAAS,UAAkBrB,EAAK8D,EAC9D,CACA,SAASZ,GAAWz4E,GAClB,MAAY,KAARA,EAAoBu1E,EAAKqC,EAAQd,GAC9BjG,EAAKyI,EAAoBzB,EAAO,KAAMD,EAC/C,CACA,SAASkC,GAAS95E,GAChB,GAAY,YAARA,EAA6C,OAAxBoxE,EAAGwF,OAAS,WAAmBrB,GAC1D,CACA,SAASmE,GAAQ15E,EAAMkF,GACrB,MAAY,SAARlF,GACFoxE,EAAGwF,OAAS,WACLrB,EAAKmE,KACK,YAAR15E,GAAkC,WAAZoxE,EAAGj3D,OAClCi3D,EAAGwF,OAAS,WACC,OAAT1xE,GAA2B,OAATA,EAAuBqwE,EAAK2E,KAE9C3F,GAAQnD,EAAG30D,MAAMs5D,YAAc3E,EAAGryD,OAAOvF,QAAUxK,EAAIoiE,EAAGryD,OAAOlN,MAAM,YAAY,MACrFu/D,EAAG30D,MAAMs5D,WAAa3E,EAAGryD,OAAOM,IAAMrQ,EAAE,GAAG7Q,QACtCo3E,EAAK4E,MACK,UAARn6E,GAA4B,UAARA,GAC7BoxE,EAAGwF,OAASzC,EAAa,WAAc/C,EAAGj3D,MAAQ,YAC3Co7D,EAAK4E,KACK,kBAARn6E,EACFu1E,EAAK4E,IACH5F,GAAQ+C,EAAWpyE,IAC5BksE,EAAGwF,OAAS,UACLrB,EAAKmE,KACK,KAAR15E,EACFu1E,EAAKsB,EAAYuD,GAAWvC,EAAO,KAAMsC,IAC/B,UAARn6E,EACFu1E,EAAKwD,EAAmBoB,IACb,KAATj1E,GACTksE,EAAGwF,OAAS,UACLrB,EAAKmE,KACK,KAAR15E,EACF6wE,EAAKsJ,SADP,EAnBL,IAAInrE,CAsBR,CACA,SAASkrE,GAAal6E,GACpB,MAAY,YAARA,EAA2B6wE,EAAKsJ,KACpC/I,EAAGwF,OAAS,WACLrB,EAAK6C,IACd,CACA,SAAS+B,GAAUn6E,GACjB,MAAY,KAARA,EAAoBu1E,EAAKwD,GACjB,KAAR/4E,EAAoB6wE,EAAKuH,SAA7B,CACF,CACA,SAASe,GAASkB,EAAM76D,EAAK86D,GAC3B,SAASC,EAAQv6E,EAAMkF,GACrB,GAAIo1E,EAAMA,EAAIj4E,QAAQrC,IAAS,EAAY,KAARA,EAAa,CAC9C,IAAI+2E,EAAM3F,EAAG30D,MAAME,QAEnB,MADgB,QAAZo6D,EAAIznD,OAAgBynD,EAAI13D,KAAO03D,EAAI13D,KAAO,GAAK,GAC5Ck2D,GAAK,SAASv1E,EAAMkF,GACzB,OAAIlF,GAAQwf,GAAOta,GAASsa,EAAYqxD,IACjCA,EAAKwJ,EACd,GAAGE,EACL,CACA,OAAIv6E,GAAQwf,GAAOta,GAASsa,EAAY+1D,IACpC+E,GAAOA,EAAIj4E,QAAQ,MAAQ,EAAUwuE,EAAKwJ,GACvC9E,EAAKsC,EAAOr4D,GACrB,CACA,OAAO,SAASxf,EAAMkF,GACpB,OAAIlF,GAAQwf,GAAOta,GAASsa,EAAY+1D,IACjC1E,EAAKwJ,EAAME,EACpB,CACF,CACA,SAASd,GAAaY,EAAM76D,EAAK8P,GAC/B,IAAK,IAAIjyB,EAAI,EAAGA,EAAIsB,UAAUR,OAAQd,IACpC+zE,EAAGuF,GAAGx0E,KAAKxD,UAAUtB,IACvB,OAAOk4E,EAAKoC,EAAQn4D,EAAK8P,GAAO6pD,GAASkB,EAAM76D,GAAMo4D,EACvD,CACA,SAASX,GAAMj3E,GACb,MAAY,KAARA,EAAoBu1E,IACjB1E,EAAKiG,EAAWG,GACzB,CACA,SAASmD,GAAUp6E,EAAMkF,GACvB,GAAIqvE,EAAM,CACR,GAAY,KAARv0E,EAAa,OAAOu1E,EAAKiD,IAC7B,GAAa,KAATtzE,EAAc,OAAOqwE,EAAK6E,GAChC,CACF,CACA,SAASI,GAAcx6E,EAAMkF,GAC3B,GAAIqvE,IAAiB,KAARv0E,GAAwB,MAATkF,GAAgB,OAAOqwE,EAAKiD,GAC1D,CACA,SAASiC,GAAaz6E,GACpB,GAAIu0E,GAAgB,KAARv0E,EACV,OAAIoxE,EAAGryD,OAAOlN,MAAM,kBAAkB,GAAe0jE,EAAKsB,EAAY6D,GAAMlC,IAChEjD,EAAKiD,GAErB,CACA,SAASkC,GAAKj9E,EAAGyH,GACf,GAAa,MAATA,EAEF,OADAksE,EAAGwF,OAAS,UACLrB,GAEX,CACA,SAASiD,GAASx4E,EAAMkF,GACtB,MAAa,SAATA,GAA6B,UAATA,GAA8B,SAATA,GAA6B,YAATA,GAC/DksE,EAAGwF,OAAS,UACLrB,EAAc,UAATrwE,EAAoB6zE,EAAoBP,KAE1C,YAARx4E,GAA+B,QAATkF,GACxBksE,EAAGwF,OAAS,OACLrB,EAAKoF,KAED,KAATz1E,GAAyB,KAATA,EAAqBqwE,EAAKiD,IAClC,UAARx4E,GAA4B,UAARA,GAA4B,QAARA,EAAuBu1E,EAAKoF,IAC5D,KAAR36E,EAAoBu1E,EAAKoC,EAAQ,KAAMwB,GAASX,GAAU,IAAK,KAAMZ,EAAQ+C,IACrE,KAAR36E,EAAoBu1E,EAAKoC,EAAQ,KAAMiD,GAAWhD,EAAQ+C,IAClD,KAAR36E,EAAoBu1E,EAAK4D,GAAS0B,GAAS,KAAMC,GAAiBH,IAC1D,KAAR36E,EAAoBu1E,EAAK4D,GAASX,GAAU,KAAMA,IAC1C,SAARx4E,EAA0B6wE,EAAKkK,GAAWJ,SAA9C,CACF,CACA,SAASG,GAAgB96E,GACvB,GAAY,MAARA,EAAc,OAAOu1E,EAAKiD,GAChC,CACA,SAASoC,GAAU56E,GACjB,OAAIA,EAAK6R,MAAM,YAAoB0jE,IACvB,KAARv1E,GAAuB,KAARA,EAAoBu1E,EAAKqF,IACrC/J,EAAKmK,GAAUJ,GACxB,CACA,SAASI,GAASh7E,EAAMkF,GACtB,MAAY,YAARlF,GAAkC,WAAZoxE,EAAGj3D,OAC3Bi3D,EAAGwF,OAAS,WACLrB,EAAKyF,KACM,KAAT91E,GAAwB,UAARlF,GAA4B,UAARA,EACtCu1E,EAAKyF,IACK,KAARh7E,EACFu1E,EAAKiD,IACK,KAARx4E,EACFu1E,EAAKsC,EAAO,YAAa2C,GAAe3C,EAAO,KAAMmD,IAC3C,KAARh7E,EACF6wE,EAAKoK,GAAcD,IAChBh7E,EAAK6R,MAAM,mBAAhB,EACE0jE,GAEX,CACA,SAASwF,GAAU/6E,EAAMkF,GACvB,MAAY,SAARlF,EAAwB6wE,IACS,MAAjC3rE,EAAMpH,MAAMoH,EAAM/G,OAAS,GAAmBo3E,EAAKwF,IAChDxF,EAAKiD,GAAU0C,GACxB,CACA,SAASA,GAAkBl7E,GACzB,GAAY,KAARA,EAGF,OAFAoxE,EAAGwF,OAAS,WACZxF,EAAG30D,MAAM6zD,SAAWoF,EACbH,EAAKwF,GAEhB,CACA,SAASF,GAAQ76E,EAAMkF,GACrB,MAAY,YAARlF,GAAsBoxE,EAAGryD,OAAOlN,MAAM,YAAY,IAAmB,KAAT3M,EAAqBqwE,EAAKsF,IAC9E,KAAR76E,EAAoBu1E,EAAKiD,IACjB,UAARx4E,EAAyBu1E,EAAKsF,IAC3BhK,EAAK2H,GACd,CACA,SAASmC,GAAU36E,EAAMkF,GACvB,MAAa,KAATA,EAAqBqwE,EAAKoC,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQ+C,IAChE,KAATz1E,GAAwB,KAARlF,GAAwB,KAATkF,EAAqBqwE,EAAKiD,IACjD,KAARx4E,EAAoBu1E,EAAKiD,GAAUX,EAAO,KAAM8C,IACvC,WAATz1E,GAA+B,cAATA,GAAyBksE,EAAGwF,OAAS,UAAkBrB,EAAKiD,KACzE,KAATtzE,EAAqBqwE,EAAKiD,GAAUX,EAAO,KAAMW,SAArD,CACF,CACA,SAASyB,GAAcx8E,EAAGyH,GACxB,GAAa,KAATA,EAAc,OAAOqwE,EAAKoC,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQ+C,GAC/E,CACA,SAASQ,KACP,OAAOtK,EAAK2H,GAAU4C,GACxB,CACA,SAASA,GAAiB39E,EAAGyH,GAC3B,GAAa,KAATA,EAAc,OAAOqwE,EAAKiD,GAChC,CACA,SAASR,GAAOv6E,EAAGyH,GACjB,MAAa,QAATA,GAAkBksE,EAAGwF,OAAS,UAAkBrB,EAAK+C,KAClDzH,EAAKt+C,GAAS6nD,GAAWiB,GAAaC,GAC/C,CACA,SAAS/oD,GAAQvyB,EAAMkF,GACrB,OAAIqvE,GAAQ+C,EAAWpyE,IAAUksE,EAAGwF,OAAS,UAAkBrB,EAAKhjD,KACxD,YAARvyB,GAAsBL,EAASuF,GAAeqwE,KACtC,UAARv1E,EAAyBu1E,EAAKhjD,IACtB,KAARvyB,EAAoBy5E,GAAa8B,GAAY,KACrC,KAARv7E,EAAoBy5E,GAAa+B,GAAa,UAAlD,CACF,CACA,SAASA,GAAYx7E,EAAMkF,GACzB,MAAY,YAARlF,GAAuBoxE,EAAGryD,OAAOlN,MAAM,SAAS,IAIxC,YAAR7R,IAAoBoxE,EAAGwF,OAAS,YACxB,UAAR52E,EAAyBu1E,EAAKhjD,IACtB,KAARvyB,EAAoB6wE,IACZ,KAAR7wE,EAAoBu1E,EAAKsB,EAAYgB,EAAO,KAAMA,EAAO,KAAM2D,IAC5DjG,EAAKsC,EAAO,KAAMtlD,GAAS8oD,MAPhC17E,EAASuF,GACFqwE,EAAK8F,IAOhB,CACA,SAASE,KACP,OAAO1K,EAAKt+C,GAAS8oD,GACvB,CACA,SAASA,GAAY/+D,EAAOpX,GAC1B,GAAa,KAATA,EAAc,OAAOqwE,EAAKwD,EAChC,CACA,SAASuC,GAAWt7E,GAClB,GAAY,KAARA,EAAa,OAAOu1E,EAAKyC,GAC/B,CACA,SAASG,GAAUn4E,EAAMkF,GACvB,GAAY,aAARlF,GAAgC,QAATkF,EAAiB,OAAOqwE,EAAKoC,EAAQ,OAAQ,QAASb,EAAWc,EAC9F,CACA,SAASS,GAAQr4E,EAAMkF,GACrB,MAAa,SAATA,EAAyBqwE,EAAK8C,IACtB,KAARr4E,EAAoBu1E,EAAKoC,EAAQ,KAAM8D,GAAU7D,QAArD,CACF,CACA,SAAS6D,GAASz7E,GAChB,MAAY,OAARA,EAAsBu1E,EAAKyC,GAAQ0D,IAC3B,YAAR17E,EAA2Bu1E,EAAKmG,IAC7B7K,EAAK6K,GACd,CACA,SAASA,GAAS17E,EAAMkF,GACtB,MAAY,KAARlF,EAAoBu1E,IACZ,KAARv1E,EAAoBu1E,EAAKmG,IAChB,MAATx2E,GAA0B,MAATA,GAAiBksE,EAAGwF,OAAS,UAAkBrB,EAAKsB,EAAY6E,KAC9E7K,EAAKgG,EAAY6E,GAC1B,CACA,SAAStD,GAAYp4E,EAAMkF,GACzB,MAAa,KAATA,GAAeksE,EAAGwF,OAAS,UAAkBrB,EAAK6C,KAC1C,YAARp4E,GAAqBL,EAASuF,GAAeqwE,EAAK6C,KAC1C,KAARp4E,EAAoBu1E,EAAKiC,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQ6C,GAAc3D,EAAWY,GAC5GnD,GAAiB,KAATrvE,EAAqBqwE,EAAKoC,EAAQ,KAAMwB,GAASgC,GAAW,KAAMvD,EAAQQ,SAAtF,CACF,CACA,SAAS6C,GAAaj7E,EAAMkF,GAC1B,MAAa,KAATA,GAAeksE,EAAGwF,OAAS,UAAkBrB,EAAK0F,KAC1C,YAARj7E,GAAqBL,EAASuF,GAAeqwE,EAAK0F,KAC1C,KAARj7E,EAAoBu1E,EAAKiC,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQ6C,GAAc/C,GACjGnD,GAAiB,KAATrvE,EAAqBqwE,EAAKoC,EAAQ,KAAMwB,GAASgC,GAAW,KAAMvD,EAAQqD,SAAtF,CACF,CACA,SAAS1C,GAASv4E,EAAMkF,GACtB,MAAY,WAARlF,GAA6B,YAARA,GACvBoxE,EAAGwF,OAAS,OACLrB,EAAKgD,KACM,KAATrzE,EACFqwE,EAAKoC,EAAQ,KAAMwB,GAASgC,GAAW,KAAMvD,QAD/C,CAGT,CACA,SAASiB,GAAO74E,EAAMkF,GAEpB,MADa,KAATA,GAAcqwE,EAAKsB,EAAYgC,IACvB,UAAR74E,EAAyBu1E,EAAKsD,IAC9BtE,GAAQ+C,EAAWpyE,IAAUksE,EAAGwF,OAAS,UAAkBrB,EAAKsD,KAChEtE,GAAgB,QAARv0E,EAAuBu1E,EAAK6E,GAAWiB,IAC5CxK,EAAKt+C,GAAS6nD,GAAWiB,GAClC,CACA,SAAS9B,GAAgBv5E,EAAMkF,GAE7B,MAAY,YAARlF,EAA2BoS,GAAUpS,EAAMkF,GACxCy2E,GAAe37E,EAAMkF,EAC9B,CACA,SAASkN,GAAUpS,EAAMkF,GACvB,GAAY,YAARlF,EAAsC,OAAjBL,EAASuF,GAAeqwE,EAAKoG,GACxD,CACA,SAASA,GAAe37E,EAAMkF,GAC5B,MAAa,KAATA,EAAqBqwE,EAAKoC,EAAQ,KAAMwB,GAASgC,GAAW,KAAMvD,EAAQ+D,IACjE,WAATz2E,GAA+B,cAATA,GAA0BqvE,GAAgB,KAARv0E,GAC7C,cAATkF,IAAuBksE,EAAGwF,OAAS,WAChCrB,EAAKhB,EAAOiE,GAAW3B,EAAY8E,KAEhC,KAAR37E,EAAoBu1E,EAAKoC,EAAQ,KAAMiE,GAAWhE,QAAtD,CACF,CACA,SAASgE,GAAU57E,EAAMkF,GACvB,MAAY,SAARlF,GACS,YAARA,IACU,UAATkF,GAA8B,OAATA,GAA2B,OAATA,GAAmBqvE,GAAQ+C,EAAWpyE,KAC9EksE,EAAGryD,OAAOlN,MAAM,wBAAwB,IAC3Cu/D,EAAGwF,OAAS,UACLrB,EAAKqG,KAEF,YAAR57E,GAAkC,WAAZoxE,EAAGj3D,OAC3Bi3D,EAAGwF,OAAS,WACLrB,EAAKsG,GAAYD,KAEd,UAAR57E,GAA4B,UAARA,EAAyBu1E,EAAKsG,GAAYD,IACtD,KAAR57E,EACKu1E,EAAKsB,EAAYuD,GAAWvC,EAAO,KAAMgE,GAAYD,IACjD,KAAT12E,GACFksE,EAAGwF,OAAS,UACLrB,EAAKqG,KAEVrH,GAAgB,KAARv0E,EAAoB6wE,EAAKoK,GAAcW,IACvC,KAAR57E,GAAuB,KAARA,EAAoBu1E,EAAKqG,IAChC,KAAR57E,EAAoBu1E,IACX,KAATrwE,EAAqBqwE,EAAKsB,EAAY+E,SAA1C,CACF,CACA,SAASC,GAAW77E,EAAMkF,GACxB,GAAa,KAATA,EAAc,OAAOqwE,EAAKsG,IAC9B,GAAa,KAAT32E,EAAc,OAAOqwE,EAAKsG,IAC9B,GAAY,KAAR77E,EAAa,OAAOu1E,EAAKiD,GAAU6C,IACvC,GAAa,KAATn2E,EAAc,OAAOqwE,EAAKwD,GAC9B,IAAIxxE,EAAU6pE,EAAG30D,MAAME,QAAQjR,KAC/B,OAAOmlE,EAD4CtpE,GAA2B,aAAhBA,EAAQ+nB,KAC5C2rD,GAAe7C,GAC3C,CACA,SAASO,GAAY34E,EAAMkF,GACzB,MAAa,KAATA,GAAgBksE,EAAGwF,OAAS,UAAkBrB,EAAKuG,GAAWjE,EAAO,OAC5D,WAAT3yE,GAAsBksE,EAAGwF,OAAS,UAAkBrB,EAAKsB,EAAYgB,EAAO,OACpE,KAAR73E,EAAoBu1E,EAAK4D,GAAS4C,GAAa,KAAMD,GAAWjE,EAAO,MACpEhH,EAAKiG,EACd,CACA,SAASiF,GAAY/7E,EAAMkF,GACzB,MAAa,MAATA,GAAiBksE,EAAGwF,OAAS,UAAkBrB,EAAKsC,EAAO,cACnD,YAAR73E,EAA2B6wE,EAAKkI,EAAmBgD,SAAvD,CACF,CACA,SAASnD,GAAY54E,GACnB,MAAY,UAARA,EAAyBu1E,IACjB,KAARv1E,EAAoB6wE,EAAKgG,GACjB,KAAR72E,EAAoB6wE,EAAKyI,GACtBzI,EAAKmL,GAAYC,GAAkBH,GAC5C,CACA,SAASE,GAAWh8E,EAAMkF,GACxB,MAAY,KAARlF,EAAoBy5E,GAAauC,GAAY,MACrC,YAARh8E,GAAoBL,EAASuF,GACpB,KAATA,IAAcksE,EAAGwF,OAAS,WACvBrB,EAAK2G,IACd,CACA,SAASD,GAAiBj8E,GACxB,GAAY,KAARA,EAAa,OAAOu1E,EAAKyG,GAAYC,GAC3C,CACA,SAASC,GAAQ5/D,EAAOpX,GACtB,GAAa,MAATA,EAAwC,OAAvBksE,EAAGwF,OAAS,UAAkBrB,EAAKyG,GAC1D,CACA,SAASF,GAAUx/D,EAAOpX,GACxB,GAAa,QAATA,EAA0C,OAAvBksE,EAAGwF,OAAS,UAAkBrB,EAAKsB,EAC5D,CACA,SAAS2C,GAAax5E,GACpB,MAAY,KAARA,EAAoBu1E,IACjB1E,EAAKsI,GAASJ,EAAmB,KAC1C,CACA,SAAST,KACP,OAAOzH,EAAK8G,EAAQ,QAASplD,GAASslD,EAAO,KAAMF,EAAQ,KAAMwB,GAASgD,GAAY,KAAMvE,EAAQA,EACtG,CACA,SAASuE,KACP,OAAOtL,EAAKt+C,GAAS8oD,GACvB,CAEA,SAASe,GAAqB3/D,EAAOD,GACnC,MAAyB,YAAlBC,EAAMk5D,UAA4C,KAAlBl5D,EAAMk5D,UAC3CR,EAAe3tE,KAAKgV,EAAUpD,OAAO,KACrC,OAAO5R,KAAKgV,EAAUpD,OAAO,GACjC,CAEA,SAASq8D,GAAkB12D,EAAQtC,EAAO2V,GACxC,OAAO3V,EAAM6zD,UAAYD,GACvB,iFAAiF7oE,KAAKiV,EAAMk5D,WACzE,SAAlBl5D,EAAMk5D,UAAuB,SAASnuE,KAAKuX,EAAOO,OAAOxhB,MAAM,EAAGihB,EAAOM,KAAO+S,GAAU,IAC/F,CAIA,OArhBAolD,EAAYT,IAAMU,EAAiBV,KAAM,EAKzCW,EAAWX,KAAM,EAoBjBa,EAAOb,KAAM,EA4fN,CACLxnD,WAAY,SAAS8sD,GACnB,IAAI5/D,EAAQ,CACV6zD,SAAUD,EACVsF,SAAU,MACVgB,GAAI,GACJh6D,QAAS,IAAI05D,GAAWgG,GAAc,GAAKza,EAAY,EAAG,SAAS,GACnE4U,UAAWrH,EAAaqH,UACxBjvE,QAAS4nE,EAAaqH,WAAa,IAAIxjD,EAAQ,KAAM,MAAM,GAC3DwD,SAAU6lD,GAAc,GAI1B,OAFIlN,EAAakI,YAAgD,iBAA3BlI,EAAakI,aACjD56D,EAAM46D,WAAalI,EAAakI,YAC3B56D,CACT,EAEA0C,MAAO,SAASJ,EAAQtC,GAOtB,GANIsC,EAAO8S,QACJpV,EAAME,QAAQuH,eAAe,WAChCzH,EAAME,QAAQ6hC,OAAQ,GACxB/hC,EAAM+Z,SAAWzX,EAAOuT,cACxBwjD,EAAa/2D,EAAQtC,IAEnBA,EAAM6zD,UAAYkF,GAAgBz2D,EAAOkT,WAAY,OAAO,KAChE,IAAI9X,EAAQsC,EAAM6zD,SAASvxD,EAAQtC,GACnC,MAAY,WAARzc,EAA0Bma,GAC9BsC,EAAMk5D,SAAmB,YAAR31E,GAAkC,MAAXuc,GAA8B,MAAXA,EAA8Bvc,EAAX,SACvE02E,EAAQj6D,EAAOtC,EAAOna,EAAMuc,EAASwC,GAC9C,EAEA0iD,OAAQ,SAAShlD,EAAOD,GACtB,GAAIC,EAAM6zD,UAAYkF,GAAgB/4D,EAAM6zD,UAAYoF,EAAY,OAAOz5D,EAAWkJ,KACtF,GAAI1I,EAAM6zD,UAAYD,EAAW,OAAO,EACxC,IAA2E/pC,EAAvEg2C,EAAY9/D,GAAaA,EAAUpD,OAAO,GAAIuD,EAAUF,EAAME,QAElE,IAAK,aAAanV,KAAKgV,GAAY,IAAK,IAAInf,EAAIof,EAAMk6D,GAAGx4E,OAAS,EAAGd,GAAK,IAAKA,EAAG,CAChF,IAAIk/E,EAAI9/D,EAAMk6D,GAAGt5E,GACjB,GAAIk/E,GAAK3E,EAAQj7D,EAAUA,EAAQjR,UAC9B,GAAI6wE,GAAKpE,IAAaoE,GAAK7E,EAAY,KAC9C,CACA,MAAwB,QAAhB/6D,EAAQ3c,MAAkC,QAAhB2c,EAAQ3c,QACrB,KAAbs8E,IAAsBh2C,EAAM7pB,EAAMk6D,GAAGl6D,EAAMk6D,GAAGx4E,OAAS,MACjCmoC,GAAOgzC,GAAsBhzC,GAAO+yC,KACpC,mBAAmB7xE,KAAKgV,KACpDG,EAAUA,EAAQjR,KAChBwoE,GAAmC,KAAhBv3D,EAAQ3c,MAAoC,QAArB2c,EAAQjR,KAAK1L,OACzD2c,EAAUA,EAAQjR,MACpB,IAAI1L,EAAO2c,EAAQ3c,KAAMqoE,EAAUiU,GAAat8E,EAEhD,MAAY,UAARA,EAAyB2c,EAAQ6Z,UAA8B,YAAlB/Z,EAAMk5D,UAA4C,KAAlBl5D,EAAMk5D,SAAkBh5D,EAAQ2S,KAAKnxB,OAAS,EAAI,GAClH,QAAR6B,GAA+B,KAAbs8E,EAAyB3/D,EAAQ6Z,SAC3C,QAARx2B,EAAuB2c,EAAQ6Z,SAAWorC,EAClC,QAAR5hE,EACA2c,EAAQ6Z,UAAY4lD,GAAqB3/D,EAAOD,GAAa03D,GAAmBtS,EAAa,GAC7E,UAAhBjlD,EAAQ2S,MAAqB+4C,GAA8C,GAAnC8G,EAAaqN,mBAErD7/D,EAAQ6hC,MAAc7hC,EAAQ0V,QAAUg2C,EAAU,EAAI,GACnD1rD,EAAQ6Z,UAAY6xC,EAAU,EAAIzG,GAFrCjlD,EAAQ6Z,UAAY,sBAAsBhvB,KAAKgV,GAAaolD,EAAa,EAAIA,EAGxF,EAEA0B,cAAe,oCACf+N,kBAAmB30D,EAAW,KAAO,KACrC40D,gBAAiB50D,EAAW,KAAO,KACnC60D,qBAAsB70D,EAAW,KAAO,MACxCszD,YAAatzD,EAAW,KAAO,KAC/B80D,KAAM,QACNiL,cAAe,iBAEfxtD,WAAYvS,EAAW,OAAS,aAChCy3D,WAAYA,EACZz3D,SAAUA,EAEV+4D,kBAAmBA,GAEnBiH,eAAgB,SAASjgE,GACvBi6D,EAAQj6D,EAAO,OAAQ,OAAQ,OAAQ,IAAIR,EAAW+C,aAAa,GAAI,EAAG,MAC5E,EAEJ,IAEA/C,EAAWyqD,eAAe,YAAa,aAAc,SAErDzqD,EAAWwS,WAAW,kBAAmB,cACzCxS,EAAWwS,WAAW,kBAAmB,cACzCxS,EAAWwS,WAAW,yBAA0B,cAChDxS,EAAWwS,WAAW,2BAA4B,cAClDxS,EAAWwS,WAAW,yBAA0B,cAChDxS,EAAWwS,WAAW,mBAAoB,CAAEtnB,KAAM,aAAcktE,MAAM,IACtEp4D,EAAWwS,WAAW,qBAAsB,CAAEtnB,KAAM,aAAcktE,MAAM,IACxEp4D,EAAWwS,WAAW,4BAA6B,CAAEtnB,KAAM,aAAcktE,MAAM,IAC/Ep4D,EAAWwS,WAAW,sBAAuB,CAAEtnB,KAAM,aAAcitE,QAAQ,IAC3En4D,EAAWwS,WAAW,kBAAmB,CAAEtnB,KAAM,aAAcqtE,YAAY,IAC3Ev4D,EAAWwS,WAAW,yBAA0B,CAAEtnB,KAAM,aAAcqtE,YAAY,GAElF,CA17BI70D,CAAI,EAAQ,K,gBCDV,GAMH,SAAS1D,GACZ,aAEA,IAAI0gE,EAAa,CACfC,gBAAiB,CAAC,MAAQ,EAAM,MAAQ,EAAM,IAAM,EAAM,KAAO,EAAM,SAAW,EAChE,OAAS,EAAM,OAAS,EAAM,IAAM,EAAM,KAAO,EAAM,OAAS,EAChE,QAAU,EAAM,MAAQ,EAAM,MAAQ,EAAM,OAAS,EAAM,QAAU,EACrE,OAAS,EAAM,KAAO,EAAM,UAAY,GAC1DC,iBAAkB,CAAC,IAAM,EAAM,IAAM,EAAM,UAAY,EAAM,QAAU,EAAM,GAAK,EAC/D,IAAM,EAAM,IAAM,EAAM,OAAS,EAAM,IAAM,EAAM,OAAS,EAC5D,IAAM,EAAM,IAAM,GACrCC,gBAAiB,CACf,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,GACb,OAAU,CAAC,QAAU,EAAM,UAAY,GACvC,SAAY,CAAC,UAAY,GACzB,EAAK,CAAC,SAAW,EAAM,SAAW,EAAM,OAAS,EAAM,YAAc,EAAM,KAAO,EAC5E,KAAO,EAAM,IAAM,EAAM,UAAY,EAAM,QAAU,EAAM,MAAQ,EACnE,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAClE,QAAU,EAAM,QAAU,EAAM,IAAM,EAAM,MAAQ,EAAM,KAAO,EAAM,IAAM,EAC7E,GAAK,EAAM,KAAO,EAAM,SAAW,EAAM,OAAS,EAAM,IAAM,GACpE,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,EAAM,OAAS,GAClC,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,GACnB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,EAAM,OAAS,GAClC,GAAM,CAAC,IAAM,IAEfC,YAAa,CAAC,KAAO,GACrBC,eAAe,EACfC,cAAc,EACdC,UAAU,GAGRC,EAAY,CACdP,gBAAiB,CAAC,EAClBC,iBAAkB,CAAC,EACnBC,gBAAiB,CAAC,EAClBC,YAAa,CAAC,EACdC,eAAe,EACfC,cAAc,EACd5J,qBAAqB,EACrB6J,UAAU,GAGZjhE,EAAWsS,WAAW,OAAO,SAAS6uD,EAAYC,GAChD,IAOIr9E,EAAMs9E,EAPN1b,EAAawb,EAAWxb,WACxBnsD,EAAS,CAAC,EACVnR,EAAW+4E,EAAQnK,SAAWyJ,EAAaQ,EAC/C,IAAK,IAAIl5D,KAAQ3f,EAAUmR,EAAOwO,GAAQ3f,EAAS2f,GACnD,IAAK,IAAIA,KAAQo5D,EAAS5nE,EAAOwO,GAAQo5D,EAAQp5D,GAKjD,SAASs5D,EAAOx+D,EAAQtC,GACtB,SAAS5H,EAAM2oE,GAEb,OADA/gE,EAAM6zD,SAAWkN,EACVA,EAAOz+D,EAAQtC,EACxB,CAEA,IAAImB,EAAKmB,EAAOpO,OAChB,MAAU,KAANiN,EACEmB,EAAOgT,IAAI,KACThT,EAAOgT,IAAI,KACThT,EAAOlN,MAAM,UAAkBgD,EAAM4oE,EAAQ,OAAQ,QAC7C,KACH1+D,EAAOlN,MAAM,MACfgD,EAAM4oE,EAAQ,UAAW,WACvB1+D,EAAOlN,MAAM,WAAW,GAAM,IACvCkN,EAAOiT,SAAS,aACTnd,EAAM6oE,EAAQ,KAEd,KAEA3+D,EAAOgT,IAAI,MACpBhT,EAAOiT,SAAS,aAChBvV,EAAM6zD,SAAWmN,EAAQ,OAAQ,MAC1B,SAEPz9E,EAAO+e,EAAOgT,IAAI,KAAO,WAAa,UACtCtV,EAAM6zD,SAAWsD,EACV,eAEM,KAANh2D,GAELmB,EAAOgT,IAAI,KACThT,EAAOgT,IAAI,KACRhT,EAAOiT,SAAS,eAAiBjT,EAAOgT,IAAI,KAE5ChT,EAAOiT,SAAS,SAAWjT,EAAOgT,IAAI,KAGxChT,EAAOiT,SAAS,cAAgBjT,EAAOgT,IAAI,MAEtC,OAAS,SAErBhT,EAAOiT,SAAS,SACT,KAEX,CAGA,SAAS4hD,EAAM70D,EAAQtC,GACrB,IAAImB,EAAKmB,EAAOpO,OAChB,GAAU,KAANiN,GAAoB,KAANA,GAAamB,EAAOgT,IAAI,KAGxC,OAFAtV,EAAM6zD,SAAWiN,EACjBv9E,EAAa,KAAN4d,EAAY,SAAW,eACvB,cACF,GAAU,KAANA,EAET,OADA5d,EAAO,SACA,KACF,GAAU,KAAN4d,EAAW,CACpBnB,EAAM6zD,SAAWiN,EACjB9gE,EAAMA,MAAQkhE,EACdlhE,EAAMxL,QAAUwL,EAAMmhE,SAAW,KACjC,IAAIjtE,EAAO8L,EAAM6zD,SAASvxD,EAAQtC,GAClC,OAAO9L,EAAOA,EAAO,aAAe,WACtC,CAAO,MAAI,SAASnJ,KAAKoW,IACvBnB,EAAM6zD,SAAWuN,EAAYjgE,GAC7BnB,EAAMqhE,eAAiB/+D,EAAOsT,SACvB5V,EAAM6zD,SAASvxD,EAAQtC,KAE9BsC,EAAOlN,MAAM,4CACN,OAEX,CAEA,SAASgsE,EAAYpN,GACnB,IAAIsN,EAAU,SAASh/D,EAAQtC,GAC7B,MAAQsC,EAAOE,OACb,GAAIF,EAAOpO,QAAU8/D,EAAO,CAC1Bh0D,EAAM6zD,SAAWsD,EACjB,KACF,CAEF,MAAO,QACT,EAEA,OADAmK,EAAQC,eAAgB,EACjBD,CACT,CAEA,SAASN,EAAQtjE,EAAO8jE,GACtB,OAAO,SAASl/D,EAAQtC,GACtB,MAAQsC,EAAOE,OAAO,CACpB,GAAIF,EAAOlN,MAAMosE,GAAa,CAC5BxhE,EAAM6zD,SAAWiN,EACjB,KACF,CACAx+D,EAAOpO,MACT,CACA,OAAOwJ,CACT,CACF,CAEA,SAASujE,EAAQzH,GACf,OAAO,SAASl3D,EAAQtC,GAEtB,IADA,IAAImB,EAC2B,OAAvBA,EAAKmB,EAAOpO,SAAiB,CACnC,GAAU,KAANiN,EAEF,OADAnB,EAAM6zD,SAAWoN,EAAQzH,EAAQ,GAC1Bx5D,EAAM6zD,SAASvxD,EAAQtC,GACzB,GAAU,KAANmB,EAAW,CACpB,GAAa,GAATq4D,EAAY,CACdx5D,EAAM6zD,SAAWiN,EACjB,KACF,CAEE,OADA9gE,EAAM6zD,SAAWoN,EAAQzH,EAAQ,GAC1Bx5D,EAAM6zD,SAASvxD,EAAQtC,EAElC,CACF,CACA,MAAO,MACT,CACF,CAEA,SAASyhE,EAAMjtE,GACb,OAAOA,GAAWA,EAAQ2V,aAC5B,CAEA,SAASoM,EAAQvW,EAAOxL,EAASktE,GAC/B3gF,KAAKkO,KAAO+Q,EAAMlV,QAClB/J,KAAKyT,QAAUA,GAAW,GAC1BzT,KAAKikE,OAAShlD,EAAM+Z,SACpBh5B,KAAK2gF,YAAcA,GACf1oE,EAAOsnE,YAAY74D,eAAejT,IAAawL,EAAMlV,SAAWkV,EAAMlV,QAAQ62E,YAChF5gF,KAAK4gF,UAAW,EACpB,CACA,SAASxN,EAAWn0D,GACdA,EAAMlV,UAASkV,EAAMlV,QAAUkV,EAAMlV,QAAQmE,KACnD,CACA,SAAS2yE,EAAgB5hE,EAAO6hE,GAE9B,IADA,IAAIC,EACG,GAAM,CACX,IAAK9hE,EAAMlV,QACT,OAGF,GADAg3E,EAAgB9hE,EAAMlV,QAAQ0J,SACzBwE,EAAOqnE,gBAAgB54D,eAAeg6D,EAAMK,MAC5C9oE,EAAOqnE,gBAAgBoB,EAAMK,IAAgBr6D,eAAeg6D,EAAMI,IACrE,OAEF1N,EAAWn0D,EACb,CACF,CAEA,SAASkhE,EAAU39E,EAAM+e,EAAQtC,GAC/B,MAAY,WAARzc,GACFyc,EAAMmhE,SAAW7+D,EAAOsT,SACjBmsD,GACU,YAARx+E,EACFy+E,EAEAd,CAEX,CACA,SAASa,EAAax+E,EAAM+e,EAAQtC,GAClC,MAAY,QAARzc,GACFyc,EAAMxL,QAAU8N,EAAOtT,UACvB6xE,EAAW,MACJoB,GACEjpE,EAAO49D,qBAA+B,UAARrzE,GACvCs9E,EAAW,cACJoB,EAAU1+E,EAAM+e,EAAQtC,KAE/B6gE,EAAW,QACJkB,EAEX,CACA,SAASC,EAAkBz+E,EAAM+e,EAAQtC,GACvC,GAAY,QAARzc,EAAgB,CAClB,IAAIiR,EAAU8N,EAAOtT,UAIrB,OAHIgR,EAAMlV,SAAWkV,EAAMlV,QAAQ0J,SAAWA,GAC1CwE,EAAOonE,iBAAiB34D,eAAeg6D,EAAMzhE,EAAMlV,QAAQ0J,WAC7D2/D,EAAWn0D,GACRA,EAAMlV,SAAWkV,EAAMlV,QAAQ0J,SAAWA,IAAoC,IAAxBwE,EAAOkpE,cAChErB,EAAW,MACJsB,IAEPtB,EAAW,YACJuB,EAEX,CAAO,OAAIppE,EAAO49D,qBAA+B,UAARrzE,GACvCs9E,EAAW,cACJsB,EAAW5+E,EAAM+e,EAAQtC,KAEhC6gE,EAAW,QACJuB,EAEX,CAEA,SAASD,EAAW5+E,EAAMkxE,EAASz0D,GACjC,MAAY,UAARzc,GACFs9E,EAAW,QACJsB,IAEThO,EAAWn0D,GACJkhE,EACT,CACA,SAASkB,EAAc7+E,EAAM+e,EAAQtC,GAEnC,OADA6gE,EAAW,QACJsB,EAAW5+E,EAAM+e,EAAQtC,EAClC,CAEA,SAASiiE,EAAU1+E,EAAMkxE,EAASz0D,GAChC,GAAY,QAARzc,EAEF,OADAs9E,EAAW,YACJwB,EACF,GAAY,UAAR9+E,GAA4B,gBAARA,EAAwB,CACrD,IAAIiR,EAAUwL,EAAMxL,QAAS2sE,EAAWnhE,EAAMmhE,SAS9C,OARAnhE,EAAMxL,QAAUwL,EAAMmhE,SAAW,KACrB,gBAAR59E,GACAyV,EAAOmnE,gBAAgB14D,eAAeg6D,EAAMjtE,IAC9CotE,EAAgB5hE,EAAOxL,IAEvBotE,EAAgB5hE,EAAOxL,GACvBwL,EAAMlV,QAAU,IAAIyrB,EAAQvW,EAAOxL,EAAS2sE,GAAYnhE,EAAM+Z,WAEzDmnD,CACT,CAEA,OADAL,EAAW,QACJoB,CACT,CACA,SAASI,EAAY9+E,EAAM+e,EAAQtC,GACjC,MAAY,UAARzc,EAAyB++E,GACxBtpE,EAAOwnE,eAAcK,EAAW,SAC9BoB,EAAU1+E,EAAM+e,EAAQtC,GACjC,CACA,SAASsiE,EAAe/+E,EAAM+e,EAAQtC,GACpC,MAAY,UAARzc,EAAyBg/E,EACjB,QAARh/E,GAAkByV,EAAOunE,eAAgBM,EAAW,SAAiBoB,IACzEpB,EAAW,QACJoB,EAAU1+E,EAAM+e,EAAQtC,GACjC,CACA,SAASuiE,EAAmBh/E,EAAM+e,EAAQtC,GACxC,MAAY,UAARzc,EAAyBg/E,EACtBN,EAAU1+E,EAAM+e,EAAQtC,EACjC,CAEA,OAtMA8gE,EAAO0B,UAAW,EAsMX,CACL1vD,WAAY,SAAS2vD,GACnB,IAAIziE,EAAQ,CAAC6zD,SAAUiN,EACV9gE,MAAOkhE,EACPnnD,SAAU0oD,GAAc,EACxBjuE,QAAS,KAAM2sE,SAAU,KACzBr2E,QAAS,MAEtB,OADkB,MAAd23E,IAAoBziE,EAAMyiE,WAAaA,GACpCziE,CACT,EAEA0C,MAAO,SAASJ,EAAQtC,GAItB,IAHKA,EAAMxL,SAAW8N,EAAO8S,QAC3BpV,EAAM+Z,SAAWzX,EAAOuT,eAEtBvT,EAAOkT,WAAY,OAAO,KAC9BjyB,EAAO,KACP,IAAIma,EAAQsC,EAAM6zD,SAASvxD,EAAQtC,GAOnC,OANKtC,GAASna,IAAkB,WAATma,IACrBmjE,EAAW,KACX7gE,EAAMA,MAAQA,EAAMA,MAAMzc,GAAQma,EAAO4E,EAAQtC,GAC7C6gE,IACFnjE,EAAoB,SAAZmjE,EAAsBnjE,EAAQ,SAAWmjE,IAE9CnjE,CACT,EAEAsnD,OAAQ,SAAShlD,EAAOD,EAAW2iE,GACjC,IAAI53E,EAAUkV,EAAMlV,QAEpB,GAAIkV,EAAM6zD,SAAS0N,cACjB,OAAIvhE,EAAMmhE,UAAYnhE,EAAM+Z,SACnB/Z,EAAMqhE,eAAiB,EAEvBrhE,EAAM+Z,SAAWorC,EAE5B,GAAIr6D,GAAWA,EAAQ62E,SAAU,OAAOniE,EAAWkJ,KACnD,GAAI1I,EAAM6zD,UAAYsD,GAASn3D,EAAM6zD,UAAYiN,EAC/C,OAAO4B,EAAWA,EAASttE,MAAM,UAAU,GAAG1T,OAAS,EAEzD,GAAIse,EAAMxL,QACR,OAAyC,IAArCwE,EAAO29D,0BACF32D,EAAMmhE,SAAWnhE,EAAMxL,QAAQ9S,OAAS,EAExCse,EAAMmhE,SAAWhc,GAAcnsD,EAAO09D,0BAA4B,GAE7E,GAAI19D,EAAO2pE,YAAc,cAAc53E,KAAKgV,GAAY,OAAO,EAC/D,IAAI6iE,EAAW7iE,GAAa,sBAAsBzE,KAAKyE,GACvD,GAAI6iE,GAAYA,EAAS,GACvB,KAAO93E,GAAS,CACd,GAAIA,EAAQ0J,SAAWouE,EAAS,GAAI,CAClC93E,EAAUA,EAAQmE,KAClB,KACF,CAAO,IAAI+J,EAAOonE,iBAAiB34D,eAAeg6D,EAAM32E,EAAQ0J,UAG9D,MAFA1J,EAAUA,EAAQmE,IAItB,MACK,GAAI2zE,EACT,KAAO93E,GAAS,CACd,IAAI+3E,EAAW7pE,EAAOqnE,gBAAgBoB,EAAM32E,EAAQ0J,UACpD,IAAIquE,IAAYA,EAASp7D,eAAeg6D,EAAMmB,EAAS,KAGrD,MAFA93E,EAAUA,EAAQmE,IAGtB,CAEF,KAAOnE,GAAWA,EAAQmE,OAASnE,EAAQ42E,aACzC52E,EAAUA,EAAQmE,KACpB,OAAInE,EAAgBA,EAAQk6D,OAASG,EACzBnlD,EAAMyiE,YAAc,CAClC,EAEA5b,cAAe,gBACf+N,kBAAmB,UACnBC,gBAAiB,SAEjBx0D,cAAerH,EAAOy9D,SAAW,OAAS,MAC1CjkD,WAAYxZ,EAAOy9D,SAAW,OAAS,MAEvCqM,cAAe,SAAS9iE,GAClBA,EAAMA,OAASsiE,IACjBtiE,EAAMA,MAAQiiE,EAClB,EAEAc,cAAe,SAAS/iE,GACtB,OAAOA,EAAMxL,QAAU,CAAC9J,KAAMsV,EAAMxL,QAAS2J,MAAqB,YAAd6B,EAAMzc,MAAsB,IAClF,EAEAy/E,kBAAmB,SAAShjE,GAE1B,IADA,IAAIlV,EAAU,GACL6pE,EAAK30D,EAAMlV,QAAS6pE,EAAIA,EAAKA,EAAG1lE,KACvCnE,EAAQpF,KAAKivE,EAAGngE,SAClB,OAAO1J,EAAQ+iB,SACjB,EAEJ,IAEArO,EAAWwS,WAAW,WAAY,OAClCxS,EAAWwS,WAAW,kBAAmB,OACpCxS,EAAWqS,UAAUpK,eAAe,cACvCjI,EAAWwS,WAAW,YAAa,CAACtnB,KAAM,MAAO+rE,UAAU,GAE7D,CA3ZIvzD,CAAI,EAAQ,K,2DCHhB,SACE+/D,IAAG,SAACC,GACFA,EAAGC,cAAc15E,QACjBy5E,EAAGE,YAAY35E,OACjB,E,yFCDF,SACEw5E,IAAG,SAACC,IACF,IAAAG,SAAQtiF,KAAM,UAAW,gBAAiB,kBAC1CA,KAAKuiF,OAASJ,EACdniF,KAAKwiF,YAAcxiF,KAAKyiF,OAAOC,gBAAgBv9E,MAC/CnF,KAAK2iF,WAAW,EAClB,EACAhlE,KAAI,SAACwkE,GACHniF,KAAK2iF,aACL3iF,KAAK4iF,gBACP,EAEA9lB,QAAO,SAACtwD,GACiB,OAAnB,IAAAq2E,YAAWr2E,IACbxM,KAAKuiF,OAAOO,YAAY9iF,KAAKsK,GAEjC,EAEAy4E,cAAa,SAACv2E,GACZxM,KAAKgjF,cAAc,EAAGx2E,EACxB,EAEAo2E,eAAc,SAACp2E,GACbxM,KAAKgjF,cAAc,EAAGx2E,EACxB,EAEAw2E,cAAa,SAACC,EAAiBz2E,GACvB,IAAEg2E,EAAoBxiF,KAAT,YAAEkjF,EAAOljF,KAAL,GACjBmjF,EAAYnjF,KAAI,QAChBojF,EAAYH,EAAS,MAAQ,SACnCjjF,KAAKqjF,YAAYC,UAAUF,GAAW,UAAGpjF,KAAKujF,KAAI,iBAE7CJ,IACHA,EAAU,IAAI,IAAQ,CACpBK,YAAW,WACT,MAAO,CACL3vD,EAAG2uD,EAAY7+E,IAAI,KACnBiqC,EAAG40C,EAAY7+E,IAAI,KAEvB,EACA8/E,YAAW,SAAC,G,IAAE5vD,EAAC,IAAE+Z,EAAC,IAChB40C,EAAY/8E,IAAI,CAAEouB,EAAC,EAAE+Z,EAAC,GACxB,EACA81C,QAAO,SAACl3E,EAAI22E,GACVD,EAAGp/E,QAAQ,oBAAqBq/E,EAClC,EACAQ,OAAM,SAACn3E,EAAI22E,GACTD,EAAGp/E,QAAQ,cAAeq/E,EAC5B,EACAS,MAAK,SAACp3E,EAAI22E,GACRD,EAAGp/E,QAAQ,kBAAmBq/E,EAChC,IAEFnjF,KAAKmjF,QAAUA,GAGjBF,EAASE,EAAQnnE,MAAMxP,GAAM22E,EAAQxlE,MACvC,EAEAglE,WAAU,SAACM,GACD,IAAAM,EAASvjF,KAAI,KACfojF,EAAYH,EAAS,MAAQ,SAC7BY,EAAWZ,EAAS,KAAO,MAC3Ba,EAAY,CAAEr8E,GAAE,KAAE0D,IAAG,OACrBs3E,EAASziF,KAAKqjF,YACd5sD,EAAU,CAAC,UAAG8sD,EAAI,cACvBN,GAAUxsD,EAAQ9xB,KAAK,UAAG4+E,EAAI,iBAC/B9sD,EAAQhhB,SAAQ,SAAAyO,GAAO,OAAAu+D,EAAOa,UAAUF,GAAWl/D,EAA5B,IACvB4/D,EAAUD,GAAUnvE,SAAU,QAAS1U,KAAK88D,SAC5CgnB,EAAUD,GAAUpB,EAAQ,YAAaziF,KAAK+iF,eAC9Ce,EAAUD,GAAUnvE,SAAU,UAAW1U,KAAK4iF,eAChD,E,6jBCtDK,SAASmB,EAAmEC,GACjF,OAAOA,CACT,C,QAEA,YAWE,WAAY7tD,GAAZ,MACE,YAAM,IAAE,KACR,EAAKle,OAASke,GAAK,CAAC,EACpB,EAAK+sD,GAAK,EAAKjrE,OAAOirE,IAAM,CAAC,EAC7B,IAAMe,EAAM,EAAKhsE,OAAOisE,Y,OACxB,EAAKD,IAAMA,EACX,EAAKV,KAAO,EAAKtrE,OAAOksE,aACxB,EAAKC,WAAa,UAAGH,EAAG,SACxB,EAAKI,WAAa,UAAGJ,EAAG,SACxB,EAAKK,SAAW,UAAGL,EAAG,eACtB,EAAKM,WAAa,UAAG,EAAKhB,KAAI,WAC9B,EAAKd,OAAS,EAAKS,GAAGsB,OACtB,EAAKxiC,KAAK,EAAK/pC,Q,CACjB,CAiHF,OAzIwE,OA+BtE,YAAAwsE,cAAA,SAAcv5E,GAAS,EAMvB,YAAAm4E,UAAA,WACE,OAAOrjF,KAAKyiF,OAAOiC,YACrB,EAMA,YAAAC,cAAA,WACE,OAAO3kF,KAAKyiF,OAAOmC,SACrB,EAMA,YAAAC,eAAA,WACE,OAAO7kF,KAAKyiF,OAAOqC,YACrB,EAOA,YAAA3pD,OAAA,SAAO/mB,GACL,IAAIk0B,EAAOl0B,EAAGob,wBACd,MAAO,CACLsZ,IAAKR,EAAKQ,IAAM10B,EAAG8b,cAAcpT,KAAKuvB,UACtC3c,KAAM4Y,EAAK5Y,KAAOtb,EAAG8b,cAAcpT,KAAKmvB,WAE5C,EAOA,YAAA+V,KAAA,SAAK7rB,GAAS,EAQd,YAAA4uD,QAAA,SAAQxC,EAAgB1/E,QAAA,IAAAA,IAAAA,EAAA,IACtB,IAAMyH,EAAKtK,KAAKsK,GAGhB,GAFAi4E,EAAOz+E,QAAQ,cAAOwG,EAAE,WAAWzH,IAE/BA,IAAWA,EAAQmiF,MAAvB,CAKA,IAAMC,EAASpiF,EAAQoiF,QAAU1C,EAC3Br1E,EAASlN,KAAKkiF,IAAIK,EAAQ0C,EAAQpiF,GAGxC,OAFA0/E,EAAOz+E,QAAQ,cAAOwG,GAAM4C,EAAQrK,GACpC0/E,EAAOz+E,QAAQ,MAAOwG,EAAI4C,EAAQrK,GAC3BqK,C,CARLq1E,EAAOz+E,QAAQ,gBAASwG,GAAMzH,EASlC,EAQA,YAAAqiF,SAAA,SAAS3C,EAAgB1/E,QAAA,IAAAA,IAAAA,EAAA,IACvB,IAAMyH,EAAKtK,KAAKsK,GACV26E,EAASpiF,EAAQoiF,QAAU1C,EACjCA,EAAOz+E,QAAQ,eAAQwG,EAAE,WAAWzH,GACpC,IAAMqK,EAASlN,KAAK2d,KAAK4kE,EAAQ0C,EAAQpiF,GAGzC,OAFA0/E,EAAOz+E,QAAQ,eAAQwG,GAAM4C,EAAQrK,GACrC0/E,EAAOz+E,QAAQ,OAAQwG,EAAI4C,EAAQrK,GAC5BqK,CACT,EAKA,YAAA41E,YAAA,SAAYj5E,GACV7J,KAAKkjF,GAAGiC,SAASxnE,KAAK3d,KAAKsK,GAAcT,EAC3C,EAQA,YAAAq4E,IAAA,SAAIgB,EAAY+B,EAAapiF,GAAa,EAQ1C,YAAA8a,KAAA,SAAKulE,EAAY+B,EAAapiF,GAAa,EAC7C,EAzIA,CAAwE,K,ySCAxE,QAtB0D,CACxDq/E,IAAG,SAACC,EAAI/5E,EAAGyB,GAAX,gBAAW,IAAAA,IAAAA,EAAA,IACT,IAAMu7E,EAAwB,GAC1BC,EAAax7E,EAAKy7E,WAAanD,EAAGoD,iBAetC,OAdAF,GAAa,IAAAnkF,SAAQmkF,GAAc,EAAD,GAAKA,GAAU,GAAI,CAACA,IAE3CpvE,OAAOuvE,SAAS/vE,SAAQ,SAAA6vE,GACjC,IAAKA,EAAU3hF,IAAI,aAEjB,OADAyhF,EAASzgF,KAAK2gF,GACP,EAAKpC,GAAGuC,WAAW,+BAAgC,CACxDH,UAAS,IAGbA,EAAUlgF,QACZ,IAEA+8E,EAAGjsE,OAAOkvE,GAEHC,CACT,E,2TCPIK,EAAS,QAEf,SACExD,IAAG,SAACK,EAAQ0C,EAAQp7E,GAApB,gBAAoB,IAAAA,IAAAA,EAAA,KAClB,IAAAy4E,SACEtiF,KACA,cACA,UACA,SACA,QACA,cACA,kBACA,cACA,mBAEM,IAAAumB,EAAsC1c,EAAI,OAAlC8I,EAA8B9I,EAAI,MAA3BmW,EAAuBnW,EAAI,KAArB,EAAiBA,EAAI,QAArBs5E,OAAO,IAAG,GAAC,EAAC,EACnC/uE,EAAKmS,EAAOo/D,QACZ1tE,EAAS,EAAH,CACVoa,IAAKje,EAAG8b,cACRwzD,QAAS1jF,KAAK0jF,QACdE,MAAO5jF,KAAK4jF,MACZD,OAAQ3jF,KAAK2jF,OACbH,YAAaxjF,KAAKwjF,YAClBC,YAAazjF,KAAKyjF,YAClBmC,aAAc,WAAM,SAAKA,YAAL,EACpBC,aAAc,WAAM,SAAKA,YAAL,GACjB1C,GAELnjF,KAAK8lF,cACL9lF,KAAK6J,KAAOA,EACZ7J,KAAKuiF,OAASA,EACdviF,KAAKkjF,GAAKX,EAAOwD,WACjB/lF,KAAKumB,OAASA,EACdvmB,KAAKgmF,OAAiB,aAARhmE,EACdhgB,KAAKimF,gBAAkBjmF,KAAKkmF,qBAC5BlmF,KAAK6lF,aAAe7lF,KAAKmmF,kBACzBnmF,KAAK4lF,aAAe5lF,KAAKomF,kBACzB,IAAIC,EAAMrmF,KAAKmjF,QAaf,OAXKkD,EAIHA,EAAIt2E,WAAWkI,IAHfouE,EAAM,IAAI,IAAQpuE,GAClBjY,KAAKmjF,QAAUkD,GAKjB1zE,GAAS0zE,EAAIrqE,MAAMrJ,GACnB3S,KAAKsmF,WAAW,GAChBtmF,KAAKkjF,GAAGp/E,QAAQ,UAAG4hF,EAAM,UAAU1lF,KAAKumF,gBAEjCF,CACT,EAEAE,aAAY,WACV,MAAO,CACLvmE,KAAMhgB,KAAK6J,KAAKmW,KAChBuG,OAAQvmB,KAAKumB,OACbs/D,aAAc7lF,KAAK6lF,aACnBD,aAAc5lF,KAAK4lF,aAEvB,EAEAjoE,KAAI,WACF3d,KAAKsmF,YACP,EAEAR,YAAW,YACR9lF,KAAKwmF,QAAU,IAAI/wE,SAAQ,SAACgxE,GACnB,IAAAC,EAAUD,EAAI,MACtBC,GAASA,EAAMzhE,WAAWnH,YAAY4oE,EACxC,IACA1mF,KAAKwmF,OAAS,EAChB,EAEAN,mBAAkB,WAAlB,WACQS,EAAa3mF,KAAI,SAEvB,IAAK2mF,EAAU,CACP,MAAuB3mF,KAArBuiF,EAAM,SAAEW,EAAE,KAAE,EAAI,OAClBe,EAAM1B,EAAOqE,YAAY1C,YACzB2C,EAAUnyE,SAASC,cAAc,OACjCmyE,EAAUpyE,SAASC,cAAc,OACjCoyE,EAAe,uBAAe9C,EAAG,4BAAoBA,EAAG,8CAC9CA,EAAG,+BAAuBA,EAAG,wCAE7C0C,EAAWjyE,SAASC,cAAc,QACzBC,UAAY,UAAGqvE,EAAG,UAC3B4C,EAAQjyE,UAAY,UAAGqvE,EAAG,sBAAcA,EAAG,iBAC3C6C,EAAQlyE,UAAY,UAAGqvE,EAAG,sBAAcA,EAAG,iBAC3C4C,EAAQG,UAAYD,EACpBD,EAAQE,UAAYD,EACpBJ,EAASliE,YAAYoiE,GACrBF,EAASliE,YAAYqiE,GACrBvE,EAAOiC,OAAOyC,mBAAmBxiE,YAAYkiE,GAC7C3mF,KAAK2mF,SAAWA,EAChB3mF,KAAKknF,aAAeL,EACpB7mF,KAAKmnF,aAAeL,EACpB9mF,KAAKonF,oBAAsBP,EAAQ3mD,cAAc,WAAI+jD,EAAG,wBACxDjkF,KAAKqnF,oBAAsBP,EAAQ5mD,cAAc,WAAI+jD,EAAG,wBAExDf,EAAGz7E,GACD,8BACA,IAAA6/E,WAAS,W,MACP,EAAKC,eACL,EAAKC,QAAoB,QAAX,IAAKhB,cAAM,SAAE/wE,SAAQ,SAACgxE,GAAc,SAAKgB,YAAYhB,EAAjB,IACpD,GAAG,K,CAIP,OAAOE,CACT,EAEAP,gBAAe,WAAf,WACMl5E,EAAc,GACZkH,EAAKpU,KAAKumB,OAAOo/D,QACf,EAAoBvxE,EAAE,WAAtB6Q,OAAU,IAAG,GAAC,EAAC,EAGvB,OAFA,IAAA1f,MAAK0f,EAAWsN,UAAU,SAAAk0D,GAAQ,OAACv5E,EAASA,EAAOnI,OAAOqP,IAAOqyE,EAAO,EAAKiB,iBAAiBjB,GAAQ,GAApE,IAE3Bv5E,EAAOnI,OAAO/E,KAAK0nF,iBAAiBziE,GAC7C,EAEAkhE,gBAAe,WACb,OAAOnmF,KAAK0nF,iBAAiB1nF,KAAKumB,OAAOo/D,QAC3C,EAEA4B,aAAY,SAACf,GAAb,IACMmB,EACAtoB,EAFN,QAGGmnB,GAAUxmF,KAAKwmF,QAAQ/wE,SAAQ,SAACgxE,GACvB,IAAAz+D,EAAWy+D,EAAI,OACjB5kE,EAAM8lE,IAAW3/D,EAASq3C,EAAU,EAAKuoB,cAAc5/D,GAC7D2/D,EAAS3/D,EACTq3C,EAAUx9C,GACV,IAAAtc,MAAK,EAAKsiF,kBAAkBpB,EAAM5kE,IAAM,SAAC5b,EAAK5E,GAAQ,OAAColF,EAAKplF,GAAO4E,CAAb,IACtDwgF,EAAKqB,WAAajmE,CACpB,GACF,EAEAgmE,kBAAiB,SAACpB,EAAWn+C,GAC3B,IAAMp7B,EAAqC,CAAC,EACpC47B,EAA6BR,EAAI,IAA5BxV,EAAwBwV,EAAI,OAApB5Y,EAAgB4Y,EAAI,KAAdnC,EAAUmC,EAAI,MAEzC,OAAQm+C,EAAKjkF,MACX,IAAK,IACH0K,EAAO0gC,EAAI9E,EACX,MACF,IAAK,IACH57B,EAAO0gC,EAAI9E,EAAMhW,EACjB,MACF,IAAK,IACH5lB,EAAO2mB,EAAInE,EACX,MACF,IAAK,IACHxiB,EAAO2mB,EAAInE,EAAOyW,EAClB,MACF,IAAK,IACHj5B,EAAO2mB,EAAInE,EAAOyW,EAAQ,EAC1B,MACF,IAAK,IACHj5B,EAAO0gC,EAAI9E,EAAMhW,EAAS,EAI9B,OAAO5lB,CACT,EAEAu6E,YAAW,SAAChB,QAAA,IAAAA,IAAAA,EAAA,IACV,IAAMryE,EAAKqyE,EAAKC,OAAShyE,SAASC,cAAc,OAC1CozE,EAAK,KACLC,EAAYvB,EAAKvnC,OAAS,EAAI,EAChC+oC,EAAQ7zE,EAAGme,SAAS,GAsBxB,OArBAne,EAAGuI,MAAQ,gDAAyC8pE,EAAKvnC,OAAS,QAAU,MAAK,KAE5E9qC,EAAGme,SAAS5xB,UACfsnF,EAAQvzE,SAASC,cAAc,QACzBgI,MAAQ,iEACdvI,EAAGqQ,YAAYwjE,IAGbxB,EAAK74C,GACPx5B,EAAGuI,MAAMwpB,MAAQ,OACjB/xB,EAAGuI,MAAMmW,OAAS,UAAGk1D,GAAS,OAAGD,GACjC3zE,EAAGuI,MAAMmsB,IAAM,UAAG29C,EAAK74C,GAAC,OAAGm6C,GAC3B3zE,EAAGuI,MAAM+S,KAAO,IAEhBtb,EAAGuI,MAAMwpB,MAAQ,UAAG6hD,GAAS,OAAGD,GAChC3zE,EAAGuI,MAAMmW,OAAS,OAClB1e,EAAGuI,MAAM+S,KAAO,UAAG+2D,EAAK5yD,GAAC,OAAGk0D,GAC5B3zE,EAAGuI,MAAMmsB,IAAM,WAAIi/C,KAGpBtB,EAAKC,OAAS1mF,KAAKimF,gBAAgBxhE,YAAYrQ,GACzCA,CACT,EAEAwzE,cAAa,SAACxzE,GACZ,OAAOpU,KAAKuiF,OAAOiC,OAAOoD,cAAcxzE,EAAI,CAAE8zE,SAAU,GAC1D,EAEAR,iBAAgB,SAACtzE,GAAjB,WACUvK,EAAS7J,KAAI,KACf8nF,EAAa9nF,KAAK4nF,cAAcxzE,GAC9B00B,EAA6Bg/C,EAAU,IAAlCh1D,EAAwBg1D,EAAU,OAA1Bp4D,EAAgBo4D,EAAU,KAApB3hD,EAAU2hD,EAAU,MAEzCtB,EAAkB,CACtB,CAAEhkF,KAAM,IAAKorC,EAAG9E,GAChB,CAAEtmC,KAAM,IAAKorC,EAAG9E,EAAMhW,GACtB,CAAEtwB,KAAM,IAAKqxB,EAAGnE,GAChB,CAAEltB,KAAM,IAAKqxB,EAAGnE,EAAOyW,GACvB,CAAE3jC,KAAM,IAAKqxB,EAAGnE,EAAOyW,EAAQ,GAC/B,CAAE3jC,KAAM,IAAKorC,EAAG9E,EAAMhW,EAAS,IAC/BhuB,KAAI,SAAA2hF,GAAQ,cACTA,GAAI,CACPz+D,OAAQ5T,EACR0zE,WAAU,EACVpB,MAAO78E,EAAK29E,OAAS,EAAKC,YAAYhB,IAJ1B,IAQd,OAFAD,EAAO/wE,SAAQ,SAAAgxE,GAAI,MAAI,OAAW,QAAX,IAAKD,cAAM,eAAE7hF,KAAK8hF,EAAK,IAEvCD,CACT,EAEA2B,aAAY,SAACC,EAAmB1sC,QAAA,IAAAA,IAAAA,EAAA,KAC9B,IAAIxuC,EAAS,EAMb,OALCk7E,GAAa,IAAIn+E,MAAM,KAAKwL,SAAQ,SAAAgxE,GACnC,IAAM4B,EAAU5B,EAAK6B,OACf9nF,EAAK,mBAAYk7C,EAAKvyB,cAAa,KACb,IAAxBk/D,EAAQxjF,QAAQrE,KAAW0M,EAASq7E,WAAWF,EAAQ54E,QAAQjP,EAAI,KACzE,IACO0M,CACT,EAEAs7E,aAAY,SAACJ,EAAmB1sC,EAAch0C,GAC5C,IAAMlH,EAAK,mBAAYk7C,EAAKvyB,cAAa,KACnCljB,EAAM,UAAGzF,GAAE,OAAGkH,EAAK,KACrBwF,GAAUk7E,GAAa,IACxBn+E,MAAM,KACNnF,KAAI,SAAA2hF,GAGH,OAD4B,IADZA,EAAK6B,OACTzjF,QAAQrE,KAAWimF,EAAOxgF,GAC/BwgF,CACT,IACCh3B,KAAK,KAGR,OAFIviD,EAAOrI,QAAQrE,GAAM,IAAG0M,GAAU,WAAIjH,IAEnCiH,CACT,EAEAs2E,YAAW,WACH,IAAEj9D,EAAmBvmB,KAAb,OAAEgmF,EAAWhmF,KAAL,OAChB,EAA2BumB,EAAOkiE,WAAhC/4D,EAAI,OAAEoZ,EAAG,MAAEs/C,EAAS,YACxBv0D,EAAI,EACJ+Z,EAAI,EAUR,OARIo4C,GACFnyD,EAAI7zB,KAAKmoF,aAAaC,GACtBx6C,EAAI5tC,KAAKmoF,aAAaC,EAAW,OAEjCv0D,EAAI00D,WAAW74D,GAAQ,GACvBke,EAAI26C,WAAWz/C,GAAO,IAGjB,CAAEjV,EAAC,EAAE+Z,EAAC,EACf,EAEA61C,YAAW,SAAC,G,IAAE5vD,EAAC,IAAE+Z,EAAC,IAAE5rB,EAAG,MAAEukB,EAAQ,WAAEJ,EAAK,QAAErT,EAAM,SACxC,EAAyB9yB,KAAvBumB,EAAM,SAAEy/D,EAAM,SAAE9C,EAAE,KACpBhlB,EAAO,KACPwqB,GAAO1mE,EACP0N,EAAO,UAAGgY,SAAS7T,EAAG,KAAG,OAAGqqC,GAC5Bp1B,EAAM,UAAGpB,SAASkG,EAAG,KAAG,OAAGswB,GAC7ByqB,EAAU,CAAC,EAEf,GAAI3C,EAAQ,CACV,IAAIoC,EAAY7hE,EAAOkiE,WAAW,cAAgB,GAClDL,EAAYpoF,KAAKwoF,aAAaJ,EAAW,IAAK14D,GAE9Ci5D,EAAU,CAAEP,UADZA,EAAYpoF,KAAKwoF,aAAaJ,EAAW,IAAKt/C,GACvB4/C,IAAG,GAC1BniE,EAAOqiE,SAASD,EAAS,CAAEE,YAAa7mE,G,KACnC,CACL,IAAM,EAAY,CAAEukB,SAAQ,EAAEJ,MAAK,EAAErT,OAAM,GACrC,EAAa,CAAEpD,KAAI,EAAEoZ,IAAG,EAAE4/C,IAAG,IACnC,IAAAznF,MAAK,GAAMwU,SAAQ,SAAAnR,GACjB,IAAMmiB,EAAO,EAAKniB,GACdmiB,IAAM,EAAMniB,GAAOmiB,EACzB,IACAkiE,EAAU,EACVpiE,EAAOqiE,SAASD,EAAS,CAAEE,YAAa7mE,G,CAG1CkhE,SAAAA,EAAI4F,OAAOC,qBAAqBJ,EAAS,CAAEtD,WAAYnC,EAAG8F,eAC5D,EAEAC,aAAY,WACF,IAAA1iE,EAAWvmB,KAAI,OACvB,MAAO,CACLumB,OAAM,EACNhI,OAAQgI,EAAOhI,SACfzd,MAAOylB,EAAOzlB,QAElB,EAEA4iF,QAAO,SAAC/wE,GACA,MAAmC3S,KAAjCumB,EAAM,SAAEg8D,EAAM,SAAEyD,EAAM,SAAEn8E,EAAI,OAC5Bq/E,EAAoBr/E,EAAI,OAAhB65E,EAAY75E,EAAI,QACxB26E,EAAWjC,EAAM,OACnB5lE,EAAQ4J,EAAOkiE,WACfliD,EAAW,WACX4iD,EAAS,CAAC5iD,EAAU,YAE1B,GADAm9C,GAAWA,EAAQ1jF,KAAKipF,iBACpBjD,GAEArpE,EAAM4pB,WAAaA,EAAU,CAC3B,MAA+Bi+C,EAAOrpD,OAAO5U,EAAOo/D,SAAlDj2D,EAAI,OAAE,EAAG,MAAEyW,EAAK,QAAErT,EAAM,SAC1B,EAASvM,EAAOhI,SAChB6qE,OAAS,EAGb,EAAG,CACD,IAAMC,EAAS,EAAOZ,WACtBW,EAAYD,EAAOtkF,QAAQwkF,EAAO9iD,WAAa,EAAI,EAAS,KAC5D,EAAS,EAAOhoB,Q,OACT,IAAW6qE,GAGpB,GAAIF,EAAQ,CACJ,MAAW1E,EAAO8E,uBAAuB32E,GAC/C+c,EADS,IAET,EAFY,G,MAGP,GAAI05D,EAAW,CACpB,IAAMG,EAAU/E,EAAOrpD,OAAOiuD,EAAUzD,SACxCj2D,GAAc65D,EAAQ75D,KACtB,GAAY65D,EAAQzgD,G,CAGtB9oC,KAAKyjF,YAAY,CACf5vD,EAAGnE,EACHke,EAAG,EACHzH,MAAO,UAAGA,EAAK,MACfrT,OAAQ,UAAGA,EAAM,MACjByT,SAAQ,G,CAGd,EAEAo9C,OAAM,W,IAAN,WAAO,kDACC,MAAyB3jF,KAAvB6lF,EAAY,eAAEh8E,EAAI,OAClB85E,EAAW95E,EAAI,OACvB7J,KAAKunF,aAAa1B,GAClBh8E,EAAK29E,OAAS3B,EAAapwE,SAAQ,SAACgxE,GAAc,SAAKgB,YAAYhB,EAAjB,IAClD58E,EAAK2/E,YAAcxpF,KAAKypF,gBAAgB5D,EAAa5vE,QAAO,SAACwwE,GAAc,OAAAA,EAAKvnC,MAAL,KAC3EykC,GAAUA,EAAO3jF,KAAKipF,eACxB,EAEArF,MAAK,SAACp3E,EAAW22E,EAAc71B,QAAA,IAAAA,IAAAA,EAAA,IACvB,MAAuBttD,KAArBuiF,EAAM,SAAE14E,EAAI,OAAES,EAAE,KAChBs5E,EAAU/5E,EAAI,MACtB+5E,GAASA,EAAMp3E,EAAI8gD,EAAK,EAAF,GAAI36C,MAAOnG,GAAO8gD,GAAQttD,KAAKipF,iBACrD1G,EAAOO,YAAYx4E,GACnBtK,KAAK0pF,iBACL1pF,KAAKkjF,GAAGp/E,QAAQ,UAAG4hF,EAAM,QAAQ1lF,KAAKumF,eACxC,EAEAmD,eAAc,WAAd,WACE,CAAC,IAAK,KAAKj0E,SAAQ,SAAAgxE,GACjB,IAAMC,EAAQ,EAAK,qBAAcD,IAC7BC,IAAOA,EAAM/pE,MAAMC,QAAU,OACnC,GACF,EAKA6sE,gBAAe,SAACjD,GAAhB,gBAAgB,IAAAA,IAAAA,EAAA,IACN,IAAAZ,EAAiB5lF,KAAI,aAC7BA,KAAK0pF,iBACLlD,EAAO/wE,SAAQ,SAAAgxE,GACL,IAAAz+D,EAAcy+D,EAAI,OAAV5yD,EAAM4yD,EAAI,EACpBkD,EAAa,EAAK/B,cAAc5/D,GAChC0zB,GAAO,IAAAkuC,aAAY/1D,GAAK,IAAM,IAC9Bg2D,EAAe,MAATnuC,EACNouC,EAAYH,EAAWE,EAAM,OAAS,OACtCE,EAAeJ,EAAWrhD,KAAKuhD,EAAM,OAAS,OAC9CG,EAAYH,EAAMC,EAAYH,EAAWxjD,MAAQ2jD,EAAYH,EAAW72D,OACxEm3D,EAAeJ,EAAME,EAAeJ,EAAWrhD,KAAKnC,MAAQ4jD,EAAeJ,EAAWrhD,KAAKxV,OAC3Fo3D,EAAc,EAAK,qBAAcxuC,EAAKvyB,gBACtCghE,EAAiB,EAAK,4BAAqBzuC,EAAKvyB,gBAChDihE,EAAiBF,EAAYvtE,MAG7BvY,EAAMwhF,aAAY,EAAZA,EACR3vE,QAAO,SAAAo0E,GAAQ,OAAAA,EAAK7nF,OAASikF,EAAKjkF,IAAnB,IAChBsC,KAAI,SAAAulF,GACG,MAA+BA,EAAKvC,WAAlCp4D,EAAI,OAAEyW,EAAK,QAAE2C,EAAG,MAAEhW,EAAM,SAE1Bw3D,EAAYT,EAAMn6D,EAAOyW,EAAQ2C,EAAMhW,EAC7C,MAAO,CACL0I,IAAK8uD,EAAYR,EAAYA,EAAYQ,GAHzBT,EAAMn6D,EAAOoZ,GAGoCkhD,EACjEtD,MAAO2D,EAEX,IACCp0E,QAAO,SAAAwwE,GAAQ,OAAAA,EAAKjrD,IAAM,CAAX,IACfzqB,MAAK,SAACnR,EAAG4lB,GAAM,OAAA5lB,EAAE47B,IAAMhW,EAAEgW,GAAV,IACf12B,KAAI,SAAA2hF,GAAQ,OAAAA,EAAKC,KAAL,IAAY,GAE3B,GAAItiF,EAAK,CACD,MAAqCA,EAAI0jF,WAAvCp4D,EAAI,OAAEyW,EAAK,QAAE,EAAG,MAAErT,EAAM,SAAEwV,EAAI,OAChCiiD,EAAUV,EAAMn6D,EAAOi6D,EAAWj6D,KAAO,EAAMi6D,EAAW7gD,IAC1D0hD,EAAYX,EAAMn6D,EAAO,EACzB+6D,EAAeZ,EAAMvhD,EAAK5Y,KAAO4Y,EAAKQ,IACtCwhD,EAAYT,EAAMn6D,EAAOyW,EAAQ,EAAMrT,EACvC43D,EAAeb,EAAMvhD,EAAK5Y,KAAO4Y,EAAKnC,MAAQmC,EAAKQ,IAAMR,EAAKxV,OAC9D63D,EAAWd,EAAMpD,EAAK74C,EAAI64C,EAAK5yD,EAC/B+2D,EAAYL,EAAUD,EAAYN,EAClCa,EAAO,UAAGF,EAAQ,MAClBj0E,EAAO6zE,EAAUT,EAAYQ,EAAYE,EAAYR,EACrDc,EAAUP,EAAUR,EAAeW,EAAeD,EAAeR,EACvEG,EAAextE,QAAU,GACzBwtE,EAAeP,EAAM,MAAQ,QAAUgB,EACvCT,EAAeP,EAAM,OAAS,OAAS,UAAGe,EAAS,MACnDR,EAAeP,EAAM,QAAU,UAAY,UAAGnzE,EAAI,MAClDyzE,EAAenD,UAAY,UAAG96E,KAAKikC,MAAM26C,GAAQ,MACjD,EAAK5H,GAAGp/E,QAAQ,UAAG4hF,EAAM,WAAW,EAAF,KAC7B,EAAKa,gBAAc,CACtBG,MAAOD,EACPb,aAAY,EACZmF,QAAS3mF,EACTumF,SAAQ,EACRC,UAAS,EACTl0E,KAAI,EACJo0E,QAAO,EACPZ,YAAW,EACXC,eAAc,I,CAGpB,GACF,EAEA7D,WAAU,SAACrD,GACH,IAAEM,EAAiBvjF,KAAb,KAAEuiF,EAAWviF,KAAL,OACdojF,EAAYH,EAAS,MAAQ,SAC7BxsD,EAAU,CAAC,UAAG8sD,EAAI,iBAChBiB,EAAWjC,EAAM,OACnBzlE,EAAO0nE,EAAOI,UACpBnuD,EAAQhhB,SAAQ,SAAAyO,GAAO,OAAApH,EAAKwmE,UAAUF,GAAWl/D,EAA1B,IACvBsgE,EAAOvB,EAAS,kBAAoB,mBACtC,E,2DC3cF,SACEf,IAAG,SAACC,GACF,GAAKA,EAAGqC,OAAO3vC,WAAf,CACA,IAAMuwC,EAAwB,GAE9BjD,EAAGoD,iBAAiB9vE,SAAQ,SAAA6vE,GAC1B,IAAM0F,EAAO1F,EAAUD,aACjBlyE,EAAO63E,GAAQA,EAAK/0E,QAAO,SAAC8oE,GAAW,OAAAA,EAAEp7E,IAAI,aAAN,IAAqB,GAClEwP,GAAQiyE,EAASzgF,KAAKwO,EACxB,IAEAiyE,EAASzkF,QAAUwhF,EAAGjsE,OAAOkvE,EATI,CAUnC,E,2DCZF,SACElD,IAAG,SAACC,EAAI8I,EAAKphF,GACX,QADW,IAAAA,IAAAA,EAAA,IACNs4E,EAAGqC,OAAO3vC,YAAehrC,EAAK40C,MAAnC,CACA,IAAM2mC,EAAwB,GAE9BjD,EAAGoD,iBAAiB9vE,SAAQ,SAAA6vE,GAI1B,IAHA,IAAInyE,EAAOmyE,EAAU/mE,SAGdpL,IAASA,EAAKxP,IAAI,eACvBwP,EAAOA,EAAKoL,SAGdpL,GAAQiyE,EAASzgF,KAAKwO,EACxB,IAEAiyE,EAASzkF,QAAUwhF,EAAGjsE,OAAOkvE,EAdmB,CAelD,E,2DCjBF,SACElD,IAAG,SAACC,GACF,GAAKA,EAAGqC,OAAO3vC,WAAf,CACA,IAAMuwC,EAAwB,GAE9BjD,EAAGoD,iBAAiB9vE,SAAQ,SAAAie,GAC1B,IAAMnV,EAASmV,EAAInV,SACnB,GAAKA,EAAL,CAEA,IAGIpL,EAHEsY,EAAMlN,EAAO8mE,aAAa1kF,OAC5BuqF,EAAO,EACPznF,EAAK,EAIT,GACEynF,IAEA/3E,GADA1P,EAAKiwB,EAAI5yB,QAAUoqF,IACNz/D,EAAMlN,EAAO4sE,WAAW1nF,GAAM,WACpC0P,IAASA,EAAKxP,IAAI,eAE3ByhF,EAASzgF,KAAKwO,GAAQugB,EAdH,CAerB,IAEA0xD,EAASzkF,QAAUwhF,EAAGjsE,OAAOkvE,EAtBI,CAuBnC,E,2DCzBF,SACElD,IAAG,SAACC,GACF,GAAKA,EAAGqC,OAAO3vC,WAAf,CACA,IAAMuwC,EAAwB,GAE9BjD,EAAGoD,iBAAiB9vE,SAAQ,SAAAie,GAC1B,IAAMnV,EAASmV,EAAInV,SACnB,GAAKA,EAAL,CAEA,IAEIpL,EAFA+3E,EAAO,EACPznF,EAAK,EAIT,GACEynF,IAEA/3E,GADA1P,EAAKiwB,EAAI5yB,QAAUoqF,IACN,EAAI3sE,EAAO4sE,WAAW1nF,GAAM,WAClC0P,IAASA,EAAKxP,IAAI,eAE3ByhF,EAASzgF,KAAKwO,GAAQugB,EAbH,CAcrB,IAEA0xD,EAASzkF,QAAUwhF,EAAGjsE,OAAOkvE,EArBI,CAsBnC,E,uECvBF,SACElD,IAAG,SAACC,EAAI/5E,EAAGyB,QAAA,IAAAA,IAAAA,EAAA,IACD,IAAA0c,EAAW1c,EAAI,OACnBgH,EAAsB,GAE1B,IAAK0V,EAAO5iB,IAAI,UAAW,OAAOkN,EAGlC,IAAMrO,EAAO+jB,EAAO5iB,IAAI,QAClBynF,EAAWjJ,EAAGkJ,MAAMC,iBAK1B,KAJY,IAAAC,SAAQH,EAAStmF,KAAI,SAAA0mF,GAAO,OAAAA,EAAIC,SAASjpF,EAAb,KAAqB7B,OAInD,CACR,IAAM+qF,EAAQvJ,EAAGE,YAAYsJ,SAC7B96E,EAAW66E,EAAMz1E,QAAO,SAAA21E,GAAQ,OAAAA,EAAKjoF,IAAI,WAAa,cAAOnB,EAA7B,IAChCkpF,EAAMtmF,OAAOyL,E,CAGf,OAAOA,CACT,E,iSCvBF,SACEqxE,IAAG,SAACC,GACF,IAAMe,EAAKf,EAAG4D,WACRviF,EAAS,EAAH,GAAO2+E,EAAGoD,kBAAgB,GACtC/hF,EAAO7C,QAAUuiF,EAAGz9E,IAAI,YAAajC,EACvC,E,yFCDF,SAAe,IAAAmD,QAAO,CAAC,EAAG,aAAiB,CACzCq7C,KAAI,YACF,IAAAsgC,SAAQtiF,KAAM,cAAe,aAAc,YAC3CA,KAAKokF,WAAapkF,KAAKikF,IAAM,eAC7BjkF,KAAKqkF,WAAarkF,KAAKikF,IAAM,WAC/B,EAEAhB,OAAM,WAEJjjF,KAAK2T,IAAIC,KAAK,KAAKi4E,UAAU7rF,KAAK8rF,aAAaC,SAAS/rF,KAAKgsF,YAAYC,MAAMjsF,KAAKksF,SACtF,EAOAJ,YAAW,SAAC5gF,GACVA,EAAEmjB,kBACF,IAAI89D,GAAQ,gBAAEjhF,EAAEqb,QAGZ4lE,EAAMzzE,KAAK,SAAS/U,IAAI,eAC1BwoF,EAAM7mE,SAAStlB,KAAKokF,YACpBpkF,KAAKosF,YAAYD,EAAMxoF,IAAI,IAE/B,EAOAqoF,WAAU,SAAC9gF,GACTA,EAAEmjB,mBACU,gBAAEnjB,EAAEqb,QACV8lE,YAAYrsF,KAAKokF,YAGnBpkF,KAAKssF,OAAOtsF,KAAKssF,MAAMhsD,IAAI,CAAE5Q,MAAO,IAAMoZ,KAAM,KACtD,EAOAojD,SAAQ,SAAChhF,GACPA,EAAEmjB,kBACF,IAAI89D,GAAQ,gBAAEjhF,EAAEqb,QAGX4lE,EAAMzzE,KAAK,SAAS/U,IAAI,eAE7BwoF,EAAMzzE,KAAK,SAASrJ,UACpBrP,KAAKusF,cACLvsF,KAAKwsF,QACP,EAOAC,iBAAgB,SAACtnF,GACfnF,KAAKssF,MAAMpW,KAAK,UAAY/wE,EAAMunF,UACpC,G,wEC/DF,SACExK,IAAG,SAACK,EAAQ0C,EAAQp7E,GAApB,gBAAoB,IAAAA,IAAAA,EAAA,IAClBo7E,GAAUA,EAAOx/E,KAAOw/E,EAAOx/E,IAAI,SAAU,GAC7C,IAAMwS,EAASsqE,EAAOqE,YAChB+F,EAAQpK,EAAOqK,MACf3I,EAAMhsE,EAAOisE,YAGnB,GAFAlkF,KAAK2f,GAAK4iE,EAAOsK,aAAe,MAE3B7sF,KAAK60D,QAAS,CACjB,IAAMi4B,EAAU9sF,KAAK+sF,YAAY,YAAa,YAAa,QACrDC,EAAUhtF,KAAK+sF,YAAY,MAAO,YAAa,OACrD/sF,KAAKitF,WAAaH,EAAQ3nF,MAC1BnF,KAAKktF,UAAYF,EAAQ7nF,MACzB,IAAM0vD,GAAU,QAAS,MAAO,CAAEs4B,MAAO,UAAGlJ,EAAG,eAC/CpvB,EAAQpwC,YAAYqoE,EAAQ14E,IAC5BygD,EAAQpwC,YAAYuoE,EAAQ54E,IAC5BpU,KAAK60D,QAAUA,C,CAGjB83B,EACGxvE,KAAK,CACJc,MAAOhG,EAAOm1E,aACdruE,QAAS/e,KAAK60D,UAEfkxB,WACAl6E,KAAK,eAAe,WAAM,OAAA02E,EAAOO,YAAY,UAAG,EAAKx4E,IAA3B,IAC7BtK,KAAKitF,WAAWI,WAAW9K,EAAO+K,QAAQzjF,EAAK0jF,WAC/CvtF,KAAKktF,UAAUG,WAAW9K,EAAOiL,OAAO3jF,EAAK4jF,SAC/C,EAEA9vE,KAAI,SAAC4kE,GACH,IAAMoK,EAAQpK,EAAOqK,MACrBD,GAASA,EAAMvvE,OACjB,EAEA2vE,YAAW,SAACW,EAAkB5sB,EAAe4L,GAC3C,IAAM/sD,EAAK3f,KAAKkjF,GAAG2J,YACb1nF,EAAQwa,EAAGguE,aAAa,CAC5BjhB,MAAK,EACLghB,SAAQ,EACR5sB,MAAK,IAQP,MAAO,CAAE37D,MAAK,EAAEiP,GALL,IAAIuL,EAAGiuE,WAAW,CAC3BzoF,MAAK,EACL8S,OAAQ0H,EAAGinE,cACH/yE,SAASO,GAGrB,E,uECvDF,SAKEy5E,UAAS,WACP,IAAMtvD,EAAI7pB,SAEV,SAAI6pB,EAAEuvD,mBAAqBvvD,EAAEwvD,yBAA2BxvD,EAAEyvD,qBAI5D,EAOA/K,OAAM,SAAC7uE,GACL,IAAI6vE,EAAM,GAcV,OAZI7vE,EAAG65E,kBACL75E,EAAG65E,oBACM75E,EAAG85E,yBACZjK,EAAM,SACN7vE,EAAG85E,2BACM95E,EAAG+5E,sBACZlK,EAAM,MACN7vE,EAAG+5E,wBACM/5E,EAAGg6E,qBACZh6E,EAAGg6E,sBAGEnK,CACT,EAKAoK,QAAO,WACL,IAAM9vD,EAAS7pB,SAEX1U,KAAK6tF,cACHtvD,EAAE+vD,eAAgB/vD,EAAE+vD,iBACf/vD,EAAEgwD,qBAAsBhwD,EAAEgwD,uBAC1BhwD,EAAEiwD,oBAAqBjwD,EAAEiwD,sBACzBjwD,EAAEkwD,kBAAkBlwD,EAAEkwD,mBAEnC,EAQAC,UAAS,SAACzK,GACHjkF,KAAK6tF,cACR7tF,KAAK8iF,YAAY,CAAEmC,OAAQjlF,KAAKilF,SAChCvwE,SAASkJ,oBAAoB,UAAGqmE,GAAO,GAAE,oBAAoBjkF,KAAK0uF,WAEtE,EAEAxM,IAAG,SAACK,EAAQ0C,EAAQp7E,QAAA,IAAAA,IAAAA,EAAA,IAClB7J,KAAKilF,OAASA,EACN,IAAA1+D,EAAW1c,EAAI,OACjB8kF,GAAW,IAAAC,WAAUroE,GAAUA,EAAS7R,SAASwrB,cAAc3Z,GAC/D09D,EAAMjkF,KAAKijF,OAAO0L,GAAYpM,EAAOsM,gBAC3C7uF,KAAK0uF,UAAY1uF,KAAK0uF,UAAU3iF,KAAK/L,KAAMikF,GAC3CvvE,SAAS4I,iBAAiB2mE,EAAM,mBAAoBjkF,KAAK0uF,WACzDnM,EAAOz+E,QAAQ,sBACjB,EAEA6Z,KAAI,SAAC4kE,EAAQ0C,GACPA,GAAUA,EAAOx/E,KAAKw/E,EAAOx/E,IAAI,UAAU,GAC/CzF,KAAKquF,UACD9L,GAAQA,EAAOz+E,QAAQ,sBAC7B,E,2GCzEF,SAAe,IAAA6C,QAAO,CAAC,EAAG,aAAgB,aAAiB,CACzDq7C,KAAI,SAAC7rB,GACH,wBAA2Bn2B,KAAMmB,YACjC,IAAAmhF,SAAQtiF,KAAM,aAAc,WAAY,aACxCA,KAAKstD,IAAMn3B,EACXn2B,KAAKokF,WAAapkF,KAAKujF,KAAO,sBAC9BvjF,KAAKqkF,WAAarkF,KAAKujF,KAAO,gBAC9BvjF,KAAK8uF,WAAa9uF,KAAKujF,KAAO,WAChC,EAEAN,OAAM,W,IAAC,sDACL,0BAA6BjjF,KAAMU,GACnCV,KAAK+uF,aAAazpE,SAAStlB,KAAKqkF,YAChCrkF,KAAKgvF,mBAAmB1pE,SAAStlB,KAAKokF,YACtC,IAAI6K,EAAKjvF,KAAKkvF,SACdD,EAAG3uD,IAAI,SAAU,QACjB2uD,EAAGxnF,GAAG,YAAazH,KAAKmvF,YAGxBF,EAAG3pE,SAAStlB,KAAK8uF,WACnB,EAMAM,gBAAe,WAAI,EAOnBD,WAAU,SAACjkF,GACT,IACImkF,GADK,gBAAEnkF,EAAEqb,QAAQ7N,KAAK,SACZ/U,IAAI,aACb0rF,IAGLrvF,KAAKsvF,QAAU,KACftvF,KAAKuvF,oBAAoBrkF,EAAEqb,OAAQvmB,KAAKwvF,QAAQC,iBAChDzvF,KAAK0vF,OAAO9tC,UAAYytC,EACxBrvF,KAAK0vF,OAAOC,UAAY3vF,KAAK2vF,UAAU5jF,KAAK/L,MAC5CA,KAAK4vF,sBACL5vF,KAAKkvF,SAAS/jF,IAAI,YAAanL,KAAKmvF,aACpC,IAAA1nF,IAAGzH,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,UAC9C,EAOAC,oBAAmB,SAAC5qF,GAClB,IAAIkqF,EAAOlqF,EAAMxB,IAAI,aACrB,GAAK0rF,EAAL,CAEArvF,KAAKsvF,QAAU,KAEf,IAAIl7E,EAAKjP,EAAMm9B,KAAKluB,GACpBpU,KAAKuvF,oBAAoBn7E,EAAIpU,KAAKwvF,QAAQC,iBAC1CzvF,KAAK0vF,OAAO9tC,UAAYytC,EACxBrvF,KAAK0vF,OAAOC,UAAY3vF,KAAKgwF,mBAAmBjkF,KAAK/L,MAUrDA,KAAK4vF,uBACL,IAAAnoF,IAAGzH,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,SAlB3B,CAmBnB,EAOAG,qBAAoB,SAACzsF,GAGnBxD,KAAKsvF,QAAU,KACf,IAAMY,EAAY1sF,EAAOA,EAAO7C,OAAS,GACnCwvF,GAASnwF,KAAKkjF,GAAGv/E,IAAI,iBAAmB,CAAC,GAAGwB,MAC5CiP,EAAK87E,EAAUvK,MAAMwK,GACrB99D,EAAMje,EAAG8b,cACflwB,KAAKuvF,oBAAoBn7E,EAAIie,EAAK,CAAEqxD,QAAS1jF,KAAK0jF,UAClD1jF,KAAK0vF,OAAO9tC,UAAYsuC,EAAUvsF,IAAI,aACtC3D,KAAK0vF,OAAOU,OAAS5sF,EACrBxD,KAAK0vF,OAAOW,UAAYrwF,KAAK2jF,OAC7B3jF,KAAK0vF,OAAOC,UAAY3vF,KAAKgwF,mBAAmBjkF,KAAK/L,MACrDA,KAAK4vF,uBACL,IAAAnoF,IAAGzH,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,SAC9C,EAEAE,mBAAkB,YAChB,IAAA7kF,KAAInL,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,SAC/C,EAMAH,UAAS,WACP3vF,KAAKijF,UACL,IAAA93E,KAAInL,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,SAC/C,EAQAQ,SAAQ,SAACplF,EAAQkJ,GAAU,EAQ3B07E,SAAQ,SAAC5kF,EAAQuzC,IAEJ,KADDvzC,EAAEnJ,OAASmJ,EAAEgrD,UACNzX,KACfz+C,KAAK0vF,OAAOhxB,OAAQ,EACpB1+D,KAAK0vF,OAAOa,UAGhB,EAOAxB,WAAU,WAER,OADK/uF,KAAKwwF,SAAQxwF,KAAKwwF,QAAS,gBAAExwF,KAAKywF,aAChCzwF,KAAKwwF,MACd,EAOAxB,iBAAgB,WAEd,OADKhvF,KAAK0wF,MAAK1wF,KAAK0wF,KAAM,gBAAE1wF,KAAKyiF,OAAOkO,mBACjC3wF,KAAK0wF,GACd,EAEA/yE,KAAI,W,IAAC,sDAEH,wBAA2B3d,KAAMU,GACjCV,KAAK+uF,aAAa1C,YAAYrsF,KAAKqkF,YACnCrkF,KAAKgvF,mBAAmB3C,YAAYrsF,KAAKokF,YACzC,IAAI6K,EAAKjvF,KAAKkvF,SACdD,EAAG3uD,IAAI,SAAU,IAAIzzB,SAASw/E,YAAYrsF,KAAK8uF,WACjD,G,gFCpKF,SACE3xE,KAAI,SAAC4B,GAAL,WACQ,EAAgC/e,KAA9BuiF,EAAM,SAAEtkE,EAAK,QAAEhG,EAAM,SAAE24E,EAAE,KACzBC,EAAW54E,EAAM,OACzB,IAAI,IAAA5V,YAAWwuF,EAAO1zE,MACpB,OAAO0zE,EAAO1zE,KAAKyzE,EAAGE,gBAENvO,EAAM,MAClBplE,KAAK,CAAEc,MAAK,EAAEc,QAAO,IAAIgyE,WAAU,WAAM,OAAAxO,EAAOO,YAAY,EAAKx4E,GAAxB,GACjD,EAEA8S,MAAK,WACK,IAAAyzE,EAAW7wF,KAAKiY,OAAM,OAC9B,IAAI,IAAA5V,YAAWwuF,EAAOzzE,OACpB,OAAOyzE,EAAOzzE,MAAMpd,KAAK4wF,GAAGE,gBAEtB,IAAAlE,EAAU5sF,KAAKuiF,OAAM,MAC7BqK,GAASA,EAAMxvE,OACjB,EAEA8kE,IAAG,SAACK,EAAQ0C,EAAQp7E,QAAA,IAAAA,IAAAA,EAAA,IAClB,IAAM+mF,EAAKrO,EAAOyO,aACZ/4E,EAAS24E,EAAGhK,YACV,EAA+B/8E,EAAI,MAAnC6hB,OAAK,IAAG,KAAE,EAAEulE,EAAmBpnF,EAAI,OAAfqM,EAAWrM,EAAI,OAgB3C,GAfA7J,KAAKie,MAAQpU,EAAKqnF,YAAc3O,EAAOjvB,EAAE,4BAA8B,GACvEtzD,KAAKuiF,OAASA,EACdviF,KAAKiY,OAASA,EACdjY,KAAK4wF,GAAKA,EAEVA,EAAGO,UAAUtnF,EAAK0c,QAClBqqE,EAAGQ,QAAQvnF,EAAKunF,SAChBR,EAAGS,WAAWxnF,EAAKwnF,YACnBT,EAAGN,SAASzmF,EAAKymF,UACjBM,EAAGU,YAAY,CACbp7E,OAAM,EACNwV,MAAK,EACL7oB,QAASgH,IAGPoO,EAAO44E,OACT7wF,KAAKuxF,SAAWvxF,KAAKuxF,WAAY,QAAS,OAC1CvxF,KAAKuxF,SAAS38E,UAAY,UAAGqD,EAAOisE,YAAW,cAC/C0M,EAAGU,YAAY,CAAE7wC,UAAWzgD,KAAKuxF,WACjCX,EAAGY,kBACE,CACL,IAAKxxF,KAAKuxF,UAAY7lE,EAAO,CAC3B,IAAI+lE,EAAkBb,EAAGjF,SAAS11E,QAAO,SAACpW,GAAa,OAAAA,CAAA,IAEnD6rB,GAASA,EAAM/qB,SACjB8wF,EAASA,EAAOx7E,QAAO,SAAArW,GAAK,OAAkC,IAAlC8rB,EAAM7mB,QAAQjF,EAAE+D,IAAI,QAApB,KAG9BitF,EAAG/8E,OAAO49E,GACVzxF,KAAKuxF,SAAWX,EAAG/B,c,CAGrB,GAAIoC,EAAQ,CACV,IAAMS,EAAW1xF,KAAKuxF,SAASrxD,cAAc,gBAASjoB,EAAOisE,YAAW,eACxEwN,GAAYA,EAAS3sE,aAAa,SAAUksE,E,EAKhD,OADAjxF,KAAKmd,KAAKnd,KAAKuxF,UACRvxF,IACT,EAEA2d,KAAI,SAAC4kE,GACHviF,KAAKuiF,OAASA,EACdviF,KAAKod,MAAMpd,KAAKuxF,SAClB,E,gFCtEF,SACEp0E,KAAI,WACI,MAAoCnd,KAAlCygD,EAAS,YAAE8hC,EAAM,SAAEoP,EAAE,KAAE15E,EAAM,SAC7B44E,EAAqB54E,EAAM,OAAnB25E,EAAa35E,EAAM,SAEnC,IAAI,IAAA5V,YAAWwuF,EAAO1zE,MACpB,OAAO0zE,EAAO1zE,KAAKw0E,EAAGb,gBAGxB,GAAI9wF,KAAK6xF,cAAgBD,EAAU,CACjC,IAAMtnF,EAAK,kBACLwnF,EAAKvP,EAAOwP,QACHD,EAAGE,SAAS1nF,IAAOwnF,EAAGG,SAAS,CAAE3nF,GAAE,KAC3C7E,IAAI,gBAAiBg7C,GAAW38C,QAAQ,wBAC1C+sF,GAAQpwC,EAAUh8B,YAAYktE,EAAG99E,S,CAGpC4sC,IAAWA,EAAU9jC,MAAMC,QAAU,QAC3C,EAEAQ,MAAK,WACG,IAAEqjC,EAAsBzgD,KAAb,UACT6wF,EADsB7wF,KAAL,OACA,OAEzB,IAAI,IAAAqC,YAAWwuF,EAAOzzE,OACpB,OAAOyzE,EAAOzzE,MAAMpd,KAAK2xF,GAAGb,gBAG1BrwC,IAAWA,EAAU9jC,MAAMC,QAAU,OAC3C,EAEAslE,IAAG,SAACK,GACF,IAAMoP,EAAKpP,EAAO2P,OAClBlyF,KAAKiY,OAAS05E,EAAG/K,YACjB5mF,KAAK6xF,aAAe7xF,KAAKygD,UACzBzgD,KAAKygD,UAAYzgD,KAAKygD,YAAa,QAAS,OAC5CzgD,KAAKuiF,OAASA,EACdviF,KAAK2xF,GAAKA,EACF,IAAAlxC,EAAczgD,KAAI,UAC1B2xF,EAAGL,YAAY,CACb7wC,UAAS,IAGPzgD,KAAKiY,OAAO44E,QACdc,EAAGH,cAGLxxF,KAAKmd,MACP,EAEAQ,KAAI,WACF3d,KAAKod,OACP,E,2DCtDF,SACE8kE,IAAG,SAACK,GACF,IAAM4P,EAAK5P,EAAO6P,aACZN,EAAKvP,EAAOwP,OACZM,EAAWF,EAAGvL,YAEpB,IAAIyL,EAAST,SAAb,CAEA,IAAK5xF,KAAKsyF,OAAQ,CAChB,IAAMhoF,EAAK,kBACLgoF,EAAS59E,SAASC,cAAc,OAEhC49E,EAAST,EAAGE,SAAS1nF,IAAOwnF,EAAGG,SAAS,CAAE3nF,GAAE,IAE9C+nF,EAASxB,OACXsB,EAAGX,YAAY,CAAE/wC,UAAW6xC,IAE5BA,EAAO7tE,YAAY0tE,EAAGt+E,UAGxB0+E,EAAO9sF,IAAI,gBAAiB6sF,GAAQxuF,QAAQ,wBAC5C9D,KAAKsyF,OAASA,C,CAGhBtyF,KAAKsyF,OAAO31E,MAAMC,QAAU,OAlBC,CAmB/B,EAEAe,KAAI,WACM,IAAA20E,EAAWtyF,KAAI,OACvBsyF,IAAWA,EAAO31E,MAAMC,QAAU,OACpC,E,wEC7BF,SACEslE,IAAG,SAACK,EAAQ0C,GAGV,GAFAjlF,KAAKilF,OAASA,GAETjlF,KAAKwyF,KAAM,CACd,IAAMv6E,EAASsqE,EAAOqE,YACdmL,EAAyDxP,EAAM,OAAvDkQ,EAAiDlQ,EAAM,cAAxCmQ,EAAkCnQ,EAAM,gBAAvBoQ,EAAiBpQ,EAAM,aACjEqQ,EAAW,uBACXJ,GAAO,gBAAE,eACTK,GAAY,gBAAE,eACdC,GAAU,gBAAE,eACZC,GAAS,gBAAE,eAQjB,GAPA/yF,KAAKwyF,KAAOA,EACZxyF,KAAK6yF,UAAYA,EACjBA,EAAUG,OAAOF,GACjBD,EAAUG,OAAOD,GACjBP,EAAKQ,OAAOH,GAGRJ,GAAiBx6E,EAAOg7E,YAAa,CACvC,IAAMC,EAAcnB,EAAOE,SAAS,CAAE3nF,GAAI,cACpC6oF,EAAOV,EAAc5+E,SAC3Bq/E,EAAYztF,IAAI,gBAAiB0tF,GAAMrvF,QAAQ8uF,E,CAIjD,IAAMQ,EAAYV,EAAgB9L,YAC9BwM,EAAUvC,OACZ6B,EAAgBlB,YAAY,CAAE/wC,UAAWqyC,EAAQnvF,IAAI,KAC3CyvF,EAAUxB,UACpBkB,EAAQE,OAAON,EAAgB7+E,OAAO,KAIxC7T,KAAKqzF,GAAKV,EACV,IAAMW,EAAWX,EAAa/L,YACxB3C,EAAMqP,EAASpP,YACrBlkF,KAAKuzF,SAAU,gBAAE,uBAAetP,EAAG,oBAAW1B,EAAOjvB,EAAE,sBAAqB,WAC5Ek/B,EAAKQ,OAAOhzF,KAAKuzF,SAEbD,EAASzC,OACX8B,EAAanB,YAAY,CAAE/wC,UAAWsyC,EAAOpvF,IAAI,KACvC2vF,EAAS1B,UACnBmB,EAAOC,OAAOL,EAAa9+E,UAI7B,IAAM2/E,EAAQ,mBACFzB,EAAOC,SAASwB,IAAUzB,EAAOE,SAAS,CAAE3nF,GAAIkpF,KAGxD/tF,IAAI,gBAAiB+sF,GAAM1uF,QAAQ8uF,GAGvC,IAAM1P,EAAKX,EAAOwD,WAClB/lF,KAAKwK,SAAS04E,EAAIyP,EAAajpF,OAAO6c,OAAQvmB,KAAKyzF,S,CAGrDzzF,KAAKyzF,UACP,EAMAA,SAAQ,WACA,MAAqCzzF,KAAnCilF,EAAM,SAAEoO,EAAE,KAAER,EAAS,YAAEU,EAAO,UACjCtO,GAAUA,EAAOthF,MAAQshF,EAAOthF,IAAI,YAAe0vF,IAEpDA,EAAGrK,eACL6J,SAAAA,EAAWa,OACXH,SAAAA,EAASI,SAETd,SAAAA,EAAWc,OACXJ,SAAAA,EAASG,QAEb,EAEA/1E,KAAI,W,QACY,QAAd,EAAA3d,KAAK6yF,iBAAS,SAAEc,OACJ,QAAZ,EAAA3zF,KAAKuzF,eAAO,SAAEI,MAChB,E,wECjFF,SACEzR,IAAG,SAACK,EAAQ0C,GACVjlF,KAAKilF,OAASA,EACd,IAMI2O,EANE1Q,EAAKX,EAAOwD,WAGZ9B,EADS1B,EAAOsR,OACH3P,YACb4P,EAAKvR,EAAOwR,aACZC,EAASF,EAAGlN,YAGlB,IAAIoN,EAAOpC,SAAX,CAEA,IAAK5xF,KAAKi0F,IAAK,CACbj0F,KAAKi0F,KAAM,gBAAE,eACbj0F,KAAKk0F,MAAO,gBAAE,eACdl0F,KAAKi0F,IAAIjB,OAAOhzF,KAAKk0F,MACrBl0F,KAAKuzF,SAAU,gBAAE,SAASP,OAAO,uBAAegB,EAAO9P,YAAW,oBAAWhB,EAAG5vB,EAAE,sBAAqB,WACvGtzD,KAAKi0F,IAAIjB,OAAOhzF,KAAKuzF,SAEjBS,EAAOnD,OACTiD,EAAGtC,YAAY,CAAE/wC,UAAWzgD,KAAKk0F,KAAKvwF,IAAI,MAE1C3D,KAAKk0F,KAAKlB,OAAO,uBAAe/O,EAAG,0BAAiBf,EAAG5vB,EAAE,sBAAqB,WAC9EtzD,KAAKk0F,KAAKlB,OAAOc,EAAGjgF,WAGtB,IAAI0+E,EAAShQ,EAAOwP,OASpB6B,OAHEA,EAJGrB,EAAOP,SAAS,mBAIVO,EAAOP,SAAS,mBAFhBO,EAAON,SAAS,CAAE3nF,GAAI,sBAKjCspF,EAAQnuF,IAAI,gBAAiBzF,KAAKi0F,IAAItwF,IAAI,IAAIG,QAAQ,wBAEtD9D,KAAKumB,OAASg8D,EAAOwD,WACrB/lF,KAAKwK,SAASxK,KAAKumB,OAAQ,oBAAqBvmB,KAAKm0F,S,CAGvDn0F,KAAKm0F,UA/BsB,CAgC7B,EAMAA,SAAQ,WACN,IAAMlP,EAASjlF,KAAKilF,OAChBA,GAAUA,EAAOthF,MAAQshF,EAAOthF,IAAI,YAEI,IAAxC3D,KAAKumB,OAAOg/D,iBAAiB5kF,QAC/BX,KAAKk0F,KAAKR,OACV1zF,KAAKuzF,QAAQI,SAEb3zF,KAAKk0F,KAAKP,OACV3zF,KAAKuzF,QAAQG,QAEjB,EAEA/1E,KAAI,WACF3d,KAAKk0F,MAAQl0F,KAAKk0F,KAAKP,OACvB3zF,KAAKuzF,SAAWvzF,KAAKuzF,QAAQI,MAC/B,E,sEChEF,SACEzR,IAAG,SAACC,EAAI/5E,EAAGyB,QAAA,IAAAA,IAAAA,EAAA,IACT,IACMuqF,EADKjS,EAAG4D,WACcpiF,IAAI,aAC1B0wF,EAAelS,EAAG6G,cAEpBoL,GAAOC,IACTlS,EAAGoD,iBAAiB9vE,SAAQ,SAAAu+C,GAClB,IAAA/uD,EAAe+uD,EAAQ,WAC/B,GAAK/uD,EAAL,CAEA,IAAIuL,EAEE8jF,EAAU,CAAE7wF,GADPuwD,EAASlzD,QAAU,EACRyB,OAAQsH,EAAKtH,QAAU,mBAE7C,IAAI,IAAAmC,UAAS0vF,EAAKpgC,IAAaA,EAASrwD,IAAI,YAE1C6M,EAAQvL,EAAWX,IAAI0vD,EAASzwD,QAAS+wF,OACpC,CACL,IACMC,EADWH,EAAIn+E,QAAO,SAAAu+E,GAAO,OAAAA,EAAI7wF,IAAI,WAAR,IACRsS,QAAO,SAAAu+E,GAAO,OAAArS,EAAGsS,WAAWC,QAAQ1gC,EAASz1C,SAAWi2E,GAAKtnF,MAA/C,IACzCsD,EAAQvL,EAAWX,IAEjBiwF,EAAUzvF,KAAI,SAAA0vF,GAAO,OAAAA,EAAIjxF,OAAJ,IACrB+wF,E,EAIJ9jF,GAAQ,IAAAtP,SAAQsP,GAASA,EAAQ,CAACA,IAC5BiF,SAAQ,SAAAnR,GAAO,OAAA69E,EAAGr+E,QAAQ,kBAAmBQ,EAA9B,GApBE,CAqBzB,IAEA+vF,EAAaM,aAEjB,E,ySClCIC,EAAa,yBAEnB,SACEC,UAAS,SAACtS,GAKR,OAJKviF,KAAKuyF,SACRvyF,KAAKuyF,OAAShQ,EAAOwP,OAAO8C,aAGvB70F,KAAKuyF,MACd,EAEAuC,YAAW,SAACjrF,GACVA,EAAKm7E,MAAQ,CACf,EAEA+P,WAAU,SAACttF,GACD,IAAAy7E,EAAOljF,KAAI,GACbg1F,EAAQvtF,EAAK,KAAO,MAC1B,GAAIy7E,EAAI,CACN,IAAMT,EAASS,EAAGsB,OACZ1nE,EAAO2lE,EAAOmC,UACdqQ,EAAMxS,EAAOyS,eACnBD,IAAQA,EAAIt4E,MAAMC,QAAUnV,EAAK,OAAS,IAC1C,IAAM0tF,EAAMr4E,EAAKs4E,iBAAiB,WAAIp1F,KAAKujF,KAAI,gBAC/C,IAAAh+E,MAAK4vF,GAAK,SAAA1O,GAAQ,OAAEA,EAAqB9pE,MAAMqmC,cAAgBv7C,EAAK,MAAQ,EAA1D,IAClBy7E,EAAG8R,GAAO,sBAAuBh1F,KAAK80F,Y,CAE1C,EAEA5S,IAAG,SAACK,EAAQ0C,GAAZ,WACEjlF,KAAKilF,OAASA,EACdjlF,KAAKg0D,SAAW,EAAH,GAAOuuB,EAAOgD,kBAAgB,GAC3ChD,EAAOrsE,SAEFlW,KAAKq1F,wBACRr1F,KAAKq1F,sBAAwB9S,EAAO4C,SAASmQ,SAASV,IAGxD50F,KAAKq1F,uBAAyB9S,EAAOO,YAAY8R,GACjDrS,EAAOwD,WAAWwP,cAElB,IAAMhD,EAASvyF,KAAK60F,UAAUtS,GACxBE,EAASF,EAAOiC,OAAOE,aACvB8Q,EAAWjT,EAAOoD,QAClB1B,EAAM1B,EAAOsR,OAAO3P,YAE1B,IAAKlkF,KAAKspB,OAAQ,CAChB,IAAMA,EAAS5U,SAASC,cAAc,QACtC2U,EAAO1U,UAAY,UAAGqvE,EAAG,2BACzBuR,EAAS/wE,YAAY6E,GACrBA,EAAOmsE,QAAU,WAAM,SAAK3S,aAAL,EACvB9iF,KAAKspB,OAASA,C,CAGhBtpB,KAAKspB,OAAO3M,MAAMC,QAAU,eAE5B21E,EAAO98E,SAAQ,SAACigF,GAAe,OAAAA,EAAMjwF,IAAI,WAAW,EAArB,IAE/B,IAAMkwF,EAAUlT,EAAO9lE,MACvBg5E,EAAQxvD,MAAQ,OAChBwvD,EAAQ7iE,OAAS,OACjB6iE,EAAQ7sD,IAAM,IACd6sD,EAAQjmE,KAAO,IACfimE,EAAQhjD,QAAU,IAClBgjD,EAAQh/C,OAAS,IACjB4rC,EAAOjhB,UACPthE,KAAK+0F,WAAW,EAClB,EAEAp3E,KAAI,SAAC4kE,GACG,IAAE,EAA0BviF,KAA1BilF,OAAAA,OAAM,IAAG,GAAC,EAAC,EAAEjxB,EAAah0D,KAAL,SAC7BilF,EAAOx/E,KAAOw/E,EAAOx/E,IAAI,SAAU,GACnC,IAAM8sF,EAASvyF,KAAK60F,UAAUtS,GAE1BviF,KAAKq1F,wBACP9S,EAAOqT,WAAWhB,GAClB50F,KAAKq1F,uBAAwB,GAG/B9S,EAAOwD,WAAW8P,aAClBtD,EAAO98E,SAAQ,SAACigF,GAAe,OAAAA,EAAMjwF,IAAI,WAAW,EAArB,IAEhB88E,EAAOiC,OAAOE,aACtB3/D,aAAa,QAAS,IAC7BivC,GAAYuuB,EAAOrsE,OAAO89C,UACnBh0D,KAAKg0D,SAERh0D,KAAKspB,SACPtpB,KAAKspB,OAAO3M,MAAMC,QAAU,QAG9B2lE,EAAOjhB,UACPthE,KAAK+0F,YACP,E,0SC9FF,SACE7S,IAAG,SAACK,EAAQ0C,EAAQp7E,GAClB,IAAMyjD,EAAMzjD,GAAQ,CAAC,EACf44E,EAASF,EAAOiC,OAChBsR,EAAarT,EAAOC,gBACpB7/E,EAAU,EAAH,CACX+uF,SAAUnP,EAAOsT,eACjBC,OAAQzT,EAAOqE,YAAY1C,YAC3B+R,WAAYH,EAAWlO,cAAc77E,KAAK+pF,GAC1CI,gBAAiBzT,EAAO0T,qBACpB7oC,EAAIzqD,SAAW,CAAC,GAEhBuzF,EAAkBp2F,KAAI,cAW5B,OARKo2F,IAAiB9oC,EAAI+oC,WACxBr2F,KAAKo2F,cAAgB,IAAI7T,EAAO+T,MAAMC,QAAQ1zF,GAC9CuzF,EAAgBp2F,KAAKo2F,eAGvBA,EAAcrmF,WAAWlN,GAAS,GAClCuzF,EAAcr0B,OACdq0B,EAAcphD,MAAMsY,EAAIl5C,IACjBgiF,CACT,EAEAz4E,KAAI,W,MACgB,QAAlB,EAAA3d,KAAKo2F,qBAAa,SAAEr0B,MACtB,E,kkBCZF,yB,8CAOA,QAP2C,OACzC,YAAAj7D,SAAA,WACE,MAAO,CACL0vF,QAAS,GACTxvF,WAAY,CAAC,EAEjB,EACF,EAPA,CAA2C,M,0fChB3C,2B,8CAAgE,QAA3B,OAA2B,EAAhE,CAAqC,M,UAErCyvF,EAAQp2F,UAAU8E,MAAQ,E,svBCE1B,YAgBE,WAAY2jB,GAAZ,MACE,YAAMA,IAAM,K,OACZ,EAAKo6D,GAAKp6D,EAAM7Q,OAAOirE,G,CACzB,CAyDF,OA5E+C,OAG7C,YAAAx5E,OAAA,WACE,OACE1J,KAAKmF,MAAMxB,IAAI,WAAa,CAC1B+yF,UAAW,cAGjB,EAGA,YAAA1vF,WAAA,WACE,OAAOhH,KAAKmF,MAAMxB,IAAI,aACxB,EAOA,YAAAgzF,YAAA,SAAYhkF,GACVA,EAAM4a,iBACN5a,EAAM0b,kBAgBE,IAAA60D,EAAOljF,KAAI,GACb,EAAgBkjF,EAAGsB,OAAOoS,aAAapnE,wBAArCE,EAAI,OAAEoZ,EAAG,MACXt8B,EAAK,EAAH,KACHmG,GAAK,CACRo9B,QAASp9B,EAAMo9B,QAAUrgB,EACzBsgB,QAASr9B,EAAMq9B,QAAUlH,IAG3Bo6C,EAAGp/E,QAAQ,qBAAsB,CAAE6O,MAAOnG,IAC1CxM,KAAKg7D,YAAYxuD,EACnB,EAEA,YAAAwuD,YAAA,SAAYroD,GACJ,IAAEuwE,EAAcljF,KAAZ,GACJ6J,EAAO,CAAE8I,MAAK,GACd6jF,EAFgBx2F,KAAL,MAEK2D,IAAI,WACpB4+E,EAASW,EAAG2T,QAEd,IAAAx0F,YAAWm0F,IACbA,EAAQjU,EAAQ,KAAM14E,IAGpB,IAAAqH,UAASslF,IACXjU,EAAOqT,WAAWY,EAAS3sF,EAE/B,EAEA,YAAAgK,OAAA,WACQ,MAAqB7T,KAAnBkjF,EAAE,KAAEvvE,EAAG,MAAExO,EAAK,QAChBmF,EAAKnF,EAAMxB,IAAI,MACf+oE,EAAQvnE,EAAMxB,IAAI,SAClBsgF,EAAMf,EAAG0D,YAAY1C,YAI3B,OAHAvwE,EAAI2R,SAAS,UAAG2+D,EAAG,iBACnB35E,GAAMqJ,EAAI2R,SAAS,UAAG2+D,EAAG,yBAAiB35E,IAC1CoiE,GAAS/4D,EAAIq/E,OAAOtmB,GACb1sE,IACT,EACF,EA5EA,CAA+C,M,0fCH/C,cAGE,WAAY6J,GAAZ,MACE,YAAMA,IAAK,KACHq5E,EAAOr5E,EAAI,G,OACnB,EAAKq5E,GAAKA,EACV,EAAKjrE,OAAS,CAAEirE,GAAE,GAClB,EAAK14E,SAAS,EAAKvF,WAAY,QAAS,EAAK4O,Q,CAC/C,CAMF,OAfyC,OAWvC,YAAAijF,SAAA,WACE,IAAM7S,EAAMjkF,KAAKkjF,GAAGjrE,OAAOisE,YAC3BlkF,KAAKoU,GAAGQ,UAAY,UAAGqvE,EAAG,gBAC5B,EACF,EAfA,CAAyC8S,EAAA,G,UAkBzCC,EAAY32F,UAAU42F,SAAW,E,ICb7BC,E,6PAqBJ,SACEl1C,KAAI,SAAC7rB,IACH,IAAAmsD,SAAQtiF,KAAM,UAAW,QAAS,UAAW,gBAAiB,iBAAkB,oBAClF,EAEAijF,OAAM,WACJjjF,KAAKm3F,SAAWn3F,KAAKo3F,UAAYp3F,KAAKq3F,UAAY,KAClDr3F,KAAKs3F,uBACLJ,GAAc,CAChB,EAMAI,qBAAoB,WAClBt3F,KAAKu3F,sBAAsB,GAC3Bv3F,KAAKkjF,GAAG8F,eAAiBhpF,KAAKswF,UAChC,EAMAV,oBAAmB,WACjB5vF,KAAKu3F,uBACP,EAMAA,sBAAqB,SAACtU,GAAtB,WACUC,EAAOljF,KAAI,GACbw3F,EAAatU,EAAG0D,YAAY4Q,WAC1BvyE,EAAei+D,EAAG2L,eAAe,WACnC5/E,EAASg0E,EAAS,KAAO,MACzB7tE,EAAU,CAAE3N,GAAE,KAAE0D,IAAG,QACxBqsF,EAAW72F,QAAUskB,GAAcuyE,EAAW7yF,KAAKsgB,GAQpD7P,EAAQnG,GAAQlP,OAAQ,SAAUC,KAAKy3F,gBACvCriF,EAAQnG,GAAQuoF,EAAY,SAAUx3F,KAAK03F,mBAC3CxU,EAAGj0E,GAAQ,+CAAgDjP,KAAKswF,SAAUtwF,MAC1EkjF,EAAGj0E,GAAQ,0BAA2BjP,KAAK23F,UAAW33F,MACtDkjF,EAAGj0E,GACD,oDACAjP,KAAK43F,gBACL53F,MAEFkjF,EAAGj0E,GAAQ,2BAA4BjP,KAAK63F,WAAY73F,MACxDkjF,EAAGj0E,GAAQ,sBAAuBjP,KAAK83F,eAAgB93F,MACvDkjF,EAAGj0E,GAAQ,gBAAiBjP,KAAKy3F,eAAgBz3F,MACjDkjF,EAAGj0E,GAAQ,qBAAsBjP,KAAKy3F,eAAgBz3F,MACtDkjF,EAAGsB,OAAOuT,YAAYtiF,SAAQ,SAAA06E,GACpB,IAAA7tD,EAAS6tD,EAAK,KAChB6H,EAAM11D,aAAI,EAAJA,EAAM21D,YAClBD,GAvBc,SAACA,EAAal7E,GAC5B1H,EAAQnG,GAAQ6N,EAAM,YAAa,EAAKo7E,SACxC9iF,EAAQnG,GAAQ6N,EAAM,aAAc,EAAKq7E,OACzC/iF,EAAQnG,GAAQ6N,EAAM,QAAS,EAAKs0E,SAEpCh8E,EAAQnG,GAAQ+oF,EAAK,SAAU,EAAKvT,eAAe,EACrD,CAiBS3gF,CAAQk0F,EAAK11D,aAAI,EAAJA,EAAMsiD,UAC5B,GACF,EAOAsT,QAAO,SAAChtF,GACNA,EAAEmjB,kBACM,IAAA60D,EAAOljF,KAAI,GACbo4F,EAAMltF,EAAEqb,OACR+b,GAAO,IAAA+1D,WAAUD,GACjBE,EAAYh2D,GAAQA,EAAKi2D,YACzB5kF,GAAM,gBAAEykF,GACVjzF,EAAQwO,EAAI+E,KAAK,SAGrB,IAAKvT,EAEH,IADA,IAAI,EAASwO,EAAI4K,UACTpZ,GAAS,EAAOxE,UAAW,QAAM,EAAO,KAC9CwE,EAAQ,EAAOuT,KAAK,SACpB,EAAS,EAAO6F,SAIpBve,KAAKw4F,WAAaJ,EAAIloE,cACtBgzD,EAAGuV,WAAWtzF,EAAO,CAAEuzF,UAAU,IACjCJ,GAAapV,EAAGz9E,IAAI,eAAgB6yF,EACtC,EAEAb,eAAc,WACZz3F,KAAK24F,iBACL34F,KAAK43F,iBACP,EAEAD,UAAS,SAACzU,EAASoC,GAAnB,I,EAAA,OACMp4E,EAAS,CAAC,EAEVo4E,EACa,QAAf,EAAAA,EAAUsT,aAAK,SAAEnjF,SAAQ,SAAA6sB,GACvB,IAAMluB,EAAKkuB,EAAKluB,GACVyN,EAAM,EAAK+lE,cAAcxzE,GAC/BlH,EAAS,CAAEkH,GAAE,EAAEyN,IAAG,EAAEyjE,UAAS,EAAEhjD,MAAM,IAAA+1D,WAAUjkF,IAC/C,EAAKykF,iBAAiB3rF,GAElBkH,EAAG8b,gBAAkB,EAAKsoE,aAAY,EAAKM,UAAY5rF,EAC7D,KAEAlN,KAAKw4F,WAAa,KAClBx4F,KAAK84F,UAAY,EACjB94F,KAAK64F,mBACL74F,KAAKyiF,OAAOsV,YAAYtiF,SAAQ,SAAA06E,GACtB,IAAA7tD,EAAS6tD,EAAK,KAChB/7E,EAAKkuB,GAAQA,EAAKwiD,aACxB1wE,GAAM,EAAK2kF,cAAc,EAAG,EAAG,CAAE3kF,GAAE,GACrC,IAEJ,EAQAk8E,UAAU,IAAAhJ,WAAS,WAET,IAAApE,EAAOljF,KAAI,GACbslF,EAAYpC,EAAG8F,cACfgQ,EAAe9V,EAAGv/E,IAAI,iBAAmB,CAAC,EAC1C2+B,EAAOgjD,GAAaA,EAAU2T,QAAQD,EAAa7zF,OACrDiP,EAAKkuB,GAAQA,EAAKluB,GAClBlH,EAAS,CAAC,EAEVkH,IAAM,QAAUA,KAGlBlH,EAAS,CAAEkH,GAAE,EAAEyN,IADH7hB,KAAK4nF,cAAcxzE,GACXkxE,UAAS,EAAEhjD,MAAM,IAAA+1D,WAAUjkF,KAIjDpU,KAAKk5F,WAAahsF,EAElBlN,KAAKm5F,oBAELn5F,KAAK24F,eAAezrF,GAEpBlN,KAAKo5F,WAAW9T,EAClB,GAAG,GAEHsS,gBAAe,WACb,IAAM/lD,EAAM7xC,KAAKq5F,gBACZxnD,EAAIz9B,KACTy9B,EAAIhwB,IAAM7hB,KAAK4nF,cAAc/1C,EAAIz9B,IACjCpU,KAAKm5F,oBACP,EAEAR,eAAc,SAACjgF,GACb,IAAMm5B,EAAM7xC,KAAKs5F,eACZznD,EAAIz9B,KACTy9B,EAAIhwB,IAAM7hB,KAAK4nF,cAAc/1C,EAAIz9B,IACjCpU,KAAK64F,iBAAiBngF,GACxB,EAEA4gF,aAAY,WACV,OAAOt5F,KAAK84F,WAAa,CAAC,CAC5B,EAEAO,cAAa,WACX,OAAOr5F,KAAKk5F,YAAc,CAAC,CAC7B,EAEAf,MAAK,WACHn4F,KAAKkjF,GAAGuV,WAAW,EACrB,EAEAM,cAAa,SAACtxF,EAAa66B,EAAWz4B,QAAA,IAAAA,IAAAA,EAAA,IACpC,IAAMuK,EAAKvK,EAAKuK,IAAMpU,KAAKyiF,OAAOqC,WAAWxiD,GAE7C,OADAluB,IAAOA,EAAGuI,MAAMC,QAAUnV,EAAK,GAAK,QAC7B2M,GAAM,CAAC,CAChB,EAOAmlF,kBAAiB,SAACnlF,EAAiByN,EAAUhY,QAAA,IAAAA,IAAAA,EAAA,IACtCqtF,GACLl3F,KAAKuiF,OAAOqT,WAAW,cAAe,CACpCxhF,GAAE,EACFolF,MAAO33E,EACPygB,KAAMz4B,EAAKy4B,KACXmc,MAAO,EACP3V,IAAK,EACLpZ,KAAM,GAEV,EAOA+pE,kBAAiB,SAACn3D,GAChBtiC,KAAKuiF,OAAOO,YAAY,cAAe,CACrCxgD,KAAI,GAER,EAOAo3D,uBAAsB,SAACtlF,EAAiByN,GACtC7hB,KAAKuiF,OAAOqT,WAAW,cAAe,CACpCxhF,GAAE,EACFolF,MAAO33E,EACP5C,MAAO,SAEX,EAOA06E,uBAAsB,WAChB35F,KAAKuiF,QAAQviF,KAAKuiF,OAAOO,YAAY,cAAe,CAAE7jE,MAAO,SACnE,EAKA26E,gBAAe,SAACt3D,GACdtiC,KAAKyiF,OAAOkO,eAAeruD,GAAM3lB,MAAMk9E,QAAU,CACnD,EAOAzI,QAAO,SAAC5kF,GACNA,EAAG6hB,kBACH7hB,EAAG+gB,iBACK,IAAA21D,EAAOljF,KAAI,GACnB,GAAIkjF,EAAGv/E,IAAI,YAAa,OAAOu/E,EAAGz9E,IAAI,YACtC,IAAMkO,GAAM,gBAAEnH,EAAG+Z,QACbphB,EAAQwO,EAAI+E,KAAK,SAErB,IAAKvT,EAEH,IADA,IAAI,EAASwO,EAAI4K,UACTpZ,GAAS,EAAOxE,UAAW,QAAM,EAAO,KAC9CwE,EAAQ,EAAOuT,KAAK,SACpB,EAAS,EAAO6F,SAIpB,GAAIpZ,EAAO,CAET,GAAI+9E,EAAG4W,cAAgB30F,EAAMxB,IAAI,aAAewB,EAAM40F,UAAU,QAC9D,OAEF/5F,KAAKkW,OAAO/Q,EAAOqH,E,CAEvB,EAOA0J,OAAM,SAAC/Q,EAAkBwN,QAAA,IAAAA,IAAAA,EAAA,IAClBxN,IACLnF,KAAKuiF,OAAOrsE,OAAO/Q,EAAO,CAAEwN,MAAK,EAAE+lF,UAAU,IAC7C14F,KAAKo5F,WAAWj0F,GAClB,EAQA60F,YAAW,SAAC5lF,EAAiByN,EAAUhY,QAAA,IAAAA,IAAAA,EAAA,IAC7B,IAAA44E,EAAWziF,KAAI,OACjBmF,GAAQ,gBAAEiP,GAAIsE,KAAK,SACzB,GAAKvT,GAAUA,EAAMxB,IAAI,YAAzB,CACA,IAAM2oF,EAAQtsF,KAAKywF,SAAS5mF,GAE5B,IAAKA,EAAKowF,QAAS,CACjB,IAAMhiF,EAASjY,KAAKyiF,OAAOmE,YACrBsT,EAAO/0F,EAAMg1F,UACb5W,EAAOtrE,EAAOksE,cAAgB,GAC9BiW,EAAW,UAAG7W,EAAI,SAClB8W,EAAepiF,EAAOqiF,iBACtBC,EAAa,UAAGL,EAAO,uBAAeE,EAAQ,oBAAWF,EAAI,UAAW,GAAE,kCAChEE,EAAQ,oBAAWj1F,EAAMunF,UAAS,UAClDJ,EAAMtF,UAAYqT,EAAeA,EAAal1F,GAASo1F,C,CAGzD,IAAMxS,EAAK,KACLyS,EAASlO,EAAM3vE,MACrB69E,EAAO59E,QAAU,QAEjB,IAIMksB,EAJe25C,EAAOgY,wBAAwBrmF,EAAIk4E,EAAO,CAC7DzqE,IAAKA,IAGkBinB,IACnBpZ,EAAO7lB,EAAK6wF,QAAU,GAAK7wF,EAAK6wF,QAAU,EAEhDF,EAAO1xD,IAAMA,EAAMi/C,EACnByS,EAAO9qE,KAAOA,EAAOq4D,CA1BuB,CA2B9C,EAQA4S,gBAAe,SAACr4D,GACdtiC,KAAKyiF,OAAOkO,eAAeruD,GAAM3lB,MAAMk9E,QAAU,EACnD,EAOAT,WAAU,SAACwB,GACH,IAQFC,EARI3X,EAAeljF,KAAb,GAAEyiF,EAAWziF,KAAL,OACZuiF,EAASW,aAAE,EAAFA,EAAI2T,OAEb5S,GADSf,aAAE,EAAFA,EAAIjrE,QACAisE,aAAe,GAC5B4W,EAAc,UAAG7W,EAAG,YACpB9+E,IAAS,IAAAypF,WAAUgM,KAAS,IAAAG,gBAAeH,GAAQA,EAAO1X,EAAG8F,cAC7DgS,EAAY71F,GAASA,EAAMxB,IAAI,aACjCd,EAAU,CAAC,EAGXo4F,EAAkB,SAAChsF,EAAgB/D,EAAQrB,GAC7C,IAAMqxF,EAAOrxF,EAAKqxF,KAClBA,GACEA,EAAKzlF,SAAQ,SAAC4c,GACZ,IAAMvV,EAAOuV,EAAIvV,KACXoH,EAAMpH,EAAKlI,WAAa,GAC9BkI,EAAKlI,WAAuB,OAAV3F,EAAkB,UAAGiV,EAAG,YAAI42E,GAAgB52E,EAAIzU,QAAQqrF,EAAa,KAAKxS,MAC9F,GACJ,EAEA,GAAI/F,GAAUyY,EAAW,CACvB,IAAM5mF,GAAK,IAAAw6E,WAAUgM,GAAQA,EAAOz1F,EAAMwgF,QAC1C9iF,EAAU,CAER6gF,QAAO,SAACx4E,EAAUrB,QAAA,IAAAA,IAAAA,EAAA,IACR,IAAAuK,EAAwBvK,EAAI,GAAxBoO,EAAoBpO,EAAI,OAAhBsxF,EAAYtxF,EAAI,QAC5BuxF,EAAoEnjF,EAAM,UAA/DojF,EAAyDpjF,EAAM,SAArDqjF,EAA+CrjF,EAAM,YAAxCsjF,EAAkCtjF,EAAM,eAAxBujF,EAAkBvjF,EAAM,cAClFgjF,EAAgB,MAAO/vF,EAAGrB,GAC1BgxF,EAAe3X,EAAG4F,OAAO2S,gBAAgBt2F,GACzCs9E,EAAOiZ,oBAAmB,GAC1B,IAAMC,EAAgBn0D,iBAAiBpzB,GACjCwnF,EAAaf,EAAapS,WAE5BoT,EAAeD,EAAWP,GAC9BpjF,EAAO6jF,UAAYN,GAAkC,SAAjBK,EAChCj0D,MAAM2gD,WAAWsT,MACnBA,EAAeF,EAAcN,IAG/B,IAAIU,EAAgBH,EAAWR,GAC/BnjF,EAAO+jF,WAAaT,GAAoC,SAAlBQ,EAClCn0D,MAAM2gD,WAAWwT,MACnBA,EAAgBJ,EAAcP,IAGhCD,EAAQc,SAASlmD,EAAIwyC,WAAWsT,GAChCV,EAAQc,SAAS/oE,EAAIq1D,WAAWwT,GAChC7E,GAAc,EAEVoE,IACFrjF,EAAOikF,YAAa,IAAAC,kBAAiBJ,GACrC9jF,EAAOmkF,WAAY,IAAAD,kBAAiBN,GAExC,EAGAQ,OAAM,WACJ9Z,EAAOz+E,QAAQ,mBACjB,EAEA8/E,MAAK,SAAC14E,EAAUrB,GACdoxF,EAAgB,SAAU/vF,EAAGrB,GAC7B04E,EAAOz+E,QAAQ,oBACf2+E,EAAOiZ,oBAAmB,GAC1BxE,GAAc,CAChB,EAEAoF,aAAY,SAACloF,EAASk0B,EAAWzlC,GAC/B,QAD+B,IAAAA,IAAAA,EAAA,IAC1Bg4F,EAAL,CAIQ,IAAA0B,EAAmC15F,EAAO,MAAnC25F,EAA4B35F,EAAO,gBAAlBoV,EAAWpV,EAAO,OAC1Cu4F,EAAsEnjF,EAAM,UAAjEojF,EAA2DpjF,EAAM,SAAvD+jF,EAAiD/jF,EAAM,WAA3C6jF,EAAqC7jF,EAAM,UAAhCmkF,EAA0BnkF,EAAM,UAArBikF,EAAejkF,EAAM,WAC9EwkF,EAAa,CAAC,KAAM,MAAM53F,QAAQ23F,IAAoB,EACtDE,EAAY,CAAC,KAAM,MAAM73F,QAAQ23F,IAAoB,EACrD7/E,EAAa,CAAC,EAEpB,IAAK8/E,EAAY,CACf,IAAME,EAAQla,EAAOmC,UAAUx1D,YACzB+W,EAAQmC,EAAKyN,EAAI4mD,EAAQr0D,EAAKyN,EAAI4mD,EACxChgF,EAAM0+E,GAAYS,EAAY,OAAS,UAAG31D,GAAK,OAAGi2D,E,CAG/CM,IACH//E,EAAMy+E,GAAaY,EAAa,OAAS,UAAG1zD,EAAKpV,GAAC,OAAGgpE,IAGnDhZ,EAAG0Z,YAAYz3F,KACjBwX,EAAMmsB,IAAM,UAAGR,EAAKgrB,GAAC,OAAG4oC,GACxBv/E,EAAM+S,KAAO,UAAG4Y,EAAKrmC,GAAC,OAAGm6F,IAG3B,IAAMS,EAAa,OACdlgF,GAAK,CAER+rE,KAAM6T,IAER1B,EAAajS,SAASiU,EAAY,CAAEhU,YAAa0T,IACjDrZ,EAAG4F,OAAOC,qBAAqB8T,EAAY,CAAExX,WAAYnC,EAAG8F,e,CAC9D,GAGsB,iBAAbgS,IACTn4F,EAAU,SAAKA,GAAYm4F,GAAS,CAAEz8E,OAAQ1b,KAGhD7C,KAAKm7F,QAAU5Y,EAAOqT,WAAW,SAAU,CAAExhF,GAAE,EAAEvR,QAAO,EAAE47C,MAAO,G,MAEjE8jC,EAAOO,YAAY,UACnB9iF,KAAKm7F,QAAU,IAEnB,EAMA2B,cAAa,SAAC36E,GACJ,IAAA+gE,EAAOljF,KAAKiY,OAAM,GACpB9S,EAAQgd,GAAO+gE,EAAKA,EAAG8F,cAAgB7mE,EACvC46E,EAAY/8F,KAAKyiF,OAAOyS,eACxB8H,EAAeD,EAAUpgF,MACzBsgF,EAAU93F,EAAMxB,IAAI,WACpBu5F,EAAcha,EAAGjrE,OAAOilF,YAE9B,GAAI/3F,GAAS+3F,GAAeD,GAAWA,EAAQt8F,OAAQ,CAErD,GADAq8F,EAAapgF,QAAU,IAClB5c,KAAKi9F,QAAS,CACjBF,EAAU/V,UAAY,GACtBhnF,KAAKi9F,QAAU,IAAI,EAAQA,GAE3B,IAAME,EAAc,IAAI,EAAY,CAAEl4F,WAAYjF,KAAKi9F,QAAS/Z,GAAE,IAClE6Z,EAAUt4E,YAAY04E,EAAYtpF,SAASO,G,CAG7CpU,KAAKi9F,QAAQ/2F,MAAM+2F,GACnBD,EAAal0D,IAAM,SACnBk0D,EAAattE,KAAO,G,MAEpBstE,EAAapgF,QAAU,MAE3B,EAOAwgF,iBAAgB,SAACv7E,GACf,IAAMq8C,EAAO,KACLvhD,EAAU3c,KAAKyiF,OAAOyS,eAAe,MAC7Cv4E,EAAMmsB,IAAM,UAAGjnB,EAAIinB,KAAG,OAAGo1B,GACzBvhD,EAAM+S,KAAO,UAAG7N,EAAI6N,MAAI,OAAGwuC,GAC3BvhD,EAAMk9E,QAAU,EAClB,EAMAwD,kBAAiB,WACf,OAAOr9F,KAAKyiF,OAAOC,gBAAgBc,aACrC,EAOAiN,SAAQ,SAAC5mF,GACP,YADO,IAAAA,IAAAA,EAAA,IACA7J,KAAKyiF,OAAOsM,WAAWllF,EAAKy4B,KACrC,EAMAmiD,cAAa,WACXzkF,KAAKs9F,aACP,EAEAA,YAAW,WACTt9F,KAAK24F,iBACL34F,KAAK43F,iBACP,EAEA2F,eAAc,SAACx8C,GACb,OAAOA,GAA+B,aAAvBA,EAAKp9C,IAAI,SAC1B,EAOAk1F,iBAAgB,SAACngF,GACf,IAAMT,EAASjY,KAAKkjF,GAAG0D,YACjB,EAA+BluE,GAAQ1Y,KAAKs5F,eAA1CllF,EAAE,KAAEyN,EAAG,MAAEygB,EAAI,OAAEgjD,EAAS,YAEhC,GAAKlxE,EAAL,CAKA,IAAMopF,EAAYlY,EAAU3hF,IAAI,aAC1B85F,EAAUz9F,KAAK09F,cAAgBtpF,EAC/BupF,EAAYF,EAAU,CAAC,EAAI,CAAExD,QAAS,GAExCwD,GAAWD,IACbx9F,KAAK09F,YAActpF,EACnBpU,KAAK26F,gBAAgBr4D,GACrBtiC,KAAKu5F,kBAAkBnlF,EAAIyN,EAAK,CAAEygB,KAAI,KAGpCtiC,KAAKu9F,eAAejY,KACtBtlF,KAAK45F,gBAAgBt3D,IACpBrqB,EAAO2lF,qBAAuB59F,KAAKy5F,kBAAkBn3D,IAGxD,IAAM47B,EAAO,KACP2/B,EAAU79F,KAAK+4F,cAAc,EAAGz2D,GAC9B3lB,EAAUkhF,EAAO,MACnB1G,EAAWn3F,KAAKyiF,OAAOqb,iBAAiB1pF,EAAIyN,GAC5Ck8E,EAAS5G,EAASruD,IAClB4xD,EAAUvD,EAASznE,KAEzB1vB,KAAKg6F,YAAY5lF,EAAIyN,EAAK,OACrB87E,GAAS,CACZr7D,KAAI,EACJy7D,OAAM,EACNrD,QAAO,KAGT/9E,EAAMmsB,IAAMi1D,EAAS7/B,EACrBvhD,EAAM+S,KAAOgrE,EAAUx8B,EACvBvhD,EAAMwpB,MAAQtkB,EAAIskB,MAAQ+3B,EAC1BvhD,EAAMmW,OAASjR,EAAIiR,OAASorC,EAE5Bl+D,KAAKg+F,WAAW,QAAS,CACvB1Y,UAAS,EACTlxE,GAAIypF,EACJ/0D,IAAKi1D,EACLruE,KAAMgrE,EACNv0D,MAAOtkB,EAAIskB,MACXrT,OAAQjR,EAAIiR,Q,MA5CZ9yB,KAAK09F,YAAc,CA8CvB,EAEA7F,YAAY,IAAAvQ,WAAS,WAEnBtnF,KAAKm5F,kBAAkB,CAAE16C,MAAO,GAClC,GAAG,GAEHu/C,WAAU,SAACx7F,EAAcqH,QAAA,IAAAA,IAAAA,EAAA,IACvB7J,KAAKkjF,GAAGp/E,QAAQ,sBAAuB,GACrCtB,KAAI,GACDqH,GAEP,EAEAsvF,kBAAiB,SAACtvF,QAAA,IAAAA,IAAAA,EAAA,IACV,MAAyB7J,KAAKq5F,gBAA5BjlF,EAAE,KAAEyN,EAAG,MAAEyjE,EAAS,YAE1B,IAAKlxE,EAGH,OAFApU,KAAK+4F,qBACL/4F,KAAKq0F,aAAe,GAId,IAAA5R,EAAWziF,KAAI,QACPA,KAAKq0F,eAAiBjgF,GAEvBvK,EAAK40C,SAClBz+C,KAAKq0F,aAAejgF,EACpBpU,KAAK88F,cAAcxX,IAGrB,IAAMpnB,EAAO,KACP2/B,EAAU79F,KAAK+4F,cAAc,GAC3Bp8E,EAAUkhF,EAAO,MACnBI,EAAexb,EAAOgY,wBAAwBrmF,EAAIquE,EAAOyS,eAAiB,CAAErzE,IAAG,IAC/Ek8E,EAASE,EAAaC,gBACtBxD,EAAUuD,EAAaE,iBAC7BxhF,EAAMmsB,IAAMi1D,EAAS7/B,EACrBvhD,EAAM+S,KAAOgrE,EAAUx8B,EACvBvhD,EAAMwpB,MAAQtkB,EAAIskB,MAAQ+3B,EAC1BvhD,EAAMmW,OAASjR,EAAIiR,OAASorC,EAE5Bl+D,KAAKo9F,iBAAiB,CAAEt0D,IAAKm1D,EAAan1D,IAAKpZ,KAAMuuE,EAAavuE,OAClE1vB,KAAKg+F,WAAW,SAAU,CACxB1Y,UAAS,EACTlxE,GAAIypF,EACJ/0D,IAAKi1D,EACLruE,KAAMgrE,EACNv0D,MAAOtkB,EAAIskB,MACXrT,OAAQjR,EAAIiR,QAEhB,EAKAglE,gBAAgB,IAAAxQ,WAAS,WAEvBtnF,KAAK43F,iBACP,GAAG,GAEHF,mBAAmB,IAAApQ,WAAS,WAE1BtnF,KAAKkjF,GAAGkb,eACV,GAAG,KAQHxW,cAAa,SAACxzE,GACZ,OAAOpU,KAAKyiF,OAAOC,gBAAgBkF,cAAcxzE,EAAI,CAAE8zE,UAAU,GACnE,EAMAmW,UAAS,WACPr+F,KAAKywF,WAAW9zE,MAAMC,QAAU,MAClC,EAOA0hF,cAAa,SAACn5F,GACZA,GACEA,EAAMM,IAAI,CACR84F,OAAQ,GACRt/E,MAAO,IAEb,EAMA4wE,iBAAgB,WACd,OAAO7vF,KAAKyiF,OAAOwV,WACrB,EAEA/V,IAAG,SAACK,IACG,IAAAic,YAELx+F,KAAKuiF,OAASA,GAAUA,EAAO5+E,IAAI,UACnC3D,KAAKijF,SACP,EAEAtlE,KAAI,SAACwkE,EAAI8C,EAAQp7E,GACf,QADe,IAAAA,IAAAA,EAAA,KACV,IAAA20F,UAAL,CACM,IAAEtb,EAAeljF,KAAb,GAAEuiF,EAAWviF,KAAL,OAClBA,KAAK23F,YACL33F,KAAK4vF,uBACJ/lF,EAAK40F,kBAAoBvb,EAAGwb,cAC7B1+F,KAAK+4F,gBACLxW,GAAUA,EAAOO,YAAY,SANR,CAOvB,E,wEC5tBF,SAMEyM,oBAAmB,SAAC6I,EAAkB/lE,EAAexoB,GAArD,gBAAqD,IAAAA,IAAAA,EAAA,IACnD7J,KAAK2+F,WAAY,EACjB,IAAMC,EAAQ5+F,KAAKkjF,GAAGoT,MAChB71C,EAAY23C,EAAIloE,cAAcpT,KAEhC8hF,IAAU5+F,KAAK0vF,SACjB1vF,KAAK0vF,OAAS,IAAIkP,EAAMC,OAAO,CAE7Bp+C,UAAS,EACTq+C,OAAQ9+F,KAAKyiF,OAAOsc,cACpBC,aAAc,IACdC,QAAS,IACThb,IAAKjkF,KAAKujF,KACVh4D,UAAW,IACX7W,SAAU2d,EACV6sE,QAAS,EACTC,OAAQ,EACRjc,GAAIljF,KAAKkjF,GACTkc,eAAgB,EAChBC,MAAO,WAAM,SAAKnc,GAAGoc,gBAAR,KAGbz1F,EAAK65E,UAAS1jF,KAAK0vF,OAAOhM,QAAU75E,EAAK65E,SAC7C0U,GAAOp4F,KAAK0vF,OAAO6P,UAAUnH,EAAK,CAAE33C,UAAS,GAC/C,EAOA++C,aAAY,WACV,IAAIrI,EAAWn3F,KAAKm7B,OAAOn7B,KAAKyiF,OAAOmU,cACnCQ,EAAYp3F,KAAKm7B,OAAOn7B,KAAKyiF,OAAOiC,cAGxC,MAAO,CAAE57C,IAFCquD,EAASruD,IAAMsuD,EAAUtuD,IAErBpZ,KADHynE,EAASznE,KAAO0nE,EAAU1nE,KAEvC,EAMA+vE,mBAAkB,WAChBz/F,KAAK0/F,oBAAsB,KAC3B1/F,KAAK2/F,SAA6B,SAAlB3/F,KAAK4/F,WAA6C,IAArB5/F,KAAK6/F,KAAKl/F,OAAeX,KAAK2/F,SAAW,EAAI3/F,KAAK2/F,SAC3F3/F,KAAK0vF,SACP1vF,KAAK0vF,OAAOhxB,MAAQ,EACpB1+D,KAAK0vF,OAAOa,WAEVvwF,KAAK6/F,OACP7/F,KAAK8/F,YAAmC,IAArB9/F,KAAK6/F,KAAKl/F,QAAkC,SAAlBX,KAAK4/F,WAAwB5/F,KAAK2/F,UAAY3/F,KAAK6/F,KAAKl/F,OACrGX,KAAK+/F,YACkB,IAArB//F,KAAK6/F,KAAKl/F,QACN,gBAAEX,KAAKggG,cACNhgG,KAAK8/F,aAAe9/F,KAAK6/F,KAAK7/F,KAAK2/F,WACpC,gBAAE3/F,KAAK6/F,KAAK7/F,KAAK2/F,UAAU,IAAIphF,UAC/B,gBAAEve,KAAKggG,aACbhgG,KAAKigG,eAAiBjgG,KAAK+/F,YAAYrnF,KAAK,SAC5C1Y,KAAK0/F,oBAAsB1/F,KAAK+/F,YAAYrnF,KAAK,cAErD,EAMAuqE,OAAM,WACJjjF,KAAKuvF,qBACP,EAUA2Q,UAAS,SAACp/F,EAAemO,EAAgBu0B,GACvC,IAAI3jC,EAAIiB,GAAS,EACb0Q,EAAIvC,GAAU,SACdwc,EAAM+X,EAAK7iC,OACXw/F,EAAiB,IAAR10E,GAAkB,SAALja,GAAgB3R,GAAK4rB,EAC/C,OAAY,IAARA,KAAgB00E,IAAW38D,EAAK3jC,GAAG,IAAQ2jC,EAAK3jC,EAAI,KAAO2jC,EAAK3jC,EAAI,GAAG,IAAQsgG,IAAW38D,EAAK3jC,EAAI,GAAG,IACjG,EACF,CACT,EAEAqiF,IAAG,WACDliF,KAAKijF,QACP,EAEAtlE,KAAI,WACF3d,KAAKy/F,qBACLz/F,KAAKkvF,SAAS5uD,IAAI,SAAU,IAC5BtgC,KAAKkvF,SAASriF,QAChB,E,oUCrGF,SACEuzF,gBAAe,SAACnhF,GAEd,MAAO,OADMA,GAAS,IACE,gBAC1B,EAEAijE,IAAG,SAACK,EAAQ0C,EAAQp7E,GAClB,IAAIyjD,EAAMzjD,GAAQ,CAAC,EACfoV,EAAQquC,EAAIruC,OAAS,GACrBhH,EAASsqE,EAAOqE,YACdyZ,EAAOrgG,KAAKkjF,GAAGoc,iBACflrF,EAAKk5C,EAAIl5C,IAAM,GAErB,IAAK6D,EAAOi/E,cAAe,IAAAoJ,YAAWlsF,KAAS6D,EAAO2lF,qBAAgC,SAAT3+E,EAC3EsjE,EAAOO,YAAY,UAAG9iF,KAAKsK,IAAMT,OADnC,CAKA,IAAI44E,EAASF,EAAOiC,OAChB3iE,EAAM,EAAH,GAASyrC,EAAIksC,OAAS/W,EAAOmF,cAAcxzE,KAE7C,IAAAw1E,aAAYt8B,EAAIxkB,OACnBjnB,EAAIinB,IAAMwkB,EAAIxkB,MAEX,IAAA8gD,aAAYt8B,EAAI59B,QACnB7N,EAAI6N,KAAO49B,EAAI59B,MAGjB,IAAI/S,EAAQ5c,OAAOynC,iBAAiBpzB,GAChCmvE,EAAOvjF,KAAKujF,KACZgd,EAAWthF,EAAQ,QAGnBuhF,EAAe/d,EAFNziF,KAAKogG,gBAAgBnhF,IAEApV,EAAKy4B,MACvCk+D,EAAa7jF,MAAMk9E,QAAU,GAE7B,IAAI4G,EAAUzgG,KAAK,UAAYif,GAC3ByhF,EAAU1gG,KAAK,UAAYif,GAC3B0hF,EAAU3gG,KAAK,UAAYif,GAC3B2hF,EAAU5gG,KAAK,UAAYif,GAC3B4hF,EAAO7gG,KAAK,OAASif,GACrB6hF,EAAO9gG,KAAK,OAASif,GACrB8hF,EAAO/gG,KAAK,OAASif,GACrB+hF,EAAOhhG,KAAK,OAASif,GAczB,GAZIuhF,EAAaj8E,WAAW5jB,SAC1BX,KAAKugG,GAAY,IACjBE,EAAUD,EAAatgE,cAAc,qBACrCwgE,EAAUF,EAAatgE,cAAc,qBACrCygE,EAAUH,EAAatgE,cAAc,qBACrC0gE,EAAUJ,EAAatgE,cAAc,qBACrC2gE,EAAOL,EAAatgE,cAAc,qBAClC4gE,EAAON,EAAatgE,cAAc,qBAClC6gE,EAAOP,EAAatgE,cAAc,qBAClC8gE,EAAOR,EAAatgE,cAAc,uBAG/BlgC,KAAKugG,GAAW,CACnB,IAAIU,EAAWhiF,EAAMmK,cACjB83E,EAAaD,EAAW,WACxBE,EAAcF,EAAW,YACzBG,GAAU,gBAAE,uBAAe7d,EAAI,kBAAgB5/E,IAAI,GACnD09F,GAAW,gBAAE,uBAAe9d,EAAI,mBAAiB5/E,IAAI,GAErD29F,EAAa/d,EAAO4d,EAAc,MAChCI,EAAe,UAFLhe,EAAO2d,EAAa,MAEH,YAAI3d,EAAO2d,GACtCM,EAAc,UAAGF,EAAU,YAAI/d,EAAO4d,GAC5CV,GAAU,gBAAE,uBAAec,EAAY,kBAAgB59F,IAAI,GAC3D+8F,GAAU,gBAAE,uBAAea,EAAY,qBAAmB59F,IAAI,GAC9Dg9F,GAAU,gBAAE,uBAAeY,EAAY,mBAAiB59F,IAAI,GAC5Di9F,GAAU,gBAAE,uBAAeW,EAAY,oBAAkB59F,IAAI,GAC7Dk9F,GAAO,gBAAE,uBAAeW,EAAW,kBAAgB79F,IAAI,GACvDm9F,GAAO,gBAAE,uBAAeU,EAAW,qBAAmB79F,IAAI,GAC1Do9F,GAAO,gBAAE,uBAAeS,EAAW,mBAAiB79F,IAAI,GACxDq9F,GAAO,gBAAE,uBAAeQ,EAAW,oBAAkB79F,IAAI,GACzD3D,KAAK,UAAYif,GAASwhF,EAC1BzgG,KAAK,UAAYif,GAASyhF,EAC1B1gG,KAAK,UAAYif,GAAS0hF,EAC1B3gG,KAAK,UAAYif,GAAS2hF,EAC1B5gG,KAAK,OAASif,GAAS4hF,EACvB7gG,KAAK,OAASif,GAAS6hF,EACvB9gG,KAAK,OAASif,GAAS8hF,EACvB/gG,KAAK,OAASif,GAAS+hF,EACvBI,EAAQ38E,YAAYg8E,GACpBW,EAAQ38E,YAAYi8E,GACpBU,EAAQ38E,YAAYk8E,GACpBS,EAAQ38E,YAAYm8E,GACpBS,EAAS58E,YAAYo8E,GACrBQ,EAAS58E,YAAYq8E,GACrBO,EAAS58E,YAAYs8E,GACrBM,EAAS58E,YAAYu8E,GACrBR,EAAa/7E,YAAY28E,GACzBZ,EAAa/7E,YAAY48E,GACzBrhG,KAAKugG,GAAY,G,CAGnB,IAAIriC,EAAO,KACPujC,EAAelZ,WAAW5rE,EAAM6pB,WAAW/2B,QAAQyuD,EAAM,KAAOmiC,EAChEqB,EAAgBnZ,WAAW5rE,EAAMglF,YAAYlyF,QAAQyuD,EAAM,KAAOmiC,EAClEuB,EAAcrZ,WAAW5rE,EAAMwvB,UAAU18B,QAAQyuD,EAAM,KAAOmiC,EAC9DwB,EAAiBtZ,WAAW5rE,EAAMoiC,aAAatvC,QAAQyuD,EAAM,KAAOmiC,EACpEyB,EAAUrB,EAAQ9jF,MAClBolF,EAAUrB,EAAQ/jF,MAClBqlF,EAAUrB,EAAQhkF,MAClBslF,EAAUrB,EAAQjkF,MAClBulF,EAAUrB,EAAKlkF,MACfwlF,EAAUrB,EAAKnkF,MACfylF,EAAUrB,EAAKpkF,MACf0lF,EAAUrB,EAAKrkF,MACf2lF,EAAU/Z,WAAW1mE,EAAI6N,MACzB6yE,EAAUha,WAAW5rE,EAAMwpB,OAASk6D,EAAOniC,EAG/C4jC,EAAQhvE,OAAS8uE,EAAc1jC,EAC/B4jC,EAAQ37D,MAAQo8D,EAChBT,EAAQh5D,IAAMjnB,EAAIinB,IAAM84D,EAAc1jC,EACtC4jC,EAAQpyE,KAAO4yE,EAAUpkC,EAEzB6jC,EAAQjvE,OAAS+uE,EAAiB3jC,EAClC6jC,EAAQ57D,MAAQo8D,EAChBR,EAAQj5D,IAAMjnB,EAAIinB,IAAMjnB,EAAIiR,OAASorC,EACrC6jC,EAAQryE,KAAO4yE,EAAUpkC,EAEzB,IAAIskC,EAAc3gF,EAAIiR,OAAS8uE,EAAcC,EAAiB3jC,EAC1DukC,EAAc5gF,EAAIinB,IAAM84D,EAAc1jC,EAC1C8jC,EAAQlvE,OAAS0vE,EACjBR,EAAQ77D,MAAQs7D,EAAevjC,EAC/B8jC,EAAQl5D,IAAM25D,EACdT,EAAQtyE,KAAO4yE,EAAUb,EAAevjC,EAExC+jC,EAAQnvE,OAAS0vE,EACjBP,EAAQ97D,MAAQu7D,EAAgBxjC,EAChC+jC,EAAQn5D,IAAM25D,EACdR,EAAQvyE,KAAO4yE,EAAUzgF,EAAIskB,MAAQ+3B,EAGrC,IAAIwkC,EAASna,WAAW5rE,EAAMuqB,YAAcm5D,EAC5C6B,EAAQpvE,OAAS4vE,EAASxkC,EAK1B,IAAIykC,EAASpa,WAAW5rE,EAAMs+B,eAAiBolD,EAC/C8B,EAAQrvE,OAAS6vE,EAASzkC,EAK1B,IAAI0kC,EAAW/gF,EAAIiR,OAAS6vE,EAASD,EAASxkC,EAC1C2kC,GAAWhhF,EAAIinB,IAAM45D,EAASxkC,EAClCkkC,EAAQtvE,OAAS8vE,EACjBR,EAAQj8D,MAAQoiD,WAAW5rE,EAAM2pB,aAAe+5D,EAAOniC,EACvDkkC,EAAQt5D,IAAM+5D,GAId,IAAIC,GAAWva,WAAW5rE,EAAMgrB,cAAgB04D,EAChDgC,EAAQvvE,OAAS8vE,EACjBP,EAAQl8D,MAAQ28D,GAAW5kC,EAC3BmkC,EAAQv5D,IAAM+5D,E,CAGhB,EAEAllF,KAAI,SAAC4kE,EAAQ0C,EAAQp7E,QAAA,IAAAA,IAAAA,EAAA,IACnB,IACIoV,GADMpV,GAAQ,CAAC,GACHoV,OAAS,GACrBhQ,EAASjP,KAAKogG,gBAAgBnhF,GACrBsjE,EAAOiC,OAEMv1E,GAAQpF,EAAKy4B,MAC1B3lB,MAAMk9E,QAAU,CAC/B,E,uEC5KF,SACE73C,KAAI,YACF,IAAAsgC,SAAQtiF,KAAM,kBAChB,EAEAkiF,IAAG,SAACC,GACFniF,KAAK+iG,UAAU5gB,EACjB,EAEAxkE,KAAI,SAACwkE,GACHniF,KAAK+iG,UAAU5gB,EAAI,EACrB,EAEA4gB,UAAS,SAAC5gB,EAAYjjC,GAAtB,WACE,QADoB,IAAAA,IAAAA,EAAA,IACfijC,EAAGgD,SAASmQ,SAAS,WAAY,CACpC,IAAM0N,EAAK7gB,EAAGqC,OACRye,EAAM/jD,EAAS,KAAO,MACtBsjC,EAAcwgB,EAAGjd,WACvBid,EAAGjL,YAAYtiF,SAAQ,SAAA06E,GAAS,SAAK+S,SAAS/S,EAAOjxC,EAArB,IAChCsjC,EAAYygB,GAAK,gBAAiBjjG,KAAKmjG,gB,CAE3C,EAEAA,gBAAe,SAAC3xF,EAAQ4xF,GAAxB,WACEA,EAAO3tF,SAAQ,SAAA06E,G,MACPkT,EAAO,WAAM,SAAKH,SAAS/S,GAAO,EAArB,GACT,QAAV,EAAAA,EAAM7tD,YAAI,eAAEghE,QAASD,IAASlT,EAAMtkF,KAAK,SAAUw3F,EACrD,GACF,EAEAH,SAAQ,SAAC/S,EAAcjxC,G,MACfjwC,EAASiwC,EAAS,MAAQ,SAC1Bh7B,EAAM,UAAGlkB,KAAKujF,KAAI,UACd,QAAV,EAAA4M,EAAM7tD,YAAI,SAAEsiD,UAAUtB,UAAUr0E,GAAQiV,EAC1C,E,wjBCKF,2B,8CAAyG,QAAzB,OAAyB,EAAzG,CAAgF,WAEhF,2B,8CAAiF,QAAxB,OAAwB,EAAjF,CAAyD,gBAEzD,2B,8CAAqH,QAArB,OAAqB,EAArH,CAAgG,S,oiBC7ChG,cAaE,WAAYra,EAAgBoO,EAAcsrF,QAA9B,IAAA15F,IAAAA,EAAA,SAA8B,IAAA05F,IAAAA,GAAA,GAA1C,MACE,YAAM15F,IAAK,K,OAPb,EAAA25F,UAAY,GAEZ,EAAAC,SAAW,OAEX,EAAAC,WAAY,EAIV,EAAKzrF,OAASA,GAAUpO,EAAKoO,QAAU,CAAC,EACxCsrF,GAAW,EAAK/4F,SAAS,EAAKvF,WAAY,MAAO,EAAK0+F,OACtD,EAAKC,MAAQ,G,CACf,CA8GF,OAhIyC,OAyBvC,YAAAD,MAAA,SAAMx+F,GACJnF,KAAKsE,IAAIa,EACX,EAEA,YAAA0+F,iBAAA,SAAiBrhG,GACT,IAAEyV,EAAejY,KAAT,OAAE8jG,EAAO9jG,KAAL,GACVkjF,EAAOjrE,EAAM,GACf8rF,EAAO,UAAGD,EAAK,WAAIA,EAAE,OAAQ,GAAE,YAAIthG,EAAI,oBAC7C0gF,GAAMA,EAAGuC,WAAWse,EACtB,EAQA,YAAAz/F,IAAA,SAAIa,EAAY8U,GACR,IA6BFqoB,EA7BE,EAA+BtiC,KAA7BiY,EAAM,SAAEyrF,EAAS,YAAEE,EAAK,QAC1BJ,EAAaxjG,KAAKwjG,WAAa,CAAC,EAyBlChvC,EAAOv6C,GAAY,KACnBg9E,EAAWj3F,KAAKi3F,SAChB+M,EAAY7+F,EAAMxB,IAAI3D,KAAKyjG,UAG3BD,EAAUQ,GACZ/M,EAAWuM,EAAUQ,IACZA,GAAcR,EAAUQ,KAAe,IAAAztF,UA/B/B,CACjB,SACA,WACA,QACA,OACA,iBACA,QACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,QACA,SACA,SACA,MACA,OACA,OACA,MACA,QASqEytF,IACrEhkG,KAAK6jG,iBAAiBG,GAItB1hE,EADEn9B,EAAMm9B,MAAQohE,EACTv+F,EAAMm9B,KAEN,IAAI20D,EAAS,CAAE9xF,MAAK,EAAE8S,OAAM,GAAIA,GAGzC2rF,GAASA,EAAMj/F,KAAK29B,GACpB,IAAMivD,EAAWjvD,EAAKzuB,SAASO,GAE3BogD,EAAMA,EAAK/vC,YAAY8sE,GACtBvxF,KAAK2T,IAAIq/E,OAAOzB,EACvB,EAEA,YAAA19E,OAAA,WACE,IAAI2gD,EAAO9/C,SAASisB,yBAYpB,OAXA3gC,KAAKikG,aACLjkG,KAAK2T,IAAIq+B,QAELhyC,KAAKiF,WAAWtE,QAClBX,KAAKiF,WAAWM,MAAK,SAAUJ,GAE7BnF,KAAKsE,IAAIa,EAAOqvD,EAClB,GAAGx0D,MAELA,KAAK2T,IAAIq/E,OAAOx+B,GAChBx0D,KAAK82F,WACE92F,IACT,EAEA,YAAA82F,SAAA,WAAY,EACZ,YAAAoN,eAAA,SAAeN,EAAa/5F,GAAa,EACzC,YAAAs6F,SAAA,SAASP,EAAa/5F,GAAa,EAEnC,YAAAzE,OAAA,SAAOyE,QAAA,IAAAA,IAAAA,EAAA,IACG,IAAA+5F,EAAU5jG,KAAI,MAKtB,OAJAA,KAAKkkG,eAAeN,EAAO/5F,GAC3B7J,KAAKikG,aACL,YAAM7+F,OAAM,WACZpF,KAAKmkG,SAASP,EAAO/5F,GACd7J,IACT,EAEA,YAAAikG,WAAA,WACgBjkG,KAAK4jG,KAIrB,EACF,EAhIA,CAAyC,M,UAmIzC7M,EAAY12F,UAAU42F,SAAW,E,8SCpC3BmN,EAAsB,CAAC,IAAK,K,QAElC,WAsBE,WAAYv6F,GAkBV,YAlBU,IAAAA,IAAAA,EAAA,IACV7J,KAAK6J,KAAO,CACVw6F,WAAY,EACZhF,MAAO,IAET,IAAA/c,SAAQtiF,KAAM,OAAQ,OAAQ,YAAa,gBAC3CA,KAAK+P,WAAWlG,GAChB7J,KAAK6iD,MAjCc,CAAGhvB,EAAG,EAAG+Z,EAAG,GAkC/B5tC,KAAKskG,WAlCc,CAAGzwE,EAAG,EAAG+Z,EAAG,GAmC/B5tC,KAAKukG,eAnCc,CAAG1wE,EAAG,EAAG+Z,EAAG,GAoC/B5tC,KAAKwkG,aApCc,CAAG3wE,EAAG,EAAG+Z,EAAG,GAqC/B5tC,KAAKykG,cArCc,CAAG5wE,EAAG,EAAG+Z,EAAG,GAsC/B5tC,KAAK0kG,eAtCc,CAAG7wE,EAAG,EAAG+Z,EAAG,GAuC/B5tC,KAAK2kG,eAvCc,CAAG9wE,EAAG,EAAG+Z,EAAG,GAwC/B5tC,KAAKumC,SAxCc,CAAG1S,EAAG,EAAG+Z,EAAG,GAyC/B5tC,KAAK4lF,aAAe,GACpB5lF,KAAK6lF,aAAe,GACpB7lF,KAAKk7F,KAAO,GACLl7F,IACT,CAmUF,OA7TE,YAAA+P,WAAA,SAAWlG,QAAA,IAAAA,IAAAA,EAAA,IACT7J,KAAK6J,KAAO,EAAH,KACJ7J,KAAK6J,MACLA,EAEP,EAEA,YAAAy8E,WAAA,SAAWrD,GACT,IAAMiY,EAAOl7F,KAAK4kG,gBACZnkD,EAAYzgD,KAAK6kG,iBACjB7M,EAAMh4F,KAAK8kG,cACX71F,EAASg0E,EAAS,KAAO,MACzB7tE,EAAU,CAAE3N,GAAE,KAAE0D,IAAG,OACzBiK,EAAQnG,GAAQwxC,EAAW,qBAAsBzgD,KAAKqvF,MACtDj6E,EAAQnG,GAAQisF,EAAM,2BAA4Bl7F,KAAK2d,MACvDvI,EAAQnG,GAAQisF,EAAM,UAAWl7F,KAAK+kG,WACtC3vF,EAAQnG,GAAQ+oF,EAAK,SAAUh4F,KAAKglG,aACtC,EAEA,YAAAA,aAAA,WACQ,IAAEV,EAAsBtkG,KAAZ,WAAE6iD,EAAU7iD,KAAL,MACnBilG,EAAejlG,KAAK0oE,gBACpBw8B,EAAa,CACjBrxE,EAAGoxE,EAAapxE,EAAIywE,EAAYzwE,EAChC+Z,EAAGq3D,EAAar3D,EAAI02D,EAAY12D,GAElC5tC,KAAKggE,KAAKnd,EAAMhvB,EAAIqxE,EAAWrxE,EAAGgvB,EAAMjV,EAAIs3D,EAAWt3D,GACvD5tC,KAAKukG,eAAiBW,CACxB,EAMA,YAAAlpF,MAAA,SAAMxP,GACI,IAAA3C,EAAS7J,KAAI,KACb0jF,EAAY75E,EAAI,QACxB7J,KAAKsmF,YAAW,GAChBtmF,KAAKwkG,aAAexkG,KAAKmlG,cAAc34F,GACvCxM,KAAK4lF,cAAe,IAAA14E,QAAOrD,EAAM,iBAAmB,GACpD7J,KAAK6lF,cAAe,IAAA34E,QAAOrD,EAAM,iBAAmB,IACpD,IAAAxH,YAAWqhF,IAAYA,EAAQl3E,EAAIxM,MACnCA,KAAKykG,cAAgBzkG,KAAKolG,mBAC1BplG,KAAKukG,eA9Fc,CAAG1wE,EAAG,EAAG+Z,EAAG,GA+F/B5tC,KAAK0kG,eA/Fc,CAAG7wE,EAAG,EAAG+Z,EAAG,GAgG/B5tC,KAAKqvF,KAAK7iF,EACZ,EAMA,YAAA6iF,KAAA,SAAK7iF,GAAL,WACQ,EAA2CxM,KAAzC6J,EAAI,OAAE06F,EAAc,iBAAEG,EAAc,iBACpC/gB,EAAW95E,EAAI,OACf26F,EAAiBxkG,KAAI,aACvBqlG,EAAarlG,KAAKmlG,cAAc34F,GAChC84F,EAAS,CACbzxE,EAAG6wE,EAAe7wE,EAAI0wE,EAAe1wE,EACrC+Z,EAAG82D,EAAe92D,EAAI22D,EAAe32D,GAEvC5tC,KAAK0kG,eAAiBY,EACtB,IAAMziD,EAAQ,CACZhvB,EAAGwxE,EAAWxxE,EAAI2wE,EAAa3wE,EAAIyxE,EAAOzxE,EAC1C+Z,EAAGy3D,EAAWz3D,EAAI42D,EAAa52D,EAAI03D,EAAO13D,GAE5C5tC,KAAKukG,eArHc,CAAG1wE,EAAG,EAAG+Z,EAAG,GAsHzB,IAAA23D,EAAevlG,KAAI,WASN,OALjBulG,EADE/4F,EAAG+pD,UACSgvC,GAAcvlG,KAAKwlG,eAAe3iD,EAAMhvB,EAAGgvB,EAAMjV,GAElD,MAIbiV,EAAMhvB,EAAI2wE,EAAa3wE,EACC,MAAf0xE,IACT1iD,EAAMjV,EAAI42D,EAAa52D,GAGzB,IAAM63D,EAAY,SAAC5iD,GACjBuhD,EAAM3uF,SAAQ,SAAAiwF,GAAM,OAAC7iD,EAAM6iD,GAAM7iD,EAAM6iD,IAAM,IAAAx4F,QAAOrD,EAAM,QAAtC,IACpB,EAAKg5C,MAAQA,EACb,EAAKmd,KAAKnd,EAAMhvB,EAAGgvB,EAAMjV,IACzB,IAAAvrC,YAAWshF,IAAWA,EAAOn3E,EAAI,EACnC,EACMm5F,EAAW,EAAH,GAAQ9iD,GAMtB,GALA7iD,KAAK2kG,eAAiBU,EACtBrlG,KAAKulG,WAAaA,EAClBvlG,KAAKskG,WAAatkG,KAAK0oE,gBACvB+8B,EAAU5iD,GAEN7iD,KAAK6lF,aAAallF,OAAQ,CACtB,MAA2BX,KAAK4lG,WAAWD,GAAzCE,EAAQ,WAAEC,EAAI,OAAEC,EAAI,QAC3BD,GAAQC,IAASN,EAAUI,E,CAIjB,IAAbr5F,EAAGzK,OAAe/B,KAAK2d,KAAKnR,EAC9B,EAKA,YAAAo5F,WAAA,SAAW/iD,GAAX,WACQgjD,EAAWhjD,EACXijD,EAAe9lG,KAAX,KAAE+lG,EAAS/lG,KAAL,KA2ChB,OAzCAA,KAAK6lF,aAAapwE,SAAQ,SAAA2iF,GAEnBA,EAAIvkE,GAAK,EAAKiyE,MAAU1N,EAAIxqD,GAAK,EAAKm4D,OAC3C3N,EAAIl5C,QAAS,EAEb,EAAK0mC,aAAanwE,SAAQ,SAAA40E,GACxB,KAAK+N,EAAIxqD,GAAKy8C,EAAKx2D,GAAOukE,EAAIvkE,GAAKw2D,EAAKz8C,GAAxC,CACA,IAAMi8C,EAAMuO,EAAIxqD,GAAKy8C,EAAKz8C,EACpBo4D,EAAMnc,EAAM,IAAM,IAClBoc,EAAW7N,EAAI4N,GACfE,EAAY7b,EAAK2b,GACjBG,EAAatjD,EAAMmjD,GACnBI,EAAWvc,EAAMkc,EAAOD,EAE9B,GAAI,EAAKO,UAAUJ,EAAUC,KACvB,IAAAtc,aAAYwc,GAAW,CACzB,IAAME,EAAWH,GAAcF,EAAWC,GAC1C,EAAKK,aAAanO,EAAKkO,E,CAXuB,CAcpD,IACF,IAEAR,EAAO9lG,KAAK8lG,KACZC,EAAO/lG,KAAK+lG,KAEZ3B,EAAM3uF,SAAQ,SAAAiwF,GACZ,IAAMhqD,EAAOgqD,EAAGv8E,cAEZivE,EAAM,EAAK,aAAM18C,IAEjB08C,IAAQ,EAAKiO,UAAUxjD,EAAM6iD,GAAKtN,EAAIoO,QACxC,EAAKD,aAAanO,EAAK,MACvBA,EAAM,MAGJA,KAAQ,IAAAxO,aAAYwO,EAAIoO,QAC1BX,EAASH,GAAMtN,EAAIoO,KAEvB,IAEO,CACLX,SAAQ,EACRC,KAAM9lG,KAAK8lG,KACXC,KAAM/lG,KAAK+lG,KAEf,EAEA,YAAAM,UAAA,SAAU3pF,EAAa07E,EAAa,G,IAC5BqO,QAD4B,MAAkC,CAAC,EAAC,GAA5B,QACnBzmG,KAAK6J,KAAKw6F,YAAc,EAC/C,OAAQ3nF,GAAO07E,GAAO17E,GAAO07E,EAAMqO,GAAU/pF,GAAO07E,GAAO17E,GAAO07E,EAAMqO,CAC1E,EAEA,YAAAF,aAAA,SAAa7f,EAAch/E,GACzB,IAAMg0C,GAAQ,IAAAkuC,aAAYlD,EAAM7yD,GAAW,IAAN,IAC/B6yE,EAAU,aAAMhrD,GActB,OAZc,OAAVh0C,GACFg/E,EAAMxnC,QAAS,EACfwnC,EAAM8f,KAAO9+F,EAEb1H,KAAK0mG,GAAWhgB,WAETA,EAAMxnC,cACNwnC,EAAM8f,YAENxmG,KAAK0mG,IAGPhgB,CACT,EAKA,YAAA/oE,KAAA,SAAKnR,EAAW3C,QAAA,IAAAA,IAAAA,EAAA,IACN,IAAAg5C,EAAU7iD,KAAI,MAChB2mG,IAAc98F,EAAK+gD,OACnB/2B,EAAI8yE,EAAY,EAAI9jD,EAAMhvB,EAC1B+Z,EAAI+4D,EAAY,EAAI9jD,EAAMjV,EAChC5tC,KAAKsmF,aACLtmF,KAAKulG,WAAa,KAClBvlG,KAAKggE,KAAKnsC,EAAG+Z,GAAG,GACR,IAAAg2C,EAAU5jF,KAAK6J,KAAI,OAC3B,IAAAxH,YAAWuhF,IAAUA,EAAMp3E,EAAIxM,KAAM,CAAE2mG,UAAS,GAClD,EAEA,YAAA5B,UAAA,SAAUv4F,IACJ,IAAAo6F,UAASp6F,IACXxM,KAAK2d,KAAKnR,EAAI,CAAEo+C,QAAQ,GAE5B,EAOA,YAAAoV,KAAA,SAAKnsC,EAAW+Z,EAAW5rB,GACnB,IAAE5N,EAAapU,KAAX,GAAE6J,EAAS7J,KAAL,KACV6hB,EAAM7hB,KAAKykG,cACjB,GAAK5iF,EAAL,CACQ,IAAA4hE,EAAgB55E,EAAI,YACtBg9F,EAAOhlF,EAAIgS,EAAIA,EACfizE,EAAOjlF,EAAI+rB,EAAIA,EACrB5tC,KAAKumC,SAAW,CACd1S,EAAGgzE,EACHj5D,EAAGk5D,EACH9kF,IAAG,IAGL,IAAA3f,YAAWohF,IAAgBA,EAAYzjF,KAAKumC,UAExCnyB,IACFA,EAAGuI,MAAM+S,KAAO,UAAGm3E,EAAI,MACvBzyF,EAAGuI,MAAMmsB,IAAM,UAAGg+D,EAAI,MAdR,CAgBlB,EAEA,YAAAjC,eAAA,WACU,IAAApkD,EAAczgD,KAAK6J,KAAI,UAC/B,OAAO42C,EAAY,CAACA,GAAazgD,KAAK4kG,eACxC,EAEA,YAAAE,YAAA,WAEE,OADa9kG,KAAK6kG,iBACN//F,KAAI,SAAA2hF,GACd,IAAMp0D,EAAMo0D,EAAKv2D,eAAiBu2D,EAElC,OAAOp0D,EAAI00E,aAAe10E,EAAI20E,YAChC,GACF,EAKA,YAAApC,cAAA,SAAcxwF,GACJ,IAAAie,EAAQryB,KAAK6J,KAAI,IAGzB,GAFAuK,EAAKA,GAAMpU,KAAKoU,IAEXpU,KAAKk7F,KAAKv6F,OAAQ,CACrB,IAAMu6F,EAAO,CAACxmF,UACdN,GAAM8mF,EAAKv2F,KAAKyP,EAAG8b,eACnBmC,GAAO6oE,EAAKv2F,KAAK0tB,GACjBryB,KAAKk7F,KAAOA,C,CAGd,OAAOl7F,KAAKk7F,IACd,EAOA,YAAAiK,cAAA,SAAc34F,GACZ,IAAMy6F,EAASjnG,KAAK6J,KAAKq9F,mBACnBC,GAAM,IAAAC,iBAAgB56F,GAE5B,OAAOy6F,EACHA,EAAOz6F,GACP,CACEqnB,EAAGszE,EAAIp3D,QACPnC,EAAGu5D,EAAIn3D,QAEf,EAEA,YAAAo1D,iBAAA,WACQ,IAAEhxF,EAAapU,KAAX,GACJinG,EADejnG,KAAL,KACIwjF,YAChBt2E,EA3Ue,CAAG2mB,EAAG,EAAG+Z,EAAG,GAsV/B,OATI,IAAAvrC,YAAW4kG,GACb/5F,EAAS+5F,IACA7yF,IACTlH,EAAS,CACP2mB,EAAG00D,WAAWn0E,EAAGuI,MAAM+S,MACvBke,EAAG26C,WAAWn0E,EAAGuI,MAAMmsB,OAIpB57B,CACT,EAEA,YAAAw7D,cAAA,WACU,IAAAr2C,EAAQryB,KAAK6J,KAAI,IACnBiT,EAAOuV,GAAOA,EAAIvV,KAExB,MAAO,CACL8wB,EAAG9wB,EAAOA,EAAKuvB,UAAY,EAC3BxY,EAAG/W,EAAOA,EAAKmvB,WAAa,EAEhC,EAEA,YAAAu5D,eAAA,SAAe3xE,EAAW+Z,GACxB,IAAMy5D,EAAOxzE,EACPyzE,EAAO15D,EACP25D,EAAOr7F,KAAK0kB,IAAIy2E,GAChBG,EAAOt7F,KAAK0kB,IAAI02E,GAGtB,OAAIA,GAAQC,GAAQD,IAASC,EACpB,IACEF,EAAOG,GAAQH,GAAQG,EACzB,SADF,CAGT,EACF,EA5WA,E,4DC/FA,IAAIn1E,EAA0B,oBAAb3d,SAA2BA,SAAW,KACrDsjF,EAAwB,oBAAXj4F,OAAyBA,OAAS,KAC/C0nG,EAAmBrnG,MAAMC,UACzB4V,EAASwxF,EAAiBxxF,OAC1BpR,EAAU4iG,EAAiB5iG,QAC3BC,EAAM2iG,EAAiB3iG,IACvBH,EAAO8iG,EAAiB9iG,KACxBmoB,EAAU26E,EAAiB36E,QAC3BxsB,EAAQmnG,EAAiBnnG,MACzBsE,EAAS6iG,EAAiB7iG,OACxB8iG,EAAO,YACTC,EAAU,aACVC,EAAS,OACTC,EAAQ,QAEV,SAASj0F,EAAKF,EAAU3J,GAKtB,YAJgB,IAAZA,IACFA,EAAUsoB,GAGLs1E,EAAQ39F,KAAK0J,GAChB3J,EAAQ4qD,uBAAuBjhD,EAASpT,MAAM,IAC9CunG,EAAM79F,KAAK0J,GACX3J,EAAQ+9F,qBAAqBp0F,GAC7B3J,EAAQqrF,iBAAiB1hF,EAC/B,CAGA,SAASq0F,EAAKr0F,EAAU3J,GAKtB,QAJgB,IAAZA,IACFA,EAAUsoB,GAGP3e,EAAL,CACA,GAAIA,EAASs0F,OAAQ,OAAOt0F,EAC5B,IAAIu0F,EAAOv0F,EAEX,GAAIxC,EAASwC,IAOX,GANI3J,EAAQi+F,SAAQj+F,EAAUA,EAAQ,MACtCk+F,EAAOP,EAAK19F,KAAK0J,GACb3J,EAAQm+F,eAAex0F,EAASpT,MAAM,IACtCsnG,EAAO59F,KAAK0J,GACZy0F,GAAUz0F,GACVE,EAAKF,EAAU3J,IACR,YACN,GAAI1H,EAAWqR,GACpB,OAAO1T,KAAKooG,MAAM10F,IAGhBu0F,EAAKjjF,UAAYijF,IAASjQ,KAAKiQ,EAAO,CAACA,IAC3CjoG,KAAKW,OAASsnG,EAAKtnG,OAEnB,IAAK,IAAId,EAAI,EAAGoC,EAAIjC,KAAKW,OAAQd,EAAIoC,EAAGpC,IACtCG,KAAKH,GAAKooG,EAAKpoG,EApBI,CAsBvB,CAEA,SAASwoG,EAAK30F,EAAU3J,GACtB,OAAO,IAAIg+F,EAAKr0F,EAAU3J,EAC5B,CAGA,IAAIvJ,EACD6nG,EAAK7nG,GACN6nG,EAAKhoG,UACL0nG,EAAK1nG,UACH,CACEsP,YAAa04F,EACbL,QAAQ,EACRrnG,OAAQ,EACRiE,OAAQA,GAIdpE,EAAGmD,IAAM,SAAU7C,GACjB,YAAcuE,IAAVvE,EAA4BR,EAAMM,KAAKZ,MACpCA,KAAKc,EAAQ,EAAIA,EAAQd,KAAKW,OAASG,EAChD,EAGAN,EAAG8nG,GAAK,SAAUxnG,GAChB,OAAOunG,EAAKroG,KAAK2D,IAAI7C,GACvB,EAGAN,EAAGqR,MAAQ,WACT,OAAO7R,KAAKsoG,GAAG,EACjB,EAGA9nG,EAAGwW,KAAO,WACR,OAAOhX,KAAKsoG,IAAI,EAClB,EAGA9nG,EAAGsE,IAAM,SAAU8E,GACjB,OAAOy+F,EACLvjG,EAAIlE,KAAKZ,MAAM,SAAUuoG,EAAK1oG,GAC5B,OAAO+J,EAAShJ,KAAK2nG,EAAK1oG,EAAG0oG,EAC/B,IAEJ,EAGA/nG,EAAGF,MAAQ,WACT,OAAO+nG,EAAK/nG,EAAMC,MAAMP,KAAMmB,WAChC,EAEA,IAAIqnG,EAAc,sBAChBC,EAAwB,WAE1B,SAASC,EAAU9+E,GACjB,OAAOA,EACJna,QAAQ+4F,GAAa,SAAUG,EAAQ7nG,GACtC,OAAO6nG,EAAQ7nG,EAAwB,cAAhB,gBACzB,IACC2O,QAAQg5F,EAAuB,GACpC,CAIA,SAASljG,EAAK1E,EAAK+I,GACjB,IAAK,IAAI/J,EAAI,EAAGoC,EAAIpB,EAAIF,OAAQd,EAAIoC,IACY,IAA1C2H,EAAShJ,KAAKC,EAAIhB,GAAIgB,EAAIhB,GAAIA,EAAGgB,GADAhB,KAGzC,CANAwoG,EAAKK,UAAYA,EAQjBL,EAAK9iG,KAAOA,EAGZ/E,EAAG+E,KAAO,SAAUqE,GAIlB,OAHArE,EAAKvF,MAAM,SAAUuoG,EAAK1oG,GACxB,OAAO+J,EAAShJ,KAAK2nG,EAAK1oG,EAAG0oG,EAC/B,IACOvoG,IACT,EAGAQ,EAAGooG,WAAa,SAAUniF,GACxB,OAAOzmB,KAAKuF,MAAK,SAAU1F,EAAG0oG,UACrBA,EAAI9hF,EACb,GACF,EAmBA4hF,EAAK1hG,OAASnG,EAAGmG,OAjBjB,SAAgB4f,QACC,IAAXA,IACFA,EAASvmB,MAMX,IAHA,IAAIU,EAAOS,UACTR,EAASD,EAAKC,OAEPd,EAAIc,EAAS,EAAI,EAAI,EAAGd,EAAIc,EAAQd,IAC3C,IAAK,IAAIwB,KAAOX,EAAKb,GACnB0mB,EAAOllB,GAAOX,EAAKb,GAAGwB,GAI1B,OAAOklB,CACT,EAIA,IAAIsiF,EAAO,EAGX,SAASn7F,EAAQ66F,EAAK70F,GACpB,IAAIhG,EACF66F,IACCA,EAAI76F,SACH66F,EAAIO,uBACJP,EAAIQ,oBACJR,EAAIS,mBACJT,EAAIU,kBACR,QAASv7F,GAAWA,EAAQ9M,KAAK2nG,EAAK70F,EACxC,CAIA,SAASrR,EAAWwxB,GAClB,MAAoB,mBAANA,CAChB,CAIA,SAAS3iB,EAAS2iB,GAChB,MAAoB,iBAANA,CAChB,CAIA,SAASq1E,EAAUr1E,GACjB,OAAQ+T,MAAM2gD,WAAW10D,KAAOs1E,SAASt1E,EAC3C,CA7BAw0E,EAAKQ,KAAOA,EAaZR,EAAK36F,QAAUA,EAMf26F,EAAKhmG,WAAaA,EAMlBgmG,EAAKn3F,SAAWA,EAMhBm3F,EAAKa,UAAYA,EACjB,IAAIhoG,EAAUd,MAAMc,QAuBpB,SAASkoG,EAAmB11F,GAC1B,OAAOxC,EAASwC,GACZ,SAAU7T,EAAG0oG,GACX,OAAO76F,EAAQ66F,EAAK70F,EACtB,EACAA,EAASs0F,OACT,SAAUnoG,EAAG0oG,GACX,OAAO70F,EAAS21F,GAAGd,EACrB,EACA,SAAU1oG,EAAG0oG,EAAK70F,GAChB,OAAO60F,IAAQ70F,CACjB,CACN,CAlCA20F,EAAKnnG,QAAUA,EAIfV,EAAGimB,KAAO,SAAUA,EAAM/e,GACxB,GAAK+e,EAAL,CAEA,GAAIvV,EAASuV,GACX,OAAItlB,UAAUR,OAAS,EAAUX,KAAK,IAAMA,KAAK,GAAGymB,GAC7CzmB,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5BA,EAAI9hF,GAAQ/e,CACd,IAGF,IAAK,IAAIrG,KAAOolB,EACdzmB,KAAKymB,KAAKplB,EAAKolB,EAAKplB,IAGtB,OAAOrB,IAbU,CAcnB,EAqBAQ,EAAGyV,OAAS,SAAUvC,GACpB,IAAKA,EAAU,OAAO20F,IACtB,IAAIx4F,EAAaxN,EAAWqR,GAAYA,EAAW01F,EAAmB11F,GACtE,OAAO20F,EACLpyF,EAAOrV,KAAKZ,MAAM,SAAUuoG,EAAK1oG,GAC/B,OAAOgQ,EAAWjP,KAAK2nG,EAAK1oG,EAAG0oG,EAAK70F,EACtC,IAEJ,EAEA,IAAI41F,EAAgB,OAEpB,SAASC,EAAe3/E,GACtB,OAAO1Y,EAAS0Y,IAAOA,EAAIvV,MAAMi1F,IAAuB,EAC1D,CA+FA,SAASE,EAAO3oG,GACd,OAAOA,EAAIoV,QAAO,SAAUwwE,EAAM3lF,EAAO8H,GACvC,OAAOA,EAAK/D,QAAQ4hF,KAAU3lF,CAChC,GACF,CAUA,SAAS2oG,EAAalB,EAAK9hF,EAAMijF,GAC/B,GAAqB,IAAjBnB,EAAIvjF,SAAR,CACA,IAAIrI,EAAQq7E,EAAIxwD,iBAAiB+gE,EAAK,MACtC,OAAO9hF,EAAQijF,EAAa/sF,EAAMgtF,iBAAiBljF,GAAQ9J,EAAM8J,GAAS9J,CAF5C,CAGhC,CAEA,SAASitF,EAAgBrB,EAAK9hF,GAC5B,OAAOihB,SAAS+hE,EAAalB,EAAK9hF,GAAO,KAAO,CAClD,CAjHAjmB,EAAGqpG,SAAW,SAAU3lF,GACtB,IAAIuS,EAAU8yE,EAAerlF,GACzBskD,GAAQ,EASZ,OAPI/xC,EAAQ91B,QACVX,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAErB,QADA//B,EAAQ+/B,EAAIjlB,UAAU5+E,SAAS+xB,EAAQ,IAEzC,IAGK+xC,CACT,EAIAhoE,EAAGspG,WAAa,SAAUtiG,GACxB,IAAIsF,EAAQy8F,EAAe/hG,GAC3B,OAAKsF,EAAMnM,OACJX,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5BhjG,EAAKuH,GAAO,SAAUlN,GACpB2oG,EAAI57B,gBAAgB/sE,EACtB,GACF,IAL0BI,IAM5B,EAKAQ,EAAGgH,KAAO,SAAUA,EAAME,GACxB,GAAKF,EAAL,CAEA,GAAI0J,EAAS1J,GAAO,CAClB,GAAIrG,UAAUR,OAAS,EAAG,CACxB,IAAKX,KAAK,GAAI,OAEd,IAAI+pG,EAAS/pG,KAAK,GAAG+mC,aAAav/B,GAElC,OAAkB,OAAXuiG,OAAkB1kG,EAAY0kG,C,CAGvC,OAAc,OAAVriG,EAAuB1H,KAAK8pG,WAAWtiG,GACpCxH,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5BA,EAAIxjF,aAAavd,EAAME,EACzB,G,CAGF,IAAK,IAAIrG,KAAOmG,EACdxH,KAAKwH,KAAKnG,EAAKmG,EAAKnG,IAGtB,OAAOrB,IArBU,CAsBnB,EAKAQ,EAAGwpG,YAAc,SAAU9lF,EAAKu6B,GAC9B,IAAIhoB,EAAU8yE,EAAerlF,GAC3B+lF,OAAoB5kG,IAAVo5C,EACZ,OAAKhoB,EAAQ91B,OACNX,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5BhjG,EAAKkxB,GAAS,SAAUsoD,GAClBkrB,EACFxrD,EAAQ8pD,EAAIjlB,UAAUh/E,IAAIy6E,GAAKwpB,EAAIjlB,UAAUl+E,OAAO25E,GAEpDwpB,EAAIjlB,UAAUhhB,OAAOyc,EAEzB,GACF,IAT4B/+E,IAU9B,EAGAQ,EAAG8kB,SAAW,SAAUpB,GACtB,OAAOlkB,KAAKgqG,YAAY9lF,GAAK,EAC/B,EAIA1jB,EAAG6rF,YAAc,SAAUnoE,GACzB,OAAQ/iB,UAAUR,OAAkCX,KAAKgqG,YAAY9lF,GAAK,GAA/ClkB,KAAKwH,KAAK,QAAS,GAChD,EAgBA6gG,EAAKmB,OAASA,EAIdhpG,EAAG8D,IAAM,SAAUoP,EAAU3J,GAC3B,OAAOs+F,EAAKmB,EAAOxpG,KAAK2D,MAAMoB,OAAOsjG,EAAK30F,EAAU3J,GAASpG,QAC/D,EAYA,IAAIumG,EAAgB,MAEpB,SAASC,EAAc1jF,GACrB,OAAOyjF,EAAclgG,KAAKyc,EAC5B,CAMA,IAAI2jF,EAAgB,CAAC,EACnBC,EAAQh4E,GAAOA,EAAI1d,cAAc,OACjCgI,EAAQ0tF,EAAQA,EAAM1tF,MAAQ,CAAC,EAC/B2tF,EAAkB,CAAC,SAAU,MAAO,KAAM,KAE5C,SAASC,EAAgB9jF,EAAMijF,GAK7B,QAJmB,IAAfA,IACFA,EAAaS,EAAc1jF,IAGzBijF,EAAY,OAAOjjF,EAEvB,IAAK2jF,EAAc3jF,GAAO,CACxB,IAAI+jF,EAAS9B,EAAUjiF,GACrBgkF,EAAS,GAAKD,EAAO5uF,OAAO,GAAGuN,cAAgBqhF,EAAOlqG,MAAM,GAE9DiF,GADWilG,EAAS,IAAMF,EAAgB76C,KAAKg7C,EAAS,KAAOA,GAAQxgG,MAAM,MACjE,SAAU+xB,GACpB,GAAIA,KAAKrf,EAEP,OADAytF,EAAc3jF,GAAQuV,GACf,CAEX,G,CAGF,OAAOouE,EAAc3jF,EACvB,CAEA4hF,EAAKqC,aAAeH,EAGpB,IAAII,EAAe,CACjBC,yBAAyB,EACzBC,aAAa,EACbC,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,YAAY,EACZpR,SAAS,EACTxvE,OAAO,EACP6gF,SAAS,EACTC,QAAQ,EACRpnE,QAAQ,GAGV,SAASqnE,EAAiB3kF,EAAM/e,EAAOgiG,GAKrC,YAJmB,IAAfA,IACFA,EAAaS,EAAc1jF,IAGrBijF,GAAeiB,EAAalkF,KAASyiF,EAAUxhG,GAAwBA,EAAfA,EAAQ,IAC1E,CAQAlH,EAAG8/B,IAAM,SAAU7Z,EAAM/e,GACvB,GAAIwJ,EAASuV,GAAO,CAClB,IAAIijF,EAAaS,EAAc1jF,GAE/B,OADAA,EAAO8jF,EAAgB9jF,EAAMijF,GACzBvoG,UAAUR,OAAS,EAAUX,KAAK,IAAMypG,EAAazpG,KAAK,GAAIymB,EAAMijF,GACnEjjF,GACL/e,EAAQ0jG,EAAiB3kF,EAAM/e,EAAOgiG,GAC/B1pG,KAAKuF,MAAK,SAAU1F,EAAG0oG,GACP,IAAjBA,EAAIvjF,WAEJ0kF,EACFnB,EAAI5rF,MAAM0uF,YAAY5kF,EAAM/e,GAE5B6gG,EAAI5rF,MAAM8J,GAAQ/e,EAEtB,KAVkB1H,I,CAapB,IAAK,IAAIqB,KAAOolB,EACdzmB,KAAKsgC,IAAIj/B,EAAKolB,EAAKplB,IAGrB,OAAOrB,IACT,EAEA,IAAIsrG,EAAgB,aAClBC,EAAkB,aAOpB,SAASC,EAAajD,GACpB,OAAQA,EAAI+C,GAAiB/C,EAAI+C,IAAkB,CAAC,CACtD,CAGA,SAASv3C,EAAQw0C,EAAKlnG,GACpB,IAAI89B,EAAQqsE,EAAajD,GAEzB,GAAIlnG,EAAK,CACP,KAAMA,KAAO89B,GAAQ,CACnB,IAAIz3B,EAAQ6gG,EAAIkD,QAAUlD,EAAIkD,QAAQpqG,IAAQknG,EAAIkD,QAAQ/C,EAAUrnG,IAAQgnG,EAAKE,GAAK/gG,KAAK,QAAUnG,GAErG,QAAcgE,IAAVqC,EAAqB,CACvB,IACEA,EAAQkR,KAAK3L,MAAMvF,EACT,CAAV,MAAOwD,GAAG,CAEZi0B,EAAM99B,GAAOqG,C,EAIjB,OAAOy3B,EAAM99B,E,CAGf,OAAO89B,CACT,CA0DA,SAASusE,EAAcnD,EAAKoD,GAC1B,OACE/B,EAAgBrB,EAAK,UAAYoD,EAAQ,OAAS,OAAS,SAC3D/B,EAAgBrB,EAAK,WAAaoD,EAAQ,OAAS,QACnD/B,EAAgBrB,EAAK,WAAaoD,EAAQ,QAAU,WACpD/B,EAAgBrB,EAAK,UAAYoD,EAAQ,QAAU,UAAY,QAEnE,CAuDA,SAASC,EAAcC,EAAKC,GAC1B,IAAK,IAAIjsG,EAAI,EAAGoC,EAAI6pG,EAAInrG,OAAQd,EAAIoC,EAAGpC,IACrC,GAAIgsG,EAAIhnG,QAAQinG,EAAIjsG,IAAM,EAAG,OAAO,EAGtC,OAAO,CACT,CAEA,SAASksG,EAAqB5sE,EAAOopE,EAAK5+F,GACxCpE,EAAK45B,EAAMx1B,IAAO,SAAUqiG,GACTA,EAAK,GAAtB,IACEpiG,EAAWoiG,EAAK,GAClBzD,EAAI3qF,oBAAoBjU,EAAMC,EAChC,WACOu1B,EAAMx1B,EACf,CApKA0+F,EAAK4D,QAAU,SAAU1D,GACvB,OAAO+C,KAAiB/C,CAC1B,EA+CA/nG,EAAGkY,KAAO,SAAU/O,EAAMjC,GACxB,IAAIwkG,EAAQlsG,KAEZ,IAAK2J,EAAM,CACT,IAAK3J,KAAK,GAAI,OAOd,OANAuF,EAAKvF,KAAK,GAAGgH,YAAY,SAAUQ,GACjC,IAAI6M,EAAQ7M,EAAKmC,KAAK0K,MAAMk3F,GACvBl3F,GAEL63F,EAAMxzF,KAAKrE,EAAM,GACnB,IACO0/C,EAAQ/zD,KAAK,G,CAGtB,GAAIkR,EAASvH,GACX,YAActE,IAAVqC,EAA4B1H,KAAK,IAAM+zD,EAAQ/zD,KAAK,GAAI2J,GACrD3J,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5B,OA1BN,SAAiBA,EAAKlnG,EAAKqG,GACzB8jG,EAAajD,GAAKlnG,GAAOqG,CAC3B,CAwBawsD,CAAQq0C,EAAK5+F,EAAMjC,EAC5B,IAGF,IAAK,IAAIrG,KAAOsI,EACd3J,KAAK0Y,KAAKrX,EAAKsI,EAAKtI,IAGtB,OAAOrB,IACT,EAIAQ,EAAG2rG,WAAa,SAAU9qG,GACxB,OAAOrB,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5B,OAjDJ,SAAoBA,EAAKlnG,QACXgE,IAARhE,SACKknG,EAAI+C,UAEJE,EAAajD,GAAKlnG,EAE7B,CA2CW8qG,CAAW5D,EAAKlnG,EACzB,GACF,EAeAkE,EAAK,CAAC,QAAS,WAAW,SAAUkhB,GAClCjmB,EAAG,QAAUimB,GAAQ,WACnB,GAAKzmB,KAAK,GACV,OAAIA,KAAK,KAAOg4F,EAAYA,EAAI,QAAUvxE,GACnCzmB,KAAK,GAAG,SAAWymB,EAC5B,CACF,IAQAlhB,EAAK,CAAC,QAAS,WAAW,SAAUkhB,EAAM3lB,GACxCN,EAAGimB,GAAQ,SAAU/e,GACnB,OAAK1H,KAAK,GAELmB,UAAUR,QAKf+G,EAAQggC,SAAShgC,EAAO,IACjB1H,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5B,GAAqB,IAAjBA,EAAIvjF,SAAR,CACA,IAAIonF,EAAY3C,EAAalB,EAAK,aAClCA,EAAI5rF,MAAM8J,GAAQ2kF,EAAiB3kF,EAAM/e,GAAuB,eAAd0kG,EAA6BV,EAAcnD,GAAMznG,GAAS,GAF9E,CAGhC,KATMd,KAAK,KAAOg4F,EAAYh4F,KAAK,GAAG0oG,EAAU,SAAWjiF,IAClDzmB,KAAK,GAAGwvB,wBAAwB/I,GAAQilF,EAAc1rG,KAAK,IAAKc,QAJ1CuE,IAAVqC,OAAsBrC,EAAYrF,IAazD,CACF,IAKAuF,EAAK,CAAC,QAAS,WAAW,SAAUkhB,EAAM3lB,GACxCN,EAAG,QAAUimB,GAAQ,SAAU4lF,GAC7B,GAAKrsG,KAAK,GACV,OAAIA,KAAK,KAAOg4F,EAAYA,EAAI,QAAUvxE,GAExCzmB,KAAK,GAAG,SAAWymB,IAClB4lF,EACGzC,EAAgB5pG,KAAK,GAAI,UAAac,EAAiB,MAAT,SAC9C8oG,EAAgB5pG,KAAK,GAAI,UAAac,EAAkB,SAAV,UAC9C,EAER,CACF,IAqBA,IAAIwrG,EAAkB,eACpBC,GAA4B,IAE9B,SAASC,GAAejE,GACtB,OAAQA,EAAI+D,GAAmB/D,EAAI+D,IAAoB,CAAC,CAC1D,CAWA,SAASG,GAAel4F,GACtB,IAAIunB,EAAQvnB,EAAUtK,MAAMsiG,IAC5B,MAAO,CAACzwE,EAAM,GAAIA,EAAMx7B,MAAM,GAAGyQ,OACnC,CAMA,SAAS27F,GAAYnE,EAAK5+F,EAAMgjG,EAAY/iG,GAC1C,IAAIu1B,EAAQqtE,GAAejE,GAE3B,GAAK5+F,EAUE,CACL,IAAIijG,EAAaztE,EAAMx1B,GACvB,IAAKijG,EAAY,OACbhjG,IAAUA,EAASi/F,KAAOj/F,EAASi/F,MAAQA,KAC/C1pE,EAAMx1B,GAAQijG,EAAW32F,QAAO,SAAU42F,GACxC,IAAI/I,EAAK+I,EAAM,GACb73F,EAAK63F,EAAM,GACb,GAAKjjG,GAAYoL,EAAG6zF,OAASj/F,EAASi/F,OAAU+C,EAAc9H,EAAI6I,GAAa,OAAO,EACtFpE,EAAI3qF,oBAAoBjU,EAAMqL,EAChC,G,MAlBA,GAAK23F,GAAeA,EAAWhsG,OAK7B,IAAKgJ,KAAQw1B,EACXutE,GAAYnE,EAAK5+F,EAAMgjG,EAAY/iG,QALrC,IAAKD,KAAQw1B,EACX4sE,EAAqB5sE,EAAOopE,EAAK5+F,EAkBzC,CAMAnJ,EAAG2K,IAAM,SAAU2hG,EAAeljG,GAChC,IAAImjG,EAAS/sG,KAkBb,YAhBsBqF,IAAlBynG,EACF9sG,KAAKuF,MAAK,SAAU1F,EAAG0oG,GACrB,OAAOmE,GAAYnE,EACrB,IAEAhjG,EAAKgkG,EAAeuD,IAAgB,SAAUA,GAC5C,IAAIE,EAAkBP,GAAeK,GACnCnjG,EAAOqjG,EAAgB,GACvBL,EAAaK,EAAgB,GAE/BD,EAAOxnG,MAAK,SAAU1F,EAAG0oG,GACvB,OAAOmE,GAAYnE,EAAK5+F,EAAMgjG,EAAY/iG,EAC5C,GACF,IAGK5J,IACT,EAYAQ,EAAGiH,GAAK,SAAUqlG,EAAep5F,EAAU9J,EAAUqjG,GACnD,IAAIC,EAASltG,KAEb,IAAKkR,EAAS47F,GAAgB,CAC5B,IAAK,IAAIzrG,KAAOyrG,EACd9sG,KAAKyH,GAAGpG,EAAKqS,EAAUo5F,EAAczrG,IAGvC,OAAOrB,I,CA+CT,OA5CIqC,EAAWqR,KACb9J,EAAW8J,EACXA,GAAW,GAGbnO,EAAKgkG,EAAeuD,IAAgB,SAAUA,GAC5C,IAAIK,EAAmBV,GAAeK,GACpCnjG,EAAOwjG,EAAiB,GACxBR,EAAaQ,EAAiB,GAEhCD,EAAO3nG,MAAK,SAAU1F,EAAG0oG,GACvB,IAAI6E,EAAgB,SAASA,EAAcz6F,GACzC,IAAIA,EAAM06F,WAAczB,EAAce,EAAYh6F,EAAM06F,UAAUpjG,MAAMsiG,KAAxE,CACA,IAAIe,EAAU/E,EAEd,GAAI70F,EAAU,CAGZ,IAFA,IAAI6S,EAAS5T,EAAM4T,QAEX7Y,EAAQ6Y,EAAQ7S,IAAW,CACjC,GAAI6S,IAAWgiF,EAAK,OAEpB,KADAhiF,EAASA,EAAOtB,YACH,M,CAGfqoF,EAAU/mF,C,CAGZ5T,EAAM06F,UAAY16F,EAAM06F,WAAa,GACrC,IAAIl/E,EAAcvkB,EAAShJ,KAAK0sG,EAAS36F,EAAOA,EAAM+F,MAElDu0F,GACFP,GAAYnE,EAAK5+F,EAAMgjG,EAAYS,IAGjB,IAAhBj/E,IACFxb,EAAM4a,iBACN5a,EAAM0b,kBAxBmG,CA0B7G,EAEA++E,EAAcvE,KAAOj/F,EAASi/F,KAAOj/F,EAASi/F,MAAQA,IAlI5D,SAAkBN,EAAK5+F,EAAMgjG,EAAY/iG,GACvCA,EAASi/F,KAAOj/F,EAASi/F,MAAQA,IACjC,IAAI+D,EAAaJ,GAAejE,GAChCqE,EAAWjjG,GAAQijG,EAAWjjG,IAAS,GACvCijG,EAAWjjG,GAAMhF,KAAK,CAACgoG,EAAY/iG,IACnC2+F,EAAIjrF,iBAAiB3T,EAAMC,EAC7B,CA6HM2jG,CAAShF,EAAK5+F,EAAMgjG,EAAYS,EAClC,GACF,IACOptG,IACT,EAGAQ,EAAGgtG,IAAM,SAAUV,EAAex4F,EAAU1K,GAC1C,OAAO5J,KAAKyH,GAAGqlG,EAAex4F,EAAU1K,GAAU,EACpD,EAGApJ,EAAG4nG,MAAQ,SAAUx+F,GACnB,IAAIwjG,EAAgB,WAClB,OAAOxjG,EAASy+F,EAClB,EAQA,MANuB,YAAnBh2E,EAAIo7E,WACNlmF,WAAW6lF,GAEX/6E,EAAI/U,iBAAiB,mBAAoB8vF,GAGpCptG,IACT,EAOAQ,EAAGsD,QAAU,SAAUgpG,EAAep0F,GACpC,IAAIg1F,EAAMZ,EAEV,GAAI57F,EAAS47F,GAAgB,CAC3B,IAAIa,EAAmBlB,GAAeK,GACpCnjG,EAAOgkG,EAAiB,GACxBhB,EAAagB,EAAiB,IAEhCD,EAAMr7E,EAAIu7E,YAAY,eAClBC,UAAUlkG,GAAM,GAAM,GAC1B+jG,EAAIL,UAAYV,EAAWl9C,KAAK88C,G,CAIlC,OADAmB,EAAIh1F,KAAOA,EACJ1Y,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5BA,EAAI34B,cAAc89B,EACpB,GACF,EAsBA,IAAII,GAAc,cAChBC,GAAmB,mBAErB,SAASv+C,GAAS+4C,GAChB,IAAI/lG,EAAO+lG,EAAI/lG,KACf,OAAIsrG,GAAY9jG,KAAKxH,GAVvB,SAA8B+lG,GAC5B,OAAOA,EAAIyF,cAAgB,EAAI,KAAOzF,EAAI1lG,QAAQ0lG,EAAIyF,eAAetmG,KACvE,CAQqCumG,CAAqB1F,GACpDwF,GAAiB/jG,KAAKxH,GArB5B,SAAgC+lG,GAC9B,IAAIn2F,EAAS,GAMb,OALA7M,EAAKgjG,EAAI1lG,SAAS,SAAUo7D,IACtBA,EAAOjK,UAAaiK,EAAOoT,UAAapT,EAAOh5C,WAAWosD,UAC5Dj/D,EAAOzN,KAAKs5D,EAAOv2D,MAEvB,IACO0K,CACT,CAa0C87F,CAAuB3F,GACxDA,EAAI7gG,KACb,CAEA,IAAIymG,GAAqB,OAUzB,IAAIC,GAAc,kCAChBC,GAAc,kBAEhB7tG,EAAG8tG,UAAY,WACb,IAAIC,EAAQ,GAcZ,OAbAvuG,KAAKuF,MAAK,SAAU1F,EAAG0oG,GACrBhjG,EAAKgjG,EAAIiG,UAAY,CAACjG,IAAM,SAAUA,GACpC,IAAIA,EAAIl3B,UAAak3B,EAAI5+F,MAAwB,aAAhB4+F,EAAI90F,UACjC26F,GAAYpkG,KAAKu+F,EAAI/lG,SACrB6rG,GAAYrkG,KAAKu+F,EAAI/lG,OAAU+lG,EAAIkG,SAAvC,CACA,IAAI/mG,EAAQ8nD,GAAS+4C,GACrB,QAAcljG,IAAVqC,EAEJnC,EADarE,EAAQwG,GAASA,EAAQ,CAACA,IAC1B,SAAUA,GACrB6mG,GAtBR,SAAqB9nF,EAAM/e,GACzB,MAAO,IAAMgI,mBAAmB+W,GAAQ,IAAM/W,mBAAmBhI,GAAO+H,QAAQ0+F,GAAoB,IACtG,CAoBiBO,CAAYnG,EAAI5+F,KAAMjC,EACjC,GANsD,CAOxD,GACF,IACO6mG,EAAM7tF,OAAO,EACtB,EAMAlgB,EAAGyF,IAAM,SAAUyB,GACjB,YAAcrC,IAAVqC,EAA4B1H,KAAK,IAAMwvD,GAASxvD,KAAK,IAClDA,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5B,IAAIoG,EAAaZ,GAAiB/jG,KAAKu+F,EAAI/lG,MACzCosG,EAAqB,OAAVlnG,EAAkBinG,EAAa,GAAK,GAAMjnG,EAEnDinG,GAAcztG,EAAQ0tG,GACxBrpG,EAAKgjG,EAAI1lG,SAAS,SAAUo7D,GAC1BA,EAAOjK,SAAW46C,EAAS/pG,QAAQo5D,EAAOv2D,QAAU,CACtD,IAEA6gG,EAAI7gG,MAAQknG,CAEhB,GACF,EAKApuG,EAAG+C,MAAQ,WACT,OAAOvD,KAAK8E,KAAI,SAAUjF,EAAG0oG,GAC3B,OAAOA,EAAI75C,WAAU,EACvB,GACF,EAGAluD,EAAGmhE,OAAS,WACV,OAAO3hE,KAAKuF,MAAK,SAAU1F,EAAG0oG,GACxBA,EAAItjF,YACNsjF,EAAItjF,WAAWnH,YAAYyqF,EAE/B,GACF,EAMA,IAEIsG,GAFAC,GAAa,mBACfC,GAAc,mCAkBhB,SAAS5G,GAAUjyB,GAEjB,GAjBF,WACE,IAAI24B,GAAJ,CACA,IAAIG,EAAQ38E,EAAI1d,cAAc,SAC5Bs6F,EAAK58E,EAAI1d,cAAc,MACzBk6F,GAAa,CACX,IAAKx8E,EAAI1d,cAAc,OACvBs6F,GAAI58E,EAAI1d,cAAc,SACtBu6F,GAAID,EACJ3/D,GAAI2/D,EACJE,MAAOH,EACPI,MAAOJ,EACPK,MAAOL,EAVa,CAYxB,CAGEM,IACKp+F,EAASglE,GAAO,MAAO,GAC5B,GAAI64B,GAAY/kG,KAAKksE,GAAO,MAAO,CAAC7jD,EAAI1d,cAAc2F,OAAOi1F,KAC7D,IAAIt1F,EAAW60F,GAAW9kG,KAAKksE,IAAS57D,OAAOi1F,GAC7C9uD,EAAYouD,GAAW50F,IAAa40F,GAAW,KAEjD,OADApuD,EAAUumC,UAAY9Q,EACfmyB,EAAK5nD,EAAUl8B,YAAYo9C,SAASh+D,KAC7C,CAwCA,SAAS6rG,GAAcjxF,EAAQD,EAAOmxF,GACpC,QAAcpqG,IAAViZ,EAAJ,CACA,IAAIoxF,EAAQx+F,EAASoN,IAEhBoxF,GAASpxF,EAAM3d,OAClB4E,EAAK+Y,GAAO,SAAUiqF,GACpB,OAAOiH,GAAcjxF,EAAQgqF,EAAKkH,EACpC,IAEAlqG,EACEgZ,EACAmxF,EACI,SAAUnH,GACRA,EAAIoH,mBAAmBF,EAAU,aAAe,YAAanxF,EAC/D,EACA,SAAUiqF,EAAKznG,GACb,OA1BZ,SAAuBynG,EAAKjqF,EAAOmxF,GAC7BA,EACFlH,EAAIvrF,aAAasB,EAAOiqF,EAAIhkF,WAAW,IAEvCgkF,EAAI9jF,YAAYnG,EAEpB,CAoBmBsxF,CAAcrH,EAAMznG,EAAgBwd,EAAMowC,WAAU,GAAxBpwC,EAA+BmxF,EACpE,EAhBuB,CAmBjC,CA1DApH,EAAKF,UAAYA,GAgBjB3nG,EAAGwxC,MAAQ,WACT,IAAIu2D,EAAMvoG,KAAK,GAEf,GAAIuoG,EACF,KAAOA,EAAItrF,YACTsrF,EAAIzqF,YAAYyqF,EAAItrF,YAIxB,OAAOjd,IACT,EAoCAQ,EAAGwyF,OAAS,WACV,IAAI6c,EAAS7vG,KAKb,OAHAuF,EAAKpE,WAAW,SAAU4d,GACxBywF,GAAcK,EAAQ9wF,EACxB,IACO/e,IACT,EAGAQ,EAAGoxF,SAAW,SAAUrzE,GAEtB,OADAixF,GAAcnH,EAAK9pF,GAASve,MACrBA,IACT,EAGAQ,EAAG01E,KAAO,SAAUn3D,GAClB,QAAgB1Z,IAAZ0Z,EAAuB,OAAO/e,KAAK,IAAMA,KAAK,GAAGgnF,UACrD,IAAIz9D,EAASxK,EAAQiG,SAAWjG,EAAQ,GAAG+wF,UAAY/wF,EACvD,OAAO/e,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5BA,EAAIvhB,UAAYz9D,CAClB,GACF,EAGA/oB,EAAGuvG,YAAc,SAAUhxF,GACzB,IAAIixF,EAAShwG,KASb,OAPAqoG,EAAKtpF,GAASxZ,MAAK,SAAUzE,EAAOynG,GAClC,IAAIhqF,EAASgqF,EAAItjF,WAEjB+qF,EAAOzqG,MAAK,SAAU1F,EAAGqL,GACvBqT,EAAOvB,aAAclc,EAAYoK,EAAEwjD,WAAU,GAAhBxjD,EAAuBq9F,EAAI/iE,YAC1D,GACF,IACOxlC,IACT,EAMAQ,EAAGoC,MAAQ,WACT,IAAIqtG,EAASjwG,KAKb,OAHAuF,EAAKunB,EAAQvsB,MAAMY,YAAY,SAAU4d,GACvC+N,EAAQvsB,MAAM8nG,EAAKtpF,GAASze,SAASyvG,YAAYE,EACnD,IACOjwG,IACT,EAGAQ,EAAGwc,aAAe,SAAUtJ,GAC1B,IAAIw8F,EAASlwG,KASb,OAPAqoG,EAAK30F,GAAUnO,MAAK,SAAUzE,EAAOynG,GACnC,IAAIhqF,EAASgqF,EAAItjF,WAEjBirF,EAAO3qG,MAAK,SAAU1F,EAAGqL,GACvBqT,EAAOvB,aAAclc,EAAYoK,EAAEwjD,WAAU,GAAhBxjD,EAAuBq9F,EACtD,GACF,IACOvoG,IACT,EAIAQ,EAAGmC,OAAS,WACV,IAAIwtG,EAASnwG,KAKb,OAHAuF,EAAKpE,WAAW,SAAU4d,GACxBspF,EAAKtpF,GAAS/B,aAAamzF,EAC7B,IACOnwG,IACT,EAIAQ,EAAGivG,QAAU,WACX,IAAIW,EAASpwG,KAKb,OAHAuF,EAAKpE,WAAW,SAAU4d,GACxBywF,GAAcY,EAAQrxF,GAAS,EACjC,IACO/e,IACT,EAKAQ,EAAG6vG,UAAY,SAAU9xF,GAEvB,OADAixF,GAAcnH,EAAK9pF,GAASuO,EAAQvsB,MAAMP,KAAKM,UAAU,GAClDN,IACT,EAIAQ,EAAG4E,OAAS,WACV,OAAOpF,KAAK2hE,SAASx2D,KACvB,EAMA3K,EAAG8vG,YAAc,SAAUvxF,GACzB,IAAIwxF,EAAUvwG,KAEd,OAAOA,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5B,IAAIhqF,EAASgqF,EAAItjF,WACjB,GAAK1G,EAAL,CACA,IAAIiyF,EAAQ3wG,EAAIwoG,EAAKtpF,GAASxb,QAAU8kG,EAAKtpF,GAE7C,IAAKyxF,EAAM,GAGT,OAFAD,EAAQnrG,UAED,EAGTmZ,EAAOulB,aAAa0sE,EAAM,GAAIjI,GAC9BF,EAAKmI,EAAM,IAAI5tG,MAAM4tG,EAAMlwG,MAAM,GAVd,CAWrB,GACF,EAGAE,EAAGiwG,WAAa,SAAU1xF,GAExB,OADAspF,EAAKtpF,GAASuxF,YAAYtwG,MACnBA,IACT,EAGAQ,EAAGugB,KAAO,SAAUhC,GAClB,YAAgB1Z,IAAZ0Z,EAA8B/e,KAAK,GAAKA,KAAK,GAAGqrE,YAAc,GAC3DrrE,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAC5BA,EAAIl9B,YAActsD,CACpB,GACF,EAmBA,IAAI2xF,GAASr+E,GAAOA,EAAI2Z,gBAExBxrC,EAAG26B,OAAS,WACV,IAAIotE,EAAMvoG,KAAK,GACf,GAAKuoG,EAAL,CACA,IAAIjgE,EAAOigE,EAAI/4E,wBACf,MAAO,CACLsZ,IAAKR,EAAKQ,IAAMkvD,EAAI5rD,YAAcskE,GAAOC,UACzCjhF,KAAM4Y,EAAK5Y,KAAOsoE,EAAIjsD,YAAc2kE,GAAOvhE,WAJ7B,CAMlB,EAEA3uC,EAAGswE,aAAe,WAChB,OAAOu3B,EAAKroG,KAAK,IAAMA,KAAK,GAAG8wE,aACjC,EAEAtwE,EAAG+lC,SAAW,WACZ,IAAIgiE,EAAMvoG,KAAK,GACf,GAAKuoG,EACL,MAAO,CACL74E,KAAM64E,EAAIn5D,WACVtG,IAAKy/D,EAAInhE,UAEb,EASA5mC,EAAG+xB,SAAW,SAAU7e,GACtB,IAAIxG,EAAS,GAKb,OAJAlN,KAAKuF,MAAK,SAAU1F,EAAG0oG,GACrB5jG,EAAKpE,MAAM2M,EAAQq7F,EAAIh2E,SACzB,IACArlB,EAASm7F,EAAKmB,EAAOt8F,IAChBwG,EACExG,EAAO+I,QAAO,SAAUpW,EAAG0oG,GAChC,OAAO76F,EAAQ66F,EAAK70F,EACtB,IAHsBxG,CAIxB,EAIA1M,EAAGowG,SAAW,WACZ,IAAI1jG,EAAS,GAIb,OAHAlN,KAAKuF,MAAK,SAAU1F,EAAG0oG,GACrB5jG,EAAKpE,MAAM2M,EAAwB,WAAhBq7F,EAAI90F,QAAuB,CAAC80F,EAAI9Y,iBAAmB8Y,EAAIhkF,WAC5E,IACO8jF,EAAKn7F,EAAOvM,QAAU6oG,EAAOt8F,GACtC,EAKA1M,EAAGoT,KAAO,SAAUF,GAGlB,IAFA,IAAIxG,EAAS,GAEJrN,EAAI,EAAGoC,EAAIjC,KAAKW,OAAQd,EAAIoC,EAAGpC,IAAK,CAC3C,IAAIyqB,EAAQ1W,EAAKF,EAAU1T,KAAKH,IAE5ByqB,EAAM3pB,QACRgE,EAAKpE,MAAM2M,EAAQod,E,CAIvB,OAAO+9E,EAAKn7F,EAAOvM,QAAU6oG,EAAOt8F,GACtC,EAKA1M,EAAGiN,IAAM,SAAUiG,GACjB,IAAI7D,EAAaqB,EAASwC,GACtB,SAAU7T,EAAG0oG,GACX,QAAS30F,EAAKF,EAAU60F,GAAK5nG,MAC/B,EACA,SAAUd,EAAG0oG,GACX,OAAOA,EAAI7jG,SAASgP,EACtB,EACJ,OAAO1T,KAAKiW,OAAOpG,EACrB,EAIArP,EAAG6oG,GAAK,SAAU31F,GAChB,IAAKA,IAAa1T,KAAK,GAAI,OAAO,EAClC,IAAI6P,EAAau5F,EAAmB11F,GAChC80D,GAAQ,EAKZ,OAJAxoE,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAErB,QADA//B,EAAQ34D,EAAWhQ,EAAG0oG,EAAK70F,GAE7B,IACO80D,CACT,EAEAhoE,EAAG2S,KAAO,WACR,OAAOk1F,EAAKroG,KAAK,IAAMA,KAAK,GAAG6wG,mBACjC,EAIArwG,EAAGswG,IAAM,SAAUp9F,GACjB,IAAKA,IAAa1T,KAAK,GAAI,OAAOA,KAClC,IAAI6P,EAAau5F,EAAmB11F,GACpC,OAAO1T,KAAKiW,QAAO,SAAUpW,EAAG0oG,GAC9B,OAAQ14F,EAAWhQ,EAAG0oG,EAAK70F,EAC7B,GACF,EAIAlT,EAAG+d,OAAS,WACV,IAAIrR,EAAS,GAMb,OALAlN,KAAKuF,MAAK,SAAU1F,EAAG0oG,GACjBA,GAAOA,EAAItjF,YACb/X,EAAOvI,KAAK4jG,EAAItjF,WAEpB,IACOojF,EAAKmB,EAAOt8F,GACrB,EAOA1M,EAAGM,MAAQ,SAAUynG,GACnB,IAAIjqF,EAAQiqF,EAAMF,EAAKE,GAAK,GAAKvoG,KAAK,GACpCiF,EAAasjG,EAAMvoG,KAAOqoG,EAAK/pF,GAAOC,SAASgU,WACjD,OAAO1tB,EAAQjE,KAAKqE,EAAYqZ,EAClC,EAeA9d,EAAGuwG,QAAU,SAAUr9F,GACrB,OAAKA,GAAa1T,KAAK,GACnBA,KAAKqpG,GAAG31F,GAAkB1T,KAAKiW,OAAOvC,GACnC1T,KAAKue,SAASwyF,QAAQr9F,GAFK20F,GAGpC,EAMA7nG,EAAGwwG,QAAU,SAAUt9F,GACrB,IACIsD,EADA9J,EAAS,GAab,OAXAlN,KAAKuF,MAAK,SAAU1F,EAAG0oG,GAGrB,IAFAvxF,EAAOuxF,EAEAvxF,GAAQA,EAAKiO,YAAcjO,IAASqb,EAAIvV,KAAKmI,YAClDjO,EAAOA,EAAKiO,aAEPvR,GAAaA,GAAYhG,EAAQsJ,EAAMtD,KAC1CxG,EAAOvI,KAAKqS,EAGlB,IACOqxF,EAAKmB,EAAOt8F,GACrB,EAEA1M,EAAG0N,KAAO,WACR,OAAOm6F,EAAKroG,KAAK,IAAMA,KAAK,GAAGixG,uBACjC,EAKAzwG,EAAG0wG,SAAW,WACZ,IAAI3I,EAAMvoG,KAAK,GACf,OAAOA,KAAKue,SACTgU,WACAtc,QAAO,SAAUpW,EAAGye,GACnB,OAAOA,IAAUiqF,CACnB,GACJ,EAuBA,U,2ZC71CM4I,EAAU,MACVC,EAAW,aAGJC,EAAY,iEAEZC,EAAQ,SAACl9F,GAAqB,OAAAA,GAAsB,IAAhBA,EAAG4Q,QAAT,EAE9BusF,EAAW,SAACn9F,GACvB,IAAMmK,EAASnK,GAAMA,EAAG6Q,WACxB1G,GAAUA,EAAOT,YAAY1J,EAC/B,EAEO,SAASw/D,I,IAAG,sDACjB,IAAM9P,EAAM1jE,MAAMc,QAAQswG,EAAO,IAAMA,EAAO,GAAK,EAAD,GAAKA,GAAM,GAC7D,OAAO1tC,EAAI7tD,OAAOuvE,SAAS/1B,KAAK,IAClC,CAEO,IAAM77C,EAAO,SAACQ,EAAiBm6F,GAAkB,OAAAn6F,EAAGghF,iBAAiBmZ,EAApB,EAE3CkD,EAAS,SAACr9F,EAAkBtH,GACvC,YADuC,IAAAA,IAAAA,EAAA,IACvCsH,GAAMA,EAAG2Q,eAAgB,IAAAxf,MAAKuH,GAAO,SAACpF,EAAOrG,GAAQ,OAAA+S,EAAG2Q,aAAa1jB,EAAKqG,EAArB,GAArD,EAEWgqG,EAAY,SAACt9F,GACxB,OAAOA,MAASA,EAAGgb,aAAehb,EAAG+a,cAAgB/a,EAAGw0B,iBAAiBjoC,OAC3E,EAMa2vG,EAAc,SAACqB,EAAoBC,G,MAC9B,QAAhB,EAAAD,EAAM1sF,kBAAU,SAAE6e,aAAa8tE,EAAOD,EACxC,EAEaE,EAAgB,SAACtzF,EAAwCD,EAAkBxd,GAC9E,IAAAyjB,EAAehG,EAAM,WACvBuzF,EAAQvtF,EAAW5jB,OACnB8C,GAAK,IAAAmmF,aAAY9oF,GAASgxG,EAAQhxG,GAEpC,IAAAoQ,UAASoN,KAEXC,EAAOoxF,mBAAmB,YAAarxF,GACvCA,EAAQC,EAAO0hB,UACf1hB,EAAOT,YAAYQ,IAGjB7a,GAAMquG,EACRvzF,EAAOkG,YAAYnG,GAEnBC,EAAOvB,aAAasB,EAAOiG,EAAW9gB,GAE1C,EAEauvF,EAAS,SAACz0E,EAAqBD,GAAqB,OAAAuzF,EAActzF,EAAQD,EAAtB,EAEpDyzF,EAAW,SAACptF,EAAa7X,EAAuBwR,QAAvB,IAAAxR,IAAAA,EAAA,IACpC,IAAMsH,EAAKM,SAASC,cAAcgQ,GAQlC,OAPA7X,IAAS,IAAAvH,MAAKuH,GAAO,SAACpF,EAAOrG,GAAQ,OAAA+S,EAAG2Q,aAAa1jB,EAAKqG,EAArB,IAEjC4W,KACE,IAAApN,UAASoN,GAAQlK,EAAG4yE,UAAY1oE,EAC/BlK,EAAGqQ,YAAYnG,IAGflK,CACT,EAEa49F,EAAa,SAACpoF,GAAgB,OAAAlV,SAASmQ,eAAe+E,EAAxB,EAM9BqoF,EAAoB,SAAC/mG,EAAQgZ,GACxC,IAAIguF,EACI1vG,EAAS0I,EAAC,KAClB,IAEEgnG,EAAS,IAAInyG,OAAOmkB,GAAK1hB,EAAM0I,E,CAC/B,MAAOinG,IACPD,EAASx9F,SAASk5F,YAAY1pF,IACvB2pF,UAAUrrG,GAAM,GAAM,E,CAa/B,OAXA0vG,EAAOE,aAAelnG,EACM,IAAxB1I,EAAKqC,QAAQ,SACfqtG,EAAOG,WAAannG,EAAEgrD,QACtB,CAAC,UAAW,SAASzgD,SAAQ,SAAAgR,GAC3BuC,OAAOspF,eAAeJ,EAAQzrF,EAAM,CAClC9iB,IAAG,WACD,OAAO3D,KAAKqyG,UACd,GAEJ,KAEKH,CACT,EAOaK,EAAe,SAACluF,EAAmBmuF,QAAA,IAAAA,IAAAA,EAAA,KAC5BpyG,MAAMc,QAAQsxG,GAAUA,EAAS,CAACA,IAC1C/8F,SAAQ,SAAAg9F,GAChB,IAAM9tF,EAAM8tF,EAAMtB,IAAY,MACxB3pG,EAAOirG,EAAMrB,IAAa,CAAC,EAC3Bh9F,EAAKM,SAASC,cAAcgQ,IAElC,IAAApf,MAAKiC,GAAM,SAACE,EAAOrG,GACjB+S,EAAG2Q,aAAa1jB,EAAKqG,EACvB,IAEA2c,EAAKI,YAAYrQ,EACnB,GACF,EAKas+F,EAAoB,SAACt+F,GAChC,IAAMie,GAAMje,aAAE,EAAFA,EAAI8b,gBAAiBxb,SAC3B21F,EAAQh4E,EAAI2Z,gBACZgsD,EAAM3lE,EAAI00E,aAAehnG,OAE/B,MAAO,CACL8zB,GAAImkE,EAAIjsD,aAAes+D,EAAMp+D,YAAc,IAAMo+D,EAAMl7D,YAAc,GACrEvB,GAAIoqD,EAAI5rD,aAAei+D,EAAMh+D,WAAa,IAAMg+D,EAAMsG,WAAa,GAEvE,C,4oCC9IagC,EAAQ,SAACjrG,GAAe,YAAiB,IAAVA,CAAP,EAExB82F,EAAS,WAAM,MAAkB,oBAAXz+F,MAAP,EAEf6yG,EAAY,WACvB,MAAsB,oBAAf9yG,WAA6BA,WAA+B,oBAAXC,OAAyBA,OAAS,EAAA8I,CAA1F,EAEWugB,EAAc,SAACQ,GAAgB,OAACA,GAAO,IAAIR,aAAZ,EAEtCypF,EAASrU,IAAWz+F,OAAO+yG,QAAQzyG,UAAY,CAAC,EAEhDqN,EAAUmlG,EAAOnlG,SAAWmlG,EAAO/J,uBAAyB+J,EAAO9J,oBAAsB8J,EAAO7J,kBAEzF+J,EAAa,SAAC7vB,EAAiB8vB,GACpC,MAA4B9vB,EAAG0D,YAA7B1C,EAAW,cACnB,MAAO,CADsB,YACT,UAAGA,EAAW,OAAO8uB,GAAQ/8F,QAAO,SAAApW,GAAK,OAAAA,CAAA,IAAG4vD,KAAK,IACvE,EAMMwjD,EAAe,SAACz8E,EAAY3sB,QAAA,IAAAA,IAAAA,EAAA,IAChC,IAAMqpG,GAAO,IAAAhyG,SAAQs1B,GAAU,EAAD,GAAKA,GAAM,GAAI,CAACA,GAE9C,GAAI08E,EAAKvyG,OAAQ,CACf,IAAM6a,EAAO03F,EAAKrvG,QAElB,GAAI2X,KAAU3R,EAAK2/F,SAAW90F,SAASwrB,cAAc,sBAAc1kB,EAAI,SAAQ,CACrE,IAAA7E,EAASjC,SAAQ,KACnBy+F,EAAOz+F,SAASC,cAAc,QACpCw+F,EAAK33F,KAAOA,EACZ23F,EAAKhtD,IAAM,aAEPt8C,EAAKupG,QACPz8F,EAAKqG,aAAam2F,EAAMx8F,EAAKsG,YAE7BtG,EAAK8N,YAAY0uF,E,CAIrBF,EAAaC,E,CAEjB,EAaMG,EAAc,SAACC,EAA8BC,GACjD,IAAMrmG,EAA8B,CAAC,EAC/BsmG,GAAU,IAAAvyG,MAAKsyG,GAErB,IAAK,IAAI9sF,KAAQ6sF,EACf,GAAIA,EAAQ5sF,eAAeD,GAAO,CAChC,IAAMgtF,EAAYH,EAAQ7sF,GACpBitF,EAAWH,EAAO9sF,GAEpB+sF,EAAQ3uG,QAAQ4hB,IAAS,EACvBgtF,IAAcC,IAChBxmG,EAAOuZ,GAAQitF,GAGjBxmG,EAAOuZ,GAAQ,I,CAKrB,IAAK,IAAIA,KAAQ8sF,EACXA,EAAO7sF,eAAeD,KACpB,IAAAmjE,aAAY0pB,EAAQ7sF,MACtBvZ,EAAOuZ,GAAQ8sF,EAAO9sF,IAK5B,OAAOvZ,CACT,EAEMzF,EAAK,SACT2M,EACA5H,EACAhM,EACAqJ,GAEA,IAAM8pG,EAAMnnG,EAAGvC,MAAM,OACrBmK,EAAKA,aAAchU,MAAQgU,EAAK,CAACA,GAEjC,I,eAASvU,GACPuU,EAAGqB,SAAQ,SAAAmlF,GAAQ,OAAAA,GAAQA,EAAKt9E,iBAAiBq2F,EAAI9zG,GAAIW,EAAIqJ,EAA1C,G,EADZhK,EAAI,EAAGA,EAAI8zG,EAAIhzG,SAAUd,E,EAAzBA,EAGX,EAEMsL,EAAM,SACViJ,EACA5H,EACAhM,EACAqJ,GAEA,IAAM8pG,EAAMnnG,EAAGvC,MAAM,OACrBmK,EAAKA,aAAchU,MAAQgU,EAAK,CAACA,GAEjC,I,eAASvU,GACPuU,EAAGqB,SAAQ,SAAAmlF,GAAQ,OAAAA,GAAQA,EAAKh9E,oBAAoB+1F,EAAI9zG,GAAIW,EAAIqJ,EAA7C,G,EADZhK,EAAI,EAAGA,EAAI8zG,EAAIhzG,SAAUd,E,EAAzBA,EAGX,EAEMs8F,EAAmB,SAACz0F,GACxB,OAAOA,EAAM+H,QAAQ84E,WAAW7gF,GAAQ,GAC1C,EAEMksG,EAAU,SAAClsG,GAAkB,OAAAA,EAAM,GAAGyhB,cAAgBzhB,EAAM0hB,cAAc9oB,MAAM,EAAnD,EAE7BooG,EAAY,SAAChhG,GACjB,OAAOA,EAAM+H,QAAQ,OAAO,SAAAokB,GAAK,OAAAA,EAAE,GAAG1K,aAAL,GACnC,EAEM0qF,EAAiB,SAACnsG,EAAYosG,EAAUC,QAAV,IAAAD,IAAAA,EAAA,QAAU,IAAAC,IAAAA,EAAA,GAC5C,IAAIC,EAAe,EACnB,GAAIpsE,MAAMlgC,GAAQ,OAAOqsG,EAGzB,GAFArsG,EAAQ6gF,WAAW7gF,GAEfwE,KAAKie,MAAMziB,KAAWA,EAAO,CAC/B,IAAM2rC,EAAOygE,EAAKlsF,WAAW3d,MAAM,KAAK,GACxC+pG,EAAe3gE,EAAOA,EAAK1yC,OAAS,C,CAGtC,OAAOqzG,EAAezrB,WAAW7gF,EAAMusG,QAAQD,IAAiBtsG,CAClE,EAEMwsG,EAAS,SAAChxB,GACd,MAAO,cAAexuE,SAASC,cAAc,QAASuuE,GAAKA,EAAGjrE,OAAOk8F,UACvE,EAOMzvB,EAAa,SAACtwE,GAClB,OAAI,IAAAw6E,WAAUx6E,IAAOksF,EAAWlsF,GACvBA,EAEEA,GAAMA,EAAGuxE,MAEXvxE,EAAGuxE,aAFL,CAIT,EAOM2a,EAAa,SAAClsF,GAAoB,OAAAA,GAAsB,IAAhBA,EAAG4Q,QAAT,EAO3BovF,EAAgB,SAAChgG,GAAoB,OAAAA,GAAsB,IAAhBA,EAAG4Q,QAAT,EAOrC+1E,EAAiB,SAAC3mF,GAAoB,OAAAA,IAAOksF,EAAWlsF,KAAQggG,EAAchgG,EAAxC,EAEtCR,EAAO,SAAC/S,EAAYmJ,GAC/B,IAAIkD,EAAS,KAEb,OADArM,EAAI0Q,MAAK,SAAC6C,EAAIvU,GAAM,OAACmK,EAAKoK,EAAIvU,EAAGgB,IAASqM,EAASkH,EAAK,GAAK,CAAzC,IACblH,CACT,EAEaM,EAAS,SAACoc,GACrB,YADqB,IAAAA,IAAAA,EAAA,IACd,UAAGA,GACPna,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,QACnB,EAEa4kG,EAAoB,SAACzqF,GAChC,YADgC,IAAAA,IAAAA,EAAA,IACzB,UAAGA,GAAMna,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OAC7E,EAEa6kG,EAAY,W,IAAC,sDAGxB,IAFA,IAAM/tF,EAAS,EAAH,GAAQ7lB,EAAK,IAEhBb,EAAI,EAAGA,EAAIa,EAAKC,OAAQd,IAAK,CACpC,IAAM0pB,EAAS,EAAH,GAAQ7oB,EAAKb,IAEzB,IAAK,IAAIwB,KAAOkoB,EAAQ,CACtB,IAAMgrF,EAAYhuF,EAAOllB,GACnBmzG,EAAWjrF,EAAOloB,GAEpBqF,EAAS6tG,IAAc7tG,EAAS8tG,GAClCjuF,EAAOllB,GAAOizG,EAAUC,EAAWC,GAEnCjuF,EAAOllB,GAAOmzG,C,EAKpB,OAAOjuF,CACT,EAOMw/D,EAAW,SAAC3xE,EAASrL,GACzB,IAAI5D,EAAQiP,EAMZ,OALKrL,GAAKqL,GAAMA,EAAGqgG,WACjBtvG,EAAQiP,EAAGqgG,WAAWtvG,OACb,IAAAypF,WAAUx6E,KACnBjP,EAAQ4D,EAAEqL,GAAIsE,KAAK,UAEdvT,CACT,EAEMuvG,EAAY,SAACtgG,GACjB,IAOIugG,EAPE3wB,EAAM,CACVl7C,IAAK,EACLpZ,KAAM,EACNyW,MAAO,EACPrT,OAAQ,GAEV,IAAK1e,EAAI,OAAO4vE,EAGhB,GAAIsc,EAAWlsF,GAAK,CAClB,IAAM+P,EAAQzP,SAASgR,cACvBvB,EAAMywF,WAAWxgG,GACjBugG,EAAWxwF,EAAMqL,wBACjBrL,EAAMw9C,Q,CAGR,OAAOgzC,IAAavgG,EAAGob,sBAAwBpb,EAAGob,wBAA0Bw0D,EAC9E,EAOMojB,EAAkB,SAAC56F,GAEvB,OAAAA,EAAGk0D,SAAWl0D,EAAGk0D,QAAQ,GAAKl0D,EAAGk0D,QAAQ,GAAKl0D,CAA9C,EAOIqoG,EAAa,SAACroG,GAAsB,OAAAA,EAAGzK,OAASyK,EAAG0pD,OAAf,EACpC2sB,EAAa,SAACr2E,GAAsB,OAAA8mB,OAAO+hC,aAAaw/C,EAAWroG,GAA/B,EACpCo6F,EAAW,SAACp6F,GAAsB,OAAmB,KAAnBqoG,EAAWroG,EAAX,EAClCsoG,EAAa,SAACtoG,GAAsB,OAAmB,KAAnBqoG,EAAWroG,EAAX,EACpC9F,EAAW,SAACT,GAA4B,OAAQ,OAARA,IAAiB7F,MAAMc,QAAQ+E,IAAuB,iBAARA,CAA9C,EACxC8uG,EAAa,SAAC9uG,GAA6B,OAAA+iB,OAAO/nB,KAAKgF,GAAKtF,QAAU,CAA3B,EAE3Cq0G,EAAa,SAACprF,GAAqB,YAArB,IAAAA,IAAAA,EAAA,IAAqBA,GAAOA,EAAIhO,OAAO,GAAGuN,cAAgBS,EAAIjJ,UAAU,EAAnD,EACnCs0F,EAAc,SAACj0G,GAAa,OAAAA,GAAOA,EAAIk0G,MAAX,EAC5BC,EAAS,SAACn0G,GAAa,OAAAA,GAAOA,EAAIo0G,KAAX,EAEvB/c,EAAY,SAACjkF,GAAY,OAAAA,EAAGihG,MAAH,EACzBC,EAAY,SAAClhG,EAASkuB,GAC1BluB,EAAGihG,OAAS/yE,CACd,EAEMizE,EAAW,SAAC50G,QAAA,IAAAA,IAAAA,EAAA,IAIhB,IAHA,IAAIuM,EAAS,GACPsoG,EAAQ,iEACR/pF,EAAM+pF,EAAM70G,OACTd,EAAI,EAAGA,EAAIc,EAAQd,IAC1BqN,GAAUsoG,EAAM55F,OAAO1P,KAAKie,MAAMje,KAAKupG,SAAWhqF,IAEpD,OAAOve,CACT,EAEawoG,EAAwB,SAACC,GACpC,GAAIA,GAA4B,SAArBA,EAAIj1F,OAAO,EAAG,GAAe,CACtC,IAAIk1F,EAAY,GAQhB,OANIpX,IACFoX,EAAY71G,OAAO81G,KAAKF,GACG,oBAAXG,SAChBF,EAAYE,OAAOr2F,KAAKk2F,EAAK,QAAQ/tF,SAAS,WAGzCguF,EAAY,oCAA6BA,GAAcD,C,CAGhE,OAAOA,CACT,C,gBCtTA,IAAI7wG,EAAM,CACT,gBAAiB,IACjB,mBAAoB,IACpB,eAAgB,IAChB,kBAAmB,IACnB,oBAAqB,IACrB,uBAAwB,IACxB,oBAAqB,IACrB,uBAAwB,IACxB,kBAAmB,IACnB,qBAAsB,IACtB,mBAAoB,IACpB,sBAAuB,IACvB,kBAAmB,IACnB,qBAAsB,IACtB,kBAAmB,IACnB,qBAAsB,IACtB,kBAAmB,IACnB,qBAAsB,IACtB,wBAAyB,IACzB,2BAA4B,IAC5B,kBAAmB,IACnB,qBAAsB,IACtB,oBAAqB,IACrB,uBAAwB,IACxB,mBAAoB,IACpB,sBAAuB,IACvB,eAAgB,IAChB,kBAAmB,IACnB,kBAAmB,IACnB,qBAAsB,IACtB,eAAgB,IAChB,kBAAmB,IACnB,eAAgB,IAChB,kBAAmB,IACnB,eAAgB,IAChB,kBAAmB,IACnB,qBAAsB,IACtB,wBAAyB,IACzB,qBAAsB,IACtB,wBAAyB,IACzB,mBAAoB,GACpB,sBAAuB,GACvB,YAAa,IACb,eAAgB,IAChB,WAAY,IACZ,cAAe,IACf,oBAAqB,IACrB,uBAAwB,IACxB,mBAAoB,IACpB,sBAAuB,IACvB,eAAgB,IAChB,kBAAmB,IACnB,qBAAsB,IACtB,wBAAyB,KAI1B,SAASixG,EAAeC,GACvB,IAAI1rG,EAAK2rG,EAAsBD,GAC/B,OAAOE,EAAoB5rG,EAC5B,CACA,SAAS2rG,EAAsBD,GAC9B,IAAIE,EAAoB//E,EAAErxB,EAAKkxG,GAAM,CACpC,IAAI9qG,EAAI,IAAI6G,MAAM,uBAAyBikG,EAAM,KAEjD,MADA9qG,EAAE8f,KAAO,mBACH9f,CACP,CACA,OAAOpG,EAAIkxG,EACZ,CACAD,EAAe90G,KAAO,WACrB,OAAO+nB,OAAO/nB,KAAK6D,EACpB,EACAixG,EAAeI,QAAUF,EACzBx2G,EAAOD,QAAUu2G,EACjBA,EAAezrG,GAAK,G,itIC1Eb,IAAIrB,EAAU,SAKV3J,EAAuB,iBAARsJ,MAAoBA,KAAKA,OAASA,MAAQA,MACxC,iBAAVE,QAAsBA,OAAOA,SAAWA,QAAUA,QAC1DstG,SAAS,cAATA,IACA,CAAC,EAGAC,EAAaj2G,MAAMC,UAAWi2G,EAAWttF,OAAO3oB,UAChDk2G,EAAgC,oBAAX1jG,OAAyBA,OAAOxS,UAAY,KAGjEsE,EAAO0xG,EAAW1xG,KACzBrE,EAAQ+1G,EAAW/1G,MACnB,EAAWg2G,EAAS1uF,SACpB,EAAiB0uF,EAAS5vF,eAGnB8vF,EAA6C,oBAAhBC,YACpCC,EAAuC,oBAAbC,SAInBC,EAAgBx2G,MAAMc,QAC7B21G,EAAa7tF,OAAO/nB,KACpB61G,EAAe9tF,OAAO9W,OACtB6kG,EAAeP,GAAuBC,YAAYO,OAG3CC,EAASrvE,MAChBsvE,EAAY/N,SAGLgO,GAAc,CAACvvF,SAAU,MAAMwwD,qBAAqB,YACpDg/B,EAAqB,CAAC,UAAW,gBAAiB,WAC3D,uBAAwB,iBAAkB,kBAGjCC,EAAkBnrG,KAAKorG,IAAI,EAAG,IAAM,ECrChC,SAASC,EAAchmC,EAAM/wD,GAE1C,OADAA,EAA2B,MAAdA,EAAqB+wD,EAAK5wE,OAAS,GAAK6f,EAC9C,WAIL,IAHA,IAAI7f,EAASuL,KAAKC,IAAIhL,UAAUR,OAAS6f,EAAY,GACjD1J,EAAO1W,MAAMO,GACbG,EAAQ,EACLA,EAAQH,EAAQG,IACrBgW,EAAKhW,GAASK,UAAUL,EAAQ0f,GAElC,OAAQA,GACN,KAAK,EAAG,OAAO+wD,EAAK3wE,KAAKZ,KAAM8W,GAC/B,KAAK,EAAG,OAAOy6D,EAAK3wE,KAAKZ,KAAMmB,UAAU,GAAI2V,GAC7C,KAAK,EAAG,OAAOy6D,EAAK3wE,KAAKZ,KAAMmB,UAAU,GAAIA,UAAU,GAAI2V,GAE7D,IAAIpW,EAAON,MAAMogB,EAAa,GAC9B,IAAK1f,EAAQ,EAAGA,EAAQ0f,EAAY1f,IAClCJ,EAAKI,GAASK,UAAUL,GAG1B,OADAJ,EAAK8f,GAAc1J,EACZy6D,EAAKhxE,MAAMP,KAAMU,EAC1B,CACF,CCzBe,SAASgG,EAAS1F,GAC/B,IAAIwB,SAAcxB,EAClB,MAAgB,aAATwB,GAAiC,WAATA,KAAuBxB,CACxD,CCHe,SAASw2G,EAAOx2G,GAC7B,OAAe,OAARA,CACT,CCFe,SAAS4oF,EAAY5oF,GAClC,YAAe,IAARA,CACT,CCAe,SAASy2G,EAAUz2G,GAChC,OAAe,IAARA,IAAwB,IAARA,GAAwC,qBAAvB,OAAcA,EACxD,CCJe,SAAS4tF,EAAU5tF,GAChC,SAAUA,GAAwB,IAAjBA,EAAIgkB,SACvB,CCAe,SAAS0yF,EAAU/tG,GAChC,IAAIgb,EAAM,WAAahb,EAAO,IAC9B,OAAO,SAAS3I,GACd,OAAO,OAAcA,KAAS2jB,CAChC,CACF,CCNA,QAAe+yF,EAAU,UCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,QCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,SCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,eCCzB,IAAIr1G,EAAaq1G,EAAU,YAIvBC,EAAWr4G,EAAKoV,UAAYpV,EAAKoV,SAAS6P,WAC1C,GAAgD,iBAAbqzF,WAA4C,mBAAZD,IACrEt1G,EAAa,SAASrB,GACpB,MAAqB,mBAAPA,IAAqB,CACrC,GAGF,UCZA,EAAe02G,EAAU,UCIlB,IAAIG,EACLnB,GAAoB,EAAa,IAAIC,SAAS,IAAIF,YAAY,KAEhEqB,EAAyB,oBAARC,KAAuB,EAAa,IAAIA,KCJzDC,EAAaN,EAAU,YAQ3B,QAAgBG,EAJhB,SAAwB72G,GACtB,OAAc,MAAPA,GAAe,EAAWA,EAAIi3G,UAAYC,EAAcl3G,EAAIm3G,OACrE,EAEmDH,ECRnD,EAAepB,GAAiBc,EAAU,SCF3B,SAASjqG,EAAIzM,EAAKK,GAC/B,OAAc,MAAPL,GAAe,OAAoBA,EAAKK,EACjD,CCFA,IAAIuG,EAAc8vG,EAAU,cAI3B,WACM9vG,EAAYzG,aACfyG,EAAc,SAAS5G,GACrB,OAAOyM,EAAIzM,EAAK,SAClB,EAEJ,CANA,GAQA,UCXe,SAAS,EAASA,GAC/B,OAAQo3G,EAASp3G,IAAQk2G,EAAUl2G,KAAS4mC,MAAM2gD,WAAWvnF,GAC/D,CCFe,SAAS,EAAMA,GAC5B,OAAOq3G,EAASr3G,IAAQi2G,EAAOj2G,EACjC,CCLe,SAASs3G,EAAS5wG,GAC/B,OAAO,WACL,OAAOA,CACT,CACF,CCFe,SAAS6wG,EAAwBC,GAC9C,OAAO,SAASvzG,GACd,IAAIwzG,EAAeD,EAAgBvzG,GACnC,MAA8B,iBAAhBwzG,GAA4BA,GAAgB,GAAKA,GAAgBpB,CACjF,CACF,CCPe,SAASqB,GAAgBr3G,GACtC,OAAO,SAASL,GACd,OAAc,MAAPA,OAAc,EAASA,EAAIK,EACpC,CACF,CCFA,SAAeq3G,GAAgB,cCE/B,GAAeH,EAAwB,ICCvC,IAAII,GAAoB,8EAQxB,SAAenC,EAPf,SAAsBx1G,GAGpB,OAAO+1G,EAAgBA,EAAa/1G,KAAS,EAAWA,GAC1C,GAAaA,IAAQ23G,GAAkB3uG,KAAK,OAAchJ,GAC1E,EAEoDs3G,GAAS,GCX7D,GAAeI,GAAgB,UCoBhB,SAASE,GAAoB53G,EAAKC,GAC/CA,EAhBF,SAAqBA,GAEnB,IADA,IAAIoc,EAAO,CAAC,EACHpb,EAAIhB,EAAKN,OAAQd,EAAI,EAAGA,EAAIoC,IAAKpC,EAAGwd,EAAKpc,EAAKpB,KAAM,EAC7D,MAAO,CACL6E,SAAU,SAASrD,GAAO,OAAqB,IAAdgc,EAAKhc,EAAe,EACrDsD,KAAM,SAAStD,GAEb,OADAgc,EAAKhc,IAAO,EACLJ,EAAK0D,KAAKtD,EACnB,EAEJ,CAMSw3G,CAAY53G,GACnB,IAAI63G,EAAa1B,EAAmBz2G,OAChCgP,EAAc3O,EAAI2O,YAClBopG,EAAS,EAAWppG,IAAgBA,EAAYtP,WAAci2G,EAG9D7vF,EAAO,cAGX,IAFIhZ,EAAIzM,EAAKylB,KAAUxlB,EAAKyD,SAAS+hB,IAAOxlB,EAAK0D,KAAK8hB,GAE/CqyF,MACLryF,EAAO2wF,EAAmB0B,MACd93G,GAAOA,EAAIylB,KAAUsyF,EAAMtyF,KAAUxlB,EAAKyD,SAAS+hB,IAC7DxlB,EAAK0D,KAAK8hB,EAGhB,CChCe,SAASxlB,GAAKD,GAC3B,IAAK0F,EAAS1F,GAAM,MAAO,GAC3B,GAAI61G,EAAY,OAAOA,EAAW71G,GAClC,IAAIC,EAAO,GACX,IAAK,IAAII,KAAOL,EAASyM,EAAIzM,EAAKK,IAAMJ,EAAK0D,KAAKtD,GAGlD,OADI81G,GAAYyB,GAAoB53G,EAAKC,GAClCA,CACT,CCPe,SAASqE,GAAQtE,GAC9B,GAAW,MAAPA,EAAa,OAAO,EAGxB,IAAIL,EAAS,GAAUK,GACvB,MAAqB,iBAAVL,IACTO,EAAQF,IAAQkQ,EAASlQ,IAAQ,EAAYA,IAC1B,IAAXL,EACsB,IAAzB,GAAUM,GAAKD,GACxB,CCde,SAASg4G,GAAQt2G,EAAQoK,GACtC,IAAImsG,EAAQh4G,GAAK6L,GAAQnM,EAASs4G,EAAMt4G,OACxC,GAAc,MAAV+B,EAAgB,OAAQ/B,EAE5B,IADA,IAAIK,EAAMgoB,OAAOtmB,GACR7C,EAAI,EAAGA,EAAIc,EAAQd,IAAK,CAC/B,IAAIwB,EAAM43G,EAAMp5G,GAChB,GAAIiN,EAAMzL,KAASL,EAAIK,MAAUA,KAAOL,GAAM,OAAO,CACvD,CACA,OAAO,CACT,CCPe,SAASf,GAAEe,GACxB,OAAIA,aAAef,GAAUe,EACvBhB,gBAAgBC,QACtBD,KAAKk5G,SAAWl4G,GADiB,IAAIf,GAAEe,EAEzC,CCLe,SAASm4G,GAAaC,GACnC,OAAO,IAAIC,WACTD,EAAajB,QAAUiB,EACvBA,EAAaE,YAAc,EAC3B,GAAcF,GAElB,CDCAn5G,GAAEgJ,QAAUA,EAGZhJ,GAAEI,UAAUqH,MAAQ,WAClB,OAAO1H,KAAKk5G,QACd,EAIAj5G,GAAEI,UAAUk5G,QAAUt5G,GAAEI,UAAUiN,OAASrN,GAAEI,UAAUqH,MAEvDzH,GAAEI,UAAUunB,SAAW,WACrB,OAAO0L,OAAOtzB,KAAKk5G,SACrB,EEZA,IAAIM,GAAc,oBAGlB,SAASlR,GAAG1oG,EAAG4lB,EAAGi0F,EAAQC,GAGxB,GAAI95G,IAAM4lB,EAAG,OAAa,IAAN5lB,GAAW,EAAIA,GAAM,EAAI4lB,EAE7C,GAAS,MAAL5lB,GAAkB,MAAL4lB,EAAW,OAAO,EAEnC,GAAI5lB,GAAMA,EAAG,OAAO4lB,GAAMA,EAE1B,IAAIhjB,SAAc5C,EAClB,OAAa,aAAT4C,GAAgC,WAATA,GAAiC,iBAALgjB,IAChDm0F,GAAO/5G,EAAG4lB,EAAGi0F,EAAQC,EAC9B,CAGA,SAASC,GAAO/5G,EAAG4lB,EAAGi0F,EAAQC,GAExB95G,aAAaK,KAAGL,EAAIA,EAAEs5G,UACtB1zF,aAAavlB,KAAGulB,EAAIA,EAAE0zF,UAE1B,IAAItkG,EAAY,OAAchV,GAC9B,GAAIgV,IAAc,OAAc4Q,GAAI,OAAO,EAE3C,GAAIqyF,GAAgC,mBAAbjjG,GAAkC,EAAWhV,GAAI,CACtE,IAAK,EAAW4lB,GAAI,OAAO,EAC3B5Q,EAAY4kG,EACd,CACA,OAAQ5kG,GAEN,IAAK,kBAEL,IAAK,kBAGH,MAAO,GAAKhV,GAAM,GAAK4lB,EACzB,IAAK,kBAGH,OAAK5lB,IAAOA,GAAW4lB,IAAOA,EAEhB,IAAN5lB,EAAU,GAAKA,GAAM,EAAI4lB,GAAK5lB,IAAO4lB,EAC/C,IAAK,gBACL,IAAK,mBAIH,OAAQ5lB,IAAO4lB,EACjB,IAAK,kBACH,OAAO+wF,EAAYgD,QAAQ34G,KAAKhB,KAAO22G,EAAYgD,QAAQ34G,KAAK4kB,GAClE,IAAK,uBACL,KAAKg0F,GAEH,OAAOG,GAAOR,GAAav5G,GAAIu5G,GAAa3zF,GAAIi0F,EAAQC,GAG5D,IAAIE,EAA0B,mBAAdhlG,EAChB,IAAKglG,GAAa,GAAah6G,GAAI,CAE/B,GADiB,GAAcA,KACZ,GAAc4lB,GAAI,OAAO,EAC5C,GAAI5lB,EAAEu4G,SAAW3yF,EAAE2yF,QAAUv4G,EAAE05G,aAAe9zF,EAAE8zF,WAAY,OAAO,EACnEM,GAAY,CAChB,CACA,IAAKA,EAAW,CACd,GAAgB,iBAALh6G,GAA6B,iBAAL4lB,EAAe,OAAO,EAIzD,IAAIq0F,EAAQj6G,EAAE+P,YAAamqG,EAAQt0F,EAAE7V,YACrC,GAAIkqG,IAAUC,KAAW,EAAWD,IAAUA,aAAiBA,GACtC,EAAWC,IAAUA,aAAiBA,IACvC,gBAAiBl6G,GAAK,gBAAiB4lB,EAC7D,OAAO,CAEX,CAOAk0F,EAASA,GAAU,GAEnB,IADA,IAAI/4G,GAFJ84G,EAASA,GAAU,IAEC94G,OACbA,KAGL,GAAI84G,EAAO94G,KAAYf,EAAG,OAAO85G,EAAO/4G,KAAY6kB,EAQtD,GAJAi0F,EAAO90G,KAAK/E,GACZ85G,EAAO/0G,KAAK6gB,GAGRo0F,EAAW,CAGb,IADAj5G,EAASf,EAAEe,UACI6kB,EAAE7kB,OAAQ,OAAO,EAEhC,KAAOA,KACL,IAAK2nG,GAAG1oG,EAAEe,GAAS6kB,EAAE7kB,GAAS84G,EAAQC,GAAS,OAAO,CAE1D,KAAO,CAEL,IAAqBr4G,EAAjB43G,EAAQh4G,GAAKrB,GAGjB,GAFAe,EAASs4G,EAAMt4G,OAEXM,GAAKukB,GAAG7kB,SAAWA,EAAQ,OAAO,EACtC,KAAOA,KAGL,IAAM8M,EAAI+X,EADVnkB,EAAM43G,EAAMt4G,MACS2nG,GAAG1oG,EAAEyB,GAAMmkB,EAAEnkB,GAAMo4G,EAAQC,GAAU,OAAO,CAErE,CAIA,OAFAD,EAAO71G,MACP81G,EAAO91G,OACA,CACT,CAGe,SAASuK,GAAQvO,EAAG4lB,GACjC,OAAO8iF,GAAG1oG,EAAG4lB,EACf,CCpIe,SAASu0F,GAAQ/4G,GAC9B,IAAK0F,EAAS1F,GAAM,MAAO,GAC3B,IAAIC,EAAO,GACX,IAAK,IAAII,KAAOL,EAAKC,EAAK0D,KAAKtD,GAG/B,OADI81G,GAAYyB,GAAoB53G,EAAKC,GAClCA,CACT,CCJO,SAAS+4G,GAAgB5kG,GAC9B,IAAIzU,EAAS,GAAUyU,GACvB,OAAO,SAASpU,GACd,GAAW,MAAPA,EAAa,OAAO,EAExB,IAAIC,EAAO84G,GAAQ/4G,GACnB,GAAI,GAAUC,GAAO,OAAO,EAC5B,IAAK,IAAIpB,EAAI,EAAGA,EAAIc,EAAQd,IAC1B,IAAK,EAAWmB,EAAIoU,EAAQvV,KAAM,OAAO,EAK3C,OAAOuV,IAAY6kG,KAAmB,EAAWj5G,EAAIk5G,IACvD,CACF,CAIA,IAAIA,GAAc,UACdC,GAAU,MACVC,GAAa,CAAC,QAAS,UACvBC,GAAU,CAAC,MAAOF,GAAS,OAIpBG,GAAaF,GAAWr1G,OAAOm1G,GAAaG,IACnDJ,GAAiBG,GAAWr1G,OAAOs1G,IACnCE,GAAa,CAAC,OAAOx1G,OAAOq1G,GAAYF,GAAaC,IChCzD,SAAerC,EAASkC,GAAgBM,IAAc5C,EAAU,OCAhE,GAAeI,EAASkC,GAAgBC,IAAkBvC,EAAU,WCApE,GAAeI,EAASkC,GAAgBO,IAAc7C,EAAU,OCFhE,GAAeA,EAAU,WCCV,SAAStlG,GAAOpR,GAI7B,IAHA,IAAIi4G,EAAQh4G,GAAKD,GACbL,EAASs4G,EAAMt4G,OACfyR,EAAShS,MAAMO,GACVd,EAAI,EAAGA,EAAIc,EAAQd,IAC1BuS,EAAOvS,GAAKmB,EAAIi4G,EAAMp5G,IAExB,OAAOuS,CACT,CCPe,SAAS0F,GAAM9W,GAI5B,IAHA,IAAIi4G,EAAQh4G,GAAKD,GACbL,EAASs4G,EAAMt4G,OACfmX,EAAQ1X,MAAMO,GACTd,EAAI,EAAGA,EAAIc,EAAQd,IAC1BiY,EAAMjY,GAAK,CAACo5G,EAAMp5G,GAAImB,EAAIi4G,EAAMp5G,KAElC,OAAOiY,CACT,CCTe,SAASC,GAAO/W,GAG7B,IAFA,IAAIkM,EAAS,CAAC,EACV+rG,EAAQh4G,GAAKD,GACRnB,EAAI,EAAGc,EAASs4G,EAAMt4G,OAAQd,EAAIc,EAAQd,IACjDqN,EAAOlM,EAAIi4G,EAAMp5G,KAAOo5G,EAAMp5G,GAEhC,OAAOqN,CACT,CCPe,SAASmL,GAAUrX,GAChC,IAAI8I,EAAQ,GACZ,IAAK,IAAIzI,KAAOL,EACV,EAAWA,EAAIK,KAAOyI,EAAMnF,KAAKtD,GAEvC,OAAOyI,EAAMiH,MACf,CCRe,SAASypG,GAAeC,EAAU3zG,GAC/C,OAAO,SAAS9F,GACd,IAAIL,EAASQ,UAAUR,OAEvB,GADImG,IAAU9F,EAAMgoB,OAAOhoB,IACvBL,EAAS,GAAY,MAAPK,EAAa,OAAOA,EACtC,IAAK,IAAIF,EAAQ,EAAGA,EAAQH,EAAQG,IAIlC,IAHA,IAAIyoB,EAASpoB,UAAUL,GACnBG,EAAOw5G,EAASlxF,GAChBtnB,EAAIhB,EAAKN,OACJd,EAAI,EAAGA,EAAIoC,EAAGpC,IAAK,CAC1B,IAAIwB,EAAMJ,EAAKpB,GACViH,QAAyB,IAAb9F,EAAIK,KAAiBL,EAAIK,GAAOkoB,EAAOloB,GAC1D,CAEF,OAAOL,CACT,CACF,CCbA,SAAew5G,GAAeT,ICE9B,GAAeS,GAAev5G,ICF9B,GAAeu5G,GAAeT,IAAS,GCKxB,SAASW,GAAWr6G,GACjC,IAAKqG,EAASrG,GAAY,MAAO,CAAC,EAClC,GAAIy2G,EAAc,OAAOA,EAAaz2G,GACtC,IAAIs6G,EAPG,WAAW,EAQlBA,EAAKt6G,UAAYA,EACjB,IAAI6M,EAAS,IAAIytG,EAEjB,OADAA,EAAKt6G,UAAY,KACV6M,CACT,CCXe,SAASgF,GAAO7R,EAAWyoB,GACxC,IAAI5b,EAASwtG,GAAWr6G,GAExB,OADIyoB,GAAO8xF,GAAU1tG,EAAQ4b,GACtB5b,CACT,CCLe,SAAS3J,GAAMvC,GAC5B,OAAK0F,EAAS1F,GACPE,EAAQF,GAAOA,EAAIV,QAAUqG,GAAO,CAAC,EAAG3F,GADpBA,CAE7B,CCLe,SAAS65G,GAAI75G,EAAK85G,GAE/B,OADAA,EAAY95G,GACLA,CACT,CCDe,SAAS+5G,GAAOp/F,GAC7B,OAAOza,EAAQya,GAAQA,EAAO,CAACA,EACjC,CCFe,SAAS,GAAOA,GAC7B,OAAO1b,GAAE86G,OAAOp/F,EAClB,CCNe,SAASq/F,GAAQh6G,EAAK2a,GAEnC,IADA,IAAIhb,EAASgb,EAAKhb,OACTd,EAAI,EAAGA,EAAIc,EAAQd,IAAK,CAC/B,GAAW,MAAPmB,EAAa,OACjBA,EAAMA,EAAI2a,EAAK9b,GACjB,CACA,OAAOc,EAASK,OAAM,CACxB,CCAe,SAAS2C,GAAIjB,EAAQiZ,EAAMs/F,GACxC,IAAIvzG,EAAQszG,GAAQt4G,EAAQ,GAAOiZ,IACnC,OAAOiuE,EAAYliF,GAASuzG,EAAevzG,CAC7C,CCLe,SAAS,GAAI1G,EAAK2a,GAG/B,IADA,IAAIhb,GADJgb,EAAO,GAAOA,IACIhb,OACTd,EAAI,EAAGA,EAAIc,EAAQd,IAAK,CAC/B,IAAIwB,EAAMsa,EAAK9b,GACf,IAAK,EAAKmB,EAAKK,GAAM,OAAO,EAC5BL,EAAMA,EAAIK,EACZ,CACA,QAASV,CACX,CCde,SAASu6G,GAASxzG,GAC/B,OAAOA,CACT,CCEe,SAAS6N,GAAQzI,GAE9B,OADAA,EAAQ8tG,GAAU,CAAC,EAAG9tG,GACf,SAAS9L,GACd,OAAOg4G,GAAQh4G,EAAK8L,EACtB,CACF,CCLe,SAASwvE,GAAS3gE,GAE/B,OADAA,EAAO,GAAOA,GACP,SAAS3a,GACd,OAAOg6G,GAAQh6G,EAAK2a,EACtB,CACF,CCPe,SAASw/F,GAAW5pC,EAAMxnE,EAASqxG,GAChD,QAAgB,IAAZrxG,EAAoB,OAAOwnE,EAC/B,OAAoB,MAAZ6pC,EAAmB,EAAIA,GAC7B,KAAK,EAAG,OAAO,SAAS1zG,GACtB,OAAO6pE,EAAK3wE,KAAKmJ,EAASrC,EAC5B,EAEA,KAAK,EAAG,OAAO,SAASA,EAAO5G,EAAOmE,GACpC,OAAOssE,EAAK3wE,KAAKmJ,EAASrC,EAAO5G,EAAOmE,EAC1C,EACA,KAAK,EAAG,OAAO,SAASo2G,EAAa3zG,EAAO5G,EAAOmE,GACjD,OAAOssE,EAAK3wE,KAAKmJ,EAASsxG,EAAa3zG,EAAO5G,EAAOmE,EACvD,EAEF,OAAO,WACL,OAAOssE,EAAKhxE,MAAMwJ,EAAS5I,UAC7B,CACF,CCTe,SAASm6G,GAAa5zG,EAAOqC,EAASqxG,GACnD,OAAa,MAAT1zG,EAAsBwzG,GACtB,EAAWxzG,GAAeyzG,GAAWzzG,EAAOqC,EAASqxG,GACrD10G,EAASgB,KAAWxG,EAAQwG,GAAe6N,GAAQ7N,GAChD40E,GAAS50E,EAClB,CCVe,SAAS+B,GAAS/B,EAAOqC,GACtC,OAAOuxG,GAAa5zG,EAAOqC,EAAS3C,IACtC,CCFe,SAAS4N,GAAGtN,EAAOqC,EAASqxG,GACzC,OAAIn7G,GAAEwJ,WAAaA,GAAiBxJ,GAAEwJ,SAAS/B,EAAOqC,GAC/CuxG,GAAa5zG,EAAOqC,EAASqxG,EACtC,CCJe,SAASG,GAAUv6G,EAAKyI,EAAUM,GAC/CN,EAAWuL,GAAGvL,EAAUM,GAIxB,IAHA,IAAIkvG,EAAQh4G,GAAKD,GACbL,EAASs4G,EAAMt4G,OACf66G,EAAU,CAAC,EACN16G,EAAQ,EAAGA,EAAQH,EAAQG,IAAS,CAC3C,IAAI26G,EAAaxC,EAAMn4G,GACvB06G,EAAQC,GAAchyG,EAASzI,EAAIy6G,GAAaA,EAAYz6G,EAC9D,CACA,OAAOw6G,CACT,CCde,SAASE,KAAO,CCGhB,SAASC,GAAW36G,GACjC,OAAW,MAAPA,EAAoB06G,GACjB,SAAS//F,GACd,OAAOhY,GAAI3C,EAAK2a,EAClB,CACF,CCNe,SAASigG,GAAM90F,EAAGrd,EAAUM,GACzC,IAAI8xG,EAAQz7G,MAAM8L,KAAKC,IAAI,EAAG2a,IAC9Brd,EAAW0xG,GAAW1xG,EAAUM,EAAS,GACzC,IAAK,IAAIlK,EAAI,EAAGA,EAAIinB,EAAGjnB,IAAKg8G,EAAMh8G,GAAK4J,EAAS5J,GAChD,OAAOg8G,CACT,CCPe,SAASpG,GAAOtlG,EAAKhE,GAKlC,OAJW,MAAPA,IACFA,EAAMgE,EACNA,EAAM,GAEDA,EAAMjE,KAAKie,MAAMje,KAAKupG,UAAYtpG,EAAMgE,EAAM,GACvD,ChBCAlQ,GAAE86G,OAASA,GUCX96G,GAAEwJ,SAAWA,GORb,SAAe6d,KAAKg2C,KAAO,WACzB,OAAO,IAAIh2C,MAAOw0F,SACpB,ECCe,SAASC,GAAcj3G,GACpC,IAAIk3G,EAAU,SAAS3nG,GACrB,OAAOvP,EAAIuP,EACb,EAEIkV,EAAS,MAAQtoB,GAAK6D,GAAK2qD,KAAK,KAAO,IACvCwsD,EAAa3hG,OAAOiP,GACpB2yF,EAAgB5hG,OAAOiP,EAAQ,KACnC,OAAO,SAASzH,GAEd,OADAA,EAAmB,MAAVA,EAAiB,GAAK,GAAKA,EAC7Bm6F,EAAWjyG,KAAK8X,GAAUA,EAAOrS,QAAQysG,EAAeF,GAAWl6F,CAC5E,CACF,CCfA,UACE,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UCHP,GAAei6F,GAAc,ICA7B,GAAeA,GCAAhkG,GAAO,KCAtB,GAAe9X,GAAEk8G,iBAAmB,CAClCC,SAAU,kBACVC,YAAa,mBACb7uG,OAAQ,oBCAV,IAAI8uG,GAAU,OAIVC,GAAU,CACZ,IAAK,IACL,KAAM,KACN,KAAM,IACN,KAAM,IACN,SAAU,QACV,SAAU,SAGR5iG,GAAe,4BAEnB,SAAS6iG,GAAWnoG,GAClB,MAAO,KAAOkoG,GAAQloG,EACxB,CAOA,IAAIooG,GAAiB,mBAMN,SAASC,GAAS37F,EAAM47F,EAAUC,IAC1CD,GAAYC,IAAaD,EAAWC,GACzCD,EAAW71G,GAAS,CAAC,EAAG61G,EAAU18G,GAAEk8G,kBAGpC,IAAI5mG,EAAU+E,OAAO,EAClBqiG,EAASnvG,QAAU8uG,IAAS/yF,QAC5BozF,EAASN,aAAeC,IAAS/yF,QACjCozF,EAASP,UAAYE,IAAS/yF,QAC/BkmC,KAAK,KAAO,KAAM,KAGhB3uD,EAAQ,EACRyoB,EAAS,SACbxI,EAAKtR,QAAQ8F,GAAS,SAASlB,EAAO7G,EAAQ6uG,EAAaD,EAAUjhF,GAanE,OAZA5R,GAAUxI,EAAKzgB,MAAMQ,EAAOq6B,GAAQ1rB,QAAQkK,GAAc6iG,IAC1D17G,EAAQq6B,EAAS9mB,EAAM1T,OAEnB6M,EACF+b,GAAU,cAAgB/b,EAAS,iCAC1B6uG,EACT9yF,GAAU,cAAgB8yF,EAAc,uBAC/BD,IACT7yF,GAAU,OAAS6yF,EAAW,YAIzB/nG,CACT,IACAkV,GAAU,OAEV,IAgBI1V,EAhBAgpG,EAAWF,EAASG,SACxB,GAAID,GAEF,IAAKJ,GAAezyG,KAAK6yG,GAAW,MAAM,IAAI9qG,MAC5C,sCAAwC8qG,QAI1CtzF,EAAS,mBAAqBA,EAAS,MACvCszF,EAAW,MAGbtzF,EAAS,2CACP,oDACAA,EAAS,gBAGX,IACE1V,EAAS,IAAIuiG,SAASyG,EAAU,IAAKtzF,EAIvC,CAHE,MAAOre,GAEP,MADAA,EAAEqe,OAASA,EACLre,CACR,CAEA,IAAIwxG,EAAW,SAAShkG,GACtB,OAAO7E,EAAOjT,KAAKZ,KAAM0Y,EAAMzY,GACjC,EAKA,OAFAy8G,EAASnzF,OAAS,YAAcszF,EAAW,OAAStzF,EAAS,IAEtDmzF,CACT,CC9Fe,SAASxvG,GAAOlM,EAAK2a,EAAMohG,GAExC,IAAIp8G,GADJgb,EAAO,GAAOA,IACIhb,OAClB,IAAKA,EACH,OAAO,EAAWo8G,GAAYA,EAASn8G,KAAKI,GAAO+7G,EAErD,IAAK,IAAIl9G,EAAI,EAAGA,EAAIc,EAAQd,IAAK,CAC/B,IAAI4mB,EAAc,MAAPzlB,OAAc,EAASA,EAAI2a,EAAK9b,SAC9B,IAAT4mB,IACFA,EAAOs2F,EACPl9G,EAAIc,GAENK,EAAM,EAAWylB,GAAQA,EAAK7lB,KAAKI,GAAOylB,CAC5C,CACA,OAAOzlB,CACT,CCnBA,IAAIg8G,GAAY,EACD,SAAStyG,GAASsrF,GAC/B,IAAI1rF,IAAO0yG,GAAY,GACvB,OAAOhnB,EAASA,EAAS1rF,EAAKA,CAChC,CCHe,SAAS+M,GAAMrW,GAC5B,IAAIqU,EAAWpV,GAAEe,GAEjB,OADAqU,EAAS4nG,QAAS,EACX5nG,CACT,CCDe,SAAS6nG,GAAaC,EAAYC,EAAWrzG,EAASszG,EAAgB38G,GACnF,KAAM28G,aAA0BD,GAAY,OAAOD,EAAW58G,MAAMwJ,EAASrJ,GAC7E,IAAIkI,EAAO8xG,GAAWyC,EAAW98G,WAC7B6M,EAASiwG,EAAW58G,MAAMqI,EAAMlI,GACpC,OAAIgG,EAASwG,GAAgBA,EACtBtE,CACT,CCJA,IAAI00G,GAAU/F,GAAc,SAAShmC,EAAMgsC,GACzC,IAAIxuC,EAAcuuC,GAAQvuC,YACtBtT,EAAQ,WAGV,IAFA,IAAIl1B,EAAW,EAAG5lC,EAAS48G,EAAU58G,OACjCD,EAAON,MAAMO,GACRd,EAAI,EAAGA,EAAIc,EAAQd,IAC1Ba,EAAKb,GAAK09G,EAAU19G,KAAOkvE,EAAc5tE,UAAUolC,KAAcg3E,EAAU19G,GAE7E,KAAO0mC,EAAWplC,UAAUR,QAAQD,EAAKiE,KAAKxD,UAAUolC,MACxD,OAAO22E,GAAa3rC,EAAM9V,EAAOz7D,KAAMA,KAAMU,EAC/C,EACA,OAAO+6D,CACT,IAEA6hD,GAAQvuC,YAAc9uE,GACtB,YCjBA,GAAes3G,GAAc,SAAShmC,EAAMxnE,EAASrJ,GACnD,IAAK,EAAW6wE,GAAO,MAAM,IAAIisC,UAAU,qCAC3C,IAAI/hD,EAAQ87C,GAAc,SAASkG,GACjC,OAAOP,GAAa3rC,EAAM9V,EAAO1xD,EAAS/J,KAAMU,EAAKqE,OAAO04G,GAC9D,IACA,OAAOhiD,CACT,ICLA,GAAe88C,EAAwB,ICDxB,SAAShtB,GAAQjqD,EAAOm3C,EAAOilC,EAAQplF,GAEpD,GADAA,EAASA,GAAU,GACdmgD,GAAmB,IAAVA,GAEP,GAAIA,GAAS,EAClB,OAAOngD,EAAOvzB,OAAOu8B,QAFrBm3C,EAAQrxE,IAKV,IADA,IAAIu2G,EAAMrlF,EAAO33B,OACRd,EAAI,EAAGc,EAAS,GAAU2gC,GAAQzhC,EAAIc,EAAQd,IAAK,CAC1D,IAAI6H,EAAQ45B,EAAMzhC,GAClB,GAAI,GAAY6H,KAAWxG,EAAQwG,IAAU,EAAYA,IAEvD,GAAI+wE,EAAQ,EACV8S,GAAQ7jF,EAAO+wE,EAAQ,EAAGilC,EAAQplF,GAClCqlF,EAAMrlF,EAAO33B,YAGb,IADA,IAAI8K,EAAI,EAAGggB,EAAM/jB,EAAM/G,OAChB8K,EAAIggB,GAAK6M,EAAOqlF,KAASj2G,EAAM+D,UAE9BiyG,IACVplF,EAAOqlF,KAASj2G,EAEpB,CACA,OAAO4wB,CACT,CCvBA,SAAei/E,GAAc,SAASv2G,EAAKC,GAEzC,IAAIH,GADJG,EAAOsqF,GAAQtqF,GAAM,GAAO,IACXN,OACjB,GAAIG,EAAQ,EAAG,MAAM,IAAIiR,MAAM,yCAC/B,KAAOjR,KAAS,CACd,IAAIO,EAAMJ,EAAKH,GACfE,EAAIK,GAAO0K,GAAK/K,EAAIK,GAAML,EAC5B,CACA,OAAOA,CACT,ICbe,SAAS48G,GAAQrsC,EAAMssC,GACpC,IAAID,EAAU,SAASv8G,GACrB,IAAI89B,EAAQy+E,EAAQz+E,MAChB2+E,EAAU,IAAMD,EAASA,EAAOt9G,MAAMP,KAAMmB,WAAaE,GAE7D,OADKoM,EAAI0xB,EAAO2+E,KAAU3+E,EAAM2+E,GAAWvsC,EAAKhxE,MAAMP,KAAMmB,YACrDg+B,EAAM2+E,EACf,EAEA,OADAF,EAAQz+E,MAAQ,CAAC,EACVy+E,CACT,CCRA,SAAerG,GAAc,SAAShmC,EAAMxiE,EAAMrO,GAChD,OAAO6mB,YAAW,WAChB,OAAOgqD,EAAKhxE,MAAM,KAAMG,EAC1B,GAAGqO,EACL,ICFA,GAAe,GAAQyrC,GAAOv6C,GAAG,GCClB,SAAS89G,GAASxsC,EAAMxiE,EAAMlM,GAC3C,IAAIm7G,EAASj0G,EAASrJ,EAAMwM,EACxBsB,EAAW,EACV3L,IAASA,EAAU,CAAC,GAEzB,IAAIo7G,EAAQ,WACVzvG,GAA+B,IAApB3L,EAAQq7G,QAAoB,EAAI5gD,KAC3C0gD,EAAU,KACV9wG,EAASqkE,EAAKhxE,MAAMwJ,EAASrJ,GACxBs9G,IAASj0G,EAAUrJ,EAAO,KACjC,EAEIy9G,EAAY,WACd,IAAIC,EAAO9gD,KACN9uD,IAAgC,IAApB3L,EAAQq7G,UAAmB1vG,EAAW4vG,GACvD,IAAI5yG,EAAYuD,GAAQqvG,EAAO5vG,GAc/B,OAbAzE,EAAU/J,KACVU,EAAOS,UACHqK,GAAa,GAAKA,EAAYuD,GAC5BivG,IACFv2F,aAAau2F,GACbA,EAAU,MAEZxvG,EAAW4vG,EACXlxG,EAASqkE,EAAKhxE,MAAMwJ,EAASrJ,GACxBs9G,IAASj0G,EAAUrJ,EAAO,OACrBs9G,IAAgC,IAArBn7G,EAAQw7G,WAC7BL,EAAUz2F,WAAW02F,EAAOzyG,IAEvB0B,CACT,EAQA,OANAixG,EAAUvzD,OAAS,WACjBnjC,aAAau2F,GACbxvG,EAAW,EACXwvG,EAAUj0G,EAAUrJ,EAAO,IAC7B,EAEOy9G,CACT,CCvCe,SAAS72B,GAAS/V,EAAMxiE,EAAMuvG,GAC3C,IAAIN,EAASxvG,EAAU9N,EAAMwM,EAAQnD,EAEjCk0G,EAAQ,WACV,IAAIM,EAASjhD,KAAQ9uD,EACjBO,EAAOwvG,EACTP,EAAUz2F,WAAW02F,EAAOlvG,EAAOwvG,IAEnCP,EAAU,KACLM,IAAWpxG,EAASqkE,EAAKhxE,MAAMwJ,EAASrJ,IAExCs9G,IAASt9G,EAAOqJ,EAAU,MAEnC,EAEIy0G,EAAYjH,GAAc,SAASkH,GAQrC,OAPA10G,EAAU/J,KACVU,EAAO+9G,EACPjwG,EAAW8uD,KACN0gD,IACHA,EAAUz2F,WAAW02F,EAAOlvG,GACxBuvG,IAAWpxG,EAASqkE,EAAKhxE,MAAMwJ,EAASrJ,KAEvCwM,CACT,IAOA,OALAsxG,EAAU5zD,OAAS,WACjBnjC,aAAau2F,GACbA,EAAUt9G,EAAOqJ,EAAU,IAC7B,EAEOy0G,CACT,CClCe,SAASt6E,GAAKqtC,EAAM3qC,GACjC,OAAO,GAAQA,EAAS2qC,EAC1B,CCNe,SAASmtC,GAAOt1C,GAC7B,OAAO,WACL,OAAQA,EAAU7oE,MAAMP,KAAMmB,UAChC,CACF,CCHe,SAASw9G,KACtB,IAAIj+G,EAAOS,UACP6a,EAAQtb,EAAKC,OAAS,EAC1B,OAAO,WAGL,IAFA,IAAId,EAAImc,EACJ9O,EAASxM,EAAKsb,GAAOzb,MAAMP,KAAMmB,WAC9BtB,KAAKqN,EAASxM,EAAKb,GAAGe,KAAKZ,KAAMkN,GACxC,OAAOA,CACT,CACF,CCVe,SAAStK,GAAMg5G,EAAOrqC,GACnC,OAAO,WACL,KAAMqqC,EAAQ,EACZ,OAAOrqC,EAAKhxE,MAAMP,KAAMmB,UAE5B,CACF,CCLe,SAASwB,GAAOi5G,EAAOrqC,GACpC,IAAIj5D,EACJ,OAAO,WAKL,QAJMsjG,EAAQ,IACZtjG,EAAOi5D,EAAKhxE,MAAMP,KAAMmB,YAEtBy6G,GAAS,IAAGrqC,EAAO,MAChBj5D,CACT,CACF,CCNA,SAAe,GAAQ3V,GAAQ,GCDhB,SAASi8G,GAAQ59G,EAAKooE,EAAWr/D,GAC9Cq/D,EAAYp0D,GAAGo0D,EAAWr/D,GAE1B,IADA,IAAuB1I,EAAnB43G,EAAQh4G,GAAKD,GACRnB,EAAI,EAAGc,EAASs4G,EAAMt4G,OAAQd,EAAIc,EAAQd,IAEjD,GAAIupE,EAAUpoE,EADdK,EAAM43G,EAAMp5G,IACYwB,EAAKL,GAAM,OAAOK,CAE9C,CCPe,SAASw9G,GAA2Bh1F,GACjD,OAAO,SAAS5Z,EAAOm5D,EAAWr/D,GAChCq/D,EAAYp0D,GAAGo0D,EAAWr/D,GAG1B,IAFA,IAAIpJ,EAAS,GAAUsP,GACnBnP,EAAQ+oB,EAAM,EAAI,EAAIlpB,EAAS,EAC5BG,GAAS,GAAKA,EAAQH,EAAQG,GAAS+oB,EAC5C,GAAIu/C,EAAUn5D,EAAMnP,GAAQA,EAAOmP,GAAQ,OAAOnP,EAEpD,OAAQ,CACV,CACF,CCXA,SAAe+9G,GAA2B,GCA1C,GAAeA,IAA4B,GCE5B,SAASC,GAAY7uG,EAAOjP,EAAKyI,EAAUM,GAIxD,IAFA,IAAIrC,GADJ+B,EAAWuL,GAAGvL,EAAUM,EAAS,IACZ/I,GACjB+9G,EAAM,EAAGC,EAAO,GAAU/uG,GACvB8uG,EAAMC,GAAM,CACjB,IAAI/0F,EAAM/d,KAAKie,OAAO40F,EAAMC,GAAQ,GAChCv1G,EAASwG,EAAMga,IAAQviB,EAAOq3G,EAAM90F,EAAM,EAAQ+0F,EAAO/0F,CAC/D,CACA,OAAO80F,CACT,CCTe,SAASE,GAAkBp1F,EAAKq1F,EAAeJ,GAC5D,OAAO,SAAS7uG,EAAOw2E,EAAMk3B,GAC3B,IAAI99G,EAAI,EAAGc,EAAS,GAAUsP,GAC9B,GAAkB,iBAAP0tG,EACL9zF,EAAM,EACRhqB,EAAI89G,GAAO,EAAIA,EAAMzxG,KAAKC,IAAIwxG,EAAMh9G,EAAQd,GAE5Cc,EAASg9G,GAAO,EAAIzxG,KAAKiE,IAAIwtG,EAAM,EAAGh9G,GAAUg9G,EAAMh9G,EAAS,OAE5D,GAAIm+G,GAAenB,GAAOh9G,EAE/B,OAAOsP,EADP0tG,EAAMmB,EAAY7uG,EAAOw2E,MACHA,EAAOk3B,GAAO,EAEtC,GAAIl3B,GAASA,EAEX,OADAk3B,EAAMuB,EAAc5+G,EAAMM,KAAKqP,EAAOpQ,EAAGc,GAAS,KACpC,EAAIg9G,EAAM99G,GAAK,EAE/B,IAAK89G,EAAM9zF,EAAM,EAAIhqB,EAAIc,EAAS,EAAGg9G,GAAO,GAAKA,EAAMh9G,EAAQg9G,GAAO9zF,EACpE,GAAI5Z,EAAM0tG,KAASl3B,EAAM,OAAOk3B,EAElC,OAAQ,CACV,CACF,CCnBA,SAAesB,GAAkB,EAAGtnG,GAAWmnG,ICH/C,GAAeG,IAAmB,EAAGrnG,ICAtB,SAAShE,GAAK5S,EAAKooE,EAAWr/D,GAC3C,IACI1I,GADY,GAAYL,GAAO2W,GAAYinG,IAC3B59G,EAAKooE,EAAWr/D,GACpC,QAAY,IAAR1I,IAA2B,IAATA,EAAY,OAAOL,EAAIK,EAC/C,CCJe,SAASyQ,GAAU9Q,EAAK8L,GACrC,OAAO8G,GAAK5S,EAAKuU,GAAQzI,GAC3B,CCCe,SAASvH,GAAKvE,EAAKyI,EAAUM,GAE1C,IAAIlK,EAAGc,EACP,GAFA8I,EAAW0xG,GAAW1xG,EAAUM,GAE5B,GAAY/I,GACd,IAAKnB,EAAI,EAAGc,EAASK,EAAIL,OAAQd,EAAIc,EAAQd,IAC3C4J,EAASzI,EAAInB,GAAIA,EAAGmB,OAEjB,CACL,IAAIi4G,EAAQh4G,GAAKD,GACjB,IAAKnB,EAAI,EAAGc,EAASs4G,EAAMt4G,OAAQd,EAAIc,EAAQd,IAC7C4J,EAASzI,EAAIi4G,EAAMp5G,IAAKo5G,EAAMp5G,GAAImB,EAEtC,CACA,OAAOA,CACT,CCjBe,SAAS8D,GAAI9D,EAAKyI,EAAUM,GACzCN,EAAWuL,GAAGvL,EAAUM,GAIxB,IAHA,IAAIkvG,GAAS,GAAYj4G,IAAQC,GAAKD,GAClCL,GAAUs4G,GAASj4G,GAAKL,OACxB66G,EAAUp7G,MAAMO,GACXG,EAAQ,EAAGA,EAAQH,EAAQG,IAAS,CAC3C,IAAI26G,EAAaxC,EAAQA,EAAMn4G,GAASA,EACxC06G,EAAQ16G,GAAS2I,EAASzI,EAAIy6G,GAAaA,EAAYz6G,EACzD,CACA,OAAOw6G,CACT,CCVe,SAAS2D,GAAat1F,GAGnC,IAAIu1F,EAAU,SAASp+G,EAAKyI,EAAU6O,EAAMzB,GAC1C,IAAIoiG,GAAS,GAAYj4G,IAAQC,GAAKD,GAClCL,GAAUs4G,GAASj4G,GAAKL,OACxBG,EAAQ+oB,EAAM,EAAI,EAAIlpB,EAAS,EAKnC,IAJKkW,IACHyB,EAAOtX,EAAIi4G,EAAQA,EAAMn4G,GAASA,GAClCA,GAAS+oB,GAEJ/oB,GAAS,GAAKA,EAAQH,EAAQG,GAAS+oB,EAAK,CACjD,IAAI4xF,EAAaxC,EAAQA,EAAMn4G,GAASA,EACxCwX,EAAO7O,EAAS6O,EAAMtX,EAAIy6G,GAAaA,EAAYz6G,EACrD,CACA,OAAOsX,CACT,EAEA,OAAO,SAAStX,EAAKyI,EAAU6O,EAAMvO,GACnC,IAAI8M,EAAU1V,UAAUR,QAAU,EAClC,OAAOy+G,EAAQp+G,EAAKm6G,GAAW1xG,EAAUM,EAAS,GAAIuO,EAAMzB,EAC9D,CACF,CCvBA,SAAesoG,GAAa,GCD5B,GAAeA,IAAc,GCCd,SAASlpG,GAAOjV,EAAKooE,EAAWr/D,GAC7C,IAAIyxG,EAAU,GAKd,OAJApyC,EAAYp0D,GAAGo0D,EAAWr/D,GAC1BxE,GAAKvE,GAAK,SAAS0G,EAAO5G,EAAOsiC,GAC3BgmC,EAAU1hE,EAAO5G,EAAOsiC,IAAOo4E,EAAQ72G,KAAK+C,EAClD,IACO8zG,CACT,CCNe,SAASrlG,GAAOnV,EAAKooE,EAAWr/D,GAC7C,OAAOkM,GAAOjV,EAAK09G,GAAO1pG,GAAGo0D,IAAar/D,EAC5C,CCFe,SAASqM,GAAMpV,EAAKooE,EAAWr/D,GAC5Cq/D,EAAYp0D,GAAGo0D,EAAWr/D,GAG1B,IAFA,IAAIkvG,GAAS,GAAYj4G,IAAQC,GAAKD,GAClCL,GAAUs4G,GAASj4G,GAAKL,OACnBG,EAAQ,EAAGA,EAAQH,EAAQG,IAAS,CAC3C,IAAI26G,EAAaxC,EAAQA,EAAMn4G,GAASA,EACxC,IAAKsoE,EAAUpoE,EAAIy6G,GAAaA,EAAYz6G,GAAM,OAAO,CAC3D,CACA,OAAO,CACT,CCTe,SAASuQ,GAAKvQ,EAAKooE,EAAWr/D,GAC3Cq/D,EAAYp0D,GAAGo0D,EAAWr/D,GAG1B,IAFA,IAAIkvG,GAAS,GAAYj4G,IAAQC,GAAKD,GAClCL,GAAUs4G,GAASj4G,GAAKL,OACnBG,EAAQ,EAAGA,EAAQH,EAAQG,IAAS,CAC3C,IAAI26G,EAAaxC,EAAQA,EAAMn4G,GAASA,EACxC,GAAIsoE,EAAUpoE,EAAIy6G,GAAaA,EAAYz6G,GAAM,OAAO,CAC1D,CACA,OAAO,CACT,CCTe,SAAS0D,GAAS1D,EAAKylF,EAAM/Y,EAAW2xC,GAGrD,OAFK,GAAYr+G,KAAMA,EAAMoR,GAAOpR,KACZ,iBAAb0sE,GAAyB2xC,KAAO3xC,EAAY,GAChD7oE,GAAQ7D,EAAKylF,EAAM/Y,IAAc,CAC1C,CCFA,SAAe6pC,GAAc,SAASv2G,EAAK2a,EAAMjb,GAC/C,IAAI4+G,EAAa/tC,EAQjB,OAPI,EAAW51D,GACb41D,EAAO51D,GAEPA,EAAO,GAAOA,GACd2jG,EAAc3jG,EAAKrb,MAAM,GAAI,GAC7Bqb,EAAOA,EAAKA,EAAKhb,OAAS,IAErBmE,GAAI9D,GAAK,SAAS+I,GACvB,IAAIkF,EAASsiE,EACb,IAAKtiE,EAAQ,CAIX,GAHIqwG,GAAeA,EAAY3+G,SAC7BoJ,EAAUixG,GAAQjxG,EAASu1G,IAEd,MAAXv1G,EAAiB,OACrBkF,EAASlF,EAAQ4R,EACnB,CACA,OAAiB,MAAV1M,EAAiBA,EAASA,EAAO1O,MAAMwJ,EAASrJ,EACzD,GACF,ICvBe,SAASuR,GAAMjR,EAAKK,GACjC,OAAOyD,GAAI9D,EAAKs7E,GAASj7E,GAC3B,CCDe,SAASqC,GAAM1C,EAAK8L,GACjC,OAAOmJ,GAAOjV,EAAKuU,GAAQzI,GAC7B,CCDe,SAASX,GAAInL,EAAKyI,EAAUM,GACzC,IACIrC,EAAO63G,EADPryG,GAAU9F,IAAUo4G,GAAgBp4G,IAExC,GAAgB,MAAZqC,GAAwC,iBAAZA,GAAyC,iBAAVzI,EAAI,IAAyB,MAAPA,EAEnF,IAAK,IAAInB,EAAI,EAAGc,GADhBK,EAAM,GAAYA,GAAOA,EAAMoR,GAAOpR,IACTL,OAAQd,EAAIc,EAAQd,IAElC,OADb6H,EAAQ1G,EAAInB,KACS6H,EAAQwF,IAC3BA,EAASxF,QAIb+B,EAAWuL,GAAGvL,EAAUM,GACxBxE,GAAKvE,GAAK,SAASyqD,EAAG3qD,EAAOsiC,KAC3Bm8E,EAAW91G,EAASgiD,EAAG3qD,EAAOsiC,IACfo8E,GAAiBD,KAAcn4G,KAAY8F,KAAY9F,OACpE8F,EAASu+C,EACT+zD,EAAeD,EAEnB,IAEF,OAAOryG,CACT,CCtBe,SAASiD,GAAInP,EAAKyI,EAAUM,GACzC,IACIrC,EAAO63G,EADPryG,EAAS9F,IAAUo4G,EAAep4G,IAEtC,GAAgB,MAAZqC,GAAwC,iBAAZA,GAAyC,iBAAVzI,EAAI,IAAyB,MAAPA,EAEnF,IAAK,IAAInB,EAAI,EAAGc,GADhBK,EAAM,GAAYA,GAAOA,EAAMoR,GAAOpR,IACTL,OAAQd,EAAIc,EAAQd,IAElC,OADb6H,EAAQ1G,EAAInB,KACS6H,EAAQwF,IAC3BA,EAASxF,QAIb+B,EAAWuL,GAAGvL,EAAUM,GACxBxE,GAAKvE,GAAK,SAASyqD,EAAG3qD,EAAOsiC,KAC3Bm8E,EAAW91G,EAASgiD,EAAG3qD,EAAOsiC,IACfo8E,GAAiBD,IAAan4G,KAAY8F,IAAW9F,OAClE8F,EAASu+C,EACT+zD,EAAeD,EAEnB,IAEF,OAAOryG,CACT,CCnBA,IAAIuyG,GAAc,mEACH,SAAShpG,GAAQzV,GAC9B,OAAKA,EACDE,EAAQF,GAAaV,EAAMM,KAAKI,GAChCkQ,EAASlQ,GAEJA,EAAIqT,MAAMorG,IAEf,GAAYz+G,GAAa8D,GAAI9D,EAAKk6G,IAC/B9oG,GAAOpR,GAPG,EAQnB,CCTe,SAASsW,GAAOtW,EAAK8lB,EAAGu4F,GACrC,GAAS,MAALv4F,GAAau4F,EAEf,OADK,GAAYr+G,KAAMA,EAAMoR,GAAOpR,IAC7BA,EAAIy0G,GAAOz0G,EAAIL,OAAS,IAEjC,IAAI2W,EAASb,GAAQzV,GACjBL,EAAS,GAAU2W,GACvBwP,EAAI5a,KAAKC,IAAID,KAAKiE,IAAI2W,EAAGnmB,GAAS,GAElC,IADA,IAAIqW,EAAOrW,EAAS,EACXG,EAAQ,EAAGA,EAAQgmB,EAAGhmB,IAAS,CACtC,IAAI4+G,EAAOjK,GAAO30G,EAAOkW,GACrB2oG,EAAOroG,EAAOxW,GAClBwW,EAAOxW,GAASwW,EAAOooG,GACvBpoG,EAAOooG,GAAQC,CACjB,CACA,OAAOroG,EAAOhX,MAAM,EAAGwmB,EACzB,CCvBe,SAAS3P,GAAQnW,GAC9B,OAAOsW,GAAOtW,EAAKoG,IACrB,CCAe,SAAS4K,GAAOhR,EAAKyI,EAAUM,GAC5C,IAAIjJ,EAAQ,EAEZ,OADA2I,EAAWuL,GAAGvL,EAAUM,GACjBkI,GAAMnN,GAAI9D,GAAK,SAAS0G,EAAOrG,EAAK+hC,GACzC,MAAO,CACL17B,MAAOA,EACP5G,MAAOA,IACP8+G,SAAUn2G,EAAS/B,EAAOrG,EAAK+hC,GAEnC,IAAGryB,MAAK,SAAS2e,EAAMC,GACrB,IAAI/vB,EAAI8vB,EAAKkwF,SACTp6F,EAAImK,EAAMiwF,SACd,GAAIhgH,IAAM4lB,EAAG,CACX,GAAI5lB,EAAI4lB,QAAW,IAAN5lB,EAAc,OAAO,EAClC,GAAIA,EAAI4lB,QAAW,IAANA,EAAc,OAAQ,CACrC,CACA,OAAOkK,EAAK5uB,MAAQ6uB,EAAM7uB,KAC5B,IAAI,QACN,CCnBe,SAAS+hC,GAAMy7B,EAAU/mD,GACtC,OAAO,SAASvW,EAAKyI,EAAUM,GAC7B,IAAImD,EAASqK,EAAY,CAAC,GAAI,IAAM,CAAC,EAMrC,OALA9N,EAAWuL,GAAGvL,EAAUM,GACxBxE,GAAKvE,GAAK,SAAS0G,EAAO5G,GACxB,IAAIO,EAAMoI,EAAS/B,EAAO5G,EAAOE,GACjCs9D,EAASpxD,EAAQxF,EAAOrG,EAC1B,IACO6L,CACT,CACF,CCTA,SAAe21B,IAAM,SAAS31B,EAAQxF,EAAOrG,GACvCoM,EAAIP,EAAQ7L,GAAM6L,EAAO7L,GAAKsD,KAAK+C,GAAawF,EAAO7L,GAAO,CAACqG,EACrE,ICHA,GAAem7B,IAAM,SAAS31B,EAAQxF,EAAOrG,GAC3C6L,EAAO7L,GAAOqG,CAChB,ICAA,GAAem7B,IAAM,SAAS31B,EAAQxF,EAAOrG,GACvCoM,EAAIP,EAAQ7L,GAAM6L,EAAO7L,KAAa6L,EAAO7L,GAAO,CAC1D,ICJA,GAAewhC,IAAM,SAAS31B,EAAQxF,EAAO2rE,GAC3CnmE,EAAOmmE,EAAO,EAAI,GAAG1uE,KAAK+C,EAC5B,IAAG,GCFY,SAASgP,GAAK1V,GAC3B,OAAW,MAAPA,EAAoB,EACjB,GAAYA,GAAOA,EAAIL,OAASM,GAAKD,GAAKL,MACnD,CCLe,SAASk/G,GAASn4G,EAAOrG,EAAKL,GAC3C,OAAOK,KAAOL,CAChB,CCIA,SAAeu2G,GAAc,SAASv2G,EAAKC,GACzC,IAAIiM,EAAS,CAAC,EAAGzD,EAAWxI,EAAK,GACjC,GAAW,MAAPD,EAAa,OAAOkM,EACpB,EAAWzD,IACTxI,EAAKN,OAAS,IAAG8I,EAAW0xG,GAAW1xG,EAAUxI,EAAK,KAC1DA,EAAO84G,GAAQ/4G,KAEfyI,EAAWo2G,GACX5+G,EAAOsqF,GAAQtqF,GAAM,GAAO,GAC5BD,EAAMgoB,OAAOhoB,IAEf,IAAK,IAAInB,EAAI,EAAGc,EAASM,EAAKN,OAAQd,EAAIc,EAAQd,IAAK,CACrD,IAAIwB,EAAMJ,EAAKpB,GACX6H,EAAQ1G,EAAIK,GACZoI,EAAS/B,EAAOrG,EAAKL,KAAMkM,EAAO7L,GAAOqG,EAC/C,CACA,OAAOwF,CACT,IChBA,GAAeqqG,GAAc,SAASv2G,EAAKC,GACzC,IAAwB8I,EAApBN,EAAWxI,EAAK,GAUpB,OATI,EAAWwI,IACbA,EAAWi1G,GAAOj1G,GACdxI,EAAKN,OAAS,IAAGoJ,EAAU9I,EAAK,MAEpCA,EAAO6D,GAAIymF,GAAQtqF,GAAM,GAAO,GAAQqyB,QACxC7pB,EAAW,SAAS/B,EAAOrG,GACzB,OAAQqD,GAASzD,EAAMI,EACzB,GAEK0E,GAAK/E,EAAKyI,EAAUM,EAC7B,IChBe,SAAS8M,GAAQ5G,EAAO6W,EAAGu4F,GACxC,OAAO/+G,EAAMM,KAAKqP,EAAO,EAAG/D,KAAKC,IAAI,EAAG8D,EAAMtP,QAAe,MAALmmB,GAAau4F,EAAQ,EAAIv4F,IACnF,CCHe,SAASjV,GAAM5B,EAAO6W,EAAGu4F,GACtC,OAAa,MAATpvG,GAAiBA,EAAMtP,OAAS,EAAe,MAALmmB,GAAau4F,OAAQ,EAAS,GACnE,MAALv4F,GAAau4F,EAAcpvG,EAAM,GAC9B4G,GAAQ5G,EAAOA,EAAMtP,OAASmmB,EACvC,CCHe,SAAShQ,GAAK7G,EAAO6W,EAAGu4F,GACrC,OAAO/+G,EAAMM,KAAKqP,EAAY,MAAL6W,GAAau4F,EAAQ,EAAIv4F,EACpD,CCHe,SAAS9P,GAAK/G,EAAO6W,EAAGu4F,GACrC,OAAa,MAATpvG,GAAiBA,EAAMtP,OAAS,EAAe,MAALmmB,GAAau4F,OAAQ,EAAS,GACnE,MAALv4F,GAAau4F,EAAcpvG,EAAMA,EAAMtP,OAAS,GAC7CmW,GAAK7G,EAAO/D,KAAKC,IAAI,EAAG8D,EAAMtP,OAASmmB,GAChD,CCLe,SAASg5F,GAAQ7vG,GAC9B,OAAOgG,GAAOhG,EAAOu1E,QACvB,CCDe,SAAS,GAAQv1E,EAAOwoE,GACrC,OAAO,GAASxoE,EAAOwoE,GAAO,EAChC,CCCA,SAAe8+B,GAAc,SAAStnG,EAAO6G,GAE3C,OADAA,EAAOy0E,GAAQz0E,GAAM,GAAM,GACpBb,GAAOhG,GAAO,SAASvI,GAC5B,OAAQhD,GAASoS,EAAMpP,EACzB,GACF,ICRA,GAAe6vG,GAAc,SAAStnG,EAAO8vG,GAC3C,OAAO7oG,GAAWjH,EAAO8vG,EAC3B,ICIe,SAASC,GAAK/vG,EAAOgwG,EAAUx2G,EAAUM,GACjD0tG,EAAUwI,KACbl2G,EAAUN,EACVA,EAAWw2G,EACXA,GAAW,GAEG,MAAZx2G,IAAkBA,EAAWuL,GAAGvL,EAAUM,IAG9C,IAFA,IAAImD,EAAS,GACTgzG,EAAO,GACFrgH,EAAI,EAAGc,EAAS,GAAUsP,GAAQpQ,EAAIc,EAAQd,IAAK,CAC1D,IAAI6H,EAAQuI,EAAMpQ,GACd0/G,EAAW91G,EAAWA,EAAS/B,EAAO7H,EAAGoQ,GAASvI,EAClDu4G,IAAax2G,GACV5J,GAAKqgH,IAASX,GAAUryG,EAAOvI,KAAK+C,GACzCw4G,EAAOX,GACE91G,EACJ/E,GAASw7G,EAAMX,KAClBW,EAAKv7G,KAAK46G,GACVryG,EAAOvI,KAAK+C,IAEJhD,GAASwI,EAAQxF,IAC3BwF,EAAOvI,KAAK+C,EAEhB,CACA,OAAOwF,CACT,CC7BA,SAAeqqG,GAAc,SAAS4I,GACpC,OAAOH,GAAKz0B,GAAQ40B,GAAQ,GAAM,GACpC,ICHe,SAASC,GAAanwG,GAGnC,IAFA,IAAI/C,EAAS,GACTmzG,EAAal/G,UAAUR,OAClBd,EAAI,EAAGc,EAAS,GAAUsP,GAAQpQ,EAAIc,EAAQd,IAAK,CAC1D,IAAI4mF,EAAOx2E,EAAMpQ,GACjB,IAAI6E,GAASwI,EAAQu5E,GAArB,CACA,IAAIh7E,EACJ,IAAKA,EAAI,EAAGA,EAAI40G,GACT37G,GAASvD,UAAUsK,GAAIg7E,GADFh7E,KAGxBA,IAAM40G,GAAYnzG,EAAOvI,KAAK8hF,EALE,CAMtC,CACA,OAAOv5E,CACT,CCZe,SAASozG,GAAMrwG,GAI5B,IAHA,IAAItP,EAAUsP,GAAS9D,GAAI8D,EAAO,IAAWtP,QAAW,EACpDuM,EAAS9M,MAAMO,GAEVG,EAAQ,EAAGA,EAAQH,EAAQG,IAClCoM,EAAOpM,GAASmR,GAAMhC,EAAOnP,GAE/B,OAAOoM,CACT,CCTA,SAAeqqG,EAAc+I,ICAd,SAAS59G,GAAO0gC,EAAMhxB,GAEnC,IADA,IAAIlF,EAAS,CAAC,EACLrN,EAAI,EAAGc,EAAS,GAAUyiC,GAAOvjC,EAAIc,EAAQd,IAChDuS,EACFlF,EAAOk2B,EAAKvjC,IAAMuS,EAAOvS,GAEzBqN,EAAOk2B,EAAKvjC,GAAG,IAAMujC,EAAKvjC,GAAG,GAGjC,OAAOqN,CACT,CCZe,SAASiX,GAAMnI,EAAO2B,EAAMm2F,GAC7B,MAARn2F,IACFA,EAAO3B,GAAS,EAChBA,EAAQ,GAEL83F,IACHA,EAAOn2F,EAAO3B,GAAS,EAAI,GAM7B,IAHA,IAAIrb,EAASuL,KAAKC,IAAID,KAAKge,MAAMvM,EAAO3B,GAAS83F,GAAO,GACpD3vF,EAAQ/jB,MAAMO,GAETg9G,EAAM,EAAGA,EAAMh9G,EAAQg9G,IAAO3hG,GAAS83F,EAC9C3vF,EAAMw5F,GAAO3hG,EAGf,OAAOmI,CACT,CChBe,SAASmO,GAAMriB,EAAOhF,GACnC,GAAa,MAATA,GAAiBA,EAAQ,EAAG,MAAO,GAGvC,IAFA,IAAIiC,EAAS,GACTrN,EAAI,EAAGc,EAASsP,EAAMtP,OACnBd,EAAIc,GACTuM,EAAOvI,KAAKrE,EAAMM,KAAKqP,EAAOpQ,EAAGA,GAAKoL,IAExC,OAAOiC,CACT,CCTe,SAASqzG,GAAYlrG,EAAUrU,GAC5C,OAAOqU,EAAS4nG,OAASh9G,GAAEe,GAAKqW,QAAUrW,CAC5C,CCEe,SAASmX,GAAMnX,GAS5B,OARAuE,GAAK8S,GAAUrX,IAAM,SAAS2I,GAC5B,IAAI4nE,EAAOtxE,GAAE0J,GAAQ3I,EAAI2I,GACzB1J,GAAEI,UAAUsJ,GAAQ,WAClB,IAAIjJ,EAAO,CAACV,KAAKk5G,UAEjB,OADAv0G,EAAKpE,MAAMG,EAAMS,WACVo/G,GAAYvgH,KAAMuxE,EAAKhxE,MAAMN,GAAGS,GACzC,CACF,IACOT,EACT,CCXAsF,GAAK,CAAC,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,YAAY,SAASoE,GAC9E,IAAIsF,EAASonG,EAAW1sG,GACxB1J,GAAEI,UAAUsJ,GAAQ,WAClB,IAAI3I,EAAMhB,KAAKk5G,SAOf,OANW,MAAPl4G,IACFiO,EAAO1O,MAAMS,EAAKG,WACJ,UAATwI,GAA6B,WAATA,GAAqC,IAAf3I,EAAIL,eAC1CK,EAAI,IAGRu/G,GAAYvgH,KAAMgB,EAC3B,CACF,IAGAuE,GAAK,CAAC,SAAU,OAAQ,UAAU,SAASoE,GACzC,IAAIsF,EAASonG,EAAW1sG,GACxB1J,GAAEI,UAAUsJ,GAAQ,WAClB,IAAI3I,EAAMhB,KAAKk5G,SAEf,OADW,MAAPl4G,IAAaA,EAAMiO,EAAO1O,MAAMS,EAAKG,YAClCo/G,GAAYvgH,KAAMgB,EAC3B,CACF,IAEA,YCRA,IAAI,GAAImX,GAAM,GAEd,GAAElY,EAAI,GAEN,W,GCzBIugH,EAA2B,CAAC,EAGhC,SAAStK,EAAoBuK,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBp7G,IAAjBq7G,EACH,OAAOA,EAAalhH,QAGrB,IAAIC,EAAS+gH,EAAyBC,GAAY,CAGjDjhH,QAAS,CAAC,GAOX,OAHAmhH,EAAoBF,GAAU7/G,KAAKnB,EAAOD,QAASC,EAAQA,EAAOD,QAAS02G,GAGpEz2G,EAAOD,OACf,CCrBA02G,EAAoBpvF,EAAKrnB,IACxB,IAAImhH,EAASnhH,GAAUA,EAAOohH,WAC7B,IAAOphH,EAAO,WACd,IAAM,EAEP,OADAy2G,EAAoB33E,EAAEqiF,EAAQ,CAAEhhH,EAAGghH,IAC5BA,CAAM,ECLd1K,EAAoB33E,EAAI,CAAC/+B,EAASshH,KACjC,IAAI,IAAIz/G,KAAOy/G,EACX5K,EAAoB//E,EAAE2qF,EAAYz/G,KAAS60G,EAAoB//E,EAAE32B,EAAS6B,IAC5E2nB,OAAOspF,eAAe9yG,EAAS6B,EAAK,CAAE0/G,YAAY,EAAMp9G,IAAKm9G,EAAWz/G,IAE1E,ECND60G,EAAoBrtG,EAAI,WACvB,GAA0B,iBAAf/I,WAAyB,OAAOA,WAC3C,IACC,OAAOE,MAAQ,IAAIo2G,SAAS,cAAb,EAGhB,CAFE,MAAOlrG,GACR,GAAsB,iBAAXnL,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBm2G,EAAoB//E,EAAI,CAACn1B,EAAKylB,IAAUuC,OAAO3oB,UAAUqmB,eAAe9lB,KAAKI,EAAKylB,GCClFyvF,EAAoBtwF,EAAKpmB,IACH,oBAAXqT,QAA0BA,OAAOmuG,aAC1Ch4F,OAAOspF,eAAe9yG,EAASqT,OAAOmuG,YAAa,CAAEt5G,MAAO,WAE7DshB,OAAOspF,eAAe9yG,EAAS,aAAc,CAAEkI,OAAO,GAAO,E,uHCM/C,SAASwuE,EAAK+qC,G,IAAgC,wDACnD,IAAAC,EAAQD,EAAQ,IAExB,OAAOC,EAAIvrG,QAAO,SAACwrG,EAAKC,EAAKvhH,GAC3B,IAAIwhH,EAAQC,EAAOzhH,EAAI,GACjBmX,EAAOkqG,EAAIrhH,EAAI,GAWrB,OATIO,MAAMc,QAAQmgH,GAChBA,EAAQA,EAAM5xD,KAAK,IACVz4C,GAA2B,MAAnBA,EAAK1W,OAAO,GAE7B6gH,EAAMA,EAAI7gH,MAAM,GAAI,GAEpB+gH,GAAQ,IAAA7zG,QAAO6zG,GAGVF,EAAME,EAAQD,CACvB,GACF,CCydA,QA3E6B,CAC3Bl9B,YAAa,OACbmB,WAAY,GACZ1oE,MAAO,GACP4kG,aAAa,EACbC,iBAAan8G,EACbo8G,gBAAgB,EAChBvqB,aAAa,EACb0G,qBAAqB,EACrB8jB,YAAY,EACZ5uF,OAAQ,QACRqT,MAAO,OACPw7E,IAAK,CAAC,UAAW,SACjBC,QAAS,GACTC,aAAc,kDACdC,UAAW,GACXC,eAAgB,cAChB7kB,aAAa,EACbjK,aAAa,EACb+uB,mBAAmB,EACnBC,eAAgB,YAChBC,YAAa,MACbC,UAAW,MACXC,oBAAoB,EACpBC,UAAU,EACVlO,WAAW,EACXmO,mBAAmB,EACnB/0B,SAAU,CAAC,EACXE,QAAS,CAAC,EACV80B,kBAAkB,EAClBC,eAAe,EACfC,aAAa,EACbjrB,WAAY,GACZkrB,SAAU,qFACVC,MAAO,CACLvlG,MACE,qLACF4iD,KAAM,kMACN4iD,KAAM,4GACNC,MAAO,uFACPC,OACE,oJACF9qF,KAAM,6LACN+qF,QACE,yIACFC,QACE,+HACFC,IAAK,oTACLC,OACE,ooBAEJC,KAAM,CAAC,EACP76G,YAAa,CAAC,EACd86G,aAAc,CAAC,EACf3gC,OAAQ,CAAC,EACT4gC,aAAc,CAAC,EACfC,eAAgB,CAAC,EACjBC,eAAgB,CAAC,EACjBC,cAAe,CAAC,EAChB72B,MAAO,CAAC,EACR82B,YAAa,CAAC,EACdlxB,OAAQ,CAAC,EACTt6B,SAAU,CAAC,EACXyrD,YAAa,CAAC,EACdC,gBAAiB,CAAC,EAClBC,cAAe,CAAC,EAChBC,aAAc,CAAC,EACfC,aAAc,CAAC,EACfC,aAAc,CAAC,EACf32B,aAAc,OACd42B,kBAAkB,EAClBC,aAAa,EACbC,UAAU,G,6gBC/eZ,2B,8CAAuC,QAAP,OAAO,EAAvC,CAAgC,M,QAEhC,yB,8CAkCA,QAlCsC,OACpC,YAAAC,eAAA,SAAe7+B,GAAf,WACE,OAAOtlF,KAAKiW,QAAO,SAAA7N,GAAK,SAAKg8G,aAAah8G,KAAOk9E,CAAzB,IAAoC,EAC9D,EAEA,YAAA++B,aAAA,SAAa/+B,EAAsBz7E,GAAnC,WACQ8G,IAAS,IAAAzP,SAAQokF,GAAaA,EAAY,CAACA,IAC9CrvE,QAAO,SAAA8oE,GAAK,OAAC,EAAKulC,aAAavlC,EAAnB,IACZj6E,KAAI,SAAAwgF,GAAa,WAAIi/B,EAAW,CAAEj/B,UAAS,GAA1B,IAA+B,GACnD,OAAOtlF,KAAK2E,KAAKgM,EAAO9G,EAC1B,EAEA,YAAAu6G,aAAA,SAAaj/G,GACX,OAAOA,EAAMxB,IAAI,YACnB,EAEA,YAAA2gH,aAAA,SAAah/B,GACX,IAAMngF,EAAQnF,KAAKmkH,eAAe7+B,GAClC,OAAOngF,GAASnF,KAAK0E,SAASS,EAChC,EAEA,YAAAq/G,cAAA,WACE,IAAMxtG,EAAOhX,KAAKgX,OAClB,OAAOA,EAAOhX,KAAKokH,aAAaptG,QAAQ3R,CAC1C,EAEA,YAAAo/G,cAAA,sBACE,OAAOzkH,KAAK8E,KAAI,SAAAsD,GAAK,SAAKg8G,aAAah8G,EAAlB,IAAsB6N,QAAO,SAAApW,GAAK,OAAAA,CAAA,GACzD,EAEA,YAAA6kH,gBAAA,SAAgBp/B,EAAoCz7E,GAApD,WACQgH,IAAY,IAAA3P,SAAQokF,GAAaA,EAAY,CAACA,IAAYxgF,KAAI,SAAAi6E,GAAK,SAAKolC,eAAeplC,EAApB,IACzE,OAAO/+E,KAAKoF,OAAOyL,EAAUhH,EAC/B,EACF,EAlCA,CAAsC,M,u8BC+BtC,aASE,WAAYq5E,EAAiByhC,EAAoB79G,GALjD,KAAAod,IAAa,GAMXlkB,KAAK4kH,IAAM1hC,EACXljF,KAAK6kH,MAAQF,EACb,IAAMh7G,EAAQ3J,KAAK2J,KAAKiS,OAAO,GAAGwN,cAAgBppB,KAAK2J,KAAKrJ,MAAM,GAC5DwkH,GAAa,IAAAl7B,aAAY1G,EAAGjrE,OAAOtO,IAA2Bu5E,EAAGjrE,OAAOjY,KAAK2J,MAAjCu5E,EAAGjrE,OAAOtO,GACtDo7G,GAAqB,IAAdD,EAAqB,CAAC,EAAIA,GAAa,CAAC,EACrDC,EAAI5gC,aAAejB,EAAGjrE,OAAOksE,cAAgB,IAExC,IAAAyF,aAAYk7B,IAAeA,IAC9BC,EAAIC,SAAW,GAGjBD,EAAI7hC,GAAKA,EACTljF,KAAKilH,SAAU,IAAA3Q,WAAUxtG,GAAY,CAAC,EAAGi+G,EAC3C,CA2CF,OAzCE,sBAAW,iBAAE,C,IAAb,WACE,OAAO/kH,KAAK4kH,GACd,E,gCACA,sBAAW,qBAAM,C,IAAjB,WACE,OAAO5kH,KAAKilH,OACd,E,gCAGA,YAAApxG,OAAA,SAAOhK,GAAuD,EAC9D,YAAAq7G,SAAA,SAAS7jH,GAAiB,EAE1B,sBAAI,mBAAI,C,IAAR,WACE,OAAOrB,KAAK6kH,KACd,E,gCAEA,YAAAj+B,UAAA,SACEj9E,GAGA,OAAOA,EAAO3J,KAAKiY,OAAOtO,GAAQ3J,KAAKiY,MACzC,EAEA,YAAAktG,UAAA,SAAUv7F,EAAa/f,QAAA,IAAAA,IAAAA,EAAA,IACrB7J,KAAKkjF,GAAGuC,WAAW,WAAIzlF,KAAK2J,KAAI,cAAMigB,GAAO/f,EAC/C,EAQA,YAAAu7G,WAAA,WACE,IAAMC,EAAOrlH,KAAK4mF,YAAYgL,SAE9B,GAAIyzB,EAAM,CACR,IAAMjxG,GAAK,IAAAw6E,WAAUy2B,GAAQA,EAAO3wG,SAASwrB,cAAcmlF,GAC3D,IAAKjxG,EAAI,OAAOpU,KAAKmlH,UAAU,gCAC/B/wG,EAAGqQ,YAAYzkB,KAAK6T,S,CAExB,EACF,EAlEA,G,UAoEA,kBAQE,WACEqvE,EACAyhC,EACAvjH,EACAsI,EACA5C,EACA+C,QAAA,IAAAA,IAAAA,EAAA,IANF,MAQE,YAAMq5E,EAAIyhC,EAAY79G,IAAS,K,OAZjC,EAAAod,IAAa,GAkBb,EAAAohG,SAAmB,EALjB,EAAKlkH,IAAMA,EACX,EAAKsI,OAASA,GACbG,EAAK07G,YAAc,EAAKC,e,CAC3B,CAuJF,OAxKU,OAuBR,YAAAN,SAAA,SAAS7jH,GAAiB,EAC1B,YAAAwS,OAAA,SAAOhK,GAAa,EAEpB,YAAA47G,eAAA,SAAe/sG,GACb,IAAM1X,EAAW,CAAC,EACZK,EAAMrB,KAAK0lH,WAIjB,OAHIrkH,IACFL,EAAIK,GAAOqX,GAAQ1Y,KAAK2rF,UAEnB3qF,CACT,EAEA,YAAA2kH,gBAAA,SAAgBjtG,EAAgB8B,QAAhB,IAAA9B,IAAAA,EAAA,SAAgB,IAAA8B,IAAAA,EAAA,IACtB,IAAApZ,EAAyBoZ,EAAK,IAAzBorG,EAAoBprG,EAAK,SAAftU,EAAUsU,EAAK,MAChCnZ,EAAMrB,KAAK0lH,WACX77G,EAAY,CAAEtH,OAAQ,QACtByoF,EAAO5pF,GAAOpB,KAAKoB,IACrB8L,EAASwL,EAAKrX,GAElB,GAAqB,iBAAV6L,EACT,IACEA,EAAS0L,KAAK3L,MAAMC,E,CACpB,MAAOilG,GACPnyG,KAAKmlH,UAAU,sBAAuB,CAAE7jF,MAAOp0B,G,CAYnD,OARAhH,GAASgH,GAAU89E,EAAK9kF,WAAMb,EAAWwE,GAErC+7G,EACF14G,GAAU04G,EAAS14G,EAAQrD,GAClBqD,IAAU,IAAAylG,OAAMzlG,EAAOvM,SAChCqqF,EAAK9kF,MAAMgH,EAAQrD,GAGdqD,CACT,EAEA,YAAAxE,MAAA,SAAMmB,QAAA,IAAAA,IAAAA,EAAA,IACI,IAAAzI,EAAQpB,KAAI,IAEpB,OADAoB,GAAOA,EAAI8E,WAAMb,EAAWwE,GACrB7J,IACT,EAGA,YAAA2rF,OAAA,WACE,OAAO,KAAI3rF,KAAKoB,IAAIoC,QAAM,EAC5B,EAEA,YAAAqiH,UAAA,WAGE,OAAO7lH,KAAK2rF,SAASh2E,QAAO,SAACwrG,EAAUthH,GAErC,OADAshH,EAAIthH,EAAE8D,IAAI9D,EAAEwN,cAAgBxN,EACrBshH,CACT,GAAG,CAAC,EACN,EAEA,YAAAqE,aAAA,SAAa37G,QAAA,IAAAA,IAAAA,EAAA,IACL,MAAsB7J,KAApBoB,EAAG,MAAE8hF,EAAE,KAAEx5E,EAAM,SACvBtI,GACE8hF,GACA9hF,EACGqG,GAAG,OAAO,SAAC+J,EAAQutE,EAAQ5oD,GAAW,OAAA+sD,EAAGp/E,QAAQ4F,EAAOpF,IAAKkN,EAAG2kB,EAA1B,IACtC1uB,GAAG,UAAU,SAAC+J,EAAQutE,EAAQ5oD,GAAW,OAAA+sD,EAAGp/E,QAAQ4F,EAAOtE,OAAQoM,EAAG2kB,EAA7B,IACzC1uB,GAAG,UAAU,SAACu0B,EAAQ+iD,GAAW,OAAAmE,EAAGp/E,QAAQ4F,EAAOmwC,OAAQ7d,EAAGA,EAAEp2B,oBAAqBm5E,EAApD,IACjCt3E,GAAG,MAAOzH,KAAK8lH,gBAAiB9lH,MAErCA,KAAKkkB,IAAM,CAAC9iB,GAAK2D,OAAO8E,EAAKk8G,aAAe,KAE1Cl8G,EAAKk8C,WAAuB,IAAItwC,SAAQ,SAAC,G,IAAEuwG,EAAM,SAAErzG,EAAK,QACxDqzG,EAAOv+G,GAAG,OAAO,SAAC+E,EAASrH,EAAY6lF,EAAWnhF,GAChD,IACMyjD,EAAM,EAAH,CAAK36C,MAAOnG,GADL3C,GAAQmhF,GAExB,CAAC9H,EAAI9hF,GAAK0D,KAAI,SAAAmhH,GAAM,OAAAA,EAAGniH,QAAQ6O,EAAOxN,EAAOmoD,EAAzB,GACtB,GACF,GACF,EAEA,YAAA44D,SAAA,SAAS/gH,EAAY0E,GAArB,gBAAqB,IAAAA,IAAAA,EAAA,IACX,IAAAq5E,EAAOljF,KAAI,GAEbimH,GAAK,IAAA/0G,UAAS/L,GAASnF,KAAK2D,IAAIwB,GAASA,EACzCu7C,EAAK,WAET,OADAulE,GAAM,EAAK7kH,IAAIgE,OAAO6gH,EAAIp8G,GACnBo8G,CACT,EAEA,OADCp8G,EAAK+D,SAAUs1E,SAAAA,EAAIp/E,QAAQ9D,KAAK0J,OAAOy8G,aAAcF,EAAIvlE,EAAI72C,KACtDA,EAAKm7E,OAAStkC,GACxB,EAEA,YAAAolE,gBAAA,SAAgBnzG,EAAYxN,EAAY6lF,EAAWnhF,GAC3C,IAAEq5E,EAAeljF,KAAb,GAAE0J,EAAW1J,KAAL,OACZ6C,EAAUgH,GAAQmhF,EACxB9H,GAAMx5E,EAAOtI,KAAO8hF,EAAGp/E,QAAQ4F,EAAOtI,IAAK,CAAEuR,MAAK,EAAExN,MAAK,EAAEtC,QAAO,IAClE7C,KAAKomH,cACP,EAEA,YAAAhB,WAAA,SAAWiB,GAET,IAAMhB,EAAOrlH,KAAKiY,OAAO25E,SAEzB,GAAIyzB,EAAM,CACR,IAAMjxG,GAAK,IAAAw6E,WAAUy2B,GAAQA,EAAO3wG,SAASwrB,cAAcmlF,GAC3D,IAAKjxG,EAAI,OAAOpU,KAAKmlH,UAAU,gCAE/B/wG,EAAGqQ,YAAYzkB,KAAK6T,OAAOwyG,G,CAE/B,EAEA,YAAAD,aAAA,WAAgB,EAEhB,YAAAE,UAAA,SAAU76F,QAAA,IAAAA,IAAAA,EAAA,IACR,IAGInhB,EAFEi8G,EADMvmH,KAAK2rF,SACFhrF,OAAS8qB,EAClB+6F,EAASxmH,KAAK6lH,YAGpB,GACEv7G,GAAK,IAAAirG,UAASgR,SACPC,EAAOl8G,IAEhB,OAAOA,CACT,EAEA,YAAAm8G,YAAA,SAAYthH,EAAoBwN,GAAhC,WACExN,EAAMsC,GAAG,OAAO,SAAC+J,EAAGutE,EAAG5oD,GAAM,SAAK+sD,GAAGp/E,QAAQ6O,EAAOnB,EAAG2kB,EAA1B,GAC/B,EAEA,YAAAuwF,eAAA,SAAevhH,EAAoBwN,GAAnC,WACExN,EAAMsC,GAAG,UAAU,SAAC+J,EAAGutE,EAAG5oD,GAAM,SAAK+sD,GAAGp/E,QAAQ6O,EAAOnB,EAAG2kB,EAA1B,GAClC,EAEA,YAAAwwF,eAAA,SAAexhH,EAAoBwN,GAAnC,WACExN,EAAMsC,GAAG,UAAU,SAACu0B,EAAG+iD,GAAM,SAAKmE,GAAGp/E,QAAQ6O,EAAOqpB,EAAGA,EAAEp2B,oBAAqBm5E,EAAjD,GAC/B,EAEA,YAAA6nC,UAAA,W,MACE5mH,KAAKkkB,IAAIzO,SAAQ,SAAAu1E,GACfA,EAAK1/E,gBACL0/E,EAAK9kF,OACP,IACS,QAAT,EAAAlG,KAAKsiC,YAAI,SAAEl9B,SACXpF,KAAKsiC,UAAOj9B,CACd,EACF,EA3KA,CAGUwhH,GC1BV,QAjB6B,CAC3B3iC,YAAa,MACb4iC,QAAS,GACTtwF,OAAQ,GACR8jE,sBAAkBj1F,EAClB0hH,gBAAiB,GACjBC,OAAO,EACPC,aAAc,kBACdC,WAAY,qOAMZC,YAAa,CAAC,SAAU,IAAK,uBAAwB,sB,kgBC3EvD,YAQE,WAAY1nH,EAAiBuH,EAAgBnE,GAA7C,MACE,YAAMmE,EAAYnE,IAAQ,K,OAC1B,EAAKukH,QAAU3nH,E,CACjB,CAaF,OAnBU,OAQR,sBAAW,qBAAM,C,IAAjB,WACE,OAAOO,KAAKonH,OACd,E,gCAEA,sBAAW,qBAAM,C,IAAjB,WACE,OAAOpnH,KAAKonH,QAAQnvG,MACtB,E,gCAEA,sBAAW,iBAAE,C,IAAb,WACE,OAAOjY,KAAKonH,QAAQlkC,EACtB,E,gCACF,EAxBA,CAKU,M,kgBCFV,YAeE,WACEzjF,EACA+D,EACA6jH,G,OAEA,YAAM7jH,EAAQ,CAAE/D,OAAM,EAAE4nH,iBAAgB,KAAG,IAC7C,CAMF,OA3BwF,OAMtF,YAAA/iH,IAAA,SAAIa,EAAiBtC,GAArB,I,EAAA,OAEMW,GAAS,IAAAtC,SAAQiE,GAASA,GAAS,IAAAykF,aAAYzkF,QAAmBE,EAAV,CAACF,GAI7D,OAFA3B,EAA+F,QAAtF,EAAAA,aAAM,EAANA,EAAQsB,KAAI,SAAA0M,GAAK,OAACA,aAAa,EAAK81G,SAAW91G,EAAI,IAAI,EAAK81G,SAAS,EAAK7nH,OAAQ+R,EAAjE,WAAqE,QAAI,MAACnM,GAE7F,YAAMf,IAAG,WAAC,IAAApD,SAAQiE,GAAS3B,EAASA,EAAO,GAAIX,EACxD,EAUA,YAAAkK,cAAA,SAAcvJ,EAAgDX,GAC5D7C,KAAKsnH,SAAWzkH,EAAQwkH,iBACxBrnH,KAAKP,OAASoD,EAAQpD,MACxB,EACF,EA3BA,CAAwF,M,u8BCElF8nH,EAAW,OACXC,EAAW,OAUjB,cAqBE,WAAY/nH,EAAsB+H,GAAlC,MACE,YAAM/H,EAAQ+H,IAAK,KACX07E,EAAO,EAAI,GACb,EAAwB,EAAKl8E,WAA3BwvB,EAAM,SAAE8uD,EAAS,YACnBmiC,EAAOvkC,EAAGuR,WACVizB,EAAOD,EAAK7gC,YACZ+gC,EAAWzkC,EAAG0kC,IAAIj8B,SAClBk8B,EAAa,CAAC,EACdC,EAAU,CAAE5kC,GAAE,EAAEjrE,OAAQyvG,EAAMv3B,MAAO,EAAM03B,MAAK,GAEtD,KAAK,IAAA5S,aAAY3vB,GAAY,CAC3B,IAAMkG,GAAM,IAAA9kF,UAAS4+E,GAAaA,EAAY,CAAED,WAAYC,IAC3DkG,EAAIhpF,OAASgpF,EAAIhpF,KAAO,WACzB,IAAMulH,EAAUN,EAAKO,QAAQ,WAAY7iH,MACzC,EAAKM,IAAI,YAAa,IAAIsiH,EAAQv8B,EAAKs8B,G,CAGzC,GAAKtxF,GAEE,KAAK,IAAA9vB,UAAS8vB,GAAS,CAEVxN,OAAO/nB,KAAK4mH,GAChBlnH,QAAUP,MAAMc,QAAQs1B,IACpCA,EAAO/gB,SAAQ,SAAAkH,GACb,IAAMk1B,EAAMl1B,EAAMsrG,UAClB,GAAIp2E,GAAqB,GAAdA,EAAIlxC,OAAa,CAC1B,IAAMunH,EAAOr2E,EAAI,GACXs2E,EAAQD,EAAKv+G,MAAsB,IAAdu+G,EAAK1lH,MAAc0lH,EAC9C,GAAIC,GAASN,EAAMM,EAAMx+G,MACvBw+G,EAAMx+G,KAAOk+G,EAAMM,EAAMx+G,WACpB,IAAI,IAAAuH,UAASg3G,IAAqB,MAAZA,EAAK,GAAY,CAC5C,IAAM95G,EAAS85G,EAAKvnG,UAAU,GAC1BvS,GAAUy5G,EAAMz5G,KAClByjC,EAAI,GAAK,WAAIg2E,EAAMz5G,I,EAI3B,IAGFu5G,EAASrjH,IAAIkyB,GACb,EAAK/wB,IAAI,SAAUkiH,E,OAvBnB,EAAKliH,IAAI,SAAUkiH,G,OA0BpBngH,EAAK2+B,OAAS,EAAK1gC,IAAI8hH,EAAU,IACjC//G,EAAKsrB,QAAU,EAAKrtB,IAAI+hH,EAAU,G,CACrC,CA0HF,OA7LmC,OACjC,YAAA1gH,SAAA,WACE,MAAO,CACL+sB,EAAG,EACH+Z,EAAG,EACHw6E,aAAc,EACdphH,WAAY,CAAC,EACbm/B,MAAO,KACPrT,OAAQ,KACRnc,KAAM,GACN2uE,UAAW,GACX9uD,OAAQ,GACR6xF,OAAO,EACPC,SAAU,CAAC,gBAEf,EAsDA,sBAAI,mBAAI,C,IAAR,WACE,OAAOtoH,KAAK2D,IAAI,OAClB,E,gCAEA,YAAAwgG,SAAA,WACEnkG,KAAKokH,eAAeh/G,OAAO,CAAE9F,KAAM,GACrC,EAEA,YAAAipH,UAAA,SAAUj7D,QAAA,IAAAA,IAAAA,EAAA,IACJA,EAAIk7D,WAAal7D,EAAIm7D,SAAWn7D,EAAIu7B,YAGxC7oF,KAAKyF,IAAI,eAAgBzF,KAAK2D,IAAI,gBAAkB,EACtD,EAEA,YAAAygH,aAAA,WACE,OAAOpkH,KAAK2D,IAAI,YAClB,EAEA,YAAA+kH,UAAA,WACE,OAAO1oH,KAAK2D,IAAI,SAClB,EAEA,YAAA0qF,QAAA,WACEruF,KAAK8D,QAAQ,UACf,EAEA,YAAAsB,OAAA,WACEpF,KAAKsiC,UAAOj9B,EACZ,IAAM2lF,EAAOhrF,KAAKiF,WAClB,OAAO+lF,GAAQA,EAAK5lF,OAAOpF,KAC7B,EAEA,YAAA2oH,QAAA,WACE,OAAO,KAAI3oH,KAAK2W,MAAI,EACtB,EAEA,YAAAiyG,QAAA,SAAQlhH,GACN,OAAO1H,KAAKyF,IAAI,OAAQ,KAAIiC,GAAK,GACnC,EAEA,YAAAmhH,YAAA,SAAYpiC,GACVzmF,KAAK2W,KAAKhS,KAAK8hF,EACjB,EAEA,YAAAqiC,cAAA,SAActhH,EAAcE,EAAYid,GACtC,OAAO3kB,KAAK2W,KAAKV,QAAO,SAAAwwE,GAAQ,OAAAA,EAAKz/E,YAAcy/E,EAAKz/E,WAAWQ,IAASE,KAAWid,GAAOA,IAAQ8hE,EAAK9hE,IAA3E,IAAiF,EACnH,EAEA,YAAAokG,iBAAA,SAAiBvhH,EAAcE,EAAYid,GACzC,IAAM8hE,EAAOzmF,KAAK8oH,cAActhH,EAAME,EAAOid,GACvC7jB,EAAQd,KAAK2W,KAAK9R,QAAQ4hF,GAE5B3lF,GAAS,GACXd,KAAK2W,KAAK/R,OAAO9D,EAAO,EAE5B,EAEA,YAAAkoH,QAAA,SAAQxtG,GACN,IAAMmJ,EAAM,QACX3kB,KAAK8oH,cAAc,OAAQttG,EAAMmJ,IAChC3kB,KAAK6oH,YAAY,CACflkG,IAAG,EACH3d,WAAY,CACVwU,KAAI,EACJ2qC,IAAK,eAGb,EAEA,YAAA8iE,WAAA,SAAWztG,GACTxb,KAAK+oH,iBAAiB,OAAQvtG,EAAM,OACtC,EAEA,YAAA0tG,UAAA,SAAUxsG,GACR,IAAMiI,EAAM,UACX3kB,KAAK8oH,cAAc,MAAOpsG,EAAKiI,IAC9B3kB,KAAK6oH,YAAY,CACflkG,IAAG,EACH3d,WAAY,CAAE0V,IAAG,IAEvB,EAEA,YAAAysG,aAAA,SAAazsG,GACX1c,KAAK+oH,iBAAiB,MAAOrsG,EAAK,SACpC,EAEA,YAAA0sG,QAAA,W,MACE,OAA6C,QAArC,EAAAppH,KAAKiF,kBAAgC,eAAEokH,IACjD,EAEA,YAAAC,aAAA,SAAa5wG,QAAA,IAAAA,IAAAA,EAAA,IACX1Y,KAAKkjF,GAAGp/E,QAAQ,gBAAiB,GAAEqsF,MAAOnwF,MAAS0Y,GACrD,EAEA,YAAApL,OAAA,SAAOzD,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAM7I,EAAM,wBAAkChB,KAAM6J,GAC9C/C,GAAW,IAAAoG,QAAOlN,KAAM,YAqB9B,OAnBI6J,EAAK0/G,iBAAiBvoH,EAAIskF,iBACvBtkF,EAAIw1B,cACJx1B,EAAIonH,aACXpnH,EAAIumH,WAAoBvmH,EAAImlC,MAC5BnlC,EAAIwmH,WAAoBxmH,EAAI8xB,QAG5B,IAAArd,SAAQzU,GAAK,SAAC0G,EAAOrG,GACE,IAArBA,EAAIwD,QAAQ,aAAqB7D,EAAIK,EACvC,KAEA,IAAAoU,SAAQ3O,GAAU,SAACY,EAAOrG,GACpBL,EAAIK,KAASqG,UAAc1G,EAAIK,EACrC,KAEA,IAAAoU,SAAQ,CAAC,aAAc,SAAS,SAAAgR,IAC1B,IAAAnhB,SAAQtE,EAAIylB,YAAezlB,EAAIylB,EACrC,IAEOzlB,CACT,EACF,EA7LA,CAAmC,G,4gBCdnC,YAKE,WAAYvB,EAAsB+D,QAAA,IAAAA,IAAAA,EAAA,IAAlC,MACE,YAAM/D,EAAQ+D,EAAQ,IAAM,K,OAL9B,EAAAgmH,YAAc,EACd,EAAAC,YAAc,GAKZ,IAAAnnC,SAAQ,EAAM,cACd,EAAK76E,GAAG,QAAS,EAAKiiH,SACtB,EAAKjiH,GAAG,SAAU,EAAK08F,U,CACzB,CA6BF,OAvCoC,OAYlC,YAAAulB,QAAA,SAAQl4G,EAAU3H,GAAlB,aACeA,aAAI,EAAJA,EAAM1D,iBAAkB,IAChCrB,KAAI,SAAAk3B,GAAK,SAAKmoE,SAASnoE,EAAd,GAChB,EAEA,YAAAmoE,SAAA,SAAS7zF,GACPA,SAAAA,EAAS6zF,UACX,EAEA,YAAAwlB,WAAA,WACE3pH,KAAKwpH,cAEDxpH,KAAKwpH,aAAexpH,KAAKypH,cAC3BzpH,KAAK8D,QAAQ,cACb9D,KAAK4pH,mBAAkB,GAE3B,EAEA,YAAAC,aAAA,WACE7pH,KAAKwpH,YAAc,EACnBxpH,KAAKypH,YAAczpH,KAAKW,OACxBX,KAAK4pH,mBAAkB,EACzB,EAEA,YAAAA,kBAAA,SAAkBniH,GAAlB,WACEzH,KAAKyV,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKh/E,EAAK,KAAO,OAAO,SAAU,EAAKkiH,WAAvC,GACvB,EACF,EAvCA,CAAoC,G,kgBCiCpC,YAUE,WAAY7gG,EAAYjf,QAAA,IAAAA,IAAAA,EAAA,IAAxB,MACE,YAAMif,EAAOjf,IAAK,KACVq5E,EAAOr5E,EAAI,GACbigH,EAAgB,CAAC,EACvB,EAAK5mC,GAAKA,EACLp6D,EAAMs6E,SACT0mB,EAASxkC,UAAYx8D,EAAMw8D,UAC3BwkC,EAAStzF,OAAS1N,EAAM0N,OACxB,CAAC,YAAa,UAAU1xB,KAAI,SAAAjF,GAAK,SAAK2F,MAAM3F,EAAX,KAEnC,IAAMkqH,EAAcjhG,EAAMs6E,QAAU,CAAC0mB,GAC/B1mB,EAAS,IAAI,EAAOlgB,EAAIsB,OAAQulC,GACtC3mB,EAAOimB,KAAO,EACd,EAAK5jH,IAAI,SAAU29F,IAClB,EAAK4mB,SAAW,EAAKvkH,IAAI,KAAMy9E,aAAE,EAAFA,EAAIv/E,IAAI,eAAe2iH,aACvD,IAAM2D,EAAK/mC,aAAE,EAAFA,EAAIv/E,IAAI,e,OACnBsmH,SAAAA,EAAI3lH,IAAI8+F,G,CACV,CAmFF,OA9GkC,OAChC,YAAAt8F,SAAA,WACE,MAAO,CACL6C,KAAM,GACNy5F,OAAQ,GACRilB,OAAO,EAEX,EAsBA,YAAAlkB,SAAA,WACEnkG,KAAK+3F,YAAY7xF,OACnB,EAEA,YAAA6xF,UAAA,WACE,OAAO/3F,KAAK2D,IAAI,SAClB,EAMA,YAAAqmH,MAAA,WACE,OAAOhqH,KAAKsK,EACd,EAMA,YAAAoiF,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,OAClB,EAQA,YAAAumH,QAAA,SAAQvgH,GACN,OAAO3J,KAAKyF,IAAI,CAAEkE,KAAI,GACxB,EAQA,YAAAwgH,aAAA,WACE,OAAOnqH,KAAK+3F,YAAYv0F,QAAU,EACpC,EAQA,YAAA4mH,aAAA,WACE,OAAOpqH,KAAK+3F,YAAYt0F,GAAG,EAC7B,EASA,YAAA4mH,iBAAA,WACE,IAAMl6B,EAAQnwF,KAAKoqH,eACnB,OAAOj6B,aAAK,EAALA,EAAOi0B,cAChB,EAEA,YAAA92G,OAAA,SAAOzD,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAM7I,EAAM,2BAA4BhB,KAAM6J,GACxC/C,GAAW,IAAAoG,QAAOlN,KAAM,YAW9B,OARA,IAAAyV,SAAQzU,GAAK,SAAC0G,EAAOrG,GACE,IAArBA,EAAIwD,QAAQ,aAAqB7D,EAAIK,EACvC,KAEA,IAAAoU,SAAQ3O,GAAU,SAACY,EAAOrG,GACpBL,EAAIK,KAASqG,UAAc1G,EAAIK,EACrC,IAEOL,CACT,EACF,EA9GA,CAAkC,M,6uBCnClC,YACE,WAAYwC,EAAa0/E,GAAzB,MACE,YAAM1/E,IAAO,K,OACb,EAAKiE,GAAG,QAAS,EAAKiiH,SACtB,EAAKjiH,GAAG,SAAU,EAAK08F,UAGvB,EAAKh/F,MAAQ,SAAC2jB,EAAWjf,GACvB,YADuB,IAAAA,IAAAA,EAAA,IAChB,IAAI,EAAKif,EAAO,OAAIjf,GAAI,CAAEq5E,GAAE,IACrC,E,CACF,CASF,OAnBmC,OAYjC,YAAAwmC,QAAA,SAAQl4G,EAAS3H,GAAjB,I,EAAA,OACsB,QAApB,EAAAA,aAAI,EAAJA,EAAM1D,sBAAc,SAAErB,KAAI,SAACk3B,GAAM,SAAKmoE,SAASnoE,EAAd,GACnC,EAEA,YAAAmoE,SAAA,SAAS7zF,GACPA,SAAAA,EAAS6zF,UACX,EACF,EAnBA,CAAmC,M,4tBC+DtBmmB,EAAQ,OACRC,EAAQ,UAAGD,EAAK,KAChBE,EAAe,UAAGD,EAAK,UACvBE,EAAqB,UAAGD,EAAY,WACpCE,EAAe,UAAGH,EAAK,UACvBI,EAAY,UAAGJ,EAAK,OACpBK,EAAkB,UAAGD,EAAS,WAC9BE,EAAe,UAAGN,EAAK,UACvBO,EAAqB,UAAGD,EAAY,WAC3CE,EAAS,kBACTC,EAAW,OACXthH,EAAS,CACbtI,IAAKkpH,EACLp0G,OAAQs0G,EACRS,aAAcR,EACd5wE,OAAQ6wE,EACRpmH,IAAKqmH,EACLO,UAAWN,EACXxlH,OAAQylH,EACR1E,aAAc2E,GAOhB,cA4BE,WAAY5nC,GAAZ,MACE,YAAMA,EAAI,cAAe,IAAI,EAAM,GAAIA,GAAKx5E,IAAO,KA5BrD,EAAAg8G,WAAa,SA6BX,IAAApjC,SAAQ,EAAM,iBACd,IAAMn9E,EAAQ,IAAI,EAAY,CAAEkjH,OAAO,I,OACvC,EAAKljH,MAAQA,EACb,EAAKgmH,MAAM1jH,GAAG,SAAS,SAAAujF,GAAQ,OAAAA,EAAKvnF,GAAG,IAAM,EAAKyS,OAAO80E,EAAKvnF,GAAG,GAAlC,IAC/B,EAAK0nH,MAAM1jH,GAAG,MAAO,EAAK2jH,WAAY,GACtCjmH,EAAMsC,GAAGsjH,EAAQ,EAAKM,e,CACxB,CAyKF,OA7MyC,OAGvC,sBAAI,oBAAK,C,IAAT,WACE,OAAOrrH,KAAKoB,GACd,E,gCAIA,YAAAuqF,OAAA,WAEE,OAAO,KAAI3rF,KAAKoB,IAAIoC,QAAM,EAC5B,EA0BA,YAAA4nH,WAAA,SAAWz4G,EAAe02G,EAAYr+B,EAAanhF,GACjD,IAAMhH,EAAUgH,GAAQmhF,EACxBhrF,KAAKkjF,GAAGp/E,QAAQwmH,EAAO,CAAE33G,MAAK,EAAE02G,KAAI,EAAExmH,QAAO,GAC/C,EAEA,YAAAyoH,OAAA,e,EAAA,OACUH,EAAUnrH,KAAI,MAChBstD,EAAM,CAAE1/C,QAAQ,GACtBu9G,EAAM7mH,KAAqB,QAAjB,EAAAtE,KAAKiY,OAAOkzG,aAAK,eAAErmH,KAAI,SAAAukH,GAAQ,WAAI,EAAKA,EAAM,CAAEnmC,GAAI,EAAKA,GAAIjrE,OAAQ,EAAKA,QAA3C,MAAyD,GAAIq1C,GACtG,IAAMi+D,EAAYJ,EAAMxqH,OAA6CX,KAAKwrH,UAAzCxrH,KAAKsE,IAAI,CAAE9B,KAAMwoH,GAAY19D,GAC9Di+D,GAAYvrH,KAAKkW,OAAOq1G,EAAUj+D,EACpC,EAEA,YAAA+9D,cAAA,SAAc75G,EAAQ63G,EAAYx/G,GACxB,IAAAq5E,EAAOljF,KAAI,GACbmyF,EAAKjP,EAAGuoC,OACRC,EAAWrC,EAAKgB,mBACtBl4B,GAAMu5B,GAAYv5B,EAAGw5B,QAAQD,GAC7BxoC,EAAGp/E,QAAQ0mH,EAAcnB,EAAM73G,EAAEhD,SAAS,aAC1CxO,KAAKorH,WAAWL,EAAQ1B,EAAMx/G,EAChC,EAEA,YAAAq7G,SAAA,WACQ,MAAuBllH,KAArBkjF,EAAE,KAAE/9E,EAAK,QAAEgmH,EAAK,QAClBlB,EAAK/mC,EAAG57E,YACd2iH,EAAG3lH,IAAIa,GACP8kH,EAAG3lH,IAAI6mH,GACPA,EAAM1jH,GAAG,2BAA2B,SAAC+J,EAAGutE,EAAG5oD,GAAM,OAAA+sD,EAAGqlC,UAAUpyF,GAAK4oD,EAAlB,GACnD,EAcA,YAAAz6E,IAAA,SAAIwkB,EAAuBjf,GAA3B,gBAA2B,IAAAA,IAAAA,EAAA,IACjB,IAAAq5E,EAAOljF,KAAI,GACnB8oB,EAAMxe,GAAKwe,EAAMxe,IAAMtK,KAAKsmH,YAC5B,IAAMhiH,EAAM,WACV,IAAM+kH,EAAO,EAAK8B,MAAM7mH,IAAI,IAAI,EAAKwkB,EAAO,CAAEo6D,GAAI,EAAKA,GAAIjrE,OAAQ,EAAKA,SAAWpO,GAEnF,OADAA,EAAKqM,QAAU,EAAKA,OAAOmzG,GACpBA,CACT,EAEA,OADCx/G,EAAK+D,QAAUs1E,EAAGp/E,QAAQ8mH,EAAiB9hG,EAAOxkB,EAAKuF,IAChDA,EAAKm7E,OAAS1gF,GACxB,EAYA,YAAAc,OAAA,SAAOikH,EAAqBx/G,GAA5B,gBAA4B,IAAAA,IAAAA,EAAA,IAClB,IAAAq5E,EAAOljF,KAAI,GACb4rH,GAAK,IAAA16G,UAASm4G,GAAQrpH,KAAK2D,IAAI0lH,GAAQA,EACvC3oE,EAAK,WAET,OADAkrE,GAAM,EAAKT,MAAM/lH,OAAOwmH,EAAI/hH,GACrB+hH,CACT,EAEA,OADC/hH,EAAK+D,QAAUs1E,EAAGp/E,QAAQgnH,EAAoBc,EAAIlrE,EAAI72C,IAC/CA,EAAKm7E,OAAStkC,GACxB,EASA,YAAA/8C,IAAA,SAAI2G,GACF,OAAOtK,KAAKmrH,MAAMl1G,QAAO,SAAA+lB,GAAK,OAAAA,EAAEr4B,IAAIq4B,EAAE3uB,eAAiB/C,CAAzB,IAA6B,EAC7D,EAQA,YAAAkhH,QAAA,WACU,IAAAL,EAAUnrH,KAAI,MACtB,OAAOmrH,EAAMl1G,QAAO,SAAA+lB,GAAK,OAAAA,EAAEr4B,IAAI,UAAYqnH,CAAlB,IAA4B,IAAMG,EAAM1nH,GAAG,EACtE,EAUA,YAAA6nF,eAAA,WACE,IAAM6/B,EAAQnrH,KAAK2rF,SACnB,OAAO,IAAA6d,SAAO,IAAAje,SAAQ4/B,EAAMrmH,KAAI,SAAAukH,GAAQ,OAAAA,EAAKc,eAAerlH,KAAI,SAAAqrF,GAAS,OAAAA,EAAMi0B,cAAN,GAAjC,KAC1C,EAYA,YAAAluG,OAAA,SAAOmzG,EAAqBx/G,QAAA,IAAAA,IAAAA,EAAA,IAC1B,IAAM+hH,GAAK,IAAA16G,UAASm4G,GAAQrpH,KAAK2D,IAAI0lH,GAAQA,EAK7C,OAJIuC,IACF5rH,KAAKkjF,GAAGp/E,QAAQ2mH,EAAoBmB,EAAI/hH,GACxC7J,KAAKmF,MAAMM,IAAI,WAAYmmH,EAAI/hH,IAE1B7J,IACT,EAQA,YAAAgpF,YAAA,WACE,OAAOhpF,KAAKmF,MAAMxB,IAAI,WACxB,EAEA,YAAA0L,QAAA,sBACErP,KAAKmrH,MAAMhgH,MAAMjF,QACjBlG,KAAKmF,MAAMmG,gBACXtL,KAAKmF,MAAMuD,MAAM,CAAEkF,QAAQ,IAE3B,CAAC,WAAY,SAAS9I,KAAI,SAAAjF,GAAK,OAAC,EAAKA,GAAK,CAAX,GACjC,EAEA,YAAA08F,MAAA,WACE,OAAOv8F,KAAKylH,gBACd,EAEA,YAAApiB,KAAA,SAAK3qF,GACH,OAAO1Y,KAAK2lH,gBAAgBjtG,EAAM,CAAEtX,IAAKpB,KAAKmrH,MAAOjlH,OAAO,GAC9D,EAEA,YAAAogH,UAAA,WACE,IAGIh8G,EAFEmhB,EADQzrB,KAAK2rF,SACDhrF,OAAS,GACrBkrH,EAAW7rH,KAAK6lH,YAGtB,GACEv7G,GAAK,IAAAirG,UAAS9pF,SACPogG,EAASvhH,IAElB,OAAOA,CACT,EACF,EA7MA,CAAyCwhH,G,WCrCzC,SA7BoC,CAClCC,QAAS,GACTC,QAAS,CACP,CACE1hH,GAAI,UACJX,KAAM,UACNw8B,MAAO,IAET,CACE77B,GAAI,SACJX,KAAM,SACNw8B,MAAO,QACP8lF,WAAY,SAEd,CACE3hH,GAAI,kBACJX,KAAM,mBACNw8B,MAAO,QACP8lF,WAAY,SAEd,CACE3hH,GAAI,iBACJX,KAAM,kBACNw8B,MAAO,QACP8lF,WAAY,W,ogBCXlB,yB,8CAgCA,QAhCoC,QAClC,YAAAnlH,SAAA,WACE,MAAO,CACL6C,KAAM,GACNw8B,MAAO,KACPrT,OAAQ,GACRm5F,WAAY,KACZtjG,SAAU,KAEd,EAEA,YAAAphB,WAAA,sBAC6B,OAA3BvH,KAAK2D,IAAI,eAA0B3D,KAAKyF,IAAI,aAAczF,KAAK2D,IAAI,UAC7C,OAAtB3D,KAAK2D,IAAI,UAAqB3D,KAAKyF,IAAI,QAASzF,KAAK2D,IAAI,gBACxD3D,KAAK2D,IAAI,aAAe3D,KAAKyF,IAAI,WAAY8iF,WAAWvoF,KAAK2D,IAAI,gBAAmB,GACzC,CAAC,QAAS,SAAU,cACxD8R,SAAQ,SAAAgR,GAAQ,SAAKylG,UAAUzlG,EAAf,GAC1B,EAEA,YAAAylG,UAAA,SAAUzlG,GACR,IAAM0lG,EAAMnsH,KAAK2D,IAAI8iB,IAAS,IACd8hE,WAAW4jC,IAAO,GAAGvkG,aAAeukG,EAAGvkG,YAC7C5nB,KAAKyF,IAAIghB,EAAM,UAAG0lG,EAAE,MAChC,EAEA,YAAAz/B,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,SAAW3D,KAAK2D,IAAI,KACtC,EAEA,YAAAyoH,cAAA,WACE,OAAOpsH,KAAK2D,IAAI,eAAiB,EACnC,EACF,EAhCA,CAAoC,M,2fCrCpC,4B,8CAAyD,QAApB,QAAoB,EAAzD,CAAqC,M,YAErC0oH,GAAQhsH,UAAU8E,MAAQ,G,6oBCK1B,YA4BE,WAAYgxB,GAAZ,MACE,YAAMA,IAAE,K,OACR,EAAKle,OAASke,EAAEle,QAAU,CAAC,EAC3B,EAAKirE,GAAK,EAAKjrE,OAAOirE,GACtB,EAAKK,KAAO,EAAKtrE,OAAOksE,cAAgB,GACxC,EAAK35E,SAAS,EAAK04E,GAAI,gBAAiB,EAAKopC,c,CAC/C,CA+DF,OAjGyC,QAMvC,YAAA5P,SAAA,SAAS,G,IAAEn5B,EAAI,OAAE7W,EAAK,QACpB,OAAOwJ,EAAI,4bACS,kBAAsB,8BACtB,SAAa,iCACb,8CACO,8DAEL,wCACE,kGAGoB,iDAT5BqN,EAAqB7W,EACrB6W,EAAaA,EACbA,EACOA,EAELA,EACEA,EAGoBA,EAE1C,EAEA,YAAA75E,OAAA,WACE,MAAO,CACLoxB,OAAQ,eACR,yBAA0B,WAE9B,EAeA,YAAAyxF,SAAA,WAAY,EAMZ,YAAAC,aAAA,WACU,IAAAtpC,EAAOljF,KAAI,GAEnB,GAAIkjF,EAAI,CACN,IAAMupC,EAAQzsH,KAAK0sH,UACnBxpC,EAAGz9E,IAAI,SAAUgnH,EAAQA,EAAMxmH,MAAQ,G,CAE3C,EAMA,YAAAqmH,aAAA,WACQ,IAAEppC,EAAkBljF,KAAhB,GAAE0sH,EAAc1sH,KAAL,UAErB,GAAIkjF,GAAMA,EAAGypC,gBAAkBD,EAAW,CACxC,IAAME,EAAS1pC,EAAGypC,iBAClBD,EAAUzmH,IAAI2mH,EAASA,EAAOjpH,IAAI,MAAS,G,CAE/C,EAOA,YAAAkpH,WAAA,WACQ,IAAE5nH,EAAmBjF,KAAT,WAAEkjF,EAAOljF,KAAL,GAClBkN,EAAS,GAQb,OANAjI,EAAWwQ,SAAQ,SAAAm3G,GACX,MAAeA,EAAO5lH,WAApB2C,EAAI,OAAEW,EAAE,KACVoiE,EAASwW,GAAMA,EAAG5vB,GAAK4vB,EAAG5vB,EAAE,gCAAyBhpD,KAAUX,EACrEuD,GAAU,0BAAkB5C,GAAMX,EAAI,cAAK+iE,EAAK,YAClD,IAEOx/D,CACT,EAEA,YAAA2G,OAAA,WACQ,MAAwB7T,KAAtBkjF,EAAE,KAAEK,EAAI,OAAE5vE,EAAG,MAAES,EAAE,KACnBs4D,EAAQwW,GAAMA,EAAG5vB,GAAK4vB,EAAG5vB,EAAE,wBAMjC,OALA3/C,EAAIuiE,KAAKl2E,KAAK08G,SAAS,CAAEn5B,KAAI,EAAE7W,MAAK,KACpC1sE,KAAK0sH,UAAY/4G,EAAIC,KAAK,WAAI2vE,EAAI,YAClCvjF,KAAK0sH,UAAU15B,OAAOhzF,KAAK6sH,cAC3B7sH,KAAK0sH,UAAUzmH,IAAIi9E,EAAGv/E,IAAI,WAC1ByQ,EAAGQ,UAAY,UAAG2uE,EAAI,aACfvjF,IACT,EACF,EAjGA,CAAyC,M,4uBCgC5B,GAAQ,SACR,GAAQ,UAAG,GAAK,KAChB8sH,GAAW,UAAG,GAAK,UAEnBC,IADiB,UAAGD,GAAQ,WACjB,UAAG,GAAK,WACnBE,GAAQ,UAAG,GAAK,OAEhBC,IADc,UAAGD,GAAK,WACX,UAAG,GAAK,WACnBE,GAAiB,UAAGD,GAAQ,WACnC,GAAS,gBAET,GAAS,CACb7rH,IAAK,GACL8U,OAAQ42G,GACRjzE,OAAQkzE,GACRzoH,IAAK0oH,GACL5nH,OAAQ6nH,GACR9G,aAAc+G,IAGhB,eAcE,WAAYhqC,GAAZ,I,EAAA,OAME,O,EALA,YAAMA,EAAI,gBAAiB,IAAI,GAAW,GAAQ,KAAS,MAP7DiqC,OAAS,GAET,EAAAd,QAAU,GAEV,EAAA3G,WAAa,GAIX,EAAKsG,QAAU,EAAK5qH,IACD,QAAnB,IAAK6W,OAAO+zG,eAAO,SAAEv2G,SAAQ,SAAAm3G,GAAU,SAAKtoH,IAAIsoH,EAAQ,CAAEh/G,QAAQ,GAA3B,IACvC,EAAKsI,OAAO,EAAK+B,OAAO8zG,SAAW,EAAKC,QAAQvoH,GAAG,IACnDy/E,EAAGz7E,GAAG,GAAQ,EAAK2lH,UAAW,GACvB,CACT,CA0IF,OA/J2C,QAuBzC,YAAAA,UAAA,SAAU57G,EAAgB67G,EAAkBxjH,GACpC,IAAEq5E,EAAeljF,KAAb,GAAE0J,EAAW1J,KAAL,OACZoO,EAASoD,EAAEhD,SAAS,UACpB8+G,EAAYttH,KAAK2D,IAAI0pH,GACrB7gH,EAAK9C,EAAOwM,OAClBgtE,EAAGp/E,QAAQ0I,EAAI8gH,EAAWttH,KAAK2D,IAAIyK,IACnCpO,KAAK8lH,gBAAgBt5G,EAAI8gH,EAAWzjH,EACtC,EAqBA,YAAAvF,IAAA,SAAIwkB,EAAyBjmB,GAC3B,IAAIqK,OADuB,IAAArK,IAAAA,EAAA,IAE3B,IAAIgH,EAAOhH,EAGX,IAAI,IAAAqO,UAAS4X,GAAQ,CACnB,IAAMqd,EAAQtjC,EAEdqK,EAAS,SADTrD,EAAO1I,UAAU,IAAM,CAAC,GAEf,CACPmJ,GAAIwe,EACJnf,KAAME,EAAKF,MAAQmf,EACnBqd,MAAK,G,MAGPj5B,EAAS4b,EAOX,OAJK5b,EAAO5C,KACV4C,EAAO5C,GAAK4C,EAAOvD,MAAQ3J,KAAKsmH,aAG3BtmH,KAAKgsH,QAAQ1nH,IAAI4I,EAAQrD,EAClC,EAWA,YAAAlG,IAAA,SAAI2G,GAGF,OADetK,KAAK2rF,SAAS11E,QAAO,SAAAsoB,GAAK,OAAAA,EAAE56B,IAAI,UAAY2G,CAAlB,IAAsB,IAC9CtK,KAAKgsH,QAAQroH,IAAI2G,IAAO,IAC3C,EAYA,YAAAlF,OAAA,SAAOwnH,EAAyB/iH,GAC9B,YAD8B,IAAAA,IAAAA,EAAA,IACvB7J,KAAKkmH,SAAS0G,EAAQ/iH,EAC/B,EAUA,YAAA0jH,WAAA,WACE,OAAOvtH,KAAKgsH,QAAQxoH,MACtB,EAWA,YAAA0S,OAAA,SAAO02G,EAAyB/iH,QAAA,IAAAA,IAAAA,EAAA,IAC9B,IAAMo8G,GAAK,IAAA/0G,UAAS07G,GAAU5sH,KAAK2D,IAAIipH,GAAUA,EAEjD,OADA3G,GAAMjmH,KAAKkjF,GAAGz9E,IAAI,SAAUwgH,EAAGtiH,IAAI,MAAOkG,GACnC7J,IACT,EAQA,YAAAgpF,YAAA,WACE,OAAOhpF,KAAK2D,IAAI3D,KAAKkjF,GAAGv/E,IAAI,UAC9B,EAEA,YAAAgoF,OAAA,WACE,OAAO3rF,KAAKgsH,OACd,EAEA,YAAAn4G,OAAA,W,MACUqvE,EAAOljF,KAAI,GAMnB,OALS,QAAT,EAAAA,KAAKsiC,YAAI,SAAEl9B,SACXpF,KAAKsiC,KAAO,IAAI,GAAY,CAC1Br9B,WAAYjF,KAAKgsH,QACjB/zG,OAAQ,IAAEirE,GAAE,GAAKljF,KAAKiY,UAEjBjY,KAAKsiC,KAAKzuB,SAASO,EAC5B,EAEA,YAAA/E,QAAA,WACErP,KAAK4mH,WACP,EACF,EA/JA,CAA2CkF,G,ugBCvD3C,eAgBE,WAAYrsH,GAAZ,WACUyjF,EAAezjF,EAAM,GAAjBwY,EAAWxY,EAAM,OACrBqnH,EAAoB7uG,EAAM,QAAjBue,EAAWve,EAAM,O,SAClC,YAAMxY,EAAQ,CAAEqnH,QAAO,EAAEtwF,OAAM,KAAG,MAC7B/wB,IAAI,SAAU,IAAI,EAAOhG,IAC9B,EAAK+K,SAAS,EAAM,cAAe,EAAKgjH,cACxC,EAAKhjH,SAAS04E,EAAI,wBAAiB,IAAkB,EAAKspC,cAC1D,EAAKhiH,SAAS04E,EAAIsnC,EAAc,EAAKiD,c,CACvC,CAqCF,OA7DoC,QAClC,YAAA3mH,SAAA,WACE,MAAO,CACLqpF,MAAO,GACPiT,OAAQ,GACRsqB,QAAQ,EACRrtB,KAAM,IACNxsE,EAAG,EACH+Z,EAAG,EAEHk5E,QAAS,GAETtwF,OAAQ,GAEZ,EAYA,sBAAI,qBAAM,C,IAAV,WACE,OAAOx2B,KAAK2D,IAAI,SAClB,E,gCAEA,YAAAq+C,KAAA,WACU,IACFupE,EADSvrH,KAAI,GACCqrF,MAAMmgC,UAC1BxrH,KAAKyF,IAAI,SAAU8lH,EAASxzB,aAC5B/3F,KAAKwsH,aAAa,CAAEr8B,MAAOo7B,EAASnB,gBACtC,EAEA,YAAAqD,aAAA,SAAapE,EAAYn7G,GACf,IAAAg1E,EAAOljF,KAAI,GACnBkjF,EAAGwb,cACHxb,EAAGv/E,IAAI,gBAAkBu/E,EAAGqS,cAC5BrnF,SAAAA,EAAM6pF,YAAYjzF,KAAI,SAAAqrF,GAAS,OAAAA,EAAM9B,SAAN,IAC/BruF,KAAKyF,IAAI,SAAU4jH,EAAKtxB,aACxB/3F,KAAKwsH,aAAa,CAAEr8B,MAAOk5B,EAAKe,gBAClC,EAEA,YAAAoC,aAAA,SAAa3iH,QAAA,IAAAA,IAAAA,EAAA,IACH,IAAAq5E,EAAOljF,KAAI,GACb4sH,EAAS1pC,EAAGypC,iBACZxnH,EAAQ0E,EAAKsmF,OAASjN,EAAGyqC,uBAE/B,GAAIxoH,GAASynH,EAAQ,CACb,MAAoBA,EAAO5lH,WAAzBm/B,EAAK,QAAErT,EAAM,SACrB3tB,EAAMM,IAAI,CAAE0gC,MAAK,EAAErT,OAAM,GAAI,CAAE86F,OAAQ,G,CAE3C,EAEA,YAAAJ,aAAA,WACextH,KAAK2D,IAAI,QACf,GAAK3D,KAAKyF,IAAI,OAAQ,EAC/B,EACF,EA7DA,CAAoC,G,ghBCQpC,yB,8CA+BA,QA5BU,QACR,sBAAc,kBAAG,C,IAAjB,WACE,OAAOzF,KAAKujF,KAAQvjF,KAAKiY,OAAeisE,aAAe,EACzD,E,gCAEA,sBAAc,mBAAI,C,IAAlB,WACE,OAAOlkF,KAAKkjF,GAAGjrE,OAAOisE,aAAe,EACvC,E,gCAIA,sBAAc,qBAAM,C,IAApB,W,QACE,OAAkC,QAA1B,EAAkB,QAAnB,EAAClkF,KAAKmF,aAAa,eAAE1F,cAAM,QAAIO,KAAKiF,WAAWxF,MACxD,E,gCAEA,sBAAc,iBAAE,C,IAAhB,WACE,OAAOO,KAAKP,OAAOyjF,EACrB,E,gCAEA,sBAAc,qBAAM,C,IAApB,WACE,OAAOljF,KAAKP,OAAOwY,MACrB,E,gCAIA,YAAAlL,cAAA,SAAclK,GACZ7C,KAAK4U,UAAY,EACnB,EACF,EA/BA,CAGU,M,8gBCbV,YAYE,WAAY/K,EAAgB05F,QAAhB,IAAA15F,IAAAA,EAAA,SAAgB,IAAA05F,IAAAA,GAAA,GAA5B,MACE,YAAM15F,IAAK,K,OARb,EAAA25F,UAAY,GAEF,EAAAC,SAAW,OAErB,EAAAC,WAAY,EAEZ,EAAAmqB,eAA8B,GAG5BtqB,GAAW,EAAK/4F,SAAS,EAAKvF,WAAY,MAAO,EAAK0+F,O,CACxD,CA6EF,OAzFU,QAmBA,YAAAA,MAAR,SAAcx+F,GACZnF,KAAKsE,IAAIa,EACX,EAEQ,YAAA0+F,iBAAR,SAAyBrhG,GAIzB,EASQ,YAAA8B,IAAR,SAAYa,EAAoB8U,GACxB,IAGFqoB,EAHE,EAAgDtiC,KAA9C0jG,EAAS,YAAEmqB,EAAc,iBAC7Br5D,GAD+B,EAAAgvC,UACxBvpF,GAAY,MACnB+pF,EAAY7+F,EAAMxB,IAAI3D,KAAKyjG,UAM7BnhE,EAFEn9B,EAAMm9B,MAAQohE,EAETv+F,EAAMm9B,KAENtiC,KAAK8tH,WAAW3oH,EAAO6+F,GAGhC6pB,EAAelpH,KAAK29B,GACpB,IAAMivD,EAAWjvD,EAAKzuB,SAASO,GAE3BogD,EAAMA,EAAK/vC,YAAY8sE,GACtBvxF,KAAK2T,IAAIq/E,OAAOzB,EACvB,EAEA,YAAA19E,OAAA,sBACM2gD,EAAO9/C,SAASisB,yBAQpB,OAPA3gC,KAAKikG,aACLjkG,KAAK2T,IAAIq+B,QAELhyC,KAAKiF,WAAWtE,QAAQX,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKb,IAAIa,EAAOqvD,EAAhB,IAE1Dx0D,KAAK2T,IAAIq/E,OAAOx+B,GAChBx0D,KAAK82F,WACE92F,IACT,EAEA,YAAA82F,SAAA,WAAY,EAEZ,YAAAoN,eAAA,SAAeN,EAAoB/5F,GAAY,EAC/C,YAAAs6F,SAAA,SAASP,EAAoB/5F,GAAY,EAEzC,YAAAzE,OAAA,SAAOyE,QAAA,IAAAA,IAAAA,EAAA,IACG,IAAAgkH,EAAmB7tH,KAAI,eAK/B,OAJAA,KAAKkkG,eAAe2pB,EAAgBhkH,GACpC7J,KAAKikG,aACL,4BAA4BjkG,KAAM6J,GAClC7J,KAAKmkG,SAAS0pB,EAAgBhkH,GACvB7J,IACT,EAEA,YAAAikG,WAAA,WACgBjkG,KAAK6tH,cAIrB,EACF,EA5FA,CAGU,I,ogBCLV,YAGE,WAAY13F,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KACR,EAAKle,OAASke,EAAEle,QAAU,CAAC,EACnB,IAAA9S,EAAU,EAAI,M,OACtB,EAAKqF,SAASrF,EAAO,SAAU,EAAK0O,QACpC,EAAKrJ,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAKoF,SAASrF,EAAMxB,IAAI,aAAc,SAAU,EAAKkQ,Q,CACvD,CAaF,OAvByC,QAavC,YAAAJ,QAAA,WACE,MAAO,OACT,EAEA,YAAAI,OAAA,WACQ,IAAE1O,EAAcnF,KAAT,MAAEoU,EAAOpU,KAAL,GACX+tH,EAAY5oH,EAAMxB,IAAI,aAE5B,OADAyQ,EAAG4yE,UAAY7hF,EAAMiwG,MAAM,CAAE2Y,UAAS,IAC/B/tH,IACT,EACF,EAvBA,CAAyC,M,ogBCDzC,yB,8CAWA,QAX8C,QAC5C,YAAAyU,eAAA,WACE,OAAOC,SAASmQ,eAAe,GACjC,EAEA,YAAAhR,OAAA,WACE,IAAM1O,EAAQnF,KAAKmF,MACb4oH,EAAY5oH,EAAMxB,IAAI,aAE5B,OADA3D,KAAKoU,GAAGi3D,YAAclmE,EAAM6oH,eAAe,CAAED,UAAS,IAC/C/tH,IACT,EACF,EAXA,CAA8C,I,2fCOxCiuH,GAAa,SAAChqC,EAAa55D,GAA4B,gBAAG45D,GAAG,OAAG55D,EAAQ,WAAIk+D,WAAWl+D,IAAqB,GAArD,EAE7D,eAOE,WAAY8L,GAAZ,MACE,YAAMA,IAAE,MACR,IAAAmsD,SAAQ,EAAM,aAEd,IAAMrqE,EAASke,EAAEle,QAAU,CAAC,EAC5B,EAAKi2G,QAAU,CAAC,EAChB,EAAKj2G,OAASA,EACd,EAAKirE,GAAKjrE,EAAOirE,GACjB,EAAKe,IAAMhsE,EAAOisE,aAAe,GACjC,EAAKtvE,UAAY,EAAKqvE,IAAM,QAC5B,IAAM+G,EAAO,EAAK/lF,W,OAClB,EAAKuF,SAASwgF,EAAM,MAAO,EAAK2Y,OAChC,EAAKn5F,SAASwgF,EAAM,QAAS,EAAKn3E,Q,CACpC,CAsHF,OA1I0C,QA2BxC,YAAA8vF,MAAA,SAAMx+F,GACJnF,KAAKmuH,gBAAgBhpH,EACvB,EASA,YAAAgpH,gBAAA,SAAgBhpH,EAAgBipH,GAE9B,GAAKpuH,KAAKquH,cAAV,CAIA,IAGI98B,EAAUjvD,EAHRroB,EAAWm0G,GAAc,KAEzBvkH,EAAO,CAAE1E,MAAK,EAAE8S,OADHjY,KAAI,QAOvB,GAAgC,cAA5BmF,EAAMxB,IAAI,cAA+B,CAC3C,IAAM2qH,EAASnpH,EAAMopH,YACjBC,EAAWxuH,KAAKkuH,QAAQI,GAE5B,IAAKE,EAAU,CACb,IAAMC,EAAU/5G,SAASC,cAAc,SACvC65G,EAAW95G,SAASmQ,eAAe,IACnC4pG,EAAQhqG,YAAY/P,SAASmQ,eAAe,UAAGypG,EAAM,OACrDG,EAAQhqG,YAAY+pG,GACpBC,EAAQhqG,YAAY/P,SAASmQ,eAAe,MAC5C7kB,KAAKkuH,QAAQI,GAAUE,EACvBj9B,EAAWk9B,C,CAGbnsF,EAAO,IAAI,GAAiBz4B,GAC5B2kH,EAASE,WAAWpsF,EAAKzuB,SAASO,GAAGi3D,Y,MAGrCkmB,GADAjvD,EAAO,IAAI,GAAYz4B,IACPgK,SAASO,GAG3B,IAAMu6G,EAAU3uH,KAAK4U,UACfg6G,EAAYzpH,EAAMxB,IAAI,aACtBkrH,EAAiBZ,GAAWU,GAC9BG,EAAUD,EAQd,GAJID,IACFE,EAAUb,GAAWU,EAAS3uH,KAAK+uH,cAAcH,KAG/Cr9B,EAAU,CACZ,IAAM9wC,EAAYxmC,GAAYja,KAAKoU,GAC/B46G,OAAS,EAIb,IACEA,EAAYvuE,EAAUvgB,cAAc,WAAI4uF,GAC9B,CAAV,MAAO5jH,GAAG,CAEP8jH,IACHA,EAAYvuE,EAAUvgB,cAAc,WAAI2uF,KAG1CG,SAAAA,EAAWvqG,YAAY8sE,E,CAGzB,OAAOA,C,CACT,EAEA,YAAAw9B,cAAA,SAAcH,GACZ,OAAOA,GAAaA,EAAUn/G,QAAQ,WAAIzP,KAAKkjF,GAAG0D,YAAYq7B,eAAc,MAAM,IAAIxyG,QAAQ,IAAK,GACrG,EAEA,YAAAw/G,UAAA,SAAUrvH,EAAW4lB,GACX,IACF0pG,GAA6E,KADpElvH,KAAI,GACI4mF,YAAYq7B,gBAAkB,IAAIp9G,QAAQ,aAEjE,OAAKqqH,GAEQA,EAAatvH,EAAI4lB,IAChB0pG,EAAa1pG,EAAI5lB,GAHP,CAM1B,EAEA,YAAAiU,OAAA,sBACE7T,KAAKquH,eAAgB,EACrBruH,KAAKkuH,QAAU,CAAC,EACV,MAA0BluH,KAAxBkjF,EAAE,KAAEvvE,EAAG,MAAE1O,EAAU,aACrBif,EAAMlkB,KAAK4U,UACX4/C,EAAO9/C,SAASisB,yBACtBhtB,EAAIq+B,QAGJ,IAAMm9E,EAAMjsC,EAAGmpC,QAAQ1gC,SAAS15E,MAAM,YAAYlB,KAAK/Q,KAAKivH,WAO5D,OANAE,EAAI/4G,OAAM,SAAA+1G,GAAM,OAAAA,CAAA,KAAOgD,EAAIz9G,QAAQ,GACnCy9G,EAAI15G,SAAQ,SAAA02G,GAAM,OAAA33D,EAAK/vC,aAAY,SAAS,MAAO,CAAEna,GAAI2jH,GAAW/pG,EAAKioG,KAAvD,IAElBlnH,EAAWM,MAAK,SAAAJ,GAAS,SAAKgpH,gBAAgBhpH,EAAOqvD,EAA5B,IACzB7gD,EAAIq/E,OAAOx+B,GACX7gD,EAAInM,KAAK,QAAS0c,GACXlkB,IACT,EACF,EA1IA,CAA0C,M,8PCQ1C,cAWE,WAAYkjF,EAAiBksC,GAA7B,WACEpvH,KAAKkjF,GAAKA,EACVljF,KAAKyiF,OAASS,EAAGsB,OACjB,IAAMpwE,EAAKg7G,GAAUpvH,KAAKyiF,OAAOsV,YAAYjzF,KAAI,SAAAqrF,GAAS,OAAAA,EAAMi0B,eAAez+B,OAArB,IACpD0pC,EAAMjvH,MAAMc,QAAQkT,GAAMA,EAAK,CAACA,GACtCpU,KAAKoU,GAAKi7G,EAAI,GACdrvH,KAAK8/D,QAAU,GACf,IAAAwiB,SAAQtiF,KAAM,kBAAmB,iBAAkB,aAAc,mBACjEqvH,EAAI55G,SAAQ,SAAArB,GAAM,SAAKk7G,cAAcl7G,GAAI,EAAvB,GACpB,CA0NF,OAxNE,YAAAk7G,cAAA,SAAcl7G,EAAiB6uE,GAC7B,IAAM7tE,EAAU,CAAE3N,GAAE,KAAE0D,IAAG,OACnB8D,EAASg0E,EAAS,KAAO,MAC/B7tE,EAAQnG,GAAQmF,EAAI,YAAapU,KAAKuvH,iBACtCn6G,EAAQnG,GAAQmF,EAAI,WAAYpU,KAAKwvH,gBACrCp6G,EAAQnG,GAAQmF,EAAI,OAAQpU,KAAKyvH,YACjCr6G,EAAQnG,GAAQmF,EAAI,YAAapU,KAAK0vH,gBACxC,EAEA,YAAAC,eAAA,SAAe1sC,G,MACPh0E,EAASg0E,EAAS,EAAAx7E,GAAK,EAAA0D,IACvBknB,EAAMryB,KAAKoU,GAAG8b,cACds/D,EAAyB,QAAf,EAAAn9D,EAAI00E,mBAAW,eAAE6oB,aACjC5vH,KAAK6vH,SAAW5sC,EACZ,CACES,QAAO,SAAC,G,IAAEgM,EAAM,UACd,IAAAjoF,IAAG+nF,EAAS,cAAeE,EAAO2M,OACpC,EACAzY,MAAK,SAAC,G,IAAE8L,EAAM,UACZ,IAAAvkF,KAAIqkF,EAAS,cAAeE,EAAO2M,OACrC,EACAyzB,aAAY,SAAC,G,IAAEn9G,EAAK,QAClB,OAAO0f,EAAIqoB,iBAAiB/nC,EAAMo9B,QAASp9B,EAAMq9B,QACnD,GAEF,KACJ/gC,EAAOugF,EAAS,eAAgBxvF,KAAKuvH,iBACrCtgH,EAAOugF,EAAS,cAAexvF,KAAKwvH,gBACpCvgH,EAAOyF,SAAU,YAAa1U,KAAKyvH,YACnCxgH,EAAOugF,EAAS,aAAcxvF,KAAK0vH,gBAKrC,EAEA,YAAAK,YAAA,WACE/vH,KAAK2vH,gBAAe,EACtB,EAEA,YAAAK,UAAA,SAAUplE,GACR5qD,KAAKwiE,KAAOxiE,KAAKiwH,QAAQrlE,GAAU5qD,KAAK2vH,gBAAe,EACzD,EAEA,YAAAM,QAAA,SAAQrlE,EAAkBp+C,GAClB,IAAE02E,EAAiBljF,KAAf,GAAEkwH,EAAalwH,KAAL,SACpBA,KAAK8/D,QAAU,EACfowD,GAAYA,EAAStlE,GACrB5qD,KAAK2vH,gBAAe,GACpBzsC,EAAGp/E,QAAQ,iBAAkB0I,EAC/B,EAEA,YAAAkjH,gBAAA,SAAgBljH,GACdxM,KAAKmwH,eAAe,EAAG3jH,EACzB,EAEA,YAAA2jH,cAAA,SAAczoH,EAAe8E,GAC3BxM,KAAK8/D,SAAWp4D,EACC,IAAjB1H,KAAK8/D,SAAiB9/D,KAAKiwH,SAAQ,EAAMzjH,EAC3C,EAEA,YAAA+iH,gBAAA,SAAgB/iH,GAAhB,WACU02E,EAAeljF,KAAb,GAAEyiF,EAAWziF,KAAL,OACZowH,EAAM5jH,EAAiBwmD,aAE7B,GADAhzD,KAAKmwH,cAAc,EAAG3jH,IAClBxM,KAAKwiE,KAAT,CACAxiE,KAAKwiE,MAAO,EACZ,IAKI0tD,EACAG,EANEzxB,EAAQ1b,EAAGoT,MAIbv3E,EAAUmkE,EAAGv/E,IAAI,gBAAkB,OAMvC,GAHAu/E,EAAGqS,cAGCrS,EAAGotC,iBAAkB,CACvB,IAAM,EAAUptC,EAAGuR,WAAW87B,aACxB,EAAS,EAAQv9B,OAAO,CAAC,GAAG,GAC5B,EAAU9P,EAAGiC,SAASjD,IAAI,sBAAuB,CACrDvvE,MAAOnG,EACPg9E,WAAY,EACZN,OAAQ,EACR3iE,OAAM,EACNq9D,MAAO,SAACp3E,EAAS22E,EAAc,G,IACzBpiC,EACJ,IAFwC,YAExB,CACdA,EAAO,EAAQiyC,OAAOj0E,GAAS,GAC/B,IAAMyxG,EAAe/tC,EAAOguC,YACtB,EAA0B,EAAOhoC,WAA/B,EAAG,MAAE/4D,EAAI,OAAE6W,EAAQ,WACrB,GAAS,SAAkB/5B,EAAG+Z,QAC9BmqG,EAAWhpF,SAAS,UAAG6gD,WAAW74D,GAAQ,EAAOmE,EAAI28F,EAAa9gG,MAAQ,IAC1EihG,EAASjpF,SAAS,UAAG6gD,WAAW,GAAO,EAAO36C,EAAI4iF,EAAa1nF,KAAO,IAE5EiY,EAAK6nC,SAAS,CACZl5D,KAAMghG,EAAW,KACjB5nF,IAAK6nF,EAAS,KACdpqF,SAAQ,G,CAGZ,EAAKqqF,cAAc7vE,EAAMqvE,GACzB,EAAOhrH,QACT,IAEF8qH,EAAW,SAACtlE,GAAqB,SAAQjtC,KAAKnR,EAAI,CAAEo+C,OAAM,GAAzB,EACjCylE,EAAc,SAACQ,GAAa,OAAC9xG,EAAU8xG,CAAX,C,KACvB,CACL,IAAM,EAAS,IAAIjyB,EAAMC,OAAO,IAE9B3b,GAAE,EACFgc,QAAS,EACTC,OAAQ,EACRC,eAAgB,EAChB7zE,UAAW,IACXk1B,UAAWzgD,KAAKoU,GAChB0qF,OAAQrc,EAAOsc,cACfC,aAAc,IACdC,QAAS,IACThb,IAAK,OACL0L,UAAW,SAACxqF,GAAe,SAAKyrH,cAAczrH,EAAOirH,EAA1B,EAC3B17G,SAAU1U,KAAKoU,GAAG8b,eACdlwB,KAAK6vH,UAAY,CAAC,IAExB,EAAOiB,eAAe/xG,GACtB,EAAOwgF,YACPv/F,KAAK0vF,OAAS,EACdwgC,EAAW,SAACtlE,GACVA,IAAW,EAAO8T,OAAQ,GAC1B,EAAO6xB,SACT,EACA8/B,EAAc,SAACtxG,GAAiB,SAAO+xG,eAAe/xG,EAAtB,C,CAGlC/e,KAAKkwH,SAAWA,EAChBlwH,KAAKqwH,YAAcA,EACnBntC,EAAGp/E,QAAQ,mBAAoBssH,EAAIrxG,EAvEd,CAwEvB,EAEA,YAAA6xG,cAAA,SAAczrH,EAAYirH,GAChB,IAAAltC,EAAOljF,KAAI,GACnBA,KAAKwiE,MAAO,EACRr9D,IACF+9E,EAAGz9E,IAAI,aAAcN,GACrB+9E,EAAGp/E,QAAQ,cAAessH,EAAIjrH,IAEhC+9E,EAAG2S,WAAW,CAAE4I,iBAAkB,GACpC,EAMA,YAAA+wB,eAAA,SAAehjH,GACbA,EAAG+gB,iBACHvtB,KAAKkjF,GAAGp/E,QAAQ,kBAAmB0I,EACrC,EAMA,YAAAijH,WAAA,SAAWjjH,GACTA,EAAG+gB,iBACK,IAAA8iG,EAAgBrwH,KAAI,YACtBowH,EAAM5jH,EAAiBwmD,aACvBj0C,EAAU/e,KAAK+wH,iBAAiBX,GAAIrxG,QACzCvS,EAAG+Z,OAAuB5J,MAAMypD,OAAS,GAC1CrnD,GAAWsxG,GAAeA,EAAYtxG,GACtC/e,KAAKiwH,SAASlxG,EAASvS,EACzB,EAEA,YAAAukH,iBAAA,SAAiBX,GACf,IAAMltC,EAAKljF,KAAKkjF,GACVx3D,EAAQ0kG,GAAMA,EAAG1kG,MACjBqnC,EAASq9D,GAAMA,EAAGr9D,OAAU,GAC5Bs9D,EAAcntC,EAAGv/E,IAAI,eACvBob,EAAUqxG,GAAMA,EAAGr8D,QAAQ,QAE/B,GAAIhB,EAAMpyD,OAAQ,CAChBoe,EAAU,GACV,IAAK,IAAIlf,EAAI,EAAGA,EAAIkzD,EAAMpyD,OAAQd,IAAK,CACrC,IAAM2zD,EAAOT,EAAMlzD,GACb2C,EAAOgxD,EAAKhxD,KAAKyH,MAAM,KAAK,GAEtB,SAARzH,GACFuc,EAAQpa,KAAK,CACXnC,KAAI,EACJgxD,KAAI,EACJxsD,WAAY,CAAEwuD,IAAKhC,EAAK7pD,O,OAIzB,GAAI0mH,EACTtxG,EAAUsxG,OACL,IAAI,IAAAxrH,SAAQ6mB,EAAO,cAAgB,EACxC3M,EAAUqxG,GAAMA,EAAGr8D,QAAQ,aAAatkD,QAAQ,kBAAmB,SAC9D,IAAI,IAAA5K,SAAQ6mB,EAAO,kBAAoB,EAC5C3M,EAAU,CACRvc,KAAM,OACNwE,WAAY,CAAEwU,KAAMuD,GACpBA,QAASA,QAEN,IAAI,IAAAla,SAAQ6mB,EAAO,cAAgB,EAAG,CAC3C,IAAMmrD,EAAOu5C,GAAMA,EAAGr8D,QAAQ,aAC9B8iB,IAAS93D,EAAUnG,KAAK3L,MAAM4pE,G,MACJ,IAAjBnrD,EAAM/qB,QAA6B,eAAb+qB,EAAM,KAErC3M,EAAU,eAAQA,EAAO,WAG3B,IAAM7R,EAAS,CAAE6R,QAAO,GAGxB,OAFAmkE,EAAGp/E,QAAQ,kBAAmBssH,EAAIljH,GAE3BA,CACT,EACF,EA9OA,G,w9BCTA,eAsBE,WAAY/H,EAAcm9B,GAA1B,MACE,YAAM,CAAEn9B,MAAK,KAAG,KAblB,EAAA6rH,UAAW,EACX,EAAA1tB,QAAS,EAKT,EAAA2tB,cAAgB,EAER,EAAAC,MAAwC,CAAC,GAM/C,IAAA5uC,SAAQ,EAAM,gBAAiB,iBAAkB,aAAc,eACzD,MAAa,EAAXluE,EAAE,KAAI,KAGd,EAAK3U,OAAOwlH,QAAU,SAChB,EAAKhtG,QAAU,CAAC,GAAE,CAEtBqgF,UAAW,IAIb,EAAK64B,cAAgB7uF,EACrB,EAAK8uF,iBAAkB,IAAA9pC,UAAS,EAAK8pC,gBAAgBrlH,KAAK,GAAO,IACjE,IAAMslH,EAAU,EAAKC,iB,OACrB,EAAK9mH,SAASrF,EAAO,cAAe,EAAKosH,YACzC,EAAK/mH,SAAS6mH,EAAS,gBAAiB,EAAKG,cAC7CrsH,EAAMm9B,KAAO,GACb,IAAAgzE,WAAUlhG,EAAI,G,CAChB,CAmaF,OA7cuC,QAErC,sBAAI,sBAAO,C,IAAX,WACE,MAAO,QACT,E,gCAEA,sBAAI,yBAAU,C,IAAd,WACE,MAAO,CAAEq9G,gBAAiB,kBAC5B,E,gCAuCA,YAAAF,WAAA,WACU,IAAApsH,EAAUnF,KAAI,MAChB0xH,EAAS1xH,KAAK2oH,UACd93G,EAAkB,GAClBF,EAAe,GACf1C,EAAU9I,EAAMwR,KAChBzI,EAAO/I,EAAMqJ,SAAS,QACtBmjH,EAAU,SAACnqH,GACf,YADe,IAAAA,IAAAA,EAAA,IACfwhB,OAAO/nB,KAAKuG,GACTuJ,OACAjM,KAAI,SAAAjF,GAAK,iBAAIA,EAAC,cAAK2H,EAAK3H,GAAE,MAAjB,IACT4vD,KAAK,GAHR,EAII77C,EAAO,SAACgwF,EAAc5gG,EAAcoB,GACxCw/F,EAAMnuF,SAAQ,SAAAgxE,GACJ,IAAA9hE,EAAoB8hE,EAAI,IAAnBz/E,EAAey/E,EAAI,YACpBzjF,EAAMuO,MAAK,SAAAnJ,GAAK,OAAAA,EAAEuc,MAAQA,GAAOgtG,EAAQvpH,EAAEpB,cAAgB2qH,EAAQ3qH,EAAnD,KACpB5C,EAAIO,KAAK8hF,EACnB,GACF,EACA7yE,EAAK3F,EAASC,EAAMyC,GACpBiD,EAAK1F,EAAMD,EAAS4C,GACpBA,EAAS4E,SAAQ,SAAAm8G,G,MACTx9G,EAAKs9G,EAAOxxF,cAAc,UAAG0xF,EAAIjtG,KAAG,OAAGgtG,EAAQC,EAAI5qH,cAC3C,QAAd,EAAAoN,aAAE,EAAFA,EAAI6Q,kBAAU,SAAEnH,YAAY1J,EAC9B,KACA,SAAas9G,EAAQ/gH,EACvB,EAEA,YAAAg1E,MAAA,WACE,OAAO3lF,KAAKoU,EACd,EAEA,YAAAk9G,eAAA,WACE,OAAOtxH,KAAKkjF,GAAGsB,OAAOuB,UACxB,EAEA,YAAAkS,UAAA,WACE,OAAOj4F,KAAK2lF,QAAQzoE,aACtB,EAEA,YAAAspD,OAAA,WACE,OAAOxmE,KAAK2lF,QAAQ8J,eACtB,EAEA,YAAAk5B,QAAA,WACE,OAAO3oH,KAAKwmE,SAAStmC,cAAc,OACrC,EAEA,YAAA0kD,QAAA,WACE,OAAO5kF,KAAKwmE,SAAStmC,cAAc,OACrC,EAEA,YAAAqwF,WAAA,WACE,OAAOvwH,KAAK4kF,UAAU1kD,cAAc,0BACtC,EAEA,YAAA2xF,eAAA,WAKE,OAJK7xH,KAAK8xH,cACR9xH,KAAK8xH,aAAc,SAAS,MAAO,CAAE3kC,MAAO,UAAGntF,KAAKujF,KAAI,cAGnDvjF,KAAK8xH,WACd,EAEA,YAAAhtC,WAAA,W,MACE,OAAyB,QAAlB,EAAA9kF,KAAKmxH,qBAAa,eAAEY,OAC7B,EAEA,YAAA9qC,iBAAA,WACE,OAAOjnF,KAAKkjF,GAAGsB,OAAOyC,kBACxB,EAEA,YAAA0J,eAAA,WACE,OAAO3wF,KAAKgyH,SAAS,YACvB,EAEA,YAAAjjC,WAAA,WACE,OAAO/uF,KAAKgyH,SAAS,eACvB,EAEA,YAAAC,kBAAA,WACE,OAAOjyH,KAAKgyH,SAAS,gBACvB,EAEA,YAAAE,QAAA,WAKE,OAJKlyH,KAAKsoC,OACRtoC,KAAKsoC,KAAOtoC,KAAKoU,GAAGob,yBAGfxvB,KAAKsoC,IACd,EAKA,YAAA6pF,cAAA,WACU,IAAA/9G,EAAOpU,KAAI,GACb,EAA4BA,KAAK4kF,UAA/Bv4C,EAAS,YAAEJ,EAAU,aACvBnZ,EAAS1e,EAAG+a,aACZgX,EAAQ/xB,EAAGgb,YAEjB,MAAO,CACL0Z,IAAK10B,EAAGgzB,UACR1X,KAAMtb,EAAGg7B,WACTtc,OAAM,EACNqT,MAAK,EACLkG,UAAS,EACTJ,WAAU,EACVmmF,aAAc/lF,EAAYvZ,EAC1Bu/F,YAAapmF,EAAa9F,EAE9B,EAEA,YAAA6rF,SAAA,SAASroH,GACC,IAAAunH,EAAUlxH,KAAI,MAChB69F,EAAU79F,KAAK8kF,aAMrB,OAJKosC,EAAMvnH,KACTunH,EAAMvnH,GAAQk0F,EAAQ39D,cAAcv2B,IAG/BunH,EAAMvnH,EACf,EAEA,YAAAvE,OAAA,W,IAAO,sDACL,IAAMomF,EAAMxrF,KAAK4mC,QAKjB,OAJA5mC,KAAKsyH,gBAAe,GACpBtyH,KAAKkxH,MAAQ,CAAC,EACd1lC,GAAOA,EAAIpmF,SACX,0BAAkCpF,KAAMU,GACjCV,IACT,EAEA,YAAAuyH,gBAAA,sBACEvyH,KAAKixH,cAAgBjxH,KAAKuwH,aAAaphG,aAAenvB,KAAKoU,GAAG+a,aAI9D5H,YAAW,WACT,EAAKirG,qBAAoB,GACzBC,sBAAsB,EAAKC,WAC7B,GAAG,EACL,EAEA,YAAAA,WAAA,WACE,GAAI1yH,KAAKgxH,SAAU,CACT,IAAA2B,EAAgB3yH,KAAI,YACtByiF,EAASziF,KAAKkjF,GAAGsB,OACjBwT,EAAMh4F,KAAKi4F,YACX26B,EAAY56B,EAAI5rD,YAChB4D,EAAU2iF,GAAe,EACzBE,EAAWpwC,EAAOmE,YAAYmgC,gBAC9B+L,EAAc9yH,KAAKkyH,UAAUp/F,OAAS+/F,EACxCE,EAAUH,EAUd,GARI5iF,EAAU6iF,IACZE,GAAWF,EAAW7iF,GAGpBA,EAAU8iF,IACZC,GAAW/iF,EAAU8iF,KAIpB,IAAAlpC,aAAY+oC,IACbI,IAAYH,GACZG,EAAU,GACVA,EAAU/yH,KAAKixH,cAECjxH,KAAKinF,mBACbtqE,MAAMk9E,QAAU,IACxB75F,KAAKoxH,kBACLp5B,EAAIvvB,SAAS,EAAGsqD,GAGlBN,sBAAsBzyH,KAAK0yH,W,CAE/B,EAEA,YAAAM,cAAA,SAAcxmH,GACZA,EAAG+gB,iBACHvtB,KAAK2yH,aAAc,IAAAvrB,iBAAgB56F,GAAIwjC,QAAUhwC,KAAKkjF,GAAGoc,gBAC3D,EAEA,YAAA8xB,gBAAA,WACEpxH,KAAKinF,mBAAmBtqE,MAAMk9E,QAAU,EAC1C,EAEA,YAAAo5B,eAAA,WACEjzH,KAAKgxH,UAAYhxH,KAAKwyH,qBAAoB,EAC5C,EAEA,YAAAA,oBAAA,SAAoBvvC,GAClBjjF,KAAKgxH,SAAW/tC,EAChB,IAAM+U,EAAMh4F,KAAKi4F,YACXhpF,EAASg0E,EAAS,KAAO,MACzBiwC,EAAK,CAAEzrH,GAAE,KAAE0D,IAAG,OACpB+nH,EAAGjkH,GAAQ+oF,EAAK,qBAAsBh4F,KAAKgzH,eAC3CE,EAAGjkH,GAAQ+oF,EAAK,UAAWh4F,KAAKizH,eAClC,EAEA,YAAAp/G,OAAA,WACQ,IAAEF,EAAc3T,KAAX,IAAEujF,EAASvjF,KAAL,KAGjB,OAFA2T,EAAInM,KAAK,CAAE2lF,MAAO,UAAG5J,EAAI,WACzBvjF,KAAKmzH,gBACEnzH,IACT,EAEA,YAAAmzH,cAAA,sBACQ,EAAoBnzH,KAAlBoU,EAAE,KAAEjP,EAAK,QAAE+9E,EAAE,KACfkwC,EAAS,aACTC,EAAS,CAAEj/G,GAAE,EAAEjP,MAAK,EAAEm9B,KAAMtiC,MAC5ByiF,EAASziF,KAAKsxH,iBACdgC,EAAe,SAACxM,G,MACpB,GAAIA,EAAQnmH,OAAS,EAAG,CACtB,IAAM+b,EAAMoqG,EAAQjjH,QACd0vH,GAAW,SAAS,SAAU,IAClC/wH,KAAM,oBACF,IAAA0O,UAASwL,GAAO,CAAEA,IAAG,GAAKA,IAEhC62G,EAAS5/D,QAAU4/D,EAAS3/D,OAAS0/D,EAAavnH,KAAK,KAAM+6G,GAC3C,QAAlB,EAAA1yG,EAAGq7E,uBAAe,SAAE94E,KAAK8N,YAAY8uG,E,MAErC,EAAKC,aACLtwC,GAAMA,EAAGp/E,QAAQsvH,EAAQC,EAE7B,EAEAj/G,EAAGw/C,OAAS,WACF,IAAAqzD,EAAiB,EAAKhvG,OAAM,aACpC,GAAIgvG,EAAc,CAChB,IAAM50F,EAAM,EAAKm0C,SACjBn0C,EAAIlV,OACJkV,EAAIohG,MAAMxM,GACV50F,EAAIjV,O,CAEN8lE,GAAMA,EAAGp/E,QAAQ,UAAGsvH,EAAM,WAAWC,GACrCC,EAAa,MAAI7wC,EAAO9+E,IAAI,YAAU,GACxC,CACF,EAEA,YAAA6tH,aAAA,SAAa3nH,QAAA,IAAAA,IAAAA,EAAA,IACX,IAAM8M,EAAO3W,KAAK2oH,UACZlmC,EAASziF,KAAKsxH,iBACdoC,EAAY,SAACxgB,GACjB,OAAAA,EAAKpuG,KAAI,SAAA0W,GAAQ,OACfmJ,IAAK,OACL3d,WAAY,IACVm/C,IAAK,eACD,IAAAj1C,UAASsK,GAAQ,CAAEA,KAAI,GAAKA,GAJnB,GAAjB,EAOIm4G,EAAaD,EAAU7pH,EAAKqE,MAAQu0E,EAAOj0E,SAAS,WACpDgoB,EAASk9F,EAAUjxC,EAAO9+E,IAAI,WAC9BkN,EAAkB,GAClBF,EAAe,GACfiD,EAAO,SAACgwF,EAAc5gG,EAAcoB,GACxCw/F,EAAMnuF,SAAQ,SAAAgxE,GACJ,IAAAjrE,EAASirE,EAAKz/E,WAAU,MACpBhE,EAAMuO,MAAK,SAAAnJ,GAAK,OAAAA,EAAEpB,WAAWwU,OAASA,CAAtB,KACpBpX,EAAIO,KAAK8hF,EACnB,GACF,EACA7yE,EAAK4iB,EAAQm9F,EAAYhjH,GACzBiD,EAAK+/G,EAAYn9F,EAAQ3lB,GACzBA,EAAS4E,SAAQ,SAAAm8G,G,MACTx9G,EAAKuC,EAAKupB,cAAc,sBAAc0xF,EAAI5qH,WAAWwU,KAAI,QACjD,QAAd,EAAApH,aAAE,EAAFA,EAAI6Q,kBAAU,SAAEnH,YAAY1J,EAC9B,KACA,SAAauC,EAAMhG,EACrB,EAEA,YAAA6iH,WAAA,e,IAAA,OACQ,EAA8BxzH,KAA5BiY,EAAM,SAAEirE,EAAE,KAAE/9E,EAAK,QAAEo+E,EAAI,OACzBlxD,EAAMryB,KAAKwmE,SACX1pD,EAAO9c,KAAK4kF,UACZoT,EAAMh4F,KAAKi4F,YACXyvB,EAAOxkC,EAAGjrE,OAGhB+/E,EAAI47B,WAAY,EAChB5zH,KAAKwxH,aAAa,CAAEtjH,KAAM,MAI1B,SACE4O,EACA,yBACE4qG,EAAK9F,SAAW3pG,EAAOivG,YAAc,GAAE,iIAOtC3jC,EAAI,oJAKJA,EAAI,wHAKJA,EAAI,yDAtBS,UAuBgB,0CAG7BA,EAAI,0IAMJA,EAAI,8FAKJA,EAAI,0EAIJA,EAAI,oQAWJA,EAAI,uGAKJA,EAAI,0EAIJA,EAAI,iCACJA,EAAI,oFAILmkC,EAAK5F,WAAa,GAAE,mBACpB4F,EAAK7F,cAAgB,GAAE,mBAG3B,IAAMv8B,EAAYngF,EAAMi/G,eAChB9hF,EAAS4gD,EAAGuR,WAAWuzB,QAAQ,WAAW,KAClDhoH,KAAK4mC,QAAU,IAAItE,EAAK,CACtBn9B,MAAOmgF,EACPrtE,OAAQ,SACHqtE,EAAUrtE,QAAM,CACnBirE,GAAE,EACFoV,UAAWt4F,SAEZ6T,UACH,SAAOiJ,EAAkB,QAAZ,EAAA9c,KAAK4mC,eAAO,eAAExyB,KAC3B,SACE0I,EACA,IAAI,GAAa,CACf7X,WAAYE,EAAMujH,YAElBzwG,OAAQ,SACHirE,EAAG0kC,IAAIhhC,aAAW,CACrB0R,UAAWt4F,SAEZ6T,SAASO,KAEd,SAAO0I,EAAM9c,KAAK6xH,mBAMlB,IAAApqH,IAAGqV,EAAM,SAAS,SAAAtQ,GAAE,MAAI,OAAAA,GAA4B,MAAb,QAAT,EAAAA,EAAG+Z,cAAM,eAAE9S,UAAkBjH,EAAG+gB,gBAAgB,KAC9E,IAAA9lB,IAAGqV,EAAM,UAAU,SAAAtQ,GAAM,OAAAA,GAAMA,EAAG+gB,gBAAT,IAIzB,CACE,CAAE5a,MAAO,yBAA0Bw6E,MAAO,iBAC1C,CAAEx6E,MAAO,8BAA+Bw6E,MAAO,cAC/C,CAAEx6E,MAAO,oCAAqCw6E,MAAO,gBACrD,CAAEx6E,MAAO,QAASw6E,MAAO,eACzB13E,SAAQ,SAAAzU,GACR,OAAAA,EAAI2R,MAAM1I,MAAM,KAAKwL,SAAQ,SAAA9C,GAC3B0f,EAAI/U,iBAAiB3K,GAAO,SAAAnG,GAAM,SAAK4H,GAAGw7D,eAAc,SAAkBpjE,EAAIxL,EAAImsF,OAAhD,GACpC,GAFA,IAKFntF,KAAKsyH,gBAAe,IAChB,IAAApe,QAAOhxB,KACTljF,KAAK6zH,UAAY,IAAI,GAAU3wC,EAAgB,QAAZ,EAAAljF,KAAK4mC,eAAO,eAAExyB,KAEnDjP,EAAMrB,QAAQ,UACd9D,KAAKsjG,QAAS,CAChB,EAEA,YAAAgvB,eAAA,SAAervC,GACb,IAAMh0E,EAASg0E,EAAS,EAAAx7E,GAAK,EAAA0D,IACvB6sF,EAAMh4F,KAAKi4F,YACjBD,GAAO/oF,EAAO+oF,EAAK,UAAG,MAAS,WAAWh4F,KAAK8zH,YACjD,EAEA,YAAAA,YAAA,WACE9zH,KAAKmF,MAAMmkH,cACb,EACF,EA7cA,CAAuC,I,wwBCFvC,YAaE,WAAYnkH,EAAc2wF,GAA1B,MACE,YAAM,CAAE3wF,MAAK,KAAG,MAChB,IAAAm9E,SAAQ,EAAM,WAAY,cAAe,eAAgB,SAAU,aAEpD,SACVn9E,EAAM8S,QAAM,CACfk5G,cAAe,I,OAEjB,EAAKnuB,GAAKlN,EACV,EAAK3F,MAAQ,IAAI,GAAUhrF,EAAO,GAClC,EAAK4uH,UAAY,UAAG,EAAKxwC,KAAI,uBAC7B,EAAKywC,cAAe,IAAA1sC,UAAS,EAAK0sC,aAAajoH,KAAK,GAAO,GAC3D,EAAKkoH,YAAa,IAAA3sC,UAAS,EAAK2sC,WAAWloH,KAAK,GAAO,GACvD,EAAKvB,SAASrF,EAAO,SAAU,EAAK+uH,aACpC,EAAK1pH,SAASrF,EAAO,oBAAqB,EAAKgvH,WAC/C,EAAK3pH,SAASrF,EAAO,6BAA8B,EAAK8uH,YACxD,EAAKzpH,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAK+uH,YACL,EAAKC,e,CACP,CAyMF,OAzO2C,QACzC,YAAA1qH,OAAA,WACE,MAAO,CACL,6BAA8B,SAC9B,+BAAgC,YAEpC,EA4BA,YAAA0qH,aAAA,eAEMC,EAAeC,EAAej0B,EAFpC,OACU5gG,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MAEfsvH,EAAgB,SAAC7nH,GACrBhI,EAAOi8F,mBAAmBj0F,EAC5B,EAEAzH,KAAKmjF,QAAU,IAAIoxC,GAAA,EAAQ,CACzB7wC,QAAS,WACD,MAAWv+E,EAAM6B,WAAf6sB,EAAC,IAAE+Z,EAAC,IACZyyD,EAAO,EAAKnd,GAAGsxC,oBACfH,EAAQxgG,EACRygG,EAAQ1mF,EACR0hF,GAAc,EAChB,EACA1rC,MAAO,WAAM,OAAA0rC,GAAc,EAAd,EACb7rC,YAAa,SAACgxC,GACZtvH,EAAMM,IAAI,CACRouB,EAAGwgG,EAAQI,EAAQ5gG,EAAIwsE,EACvBzyD,EAAG0mF,EAAQG,EAAQ7mF,EAAIyyD,GAE3B,GAEJ,EAEA,YAAAq0B,UAAA,SAAUloH,G,MACRA,IAAkB,QAAZ,EAAAxM,KAAKmjF,eAAO,SAAEnnE,MAAMxP,GAC5B,EAEA,YAAAmoH,QAAA,SAAQ9qH,GACE,IAAAsmF,EAAUnwF,KAAI,MACtBmwF,GAASA,EAAM/qF,OAAOyE,IACtB,SAAS7J,KAAK+xH,QAChB,EAEA,YAAA3sH,OAAA,SAAOyE,GAAP,WAKE,OAJA7J,KAAK20H,QAAQ9qH,GACb,0BAAkC7J,KAAM6J,GAExC,CAAC,QAAS,UAAW,KAAM,WAAW4L,SAAQ,SAAA5V,GAAK,OAAC,EAAKA,GAAK,CAAX,IAC5CG,IACT,EAEA,YAAAg0H,aAAA,W,MACQ,EAAqBh0H,KAAnBkjF,EAAE,KAAEvvE,EAAG,MAAEw8E,EAAK,QACjBjN,IAAMA,EAAG0xC,YACd1xC,EAAG2S,WAAW,CAAE4I,iBAAkB,IAClC9qF,EAAI04E,YAAYrsF,KAAK+zH,WACT,QAAZ,EAAA5jC,aAAK,EAALA,EAAOhrF,aAAK,SAAEmkH,eAChB,EAEA,YAAA6K,UAAA,SAAUlO,GACF,IAAE9gH,EAAcnF,KAAT,MAAEoU,EAAOpU,KAAL,GACX,EAAWmF,EAAM6B,WAAf6sB,EAAC,IAAE+Z,EAAC,IACJjxB,EAAUvI,EAAE,MACpBpU,KAAKmwF,MAAM7nD,UAAOjjC,EAClBsX,EAAM+S,KAAOkY,MAAM/T,GAAKA,EAAI,UAAGA,EAAC,MAChClX,EAAMmsB,IAAMlB,MAAMgG,GAAKA,EAAI,UAAGA,EAAC,MAC/Bq4E,GAAMjmH,KAAKg0H,cACb,EAEA,YAAAC,WAAA,WACEj0H,KAAK60H,WACP,EAMA,YAAAA,UAAA,WACQ,MAA2C70H,KAAzCkjF,EAAE,KAAE9uE,EAAE,KAAET,EAAG,MAAExO,EAAK,QAAE4uH,EAAS,YAAE5jC,EAAK,QAC5C,GAAKA,EAAL,CACAA,EAAM7nD,UAAOjjC,EACbsO,EAAI2R,SAASyuG,GACP,MAA+B/zH,KAAK80H,eAAlCC,EAAS,YAAE5uF,EAAK,QAAErT,EAAM,WAG5B,IAAA0kF,QAAOrxE,KAAU,IAAAqxE,QAAO1kF,KAC1B3tB,EAAMM,IAAI,SAED0gC,EAAoC,CAAC,EAA7B,CAAEA,MAAO/xB,EAAGgb,cACpB0D,EAAuC,CAAC,EAA/B,CAAEA,OAAQ1e,EAAG+a,eAE7B,CAAEvhB,OAAQ,IAMds1E,EAAGqS,YAAY,CAAEkJ,iBAAkB,IACnCs2B,EAAY/0H,KAAKg0H,eAAiBzsG,WAAWvnB,KAAKg0H,aAAc,IAnB9C,CAoBpB,EAEA,YAAAgB,SAAA,WACQ,IAAE7kC,EAAcnwF,KAAT,MAASA,KAAL,GACd8D,QAAQ,eAAgB,CACzBqsF,MAAK,EACLrzE,KAAMqzE,EAAMvL,UACZr+D,OAAQ4pE,EAAM8H,aAElB,EAEA,YAAAi8B,YAAA,WACoBl0H,KAAI,MAChBi4F,YAAYg9B,SAAWj1H,KAAKg1H,SAClCh1H,KAAK60H,WACP,EAEA,YAAAC,aAAA,WACE,IAAM/sC,EAAK,KACH5iF,EAAcnF,KAAT,MACL2c,EADc3c,KAAL,GACG,MACd,EAAoBmF,EAAM6B,WAAxBm/B,EAAK,QAAErT,EAAM,SACfoiG,EAAQv4G,EAAMwpB,OAAS,GACvBgvF,EAAQx4G,EAAMmW,QAAU,GACxBsiG,EAAOjvF,GAAS,GAChBkvF,EAAOviG,GAAU,GACjBiiG,EAAYG,GAASE,GAAQD,GAASE,EAG5C,OAFA14G,EAAMwpB,OAAQ,IAAAkyE,UAAS+c,GAAQ,UAAGA,GAAI,OAAGrtC,GAAOqtC,EAChDz4G,EAAMmW,QAAS,IAAAulF,UAASgd,GAAQ,UAAGA,GAAI,OAAGttC,GAAOstC,EAC1C,CAAEN,UAAS,EAAE5uF,MAAK,EAAErT,OAAM,EAAEsiG,KAAI,EAAEC,KAAI,EAC/C,EAEA,YAAAxhH,OAAA,WACQ,MAAsC7T,KAApCmwF,EAAK,QAAEx8E,EAAG,MAAE4vE,EAAI,OAAEyf,EAAE,KAAE79F,EAAK,QAAEiP,EAAE,KAC/B0iF,EAAa3xF,EAAM6B,WAAU,SACrChH,KAAK20H,UACL30H,KAAK80H,eACL3kC,EAAMt8E,SACNF,EACGq+B,QACAxqC,KAAK,CAAE2lF,MAAO,UAAG5J,EAAI,mBACrByP,OACC,+BACYzP,EAAI,oFACFA,EAAI,8DACdp+E,EAAMxB,IAAI,SAAW,GAAE,kDAEb4/E,EAAI,2DACFA,EAAI,8RAKRA,EAAI,8EACJA,EAAI,4EACJA,EAAI,6DAGjByP,OAAO7C,EAAM/7E,IAChB,IAAM29G,GAAU,SACd,MACA,CACE5kC,MAAO,UAAG5J,EAAI,SACd5mE,MAAO,sCAET,+BACc4mE,EAAI,4DACJA,EAAI,yDACJA,EAAI,gDACFA,EAAI,sEAENA,EAAI,8CACJA,EAAI,6EACJA,EAAI,gDACJA,EAAI,s3BAcJA,EAAI,kCAGpBvjF,KAAK+xH,QAAUA,EACf,IAAMuD,EAAOtyB,aAAE,EAAFA,EAAIuyB,aAcjB,OAbAD,GAAQA,EAAK7wG,YAAYstG,GACzBj7B,GACEA,EAAS,CACP1iF,GAAE,EACFohH,MAAOphH,EAAG8rB,cAAc,oBACxBu1F,QAASrhH,EAAG8rB,cAAc,sBAC1Bw1F,SAAUthH,EAAG8rB,cAAc,uBAC3By1F,OAAQvhH,EAAG8rB,cAAc,qBACzBiwD,MAAOhrF,EACPywH,iBAAkB51H,KAClBoF,OAAQpF,KAAKoF,OACbsvH,UAAW10H,KAAK00H,YAEb10H,IACT,EACF,EAzOA,CAA2C,I,2fCF3C,eAIE,WAAY6J,EAAWoO,QAAX,IAAApO,IAAAA,EAAA,IAAZ,MACE,YAAMA,GAAM,IAAK,K,OAEjB,EAAKW,SAAS,EAAKvF,WAAY,QAAS,EAAK4O,QAC7C,EAAKiiF,WAAa79E,EAAO69E,WACzB,EAAKsxB,QAAUnvG,EAAOxY,O,CACxB,CAaF,OAvBwC,QAYtC,YAAAykG,eAAA,SAAeN,EAAwB/5F,QAAA,IAAAA,IAAAA,EAAA,IACrC+5F,EAAMnuF,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKrhF,OAAOyE,EAAZ,GACxB,EAEA,YAAAitF,SAAA,WACQ,IAAEnjF,EAAc3T,KAAX,IAAEujF,EAASvjF,KAAL,KACjB2T,EAAInM,KAAK,CAAE2lF,MAAO,UAAG5J,EAAI,WAC3B,EACU,YAAAuqC,WAAV,SAAqBrnC,EAAWjkF,GAC9B,OAAO,IAAI,GAAcikF,EAAMzmF,KAAK81F,WACtC,EACF,EAvBA,CAAwC,I,qvBCqBxC,eAuCE,WAAY3wF,GAAZ,MACE,YAAM,CAAEA,MAAK,KAAG,KAXlB,EAAAijG,OAAQ,GAYN,IAAA9lB,SAAQ,EAAM,WAAY,aAAc,gBAClC,MAAc,EAAZY,EAAE,KAAEe,EAAG,M,OACf,EAAKrvE,UAAY,UAAGqvE,EAAG,iBAAUf,EAAGjrE,OAAOisG,SAAgC,GAArB,WAAIjgC,EAAG,cAC7D,EAAK4xC,cACL,EAAKrrH,SAAS04E,EAAI,sBAAuB,EAAK4yC,UAC9C,EAAKtrH,SAAS04E,EAAI,qBAAsB,EAAK6yC,eAC7C,EAAKvrH,SAASrF,EAAO,gCAAiC,EAAK6wH,cAC3D,EAAKxrH,SAASrF,EAAO,gBAAiB,EAAK8wH,iBAC3C,EAAKC,iBAAgB,G,CACvB,CAqWF,OAvZwC,QACtC,YAAAxsH,OAAA,WACE,MAAO,CACLysH,MAAO,UAEX,EAEA,YAAAzZ,SAAA,WACU,IAAAz4B,EAAQjkF,KAAI,IACpB,MAAO,+BACSikF,EAAG,gEACNA,EAAG,2BAAiBA,EAAG,0CAEtC,EAuCA,YAAAgyC,gBAAA,WACEj2H,KAAK61H,cACL71H,KAAKo2H,eACP,EAEA,YAAAP,YAAA,WACQ,MAAgC71H,KAA9BojG,EAAM,SAAEj+F,EAAK,QAAE8S,EAAM,SAAEirE,EAAE,KAC3Bj+E,EAAaE,EAAMi+F,OACzBlgB,EAAGz9E,IAAI,cAAe,GACtBR,EAAW4G,KAAK,cAAc,WAAM,OAAAq3E,EAAGz9E,IAAI,cAAe,EAAtB,IACpC29F,SAAAA,EAAQh+F,SACRpF,KAAKojG,OAAS,IAAI,GAChB,CAAEn+F,WAAU,GAAE,SAETgT,GAAM,CACT69E,WAAY91F,OAGlB,EAEA,YAAA+1H,cAAA,SAAczwC,EAAsBz7E,G,WAAA,IAAAA,IAAAA,EAAA,IAC1B,IAAAie,EAAWje,EAAI,OACjBwsH,EAAYr2H,KAAKkjF,GAAGv/E,IAAI,gBAE9BmkB,IACiB,QAAf,EAAAw9D,EAAUsT,aAAK,SAAEnjF,SAAQ,SAAA6sB,GACvBA,EAAKi2D,cAAgB89B,GAAa/zF,EAAKmU,eAAe3uB,EACxD,IACJ,EAEA,YAAA1iB,OAAA,W,UAAO,kDAML,OALW,QAAX,EAAApF,KAAKojG,cAAM,SAAEh+F,SAEbpF,KAAKojG,YAAS/9F,EACd,0BAAkCrF,KAAMU,GACxCV,KAAKk2H,iBAAgB,GACdl2H,IACT,EAEA,YAAAutB,eAAA,SAAe/gB,G,MACTA,IACFA,EAAG+gB,iBAEY,QAAf,EAAA/gB,EAAG4lG,oBAAY,SAAE7kF,iBAErB,EAEA,YAAA+oG,aAAA,SAAa9pH,GAKb,EAEA,YAAA0pH,gBAAA,SAAgBjzC,GACCjjF,KAAI,GAAX,IACFQ,EAAKyiF,EAAS,EAAAx7E,GAAK,EAAA0D,IAEzB3K,EAAGkU,SAAU,WAAY1U,KAAK+8D,YAC9Bv8D,EAAGT,OAAQ,gBAAiBC,KAAK81H,SAEnC,EAEA,YAAA/4D,WAAA,SAAWvwD,GACD,IAAA02E,EAAOljF,KAAI,GAGP,OAFA,IAAA6iF,YAAWr2E,IAEoB,IAAxB02E,EAAGoc,kBAA2Bpc,EAAGsB,OAAO+xC,mBACzDv2H,KAAKutB,eAAe/gB,GACpB02E,EAAG2T,OAAOjB,WAAW,oBAEzB,EAEA,YAAA4gC,QAAA,SAAQhqH,GACN,IAAKA,EAAGoiB,SAAWpiB,EAAG8pD,UAAYt2D,KAAKkjF,GAAG0D,YAAYq9B,YAAa,CACjEjkH,KAAKutB,eAAe/gB,GACZ,IAAArH,EAAUnF,KAAI,MAEhB6iD,EAAQ32C,KAAKC,KAAK,EAAGD,KAAKiE,IAAI,EAAG3D,EAAGm2C,aAAen2C,EAAGg2C,SACtD69C,EAAOl7F,EAAMxB,IAAI,QACvBwB,EAAMM,IAAI,OAAQ46F,EAAe,EAARx9C,E,CAE7B,EAEA,YAAAmzE,aAAA,SAAaxpH,GACL,IAAE02E,EAAcljF,KAAZ,GACJ,EADgBA,KAAL,MACMgH,WAAf6sB,EAAC,IAAE+Z,EAAC,IACNyyD,EAAOrgG,KAAKy2H,UACZC,EAAU,CAAEj4B,iBAAkB,GAC9Bk4B,EAAMt2B,EAAO,EAAIA,EAAO,EAE9BrgG,KAAK42H,WAAWj6G,MAAMyrE,UAAY,gBAASiY,EAAI,uBAAexsE,EAAI8iG,EAAG,eAAO/oF,EAAI+oF,EAAG,OACnF32H,KAAK81H,WACL5yC,EAAGqS,YAAYmhC,GACfxzC,EAAGp/E,QAAQ,gBAAiB0I,GAC5BxM,KAAK62H,WAAapvG,aAAaznB,KAAK62H,WACpC72H,KAAK62H,UAAYtvG,YAAW,WAAM,OAAA27D,EAAG2S,WAAW6gC,EAAd,GAAwB,IAC5D,EAEA,YAAAD,QAAA,WACE,OAAOz2H,KAAKkjF,GAAGoc,gBACjB,EAOA,YAAAw3B,eAAA,SAAe1iH,GACb,IAAMwmF,GAAO,IAAAlW,YAAWtwE,GAClBk0B,GAAO,IAAAosE,WAAU9Z,GACjBm8B,EAAY/2H,KAAKg3H,eAAep8B,GAChCq8B,EAAO3uF,EAAKQ,IACZouF,EAAQ5uF,EAAK5Y,KACnB,OAAOunG,GAAQ,GAAKC,GAAS,GAAKD,GAAQF,EAAUjkG,QAAUokG,GAASH,EAAU5wF,KACnF,EAOA,YAAAhL,OAAA,SAAO/mB,EAAkBvK,QAAA,IAAAA,IAAAA,EAAA,IACf,IAAAq+E,EAAar+E,EAAI,SACnBy+B,GAAO,IAAAosE,WAAUtgG,GACjB0T,EAASogE,EAAW,CAAEr0D,EAAG,EAAG+Z,EAAG,IAAM,SAAkBx5B,GAE7D,MAAO,CACL00B,IAAKR,EAAKQ,IAAMhhB,EAAO8lB,EACvBle,KAAM4Y,EAAK5Y,KAAO5H,EAAO+L,EACzBsS,MAAOmC,EAAKnC,MACZrT,OAAQwV,EAAKxV,OAEjB,EAMA,YAAAgjG,SAAA,WACE91H,KAAKm3H,YAAS9xH,EACdrF,KAAKo3H,YAAS/xH,CAChB,EAOA,YAAA2xH,eAAA,SAAe5iH,G,MACb,IAAKpU,KAAKm3H,QAAU/iH,EAAI,CACtB,IAAM+7E,EAAkB,QAAV,EAAAnwF,KAAKmwF,aAAK,eAAE/7E,GACpBijH,EAAQjjH,aAAE,EAAFA,EAAI8b,cAAc62E,YAC1BuwB,EAAOD,EAASA,EAAMzH,aAA+Bz/B,EAC3DnwF,KAAKm3H,OAASn3H,KAAKm7B,OAAOm8F,GAAQnnC,E,CAEpC,OAAOnwF,KAAKm3H,MACd,EAOA,YAAAI,gBAAA,WAEE,OADKv3H,KAAKo3H,SAAQp3H,KAAKo3H,OAASp3H,KAAKm7B,OAAOn7B,KAAKoU,KAC1CpU,KAAKo3H,MACd,EASA,YAAAxvC,cAAA,SAAcxzE,EAAiBvK,QAAA,IAAAA,IAAAA,EAAA,IAC7B,IAAMw2F,EAAOrgG,KAAKy2H,UACZe,EAAcx3H,KAAKg3H,eAAe5iH,GAClCqjH,EAAWz3H,KAAKoU,GAChBo8G,EAAexwH,KAAKu3H,kBACpBG,EAAS13H,KAAKm7B,OAAO/mB,EAAIvK,GACzB8tH,EAAW9tH,EAAK+tH,iBAAmB,EAAIJ,EAAY1uF,IACnD+uF,EAAYhuH,EAAK+tH,iBAAmB,EAAIJ,EAAY9nG,KAEpD8lG,EAAQ3rH,EAAKiuH,eAAiBJ,EAAO5uF,IAAM4uF,EAAO5uF,IAAMu3D,EACxDs1B,EAAS9rH,EAAKiuH,eAAiBJ,EAAOhoG,KAAOgoG,EAAOhoG,KAAO2wE,EAOjE,MAAO,CAAEv3D,IALGj/B,EAAK+tH,iBAAmBpC,EAAQA,EAAQmC,EAAWnH,EAAa1nF,IAAM2uF,EAASprF,UAK7E3c,KAJD7lB,EAAK+tH,iBAAmBjC,EAASA,EAASkC,EAAYrH,EAAa9gG,KAAO+nG,EAASxrF,WAI5EnZ,OAHLjpB,EAAKiuH,eAAiBJ,EAAO5kG,OAAS4kG,EAAO5kG,OAASutE,EAGzCl6D,MAFdt8B,EAAKiuH,eAAiBJ,EAAOvxF,MAAQuxF,EAAOvxF,MAAQk6D,EAE/BA,KAAI,EAAE/3D,KAAMovF,EACjD,EAQA,YAAAK,kBAAA,SAAkB3jH,GAAlB,WACE,IAAKA,IAAM,IAAAksF,YAAWlsF,GAAK,MAAO,CAAC,EACnC,IAAMlH,EAA+B,CAAC,EAChCspB,EAASz2B,OAAOynC,iBAAiBpzB,GAevC,MAd6D,CAC3D,YACA,cACA,eACA,aACA,aACA,eACA,gBACA,eAEmBqB,SAAQ,SAAA0lB,GAC3BjuB,EAAOiuB,GAAUotD,WAAW/xD,EAAO2E,IAAW,EAAKs7F,SACrD,IAEOvpH,CACT,EAOA,YAAAs2E,YAAA,SAAY35E,G,WAAA,IAAAA,IAAAA,EAAA,IACV,IAAMwoB,EAAgB,QAAV,EAAAryB,KAAKmwF,aAAK,eAAE/7E,GAAGq7E,gBAC3B,IAAKp9D,EACH,MAAO,CACLyW,IAAK,EACLpZ,KAAM,EACNyW,MAAO,EACPrT,OAAQ,GAGZ,IAAMklG,EAAM3lG,EAAIvV,KACVujF,EAAOrgG,KAAKy2H,UACZwB,EAAKj4H,KAAKg3H,iBACVtxB,EAAK1lG,KAAKu3H,kBACRrvC,EAAar+E,EAAI,SAEzB,MAAO,CACLi/B,IAAKmvF,EAAGnvF,KAAOo/C,EAAW,EAAI8vC,EAAI3rF,WAAag0D,EAAOqF,EAAG58D,IACzDpZ,KAAMuoG,EAAGvoG,MAAQw4D,EAAW,EAAI8vC,EAAI/rF,YAAco0D,EAAOqF,EAAGh2E,KAC5DyW,MAAOu/D,EAAGv/D,MACVrT,OAAQ4yE,EAAG5yE,OAEf,EAQA,YAAAolG,aAAA,SAAa51F,GACX,IAAMn9B,EAAQm9B,EAAKn9B,MACbmF,EAAKnF,EAAM6kH,QAEZ1nF,EAAK61F,kBACR71F,EAAK61F,iBAAkB,SAAS,MAAO,CAAE,UAAW7tH,IACpDtK,KAAK6xH,iBAAiBptG,YAAY6d,EAAK61F,kBAGzC71F,EAAKluB,GAAG9J,GAAKA,EACbg4B,EAAK61F,gBAAgBnxC,UAAY,GAGjC,IAAMnS,EAASngE,SAASC,cAAc,UAChCyjH,EAAWjzH,EAAMkzH,kBACjBC,EAAcnzH,EAAMxB,IAAI,gBAAkBy0H,EAAW,uBAAgBA,EAAQ,QAC7EG,EAAc3/G,KAAKC,UAAU1T,EAAMqzH,oBACzC3jD,EAAOmS,UAAY,uFAEuB18E,EAAE,qDAErCguH,EAAW,wBAAgBC,EAAW,mBAI7ChxG,YAAW,WACT,IAAMkxG,EAAMn2F,EAAK61F,gBACjBM,SAAAA,EAAKh0G,YAAYowD,EACnB,GAAG,EACL,EAMA,YAAAg9C,eAAA,SAAevvF,GACb,IAAMg2D,EAAYt4F,KAAK04H,aAAap2F,GACpC,OAAOg2D,GAAaA,EAAUu5B,gBAChC,EAEA,YAAA6G,aAAA,SAAap2F,GACX,OAAOA,aAAI,EAAJA,EAAMi2D,cAAev4F,KAAKkjF,GAAGv/E,IAAI,eAC1C,EAEA,YAAAyyH,cAAA,WACE,GAAKp2H,KAAKooG,MAAV,CACM,MAAoCpoG,KAAlCmF,EAAK,QAAEi+F,EAAM,SAAElgB,EAAE,KAAE0zC,EAAU,aAC/B7M,EAAO5kH,EAAMi+F,OACnB2mB,EAAKF,eACLzmB,EAAOvvF,SACP,IAAM8kH,EAAY5O,EAAKtmH,GAAG,GACpB4yH,EAAYsC,aAAS,EAATA,EAAWr2F,KAC7B4gD,EAAG01C,gBAAgBvC,GACnBO,SAAAA,EAAYnyG,YAAY2+E,EAAOhvF,IAC/BpU,KAAKmwF,MAAQkmC,CATU,CAUzB,EAEA,YAAAxiH,OAAA,WACQ,MAAgC7T,KAA9BoU,EAAE,KAAET,EAAG,MAAE4vE,EAAI,OAAEtrE,EAAM,SAAEirE,EAAE,KACjCvvE,EAAIuiE,KAAKl2E,KAAK08G,YACd,IAAMmc,EAAUllH,EAAIC,KAAK,iBACzB5T,KAAK42H,WAAaiC,EAAQl1H,IAAI,GAE9B,IAAMm1H,EAAWnlH,EAAIC,KAAK,gBAgC1B,OA/BA5T,KAAKu1H,aAAeuD,EAASn1H,IAAI,GACjCm1H,EAAS9lC,OAAO,+BACAzP,EAAI,iBAASA,EAAI,2EACfA,EAAI,kDACFA,EAAI,mFAGXA,EAAI,2DACXtrE,EAAO+uG,MAAQ,uBAAezjC,EAAI,4BAA4B,GAAE,kCACpDA,EAAI,gDACJA,EAAI,gDACJA,EAAI,+EACJA,EAAI,kDACJA,EAAI,mDACJA,EAAI,gDAGtBvjF,KAAK69F,QAAUzpF,EAAG8rB,cAAc,WAAIqjD,EAAI,UACxCvjF,KAAK+4H,KAAO3kH,EAAG8rB,cAAc,WAAIqjD,EAAI,gBACrCvjF,KAAKg5H,QAAU5kH,EAAG8rB,cAAc,WAAIqjD,EAAI,UACxCvjF,KAAKi5H,SAAW7kH,EAAG8rB,cAAc,WAAIqjD,EAAI,gBACzCvjF,KAAKk5H,QAAU9kH,EAAG8rB,cAAc,WAAIqjD,EAAI,UACxCvjF,KAAK+8F,UAAY3oF,EAAG8rB,cAAc,WAAIqjD,EAAI,YAC1CvjF,KAAKm5H,UAAY/kH,EAAG8rB,cAAc,WAAIqjD,EAAI,YAC1CvjF,KAAKo5H,SAAWhlH,EAAG8rB,cAAc,WAAIqjD,EAAI,aACzCvjF,KAAKq5H,cAAgBjlH,EAAG8rB,cAAc,WAAIqjD,EAAI,mBAC9CvjF,KAAKs5H,YAAcllH,EAAG8rB,cAAc,WAAIqjD,EAAI,aAC5CvjF,KAAKoU,GAAGQ,WAAY,IAAAm+F,YAAW7vB,EAAIljF,KAAK4U,WACxC5U,KAAKooG,OAAQ,EACbpoG,KAAKo2H,gBAEEp2H,IACT,EACF,EAvZA,CAAwC,I,w9BCkCxC,eA0BE,WAAYkjF,GAAZ,MACE,YAAMA,EAAI,SAAU,IAAS,KAM7B,OAJA,EAAKT,OAAS,IAAI,GAAO,GACzB,EAAKt9E,MAAQ,EAAKs9E,OAClB,EAAK8vC,gBAAkB,EAAKA,gBAAgBxmH,KAAK,GACjD,EAAKknH,eAAiB,EAAKA,eAAelnH,KAAK,GACxC,CACT,CAskBF,OAxmB0C,QAYxC,YAAA22E,cAAA,WACE,OAAO1iF,KAAK81F,UACd,EAsBA,YAAAw1B,OAAA,WACEtrH,KAAKmF,MAAM68C,MACb,EAEA,YAAA+jC,SAAA,WACE,OAAO/lF,KAAKyiF,MACd,EAMA,YAAAiC,WAAA,WACE,OAAO1kF,KAAK0iF,gBAAgBtuE,EAC9B,EAEA,YAAAmlH,SAAA,SAASz4H,GACP,OAAOd,KAAK+3F,YAAYj3F,GAAS,EACnC,EAMA,YAAA81F,WAAA,WACU,IAAAzG,GAAUnwF,KAAK81F,YAAc,CAAC,GAAC,MACvC,OAAO3F,aAAK,EAALA,EAAO/7E,EAChB,EAEA,YAAAolH,YAAA,W,MACE,OAAsB,QAAf,EAAAx5H,KAAK81F,kBAAU,eAAE8gC,UAC1B,EAMA,YAAA3+B,UAAA,WACU,IAAA9H,GAAUnwF,KAAK81F,YAAc,CAAC,GAAC,MACvC,OAAO3F,aAAK,EAALA,EAAO8H,WAChB,EAMA,YAAAwhC,YAAA,WACE,IAAMtpC,EAAQnwF,KAAK42F,aACnB,OAAOzG,aAAK,EAALA,EAAOV,eAChB,EAMA,YAAA7K,QAAA,WACE,IAAMvyD,EAAMryB,KAAKy5H,cACjB,OAAOpnG,aAAG,EAAHA,EAAKvV,IACd,EAEA,YAAA48G,YAAA,SAAYC,EAAeC,EAAe3qH,GACxC,IAAI/B,EAASysH,EACPrhC,EAAYshC,aAAQ,EAARA,EAAUrhC,YAG5B,OAFArrF,EAASorF,EAAYA,EAAUrpF,KAAY/B,CAG7C,EAOA,YAAA+5E,iBAAA,W,MACE,OAAsB,QAAf,EAAAjnF,KAAK81F,kBAAU,eAAEwjC,WAC1B,EAOA,YAAAx0C,WAAA,SAAW80C,GACT,OAAO55H,KAAK05H,YAAY15H,KAAK0iF,gBAAgBmb,QAAS+7B,EAAU,aAClE,EAOA,YAAAjpC,eAAA,SAAeipC,GACb,OAAO55H,KAAK05H,YAAY15H,KAAK0iF,gBAAgBq2C,KAAMa,EAAU,iBAC/D,EAOA,YAAA7qC,WAAA,SAAW6qC,GACT,OAAO55H,KAAK05H,YAAY15H,KAAK0iF,gBAAgBs2C,QAASY,EAAU,aAClE,EAOA,YAAA76B,YAAA,WACE,OAAO/+F,KAAK0iF,gBAAgBu2C,QAC9B,EAOA,YAAAY,WAAA,WACE,OAAO75H,KAAK0iF,gBAAgBw2C,OAC9B,EAOA,YAAAhkC,aAAA,WACE,OAAOl1F,KAAK0iF,gBAAgBqa,SAC9B,EAOA,YAAAhH,aAAA,WACE,OAAO/1F,KAAK0iF,gBAAgBy2C,SAC9B,EAOA,YAAAlH,kBAAA,SAAkB2H,GAChB,OAAO55H,KAAK05H,YAAY15H,KAAK0iF,gBAAgB02C,SAAUQ,EAAU,oBACnE,EAOA,YAAAE,uBAAA,WACE,OAAO95H,KAAK0iF,gBAAgB22C,aAC9B,EAEA,YAAAxlH,OAAA,W,MAGE,OAFe,QAAf,EAAA7T,KAAK81F,kBAAU,SAAE1wF,SACjBpF,KAAK81F,WAAa,IAAI,GAAW91F,KAAKyiF,QAC/BziF,KAAK81F,WAAWjiF,SAASO,EAClC,EAOA,YAAAq8G,UAAA,WACE,IAAIt5B,EAAWn3F,KAAKm7B,OAAOn7B,KAAK42F,cAC5BQ,EAAYp3F,KAAKm7B,OAAOn7B,KAAK0kF,cACjC,MAAO,CACL57C,IAAKquD,EAASruD,IAAMsuD,EAAUtuD,IAC9BpZ,KAAMynE,EAASznE,KAAO0nE,EAAU1nE,KAEpC,EAQA,YAAAyL,OAAA,SAAO/mB,GACL,OAAOpU,KAAK0iF,gBAAgBvnD,OAAO/mB,EACrC,EAUA,YAAA2lH,oBAAA,SAAoB1zG,GAElBrmB,KAAKiY,OAAOqiF,iBAAmBj0E,CACjC,EAQA,YAAAuhE,cAAA,SAAcxzE,EAAiBvK,GAC7B,OAAO7J,KAAK0iF,gBAAgBkF,cAAcxzE,EAAIvK,EAChD,EAQA,YAAAkuH,kBAAA,SAAkB3jH,GAChB,OAAOpU,KAAK0iF,gBAAgBq1C,kBAAkB3jH,EAChD,EAMA,YAAA89G,QAAA,W,MACQ,EAA0D,QAAlC,EAAAlyH,KAAK0iF,gBAAgBc,qBAAa,QAAI,CAAC,EAA7D,IAAA16C,IAAAA,OAAG,IAAG,IAAC,EAAE,IAAApZ,KAAAA,OAAI,IAAG,IAAC,EACzB,OAAO,SACF1vB,KAAK0iF,gBAAgB60C,mBAAiB,CACzCyC,UAAWlxF,EACXmxF,WAAYvqG,GAEhB,EAkBA,YAAAwqG,sBAAA,SAAsB3zG,EAAqBvS,EAAsBnR,QAAA,IAAAA,IAAAA,EAAA,IAC/D,IAAIgH,EAAOhH,GAAW,CAAC,EACnBs3H,EAAYn6H,KAAK0iF,gBAAgBc,cACrC,GAAK22C,EAAL,CACA,IAAIt4G,EAAMhY,EAAK2vF,OAASx5F,KAAK0iF,gBAAgBkF,cAAc5zE,GACvDomH,EAAUv3H,EAAQu3H,SAAW,EAC7BC,EAAexwH,EAAKwwH,cAAgB9zG,EAAO4I,aAC3CmrG,EAAczwH,EAAKywH,aAAe/zG,EAAO6I,YACzCmrG,EAAiB1wH,EAAK8I,OAAS,KAE/B6iH,EAAQ3zG,EAAIinB,IAAMuxF,EAClB1E,EAAS9zG,EAAI6N,KACjBimG,GAAUyE,EAAUv4G,EAAIskB,MAAQ,EAGhC,IAAIs5B,GAFJk2D,EAASyE,EAAUzE,EAAS2E,EAAc3E,GAEnBwE,EAAUzqG,KAAOyqG,EAAUzqG,KAAOimG,EACrD6E,EAAShF,EAAQ2E,EAAUrxF,IAAMqxF,EAAUrxF,IAAM0sF,EAGjDtoH,EAAS,CACX47B,IAHF0xF,EAASA,EAAS34G,EAAIinB,IAAMjnB,EAAIiR,OAASjR,EAAIinB,IAAMjnB,EAAIiR,OAAS0nG,EAI9D9qG,KAAM+vC,EACNg7D,WAAY54G,EAAIinB,IAChB4xF,YAAa74G,EAAI6N,KACjBirG,aAAc94G,EAAIskB,MAClBy0F,cAAe/4G,EAAIiR,OACnBwnG,YAAa/zG,EAAO6I,YACpBirG,aAAc9zG,EAAO4I,aACrB0rG,UAAWV,EAAUrxF,IACrBgyF,WAAYX,EAAUzqG,KACtBqrG,YAAaZ,EAAUh0F,MACvB60F,aAAcb,EAAUrnG,QAQ1B,OAJIynG,GAAkBv6H,KAAKkjF,IACzBljF,KAAKkjF,GAAGp/E,QAAQy2H,EAAgBrtH,GAG3BA,CApCe,CAqCxB,EAEA,YAAA4wF,iBAAA,SAAiB1pF,EAAiByN,EAAoChY,GAAtE,gBAAsE,IAAAA,IAAAA,EAAA,IACpE,IAKMoxH,EAAU,SAAC7mH,EAAiB00B,EAASjnB,QAAT,IAAAinB,IAAAA,EAAA,GAChC,IAAMu3D,EAAO,EAAKnd,GAAGoc,iBACfjsD,EAAOvK,EAAM,MAAQ,OACrBzW,EAAMje,EAAG8b,cACT,EAAoCrmB,EAAKsxB,OATvB,SAAC9I,GACjB,IAAA00E,EAAgB10E,EAAG,YAC3B,OAAO00E,aAAW,EAAXA,EAAa6oB,YACtB,CAM0DsL,CAAkB7oG,GAAO,CAAC,EAA1E,IAAA+U,UAAAA,OAAS,IAAG,IAAC,EAAE,IAAAgI,WAAAA,OAAU,IAAG,IAAC,EAC/B,EAAoC/c,EAAIvV,MAAQ,CAAC,EAA/C,IAAAuvB,UAAAA,OAAS,IAAG,IAAC,EAAE,IAAAJ,WACjBnkB,EAASghB,EAAMuD,OADY,IAAG,IAAC,EAE/BlR,EAAS2N,EAAM1B,EAAYgI,EAEjC,OAAOvtB,EAAIwxB,IAASvrB,EAASqT,GAAUklE,CACzC,EAEA,MAAO,CACLv3D,IAAKmyF,EAAQ7mH,EAAI,EAAGyN,GACpB6N,KAAMurG,EAAQ7mH,EAAI,EAAGyN,GAEzB,EASA,YAAA44E,wBAAA,SAAwBrmF,EAAiBu6E,EAAuB9kF,QAAA,IAAAA,IAAAA,EAAA,IAC9D,IAAM6tH,EAAS7tH,EAAKgY,KAAO7hB,KAAK4nF,cAAcxzE,EAAI,CAAE8zE,UAAU,IACxDsoC,EAAe3mH,EAAKutF,WAAap3F,KAAK89F,iBAAiB1pF,EAAIsjH,GAC3D2C,EAAe1rC,EAASx/D,cAAgB,EACxCmrG,EAAc3rC,EAASv/D,aAAe,EACtCqmG,EAAUiC,EAAOhoG,KAAOgoG,EAAOvxF,MAC/B2vD,EAAa91F,KAAK0iF,gBAClBy4C,EAAarlC,EAAWtS,cACxBg0C,EAAc1hC,EAAWkhC,eAAe5iH,GACtCzB,EAAU9I,EAAI,MAElBi/B,GAAOuxF,EACP3qG,GAAQ,IAAAk6D,aAAY//E,EAAK6lB,MAAoBgoG,EAAOvxF,MAAQm0F,EAA3BzwH,EAAK6lB,KAK1C,GAJAA,EAAOgoG,EAAOhoG,MAAQA,GAAQgoG,EAAOhoG,KAAOA,EAC5CA,EAAO+lG,EAAU0F,EAAWh1F,MAAQzW,GAAQ+lG,EAAU0F,EAAWh1F,OAASzW,EAGtE8gG,EAAa1nF,IAAMuxF,EAAc,CACnC,IAAMe,EAAa1D,EAAO5kG,OAASunG,EACjBe,EAAa5D,EAAY1kG,OAKzCgW,GAAYsyF,EAEZtyF,GAAO0nF,EAAa1nF,IAAM4uF,EAAO5kG,QAAU09F,EAAa1nF,IAAM4uF,EAAO5kG,M,CAIzE,IAAM5lB,EAAS,CACb47B,IAAG,EACHpZ,KAAI,EACJwuE,gBAAiBsyB,EAAa1nF,IAC9Bq1D,iBAAkBqyB,EAAa9gG,KAC/BgoG,OAAM,EACNlH,aAAY,EACZ2K,WAAU,EACVb,YAAW,EACXD,aAAY,GAMd,OAFA1nH,GAAS3S,KAAKkjF,GAAGp/E,QAAQ6O,EAAOzF,GAEzBA,CACT,EAWA,YAAAipF,oBAAA,SAAoBjrF,EAAQrB,QAAA,IAAAA,IAAAA,EAAA,IAC1B,IAAIwxH,EAAS,EACTC,EAAU,EACVC,EAAe1xH,EAAK0xH,aACpBlpG,EAAMnnB,EAAEqb,OAAO2J,cACf8nE,EAAM3lE,EAAI00E,aAAe10E,EAAI20E,aAC7B7W,EAAQ6H,EAAI43B,aACZ4L,EAAUD,EAAevjC,EAAI5rD,YAAc,EAC3CqvF,EAAUF,EAAevjC,EAAIjsD,YAAc,EAE/C,GAAIokD,EAAO,CACT,IAAI4mC,EAAY5mC,EAAM3gE,wBACtB6rG,EAAStE,EAAUjuF,KAAO,EAC1BwyF,EAAUvE,EAAUrnG,MAAQ,C,CAG9B,MAAO,CACLke,EAAG1iC,EAAE8kC,QAAUqrF,EAASG,EACxB3nG,EAAG3oB,EAAE6kC,QAAUurF,EAAUG,EAE7B,EAQA,YAAAnyC,uBAAA,SAAuB98E,EAAgB3C,G,MAC/Bw2F,EAAOrgG,KAAKs/F,iBACZ,EAA8D,QAAtC,EAAAt/F,KAAK0iF,gBAAgBc,YAAY35E,UAAK,QAAI,CAAC,EAAjE,IAAAi/B,IAAAA,OAAG,IAAG,IAAC,EAAE,IAAApZ,KAAAA,OAAI,IAAG,IAAC,EAEzB,MAAO,CACLke,EAAGphC,EAAGwjC,QAAUqwD,EAAOv3D,EACvBjV,EAAGrnB,EAAGujC,QAAUswD,EAAO3wE,EAE3B,EAMA,YAAAmlB,SAAA,WACE,OAAO70C,KAAKy5H,cAAc5kF,UAC5B,EAOA,YAAA0hF,eAAA,WACE,IAAMlkG,EAAMryB,KAAKy5H,cACXtpC,EAAQnwF,KAAK42F,aACb8kC,EAAW,IAAC,QAAW17H,KAAKiY,OAAOkvG,aAAY,GAE/C3yE,EADY27C,GAASz7E,SAAS0Q,gBAAkB+qE,EAC1B99D,GAAOA,EAAIjN,cAAgB1Q,SAAS0Q,cAEhE,OAAOovB,IAAYknF,EAASnqH,MAAK,SAAAk1E,GAAQ,OAAAjyC,EAAQ9mC,QAAQ+4E,EAAhB,GAC3C,EAiBA,YAAAhe,SAAA,SAASr0D,EAASvK,QAAA,IAAAA,IAAAA,EAAA,IAChB,IAAM+wF,GAAO,IAAAlW,YAAWtwE,GAClBkuB,EAAOs4D,IAAQ,IAAAvC,WAAUuC,GAC/Bt4D,GAAQA,EAAKmU,eAAe5sC,EAC9B,EAMA,YAAA0oH,gBAAA,SAAgBpiC,GACd,IAAMwrC,EAAMxrC,GAASA,EAAM7tD,MAAStiC,KAAKkjF,GAAG04C,kBAC5CD,GAAMA,EAAGpJ,iBACX,EAMA,YAAAU,eAAA,SAAe9iC,GACb,IAAMwrC,EAAMxrC,GAASA,EAAM7tD,MAAStiC,KAAKkjF,GAAG04C,kBAC5CD,GAAMA,EAAG1I,gBACX,EASA,YAAA4I,QAAA,SAAQn0H,GAEN,OADA1H,KAAKyiF,OAAOh9E,IAAI,OAAyB,iBAAViC,EAAqB6gF,WAAW7gF,GAASA,GACjE1H,IACT,EASA,YAAAy2H,QAAA,WACE,OAAOluC,WAAWvoF,KAAKyiF,OAAO9+E,IAAI,QACpC,EAUA,YAAAm4H,UAAA,SAAUjoG,EAAW+Z,GAEnB,OADA5tC,KAAKyiF,OAAOh9E,IAAI,CAAEouB,EAAG00D,WAAW10D,GAAI+Z,EAAG26C,WAAW36C,KAC3C5tC,IACT,EAUA,YAAA+7H,UAAA,WACQ,MAAW/7H,KAAKyiF,OAAOz7E,WAC7B,MAAO,CAAE6sB,EADA,IACG+Z,EADA,IAEd,EAEA,YAAA0xD,eAAA,WACE,OAAOt/F,KAAKy2H,UAAY,GAC1B,EAEA,YAAAjC,kBAAA,WACE,IAAMn0B,EAAOrgG,KAAKs/F,iBAClB,OAAOe,EAAO,EAAIA,EAAO,CAC3B,EAEA,YAAA3E,mBAAA,SAAmBj0F,GACCzH,KAAKw5H,cAAa,MAC9Bx2E,cAAgBv7C,EAAK,GAAK,MAClC,EAEA,YAAAswF,UAAA,WACE,OAAO/3F,KAAKyiF,OAAO2gB,OAAOt+F,KAAI,SAAA2hF,GAAQ,OAAAA,CAAA,GACxC,EAwBA,YAAAu1C,SAAA,SAASlzG,EAAYjf,GACnB,YADO,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IACZ7J,KAAKyiF,OAAO2gB,OAAO9+F,IAAI,IAAI,EAAMtE,KAAM,MAAK8oB,IAAUjf,EAC/D,EAEA,YAAAwF,QAAA,e,EAAA,OACErP,KAAKyiF,OAAOn3E,gBACG,QAAf,EAAAtL,KAAK81F,kBAAU,SAAE1wF,SAGjB,CAAC,QAAS,aAAaqQ,SAAQ,SAAA5V,GAAK,OAAC,EAAKA,GAAK,CAAC,CAAZ,GACtC,EACF,EAxmBA,CAA0C,G,YCJ1C,IACEqkF,YAAa,QACbmB,WAAY,GACZ42C,qBAAqB,EACrBC,wBAAwB,EACxBC,eAAW92H,EACX+2H,aAAc,CACZ,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,SACA,OACA,WACA,OACA,QACA,SACA,QACA,QC5EJ,IAAMC,GAAW,YACXC,GAAcD,G,kPCWdE,GAAiB,YACjB,GAAQ,aA2Ud,SAzUmB,SAACr5C,EAAkBjrE,GACpC,YADoC,IAAAA,IAAAA,EAAA,IAC7B,CACLukH,UAAW,GAEXD,eAAc,GAEdE,iBAAgB,SAACC,EAAkBC,GACjC,IAAMhzH,EAAO+yH,EAASjtH,QAAQzP,KAAKu8H,eAAgB,IAC7CK,GAAWD,aAAS,EAATA,EAAWh8H,SAAU,EAChCm+E,EAAY69C,aAAS,EAATA,EAAWh8G,UAAU,EAAG,GACpCk8G,EAAWF,aAAS,EAATA,EAAWh8G,UAAUi8G,EAAW,GAC7Cl1H,EAA2B,SAAdi1H,GAA4C,UAAdA,GAAgCA,EAK/E,IACEj1H,EACgB,KAAbo3E,GAAgC,KAAZ+9C,GAAkC,KAAb/9C,GAAgC,KAAZ+9C,EAAmBjkH,KAAK3L,MAAMvF,GAASA,CAC7F,CAAV,MAAOwD,GAAG,CAEZ,MAAO,CACLvB,KAAI,EACJjC,MAAK,EAET,EAOAo1H,mBAAkB,SAACt1H,GAAnB,gBAAmB,IAAAA,IAAAA,EAAA,IACjB,IAAMshB,EAAmB,CAAC,EACpBhc,EAAsB,CAAC,EAW7B,OATA,IAAAvH,MAAKiC,GAAM,SAACE,EAAOrG,GACjB,GAAyC,IAArCA,EAAIwD,QAAQ,EAAK03H,gBAAuB,CAC1C,IAAMQ,EAAc,EAAKN,iBAAiBp7H,EAAKqG,GAC/CohB,EAAMi0G,EAAYpzH,MAAQozH,EAAYr1H,K,MAEtCoF,EAAMzL,GAAOqG,CAEjB,IAEO,CACLohB,MAAK,EACLhc,MAAK,EAET,EAWAkwH,WAAU,SAACpzG,GAIT,IAHA,IAAM1c,EAAuB,CAAC,EACxB+vH,EAAQrzG,EAAI3f,MAAM,KAEfpK,EAAI,EAAG4rB,EAAMwxG,EAAMt8H,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAChD,IAAMq9H,EAAOD,EAAMp9H,GAAGyoF,OACtB,GAAK40C,EAAL,CACA,IAAMz2G,EAAOy2G,EAAKjzH,MAAM,KACxBiD,EAAOuZ,EAAK,GAAG6hE,QAAU7hE,EAAKnmB,MAAM,GAAGmvD,KAAK,KAAK64B,MAF9B,C,CAKrB,OAAOp7E,CACT,EAWAiwH,WAAU,SAACvzG,GAIT,IAHA,IAAM1c,EAAS,GACTgX,EAAM0F,EAAI3f,MAAM,KAEbpK,EAAI,EAAG4rB,EAAMvH,EAAIvjB,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAC9C,IAAMu9H,EAAKl5G,EAAIrkB,GAAGyoF,OACb80C,GACLlwH,EAAOvI,KAAKy4H,E,CAGd,OAAOlwH,CACT,EAOAmwH,UAAS,SAACjpH,EAAiBvK,QAAA,IAAAA,IAAAA,EAAA,IAIzB,IAHA,IAAMqD,EAAuC,GACvCowH,EAAQlpH,EAAGmQ,WAER1kB,EAAI,EAAG4rB,EAAM6xG,EAAM38H,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAChD,IAAMwkB,EAAOi5G,EAAMz9H,GACbiN,EAAQuX,EAAKrd,YAAc,GAC3Bu2H,EAAWzwH,EAAMnM,OACjB68H,EAAWtwH,EAAOA,EAAOvM,OAAS,GAClC88H,EAAYp5G,EAAKE,WAAW5jB,OAC5B+8H,EAAK19H,KAAKw8H,UACZr3H,EAAoC,CAAC,EAGzC,GAAIu4H,EAAI,CACN,IAAI18H,EAAW,GACXwB,EAAO6hB,EAAK0iB,cAAgB1iB,EAAK0iB,aAAa,UAAG/mC,KAAKu8H,eAAc,SAGxE,GAAI/5H,EACF2C,EAAQ,CAAE3C,KAAI,OACT,CAGL,IAAK,IAAI,EAAK,EAAG,EAAKk7H,EAAG/8H,OAAQ,IAAM,CACrC,IAAMg9H,EAAWD,EAAG,GAIpB,GAFA18H,EAAM28H,EAASx4H,MAAM8vG,YAAY5wF,EAAMxa,GAE9B,CACY,iBAAR7I,IAETA,EAAM,CAAEwB,KAAMm7H,EAASrzH,KAEzB,K,EAIJnF,EAAQnE,C,EAKZ,IAAKmE,EAAMsO,QAAS,CAClB,IAAMkR,EAAMN,EAAK5Q,SAAW,GACtBqwF,EAAKz/E,EAAKu5G,cAAgB,GAChCz4H,EAAMsO,QAAUkR,GAAc,iCAAPm/E,EAAwCn/E,EAAIyE,cAAgBzE,C,CAGjF44G,IACFp4H,EAAM6B,WAAa,CAAC,GAItB,IAAK,IAAIyE,EAAI,EAAGA,EAAI8xH,EAAU9xH,IAAK,CACjC,IAAMg0C,EAAW3yC,EAAMrB,GAAGg0C,SACtB6rB,EAA8Bx+D,EAAMrB,GAAG6/D,UAG3C,GAAgB,SAAZ7rB,EACFt6C,EAAMwX,MAAQ3c,KAAKg9H,WAAW1xD,QACzB,GAAgB,SAAZ7rB,EACTt6C,EAAMsxB,QAAUz2B,KAAKm9H,WAAW7xD,OAC3B,IAAgB,mBAAZ7rB,EACT,SACK,GAA8C,IAA1CA,EAAS56C,QAAQ7E,KAAKu8H,gBAAuB,CACtD,IAAMQ,EAAc/8H,KAAKy8H,iBAAiBh9E,EAAU6rB,GACpDnmE,EAAM43H,EAAYpzH,MAAQozH,EAAYr1H,K,KAGpB,KAAd4jE,IAAuC,IAAnBjnD,EAAKo7B,KAC3B6rB,GAAY,GAGdnmE,EAAM6B,WAAWy4C,GAAY6rB,C,EAKjC,GAAImyD,IAAct4H,EAAMkgF,WAAY,CAElC,IAAMpoE,EAAaoH,EAAKE,WAAW,GAIjB,IAAdk5G,GAA2C,IAAxBxgH,EAAW+H,WAC/B7f,EAAM3C,OAAS2C,EAAM3C,KAAO,QAC7B2C,EAAMkgF,WAAa,CACjB7iF,KAAM,WACNuc,QAAS9B,EAAWquD,YAGtBnmE,EAAMkgF,WAAarlF,KAAKq9H,UAAUh5G,EAAM,SACnCxa,GAAI,CACPg0H,MAAOh0H,EAAKg0H,OAAwB,QAAf14H,EAAM3C,O,CAMjC,GAAkB,YAAd2C,EAAM3C,KAAoB,CAC5B,GAAIg7H,GAA6B,YAAjBA,EAASh7H,KAAoB,CAC3Cg7H,EAASz+G,SAAW5Z,EAAM4Z,QAC1B,Q,CAIF,IAAKlV,EAAKu4G,mBAAoB,CAC5B,IAAMrjG,EAAUsF,EAAKinD,UACrB,GAAe,KAAXvsD,IAAmBA,EAASupE,OAC9B,Q,EAMDm1C,GAA+C,OAAlC,UAAGp5G,EAAKyrF,WAAYxvG,OAAO,KAC3C6E,EAAM24H,MAAO,GAKf,IAAMC,EAAQ54H,EAAMkgF,WACpB,IAAKlgF,EAAM3C,MAAQu7H,EAAO,CAIxB,IAHA,IAAIC,EAAS,EACTC,EAAgB,EAEXC,EAAK,EAAGA,EAAKH,EAAMp9H,OAAQu9H,IAAM,CACxC,IAAMn9E,EAAOg9E,EAAMG,GACbC,EAAQp9E,EAAKv+C,KAEnB,GAAI,CAAC,OAAQ,YAAYqC,QAAQs5H,GAAS,GAAKlmH,EAAOmmH,SAAUv5H,QAAQk8C,EAAKttC,SAAW,EAAG,CACzFuqH,EAAS,EACT,K,CAGW,YAATG,IACFF,EAAgB,E,CAIhBD,GAAUC,IACZ94H,EAAM3C,KAAO,O,EAKZ2C,EAAMsO,SAAyB,YAAdtO,EAAM3C,OAI5B0K,EAAOvI,KAAKQ,E,CAGd,OAAO+H,CACT,EAQAD,MAAK,SAAC2c,EAAay0G,EAAgBx0H,G,WAAA,IAAAA,IAAAA,EAAA,IACjC,IAAM69G,GAAOxkC,aAAE,EAAFA,EAAIv/E,IAAI,YAAa,CAAC,EAC7BS,EAAuB,CAAC,EACxBk6H,EAAE,SAAmBrmH,GAAWpO,GAChChH,EAAU,YACXoV,EAAOsmH,aAAW,CAErBlC,UAA4B,QAAlB,EAAApkH,EAAOsmH,mBAAW,eAAElC,WAAYpkH,EAAOokH,WAC9CxyH,GAECuK,GAAK,IAAA/R,YAAWi8H,EAAGE,YAAcF,EAAGE,WAAW50G,EAAK/mB,GD9RhE,SAAgB+mB,EAAa3R,QAAA,IAAAA,IAAAA,EAAA,IAC3B,IAKI7T,EALE47E,EAAS,IAAIy+C,UACbC,EAAWzmH,EAAOokH,UAAYC,GAC9BpnB,EAASwpB,IAAarC,GACtBsC,EAAOzpB,EAAStrF,EAAM,eAAQA,EAAG,UACjCyI,EAAM2tD,EAAO4+C,gBAAgBD,EAAMD,GAGzC,GAAIxpB,EAAQ,CAEF,IAAAv+F,EAAe0b,EAAG,KAAZ,EAASA,EAAG,KAEpBy0F,EAAUnwG,EAAKy+E,iBAAiB,WACtC,IAAA7vF,MAAKuhH,GAAS,SAAAziG,GAAQ,SAAKI,YAAYJ,EAAjB,IAEtB,IAAM,EAAkB,IACxB,IAAA9e,MAAKoR,EAAK4b,UAAU,SAAAzL,GAAK,SAAKniB,KAAKmiB,EAAV,KACzB,IAAAvhB,MAAK,GAAM,SAAC8e,EAAMxkB,GAAM,SAAKmd,aAAaqH,EAAM,EAAKkO,SAAS1yB,GAAtC,IACxBuE,EAAM,C,MAENA,EAAMiuB,EAAIpV,WAGZ,OAAO7Y,CACR,CCsQ0Ey6H,CAAkBj1G,EAAK/mB,GACtFikH,EAAU1yG,EAAGghF,iBAAiB,UAChCv1F,EAAIinH,EAAQnmH,OAMhB,MAHsB,IAAAipF,aAAY89B,EAAKoX,cAAoCj8H,EAAQi8H,aAA5BpX,EAAKoX,cAI1D,KAAOj/H,KAAKinH,EAAQjnH,GAAGolB,WAAWnH,YAAYgpG,EAAQjnH,IASxD,GALKgD,EAAQk8H,iBACX/+H,KAAKg/H,kBAAkB5qH,GAIrBiqH,EAAW,CAKb,IAJA,IAAM7nG,EAASpiB,EAAGghF,iBAAiB,SAC/B3pF,EAAI+qB,EAAO71B,OACXs+H,EAAW,GAERxzH,KACLwzH,EAAWzoG,EAAO/qB,GAAGu7E,UAAYi4C,EACjCzoG,EAAO/qB,GAAGwZ,WAAWnH,YAAY0Y,EAAO/qB,IAGtCwzH,IAAU76H,EAAIk8B,IAAM+9F,EAAUpxH,MAAMgyH,G,CAG1C/7C,GAAMA,EAAGp/E,QAAQ,UAAG,GAAK,SAAS,CAAEw9B,MAAO1X,EAAKtqB,KAAM8U,IACtD,IAAMlH,EAASlN,KAAKq9H,UAAUjpH,EAAIkqH,GAE5BY,EAA4B,IAAlBhyH,EAAOvM,QAAiB29H,EAAGa,YAA0BjyH,EAAZA,EAAO,GAIhE,OAHA9I,EAAI8xE,KAAOgpD,EACXh8C,GAAMA,EAAGp/E,QAAQ,GAAO,CAAEw9B,MAAO1X,EAAK0O,OAAQl0B,IAEvCA,CACT,EAEA46H,kBAAiB,SAAC36G,GAAlB,WACQvX,EAAQuX,EAAKrd,YAAc,GAC3Bs2H,EAAQj5G,EAAKE,YAAc,GAC3B1T,EAAqB,IAC3B,IAAAtL,MAAKuH,GAAO,SAAAtF,GACV,IAAMmC,EAAOnC,EAAKi4C,UAAY,GACP,IAAvB91C,EAAK9E,QAAQ,OAAegM,EAASlM,KAAKgF,EAC5C,IACAkH,EAAS/L,KAAI,SAAA6E,GAAQ,OAAA0a,EAAKsoD,gBAAgBhjE,EAArB,KACrB,IAAApE,MAAK+3H,GAAO,SAAAj5G,GAAQ,SAAK26G,kBAAkB36G,EAAvB,GACtB,EAEJ,E,yuBCnVMm6G,GAAa,K,SAEnB,yB,8CAoIA,QApIwE,QAMtE,YAAAxB,WAAA,SAAWpzG,GACT,OAAO40G,GAAWxB,WAAWpzG,EAC/B,EAQA,YAAAw1G,YAAA,SAAY34G,GACV,OAAO,SAAKzmB,KAAKyoF,YAAehiE,EAClC,EAMA,YAAAgiE,SAAA,SAAShiE,GACP,IAAM9J,EAAQ3c,KAAK2D,IAAI,UAAY,CAAC,EAC9BuJ,EAAM,MAAmByP,GAC/B,OAAO8J,IAAQ,IAAAvV,UAASuV,GAAQvZ,EAAOuZ,GAAQvZ,CACjD,EAQA,YAAA4yE,SAAA,SAASr5D,EAA+B5c,GAAxC,gBAAS,IAAA4c,IAAAA,EAAA,SAA+B,IAAA5c,IAAAA,EAAA,KAClC,IAAAqH,UAASuV,KACXA,EAAOzmB,KAAKg9H,WAAWv2G,IAGzB,IAAM44G,EAAWr/H,KAAKyoF,SAAS5+E,GACzBy1H,EAAU,MAAK74G,GACf84G,EAAW,MAAKD,IAEtB,IAAAr+H,MAAKs+H,GAAU9pH,SAAQ,SAAAgR,GACE,KAAnB84G,EAAS94G,WACJ84G,EAAS94G,EAEpB,IACAzmB,KAAKyF,IAAI,QAAS85H,EAAU11H,GAC5B,IAAMxF,GAAO,IAAAgvG,aAAYgsB,EAAUC,GAcnC,cAZOj7H,EAAKqkF,KACZ,IAAAznF,MAAKoD,GAAMoR,SAAQ,SAAA02G,GAET,IAAAjpC,EAAO,EAAI,GACfr5E,EAAK21H,UACT,EAAK17H,QAAQ,uBAAgBqoH,IACzBjpC,IACFA,EAAGp/E,QAAQ,mBAAoB,EAAMqoH,EAAItiH,GACzCq5E,EAAGp/E,QAAQ,2BAAoBqoH,GAAM,EAAMA,EAAItiH,IAEnD,IAEOy1H,CACT,EAUA,YAAA12C,SAAA,SAASniE,EAA0B/e,EAAiBmC,G,WAAjB,IAAAnC,IAAAA,EAAA,SAAiB,IAAAmC,IAAAA,EAAA,IAC/B,iBAAR4c,IACL,MACDA,GAAO/e,EADV+e,E,GAIA5c,EAAOnC,GAAS,CAAC,EAGnB+e,EAAOzmB,KAAKo/H,YAAY34G,GACxBzmB,KAAK8/E,SAASr5D,EAAM5c,EACtB,EAMA,YAAA41H,YAAA,SAAYh5G,GACV,IAAI9J,EAAQ3c,KAAKyoF,kBACV9rE,EAAM8J,GACbzmB,KAAK8/E,SAASnjE,EAChB,EAOA,YAAA+iH,cAAA,SAAc71H,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAMqD,EAAS,GACTyP,EAAQ3c,KAAKyoF,SAAS5+E,GAE5B,IAAK,IAAI4c,KAAQ9J,EAAO,CACtB,IAAMgjH,EAAM91H,EAAKkkH,UACXA,GAAY,IAAA7sH,SAAQy+H,GAAOA,EAAI96H,QAAQ4hB,IAAS,EAAIk5G,EACpDj4H,EAAQ,UAAGiV,EAAM8J,IAAK,OAAGsnG,EAAY,cAAgB,IACrD6R,EAA+B,MAArBn5G,EAAK/F,OAAO,EAAG,GAC/BhZ,IAAUk4H,GAAW1yH,EAAOvI,KAAK,UAAG8hB,EAAI,YAAI/e,EAAK,K,CAGnD,OAAOwF,EAAOuiD,KAAK,GACrB,EAEA,YAAAowE,aAAA,WACE,OAAQ7/H,KAAK2D,IAAI,cAAgB3D,KAAK2D,IAAI,UAC5C,EAEA,YAAAm8H,mBAAA,SAAmBj2H,GAEjB,OAAO7J,KAAK+/H,kBAAoB//H,KAAK+/H,kBAAkBl2H,GAAQ7J,KAAK6/H,eAAeG,eACrF,EAMF,EApIA,CAAwE,M,kzCCE3DC,GAAkB,SAACvsG,EAA4CtvB,GAC1E,YAD0E,IAAAA,IAAAA,EAAA,IACrEsvB,KACS,IAAAxyB,SAAQwyB,KAAQ,IAAArxB,YAAYqxB,EAAmB5uB,KAAO4uB,EAAM,CAACA,IACtE5uB,KAAI,SAAA4uB,GACPtvB,EAAIO,KAAK+uB,EAAIs2F,SACbiW,GAAgBvsG,EAAI2xD,aAAa7hF,OAAQY,EAC3C,IACOA,GANU,EAOnB,EAEM87H,GAAwB,SAACt8B,EAAYxiG,EAAqByI,QAArB,IAAAzI,IAAAA,EAAA,SAAqB,IAAAyI,IAAAA,EAAA,IAC9DA,EAAKs2H,YAAct2H,EAAKs2H,aAAe,CAAC,EAChC,IAAAA,EAAgBt2H,EAAI,YAG5B,QAFa,IAAA3I,SAAQ0iG,GAASA,EAAQ,CAACA,IAE3B9+F,KAAI,SAAA2hF,GACN,MAAyCA,EAAI,WAA7Cz/E,OAAU,IAAG,GAAC,EAAC,EAAEq+E,EAAwBoB,EAAI,WAAhBhzE,EAAYgzE,EAAI,QAC/Cn8E,EAA+BtD,EAAU,GAAvBo5H,GAAap5H,EAAU,UAAf,GAAKA,EAAjC,qBACAkG,EAASu5E,EAqBb,GAnBIn8E,IAEG61H,EAAY71H,IAWf61H,EAAY71H,GAAI3F,KAAKuI,GACrB5C,EAAK,YAAmBlJ,GACxB8L,EAAOlG,WAAWsD,GAAKA,IAZvB61H,EAAY71H,GAAM,GAGdlJ,EAAIkJ,KACN4C,EAAS9L,EAAIkJ,GACbmJ,GAAWvG,EAAOzH,IAAI,CAAEgO,QAAO,GAAI,SAAK5J,GAAI,CAAE+D,QAAQ,MACtD,IAAA3M,MAAKm/H,GAAUz/H,QAAUuM,EAAOmzH,cAAcD,EAAU,MAAKv2H,OAU/Dw7E,EAAY,CACd,IAAMi7C,EAAgBJ,GAAsB76C,EAAYjkF,GAExD,IAAI,IAAAiB,YAAW6K,EAAOm4E,YAAa,CACjC,IAAMk7C,EAAOrzH,EAAOm4E,aACpBk7C,EAAK5/H,OAAS,GAAK4/H,EAAKr6H,MAAMo6H,EAAez2H,E,MAE7CqD,EAAOm4E,WAAai7C,C,CAIxB,OAAOpzH,CACT,GACF,EAQA,4B,8CAySA,QAzSwC,QAWtC,YAAA3F,WAAA,SAAW/D,EAAa8pD,QAAA,IAAAA,IAAAA,EAAA,IACtBttD,KAAKstD,IAAMA,EACXttD,KAAKwK,SAASxK,KAAM,MAAOA,KAAKwgI,OAChCxgI,KAAKwK,SAASxK,KAAM,SAAUA,KAAKskB,gBACnCtkB,KAAKwK,SAASxK,KAAM,QAASA,KAAKygI,eAC1B,IAAAv9C,EAAe51B,EAAG,GAAdr1C,EAAWq1C,EAAG,OAC1BttD,KAAKiY,OAASA,EACdjY,KAAKkjF,GAAKA,EACVljF,KAAKynH,KAAOn6D,EAAIm6D,OAAQvkC,aAAE,EAAFA,EAAIuR,WAC9B,EAEA,YAAAgsC,cAAA,SAAcj9H,EAAoBqG,GAAlC,gBAAkC,IAAAA,IAAAA,EAAA,IAChC,IAAMmhF,EAAOhrF,KACPkO,EAAOrE,EAAK1D,gBAAkB,GAC9B0K,EAAW3C,EAAK+H,QAAO,SAAA/H,GAAQ,OAAC1K,EAAOG,IAAIuK,EAAKzJ,IAAjB,IAC/Bi8H,EAAST,GAAgBz8H,GACzBm9H,EAAYV,GAAgB/xH,GAAM+H,QAAO,SAAAk2G,GAAM,OAAAuU,EAAO77H,QAAQsnH,IAAO,CAAtB,IACrDtiH,EAAK+2H,SAAW/2H,EAAK+2H,SAAW,IAAI77H,OAAO47H,GAC3C9vH,EAAS4E,SAAQ,SAAAwwG,GAAM,SAAK3hG,eAAe2hG,EAAIj7B,EAAMnhF,EAA9B,IACvBrG,EAAO+B,MAAK,SAAAJ,GAAS,SAAKq7H,MAAMr7H,EAAX,GACvB,EAEA,YAAA07H,gBAAA,SAAgBv/F,EAAYz3B,G,aAAZ,IAAAy3B,IAAAA,EAAA,SAAY,IAAAz3B,IAAAA,EAAA,IAC1BA,EAAK+2H,QAAUX,GAAgBjgI,MACzB,MAAuBA,KAArBynH,EAAI,OAAEvkC,EAAE,KAAE3kE,EAAM,SAClBuiH,EAAO59C,aAAE,EAAFA,EAAI0kC,IACXmZ,GAAUtZ,aAAI,EAAJA,EAAMuZ,YAAa,CAAC,EAC9BC,EAASjhI,KAAKkhI,YAAY5/F,EAAOz3B,GACjCs3H,EAAUjB,GAAsBe,EAAQF,EAASl3H,GAC/C,EAAqBA,EAAI,YAAzBs2H,OAAW,IAAG,GAAC,EAAC,EAGxBn3G,OAAO/nB,KAAKk/H,GAAa1qH,SAAQ,SAAAnL,GAC/B,IAAMi2H,EAAOJ,EAAY71H,GACzB,GAAIi2H,EAAK5/H,OAAQ,CAEf,IAAM,GAAemgI,aAAI,EAAJA,EAAMM,SAAS,WAAI92H,MAAS,GAE7C,EAAa3J,QACf4/H,EAAK9qH,SAAQ,SAAAie,GACX,EAAaje,SAAQ,SAAAm2E,GACnB,IAAMy1C,EAAUz1C,EAAKroF,QAErB89H,EAAQ57H,IAAI,YAAa,CAAC,WAAIiuB,EAAI1sB,WAAWsD,MAC7Cw2H,EAAMn1C,SAASrnF,IAAI+8H,EACrB,GACF,G,CAGN,IAEArhI,KAAKkG,MAAMi7H,EAASt3H,GACpBq5E,SAAAA,EAAIp/E,QAAQ,oBAAqBya,EAAQ1U,EAAMy3B,GACH,QAA3C,GAAD,EAAC/iB,GAAyB+iH,0BAAkB,gBAC9C,EAEA,YAAAh9G,eAAA,SAAehU,EAAoB06E,EAAmBnhF,GAAtD,WAGE,QAHoD,IAAAA,IAAAA,EAAA,IAG/CyG,EAAL,CAIM,IAAEm3G,EAAaznH,KAAT,KAAEkjF,EAAOljF,KAAL,GACVuhI,EAAS13H,EAAK2+G,WAAa3+G,EAAK0/G,SAGtC,GAFAj5G,EAAQkxH,SAAWxhI,MAEduhI,EAAQ,CAEX,IAAM,EAAKjxH,EAAQ05G,QACb7uD,EAAO+nB,EAAGu+C,UAAU91C,SACpBD,EAAQxI,EAAG0kC,IAAIj8B,SACf+1C,GAAkB73H,EAAK+2H,SAAW,IAAI/7H,QAAQ,GAAM,SAC1C4iH,EAAOA,EAAKuZ,UAAY,CAAC,GAC1B,GAGf,IAAMW,EACJD,EACIh2C,EAAMtmF,OACJsmF,EAAMz1E,QAAO,SAAA2P,GAAK,OAAAA,EAAEi6G,eAAeG,kBAAoB,WAAI,EAAzC,IAClBn2H,GAEF,GAINsxD,EAAK/1D,OAAOu8H,EAAa78H,KAAI,SAAA8mF,GAAQ,OAAAA,EAAKi0C,eAAep8H,GAAG,EAAvB,KAEhC6M,EAAQg9C,IAAIk7D,YACftlC,EAAGiC,SAASjD,IAAI,6BAA8B,CAC5C37D,OAAQjW,IAEVA,EAAQA,UACRA,EAAQxM,QAAQ,WAChBo/E,EAAGp/E,QAAQ,mBAAoBwM,IAGnBA,EAAQ+0E,aAChB5vE,SAAQ,SAAAmsH,GAAM,SAAKt9G,eAAes9G,EAAI52C,EAAMnhF,EAA9B,G,CAItB,IAAM6X,EAAQpR,EAAQ+0E,aACtBnC,EAAG53E,cAAcoW,GACjBwhE,EAAG53E,cAAcgF,GACjB4yE,EAAG53E,cAAcgF,EAAQ3M,IAAI,YAC7B2M,EAAQuxH,c,CACV,EAGA,YAAA18H,MAAA,SAAM2H,EAAqCjK,GACjC,IAEJsC,EAFImoD,EAAQzqD,EAAQoC,WAAU,IAC5Bi+E,EAAK51B,EAAI41B,GAET4+C,EAAK5+C,EAAGuR,WAAWstC,eACzBl/H,EAAQqgF,GAAKA,EACbrgF,EAAQoV,OAASq1C,EAAIr1C,OACrBpV,EAAQk/H,eAAiBD,EACzBj/H,EAAQ4kH,KAAOn6D,EAAIm6D,KAEnB,IAAK,IAAI,EAAK,EAAG,EAAKqa,EAAGnhI,OAAQ,IAAM,CAErC,GADamhI,EAAG,GAAIx3H,IACRwC,EAAMtK,KAAM,CACtB2C,EAAQ28H,EAAG,GAAI38H,MACf,K,EAeJ,OAVKA,IACHA,EAAQ28H,EAAGA,EAAGnhI,OAAS,GAAGwE,MAC1B+9E,GACEp2E,EAAMtK,MACN0gF,EAAGuC,WAAW,0BAAmB34E,EAAMtK,KAAI,eAAe,CACxDsK,MAAK,EACLjK,QAAO,KAIN,IAAIsC,EAAM2H,EAAOjK,EAC1B,EAEA,YAAAq+H,YAAA,SAAYx5H,EAAe4lD,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAE41B,EAAaljF,KAAX,GAAEynH,EAASznH,KAAL,KACV8gI,EAAO59C,EAAG0kC,IACVqZ,EAAS/9C,EAAG8+C,OAAOC,UAAUv6H,GAInC,GAFA,WAAkBu5H,EAAO/qD,KAAO+qD,EAAO3gG,IAAKmnF,EAAMya,eAAgB50E,GAE9D2zE,EAAO3gG,KAAOwgG,IAASxzE,EAAIk7D,UAAW,CACVl7D,EAAG,GAAzB,IAAO60E,EAAU,GAAK70E,EAAxB,QACNwzE,EAAKsB,cAAcnB,EAAO3gG,IAAK,SAC1B6hG,GAAU,CACbx7H,OAAQ,I,CAIZ,OAAOs6H,EAAO/qD,IAChB,EAGA,YAAA5xE,IAAA,SAAId,EAAsB8pD,GAA1B,gBAA0B,IAAAA,IAAAA,EAAA,IACxBA,EAAIszE,QAAU,SAAKtzE,EAAIszE,SAAW,IAAK,GAAGX,GAAgB3yE,EAAInnD,iBAAe,IAEzE,IAAA+K,UAAS1N,GACXA,EAASxD,KAAKkhI,YAAY19H,EAAQ8pD,IACzB,IAAApsD,SAAQsC,KACjBA,EAAS,MAAIA,GAAM,IACZiS,SAAQ,SAACgxE,EAAc3lF,GAC5B,IAAI,IAAAoQ,UAASu1E,GAAO,CAClB,IAAM62C,EAAQ,EAAK4D,YAAYz6C,EAAMn5B,GACpC9pD,EAAe1C,IAAS,IAAAI,SAAQo8H,KAAWA,EAAM38H,OAAS,KAAO28H,C,CAEtE,IAGF,IAAM+E,GAAS,IAAAnhI,SAAQsC,GAEvBA,GAAU6+H,EAAS7+H,EAAS,CAACA,IAASyS,OAAOuvE,SAAS1gF,KAAI,SAACK,GAAe,SAAKm9H,WAAWn9H,EAAhB,IAE1E3B,EAAS6+H,GAAS,IAAA92C,SAAQ/nF,EAAe,GAAKA,EAAO,GAErD,IAAM0J,EAAS,yBAA+BlN,KAAM,CAACwD,EAAe8pD,IAEpE,OADAttD,KAAKuiI,WAAar1H,EACXA,CACT,EAKA,YAAAo1H,WAAA,SAAWE,GAET,GAAIA,EAAI/9H,KAAO+9H,EAAIC,KAAM,OAAOD,EAC1B,IAAEt/C,EAAoBljF,KAAlB,GAAE,EAAgBA,KAAhBiY,OACJkkH,QADU,IAAG,GAAC,EAAC,GACK,UACxBh3H,EAAQq9H,EAEZ,GAAIrG,EAAW,CAEb,IAAMuG,EAAUvG,EADhBh3H,EAAQ,MAAKA,IAETu9H,KACF,IAAAn9H,MAAKJ,GAAO,SAACc,EAAK5E,GAAQ,cAAO8D,EAAM9D,EAAb,KAC1B,IAAAsF,QAAOxB,EAAOu9H,G,CAKlB,GAAIv9H,EAAMw9H,UAAkC,iBAAfx9H,EAAM2jB,MAAmB,EACpD3jB,EAAQ,MAAKA,IACP2jB,MAAQ,MAAK3jB,EAAM2jB,OACzB,IAAM2+F,EAAOvkC,EAAGuR,WAER+pC,EADOt7C,EAAG8+C,OACW,YAE7B,IAAAz8H,MAAKJ,GAAO,SAACuC,EAAOrG,IACb,IAAAkV,UAAS,CAAC,QAAS,QAASlV,WAAa8D,EAAM9D,EACtD,IACQ,IAAAynB,EAAU3jB,EAAK,MACjB44H,EAAQj1G,EAAMyJ,gBACbzJ,EAAMyJ,gBACNptB,EAAM2jB,MACb,IAAM1kB,EAAMo6H,EAAW1B,mBAAmBh0G,GAC1C3jB,EAAM6B,WAAa5C,EAAI0I,MAEnBixH,IACF54H,EAAMkgF,WAAa04C,GAEhB54H,EAAM3C,KAECilH,EAAKO,QAAQ7iH,EAAM3C,QAC7B2C,EAAMsO,QAAUtO,EAAM3C,YACf2C,EAAM3C,MAHb2C,EAAM3C,KAAO,YAMf,IAAAmE,QAAOxB,EAAOf,EAAI0kB,M,CAGpB,OAAO3jB,CACT,EAEA,YAAAq7H,MAAA,SAAMr7H,EAAkB45E,EAASl1E,QAAA,IAAAA,IAAAA,EAAA,IACzB,IAAE49G,EAAaznH,KAAT,KAAEkjF,EAAOljF,KAAL,GACV2c,EAAQxX,EAAMsjF,WACdm6C,EAAc1/C,GAAMA,EAAG0D,YAAY27B,iBAIzC,GAHAkF,GAAQA,EAAKob,UAAUC,aAAa39H,KAG/B,IAAAG,SAAQqX,KAAWimH,GAAe1/C,GAAMA,EAAGv/E,KAAOu/E,EAAG0D,YAAY86B,aAAe73G,EAAK2+G,UAAW,CACnG,IAAM,EAAOrjH,EAAMV,IACnBy+E,EAAG0kC,IAAImb,aAAa,EAAMpmH,GAC1BxX,EAAM26E,SAAS,CAAC,GAChB36E,EAAMmgB,SAAS,E,CAGjBngB,EAAM69H,UAAU,CAAEC,WAAW,GAE/B,EA6BF,EAzSA,CAAwC,M,ugBClElCC,GAAa,EACbC,GAAU,EAoBhB,eAsBE,WAAYr6G,EAAYjf,QAAA,IAAAA,IAAAA,EAAA,IAAxB,MACE,YAAMif,EAAOjf,IAAK,KACV,EAAgBA,EAAI,OAApBoO,OAAM,IAAG,GAAC,EAAC,EACbtO,EAAO,EAAKhG,IAAI,QAChB+oE,EAAQ,EAAK/oE,IAAI,SAElBgG,EAEO+iE,GACV,EAAKjnE,IAAI,QAASkE,GAFlB,EAAKlE,IAAI,OAAQinE,GAKnB,IAAM02D,EAAa,EAAKz/H,IAAI,QACpB0/H,EAAeprH,EAAM,WACvBqrH,EAAUD,EAAaA,EAAWD,GAAcG,EAASF,WAAWD,G,OAC1E,EAAK39H,IAAI,OAAQ69H,GACjB,EAAKpgD,GAAKr5E,EAAKq5E,G,CACjB,CAuHF,OA9JsC,QACpC,YAAAp8E,SAAA,WACE,MAAO,CACL6C,KAAM,GACN+iE,MAAO,GACPlqE,KAAM0gI,GACNhkF,QAAQ,EACRomE,SAAS,EACTke,WAAW,EACXnb,OAAO,EAEX,EA8BA,YAAAob,KAAA,WACE,OAAOzjI,KAAK2D,IAAI,UAAYw/H,EAC9B,EAEA,YAAAO,QAAA,WACE,OAAO1jI,KAAK2D,IAAI,UAAYu/H,EAC9B,EAEA,YAAAS,YAAA,SAAY95H,QAAA,IAAAA,IAAAA,EAAA,IACF,IAAA2D,EAAW3D,EAAI,OACjBF,EAAO3J,KAAK2D,IAAI,QAClBsgF,EAAM,GAEV,OAAQjkF,KAAK2D,IAAI,SACf,KAAKu/H,GACHj/C,EAAM,IACN,MACF,KAAKk/C,GACHl/C,EAAM,IAIV,OAAOA,GAAOz2E,EAASA,EAAO7D,GAAQA,EACxC,EAUA,YAAAie,SAAA,WACE,OAAO5nB,KAAK2jI,aACd,EAUA,YAAAC,SAAA,WACE,OAAO5jI,KAAK2D,IAAI,QAClB,EAWA,YAAAkgI,SAAA,SAASn3D,GACP,OAAO1sE,KAAKyF,IAAI,QAASinE,EAC3B,EAMA,YAAAo3D,UAAA,WACE,OAAO9jI,KAAK2D,IAAI,SAClB,EAMA,YAAAogI,UAAA,SAAUr8H,GACR,OAAO1H,KAAKyF,IAAI,SAAUiC,EAC5B,EAEA,YAAA4F,OAAA,SAAOzD,QAAA,IAAAA,IAAAA,EAAA,IACG,IAAAq5E,EAAOljF,KAAI,GACfgB,EAAM,2BAA4BhB,KAAM,CAAC6J,IACvC/C,GAAW,IAAAoG,QAAOlN,KAAM,YAE9B,GAAIkjF,GAAMA,EAAG0D,YAAY47B,cAAe,EACtC,IAAA/sG,SAAQ3O,GAAU,SAACY,EAAOrG,GACpBL,EAAIK,KAASqG,UACR1G,EAAIK,EAEf,IAEIL,EAAI0rE,QAAU1rE,EAAI2I,aACb3I,EAAI0rE,MAGb,IAAMs3D,GAAS,IAAA/iI,MAAKD,GAAKL,OAEV,IAAXqjI,GAAgBhjI,EAAI2I,OACtB3I,EAAMA,EAAI2I,MAGG,IAAXq6H,GAAgBhjI,EAAI2I,MAAQ3I,EAAIwB,OAClCxB,EAAMhB,KAAK2jI,c,CAIf,OAAO3iI,CACT,EAQO,EAAAqiI,WAAP,SAAkB15H,GAChB,MAAO,UAAGA,GAAO2+E,OAAO74E,QAAQ,uBAAwB,IAC1D,EA/IgB,EAAAyzH,WAAaA,GACb,EAAAC,QAAUA,GA+I5B,C,CA9JA,CAAsC,M,YAgKtCI,GAASljI,UAAUgN,YAAc,O,2fCrL3B42H,GAAU,SAAC7zH,EAAgB8zH,GAC/B,OAAO9zH,EAAKuF,QACV,SAACwrG,EAAK16B,EAAM3/D,GACV,OAAOq6F,EAAIp8G,OAAOk/H,GAAQ7zH,EAAK9P,MAAMwmB,EAAI,GAAI,UAAGo9G,GAAI,OAAGz9C,IACzD,GACA,CAACy9C,GAEL,EAEA,4B,8CAyCA,QAzCuC,QACrC,YAAAtyH,QAAA,SAAQpK,GACN,MAAO,UAAGA,EAAKmC,KAAI,YAAInC,EAAKhF,MAAQ,cACtC,EAEA,YAAA2hI,aAAA,WACE,OAAO,IAAAluH,QACLjW,KAAKwD,QACL,SAACijF,GAAS,OAAAA,EAAK9iF,IAAI,YAAc8iF,EAAK9iF,IAAI,UAAhC,GAEd,EAEA,YAAAygI,SAAA,SAAS,G,IAAEC,QAAF,MAAsB,CAAC,EAAC,GAAZ,WACnB,OAAO,IAAApuH,QAAOjW,KAAKwD,QAAQ,SAACijF,GAAS,OAACA,EAAK9iF,IAAI,UAAV,IAAsBsS,QAAO,SAACwwE,GACjE,OAAA49C,EAAa59C,EAAK9iF,IAAI,UAAY,CAAlC,GAEJ,EAEA,YAAAq8H,cAAA,SAAc/6H,EAAgC4E,QAAA,IAAAA,IAAAA,EAAA,IAC5C,IAAMqD,EAAmB,GAIzB,OAHajI,GAAcjF,MACtByV,SAAQ,SAAC/B,GAAa,OAAAxG,EAAOvI,KAAK+O,EAASiwH,YAAY95H,GAAjC,IAC3BA,EAAKkH,MAAQ7D,EAAO6D,OACb7D,EAAOuiD,KAAK,IAAI64B,MACzB,EAEA,YAAAq7C,YAAA,SAAY95H,QAAA,IAAAA,IAAAA,EAAA,IACF,IAAAy6H,EAAuBz6H,EAAI,YAAdoG,EAAUpG,EAAI,MAC/BqD,EAAmB,GACjBiuD,EAAOn7D,KAAK8E,KAAI,SAACsD,GAAM,OAAAA,EAAEu7H,YAAY95H,EAAd,IAAqBkH,OAUlD,OARIuzH,EACFnpE,EAAK1lD,SAAQ,SAACo8B,EAAK/qB,GACjB5Z,EAASA,EAAOnI,OAAOk/H,GAAQ9oE,EAAK76D,MAAMwmB,EAAI,GAAI+qB,GACpD,IAEA3kC,EAASiuD,EAGJlrD,EAAQ/C,EAASo3H,EAAcp3H,EAAOuiD,KAAK,KAAOviD,EAAOuiD,KAAK,GACvE,EACF,EAzCA,CAAuC,M,YA2CvCgyE,GAAUphI,UAAU8E,MAAQ,G,kvBCgB5B,YAqBE,WAAYshB,EAAuBy8D,GAAnC,MACE,YAAMz8D,IAAK,KACL,EAAmB,EAAKzf,WAAtBuf,EAAM,SAAE5c,EAAI,O,OACnB,EAAKhG,IAAI,OAAS,EAAK8B,IAAI,KAAMkE,GAC9B4c,GACF,EAAK4qE,UAAU5qE,GAEjB,EAAK28D,GAAKA,E,CACZ,CAwOF,OArQmC,QAMjC,YAAAp8E,SAAA,WACE,MAAO,CACLtE,KAAM,OACNkqE,MAAO,GACP/iE,KAAM,GACNu0D,KAAM,GACN41C,KAAM,EACNpsG,MAAO,GACPqkH,QAAS,GACTh9C,YAAa,GACbw1D,YAAY,EACZ1hI,QAAS,GAEb,EAYA,YAAAsuF,UAAA,SAAU5qE,GACR,GAAIA,EAAQ,CACJ,MAAyCvmB,KAAKgH,WAA5C,EAAI,OAAEu9H,EAAU,aAASC,EAAS,QAC1CxkI,KAAKumB,OAASA,EACdvmB,KAAKwF,MAAM,UACX,IAAMi/H,EAAcF,EAAa,iBAAU,GAAS,4BAAqB,GACzEvkI,KAAKwK,SAAS+b,EAAQk+G,EAAazkI,KAAK0kI,eACxC,IAAMh9H,EAAQ88H,GAAaxkI,KAAKwvD,aAC/B,IAAAo6B,aAAYliF,IAAU1H,KAAKyF,IAAI,CAAEiC,MAAK,GAAI,CAAEkG,QAAQ,G,CAEzD,EAMA,YAAAo8G,MAAA,WACE,OAAOhqH,KAAK2D,IAAI,KAClB,EAMA,YAAAqkH,QAAA,WACE,OAAOhoH,KAAK2D,IAAI,OAClB,EAMA,YAAA+oF,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,OAClB,EAQA,YAAAigI,SAAA,SAAS/5H,G,WAAA,IAAAA,IAAAA,EAAA,IACC,MAAkBA,EAAI,OAAtB86H,OAAM,IAAG,GAAI,EACfr6H,EAAKtK,KAAKgqH,QACVrgH,EAAO3J,KAAK2D,IAAI,UAAY3D,KAAK0sF,UACvC,OAAQi4C,IAAiB,QAAP,EAAA3kI,KAAKkjF,UAAE,eAAE5vB,EAAE,qCAA8BhpD,MAAUX,CACvE,EAOA,YAAA6lD,SAAA,WACE,OAAOxvD,KAAK4kI,gBACd,EASA,YAAAj1E,SAAA,SAASjoD,EAAYmC,G,WAAA,IAAAA,IAAAA,EAAA,IACnB,IAAMg7H,EAAsC,CAAC,EACvCl1E,EAAW3vD,KAAK2D,IAAI,YAEtBgsD,EACFA,EAAS,CACPjoD,MAAK,EACL66E,OAAe,QAAP,EAAAviF,KAAKkjF,UAAE,eAAEzwB,YACjBqyE,MAAO9kI,KACPslF,UAAWtlF,KAAKumB,OAChB+2F,UAAWzzG,EAAKyzG,WAKhBzzG,EAAKyzG,UACPunB,EAAUh8C,YAAa,GAGzB7oF,KAAK+kI,eAAer9H,EAAOm9H,IAEN,IAAjBh7H,EAAKyzG,UACPt9G,KAAK+kI,eAAe,IACpB/kI,KAAK+kI,eAAer9H,IAExB,EAKA,YAAAs9H,WAAA,WACE,OAAOhlI,KAAK2D,IAAI,UAClB,EAKA,YAAAkpH,WAAA,WACE,OAAQ7sH,KAAK2D,IAAI,YAAgC,EACnD,EAOA,YAAAud,UAAA,SAAU5W,GAAV,WACQ69G,GAAQ,IAAAxV,OAAMroG,GAAMA,EAAKtK,KAAKwvD,WACpC,OAAOxvD,KAAK6sH,aAAa52G,QAAO,SAAAkgB,GAAK,SAAK8uG,YAAY9uG,KAAOgyF,CAAxB,IAA+B,EACtE,EAOA,YAAA8c,YAAA,SAAYhnE,GACV,OAAOA,EAAO3zD,IAAO2zD,EAAev2D,KACtC,EASA,YAAAw9H,eAAA,SAAe56H,EAA0BT,G,WAAA,IAAAA,IAAAA,EAAA,IAC/B,MAAkBA,EAAI,OAAtB86H,OAAM,IAAG,GAAI,EACf1mE,GAAU,IAAA/sD,UAAS5G,GAAMtK,KAAKkhB,UAAU5W,GAAMA,EAC9C66H,EAAQnlI,KAAKilI,YAAYhnE,GACzByO,EAAQzO,EAAOyO,OAAUzO,EAAet0D,MAAQw7H,EAChDC,EAAWplI,KAAK0sF,UACtB,OAAQi4C,IAAiB,QAAP,EAAA3kI,KAAKkjF,UAAE,eAAE5vB,EAAE,sCAA+B8xE,EAAQ,YAAID,MAAaz4D,CACvF,EAEA,YAAA5jD,MAAA,WACE,OAAO9oB,KAAKgH,UACd,EAEA,YAAA09H,cAAA,W,MACQh9H,EAAQ1H,KAAK4kI,iBACnB5kI,KAAKyF,IAAI,CAAEiC,MAAK,GAAI,CAAE29H,WAAY,IAC3B,QAAP,EAAArlI,KAAKkjF,UAAE,SAAEp/E,QAAQ,eAAgB,CAC/BghI,MAAO9kI,KACPslF,UAAWtlF,KAAKumB,QAEpB,EAEA,YAAAq+G,eAAA,W,MAIMl9H,EAHEiC,EAAO3J,KAAK0sF,UACZnmE,EAASvmB,KAAKumB,OACdipC,EAAWxvD,KAAK2D,IAAI,YAgB1B,OAZE+D,EADE8nD,EACMA,EAAS,CACf+yB,OAAe,QAAP,EAAAviF,KAAKkjF,UAAE,eAAEzwB,YACjBqyE,MAAO9kI,KACPslF,UAAW/+D,IAEJvmB,KAAK2D,IAAI,cACV4iB,EAAO5iB,IAAIgG,GAGX4c,EAAO++G,gBAAgB37H,IAGzB,IAAAigF,aAAYliF,GAAiB,GAARA,CAC/B,EAEA,YAAAq9H,eAAA,SAAer9H,EAAYmC,G,WAAA,IAAAA,IAAAA,EAAA,IACnB,IAAE0c,EAAuBvmB,KAAjB,OAAEgH,EAAehH,KAAL,WACpB2J,EAAO3J,KAAK0sF,UAClB,KAAI,IAAA9C,aAAYliF,GAAhB,CACA,IAAI69H,EAAa79H,EAQjB,GANc,UAAVA,EACF69H,GAAa,EACM,SAAV79H,IACT69H,GAAa,GAGQ,aAAnBvlI,KAAKgoH,UAA0B,CACzB,IAAAwd,EAA0Bx+H,EAAU,UAAzBy+H,EAAez+H,EAAU,WAExCu+H,KAAe,IAAA37C,aAAY47C,KAC7BD,EAAaC,GAGVD,IAAe,IAAA37C,aAAY67C,KAC9BF,EAAaE,E,CAIbzlI,KAAK2D,IAAI,cACX4iB,EAAO9gB,IAAIkE,EAAM47H,EAAY17H,GAE7B0c,EAAO85G,gBAAa,MAAI12H,GAAO47H,EAAU,GAAI17H,EAxBjB,CA0BhC,EAEA,YAAA67H,kBAAA,SAAkBh+H,EAAYi+H,EAAc97H,QAAd,IAAA87H,IAAAA,GAAA,QAAc,IAAA97H,IAAAA,EAAA,IAC1C,IAAM+7H,EAAQ,CAAEl+H,MAAK,GACrB1H,KAAKyF,IAAImgI,EAAO,SAAK/7H,GAAI,CAAEg/E,WAAY,KAGnC88C,IACF3lI,KAAKyF,IAAI,QAAS,GAAIoE,GACtB7J,KAAKyF,IAAImgI,EAAO/7H,GAEpB,EAEA,YAAAg8H,aAAA,WACE,IAEIn+H,EAFE6e,EAASvmB,KAAKumB,OACd5c,EAAO3J,KAAK0sF,UAGlB,GAAInmE,EAAQ,CACV,IAAMzZ,EAAQyZ,EAAO5iB,IAAI,cACzB+D,EAAQ1H,KAAK2D,IAAI,cAAgB4iB,EAAO5iB,IAAIgG,GAAQmD,EAAMnD,E,CAG5D,OAAOjC,GAAS1H,KAAK2D,IAAI,UAAY3D,KAAK2D,IAAI,UAChD,EACF,EArQA,CAAmC,MCnEnC,kBAGE,WAAYsU,QAAA,IAAAA,IAAAA,EAAA,IACVjY,KAAKiY,OAASA,CAChB,CAwBF,OAnBE,YAAA6tH,MAAA,SAAMr/G,EAAgCy8D,GACpC,OAAO,IAAAhyE,UAASuV,GAAQzmB,KAAK+lI,gBAAgBt/G,EAAMy8D,GAAM,IAAI,GAAMz8D,EAAMy8D,EAC3E,EAEQ,YAAA6iD,gBAAR,SAAwBp8H,EAAcu5E,GACpC,IAAMliF,EAAuB,CAC3B2I,KAAMA,EACNnH,KAAM,QAGR,GACO,WADCmH,EAEJ3I,EAAIwB,KAAO,SACXxB,EAAI+qH,SAAU,EACd/qH,EAAI6B,QAAU7C,KAAKiY,OAAO+tH,cAG9B,OAAO,IAAI,GAAMhlI,EAAKkiF,EACxB,EACF,EA7BA,G,ghBCEA,YAKE,WAAY8H,EAAyBnoF,GAArC,I,EAAA,Q,EACE,YAAMmoF,IAAK,MACN9H,GAAKrgF,EAAQqgF,GAClB,EAAK14E,SAAS,EAAM,MAAO,EAAKy7H,WAChC,EAAKz7H,SAAS,EAAM,QAAS,EAAK07H,aAClC,IAAMpyC,EAAY,QAAP,IAAK5Q,UAAE,eAAEijD,OACdC,EAAStyC,aAAE,EAAFA,EAAIlN,Y,OACnB,EAAKy/C,GAAK,IAAI,GAAaD,G,CAC7B,CA0CF,OAvDoC,QAelC,YAAAF,YAAA,SAAYl7C,EAAyB,G,IAAE,QAAF,MAAwD,CAAC,EAAC,GAAxD7kF,qBAAc,IAAG,KAAE,GACzCsP,SAAQ,SAAAtQ,GAAS,OAAAA,EAAMrB,QAAQ,SAAd,GAClC,EAEA,YAAAmiI,UAAA,SAAU9gI,GACRA,EAAM+9E,GAAKljF,KAAKkjF,GAChB,IAAM38D,EAASvmB,KAAKumB,OAEhBA,IACFphB,EAAMohB,OAASA,EAEnB,EAEA,YAAA4qE,UAAA,SAAU5qE,GACRvmB,KAAKumB,OAASA,EACdvmB,KAAKwD,OAAOiS,SAAQ,SAAAqvH,GAAS,OAAAA,EAAM3zC,UAAU5qE,EAAhB,GAC/B,EAIA,YAAAjiB,IAAA,SAAId,EAAiB8pD,GACnB,GAAcjoD,MAAV7B,EAAJ,CAGM,IAAE+iB,EAAevmB,KAAT,OAAEkjF,EAAOljF,KAAL,GAElB,IAAI,IAAAkB,SAAQsC,GAAS,CAEnB,IADA,IAAI8iI,EAAkB,GACbzmI,EAAI,EAAG4rB,EAAMjoB,EAAO7C,OAAQd,EAAI4rB,EAAK5rB,IAAK,CACjD,IAAM,EAAQ2D,EAAO3D,GACrBymI,EAAOzmI,GAAK,aAAiB,GAAQ,EAAQG,KAAKqmI,GAAGP,MAAM,EAAO5iD,GAClEojD,EAAOzmI,GAAGsxF,UAAU5qE,E,CAEtB,OAAO,YAAMjiB,IAAG,UAACgiI,EAAQh5E,E,CAE3B,IAAMw3E,EAAQthI,aAAkB,GAAQA,EAASxD,KAAKqmI,GAAGP,MAAMtiI,EAAe0/E,GAG9E,OAFA4hD,EAAM3zC,UAAU5qE,GAET,YAAMjiB,IAAG,UAACwgI,EAAOx3E,E,CAC1B,EACF,EAvDA,CAAoC,M,48BCkC9B3zC,GAAe,SAACiQ,GACpB,OAAOA,EAAIna,QAAQ,sBAAuB,OAC5C,EAEMmzH,GAAc,SAAC1/C,GAAoB,SAAEA,aAAE,EAAFA,EAAI0D,YAAY27B,iBAAlB,EAE5BgkB,GAAY,iBACZC,GAAa,YACbC,GAAY,WACZC,GAAgB,gBAChBC,GAAY,mBACZC,GAAkB,UAAGD,GAAS,WA+D3C,4B,8CA07DA,QA17DuC,QAIrC,sBAAI,uBAAQ,C,IAAZ,W,MACE,OAAO,EAAP,CACElzH,QAAS,MACTjR,KAAM,GACNmH,KAAM,GACNk9H,WAAW,EACXjlF,WAAW,EACXiyE,WAAW,EACXiT,UAAU,EACVC,UAAU,EACV,mBAAoB,GACpB,kBAAmB,GACnBC,WAAY,GACZC,eAAe,EACfC,UAAU,EACVlsC,WAAW,EACXmsC,UAAU,EACVC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,QAAQ,EACRzJ,MAAM,EACN7+G,MAAO,GACPs/E,OAAQ,GACRx/E,QAAS,GACTm7E,KAAM,GACNv9E,MAAO,GACP6Z,OAAQ,GACRC,QAAS,GACTo+C,OAAQ,GACR,eAAgB,GAChB,gBAAiB,GACjB7tE,WAAY,CAAC,EACbs/H,OAAQ,CAAC,KAAM,SACfvgF,UAAW,GACXyhF,MAAO,GACPvqC,QAAS,OACRwpC,IAAY,EACb,EAACD,IAAa,EACd,EAACE,IAAgB,EACjB,EAAAre,OAAO,EACP,EAAAC,SAAU,CAAC,SAAU,Q,CAEzB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAOtoH,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAKA,YAAAq+C,KAAA,WAAQ,EAQR,YAAAylF,QAAA,SAAQnrD,EAAkB50E,EAAY8G,GAAgB,EAKtD,YAAA8B,QAAA,WAAW,EAkBX,YAAA/I,WAAA,SAAWuhB,EAAYwkC,GAAvB,gBAAW,IAAAxkC,IAAAA,EAAA,SAAY,IAAAwkC,IAAAA,EAAA,KACrB,IAAAg1B,SAAQtiF,KAAM,gBAAiB,cAAe,iBAC9C,IAAMkjF,EAAK51B,EAAI41B,GAGT3kE,EAASve,KAAKue,SACdmpH,EAAanpH,aAAM,EAANA,EAAQvX,WACrB++C,EAAY/lD,KAAK2D,IAAI,aAG3B,GAFAoiD,GAAa/lD,KAAKyF,IAAI,aAAa,IAAAvE,SAAQ6kD,GAAaA,EAAY,CAACA,IAEjE2hF,GAAcA,EAAW3hF,YAAcA,EAAW,CACpD,IAAM,EAAwC,CAAC,EACzC4hF,EAAcD,EAAW3hF,UAC/B4hF,EAAYlyH,SAAQ,SAAAgR,GAAQ,OAAC,EAAQA,GAAQlI,EAAO5a,IAAI8iB,EAA5B,IAC5B,EAAQs/B,UAAY4hF,EACpB3nI,KAAKyF,IAAI,SAAK,GAAYqjB,G,CAuC5B,GAnCIwkC,GAAOA,EAAIr1C,QAAUq1C,EAAIr1C,OAAOmkH,aAAcv3H,QAAQ7E,KAAK2D,IAAI,aAAgB,GACjF3D,KAAKyF,IAAI,QAAQ,GAGnB6nD,EAAI41B,GAAKA,EACTljF,KAAKstD,IAAMA,EACXttD,KAAKkjF,GAAKA,EACVljF,KAAKmwF,MAAQ7iC,EAAI6iC,MACjBnwF,KAAKiY,OAASq1C,EAAIr1C,QAAU,CAAC,EAC7BjY,KAAKyF,IAAI,aAAc,UACjB,IAAAyH,QAAOlN,KAAM,YAAYgH,YAAc,CAAC,GACxChH,KAAK2D,IAAI,eAAiB,CAAC,IAEjC3D,KAAKyiI,KAAOI,EAAUttB,SAASv1G,KAAMstD,GACrCttD,KAAK4nI,cACL5nI,KAAK6nI,iBACL7nI,KAAK8nI,aACL9nI,KAAK+nI,cACL/nI,KAAKgoI,kBACLhoI,KAAKwK,SAASxK,KAAM,gBAAiBA,KAAKioI,eAC1CjoI,KAAKwK,SAASxK,KAAM,iBAAkBA,KAAKkoI,YAC3CloI,KAAKwK,SAASxK,KAAM,oBAAqBA,KAAKmoI,aAC9CnoI,KAAKwK,SAASxK,KAAM,uBAAwBA,KAAKooI,YACjDpoI,KAAKyH,GAAG,iBAAkBzH,KAAKqoI,iBAC/BroI,KAAKyH,GAAG,SAAUzH,KAAKorH,YACvBprH,KAAKyH,GAAGm/H,GAAiB5mI,KAAKsoI,gBAC9BtoI,KAAKyF,IAAI,SAAU,IACnBzF,KAAK44F,MAAQ,GAGb,CAAC,UAAW,SAAU,cAAcnjF,SAAQ,SAAA9L,GAC1C,IAAMD,EAAS,qBAAuB,eAATC,EAAwB,SAAW,IAChE,EAAKa,SAAS,EAAK7G,IAAIgG,GAAOD,EAAO4+E,QAAQ,W,IAAC,sDAAY,SAAKqM,WAAU,MAAf,EAAI,IAAYhrF,GAASjJ,GAAI,GAA7B,GAC5D,KAEK4sD,EAAIk7D,UAAW,CAElB,IAAMsY,EAAO59C,GAAMA,EAAG0kC,IAChB,EAAmB5nH,KAAKgH,WAAtBwvB,EAAM,SAAEh0B,EAAI,OAChBg0B,GAAUsqG,GACZA,EAAKsB,cAAc5rG,EAAQ,CAAE+xG,kBAAkB,GAAQ,CAAE1lG,MAAO,cAAOrgC,KAGzExC,KAAKgjI,YACLhjI,KAAKgiD,OACLhiD,KAAKwoI,oBAAsBxoI,KAAKyoI,aAChCvlD,GAAMA,EAAGp/E,QAAQ,mBAAoB9D,K,CAEzC,EAEA,YAAAgjI,UAAA,SAAUn5H,QAAA,IAAAA,IAAAA,EAAA,IACA,IAAAq5E,EAAOljF,KAAI,GACbiqH,EAAK/mC,aAAE,EAAFA,EAAI57E,YACTy2H,EAAQ/9H,KAAKqlF,aACf4kC,IAAOjqH,KAAK0oI,UACdze,EAAG3lH,IAAIy5H,GACP9T,EAAG3lH,IAAItE,KAAK6/H,gBACZ7/H,KAAK0oI,SAAU,GAEjB7+H,EAAKo5H,WAAalF,EAAMj5H,KAAI,SAAAi6E,GAAK,OAAAA,EAAEikD,UAAUn5H,EAAZ,GACnC,EAEA,YAAAg4H,aAAA,WACU,IAAA3+C,EAAOljF,KAAI,GACbiqH,EAAK/mC,aAAE,EAAFA,EAAIv/E,IAAI,eACfsmH,IACFA,EAAG7kH,OAAOpF,KAAKqlF,cACf4kC,EAAG7kH,OAAOpF,KAAK6/H,uBACR7/H,KAAK0oI,QAEhB,EAEA,YAAAtd,WAAA,SAAW55G,EAAQ3H,GAAnB,WACQsD,EAAUnN,KAAK4F,qBAAuB,CAAC,GAC7C,IAAA3E,MAAKkM,GAASsI,SAAQ,SAAAgR,GAAQ,SAAKkuE,WAAWluE,EAAhB,IAC9B,CAAC,SAAU,OAAQ,UAAW,UAAUhR,SAAQ,SAAA9L,GAAQ,cAAOwD,EAAQxD,EAAf,KAEnD,IAAAorG,YAAW5nG,KACdnN,KAAK2oI,YAAY9+H,GACjB7J,KAAK4oI,mBAAmB,CAAEtjD,UAAWtlF,KAAMmN,QAAO,EAAEtK,QAASgH,IAEjE,EAEA,YAAA8+H,YAAA,SAAY9+H,GACJ,IAAEq5E,EAAcljF,KAAZ,GACV,CADsBA,KAAL,MACTkjF,GAAIztE,SAAQ,SAAAwwG,GAAM,OAAAA,GAAMA,EAAGsC,UAAU1+G,EAAnB,GAC5B,EAEA,YAAA++H,mBAAA,SAAmB9/G,GACjB9oB,KAAK8D,QAAQ6iI,GAAW79G,GACxB9oB,KAAKsoI,eAAex/G,EACtB,EAEA,YAAAw/G,eAAA,SAAex/G,GACb,IAAMvK,EAASve,KAAKue,SACpBA,GAAUA,EAAOza,QAAQ8iI,GAAiB99G,EAC5C,EAEA,YAAAu/G,gBAAA,WACEroI,KAAK20F,WAAW,UAClB,EAUA,YAAA0U,GAAA,SAAG7mG,GACD,QAAUxC,KAAK2D,IAAI,SAAWnB,EAChC,EAMA,YAAAsmB,MAAA,WACE,OAAO9oB,KAAKgH,UACd,EAMA,YAAAlG,MAAA,WACU,IAAAmE,EAAejF,KAAI,WAC3B,OAAOiF,EAAaA,EAAWJ,QAAQ7E,MAAQ,CACjD,EAQA,YAAA6oI,YAAA,SAAYnhI,GACV,OAAO1H,KAAKyF,IAAI,QAASiC,EAC3B,EAMA,YAAAk1F,YAAA,WACE,OAAO58F,KAAK2D,IAAI,UAAY,EAC9B,EAWA,YAAAiQ,KAAA,SAAK26F,G,MACGrhG,EAAsB,GACtB47H,EAAgB,QAAT,EAAA9oI,KAAKsiC,YAAI,eAAE3uB,IAAIC,KAAK26F,GAOjC,OANAu6B,SAAAA,EAAMvjI,MAAK,SAAA1F,GACT,IACMsF,EADM2jI,EAAKxgC,GAAGzoG,GACF6Y,KAAK,SACvBvT,GAAS+H,EAAOvI,KAAKQ,EACvB,IAEO+H,CACT,EAYA,YAAAu+E,SAAA,SAASjpF,GACP,IAAM0K,EAAsB,GACtB0G,EAAO,SAACyxE,GACZ,OAAAA,EAAW5vE,SAAQ,SAAAgxE,GACjBA,EAAK4iB,GAAG7mG,IAAS0K,EAAOvI,KAAK8hF,GAC7B7yE,EAAK6yE,EAAKpB,aACZ,GAHA,EAKF,OADAzxE,EAAK5T,KAAKqlF,cACHn4E,CACT,EAWA,YAAA6jG,QAAA,SAAQxC,G,MACArhG,EAAkB,QAAT,EAAAlN,KAAKsiC,YAAI,eAAE3uB,IAAIo9F,QAAQxC,GACtC,OAAOrhG,aAAM,EAANA,EAAQvM,QAAUuM,EAAOwL,KAAK,cAAyBrT,CAChE,EAYA,YAAA0jI,YAAA,SAAYvmI,GAGV,IAFA,IAAI+b,EAASve,KAAKue,SAEXA,IAAWA,EAAO8qF,GAAG7mG,IAC1B+b,EAASA,EAAOA,SAGlB,OAAOA,CACT,EAQA,YAAA7Z,SAAA,SAAS4gF,GACP,IAAIp4E,GAAU,EACd,IAAKo4E,EAAW,OAAOp4E,EACvB,IAAMxI,EAAW,SAAC2gF,IACfn4E,GACCm4E,EAAW5vE,SAAQ,SAAAgxE,GACbA,IAASnB,IAAWp4E,GAAU,IACjCA,GAAUxI,EAAS+hF,EAAKpB,aAC3B,GACJ,EAEA,OADA3gF,EAAS1E,KAAKqlF,cACPn4E,CACT,EAMA,YAAAg7H,WAAA,WACEloI,KAAK8D,QAAQ,WACf,EAUA,YAAAwsG,YAAA,SAAYl8F,GACV,IAAM42E,EAAOhrF,KAAKiF,WACZxB,EAAKunF,EAAKnmF,QAAQ7E,MAExB,OADAgrF,EAAK5lF,OAAOpF,MACLgrF,EAAK1mF,IAAI8P,EAAI,CAAE3Q,GAAE,GAC1B,EAMA,YAAA0kI,YAAA,SAAY32H,EAAQi6C,EAAQ5hD,GAA5B,gBAA4B,IAAAA,IAAAA,EAAA,IAC1B,IAAMiD,EAAQ9M,KAAK2D,IAAI,cAEjB8yB,EAAU3pB,EAAMqgF,MACtB12D,GAAWz2B,KAAKgpI,SAASvyG,UAClB3pB,EAAMqgF,MAGb,IAAMxwE,EAAQ7P,EAAM6P,MACpBA,GAAS3c,KAAK8/E,SAASnjE,UAChB7P,EAAM6P,MAEb,IAAMssH,EAAW,MAAKjpI,KAAKwO,SAAS,eAC9BnK,GAAO,IAAAgvG,aAAY41B,EAAUjpI,KAAK2D,IAAI,gBAC5C,IAAA1C,MAAKoD,GAAMoR,SAAQ,SAAA02G,GAAM,SAAKroH,QAAQ,4BAAqBqoH,GAAM,EAAM9nH,EAAK8nH,GAAKtiH,EAAxD,GAC3B,EAUA,YAAAq/H,cAAA,SAAcp8H,EAAkBjD,GAE9B,YAF8B,IAAAA,IAAAA,EAAA,IAC9B7J,KAAKyF,IAAI,aAAc,MAAKqH,GAASjD,GAC9B7J,IACT,EAUA,YAAAqgI,cAAA,SAAcvzH,EAAkBjD,GAC9B,YAD8B,IAAAA,IAAAA,EAAA,IACvB7J,KAAKkpI,cAAc,SAEnBlpI,KAAKslI,cAAc,CAAE6D,SAAS,KAC9Br8H,GAELjD,EAEJ,EAWA,YAAAu/H,iBAAA,SAAiBt8H,EAAsBjD,QAAtB,IAAAiD,IAAAA,EAAA,SAAsB,IAAAjD,IAAAA,EAAA,IACrC,IAAMw/H,EAAUjpI,MAAMc,QAAQ4L,GAASA,EAAQ,CAACA,GAC1Cw8H,EAAWtpI,KAAKslI,gBAEtB,OADA+D,EAAQvkI,KAAI,SAAAjF,GAAK,cAAOypI,EAASzpI,EAAhB,IACVG,KAAKkpI,cAAcI,EAAUz/H,EACtC,EAMA,YAAA4+E,SAAA,SAAS5lF,EAAmB0mI,QAAnB,IAAA1mI,IAAAA,EAAA,SAAmB,IAAA0mI,IAAAA,EAAA,IAClB,IAAArmD,EAAOljF,KAAI,GACbymB,GAAO,IAAAvV,UAASrO,GAAWA,EAAU,GACrCgH,EAAO4c,EAAO8iH,EAAU1mI,EAE9B,GAAI+/H,GAAY1/C,KAAQr5E,EAAKwV,OAAQ,CACnC,IAAMJ,EAAQikE,EAAGv/E,IAAI,SAEfioF,EADK1I,EAAG0kC,IACE4hB,UAAUxpI,KAAKgqH,QAAS,IAAE/qG,MAAK,GAAKpV,IAGpD,GAFA7J,KAAK4rF,KAAOA,EAERA,EACF,OAAOA,EAAKnD,SAAShiE,E,CAIzB,OAAO,YAAMgiE,SAAS7nF,KAAKZ,KAAMymB,EACnC,EASA,YAAAq5D,SAAA,SAASr5D,EAA0B5c,GAAnC,gBAAS,IAAA4c,IAAAA,EAAA,SAA0B,IAAA5c,IAAAA,EAAA,IAC3B,MAAc7J,KAAZstD,EAAG,MAAE41B,EAAE,KAEf,IAAI0/C,GAAY1/C,IAAQ51B,EAAIk7D,WAAc3+G,EAAKwV,OAa7CoH,EAAO,YAAMq5D,SAASv/E,MAAMP,KAAMmB,eAbmB,CACrD,IAAMwb,EAAQ3c,KAAK2D,IAAI,UAAY,CAAC,EACpC8iB,GAAO,IAAAvV,UAASuV,GAAQzmB,KAAKg9H,WAAWv2G,GAAQA,EAChDA,EAAO,SAAKA,GAAS9J,GACrB,IAAMsC,EAAQikE,EAAGv/E,IAAI,SACfw1E,EAAK+J,EAAG0kC,IACRyX,EAAWr/H,KAAKyoF,SAAS5+E,GAC/B7J,KAAK4rF,KAAOzS,EAAGswD,UAAUzpI,KAAKgqH,QAASvjG,EAAM,SAAK5c,GAAI,CAAEoV,MAAK,KAC7D,IAAM5a,GAAO,IAAAgvG,aAAYgsB,EAAU54G,GACnCzmB,KAAKyF,IAAI,QAAS,GAAI,CAAEmI,QAAQ,KAChC,IAAA3M,MAAKoD,GAAMoR,SAAQ,SAAA02G,GAAM,SAAKroH,QAAQ,uBAAgBqoH,GAA7B,G,CAM3B,OAAO1lG,CACT,EAMA,YAAA6+G,cAAA,SAAcz7H,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAAq5E,EAAOljF,KAAI,GACby2B,EAAoB,GACpBzvB,EAAa,MAAKhH,KAAK2D,IAAI,eAC3B0vF,EAAKnQ,aAAE,EAAFA,EAAIu+C,UACTn3H,EAAKtK,KAAKgqH,QAWhB,GARIngH,EAAKs/H,eACAniI,EAAWmmF,OAElBntF,KAAKy2B,QAAQhhB,SAAQ,SAAAyO,GAAO,OAAAuS,EAAQ9xB,MAAK,IAAAuM,UAASgT,GAAOA,EAAMA,EAAIvgB,IAAI,QAA3C,IAC5B8yB,EAAQ91B,SAAWqG,EAAWmmF,MAAQ12D,EAAQg5B,KAAK,QAIhD5lD,EAAK6/H,QAAS,CACjB,IAAM/sH,EAAQ3c,KAAK2D,IAAI,UACnB,IAAA+C,UAASiW,MAAW,IAAAo4F,YAAWp4F,KACjC3V,EAAW2V,MAAQ3c,KAAK0/H,cAAc,CAAErgH,OAAQ,I,CAKpD,KAAK,IAAA5R,KAAIzG,EAAY,MAAO,CAC1B,IAAI2iI,GAAQ,GAIR/G,GAAY1/C,KAAQ,IAAA59E,SAAQtF,KAAKyoF,cACnCkhD,KAAUt2C,aAAE,EAAFA,EAAI1vF,IAAI2G,EAAI+oF,EAAGkwC,SAASJ,YAIhCnjI,KAAK4pI,eAAiB5pI,KAAK6pI,kBAC7BF,GAAQ,GAGNA,IACF3iI,EAAWsD,GAAKA,E,CAIpB,OAAOtD,CACT,EAYA,YAAAse,SAAA,SAASmR,GACP,IAAMjmB,EAAQxQ,KAAKkjF,GAAGu+C,UAAUn8G,SAASmR,GACzC,OAAOz2B,KAAKy2B,QAAQnyB,IAAIkM,EAC1B,EAYA,YAAAw4H,SAAA,SAASvyG,GAEP,OADAz2B,KAAKy2B,QAAQvwB,QACNlG,KAAKslB,SAASmR,EACvB,EAYA,YAAA41D,YAAA,SAAY51D,GACV,IAAMnmB,EAAsB,GAC5BmmB,GAAU,IAAAv1B,SAAQu1B,GAAWA,EAAU,CAACA,GACxC,IAAMwxF,EAAYjoH,KAAKy2B,QACjBj0B,EAAO,cAUb,OARAi0B,EAAQhhB,SAAQ,SAAAq0H,GACEA,EAAO7/H,MAAM,KACrBwL,SAAQ,SAAA9L,GACd,IAAM+J,EAAWu0G,EAAUvkH,MAAM,CAAEiG,KAAI,EAAEnH,KAAI,IAAI,GACjDkR,GAAYpD,EAAQ3L,KAAKsjH,EAAU7iH,OAAOsO,GAC5C,GACF,IAEOpD,CACT,EAMA,YAAAy5H,WAAA,WACE,IACMC,EADOhqI,KAAKslI,gBACIn4C,MACtB,OAAO68C,EAAWA,EAAS//H,MAAM,KAAO,EAC1C,EAEA,YAAAggI,YAAA,SAAYznI,EAAc0nI,EAAmBrgI,QAAA,IAAAA,IAAAA,EAAA,IAC3C,IAAMsgI,EAASnqI,KAAK4pI,cACdQ,EAAUpqI,KAAK6pI,gBAChBM,GAAWC,IAChBpqI,KAAKkjF,GAAGy+B,IAAIn/G,EAAM,CAAE2C,MAAOnF,KAAMkqI,KAAI,EAAEngI,QAAS,UAAWF,KAAI,GACjE,EAEA,YAAA4+H,WAAA,WACMzoI,KAAKqqI,cACTrqI,KAAKyH,GAAG,SAAUzH,KAAKsqI,eACvBtqI,KAAKqqI,aAAc,EACrB,EAEA,YAAAE,WAAA,WACE,OAAO,IAAArpI,SAAQlB,KAAK2D,IAAI6iI,IAC1B,EAEA,YAAAgC,iBAAA,WACE,SAAUxoI,KAAKuqI,eAAgBvqI,KAAK2D,IAAI8iI,IAC1C,EAEA,YAAA+D,cAAA,WACE,IAAMjsH,EAASve,KAAKue,SAEpB,OADave,KAAKwoI,sBACDjqH,GAAWA,IAAWA,EAAOgsH,eAAiBhsH,EAAOqrH,cACxE,EAEA,YAAAa,iBAAA,WACE,IAAKzqI,KAAKwoI,oBAAsBxoI,KAAKwqI,gBAAiB,OAAO,EAC7D,IAAME,GAAe1qI,KAAKuqI,aAAevqI,KAAOA,KAAK4pI,eAAgBe,eAC/DC,EAAU5qI,KAAK2qI,eAErB,OADoBC,EAAQL,aAAeK,EAAUA,EAAQhB,iBACtCc,CACzB,EAEA,YAAAG,aAAA,WACU,IAAA3nD,EAAOljF,KAAI,GACnB,OAAOkjF,EAAKA,EAAGuR,WAAWusC,UAAY,CAAC,CACzC,EAEA,YAAA4I,YAAA,WACE,IAAIkB,EAAO9qI,KAAK2D,IAAI8iI,IACpB,GAAIqE,IAAQ,IAAA55H,UAAS45H,GAAO,CAC1B,IAAMj8F,EAAM7uC,KAAK6qI,eAAeC,GAC5Bj8F,GACFi8F,EAAOj8F,EACP7uC,KAAKyF,IAAIghI,GAAW53F,IAEpBi8F,EAAO,C,CAGX,OAAOA,CACT,EAEA,YAAAjB,aAAA,sBACMkB,EAAQ/qI,KAAK2D,IAAI6iI,IASrB,OARIuE,IAAS,IAAA7pI,SAAQ6pI,KACnBA,EAAMt1H,SAAQ,SAACq1H,EAAMntB,GACfmtB,IAAQ,IAAA55H,UAAS45H,KACnBC,EAAMptB,GAAO,EAAKktB,eAAeC,GAErC,IACAC,EAAQA,EAAM90H,QAAO,SAAA60H,GAAQ,OAAAA,KAAS,IAAA55H,UAAS45H,EAAlB,KAExBC,CACT,EAEA,YAAAC,aAAA,SAAavkH,QAAA,IAAAA,IAAAA,EAAA,IACX,IAAMwkH,EAAOjrI,KAAK2D,IAAI+iI,IACfwE,EAAOzkH,EAAKxc,MAAM,KAAI,GACvB6e,EAAQrC,IAASykH,EAAM,CAACzkH,EAAMykH,GAAO,CAACzkH,GAC5C,OAAgB,IAATwkH,IAAkB,IAAA/pI,SAAQ+pI,IAASniH,EAAMvX,MAAK,SAAAyqB,GAAK,OAAAivG,EAAKpmI,QAAQm3B,IAAM,CAAnB,GAC5D,EAEA,YAAAmvG,cAAA,SAActhI,GAAd,gBAAc,IAAAA,IAAAA,EAAA,IACZ,IAAIqD,EAAsB,GAClBC,EAAYtD,EAAI,QAExB,GACEA,EAAKuhI,cACLvhI,EAAKwhI,aACLxhI,EAAK0/G,UAEJp8G,GAAWnN,KAAKgrI,aAAa79H,GAE9B,OAAOD,EAGT,IAAMk9H,EAAUpqI,KAAK6pI,gBAAkB,GACjCM,EAASnqI,KAAK4pI,cAOpB,OALA18H,GADYi9H,EAAS,IAACA,GAAYA,EAAON,gBAAkB,IAAG,GAAIO,GAE/Dn0H,QAAO,SAAA7N,GAAK,OAAAA,IAAM,CAAN,IAEZ6N,QAAO,SAAA7N,GAAK,QAAE+E,GAAW/E,EAAE4iI,aAAa79H,GAA5B,GAGjB,EAEA,YAAAw9H,aAAA,SAAa9gI,GAIX,IAHA,IAAIqD,EAAoBlN,KACpBue,EAASve,KAAKue,OAAO1U,GAElB0U,IAAWA,EAAOgsH,cAAgBhsH,EAAOqrH,gBAC9C18H,EAASqR,EACTA,EAASA,EAAOA,OAAO1U,GAGzB,OAAOqD,CACT,EAEA,YAAAo9H,cAAA,SAAc94H,EAAQ3H,GAAtB,gBAAsB,IAAAA,IAAAA,EAAA,IACpB,IAAMsD,EAAUnN,KAAK4F,qBAAuB,CAAC,EACvCkH,EAAQK,EAAQnG,YAAc,CAAC,EASrC,UAROmG,EAAQoxF,cACRpxF,EAAQgQ,YACRhQ,EAAQq5H,WACRr5H,EAAQs5H,WACRt5H,EAAQu5H,WACRv5H,EAAQnG,kBACR8F,EAAMxC,IACR,IAAAyqG,YAAWjoG,KAAQK,EAAQnG,WAAa8F,KACxC,IAAAioG,YAAW5nG,GAAU,CACxB,IAAM+8H,EAAOlqI,KAAKmrI,cAActhI,IAEhC,IAAA5I,MAAKkM,GAASrI,KAAI,SAAA2hB,GACZ,EAAKukH,aAAavkH,WAActZ,EAAQsZ,EAC9C,IAEAzmB,KAAKiqI,YAAY,QAASC,EAAM,CAAErgI,KAAI,EAAEsD,QAAO,IAC/C+8H,EAAKz0H,SAAQ,SAAA6I,GACX,IAAMgtH,EAAe,MAAKn+H,IAE1B,IAAAlM,MAAKqqI,GAAcxmI,KAAI,SAAA2hB,GACjBnI,EAAM0sH,aAAavkH,WAAc6kH,EAAa7kH,EACpD,IACAnI,EAAM7Y,IAAI6lI,EAAc,IAAEF,aAAc,GAASvhI,GACnD,G,CAEJ,EAEA,YAAA0hI,YAAA,SAAY/5H,EAAQutE,EAAQl1E,GAA5B,gBAA4B,IAAAA,IAAAA,EAAA,IAC1B,IAAMqgI,EAAOlqI,KAAKmrI,cAActhI,GAChC7J,KAAKiqI,YAAY,UAAWC,EAAM,CAAErgI,KAAI,IACxCqgI,EAAKz0H,SAAQ,SAAA6I,GAEXA,EAAM7Y,IAAI,UAAW,EAAK9B,IAAI,WAAY,CAAEynI,aAAc,GAC5D,IACAprI,KAAK2oI,YAAY9+H,EACnB,EAEA,YAAA2hI,cAAA,SAAch6H,EAAcutE,EAAe5oD,GAA3C,WACQs1G,EAAQt1G,GAAK4oD,GAAK,CAAC,EAEnB2sD,EAAW,CAAEN,aADgBK,EAAK,aACPliB,SADEkiB,EAAK,UAElClK,EAAS/vH,EAAE87C,IAAIk7D,UAGrB,GAAKryF,EAcE,GAAIA,EAAE7xB,IAAK,CAChB,IAAI,EAA8B,GAC5B,IAAetE,KAAK6pI,eAK1B,IAJMK,EAAOlqI,KAAKmrI,cAAc,SAC3BO,GAAQ,CACXv+H,QAAS,qBAEFxM,OAAQ,CACf,IAAMgrI,EAAUn6H,EAAEo4H,cAClB,GAAkB+B,EAAUA,EAAQ9B,eAAiBr4H,EAAEq4H,iBAAmB,IAC1E,EAAiB,MAAI,GAAc,IACpBllI,KAAKgnI,GAAoBn6H,E,EAEzC+vH,GACCvhI,KAAKiqI,YAAY,MAAOC,EAAM,CAC5BrgI,KAAMssB,EACNy1G,eAAgB,EAAe9mI,KAAI,SAAAi6E,GAAK,OAAAA,EAAEt6E,GAAF,IACxC+L,MAAOgB,EAAE/M,MAIbylI,EAAKz0H,SAAQ,SAAAq1H,GACX,IAAMF,EAAUE,EAAKH,eAKfkB,EAJW,EAAe51H,QAAO,SAAA61H,GACrC,IAAMC,EAAWD,EAAUnB,aAAa,CAAEz8H,KAAM,IAChD,OAAO08H,GAAWmB,GAAYA,IAAanB,CAC7C,IAAG,IAC0Bp5H,EAAEjO,MAAM,CAAE4mI,QAAQ,EAAM6B,UAAW,IAChElB,EAAK93C,OAAO64C,EAAU,IAAET,aAAc,GAASj1G,GACjD,G,KAEK,CAEL,IAAM20G,EAAOt5H,EAAEo4H,cASf,GARAkB,IACG30G,EAAEqyF,WACHsiB,EAAKrlI,IACH+gI,GACAsE,EAAKjB,eAAgB5zH,QAAO,SAAApW,GAAK,OAAAA,IAAM2R,CAAN,MAIhCA,EAAEg5H,gBAAiB,CACtB,IAAM,EAAU,oBACR,EAAUr0G,EAAC,MACb,EAAS3kB,EAAE+M,SACX,EAAO,IAAE6sH,aAAc55H,GAAM2kB,GAC7B81G,EAAez6H,EAAEi5H,mBACnByB,EAAS,SAACpB,GACZ,IAAMqB,EAAWrB,EAAKvsH,SACtB4tH,IAAaA,EAASnB,aAAa,IAAYF,EAAK1lI,OAAO,EAC7D,EAEI8kI,GAAQ,aAAM,EAAN,EAAQc,aAAa,IAAuC,GAA5Bx5H,EAAE25H,cAAcO,GAExDO,IACF/B,EAAO,aAAM,EAAN,EAAQiB,cAAc,SAAKO,GAAQ,CAAEv+H,QAAO,KACnD++H,EAAS,SAAApB,GACP,IAAMj6H,EAAWi6H,EAAKzlD,aAAa5hF,GAAG,GACtCoN,GAAYA,EAASzL,OAAO,IAAEgmI,aAAc,GAAW,GACzD,IAGD7J,GACCvhI,KAAKiqI,YAAY,SAAUC,EAAM,CAC/BrgI,KAAMssB,EACN7lB,QAASkB,EAAE/M,IACXwnI,aAAY,IAEhB/B,EAAKz0H,QAAQy2H,E,MAnFT,CACN,IAAMhC,EAAOlqI,KAAKmrI,cAAc,SAC3BO,GAAQ,CACXv+H,QAAS,sBAGL,EAAOqE,EAAEhO,OACfxD,KAAKiqI,YAAY,QAASC,EAAM,CAAE7kD,WAAY,IAC9C6kD,EAAKz0H,SAAQ,SAAAq1H,GACX,IAAMsB,EAAU,EAAKtnI,KAAI,SAAAqd,GAAO,OAAAA,EAAI5e,MAAM,CAAE4mI,QAAQ,GAApB,IAEhCW,EAAKzlD,aAAan/E,MAAMkmI,EAAS,IAAEhB,aAAc,GAASrsD,GAC5D,G,CA2EF/+E,KAAK2oI,YAAY8C,EACnB,EAEA,YAAA7D,YAAA,SAAYp2H,EAASutE,EAASl1E,QAAA,IAAAA,IAAAA,EAAA,IAC5B,IACMwiI,EAAUrsI,KAAK2D,IAAI,cAAewpF,OAAS,GAC3Cm/C,EAAW,CAACtsI,KAFJ,iBAEiBA,KAAK4nI,aAC9B1jH,EAAMlkB,KAAK2D,IAAI,YAAc0oI,EAC7BE,GAAS,IAAAr7H,UAASgT,GAAOA,EAAIja,MAAM,KAAOia,EAChDlkB,KAAKsL,cAAa,MAAlBtL,KAAsBssI,GACtB,IAAM71G,EAAUz2B,KAAKwsI,iBAAiBD,GAChCtkB,EAAY,IAAI,GAAU,IAMhC,OALAjoH,KAAKyF,IAAI,UAAWwiH,EAAWp+G,GAC/Bo+G,EAAU3jH,IAAImyB,GACdwxF,EAAUxgH,GAAG,mBAAoBzH,KAAKurI,aAEtCvrI,KAAKwK,SAAQ,MAAbxK,KAAiBssI,GACVtsI,IACT,EAEA,YAAA6nI,eAAA,WACE,IACMyE,EAAW,CAACtsI,KADJ,oBACiBA,KAAK6nI,gBACpC7nI,KAAKsL,cAAa,MAAlBtL,KAAsBssI,GAGtB,IAAMvO,EAAQ,IAAI,GAAW,GAAI/9H,KAAKstD,KACtCywE,EAAMx/G,OAASve,KACf,IAAMqlF,EAAarlF,KAAK2D,IAAI,cACtB8oI,GAAYzsI,KAAKstD,IAAIo/E,cAM3B,OALA1sI,KAAKyF,IAAI,aAAcs4H,GACvB0O,GAAYpnD,GAAc04C,EAAMz5H,KAAI,IAAAjC,YAAWgjF,GAAcA,EAAWrlF,MAAQqlF,EAAYrlF,KAAKstD,KACjGywE,EAAMt2H,GAAG,mBAAoBzH,KAAKwrI,eAElCxrI,KAAKwK,SAAQ,MAAbxK,KAAiBssI,GACVtsI,IACT,EAEA,YAAA8nI,WAAA,SAAW36H,GACD,IAAA+1E,EAAOljF,KAAI,GACb2S,EAAQ,gBACd3S,KAAKmL,IAAIwH,EAAO3S,KAAK8nI,YACrB9nI,KAAK2sI,eACL,IAAM7/H,EAAQ,MAAK9M,KAAK2D,IAAI,eACtB2iI,EAAStmI,KAAKsmI,OAWpB,OAVAA,EAAO/gI,MAAK,SAAAu/H,GACV,IAAKA,EAAMnhI,IAAI,cAAe,CAC5B,IAAM,EAAOmhI,EAAMnhI,IAAI,QACjB+D,EAAQo9H,EAAMe,eAChB,GAAQn+H,IAAOoF,EAAM,GAAQpF,E,CAErC,IACA4+H,EAAO3lI,QAAUX,KAAKyF,IAAI,aAAcqH,GACxC9M,KAAKyH,GAAGkL,EAAO3S,KAAK8nI,YACpB36H,GAAW+1E,GAAMA,EAAGp/E,QAAQ,qBACrB9D,IACT,EAEA,YAAAgoI,gBAAA,WACE,IAAIhoI,KAAKstD,IAAIk7D,UAAb,CACA,IAAM/hG,EAAO,eACP6lH,EAAgB,CAAC,iBAAU7lH,GAAQzmB,KAAKgoI,iBAC9ChoI,KAAKmL,IAAG,MAARnL,KAAYssI,GACZ,IAAMM,EAAY5sI,KAAKwO,SAASiY,IAAS,GACnComH,EAAW7sI,KAAK2D,IAAI8iB,IAAS,GAC7BqmH,EAAcF,EAAU9nI,KAAI,SAAAoG,GAAK,uBAAUA,EAAV,IAAeukD,KAAK,KACrDs9E,EAAaF,EAAS/nI,KAAI,SAAAoG,GAAK,uBAAUA,EAAV,IAAeukD,KAAK,KACzDq9E,GAAe9sI,KAAKmL,IAAI2hI,EAAa9sI,KAAKgtI,qBAC1CD,GAAc/sI,KAAKyH,GAAGslI,EAAY/sI,KAAKgtI,qBAEvChtI,KAAKyH,GAAE,MAAPzH,KAAWssI,EAXmB,CAYhC,EAEA,YAAAU,oBAAA,SAAoBx7H,EAAQi6C,EAAQ5hD,QAAA,IAAAA,IAAAA,EAAA,IAC9BA,EAAKg/E,YACT7oF,KAAK8D,QAAQ,WACf,EAkBA,YAAAkvF,OAAA,SAAO3N,EAA0Bx7E,QAAA,IAAAA,IAAAA,EAAA,IAC/B,IACMgiI,IADU,IAAA3qI,SAAQmkF,GAAc,MAAIA,GAAU,GAAI,CAACA,IAChCvgF,KAAI,SAAAi8C,GAC3B,OAAI,IAAA7vC,UAAS6vC,IAIXA,EAAK97C,YAAe87C,EAAmB97C,WAAWG,OAAO27C,EAAM,CAAEynE,WAAW,IAHrEznE,CAMX,IACM7zC,EAASlN,KAAKqlF,aAAa/gF,IAAIunI,EAAUhiI,GAC/C,OAAO,IAAA3I,SAAQgM,GAAUA,EAAS,CAACA,EACrC,EAgBA,YAAAm4E,WAAA,SACEA,EACAx7E,QAAA,IAAAA,IAAAA,EAAA,IAEA,IAAMmhF,EAAOhrF,KAAK2D,IAAI,cAEtB,OAAI,IAAAimF,aAAYvE,GACP2F,GAEPA,EAAK9kF,WAAMb,EAAWwE,GACfw7E,EAAarlF,KAAKgzF,OAAO3N,EAAYx7E,GAAS,GAEzD,EAYA,YAAAshF,WAAA,SAAWrqF,GACT,OAAOd,KAAKqlF,aAAa5hF,GAAG3C,GAAS,SAAMuE,CAC7C,EAQA,YAAA4nI,aAAA,WACE,IAAM16G,EAAWvyB,KAAKqlF,aACtB,OAAO9yD,EAAS9uB,GAAG8uB,EAAS5xB,OAAS,IAAM,IAC7C,EAMA,YAAAqxC,MAAA,SAAMnoC,GAEJ,YAFI,IAAAA,IAAAA,EAAA,IACJ7J,KAAKqlF,aAAan/E,WAAMb,EAAWwE,GAC5B7J,IACT,EASA,YAAAue,OAAA,SAAO1U,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAMmhF,EAAOhrF,KAAKiF,YAAe4E,EAAKqE,MAAQlO,KAAKwhI,SACnD,OAAOx2C,EAAOA,EAAKzsE,YAASlZ,CAC9B,EAMA,YAAA2rG,QAAA,WACE,IAAMzyF,EAASve,KAAKue,SACpB,OAAOA,EAAS,CAACA,GAAQxZ,OAAOwZ,EAAOyyF,WAAa,EACtD,EAMA,YAAAi3B,cAAA,WACEjoI,KAAKyF,IAAI,gBAAiB,EAC5B,EAMA,YAAAsiI,YAAA,WACU,IAAA7kD,EAAOljF,KAAI,GACbmF,EAAQnF,KACRujF,EAAQL,GAAMA,EAAG0D,YAAY1C,aAAgB,GAEnD,IAAK/+E,EAAMxB,IAAI,YAAcu/E,EAAI,CAC/B,IAAMgqD,EAA2B,GACjC/nI,EAAMF,YACJioI,EAAGvoI,KAAK,CACN+nE,MAAOwW,EAAGiX,QAAQ,WAClB3D,QAAS,SAACrU,GAAY,OAAAA,EAAGyT,WAAW,sBAAuB,CAAEn3C,MAAO,GAA9C,IAE1Bt5C,EAAMxB,IAAI,cACRupI,EAAGvoI,KAAK,CACNqC,WAAY,CAAEmmF,MAAO,UAAG5J,EAAI,oBAAoB3hC,WAAW,GAC3D8qB,MAAOwW,EAAGiX,QAAQ,QAClB3D,QAAS,aAEbrxF,EAAMxB,IAAI,aACRupI,EAAGvoI,KAAK,CACN+nE,MAAOwW,EAAGiX,QAAQ,QAClB3D,QAAS,cAEbrxF,EAAMxB,IAAI,cACRupI,EAAGvoI,KAAK,CACN+nE,MAAOwW,EAAGiX,QAAQ,UAClB3D,QAAS,eAEbrxF,EAAMM,IAAI,UAAWynI,E,CAEzB,EAEA,YAAAP,aAAA,SAAa19B,EAAiCplG,QAAA,IAAAA,IAAAA,EAAA,IAC5C,IAAIsjI,EAAUl+B,GAAMjvG,KAAKsmI,OAEzB,KAAM6G,aAAmB,IAAS,CAChCA,GAAW,IAAA9qI,YAAW8qI,GAAWA,EAAQntI,MAAQmtI,EACjD,IAAM7G,EAAS,IAAI,GAAO,GAAItmI,KAAKstD,KACnCg5E,EAAOn1C,UAAUnxF,MAEbmtI,EAAQxsI,SACVwsI,EAAQ13H,SAAQ,SAAAw5F,GAAM,OAAAA,EAAGjoG,mBAAqBioG,EAAGjoG,WAAWU,KAAtC,IACtB4+H,EAAOhiI,IAAI6oI,IAGbntI,KAAKyF,IAAI,CAAE6gI,OAAM,GAAIz8H,E,CAGvB,OAAO7J,IACT,EAUA,YAAAotI,UAAA,WAEE,OADAptI,KAAK2sI,eACE,MAAI3sI,KAAKsmI,OAAO9iI,QAAM,EAC/B,EAWA,YAAA6pI,UAAA,SAAU/G,GACR,IAAMr3B,GAAK,IAAA/tG,SAAQolI,GAAUA,EAAS,CAACA,GAGvC,OADAtmI,KAAKyF,IAAI,CAAE6gI,OAAQr3B,IACZjvG,KAAKotI,WACd,EAUA,YAAAE,SAAA,SAAShjI,GACP,OACEtK,KAAKotI,YAAYn3H,QAAO,SAAA6uH,GACtB,OAAOA,EAAMnhI,IAAI,QAAU2G,GAAMw6H,EAAMnhI,IAAI,UAAY2G,CACzD,IAAG,IAAM,IAEb,EAaA,YAAAijI,YAAA,SAAYjjI,EAAYwe,G,MAChBg8G,EAAQ9kI,KAAKstI,SAAShjI,GAG5B,OAFAw6H,GAASA,EAAMr/H,IAAIqjB,GACZ,QAAP,EAAA9oB,KAAKkjF,UAAE,SAAEp/E,QAAQ,qBACV9D,IACT,EAWA,YAAAwtI,cAAA,SAAcljI,GACZ,IAAMw6H,EAAQ9kI,KAAKstI,SAAShjI,GAC5B,OAAOw6H,EAAQ9kI,KAAKsmI,OAAOzhI,QAAQigI,IAAU,CAC/C,EAUA,YAAA2I,YAAA,SAAYnjI,GAAZ,I,EAAA,OAEQuG,IADM,IAAA3P,SAAQoJ,GAAMA,EAAK,CAACA,IACXxF,KAAI,SAAAwF,GAAM,SAAKgjI,SAAShjI,EAAd,IACvBg8H,EAAWtmI,KAAI,OACjBsQ,EAAUO,EAASlQ,OAAS2lI,EAAOlhI,OAAOyL,GAAY,GAE5D,OADO,QAAP,EAAA7Q,KAAKkjF,UAAE,SAAEp/E,QAAQ,sBACV,IAAA5C,SAAQoP,GAAWA,EAAU,CAACA,EACvC,EAeA,YAAAo9H,SAAA,SAAS5I,EAAqCj7H,G,WAAA,IAAAA,IAAAA,EAAA,IAC5C7J,KAAK2sI,eACL,IAAMn8H,EAAQxQ,KAAKsmI,OAAOhiI,IAAIwgI,EAAOj7H,GAErC,OADO,QAAP,EAAA7J,KAAKkjF,UAAE,SAAEp/E,QAAQ,sBACV,IAAA5C,SAAQsP,GAASA,EAAQ,CAACA,EACnC,EAQA,YAAAg8H,iBAAA,SAAiB3rI,GACf,IAAMuD,EAAkB,GAChB8+E,EAAOljF,KAAI,GACb2tI,EAAMzqD,aAAE,EAAFA,EAAIu+C,UAChB,OAAKkM,EAED9sI,EAAI2C,OAAe,MAAI3C,EAAI2C,QAAM,IACrC3C,EAAI4U,SAAQ,SAAAxP,GAAO,OAAA7B,EAAIO,KAAKgpI,EAAIrpI,IAAI2B,GAAjB,IACZ7B,GAJU,EAKnB,EAMA,YAAAb,MAAA,SAAM+pD,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAM41B,EAAKljF,KAAKkjF,GACV17E,EAAO,MAAKxH,KAAKgH,YACjB6C,EAAO,MAAK7J,KAAKstD,KACjBhjD,EAAKtK,KAAKgqH,QACV8W,EAAO59C,aAAE,EAAFA,EAAI0kC,IACjBpgH,EAAKR,WAAa,MAAKQ,EAAKR,mBACrBQ,EAAKR,WAAWsD,GAEvB9C,EAAK69E,WAAa,GAElB79E,EAAKivB,QAAU,GAEfjvB,EAAK8+H,OAAS,GAEVtmI,KAAKwqI,kBACPl9E,EAAI68E,QAAS,GAGfnqI,KAAK2D,IAAI,cAAe4B,MAAK,SAAC0gH,EAAIpmH,GAEhC2H,EAAK69E,WAAWxlF,GAAKomH,EAAG1iH,MAAM,SAAK+pD,GAAG,CAAEsgF,OAAQ,IAClD,IACA5tI,KAAK2D,IAAI,UAAW4B,MAAK,SAAC0gH,EAAIpmH,GAE5B2H,EAAK8+H,OAAOzmI,GAAKomH,EAAG1iH,OACtB,IACAvD,KAAK2D,IAAI,WAAY4B,MAAK,SAAC0gH,EAAIpmH,GAE7B2H,EAAKivB,QAAQ52B,GAAKomH,EAAGtiH,IAAI,OAC3B,IAEA6D,EAAK+2F,OAAS,GAEd10F,EAAK5E,WAAa,KAElB,IAAM4oI,EAAS,IAAI7tI,KAAK2P,YAAYnI,EAAMqC,GAGpCikI,EAAQ,WAAID,EAAO7jB,UACJ8W,EAAOA,EAAKM,SAAS,WAAI92H,IAAQ,IACzCmL,SAAQ,SAAAm2E,GACnB,IAAMy1C,EAAUz1C,EAAKroF,QAErB89H,EAAQ57H,IAAI,YAAa,CAACqoI,IAC1BhN,EAAKn1C,SAASrnF,IAAI+8H,EACpB,IAIAwM,EAAOpoI,IAAI+gI,GAAY,GACvB,IAAM2D,EAASnqI,KAAK4pI,cACdQ,EAAUpqI,KAAK6pI,eAEhBv8E,EAAI68E,SAAWA,IAAUC,EAGnBD,GAETA,EAAO1kI,IAAI+gI,GAAY,SAAI2D,EAAON,gBAAiB,GAAF,CAAEgE,IAAM,IACzDA,EAAOpF,cACEn7E,EAAI68E,SAETnqI,KAAKuqI,cAEPvqI,KAAKyF,IAAI+gI,GAAY,SAAI4D,GAAU,GAAF,CAAEyD,IAAM,IACzCA,EAAOpoI,IAAIghI,GAAWzmI,MACtB6tI,EAAOpF,cACEn7E,EAAI0+E,WAEbhsI,KAAKyF,IAAI+gI,GAAY,CAACqH,IACtBA,EAAOpoI,IAAIghI,GAAWzmI,MACtB,CAACA,KAAM6tI,GAAQ/oI,KAAI,SAAAjF,GAAK,OAAAA,EAAE4oI,YAAF,MAGxBoF,EAAOpoI,IAAI+gI,GAAY,CAACxmI,OACxB,CAACA,KAAM6tI,GAAQ/oI,KAAI,SAAAjF,GAAK,OAAAA,EAAE4oI,YAAF,IACxBzoI,KAAKyF,IAAIghI,GAAWoH,MAtBtBA,EAAOpoI,IAAIghI,GAAW,GACtBoH,EAAOpoI,IAAI+gI,GAAY,IAyBzB,IAAM7zH,EAAQ,kBAId,OAHAuwE,GAAMA,EAAGp/E,QAAQ6O,EAAOk7H,GACxB7tI,KAAK8D,QAAQ6O,EAAOk7H,GAEbA,CACT,EAQA,YAAAnhD,QAAA,SAAQ7iF,QAAA,IAAAA,IAAAA,EAAA,IACE,IAAAq5E,EAAOljF,KAAI,GACb,EAA0BA,KAAKgH,WAA7BxE,EAAI,OAAEiR,EAAO,UAAE9J,EAAI,OACrBokI,EAAUvrI,GAAQiR,EAClBu6H,EAAWxrI,EAAiB,GAAViR,EAClBw6H,EAAU,uBACVC,EAAWvkI,IAAQu5E,aAAE,EAAFA,EAAI5vB,EAAE,UAAG26E,GAAO,OAAGtkI,KACtCwkI,EAAcH,IAAW9qD,aAAE,EAAFA,EAAI5vB,EAAE,UAAG26E,GAAO,OAAGD,KAC5CI,EAAclrD,IAAOA,EAAG5vB,EAAE,UAAG26E,GAAO,OAAGzrI,KAAW0gF,EAAG5vB,EAAE,UAAG26E,GAAO,OAAGx6H,KACpE46H,EAAaruI,KAAK2D,IAAI,eAE5B,OACIkG,EAAKykI,SAAwB,GAAbD,IAClBH,GACAvkI,GACAwkI,IACA,IAAAn5B,YAAWg5B,IACXI,IACA,IAAAp5B,YAAW+4B,EAEf,EAMA,YAAA5zC,QAAA,WACE,IAAID,EAAOl6F,KAAK2D,IAAI,QACpB,OAAOu2F,EAAOA,EAAO,IAAM,EAC7B,EAgCA,YAAAgb,OAAA,SAAOrrG,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAM1E,EAAQnF,KACR8M,EAAQ,GAER6X,EADY9a,EAAK8a,KACExf,EAAMxB,IAAI,WAC7B4qI,EAAOppI,EAAMxB,IAAI,QACjB6qI,EAAa3kI,EAAK7C,WACpBA,EAAahH,KAAKyuI,gBAYtB,UAXO5kI,EAAK8a,IAGR6pH,KACE,IAAAnsI,YAAWmsI,GACbxnI,EAAawnI,EAAWrpI,EAAO6B,IAAe,CAAC,GACtC,IAAAN,UAAS8nI,KAClBxnI,EAAawnI,IAIb3kI,EAAK6kI,UAAW,CAClB,IAAM5lH,EAAQ9oB,KAAKsN,UAEnB,IAAAmI,SAAQqT,GAAO,SAACphB,EAAOrG,GAEN,MAAXA,EAAI,IADU,CAAC,UAAW,aAAc,cACZwD,QAAQxD,GAAO,IAC7C2F,EAAW,mBAAY3F,KAAS,IAAAH,SAAQwG,KAAU,IAAAhB,UAASgB,GAASkR,KAAKC,UAAUnR,GAASA,EAEhG,G,CAGF,IAAK,IAAIF,KAAQR,EAAY,CAC3B,IAAMf,EAAMe,EAAWQ,GAEvB,KAAK,IAAAoiF,aAAY3jF,IAAgB,OAARA,EACvB,IAAI,IAAAwxG,WAAUxxG,GACZA,GAAO6G,EAAMnI,KAAK6C,OACb,CACL,IAAImnI,EAAW,GACf,GAAI9kI,EAAK+kI,eAAgB,IAAA19H,UAASjL,IAAQA,EAAIpB,QAAQ,MAAQ,EAC5D8pI,EAAW,WAAI1oI,EAAIwJ,QAAQ,KAAM,UAAS,SACrC,CACL,IAAM/H,GAAQ,IAAAwJ,UAASjL,GAAOA,EAAIwJ,QAAQ,KAAM,UAAYxJ,EAC5D0oI,EAAW,YAAIjnI,EAAK,K,CAGtBoF,EAAMnI,KAAK,UAAG6C,EAAI,YAAImnI,G,EAK5B,IAAME,EAAa/hI,EAAMnM,OAAS,WAAImM,EAAM2iD,KAAK,MAAS,GACpD/tC,EAAQvc,EAAM2pI,aAAajlI,GAC7BmhB,EAAO,WAAIrG,GAAG,OAAGkqH,GAAU,OAAGN,EAAO,IAAM,GAAE,YAAI7sH,GAGrD,OAFC6sH,IAASvjH,GAAQ,YAAKrG,EAAG,MAEnBqG,CACT,EAOA,YAAA8jH,aAAA,SAAajlI,GACX,OAAO7J,KAAK+uI,YAAYllI,EAC1B,EAEA,YAAAklI,YAAA,SAAYllI,QAAA,IAAAA,IAAAA,EAAA,IACV,IAAM02H,EAAOvgI,KAAKqlF,aAClB,OAAQk7C,EAAK5/H,OAA+B4/H,EAAKz7H,KAAI,SAAAi6E,GAAK,OAAAA,EAAEm2B,OAAOrrG,EAAT,IAAgB4lD,KAAK,IAAzDzvD,KAAK2D,IAAI,UACjC,EAOA,YAAA8qI,cAAA,WACE,IAAM3hI,EAAQ9M,KAAKslI,gBAMnB,OAJI1C,GAAY5iI,KAAKkjF,YACZp2E,EAAM6P,MAGR7P,CACT,EAQA,YAAAQ,OAAA,SAAOzD,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAM7I,EAAM,EAAA6F,MAAA,sBAA4B7G,KAAM6J,GAS9C,GARA7I,EAAIgG,WAAahH,KAAKslI,uBACftkI,EAAIgG,WAAWmmF,aACfnsF,EAAIi8F,eACJj8F,EAAIslI,cACJtlI,EAAIu9F,cACJv9F,EAAImc,YACJnc,EAAIsnH,UAENz+G,EAAK0/G,SAAU,CAClB,IAAM4gB,EAASnpI,EAAIylI,IACb2D,EAAUppI,EAAIwlI,IAChB4D,IAAW,IAAAlpI,SAAQkpI,KACrBppI,EAAIwlI,IAAc4D,EAAQn0H,QAAO,SAAApW,GAAK,OAAAA,CAAA,IAAGiF,KAAI,SAAAjF,GAAK,OAACA,EAAEmqH,MAAQnqH,EAAEmqH,QAAUnqH,CAAvB,KAEhDsqI,KAAW,IAAAj5H,UAASi5H,KACtBnpI,EAAIylI,IAAa0D,EAAOngB,Q,CAQ5B,OAJIhqH,KAAKkjF,GAAG0D,YAAY47B,eACtBxiH,KAAKgvI,gBAAgBhuI,GAGhBA,CACT,EAKA,YAAAguI,gBAAA,SAAgB5qI,GACd,IAAMpD,EAAWoD,GAAO,EAAAyC,MAAA,uBAA6B7G,MAC/C8G,GAAW,IAAAoG,QAAOlN,KAAM,YAwB9B,OAtBA,IAAAyV,SAAQ3O,GAAU,SAACY,EAAOrG,IACO,IAA3B,CAAC,QAAQwD,QAAQxD,IAAeL,EAAIK,KAASqG,UACxC1G,EAAIK,EAEf,KAEI,IAAAiE,SAAQtE,EAAIwB,cACPxB,EAAIwB,MAGb,IAAAiT,SAAQ,CAAC,aAAc,UAAU,SAAAgR,IAC3B,IAAAnhB,SAAQwB,EAAS2f,MAAU,IAAAnhB,SAAQtE,EAAIylB,YAClCzlB,EAAIylB,EAEf,KAEA,IAAAhR,SAAQ,CAAC,UAAW,eAAe,SAAAgR,KAC5BzlB,EAAIylB,KAAU,IAAAnhB,SAAQwB,EAAS2f,MAAWzlB,EAAIylB,GAAM9lB,gBAChDK,EAAIylB,EAEf,IAEOzlB,CACT,EAMA,YAAAgpH,MAAA,WAEE,OADYhqH,KAAK2D,IAAI,eAAiB,CAAC,GAC1B2G,IAAMtK,KAAKyiI,MAAQziI,KAAKyE,GACvC,EAOA,YAAAwqI,MAAA,SAAM3kI,EAAYT,GAChB,IAAMiD,EAAQ,MAAK9M,KAAK2D,IAAI,eAG5B,OAFAmJ,EAAMxC,GAAKA,EACXtK,KAAKyF,IAAI,aAAcqH,EAAOjD,GACvB7J,IACT,EAQA,YAAA2lF,MAAA,SAAMwK,QAAA,IAAAA,IAAAA,OAAA,GACJ,IAAM7tD,EAAOtiC,KAAKi5F,QAAQ9I,GAC1B,OAAO7tD,GAAQA,EAAKluB,EACtB,EAQA,YAAA6kF,QAAA,SAAQ9I,GACF,IAAE7tD,EAAgBtiC,KAAZ,KAAE44F,EAAU54F,KAAL,MAMjB,OAJImwF,IACF7tD,EAAOs2D,EAAM3iF,QAAO,SAAAqsB,GAAQ,OAAAA,EAAKi2D,cAAgBpI,EAAM7tD,IAA3B,IAAiC,IAGxDA,CACT,EAEA,YAAA4sG,eAAA,WACE,IAAM/+C,GAASnwF,KAAKkjF,GAAGv/E,IAAI,iBAAmB,CAAC,GAAGwB,MAClD,OAAOnF,KAAKi5F,QAAQ9I,EACtB,EAEA,YAAAqoC,iBAAA,WACE,IAAM2W,EAAanvI,KAAK8oB,QAExB,OADiB9oB,KAAK2D,IAAI,iBAAmB,IAC7BgS,QAAO,SAACwrG,EAAK16F,GAE3B,OADA06F,EAAI16F,GAAQ0oH,EAAW1oH,GAChB06F,CACT,GAAG,CAAC,EACN,EASA,YAAAkX,gBAAA,SAAgBxjD,GAAhB,WACM4jD,EAAM5jD,GAAU70E,KAAK2D,IAAI,WAAa,GAE1C,IAAK80H,EACH,OAAOA,EAGT,GAAIz4H,KAAK2D,IAAI,gBACX80H,EAAMA,EAAI7wG,WAAW0gE,WAChB,CAGL,GAAkB,mBAAPmwC,EAAmB,CAC5B,IAAI2W,EAAS3W,EAAI7wG,WAAW0gE,OAE5BmwC,GADA2W,EAASA,EAAO3/H,QAAQ,4BAA6B,IAAIA,QAAQ,MAAO,KAC3D64E,M,CAGf,IAAIrwE,EAASjY,KAAKkjF,GAAG0D,YACjBs7B,EAAcvoG,GAAa1B,EAAOiqG,aAAe,OACjDC,EAAYxoG,GAAa1B,EAAOkqG,WAAa,OAC7CktB,EAAM,IAAI/0H,OAAO,UAAG4nG,EAAW,uBAAeC,GAAa,KAC/DsW,EAAMA,EAAIhpH,QAAQ4/H,GAAK,SAACh7H,EAAOo3C,GAG7B,EAAKw8E,gBACL,IAAM/6H,EAAS,EAAKlG,WAAWykD,IAAM,GACrC,OAAO,IAAAvqD,SAAQgM,IAA4B,iBAAVA,EAAqB0L,KAAKC,UAAU3L,GAAUA,CACjF,G,CAEF,OAAOurH,CACT,EAEA,YAAA9jC,WAAA,SAAWrY,G,UAAmB,oDACpB,IAAA4G,EAAOljF,KAAI,GACb2S,EAAQg0H,IAAarqD,EAAW,WAAIA,GAAa,IACjDmK,EAAOnK,GAAYt8E,KAAK2D,IAAI24E,GAElCA,GAAYt8E,KAAKynI,QAAO,MAAZznI,KAAI,IAASs8E,EAAUmK,EAAMnK,GAAYt8E,KAAKwO,SAAS8tE,IAAc57E,GAAI,IACrFV,KAAK8D,QAAO,MAAZ9D,KAAI,IAAS2S,GAAUjS,GAAI,IAC3BwiF,GAAMA,EAAGp/E,QAAO,MAAVo/E,EAAE,IAASvwE,EAAO3S,MAASU,GAAI,IACrC,CAAC,aAAc,WAAWmE,QAAQy3E,IAAc,GAC9Ct8E,KAAK4oI,mBAAmB,CACtBtjD,UAAWtlF,KACXmN,SAAO,KAAI,EAACmvE,GAAYmK,EAAI,GAC5B5jF,QAASnC,EAAK,IAAMA,EAAK,IAAM,CAAC,GAEtC,EAWA,YAAA4uI,MAAA,SAAMC,GAKJ,OAJI,IAAAltI,YAAWktI,KACbA,EAAIvvI,MACJA,KAAKqlF,aAAa5vE,SAAQ,SAAAtQ,GAAS,OAAAA,EAAMmqI,MAAMC,EAAZ,KAE9BvvI,IACT,EAUA,YAAAwvI,aAAA,SAAaD,IACP,IAAAltI,YAAWktI,IACbvvI,KAAKqlF,aAAa5vE,SAAQ,SAAA6I,GACxBixH,EAAIjxH,GACJA,EAAMkxH,aAAaD,EACrB,GAEJ,EAMA,YAAAnqI,OAAA,SAAOyE,GAAP,gBAAO,IAAAA,IAAAA,EAAA,IACG,IAAAq5E,EAAOljF,KAAI,GACbgrF,EAAOhrF,KAAKiF,WACZG,EAAS,WACb4lF,GAAQA,EAAK5lF,OAAO,EAAM,SAAKyE,GAAI,CAAEtH,OAAQ,sBAExCyoF,IACH,EAAK3F,WAAW,GAAIx7E,GACpB,EAAKw7E,aAAa/gE,eAAe,OAAMjf,EAAWwE,GAEtD,EACM4lI,EAAS,MAAK5lI,GAGpB,MAFA,CAAC7J,KAAMkjF,GAAIp+E,KAAI,SAAAjF,GAAK,OAAAA,EAAEiE,QAAQ,0BAA2B,EAAMsB,EAAQqqI,EAAnD,KACnBA,EAAOzqD,OAAS5/E,IACVpF,IACT,EAYA,YAAAggE,KAAA,SAAKslB,EAAsBz7E,GACzB,QADyB,IAAAA,IAAAA,EAAA,IACrBy7E,EAAW,CACL,IAAA7hF,EAAOoG,EAAI,GACb/I,EAAQd,KAAKc,QACb4uI,EAAapqD,IAActlF,KAAKue,SAGjCmxH,IAFa5uI,IAAU2C,GAAM3C,IAAU2C,EAAM,KAG5CisI,GAAcjsI,GAAMA,EAAK3C,IAC3B+I,EAAKpG,GAAKA,EAAK,GAEjBzD,KAAKoF,OAAO,CAAEojH,UAAW,IACzBljC,EAAU0N,OAAOhzF,KAAM6J,GACvB7J,KAAK20F,a,CAGT,OAAO30F,IACT,EAcA,YAAA2vI,aAAA,SAAantI,G,QACLkxB,EAAuC,QAAjC,EAAO,QAAP,EAAA1zB,KAAKkjF,UAAE,eAAEuR,WAAWuzB,QAAQxlH,UAAK,eAAE2C,MAE/C,QAAKuuB,GAEE1zB,gBAAgB0zB,CACzB,EAgBA,YAAAqmE,UAAA,SAAUzU,GAIR,IAHA,IAAMsqD,GAAS,IAAA1+H,UAASo0E,GACpB/mE,EAASve,KAAKue,SAEXA,GAAQ,CACb,GAAIqxH,GACF,GAAIrxH,EAAOoxH,aAAarqD,GACtB,OAAO,OAGT,GAAI/mE,IAAW+mE,EACb,OAAO,EAIX/mE,EAASA,EAAOA,Q,CAGlB,OAAO,CACT,EAQA,YAAAsxH,QAAA,SAAQhmI,QAAA,IAAAA,IAAAA,EAAA,IACE,IAAAq5E,EAAOljF,KAAI,GACb8vI,EAAQ9vI,KAAKgqH,QACnB,IAAK8lB,EAAO,OAAO9vI,KACnB,IAAM8tI,EAAQjL,EAAUttB,SAASv1G,MACjCA,KAAKivI,MAAMnB,GACX,IAAMliD,EAAO1I,aAAE,EAAFA,EAAI0kC,IAAI4hB,UAAUsG,GACzBp8H,EAAWk4E,aAAI,EAAJA,EAAMjoF,IAAI,aAAcF,GAAG,GAE5C,OADAiQ,SAAAA,EAAUjO,IAAI,OAAQqoI,GACf9tI,IACT,EAEA,YAAA+vI,cAAA,SAAc,G,IAAEzlI,QAAF,MAA0B,CAAC,EAAC,GAAxB,GACR44E,EAAOljF,KAAI,GACbgwI,EAAM1lI,GAAMtK,KAAKgqH,QACvB,OAAO9mC,aAAE,EAAFA,EAAI0kC,IAAI4hB,UAAUwG,EAC3B,EAEA,YAAAC,kBAAA,SAAkBpmI,GAChB,IAAM+hF,EAAO5rF,KAAK+vI,cAAclmI,GAChC,OAAO+hF,aAAI,EAAJA,EAAMjoF,IAAI,aAAcF,GAAG,EACpC,EAEA,YAAA2kI,WAAA,SAAW52H,EAAQi6C,EAAQ5hD,GACzB,QADyB,IAAAA,IAAAA,EAAA,KACrBA,EAAKqmI,SAAT,CAEQ,IAAAzN,EAASziI,KAAI,KACbsK,GAAOtK,KAAK2D,IAAI,eAAiB,CAAC,GAAC,GACrCwsI,GAAUnwI,KAAKwO,SAAS,eAAiB,CAAC,GAAGlE,IAAMm4H,EACnDr/F,EAAOy/F,EAAUuN,QAAQpwI,MAG/B,GAAIojC,EAAK94B,KAASA,GAAM6lI,EACtB,OAAOnwI,KAAKivI,MAAMkB,EAAQ,CAAED,UAAU,WAIjC9sG,EAAK+sG,GACZ/sG,EAAK94B,GAAMtK,KACXA,KAAKyiI,KAAOn4H,EAGZ,IAAMoJ,EAAW1T,KAAKiwI,kBAAkB,CAAE3lI,GAAI6lI,IAC9Cz8H,GAAYA,EAASjO,IAAI,CAAEkE,KAAMW,EAAIoiE,MAAOpiE,GAnBnB,CAoB3B,EAEO,EAAA+lI,YAAP,WACE,OAAO,IAAAnjI,QAAOlN,KAAKK,UAAW,WAChC,EAEO,EAAA40G,YAAP,SAAmB7gG,GACjB,MAAO,CAAEX,SAAS,IAAA2V,aAAYhV,EAAGX,SACnC,EAEO,EAAAqvH,aAAP,SAAoB39H,GAClB,IAAMi+B,EAAOy/F,EAAUuN,QAAQjrI,GACzBmF,EAAKnF,EAAM6kH,QACX/7G,EAAUm1B,EAAK94B,GAErB,GAAK2D,GAGE,GAAIA,IAAY9I,EAAO,CAE5B,IAAMmrI,EAASzN,EAAU0N,eAAejmI,EAAI84B,GAC5Cj+B,EAAM8pI,MAAMqB,GACZltG,EAAKktG,GAAUnrI,C,OALfi+B,EAAK94B,GAAMnF,EAQbA,EAAMkgF,aAAa5vE,SAAQ,SAAA5V,GAAK,OAAAgjI,EAAUC,aAAajjI,EAAvB,GAClC,EAEO,EAAA01G,SAAP,SAAgBpwG,EAAkB0E,QAAA,IAAAA,IAAAA,EAAA,IAChC,IAGIymI,EAHEltG,EAAOy/F,EAAUuN,QAAQjrI,GACvB,EAAe0E,EAAI,MAAnBg+G,OAAK,IAAG,GAAC,EAAC,EACZv9G,EAAOnF,EAAMxB,IAAI,cAAc,GAYrC,OATI2G,GACFgmI,EAASzN,EAAU0N,eAAejmI,EAAI84B,EAAMv5B,GAC5C1E,EAAM8pI,MAAMqB,GACRhmI,IAAOgmI,IAAQzoB,EAAMv9G,GAAMgmI,IAE/BA,EAASzN,EAAU2N,SAASptG,GAG9BA,EAAKktG,GAAUnrI,EACRmrI,CACT,EAEO,EAAAE,SAAP,SAAgBptG,GAOd,IANA,IAEMqtG,EAFQznH,OAAO/nB,KAAKmiC,GAAMziC,OAEbinB,WAAWjnB,OAAS,EACjC+vI,GAAOxkI,KAAKupG,SAAW,KAAK7tF,SAAS,IAAItnB,OAAOmwI,GAClD3C,EAAQ,WAAI4C,GAETttG,EAAK0qG,IACVA,EAAQjL,EAAU2N,SAASptG,GAG7B,OAAO0qG,CACT,EAEO,EAAAyC,eAAP,SAAsBjmI,EAAY84B,EAAiBv5B,QAAA,IAAAA,IAAAA,EAAA,IACzC,MAAiBA,EAAI,QACzBi2D,EAAU,EACVguE,EAAQxjI,EAEZ,SAJe,IAAG,KAAE,GAIRzF,QAAQyF,GAAM,EACxB,KAAO84B,EAAK0qG,IACVhuE,IACAguE,EAAQ,UAAGxjI,EAAE,YAAIw1D,GAIrB,OAAOguE,CACT,EAEO,EAAAsC,QAAP,SAAejrI,GACL,MAAaA,EAAK,IAAlBmoD,OAAG,IAAG,GAAC,EAAC,EAERm6D,EAAan6D,EAAG,KAAV41B,EAAO51B,EAAG,GAClBqjF,EAAKlpB,IAAQvkC,aAAE,EAAFA,EAAIuR,YACvB,OAAOk8C,EAAKA,EAAGzO,eAAiB,CAAC,CACnC,EAEO,EAAA0O,QAAP,SACEvrD,EACA7uD,EACA4M,EACAv5B,QAFA,IAAA2sB,IAAAA,EAAA,SACA,IAAA4M,IAAAA,EAAA,SACA,IAAAv5B,IAAAA,EAAA,IAEA,IAAMk0H,GAAQ,IAAA78H,SAAQmkF,GAAcA,EAAa,CAACA,GAC1C,EAAiBx7E,EAAI,QAArB+2H,OAAO,IAAG,KAAE,EACpB7C,EAAMtoH,SAAQ,SAAAsrC,GACZA,EAAK/5C,WACG,MAAgC+5C,EAAI,WAApC/5C,OAAU,IAAG,GAAC,EAAC,EAAEq+E,EAAetkC,EAAI,WACpCz2C,EAAOtD,EAAU,GAGzB,GAAIsD,GAAM84B,EAAK94B,IAAOs2H,EAAQ/7H,QAAQyF,GAAM,EAAG,CAC7C,IAAM,EAAQu4H,EAAU0N,eAAejmI,EAAI84B,GAC3Cp8B,EAAWsD,GAAK,GAEhB,IAAApJ,SAAQs1B,IACNA,EAAO/gB,SAAQ,SAAAkH,GACL,IAAAsrG,EAActrG,EAAK,UAC3BsrG,EAAUxyG,SAAQ,SAACo8B,EAAK8rE,GAClB9rE,IAAQ,WAAIvnC,KAAM29G,EAAUtK,GAAO,WAAI,GAC7C,GACF,G,CAGJt4B,GAAcw9C,EAAU+N,QAAQvrD,EAAY7uD,EAAQ4M,EAAMv5B,EAC5D,GACF,EACF,EA17DA,CAAuC,I,ugBCzGvC,0E,OAKE,EAAA+vH,SAAW,G,CA0Ib,QA/I4C,QAO1C,YAAAryH,WAAA,SAAW4uB,GACTn2B,KAAK6J,KAAOssB,GAAK,CAAC,EAClBn2B,KAAKiY,OAASke,EAAEle,QAAU,CAAC,EAE3BjY,KAAKkjF,GAAKljF,KAAKiY,OAAOirE,GACtB,IAAM8H,EAAOhrF,KAAKiF,WAClBjF,KAAKwK,SAASwgF,EAAM,MAAOhrF,KAAK2jG,OAChC3jG,KAAKwK,SAASwgF,EAAM,QAAShrF,KAAKygI,eAClCzgI,KAAKwK,SAASwgF,EAAM,SAAUhrF,KAAKskB,eACrC,EAEA,YAAAA,eAAA,SAAehU,EAAoB06E,EAAWnhF,GAA9C,gBAA8C,IAAAA,IAAAA,EAAA,IAC5CyG,EAAQsoF,MAAMnjF,SAAQ,SAAA6sB,GACpB,GAAKA,EAAL,CACQ,IAAAuuG,EAAkCvuG,EAAI,aAAxB61F,EAAoB71F,EAAI,gBAC9CuuG,GAAgBA,EAAavlI,iBAC7B,SAAS6sH,GACT71F,EAAKl9B,OAAO7E,MAAM+hC,EAJD,CAKnB,IAEchyB,EAAQ+0E,aAChB5vE,SAAQ,SAAAmsH,GAAM,SAAKt9G,eAAes9G,EAAI52C,EAAMnhF,EAA9B,GACtB,EASA,YAAA85F,MAAA,SAAMx+F,EAAkB6lF,EAAgBnhF,QAAhB,IAAAmhF,IAAAA,EAAA,SAAgB,IAAAnhF,IAAAA,EAAA,IAC9B,IAAAq5E,EAAOljF,KAAI,GACbH,EAAIG,KAAKiF,WAAWJ,QAAQM,GAGlC,GAFAnF,KAAKmuH,gBAAgBhpH,EAAO,KAAMtF,GAE9BqjF,IAAOr5E,EAAK2+G,UAAW,CACzB,IAAM,EAAa,SAACrjH,GAClB+9E,EAAGp/E,QAAQ,gBAAiBqB,GAC5BA,EAAMkgF,aAAa5vE,SAAQ,SAAAsrC,GAAQ,SAAWA,EAAX,GACrC,EACA,EAAW57C,E,CAEf,EAWA,YAAAgpH,gBAAA,SAAgBhpH,EAAkBipH,EAAsCttH,GAUtE,IARM,MAAuBd,KAArBiY,EAAM,SAAEpO,EAAI,OAAEq5E,EAAE,KAClBjpE,EAAWm0G,GAAc,KACvB91B,EAAcrgF,EAAM,UACtB64H,GAAgBx4C,aAAS,EAATA,EAAWnzF,QAASA,EAAM8zF,QAAQX,EAAUnzF,OAC5DirH,EAAKvmH,EAAKk4H,iBAAkB7+C,aAAE,EAAFA,EAAIuR,WAAWs8C,YAC3CvuI,EAAO2C,EAAMxB,IAAI,SAAW,UAC9BqtI,EAAahxI,KAAK45H,SAEb,EAAK,EAAG,EAAKxJ,EAAGzvH,OAAQ,IAC/B,GAAIyvH,EAAG,GAAI9lH,IAAM9H,EAAM,CACrBwuI,EAAa5gB,EAAG,GAAI9tF,KACpB,K,CAGJ,IAQIivD,EAREjvD,EACJwuG,GACA,IAAIE,EAAW,CACb7rI,MAAK,EAEL8S,OAAM,EACN8pH,eAAgB3R,IAIpB,IAEE7+B,EAAWjvD,EAAKzuB,SAASO,E,CACzB,MAAOtJ,GACPymF,EAAW78E,SAASmQ,eAAe,IACnCq+D,EAAG+tD,SAASnmI,E,CAGd,GAAImP,EACFA,EAASwK,YAAY8sE,OAChB,CACL,IAAM,EAASvxF,KAAKkxI,SACd3+G,EAAW,EAAOhO,WAExB,IAAK,IAAAqlE,aAAY9oF,GAgBf,EAAO2jB,YAAY8sE,OAhBI,CACvB,IAAM3wD,EAAYrO,EAAS5xB,QAAUG,EAIjC8/B,GACF9/B,IAIE8/B,IAAcrO,EAAS5xB,OACzB,EAAO8jB,YAAY8sE,GAEnB,EAAOv0E,aAAau0E,EAAUh/D,EAASzxB,G,EAW7C,OAJKqE,EAAMmoD,IAAIk7D,WACbtlC,SAAAA,EAAIp/E,QAAQ,kBAAmBqB,GAG1BosF,CACT,EAEA,YAAAkvC,cAAA,SAAcj9H,EAAoB,GAAlC,WAAoC,QAAF,MAA0B,CAAC,EAAC,GAA1B2C,eAAAA,OAAc,IAAG,KAAE,EACrDnG,KAAKkxI,SAAUlqD,UAAY,GAC3B7gF,EAAesP,SAAQ,SAAAwwG,GAAM,SAAK3hG,eAAe2hG,EAAI,EAAKhhH,WAA7B,IAC7BzB,EAAO+B,MAAK,SAAAJ,GAAS,SAAKgpH,gBAAgBhpH,EAArB,GACvB,EAEA,YAAA0O,OAAA,SAAO0K,GAAP,WACQnK,EAAKpU,KAAKoU,GACVogD,EAAO9/C,SAASisB,yBAKtB,OAJA3gC,KAAKkxI,SAAW3yH,GAAUve,KAAKoU,GAC/BpU,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKgpH,gBAAgBhpH,EAAOqvD,EAA5B,IAC9BpgD,EAAG4yE,UAAY,GACf5yE,EAAGqQ,YAAY+vC,GACRx0D,IACT,EACF,EA/IA,CAA4C,M,qvBCc5C,4B,8CAuhBA,QAvhB2C,QAQzC,YAAA4U,UAAA,WACE,OAAO5U,KAAK+pI,YACd,EAGA,YAAAt2H,QAAA,WACE,OAAOzT,KAAKmF,MAAMxB,IAAI,UACxB,EAeA,YAAA4D,WAAA,SAAW+lD,QAAA,IAAAA,IAAAA,EAAA,IACT,IAAMnoD,EAAQnF,KAAKmF,MACb8S,EAASq1C,EAAIr1C,QAAU,CAAC,EACxBirE,EAAKjrE,EAAOirE,GACZiuD,EAAWhsI,EAAMmoD,KAAO,CAAC,EACvB35C,EAAY3T,KAAT,IAAEoU,EAAOpU,KAAL,GACfA,KAAK6J,KAAOyjD,EACZttD,KAAKmxI,SAAWA,EAChBnxI,KAAKiY,OAASA,EACdjY,KAAKkjF,GAAKA,EACVljF,KAAKikF,IAAMhsE,EAAOisE,aAAe,GACjClkF,KAAKujF,KAAOtrE,EAAOksE,cAAgB,GACnCnkF,KAAKwH,KAAOrC,EAAMxB,IAAI,cACtB3D,KAAK8pI,OAAS9pI,KAAKwH,KAAK2lF,OAAS,GACjCntF,KAAKwK,SAASrF,EAAO,eAAgBnF,KAAKoxI,aAC1CpxI,KAAKwK,SAASrF,EAAO,oBAAqBnF,KAAKqxI,kBAC/CrxI,KAAKwK,SAASrF,EAAO,uBAAwBnF,KAAKsxI,iBAClDtxI,KAAKwK,SAASrF,EAAO,8BAA+BnF,KAAKuxI,cACzDvxI,KAAKwK,SAASrF,EAAO,yBAA0BnF,KAAKkG,OACpDlG,KAAKwK,SAASrF,EAAO,iBAAkBnF,KAAKwxI,eAC5CxxI,KAAKwK,SAASrF,EAAO,SAAUnF,KAAKyxI,cACpCzxI,KAAKwK,SAASrF,EAAO,SAAUnF,KAAK0xI,UACpC1xI,KAAKwK,SAASrF,EAAO,UAAWnF,KAAK2xI,WACrCh+H,EAAI+E,KAAK,QAASvT,IAClB,IAAAmwG,WAAUlhG,EAAIpU,MACdmF,EAAMm9B,KAAOtiC,KACbA,KAAKu4F,aAAepzF,EAAMyzF,MAAMj0F,KAAK3E,MACrCA,KAAK4nI,cACL5nI,KAAK6nI,eAAe,CAAE+J,aAAa,IACnC5xI,KAAK0J,OAAS,SACR1J,KAAK2P,YAAqCkiI,aAAW,CACzDC,UAAW,oBAEb9xI,KAAKmU,kBACJg9H,EAAS3oB,WAAaxoH,KAAKgiD,KAAKhiD,KAAK+xI,UACxC,EAEA,YAAAC,cAAA,WACQ,IAAE7sI,EAAkBnF,KAAb,MAAEiY,EAAWjY,KAAL,OACb4hD,EAAcz8C,EAAM6B,WAAU,UACtC,OAAOiR,EAAOgkH,qBAAuBr6E,CACvC,EAEA,YAAAmwF,QAAA,WACQ,MAAoB/xI,KAAlBkjF,EAAE,KAAE/9E,EAAK,QAAEiP,EAAE,KACrB,MAAO,CACLmuE,OAAQW,aAAE,EAAFA,EAAIzwB,YACZttD,MAAK,EACLiP,GAAE,EAEN,EAKA,YAAA4tC,KAAA,SAAKn4C,GAAe,EAKpB,YAAAyG,QAAA,SAAQzG,GAAe,EAKvB,YAAAitF,SAAA,SAASjtF,GAAe,EAKxB,YAAA6nI,SAAA,SAASllI,GAAY,EAKrB,YAAAmlI,UAAA,WAAa,EAEb,YAAAvsI,OAAA,W,MACE,YAAMA,OAAM,WACN,IAAED,EAAenF,KAAV,MAAE2T,EAAQ3T,KAAL,IACV44F,EAAUzzF,EAAK,MACjBgrF,EAAQnwF,KAAKu4F,aAAe,CAAC,EAUnC,OATApzF,EAAMkgF,aAAa5vE,SAAQ,SAAAsrC,GACzB,IAAMze,EAAOye,EAAKk4C,QAAQ9I,EAAMhrF,OAChCm9B,SAAAA,EAAMl9B,QACR,IACiB,QAAjB,EAAApF,KAAK6wI,oBAAY,SAAEzrI,SACnBwzF,EAAMh0F,OAAOg0F,EAAM/zF,QAAQ7E,MAAO,GAClCA,KAAKsQ,QAAQtQ,KAAK+xI,WAClBp+H,EAAI+E,KAAK,CAAEvT,MAAO,GAAIF,WAAY,GAAIq9B,KAAM,KAErCtiC,IACT,EAEA,YAAAiyI,gBAAA,SAAgBt/H,GACd,IAAK3S,KAAKgyI,gBAAiB,OAAO,EAClCr/H,EAAM0b,kBACN1b,EAAM4a,iBACNvtB,KAAKkjF,GAAGiC,SAASjD,IAAI,WAAY,CAC/B37D,OAAQvmB,KAAKmF,MACbwN,MAAK,GAET,EAEA,YAAAi1H,YAAA,WACU,IAAAziI,EAAUnF,KAAI,MAChB2S,EAAQ,iBACR8jB,EAAUtxB,EAAMxB,IAAI,WAEtB8yB,aAAmB,KACrBz2B,KAAKsL,cAAcnG,EAAOwN,EAAO3S,KAAK4nI,aACtC5nI,KAAKwK,SAASrF,EAAOwN,EAAO3S,KAAK4nI,aACjC5nI,KAAKwK,SAASisB,EAAS,oBAAqBz2B,KAAKkyI,eACjDz7G,EAAQ91B,QAAUX,KAAKmyI,gBAE3B,EAEA,YAAAtK,eAAA,SAAeh+H,QAAA,IAAAA,IAAAA,EAAA,IACP,MAA+B7J,KAA7BmF,EAAK,QAAEwO,EAAG,MAAEk9H,EAAY,eAE1B9S,EAAQ54H,EAAMxB,IAAI,cAClB2oI,EAAW,CAACnnI,EAFJ,oBAEkBnF,KAAK6nI,gBAEjC9J,aAAiB,KACnBpqH,EAAI+E,KAAK,aAAcqlH,GACvB8S,GAAgBA,EAAazrI,SAC7BpF,KAAKsL,cAAa,MAAlBtL,KAAsBssI,IACrBziI,EAAK+nI,aAAe5xI,KAAKoyI,iBAE1BpyI,KAAKwK,SAAQ,MAAbxK,KAAiBssI,GAErB,EAMA,YAAAmF,aAAA,WACU,IAAAtsI,EAAUnF,KAAI,MAChBqyI,GAAS,IAAApxI,MAAKkE,EAAMgI,SAC1B,GAAsB,IAAlBklI,EAAO1xI,QAA8B,WAAd0xI,EAAO,GAGlC,IAAK,IAAI5rH,KAFTthB,EAAMwvF,aAEWxvF,EAAMgI,QACrBhI,EAAMwvF,WAAWluE,EAErB,EAMA,YAAA0rH,cAAA,WACE,IAAMxE,EAAM3tI,KAAKkjF,GAAGu+C,UAEhBkM,GACF3tI,KAAKmF,MAAMsxB,QAAQlxB,MAAK,SAAAiM,GACtBm8H,EAAIrpI,IAAIkN,EAAE7N,IAAI,QAChB,GAEJ,EAOA,YAAA4tI,aAAA,SAAa1nI,QAAA,IAAAA,IAAAA,EAAA,IACL,MAA0B7J,KAAxBkjF,EAAE,KAAE9uE,EAAE,KAAEmvE,EAAI,OAAEp+E,EAAK,QACrB6hH,EAAQ9jC,aAAE,EAAFA,EAAIsB,OAAOoC,YAAYogC,MAC/BzoB,EAASp5F,EAAMxB,IAAI,UACnB2uI,EAAc,UAAG/uD,EAAI,YACrBgvD,EAAoB,UAAGD,EAAW,WAClCE,EAAa,UAAGjvD,EAAI,WACpBkvD,EAAa,UAAGlvD,EAAI,WACpBmvD,EAAe,UAAGnvD,EAAI,cACtB1yE,EAAW,CAACyhI,EAAaC,EAAmBC,EAAYC,EAAYC,GACpEC,EAAS3rB,IAAUn9G,EAAK+oI,QAAU,GAAKN,EAC7CtyI,KAAK2T,IAAI04E,YAAYx7E,EAAS4+C,KAAK,MACnC,IACMvrC,EAAM,CADM9P,EAAG2yB,aAAa,UAAY,IAG9C,OAAQw3D,GACN,IAAK,WACHr6E,EAAIvf,KAAKguI,GACT,MACF,IAAK,kBACHzuH,EAAIvf,KAAK4tI,GACT,MACF,IAAK,UACHruH,EAAIvf,KAAK6tI,GACT,MACF,IAAK,mBACHtuH,EAAIvf,KAAK6tI,EAAYG,GACrB,MACF,IAAK,WACF9oI,EAAKgpI,YAAc3uH,EAAIvf,KAAK8tI,GAIjCttI,EAAMxB,IAAI,WAAaugB,EAAIvf,KAAK+tI,GAEhC,IAAMI,EAAS5uH,EAAIjO,OAAOuvE,SAAS/1B,KAAK,KACxCqjF,GAAU1+H,EAAG2Q,aAAa,QAAS+tH,EACrC,EAMA,YAAAxB,gBAAA,WACU,IAAAnsI,EAAUnF,KAAI,MAChB+yI,EAAa5tI,EAAMxB,IAAI,YACvBqvI,EAAK7tI,EAAMxB,IAAI,mBAAqBovI,IAAe5tI,EAAM40F,UAAU,SACzE/5F,KAAK+kB,aAAa,2BAA0BiuH,GAAY,GAC1D,EAMA,YAAA5B,YAAA,SAAY5/H,EAASi6C,EAAS5hD,QAAA,IAAAA,IAAAA,EAAA,IACtB,IAAE1E,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GAEjB,GAAIkjF,GAAMA,EAAG0D,YAAY27B,mBAAqB14G,EAAKwV,OAAQ,CACzD,IAAM1C,EAAQxX,EAAMsjF,aACnB,IAAAnjF,SAAQqX,IAAUxX,EAAM26E,SAASnjE,E,MAElC3c,KAAK+kB,aAAa,QAAS5f,EAAMu6H,cAAc71H,GAEnD,EAMA,YAAAqoI,cAAA,WACE,IAAMtoH,EAAM5pB,KAAKmF,MAAMsxB,QAAQxkB,MAAM,QAAQw9C,KAAK,KAClDzvD,KAAK+kB,aAAa,QAAS6E,GAG3B5pB,KAAKuxI,eACLvxI,KAAKizI,cACP,EAOA,YAAAluH,aAAA,SAAapb,EAAcjC,GACzB,IAAM0M,EAAKpU,KAAK2T,IAChBjM,EAAQ0M,EAAG5M,KAAKmC,EAAMjC,GAAS0M,EAAG01F,WAAWngG,EAC/C,EASA,YAAAogI,WAAA,WACE,OAAO/pI,KAAKmF,MAAM4kI,aAAat6E,KAAK,IACtC,EAMA,YAAAyjF,iBAAA,WACE,IAAMpmI,EAAkB,GAClB,EAAqB9M,KAAnBmF,EAAK,QAAEwO,EAAG,MAAES,EAAE,KAChB,EAAqBjP,EAAM6B,WAAzBmsI,EAAQ,WAAE3wI,EAAI,OAEhB4wI,EAAc,OAClB9oI,GAAInF,EAAM6kH,QACV,gBAAiBxnH,GAAQ,WACrBxC,KAAKgyI,iBAAmB,CAAEpwF,WAAW,IACrCuxF,GAAY,CAAEE,gBAAiB,WAIrC,IAAA9tI,MAAK6O,EAAGpN,YAAY,SAAAQ,GAAQ,OAAAsF,EAAMnI,KAAK6C,EAAKi4C,SAAhB,IAC5B3yC,EAAM2I,SAAQ,SAAAjO,GAAQ,OAAAmM,EAAIm2F,WAAWtiG,EAAf,IACtBxH,KAAKoxI,cACLpxI,KAAKsxI,kBACL,IAAM9pI,EAAO,SACR4rI,GACAjuI,EAAMmgI,kBAIX,IAAArkI,MAAKuG,GAAMiO,SAAQ,SAAApU,GAAO,OAAc,IAAdmG,EAAKnG,WAAyBmG,EAAKnG,EAAnC,IAE1BsS,EAAInM,KAAKA,EACX,EAMA,YAAAgqI,cAAA,WACE,IAAMzyH,EAAU/e,KAAKmF,MAAMxB,IAAI,WACzB2vI,EAAWtzI,KAAKmF,MAAMkgF,aAAa1kF,OACzCX,KAAKuzI,uBAAuBvsD,UAAYssD,EAAW,GAAKv0H,CAC1D,EAOA,YAAAy0H,QAAA,SAAQtoI,GACNA,EAAEqiB,gBACJ,EAMA,YAAA2qG,aAAA,WACQ,IAAE/yH,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACZmF,EAAMxB,IAAI,YACfu/E,SAAAA,EAAIsB,OAAO9B,gBAAgBw1C,aAAal4H,MAC1C,EA0BA,YAAAuzI,qBAAA,WACE,IAAI9yF,EAAYzgD,KAAKoU,GAQrB,MANuC,mBAA5BpU,KAAKyzI,oBACdhzF,EAAYzgD,KAAKoU,GAAG8rB,cAAclgC,KAAKyzI,uBACvBzzI,KAAK0zI,YAIhBjzF,CACT,EAOA,YAAA0xE,cAAA,WACE,IAAM7pF,EAAa,CAAC,EACd/hB,EAASvmB,KAAKoU,GAChBu/H,EAAO,EACPC,EAAQ,EAENC,EAAa,SAACz/H,GAClB,IAAM08D,EAAe18D,EAAG08D,aAEpBA,GACF6iE,GAAQ7iE,EAAa1pC,UACrBwsG,GAAS9iE,EAAa1hC,WACtBykG,EAAW/iE,KAEXxoC,EAAKQ,IAAMviB,EAAO6gB,UAAYusG,EAC9BrrG,EAAK5Y,KAAOnJ,EAAO6oB,WAAawkG,EAChCtrG,EAAKO,OAASP,EAAKQ,IAAMviB,EAAO4I,aAChCmZ,EAAK3Y,MAAQ2Y,EAAK5Y,KAAOnJ,EAAO6I,YAEpC,EAGA,OAFAykH,EAAWttH,GAEJ+hB,CACT,EAEA,YAAAwrG,aAAA,SAAa,G,MAAExrG,QAAF,MAA4B,CAAC,EAAC,GAAxB,KAEXyrG,EADS/zI,KAAI,GACFkwB,cACTpT,EAASi3H,EAAK,KAChBnkB,EAAgC,QAAjB,EAAAmkB,EAAMhtC,mBAAW,eAAE6oB,aAClC,EAAgBtnF,GAAQtoC,KAAKmyH,gBAA3BrpF,EAAG,MAAEpZ,EAAI,OACXygE,EAAQnwF,KAAKu4F,YAAY45B,gBAE/B,OACErpF,GAAQqnD,EAAM9jD,WACd3c,GAASygE,EAAMlkD,YACfnD,GAAQqnD,EAAMiiC,cACd1iG,IAASkgG,aAAY,EAAZA,EAAcxgG,aAActS,EAAKmvB,UAE9C,EAEA,YAAAwK,eAAA,SAAe5sC,G,WAAA,IAAAA,IAAAA,EAAA,IACb,IAAMy+B,EAAOtoC,KAAKmyH,gBAGlB,IAFqBnyH,KAAK8zI,aAAa,CAAExrG,KAAI,KAExBz+B,EAAK40C,MAAO,CACvB,IAAArqC,EAAOpU,KAAI,GAGG,WAAlB6J,EAAKy0D,SACqB,QAA5B,EAAAlqD,EAAG8b,cAAc62E,mBAAW,SAAEt+B,SAAS,EAAGngC,EAAKQ,KAE/C10B,EAAGqiC,eAAe,IAChB6nB,SAAU,SACVmb,MAAO,WACJ5vE,G,CAIX,EAKA,YAAA3D,MAAA,WACU,IAAAkO,EAAOpU,KAAI,GAEnBA,KAAKoU,GAAK,GACVpU,KAAKuT,iBACLvT,KAAKg0I,YACL,SAAY5/H,EAAIpU,KAAKoU,IACrBpU,KAAK6T,QACP,EAEA,YAAAmgI,SAAA,WACU,IAAA7uI,EAAUnF,KAAI,MAChBiF,EAAaE,EAAMkgF,aAEzBrlF,KAAK2T,IAAI+E,KAAK,CAAEvT,MAAK,EAAEF,WAAU,EAAEq9B,KADtBtiC,MAEf,EAEA,YAAAu4F,UAAA,W,MACE,OAAc,QAAP,EAAAv4F,KAAKkjF,UAAE,eAAEv/E,IAAI,UAAUsU,OAAOqgF,SACvC,EAMA,YAAA85C,eAAA,WACEpyI,KAAKwxI,gBACL,IAAM/wF,EAAYzgD,KAAKuzI,uBACjBjxG,EACJtiC,KAAK6wI,cACL,IAAI,GAAe,CAEjB5rI,WAAYjF,KAAKmF,MAAMxB,IAAI,cAC3BsU,OAAQjY,KAAKiY,OACb8pH,eAAgB/hI,KAAK6J,KAAKk4H,iBAG9Bz/F,EAAKzuB,OAAO4sC,GACZzgD,KAAK6wI,aAAevuG,EAGpB,IAFA,IAAM/d,EAAankB,MAAMC,UAAUC,MAAMM,KAAK0hC,EAAKluB,GAAGmQ,YAE7C1kB,EAAI,EAAG4rB,EAAMlH,EAAW5jB,OAAQd,EAAI4rB,EAAK5rB,IAChD4gD,EAAUh8B,YAAYF,EAAW1gB,QAErC,EAEA,YAAAwtI,iBAAA,WACErxI,KAAKkzI,mBACLlzI,KAAKkyI,eACP,EAEA,YAAAe,aAAA,WAAgB,EAEhB,YAAAp/H,OAAA,WAEE,OADA7T,KAAKqxI,mBACDrxI,KAAKmxI,SAAS3oB,YAClBxoH,KAAKoyI,iBACLpyI,KAAKk4H,gBACL,IAAA5iB,WAAUt1G,KAAKoU,GAAIpU,MACnBA,KAAKi0I,cAJ+Bj0I,IAOtC,EAEA,YAAAi0I,WAAA,WACOj0I,KAAKmxI,SAAS3oB,WACjBxoH,KAAK82F,SAAS92F,KAAK+xI,UAEvB,EAEO,EAAAF,UAAP,WACE,OAAO,IAAA3kI,QAAOlN,KAAKK,UAAW,SAChC,EACF,EAvhBA,CAA2C,M,ghBCtB3C,yB,8CAIA,QAJkD,QAChD,YAAAoT,QAAA,WACE,MAAO,KACT,EACF,EAJA,CAAkD,I,kvBCClD,yB,8CAcA,QAdgD,QAC9C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjBtE,KAAM,OACNiR,QAAS,KACTmuC,UAAW,CAAC,OAEhB,E,gCAEO,EAAAqzD,YAAP,SAAmB7gG,GACjB,MAAO,CAAC,KAAM,MAAMvP,SAAQ,IAAAukB,aAAYhV,EAAGX,WAAa,CAC1D,EACF,EAdA,CAAgD,I,ogBCDhD,yB,8CAAmE,QAAf,QAAe,EAAnE,CAAoD,I,yuBCC9CA,GAAU,K,SAEhB,yB,8CAcA,QAd+C,QAC7C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjB2M,QAAO,GACPmuC,UAAW,CAAC,QAAS,QAAS,SAC9BiyE,UAAW,CAAC,KAAM,OAEtB,E,gCAEO,EAAA5e,YAAP,SAAmB7gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAaA,EACrC,EACF,EAdA,CAA+C,I,ogBCH/C,yB,8CAAkE,QAAf,QAAe,EAAlE,CAAmD,I,yuBCC7CjR,GAAO,Q,SAEb,yB,8CAoBA,QApB4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMsE,UAAQ,CACjBtE,KAAI,GACJiR,QAASjR,GACTqxH,UAAW,CAAC,QAAS,QAAS,UAElC,E,gCAEA,YAAAtsH,WAAA,SAAWuhB,EAAYjf,GACrB,YAAMtC,WAAU,UAACuhB,EAAOjf,GACxB,IAAMw7E,EAAarlF,KAAK2D,IAAI,eAC3B0hF,EAAW1kF,QAAU0kF,EAAW/gF,IAAI,CAAE9B,KAAM,SAC/C,EAEO,EAAAyyG,YAAP,SAAmB7gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAajR,EACrC,EACF,EApBA,CAA4C,ICH5C,GAAe,UAAqB,CAClCkH,OAAQ,CAAC,I,yuBCAL,GAAO,Q,SAEb,yB,8CAiDA,QAjDgD,QAC9C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM5C,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACTmuC,UAAW,CAAC,SACZiyE,UAAW,CAAC,MACZqgB,QAAS,EACTC,KAAM,GAEV,E,gCAEA,YAAA5sI,WAAA,SAAWuhB,EAAYjf,GACrB,YAAMtC,WAAU,UAACuhB,EAAOjf,GACxB,IAAMw7E,EAAarlF,KAAK2D,IAAI,cACxBuwI,EAAUl0I,KAAK2D,IAAI,WACnBwwI,EAAOn0I,KAAK2D,IAAI,QAGpB,IAAK0hF,EAAW1kF,OAAQ,CAGtB,IAFA,IAAMyzI,EAAY,GAEXD,KAAQ,CAIb,IAHA,IAAME,EAAe,GACjB1G,EAAMuG,EAEHvG,KACL0G,EAAa1vI,KAAK,CAChBnC,KAAM,OACNi0B,QAAS,CAAC,UAId29G,EAAUzvI,KAAK,CACbnC,KAAM,MACNi0B,QAAS,CAAC,OACV4uD,WAAYgvD,G,CAIhBhvD,EAAW/gF,IAAI8vI,E,CAEnB,EAEO,EAAAn/B,YAAP,SAAmB7gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAjDA,CAAgD,I,yuBCF1C,GAAO,Q,SAEb,yB,8CAaA,QAbgD,QAC9C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,IAEb,E,gCAEO,EAAAwhG,YAAP,SAAmB7gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAbA,CAAgD,I,ogBCHhD,yB,8CAAmE,QAAf,QAAe,EAAnE,CAAoD,I,ogBCApD,yB,8CAAmE,QAAf,QAAe,EAAnE,CAAoD,I,yuBCC9C,GAAO,Q,SAEb,yB,8CAaA,QAbgD,QAC9C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,IAEb,E,gCAEO,EAAAwhG,YAAP,SAAmB7gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAbA,CAAgD,I,ogBCHhD,yB,8CAAmE,QAAf,QAAe,EAAnE,CAAoD,I,yuBCG9C6gI,GACJ,4HAEF,4B,8CA+JA,QA/J4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMxtI,UAAQ,CACjBtE,KAAM,QACNiR,QAAS,MACTqqH,MAAM,EACNjK,UAAW,EACXsT,SAAU,EACVF,cAAe,EACfjsC,UAAW,CAAEu5C,aAAc,GAC3BjO,OAAQ,CAAC,OAET5pH,IAAK,eAAQ43H,GAAQ,2JAMrBv3B,SAAU,eAAQu3B,GAAQ,6LAK1B9gF,KAAM,IAEV,E,gCAEA,YAAAjsD,WAAA,SAAWuhB,EAAYjf,GACrB,YAAMtC,WAAU,UAACuhB,EAAOjf,GAChB,IAAA6S,EAAQ1c,KAAK2D,IAAI,cAAc,IACnC+Y,IAAO,IAAAg5F,wBAAsB,IAAAxoG,QAAOlN,KAAM,YAAY0c,OAASA,GACjE1c,KAAKyF,IAAI,MAAOiX,EAAK,CAAE9O,QAAQ,GAEnC,EAEA,YAAAm6H,YAAA,WACE,YAAMA,YAAW,WACT,IAAA7kD,EAAOljF,KAAI,GAEnB,GAAIkjF,EAAI,CACN,IACMsxD,EAAU,eAGhB,GAJYtxD,EAAGiC,SAIP13E,IAAI+mI,GAAU,CAIpB,IAHA,IAAIC,GAAgB,EACdvH,EAAKltI,KAAK2D,IAAI,WAEX9D,EAAI,EAAGA,EAAIqtI,EAAGvsI,OAAQd,IAC7B,GAAsB,iBAAlBqtI,EAAGrtI,GAAG22F,QAA4B,CACpCi+C,GAAgB,EAChB,K,CAICA,IACHvH,EAAGvoI,KAAK,CACNqC,WAAY,CAAEmmF,MAAO,gBACrBqJ,QAASg+C,IAEXx0I,KAAKyF,IAAI,UAAWynI,G,EAI5B,EAOA,YAAAuB,cAAA,WACE,IAAMjnI,EAAO,YAAMinI,cAAa,WAC1B/xH,EAAM1c,KAAK00I,eAEjB,OADIh4H,IAAKlV,EAAKkV,IAAMA,GACblV,CACT,EAEA,YAAAktI,aAAA,SAAapnF,QAAA,IAAAA,IAAAA,EAAA,IACX,IAAM5wC,EAAM1c,KAAK2D,IAAI2pD,EAAIyvD,SAAW,WAAa,QAAU,GACvD7vG,EAASwP,EAMb,OAJIA,GAA4B,SAArBA,EAAIgE,OAAO,EAAG,KACvBxT,GAAS,IAAAwoG,uBAAsBh5F,IAG1BxP,CACT,EAEA,YAAAynI,aAAA,WACE,IAAMj4H,EAAM1c,KAAK2D,IAAI,OACfixI,GAAS,IAAA1nI,QAAOlN,KAAM,YAAY0c,IACxC,OAAOA,IAAQk4H,GAAUl4H,KAAQ,IAAAg5F,uBAAsBk/B,EACzD,EAQA,YAAAtnI,OAAA,SAAOzD,GACL,IAAM7I,EAAM,YAAMsM,OAAM,UAACzD,GACjB7C,EAAehG,EAAG,WAM1B,OAJIgG,GAAchG,EAAI0b,MAAQ1V,EAAW0V,YAChC1b,EAAI0b,IAGN1b,CACT,EAQA,YAAA6zI,SAAA,SAASC,GACP,IAAI5nI,EAAkD,CAAC,EAevD,IAAI,IAAAsxF,WACFtxF,EAASwH,SAASC,cAAc,MACzB6G,KAAOs5H,OACT,GAAmB,oBAARC,IAChB,IACE7nI,EAAS,IAAI6nI,IAAID,EACP,CAAV,MAAO5pI,GAAG,CAGd,MAAO,CACL8pI,SAAU9nI,EAAO8nI,UAAY,GAC7B75H,SAAUjO,EAAOiO,UAAY,GAC7B85H,SAAU/nI,EAAO+nI,UAAY,GAC7BpuH,OAAQ3Z,EAAO2Z,QAAU,GACzBxJ,KAAMnQ,EAAOmQ,MAAQ,GACrB63H,KAAMhoI,EAAOgoI,MAAQ,GACrB3mC,MA7BqB,SAAC1nF,QAAA,IAAAA,IAAAA,EAAA,IAItB,IAHA,IAAM0nF,EAAuB,CAAC,EACxB4mC,EAAMtuH,EAAOlG,UAAU,GAAG1W,MAAM,KAE7BpK,EAAI,EAAGA,EAAIs1I,EAAIx0I,OAAQd,IAAK,CACnC,IAAMu1I,EAAOD,EAAIt1I,GAAGoK,MAAM,KACpB,EAAOwQ,mBAAmB26H,EAAK,IACjC,IAAM7mC,EAAM,GAAQ9zF,mBAAmB26H,EAAK,IAAM,I,CAGxD,OAAO7mC,CACT,CAkBS8mC,CAAenoI,EAAO2Z,QAEjC,EAEO,EAAAouF,YAAP,SAAmB7gG,GACjB,MAAmC,SAA5B,IAAAgV,aAAYhV,EAAGX,QACxB,EACF,EA/JA,CAA4C,I,qvBCL5C,4B,8CA6FA,QA7F0C,QAExC,sBAAI,uBAAQ,C,IAAZ,WAEE,IAAM6hI,EAAO,YAAMxuI,SAEnB,OAAO,SACFwuI,GAAI,CACP9yI,KAAM,MACNka,IAAK,GACLohH,MAAM,EACNyX,OAAQ,+BACR9hI,QAAS,SACT+hI,QAAS,IACT13B,QAAS,GACTzd,KAAM,IACNr5F,WAAY,CAAEyuI,YAAa,GAE3Bx4C,QAASq4C,EAAKr4C,QACdqpC,OAAQ,CACN,CACE55D,MAAO,UACP/iE,KAAM,UACNolE,YAAa,iBACbw1D,WAAY,GAEd,CACE/hI,KAAM,SACNkqE,MAAO,WACP/iE,KAAM,UACN46H,WAAY,EACZ1hI,QAAS,CACP,CAAE6E,MAAO,IAAKiC,KAAM,WACpB,CAAEjC,MAAO,IAAKiC,KAAM,eAGxB,CACE+iE,MAAO,OACP/iE,KAAM,OACNnH,KAAM,QACN2N,IAAK,IACLhE,IAAK,KACLo4H,WAAY,KAIpB,E,gCAEA,YAAAh9H,WAAA,SAAWuhB,EAAYjf,GACjB7J,KAAK2D,IAAI,OAAQ3D,KAAK01I,eACrB11I,KAAK21I,YACV,YAAMpuI,WAAU,UAACuhB,EAAOjf,GACxB7J,KAAKwK,SAASxK,KAAM,4CAA6CA,KAAK21I,UACxE,EAEA,YAAAA,UAAA,WACE31I,KAAKyF,IAAI,MAAOzF,KAAK41I,YACvB,EAOA,YAAAA,UAAA,WACE,IAAIC,EAAO71I,KAAK2D,IAAI,WAChB08F,EAAOrgG,KAAK2D,IAAI,QAChBnB,EAAOxC,KAAK2D,IAAI,WACpBkyI,EAAOA,EAAO,MAAQA,EAAO,GAC7Bx1C,EAAOA,EAAO,MAAQA,EAAO,GAC7B79F,EAAOA,EAAO,MAAQA,EAAO,GAC7B,IAAI0K,EAASlN,KAAK2D,IAAI,UAAY,IAAMkyI,EAAOx1C,EAAO79F,EAEtD,OADA0K,GAAU,eAEZ,EAMA,YAAAwoI,aAAA,WACE,IACMI,EADM91I,KAAK60I,SAAS70I,KAAK2D,IAAI,QACpB4qG,MACXunC,EAAGC,GAAG/1I,KAAKyF,IAAI,UAAWqwI,EAAGC,GAC7BD,EAAGE,GAAGh2I,KAAKyF,IAAI,OAAQqwI,EAAGE,GAC1BF,EAAGxiF,GAAGtzD,KAAKyF,IAAI,UAAWqwI,EAAGxiF,EACnC,EAEO,EAAA2hD,YAAP,SAAmB7gG,GACjB,GAA+B,WAA3B,IAAAgV,aAAYhV,EAAGX,UAAwB,oBAAoBzJ,KAAKoK,EAAGsI,KACrE,MAAO,CAAEla,KAAM,MAAOka,IAAKtI,EAAGsI,IAElC,EACF,EA7FA,CAA0C,I,ugBCE1C,4B,8CAwHA,QAxHgD,QAK9C,YAAAjJ,QAAA,WACE,MAAO,KACT,EAEA,YAAA/J,OAAA,WACE,MAAO,CACLusI,SAAU,WACVhqD,MAAO,aACPnhF,MAAO,UACPu4F,KAAM,SACNyuC,UAAW,SAEf,EAEA,YAAAvqI,WAAA,SAAWuhB,GACT,YAAMvhB,WAAU,UAACuhB,GACjB9oB,KAAKwK,SAASxK,KAAKmF,MAAO,aAAcnF,KAAK21I,WAC7C31I,KAAKk2I,WAAa,UAAGl2I,KAAKujF,KAAI,aAC9BvjF,KAAKm2I,WACP,EAKA,YAAAA,UAAA,WACE,IAAIn2I,KAAKmxI,SAAS3oB,UAAlB,CACM,IAAErjH,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACXwzD,EAAOruD,EAAMxB,IAAI,QAEvB,GAAI6vD,GAAQ0vB,EAAI,CACd,IAAMkzD,EAAKlzD,EAAGmzD,OAAOC,eACrBF,SAAAA,EAAIG,WACF,CAEEvjF,aAAc,CAAED,MAAO,CAACS,MAE1B,SAACpvD,GACC,IAAMpD,EAAMoD,GAAOA,EAAIsU,MAAQtU,EAAIsU,KAAK,GAClCgE,EAAM1b,KAAQ,IAAAkQ,UAASlQ,GAAOA,EAAMA,EAAI0b,KAC9CA,GAAOvX,EAAMM,IAAI,CAAEiX,IAAG,GACxB,IAEFvX,EAAMM,IAAI,OAAQ,G,CAjBe,CAmBrC,EAMA,YAAAkwI,UAAA,WACU,IAAAxwI,EAAUnF,KAAI,MACtBmF,EAAMk7H,cAAc,CAAE3jH,IAAKvX,EAAMuvI,iBACjC10I,KAAKkyI,eACP,EAEA,YAAAA,cAAA,WACE,YAAMA,cAAa,WACb,MAA4BlyI,KAA1BoU,EAAE,KAAE8hI,EAAU,aAAE/wI,EAAK,QAEvB8J,EADY9J,EAAMuvI,iBAAmBvvI,EAAMwvI,eACtB,SAAW,MACtCvgI,EAAGkvE,UAAUr0E,GAAQinI,EACvB,EAOA,YAAAxE,SAAA,SAASllI,GACPA,SAAAA,EAAI6hB,kBACE,IAAE60D,EAAcljF,KAAZ,GAAEmF,EAAUnF,KAAL,MACX4wF,EAAK1N,aAAE,EAAFA,EAAImzD,OAEXzlD,GAAMzrF,EAAMxB,IAAI,aAClBitF,EAAGzzE,KAAK,CACNjH,OAAM,SAACsgI,EAAOC,GACZtxI,EAAMM,IAAI,CAAEiX,IAAK85H,EAAME,WACvBD,GAAY7lD,EAAGxzE,OACjB,EACAmJ,OAAQphB,EACRumB,MAAO,CAAC,SACRulE,OAAQ,WAGd,EAEA,YAAA0lD,QAAA,WACE,IAAM55B,EAAW/8G,KAAKmF,MAAMuvI,aAAa,CAAE33B,UAAU,IACjDA,IACF/8G,KAAKoU,GAAGsI,IAAMqgG,EAElB,EAEA,YAAAuO,OAAA,WAEEtrH,KAAKkjF,GAAGp/E,QAAQ,sBAClB,EAEA,YAAA8yI,OAAA,SAAOpqI,GAEL,OADAA,EAAG+gB,kBACI,CACT,EAEA,YAAA1Z,OAAA,WAEE,GADA7T,KAAKqxI,mBACDrxI,KAAKmxI,SAAS3oB,UAAW,OAAOxoH,KACpCA,KAAK21I,YACC,IAAEhiI,EAAe3T,KAAZ,IAAEmF,EAAUnF,KAAL,MACZkkB,EAAMvQ,EAAInM,KAAK,UAAY,GAIjC,OAHCrC,EAAMxB,IAAI,QAAUgQ,EAAInM,KAAK,QAAS,UAAG0c,EAAG,YAAIlkB,KAAKk2I,YAAa5tD,QACnEtoF,KAAKi0I,aAEEj0I,IACT,EACF,EAxHA,CAAgD,I,ghBCHhD,yB,8CA2CA,QA3C8C,QAG5C,YAAAyT,QAAA,WACE,MAAO,KACT,EAEA,YAAA/J,OAAA,WACE,MAAO,CAAC,CACV,EAEA,YAAAnC,WAAA,SAAWuhB,GACT,YAAMvhB,WAAU,UAACuhB,GACjB9oB,KAAKk2I,WAAal2I,KAAKujF,KAAO,SAChC,EAMA,YAAAoyD,UAAA,WACE31I,KAAK62I,YAAYn6H,IAAM1c,KAAKmF,MAAMxB,IAAI,MACxC,EAEA,YAAAkzI,UAAA,WACE,IAAK72I,KAAKyc,OAAQ,CAChB,IAAMq6H,EAAOpiI,SAASC,cAAc,UACpCmiI,EAAKp6H,IAAM1c,KAAKmF,MAAMxB,IAAI,OAC1BmzI,EAAKC,YAAc,IACnBD,EAAKn6H,MAAMmW,OAAS,OACpBgkH,EAAKn6H,MAAMwpB,MAAQ,OACnB2wG,EAAKliI,UAAY5U,KAAKujF,KAAO,aAC7BvjF,KAAKyc,OAASq6H,C,CAEhB,OAAO92I,KAAKyc,MACd,EAEA,YAAA5I,OAAA,WAIE,OAHA,YAAMA,OAAM,WACZ7T,KAAKkyI,gBACLlyI,KAAKoU,GAAGqQ,YAAYzkB,KAAK62I,aAClB72I,IACT,EACF,EA3CA,CAA8C,I,kvBCC9C,yB,8CAqCA,QArC2C,QACzC,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM8G,UAAQ,CACjBtE,KAAM,OACNqxH,WAAW,EACXsT,UAAU,GAEd,E,gCAEA,YAAA5/H,WAAA,SAAWuhB,EAAYjf,GACrB,YAAMtC,WAAU,UAACuhB,EAAOjf,GACxB7J,KAAKshI,oBACP,EAEA,YAAAA,mBAAA,WACU,IAAApF,EAA2Bl8H,KAAKkjF,GAAGuR,WAAWx8E,OAAM,uBAC5D,GAAIikH,EAAwB,CAC1B,IAAM,EAAe,SAAC59G,GACfA,EAAMqxH,aAAa,aACtBrxH,EAAM7Y,IAAI,CACR8hI,QAAQ,EACRH,WAAW,GAGjB,GAEI,IAAA/kI,YAAW65H,GACbl8H,KAAKwvI,cAAa,SAAAlxH,GAChB49G,EAAuB59G,IAAU,EAAaA,EAChD,IAEAte,KAAKwvI,aAAa,E,CAGxB,EACF,EArCA,CAA2C,I,yuBCCrC,GAAO,OAEb,4B,8CAqCA,QArC2C,QACzC,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM1oI,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,IACT6yH,OAAQ,CAAC,QAAS,OAAQ,WAE9B,E,gCAEO,EAAArxB,YAAP,SAAmB7gG,EAAiBvK,GAClC,IAAIqD,EAEJ,QAHkC,IAAArD,IAAAA,EAAA,IAGF,OAA5B,IAAAuf,aAAYhV,EAAGX,SAAkB,CACnC,IAAM,EAAW5J,EAAKu0H,UAAY,GAClClxH,EAAS,CAAE1K,KAAI,GAAE2kI,UAAU,GAI3B,IAAM50G,EAAWne,EAAGmQ,WACRgO,EAAS5xB,eACJuM,EAAOi6H,UAExB,IAAA1xH,SAAQ8c,GAAU,SAAAjU,GACR,IAAA7K,EAAY6K,EAAoB,SAEnB,GAAlBA,EAAM0G,UAAuD,KAArC1G,EAAc+sD,YAAYid,QAClD70E,GAAW,EAAS5O,SAAQ,IAAAukB,aAAY3V,KAAa,WAE/CvG,EAAOi6H,QAElB,G,CAGF,OAAOj6H,CACT,EACF,EArCA,CAA2C,I,+pECK3C,4B,8CAsQA,QAtQ+C,QAM7C,YAAAxD,OAAA,WACE,MAAO,CACLusI,SAAU,WACV30G,MAAO,UAEX,EAEA,YAAA/5B,WAAA,SAAWuhB,GACT,YAAMvhB,WAAU,UAACuhB,IACjB,IAAAw5D,SAAQtiF,KAAM,iBAAkB,aAChC,IAAMmF,EAAQnF,KAAKmF,MACb+9E,EAAKljF,KAAKkjF,GAChBljF,KAAKwK,SAASrF,EAAO,QAASnF,KAAK0xI,UACnC1xI,KAAKwK,SAASrF,EAAO,iBAAkBnF,KAAKg3I,mBAC5Ch3I,KAAKwK,SAASrF,EAAO,eAAgBnF,KAAKi3I,aAC1Cj3I,KAAKk3I,IAAMh0D,aAAE,EAAFA,EAAIi0D,cACjB,EAEA,YAAAH,kBAAA,SAAkBxlI,EAAQi6C,EAAQ5hD,QAAA,IAAAA,IAAAA,EAAA,KAC/BA,EAAKutI,aAAep3I,KAAKq3I,gBAC5B,EAEA,YAAAC,YAAA,WACQ,IAKFhjI,EALE,EAA4BtU,KAA1BmF,EAAK,QAAEoyI,EAAU,aAAEr0D,EAAE,KAEvBs0D,GADct0D,aAAE,EAAFA,EAAIu0D,gBACWtyI,EAC/B+H,GAAS,EACTwqI,GAAc,EAGlB,IAAIH,IAAepyI,EAAMxB,IAAI,aAAe6zI,IAAeE,EAAcvyI,EAAM40F,UAAU,YACvF7sF,GAAS,EAELwqI,IAAgBvyI,EAAMxB,IAAI,aAAa,CAGzC,IAFA,IAAI,EAASwB,EAAMoZ,SAEZ,IAAW,EAAOoxH,aAAa,SACpC,EAAS,EAAOpxH,SAGd,GAAU,EAAO5a,IAAI,YACvB2Q,EAAW,EAEXpH,GAAS,C,CAKf,MAAO,CAAEA,OAAM,EAAEoH,SAAQ,EAC3B,EAMM,YAAAo9H,SAAN,SAAellI,G,0HAMb,OALQ0qI,GAAF,EAAcl3I,MAAT,IAAEkjF,EAAE,KACT,EAAuBljF,KAAKs3I,cAA1BpqI,EAAM,SAAEoH,EAAQ,WAInBpH,GASc,QAAnB,EAAAV,aAAE,EAAFA,EAAI6hB,uBAAe,iBACnB,EAAAruB,KAAmB,GAAMA,KAAK23I,gBATxBrjI,IACiB,QAAnB,EAAA9H,aAAE,EAAFA,EAAI6hB,uBAAe,iBACnB60D,EAAGwb,YAAYpqF,GACfA,EAASxQ,QAAQ,SAAU0I,IAE7B,K,UAIF,EAAKorI,YAAc,UAEfV,EAAA,Y,iBAEiB,O,sBAAjB,EAAAl3I,KAAiB,GAAMk3I,EAAIj0D,OAAOjjF,KAAMA,KAAK63I,UAAY,CAAEllI,MAAOnG,K,cAAlE,EAAKqrI,UAAY,S,+BAEjB30D,EAAG+tD,SAAS,G,oBAIhBjxI,KAAK83I,cAAa,G,YAGpB,YAAAnG,UAAA,WACE3xI,KAAKq3I,gBACP,EAMM,YAAAA,eAAN,SAAqBxtI,G,YAAA,IAAAA,IAAAA,EAAA,I,4GACX1E,GAAF,EAAgCnF,MAAzB,MAAEk3I,EAAG,MAAEW,EAAS,YAAE30D,EAAE,KAG3BikD,EAAWhiI,GAASA,EAAMxB,IAAI,aAEhCuzI,EAAA,Y,iBAEA,O,sBAAA,GAAMA,EAAI7oD,QAAQruF,KAAM63I,I,cAAxB,S,+BAEA30D,EAAG+tD,SAAS,G,oBAGV,EAAA9J,GAAa,GAAMnnI,KAAK23I,cAAxB,M,OAAY,EAAC,WAA6B33I,KAAK43I,Y,0BACjD,GAAM53I,KAAKi3I,YAAYptI,IADrB,M,OACF,SACA7J,KAAK43I,YAAc,G,wBAIvB53I,KAAK83I,e,YAOD,YAAAH,WAAN,W,+GACUT,GAAF,EAAqBl3I,MAAhB,IAAE63I,EAAS,YAClB3qI,EAAS,GAETgqI,EACO,GAAMA,EAAIS,WAAW33I,KAAM63I,IADlC,M,OACF3qI,EAAS,S,iBAGX,MAAO,CAAP,EAAOA,G,QAMH,YAAA+pI,YAAN,SAAkBptI,G,YAAA,IAAAA,IAAAA,EAAA,I,qGAEhB,OADQ1E,GAAF,EAA6BnF,MAAtB,MAAEk3I,EAAG,MAAY,cACVrtI,EAAK40C,MACT,GAAMz+C,KAAK23I,cADK,I,cAC1B54H,EAAU,SACVg/G,EAAQ54H,EAAMkgF,aACd0yD,EAAU,IAAgBX,YAAa,GAAMvtI,GACnD1E,EAAMM,IAAI,UAAW,GAAIsyI,IAIrBb,aAAG,EAAHA,EAAKc,aAAcd,EAAIc,UAAUC,cACnCla,EAAMp9H,QACJo9H,EAAM73H,WAAMb,EAAW,SAClBwE,GAAI,CAEP+2H,QAASX,GAAgBlC,MAE7B54H,EAAMM,IAAI,UAAWsZ,EAASg5H,IAE9Bha,EAAM8C,gBAAgB9hH,EAASlV,G,YAInC,YAAAquI,gBAAA,SAAgBn5H,EAA8BlV,G,WAAA,IAAAA,IAAAA,EAAA,IACtC,IAAE1E,EAAcnF,KAAT,MAEPmwB,EAFgBnwB,KAAL,GACFkwB,cACOF,eAEtB,GAAIG,aAAS,EAATA,EAAW68C,WAAY,CACzB,IAAM7oD,EAAQgM,EAAU88C,WAAW,GAC7BvB,EAAWvnD,EAAMg0H,eACjB,EAASh0H,EAAMi0H,YACf,GAAY,IAAAryD,UAASra,GACrB,EAA+C,GAErD,GAAI,IAAyB,QAAZ,IAAU29B,UAAE,sBAAG,aAAa,CAC3C,IAAMk3B,EAAO,EAAUt7H,WACvBs7H,EAAK9qH,SAAQ,SAAAie,GACX,GAAIA,IAAQ,EAAW,CACrB,IAAMlxB,EAAO,WACPquH,EAAMn9F,EAAI/vB,IAAI,YAAc,GAClC,EAAQgB,KAAK,CAAEnC,KAAI,EAAEuc,QAAS8xG,EAAIvwH,MAAM,EAAG,KAC3C,EAAQqE,KAAKoa,GACb,EAAQpa,KAAK,CAAEnC,KAAI,EAAEuc,QAAS8xG,EAAIvwH,MAAM,I,MAExC,EAAQqE,KAAK+uB,EAEjB,IAEA,IAAMxmB,EAAS,EAAQ+I,OAAOuvE,SACxB1kF,EAAQoM,EAAOrI,QAAQka,GAG7B,OAFAwhH,EAAKr6H,MAAMgH,EAAQrD,GAEZ02H,EAAK98H,GAAG3C,E,EAInB,OAAOqE,EAAM6tF,OAAOj0E,EAASlV,EAC/B,EAMA,YAAAwuI,QAAA,WACU,IAAAn1D,EAAOljF,KAAI,GACbuqH,EAAQ,YACR/9G,EAAK,CAAC,UAAG+9G,EAAK,WAAW,UAAGA,EAAK,WAAU96D,KAAK,KAGtDyzB,GAAMA,EAAGp/E,QAAQ0I,EAAIxM,KAAKmF,MAC5B,EAOA,YAAAmzI,mBAAA,SAAmBptI,GACjBA,EAAEmjB,iBACJ,EAMA,YAAAypH,aAAA,SAAa70D,GACL,MAAqBjjF,KAAnBkjF,EAAE,KAAE/9E,EAAK,QAAEwO,EAAG,MAChB4kI,EAAS,CAAE9wI,GAAE,KAAE0D,IAAG,OAClB8D,EAASg0E,EAAS,KAAO,MAC/BC,EAAGs1D,aAAWv1D,GAASjjF,MACvBA,KAAKu3I,aAAet0D,EAGpB,IAAIw1D,EAAS,CAACz4I,KAAKoU,GAAG8b,cAAexb,UAgBrC,GAfA6jI,EAAOptI,IAAIstI,EAAQ,YAAaz4I,KAAK2xI,WACrC4G,EAAOtpI,GAAQwpI,EAAQ,YAAaz4I,KAAK2xI,WACzCzuD,EAAGj0E,GAAQ,qBAAsBjP,KAAK2xI,WAClCxsI,IACFA,EAAM8J,GAAQ,UAAWjP,KAAK2xI,WAC9BxsI,EAAMrB,QAAQ,cAAOm/E,EAAS,SAAW,aAI3CtvE,SAAAA,EAAKxI,IAAI,YAAanL,KAAKs4I,oBAE3B3kI,GAAOA,EAAI1E,GAAQ,YAAajP,KAAKs4I,oBAIjCt4I,KAAKiY,OAAOgkH,oBAGd,IAFM,IAAA7nH,EAAOpU,KAAI,GAEVoU,GACLA,EAAGwtC,WAAYqhC,GAEf7uE,EAAKA,EAAG6Q,aACgB,QAAd7Q,EAAGX,UAEXW,EAAK,EAIb,EACF,EAtQA,CAA+C,I,ghBCT/C,yB,8CASA,QAT+C,QAC7C,YAAAP,OAAA,WAME,OALA,YAAMA,OAAM,WAGZ7T,KAAKoU,GAAGkJ,iBAAiB,QAAStd,KAAKwzI,SAAS,GAEzCxzI,IACT,EACF,EATA,CAA+C,I,yuBCCzC,GAAO,Q,SAEb,yB,8CAcA,QAd4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM8G,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACT6yH,OAAQ,CAAC,KAAM,QAAS,QAE5B,E,gCAEO,EAAArxB,YAAP,SAAmB7gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAdA,CAA4C,I,ogBCH5C,yB,8CAAmE,QAAnB,QAAmB,EAAnE,CAAgD,I,yuBCC1C,GAAO,QACPilI,GAAK,KACLC,GAAK,KACLC,GAAO,OAEPC,GAAW,SAACnxI,GAAkB,OAAAA,GAAmB,MAAVA,CAAT,EAEpC,4B,8CAyVA,QAzV4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMZ,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACTqlI,QAAS,GACThb,MAAM,EACNib,SAAU,KACVC,MAAO,iCACPC,QAAS,0CACTC,MAAO,kCACPhjH,KAAM,EACNijH,OAAQ,GACRC,MAAO,EACPC,SAAU,EACVC,SAAU,EACVC,MAAO,GACPn2G,KAAM,GACN+iB,IAAK,EACLqzF,eAAgB,EAChBC,QAAS,GACTzyI,WAAY,CAAEyqH,gBAAiB,oBAEnC,E,gCAEA,YAAAlqH,WAAA,SAAWuhB,EAAYjf,GACrB7J,KAAKkjF,GAAKr5E,EAAKq5E,GACXljF,KAAK2D,IAAI,QAAQ3D,KAAK01I,eAC1B11I,KAAK05I,eACL15I,KAAKwK,SAASxK,KAAM,kBAAmBA,KAAK05I,cAC5C15I,KAAKwK,SAASxK,KAAM,iCAAkCA,KAAK21I,WAC3D,YAAMpuI,WAAU,UAACuhB,EAAOjf,EAC1B,EAMA,YAAA6vI,aAAA,WACU,IAGJpT,EAHIpjD,EAAOljF,KAAI,GAEfyT,EAAU,SAGd,OAJazT,KAAK2D,IAAI,aAKpB,KAAK+0I,GACL,KAAKE,GACHtS,EAAStmI,KAAK25I,mBACd,MACF,KAAKhB,GACHrS,EAAStmI,KAAK45I,iBACd,MACF,QACEnmI,EAAU,QACV6yH,EAAStmI,KAAK65I,kBAGlB75I,KAAKyF,IAAI,CAAEgO,QAAO,GAAI,CAAE7F,QAAQ,IAEhC5N,KAAKyF,IAAI,CAAE6gI,OAAM,IACjBpjD,EAAGv/E,IAAI,UAAYu/E,EAAGp/E,QAAQ,oBAChC,EAKA,YAAA4xI,aAAA,WACE,IAAMoE,EAAO95I,KAAK2D,IAAI,YAChBmxI,EAAM90I,KAAK60I,SAAS70I,KAAK2D,IAAI,QAC7BmyI,EAAKhB,EAAIvmC,MACf,OAAQurC,GACN,KAAKpB,GACL,KAAKE,GACL,KAAKD,GACH34I,KAAKyF,IAAI,UAAWqvI,EAAI35H,SAASlR,MAAM,KAAKrG,OAC5CkyI,EAAG1yG,MAAQpjC,KAAKyF,IAAI,OAAQqwI,EAAG1yG,MAC/By1G,GAAS/C,EAAGuD,WAAar5I,KAAKyF,IAAI,WAAY,GAC9CozI,GAAS/C,EAAG5/G,OAASl2B,KAAKyF,IAAI,OAAQ,GACZ,IAA1BiiC,SAASouG,EAAGwD,WAAmBt5I,KAAKyF,IAAI,WAAY,GACpDozI,GAAS/C,EAAGyD,QAAUv5I,KAAKyF,IAAI,QAASqwI,EAAGyD,OAChC,MAAXzD,EAAG3vF,KAAenmD,KAAKyF,IAAI,MAAO,GACZ,MAAtBqwI,EAAG0D,gBAA0Bx5I,KAAKyF,IAAI,iBAAkB,GAI9D,EAMA,YAAAkwI,UAAA,WACE,IACIj5H,EAAM,GAEV,OAHa1c,KAAK2D,IAAI,aAIpB,KAAK+0I,GACHh8H,EAAM1c,KAAK+5I,gBACX,MACF,KAAKnB,GACHl8H,EAAM1c,KAAKg6I,wBACX,MACF,KAAKrB,GACHj8H,EAAM1c,KAAKi6I,cAIfj6I,KAAKyF,IAAI,CAAEiX,IAAG,GAChB,EAOA,YAAA+xH,cAAA,WACE,IAAMjnI,EAAO,YAAMinI,cAAa,WAGhC,OAFazuI,KAAK2D,IAAI,aAGpB,KAAK+0I,GACL,KAAKE,GACL,KAAKD,GACH,MACF,QACM34I,KAAK2D,IAAI,UAAS6D,EAAK0uB,KAAO,QAC9Bl2B,KAAK2D,IAAI,cAAa6D,EAAK6xI,SAAW,YACtCr5I,KAAK2D,IAAI,cAAa6D,EAAK8xI,SAAW,YAG9C,OAAO9xI,CACT,EASA,YAAA0yI,iBAAA,WACE,MAAO,CACL13I,KAAM,SACNkqE,MAAO,WACP/iE,KAAM,WACN46H,YAAY,EACZ1hI,QAAS,CACP,CAAE6E,MAAO,KAAMiC,KAAM,gBACrB,CAAEjC,MAAOgxI,GAAI/uI,KAAM,WACnB,CAAEjC,MAAOkxI,GAAMjvI,KAAM,uBACrB,CAAEjC,MAAOixI,GAAIhvI,KAAM,UAGzB,EAOA,YAAAkwI,gBAAA,WACE,MAAO,CACL75I,KAAKk6I,mBACL,CACExtE,MAAO,SACP/iE,KAAM,MACNolE,YAAa,wBACbw1D,YAAY,GAEd,CACE73D,MAAO,SACP/iE,KAAM,SACNolE,YAAa,yBAGf/uE,KAAKm6I,mBACLn6I,KAAKo6I,eACLp6I,KAAKq6I,mBAET,EAMA,YAAAV,iBAAA,WACE,MAAO,CACL35I,KAAKk6I,mBACL,CACExtE,MAAO,WACP/iE,KAAM,UACNolE,YAAa,kBACbw1D,YAAY,GAEdvkI,KAAKm6I,mBACLn6I,KAAKo6I,eACLp6I,KAAKq6I,mBACL,CACE73I,KAAM,WACNkqE,MAAO,UACP/iE,KAAM,MACN46H,YAAY,GAEd,CACE/hI,KAAM,WACNkqE,MAAO,SACP/iE,KAAM,iBACN46H,YAAY,GAGlB,EAOA,YAAAqV,eAAA,WACE,MAAO,CACL55I,KAAKk6I,mBACL,CACExtE,MAAO,WACP/iE,KAAM,UACNolE,YAAa,gBACbw1D,YAAY,GAEd,CACE73D,MAAO,QACP/iE,KAAM,QACNolE,YAAa,aACbw1D,YAAY,GAEdvkI,KAAKm6I,mBACLn6I,KAAKo6I,eAET,EAOA,YAAAD,iBAAA,WACE,MAAO,CACL33I,KAAM,WACNkqE,MAAO,WACP/iE,KAAM,WACN46H,YAAY,EAEhB,EAOA,YAAA6V,aAAA,WACE,MAAO,CACL53I,KAAM,WACNkqE,MAAO,OACP/iE,KAAM,OACN46H,YAAY,EAEhB,EAOA,YAAA8V,iBAAA,WACE,MAAO,CACL73I,KAAM,WACNkqE,MAAO,WACP/iE,KAAM,WACN46H,YAAY,EAEhB,EAOA,YAAAwV,cAAA,WACE,IAAMzvI,EAAKtK,KAAK2D,IAAI,WAChB2L,EAAMtP,KAAK2D,IAAI,SACby/B,EAAOpjC,KAAK2D,IAAI,QAUtB,OATA2L,GAAOhF,GAAMA,EAAGzF,QAAQ,KAAO,EAAI,IAAM,IACzCyK,GAAO8zB,EAAO,gBAASA,GAAS,GAChC9zB,GAAOtP,KAAK2D,IAAI,YAAc,cAAgB,GAC9C2L,GAAQtP,KAAK2D,IAAI,YAAyC,GAA3B,yBAG/B2L,GAAOtP,KAAK2D,IAAI,QAAU,2BAAoB2G,GAAO,GACrDgF,GAAOtP,KAAK2D,IAAI,OAAS,GAAK,SAC9B2L,GAAOtP,KAAK2D,IAAI,kBAAoB,oBAAsB,EAE5D,EAOA,YAAAq2I,sBAAA,WACE,IAAI1qI,EAAMtP,KAAK+5I,gBAEf,OADAzqI,EAAMA,EAAIG,QAAQzP,KAAK2D,IAAI,SAAU3D,KAAK2D,IAAI,WAEhD,EAOA,YAAAs2I,YAAA,WACE,IAAI3qI,EAAMtP,KAAK2D,IAAI,SAMnB,OALA2L,GAAOtP,KAAK2D,IAAI,WAAa,IAC7B2L,GAAOtP,KAAK2D,IAAI,YAAc,cAAgB,GAC9C2L,GAAOtP,KAAK2D,IAAI,QAAU,UAAY,GACtC2L,GAAQtP,KAAK2D,IAAI,YAA8C,GAAhC,8BAC/B2L,GAAOtP,KAAK2D,IAAI,SAAW,UAAY3D,KAAK2D,IAAI,SAAW,EAE7D,EAEO,EAAAsxG,YAAP,SAAmB7gG,GACT,IAAAX,EAAiBW,EAAE,QAAVsI,EAAQtI,EAAE,IACrBkmI,EAAW,sBAAsBtwI,KAAK0S,GACtC69H,EAAa,+BAA+BvwI,KAAK0S,GACjD89H,EAAW,4BAA4BxwI,KAAK0S,GAC5C+9H,EAAYH,GAAYC,GAAcC,EAC5C,IAAI,IAAApxH,aAAY3V,IAAY,IAAiC,WAAxB,IAAA2V,aAAY3V,IAAwBgnI,EAAY,CACnF,IAAMvtI,EAAc,CAAE1K,KAAM,SAO5B,OANIka,IAAKxP,EAAOwP,IAAMA,GAClB+9H,IACEH,EAAUptI,EAAO6rI,SAAWL,GACvB6B,EAAYrtI,EAAO6rI,SAAWH,GAC9B4B,IAAUttI,EAAO6rI,SAAWJ,KAEhCzrI,C,CAEX,EACF,EAzVA,CAA4C,I,ugBCN5C,4B,8CAyJA,QAzJgD,QAI9C,YAAAuG,QAAA,WACE,MAAO,KACT,EAGA,YAAA/J,OAAA,WACE,MAAO,CAAC,CACV,EAEA,YAAAnC,WAAA,WAEE,8BAAyCvH,KAAMmB,WACvC,IAAAgE,EAAUnF,KAAI,MAChB8oB,EAAQ,CAAC,OAAQ,WAAY,WAAY,QAAS,MAAO,iBAAkB,UAC3Epf,EAASof,EAAMhkB,KAAI,SAAAk3B,GAAK,uBAAUA,EAAV,IAAeyzB,KAAK,KAClDzvD,KAAKwK,SAASrF,EAAO,kBAAmBnF,KAAK06I,gBAC7C16I,KAAKwK,SAASrF,EAAO,aAAcnF,KAAK21I,WACxC31I,KAAKwK,SAASrF,EAAOuE,EAAQ1J,KAAK26I,YACpC,EAMA,YAAAD,eAAA,WACE,IAAIZ,EAAO95I,KAAKmF,MAAMxB,IAAI,YAC1B3D,KAAKoU,GAAG4yE,UAAY,GACpBhnF,KAAKoU,GAAGqQ,YAAYzkB,KAAK46I,iBAAiBd,GAC5C,EAMA,YAAAnE,UAAA,WACQ,IAAExwI,EAAmBnF,KAAd,MAAE66I,EAAY76I,KAAL,QACtB,GAAK66I,EAAL,CACA,IAAMf,EAAO30I,EAAMxB,IAAI,YACnB+Y,EAAMvX,EAAMxB,IAAI,OAEpB,OAAQm2I,GACN,IAAK,KACHp9H,EAAMvX,EAAM40I,gBACZ,MACF,IAAK,OACHr9H,EAAMvX,EAAM60I,wBACZ,MACF,IAAK,KACHt9H,EAAMvX,EAAM80I,cAIhBY,EAAQn+H,IAAMA,CAhBM,CAiBtB,EAMA,YAAAi+H,YAAA,WACQ,IAAEx1I,EAAmBnF,KAAd,MAAE66I,EAAY76I,KAAL,QAEtB,OADamF,EAAMxB,IAAI,aAErB,IAAK,KACL,IAAK,OACL,IAAK,KACHwB,EAAMrB,QAAQ,kBACd,MACF,QACE,GAAI+2I,EAAS,CACX,IAAMzmI,EAAKymI,EACXzmI,EAAG8hB,KAAO/wB,EAAMxB,IAAI,QACpByQ,EAAGilI,SAAWl0I,EAAMxB,IAAI,YACxByQ,EAAGklI,SAAWn0I,EAAMxB,IAAI,YACxByQ,EAAG+kI,OAASh0I,EAAMxB,IAAI,S,EAI9B,EAEA,YAAAi3I,iBAAA,SAAiBd,GACf,IAAIe,EAEJ,OAAQf,GACN,IAAK,KACHe,EAAU76I,KAAK86I,gBACf,MACF,IAAK,OACHD,EAAU76I,KAAK+6I,wBACf,MACF,IAAK,KACHF,EAAU76I,KAAKg7I,cACf,MACF,QACEH,EAAU76I,KAAKi7I,eAInB,OADAj7I,KAAK66I,QAAUA,EACRA,CACT,EAEA,YAAAI,aAAA,WACE,IAAM7mI,EAAKM,SAASC,cAAc,SAGlC,OAFAP,EAAGsI,IAAM1c,KAAKmF,MAAMxB,IAAI,OACxB3D,KAAKk7I,YAAY9mI,GACVA,CACT,EAEA,YAAA0mI,cAAA,WACE,IAAM1mI,EAAKM,SAASC,cAAc,UAKlC,OAJAP,EAAGsI,IAAM1c,KAAKmF,MAAM40I,gBACpB3lI,EAAG2iI,YAAc,IACjB3iI,EAAG2Q,aAAa,kBAAmB,QACnC/kB,KAAKk7I,YAAY9mI,GACVA,CACT,EAEA,YAAA2mI,sBAAA,WACE,IAAI3mI,EAAKM,SAASC,cAAc,UAKhC,OAJAP,EAAGsI,IAAM1c,KAAKmF,MAAM60I,wBACpB5lI,EAAG2iI,YAAc,IACjB3iI,EAAG2Q,aAAa,kBAAmB,QACnC/kB,KAAKk7I,YAAY9mI,GACVA,CACT,EAEA,YAAA4mI,YAAA,WACE,IAAI5mI,EAAKM,SAASC,cAAc,UAKhC,OAJAP,EAAGsI,IAAM1c,KAAKmF,MAAM80I,cACpB7lI,EAAG2iI,YAAc,IACjB3iI,EAAG2Q,aAAa,kBAAmB,QACnC/kB,KAAKk7I,YAAY9mI,GACVA,CACT,EAEA,YAAA8mI,YAAA,SAAY9mI,GACVA,EAAGQ,UAAY5U,KAAKujF,KAAO,aAC3BnvE,EAAGuI,MAAMmW,OAAS,OAClB1e,EAAGuI,MAAMwpB,MAAQ,MACnB,EAEA,YAAAtyB,OAAA,WACE,0BAAqC7T,MACrCA,KAAKkyI,gBACL,IAAI4H,EAAO95I,KAAKmF,MAAMxB,IAAI,YAG1B,OAFA3D,KAAKoU,GAAGqQ,YAAYzkB,KAAK46I,iBAAiBd,IAC1C95I,KAAK26I,cACE36I,IACT,EACF,EAzJA,CAAgD,I,qvBCD1C,GAAO,S,SAEb,yB,8CAyBA,QAzB6C,QAC3C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM8G,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACTogH,WAAW,EACXjyE,WAAW,EACXwlF,WAAW,GAEf,E,gCAEO,EAAAnyB,YAAP,SAAmB7gG,GACjB,IAAI,IAAAgV,aAAYhV,EAAGX,UAAY,GAAM,CACnC,IAAMvG,EAAc,CAAE1K,KAAI,IAO1B,OALI4R,EAAGsI,MACLxP,EAAOwP,IAAMtI,EAAGsI,IAChBxP,EAAO0mD,OAASx/C,EAAGw/C,QAGd1mD,C,CAEX,EACF,EAzBA,CAA6C,I,2fCH7C,4B,8CA4CA,QA5CiD,QAC/C,YAAAuG,QAAA,WACE,MAAO,QACT,EAGA,YAAA/J,OAAA,WACE,MAAO,CAAC,CACV,EAEA,YAAAmK,OAAA,WACQ,IAAE1O,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACX0c,EAAMvX,EAAMxB,IAAI,OAChBw3I,EAASj4D,GAAMA,EAAGv/E,IAAI,eACtBy3I,EAAcD,GAAkB,EAClCp8H,EAAU,GAGd,GAAIrC,EAAK,CACP,IAAM,EAASvX,EAAMxB,IAAI,UACnB03I,EAAO,gBAASD,GAChBE,EAAW,gBAASF,EAAc,GAClCG,EAAS,UAAGF,EAAI,SAChBG,EAAa,UAAGF,EAAQ,SAE9Bv8H,EAAU,wBACFs8H,EAAI,yDACRA,EAAI,6CACF,EAAS,UAAG,EAAM,SAAU,GAAE,8BACvBG,EAAU,6BAAqBA,EAAU,oCAElDH,EAAI,mBAAW3+H,EAAG,gCACT6+H,EAAM,0CAAkCF,EAAI,0BACpDD,EAA+B,GAAjB,UAAGG,EAAM,OAAU,YAEtCr4D,GAAMA,EAAGz9E,IAAI,cAAe21I,EAAc,E,MAE1Cr8H,EAAU5Z,EAAM4pI,cAKlB,OAFA/uI,KAAKoU,GAAG4yE,UAAYjoE,EACpB/e,KAAKi0I,aACEj0I,IACT,EACF,EA5CA,CAAiD,I,qvBCC3C,GAAO,M,SAEb,yB,8CAsBA,QAtB0C,QACxC,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM8G,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACTwzH,eAAe,EACfjsC,UAAW,CAAEu5C,cAAc,IAE/B,E,gCAEA,YAAA7nD,QAAA,WACE,IAAI/iF,EAAO3J,KAAK2D,IAAI,WACd0qI,EAAaruI,KAAK2D,IAAI,eAE5B,OADAgG,EAAOA,EAAKiS,OAAO,GAAGuN,cAAgBxf,EAAKrJ,MAAM,GAC1C+tI,GAAc1kI,CACvB,EAEO,EAAAsrG,YAAP,SAAmB7gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAtBA,CAA0C,I,kvBCA1C,yB,8CAcA,QAd4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjBugI,YAAY,EACZC,WAAW,EACXF,WAAW,GAEf,E,gCAEO,EAAAnyB,YAAP,SAAmB7gG,EAASvK,GAC1B,YAD0B,IAAAA,IAAAA,EAAA,MACjBA,EAAKg0H,KAChB,EACF,EAdA,CAA4C,I,2fCH5C,4B,8CAIA,QAJ8C,QAC5C,YAAAppH,eAAA,SAAehB,GACb,OAAOiB,SAAS+mI,gBAAgB,6BAA8BhoI,EAChE,EACF,EAJA,CAA8C,I,8vBCC9C,yB,8CA+BA,QA/B+C,QAC7C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjB2M,QAAS,GACTogH,WAAW,EACXuT,WAAW,EACXC,YAAY,EACZF,UAAU,GAEd,E,gCAEA,YAAAjyB,OAAA,WACE,IAAM32F,EAASve,KAAKue,SACdQ,EAAU/e,KAAK2D,IAAI,WACzB,OAAO4a,aAAM,EAANA,EAAQ8qF,GAAG,WAAYtqF,EAAU/e,KAAK07I,gBAAgB38H,EAC/D,EAEA,YAAA28H,gBAAA,SAAgB38H,GACd,OAAO,IAAAs1F,mBAAkBt1F,EAC3B,EAEO,EAAAk2F,YAAP,SAAmB7gG,GACjB,GAAoB,IAAhBA,EAAG4Q,SACL,MAAO,CACLxiB,KAAM,WACNuc,QAAS3K,EAAGi3D,YAGlB,EACF,EA/BA,CAA+C,I,kvBCD/C,yB,8CAmBA,QAnB8C,QAC5C,sBAAI,uBAAQ,C,IAAZ,WAEE,OAAO,MAAK,YAAMvkE,SACpB,E,gCAEA,YAAAouG,OAAA,WACE,MAAO,iBAAOl1G,KAAK2D,IAAI,WAAU,SACnC,EAEO,EAAAsxG,YAAP,SAAmB7gG,GACjB,GAAmB,GAAfA,EAAG4Q,SACL,MAAO,CACLvR,QAAS,OACTjR,KAAM,UACNuc,QAAS3K,EAAGi3D,YAGlB,EACF,EAnBA,CAA8C,I,ogBCA9C,yB,8CAwBA,QAxBmD,QAEjD,YAAAx2D,eAAA,WAAkB,EAClB,YAAAw8H,iBAAA,WAAoB,EACpB,YAAAE,aAAA,WAAgB,EAChB,YAAAW,cAAA,WAAiB,EACjB,YAAAntH,aAAA,WAAgB,EAChB,YAAAmuH,iBAAA,WAAoB,EACpB,YAAAtL,YAAA,WAAe,EACf,YAAAC,eAAA,WAAkB,EAClB,YAAA1zH,eAAA,WACE,OAAOnU,IACT,EAEA,YAAAyU,eAAA,WACE,OAAOC,SAASmQ,eAAe,GACjC,EAEA,YAAAhR,OAAA,WACQ,IAAE1O,EAAcnF,KAAT,MAAEoU,EAAOpU,KAAL,GACjB,OAAImF,EAAMmoD,IAAIk7D,YACdp0G,EAAGi3D,YAAclmE,EAAMxB,IAAI,YADK3D,IAGlC,EACF,EAxBA,CAAmD,I,ogBCAnD,yB,8CAIA,QAJkD,QAChD,YAAAyU,eAAA,WACE,OAAOC,SAASinI,cAAc37I,KAAKmF,MAAMxB,IAAI,WAC/C,EACF,EAJA,CAAkD,I,kvBCAlD,yB,8CAsCA,QAtC8C,QAC5C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMmD,UAAQ,CACjB2M,QAAS,OACTozH,WAAW,EACXK,UAAU,EACVtlF,WAAW,EACXyjC,WAAY,GACZihD,OAAQ,GACRS,SAAU,CACR,aACA,mBACA,mBACA,oBACA,wBACA,sBACA,oBAGN,E,gCAEA,YAAA/D,UAAA,W,MACQ/Y,EAAY,QAAP,EAAAjqH,KAAKkjF,UAAE,eAAE57E,YAEpB,OADCtH,KAAK0oI,UAAWze,SAAAA,EAAI3lH,IAAItE,OAClB,YAAMgjI,UAAS,UACxB,EAEA,YAAAnB,aAAA,W,MACQ5X,EAAY,QAAP,EAAAjqH,KAAKkjF,UAAE,eAAE57E,YAEpB,OADA2iH,SAAAA,EAAI7kH,OAAOpF,MACJ,YAAM6hI,aAAY,UAC3B,EAEO,EAAA5sB,YAAP,WACE,OAAO,CACT,EACF,EAtCA,CAA8C,I,yuBCCxC,GAAO,S,SAEb,yB,8CAiBA,QAjB4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMnuG,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACTogH,WAAW,EACX74B,WAAW,EACXsrC,OAAQ,CAAC,KAAM,QAAS,OACxBt/H,WAAY,CAAEyuI,YAAa,MAE/B,E,gCAEO,EAAAxgC,YAAP,SAAmB7gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAjBA,CAA4C,I,ogBCF5C,yB,8CA6BA,QA7BgD,QAC9C,YAAAA,QAAA,WACE,MAAO,KACT,EAEA,YAAAlM,WAAA,SAAWuhB,GACT,YAAMvhB,WAAU,UAACuhB,GACjB9oB,KAAKwK,SAASxK,KAAKmF,MAAO,wBAAyBnF,KAAK21I,UAC1D,EAEA,YAAAA,UAAA,WACE,IAAMxlD,GAAQ,SAAKnwF,KAAKoU,GAAI,UAAU,GACtC+7E,IAAS,SAAOA,EAAO,CAAEzzE,IAAK1c,KAAK47I,YACrC,EAEA,YAAA/nI,OAAA,WACE,YAAMA,OAAM,WACZ,IAAMs8E,GAAQ,SAAS,SAAU,CAC/BhD,MAAO,UAAGntF,KAAKujF,KAAI,cACnB5mE,MAAO,0CACPD,IAAK1c,KAAK47I,aAGZ,OADA57I,KAAKoU,GAAGqQ,YAAY0rE,GACbnwF,IACT,EAEA,YAAA47I,SAAA,WACE,OAAO57I,KAAKmF,MAAMmgI,gBAAgB5oH,KAAO,EAC3C,EACF,EA7BA,CAAgD,I,+kCCyIhD,eAkIE,WAAYwmE,GAAZ,MACE,YAAMA,EAAI,gBAAiB,IAAI,QAAW79E,EAAW,CAAE69E,GAAE,MAAI,KAO7D,IAAK,IAAIv5E,KAzIX,EAAAo4H,eAAiB,CACf,CACEz3H,GAAI,OACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,MACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAMu5G,IAER,CACEvxI,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,MACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,OACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,SACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,SACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,MACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,SACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,UACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,WACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,OACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,UACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,UACJnF,MAAO,GACPm9B,KAAM,KAIV,EAAA4/F,eAA8C,CAAC,EAG/C,EAAAW,UAAY,GAEZ,EAAApuC,WAAa,GAEb,EAAAqnD,eAAiB,GASjB,EAAAp2B,WAAa,aAaPxiC,IAEF,EAAKjrE,OAAOotE,WAAanC,EAAGjrE,OAAOotE,YAAc,EAAKptE,OAAOotE,YAG9C,GAET17E,KAAQ,EAAKsO,SAAS,EAAKA,OAAOtO,GAAQ,GAASA,IAG3D,IAAI45E,EAAO,EAAKtrE,OAAOksE,aAIvB,GAHIZ,IAAM,EAAKtrE,OAAOisE,YAAcX,EAAO,EAAKtrE,OAAOisE,aAGnDhB,EAAI,CACNA,EAAGv/E,IAAI,UAAU64H,UAAY,EAAKuF,eAClC7+C,EAAGz7E,GAAG,0BAA2B,EAAKs0I,iBAAkB,GAExD,IAAM,EAAW74D,EAAGv/E,IAAI,YACxBu/E,EAAG14E,SAAS,EAAU,OAAO,SAACqnC,EAAKktC,EAAGl1E,GAAS,SAAKmyI,UAAU,EAAS53B,aAAavyE,GAAMhoC,EAA3C,IAC/Cq5E,EAAG14E,SAAS,EAAU,UAAU,SAACqnC,EAAKktC,EAAGl1E,GAAS,SAAKoyI,aAAa,EAAS73B,aAAavyE,GAAMhoC,EAA9C,G,CAGpD,OAAO,CACT,CAiaF,OA9jB8C,QA+J5C,YAAAw5F,KAAA,SAAK3qF,GAAL,WACE,OAAO1Y,KAAK2lH,gBAAgBjtG,EAAM,CAChCktG,SAAU,SAAC14G,GACT,IAAI05B,EAAU,EAAK2pF,aAOnB,GALK3pF,IACH,EAAKs8C,GAAGmI,MAAM/mF,IAAI,CAAC,EAAG,CAAE4R,QAAQ,IAChC0wB,EAAU,EAAK2pF,eAGb,IAAArvH,SAAQgM,GACVA,EAAOvM,QAAUimC,EAAQy+C,WAAWn4E,OAC/B,CACG,MAA6BA,EAAM,WAAnCm4E,OAAU,IAAG,KAAE,EAAKvuE,EAAI,GAAK5J,EAA/B,gBACN05B,EAAQnhC,IAAIqR,GAEZ8vB,EAAQy+C,WAAWA,E,CAEvB,GAEJ,EAEA,YAAAkX,MAAA,WACE,MAAO,CAAC,CACV,EAOA,YAAA6nB,aAAA,WACE,IAAMvyE,EAAM7xC,KAAKkjF,GAAGmI,MAAMrC,cACpBmH,EAAQt+C,aAAG,EAAHA,EAAKu4E,eACnB,OAAOj6B,aAAK,EAALA,EAAOi0B,cAChB,EAYA,YAAAmM,WAAA,WACE,OAAOvwH,KAAKokH,cACd,EA6BA,YAAA83B,cAAA,WACE,IAAM1wD,EAAMxrF,KAAKuwH,aACjB,OAAO/kC,aAAG,EAAHA,EAAKnG,YACd,EA+BA,YAAAg/B,aAAA,SAAa/+B,EAAyBh4B,GACpC,YADoC,IAAAA,IAAAA,EAAA,IAC7BttD,KAAKk8I,gBAAgB53I,IAAIghF,EAAWh4B,EAC7C,EAUA,YAAAz5C,OAAA,W,MACE,OAAyB,QAAlB,EAAA7T,KAAKm8I,qBAAa,eAAEtoI,SAASO,EACtC,EAMA,YAAA1L,MAAA,SAAMmB,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAMw7E,EAAarlF,KAAKk8I,gBAGxB,OADA72D,SAAAA,EAAYpvE,OAAOuvE,SAAS/vE,SAAQ,SAAA5V,GAAK,OAAAA,EAAEuF,OAAOyE,EAAT,IAClC7J,IACT,EASA,YAAAo8I,cAAA,SAAc/2D,EAA0B/3B,QAAA,IAAAA,IAAAA,EAAA,IACtCttD,KAAK0I,MAAM4kD,GAAK+2D,aAAah/B,EAAY/3B,EAC3C,EASA,YAAA+uF,QAAA,SAAQ75I,EAAc4S,GACZ,IAAA8tE,EAAOljF,KAAI,GACX,EAA6FoV,EAAO,MAApGjQ,OAAK,IAAG,GAAC,EAAC,EAAE,EAAiFiQ,EAAO,KAAxFktB,OAAI,IAAG,GAAC,EAAC,EAAE2yE,EAAsE7/F,EAAO,YAAhEzO,EAAyDyO,EAAO,OAAxDknI,EAAiDlnI,EAAO,WAA5C,EAAqCA,EAAO,SAA5CmnI,OAAQ,IAAG,KAAE,EAAE,EAAsBnnI,EAAO,aAA7BonI,OAAY,IAAG,KAAE,EAC1F7e,EAAW39H,KAAKgoH,QAAQxlH,GACxBi6I,EAAaz8I,KAAKgoH,QAAQrhH,GAC1B+1I,EAAiB18I,KAAKgoH,QAAQs0B,GAC9BK,EAAeF,IAA0B9e,GAAsB39H,KAAKgoH,QAAQ,YAC5E40B,EAAaD,EAAax3I,MAC1B03I,EAAYH,EAAiBA,EAAep6G,KAAOq6G,EAAar6G,KAGhEw6G,EAAiB,SAACt2I,EAAY+f,EAAaw2H,GAC/C,OAAAv2I,EAAImP,QAAO,SAACvR,EAAK+O,GACf,IAAM3S,EAAK+lB,EAAOpT,GACZ6pI,EAAWD,EAAS18I,UAAU8S,GAOpC,OANI3S,GAAMw8I,IACR54I,EAAI+O,GAAQ,W,IAAU,sDACpB6pI,EAASjxI,KAAK/L,MAAK,aAAIU,GACvBF,EAAGuL,KAAK/L,MAAK,aAAIU,EACnB,GAEK0D,CACT,GAAG,CAAC,EAVJ,EAaF,GAAqB,iBAAVe,EAAoB,CAC7B,IAAM,EAAgB,CAAE2B,SAAU3B,EAAM2B,iBACjC3B,EAAM2B,SACbsO,EAAQjQ,MAAQy3I,EAAWj2I,OAAO,SAE3BxB,GACA23I,EAAeP,EAAUp3I,EAAOy3I,IAErC,CACE3nC,aAAa0oB,GAAa8e,GAAexnC,EAAuCA,GAAe,WAAO,QAAC,EAAhD2nC,EAAW3nC,cAItEjsF,OAAOspF,eAAel9F,EAAQjQ,MAAO9E,UAAW,WAAY,CAC1DsD,IAAK,WAAM,OAAC,UACN,IAAAuJ,QAAO0vI,EAAWv8I,UAAW,aAAe,CAAC,IAC7C,IAAA6M,QAAO,EAAe,aAAe,CAAC,EAFjC,G,CAOK,iBAATo1B,IACTltB,EAAQktB,KAAOu6G,EAAUl2I,OAAO,SAC3B27B,GACAw6G,EAAeN,EAAcl6G,EAAMu6G,MAItClf,GACFA,EAASx4H,MAAQiQ,EAAQjQ,MACzBw4H,EAASr7F,KAAOltB,EAAQktB,OAGxBltB,EAAQ9K,GAAK9H,EACbxC,KAAK+hI,eAAerwH,QAAQ0D,IAG9B,IAAMzC,EAAQ,yBAAkBgrH,EAAW,SAAW,OAGtD,OAFAz6C,SAAAA,EAAIp/E,QAAQ6O,EAAOgrH,GAAYvoH,GAExBpV,IACT,EAUA,YAAAgoH,QAAA,SAAQxlH,GAGN,IAFA,IAAIs/H,EAAK9hI,KAAK+hI,eAELH,EAAK,EAAGA,EAAKE,EAAGnhI,OAAQihI,IAAM,CAErC,GADWE,EAAGF,GAAIt3H,IACN9H,EACV,OAAOs/H,EAAGF,E,CAIhB,EAOA,YAAAqb,WAAA,SAAW3yI,GACT,IAAMw3H,EAAK9hI,KAAK+hI,eACVv/H,EAAOxC,KAAKgoH,QAAQ19G,GAC1B,GAAK9H,EAAL,CACA,IAAM1B,EAAQghI,EAAGj9H,QAAQrC,GAEzB,OADAs/H,EAAGl9H,OAAO9D,EAAO,GACV0B,CAHU,CAInB,EAMA,YAAAuuI,SAAA,WACE,OAAO/wI,KAAK+hI,cACd,EAEA,YAAAia,UAAA,SAAU12D,EAAsBz7E,GAAhC,gBAAgC,IAAAA,IAAAA,EAAA,IAC1By7E,IACFA,EAAU7/E,IAAI,CACZ84F,OAAQ,aAEV,CAAC,qBAAsB,qBAAqB9oF,SAAQ,SAAA9C,GAAS,SAAKuwE,GAAGp/E,QAAQ6O,EAAO2yE,EAAWz7E,EAAlC,IAEjE,EAEA,YAAAoyI,aAAA,SAAa32D,EAAsBz7E,GAAnC,WACE,QADiC,IAAAA,IAAAA,EAAA,IAC7By7E,EAAW,CACEtlF,KAAI,GACnBslF,EAAU7/E,IAAI,CACZ84F,OAAQ,GACRt/E,MAAO,KAET,CAAC,uBAAwB,qBAAqBxJ,SAAQ,SAAA9C,GAAS,SAAKuwE,GAAGp/E,QAAQ6O,EAAO2yE,EAAWz7E,EAAlC,G,CAEnE,EAMA,YAAAkyI,iBAAA,WACU,IAAA74D,EAAOljF,KAAI,GACbmF,EAAQ+9E,EAAGv/E,IAAI,oBACf6K,EAAW00E,EAAG10E,SAAS,oBACvByQ,EAAQ,UAGdzQ,GACEA,EAAS7K,IAAI,WAAasb,GAC1BzQ,EAAS/I,IAAI,CACX84F,OAAQ,GACRt/E,MAAO,KAGX9Z,IAAS,IAAAG,SAAQH,EAAMxB,IAAI,YAAcwB,EAAMM,IAAI,SAAUwZ,EAC/D,EAEA,YAAAi+H,kBAAA,WACM,IAAEC,EAAgBn9I,KAAT,QAAEkjF,EAAOljF,KAAL,GAEjB,IAAKm9I,GAAWj6D,EAAI,CAClB,IAAMk6D,EAAYl6D,EAAGi6D,QACrB,IAAKC,EAAW,OAChB,IAAM31B,EAAO21B,EAAU3oD,WAGvB,GAFAgzB,EAAKsa,eAAiB/hI,KAAK+hI,eAC3Bob,EAAU11B,EAAK8I,aACF,CACX,IAAM7mH,EAAS,CAACi9H,GAAWC,IAAiBn3E,KAAK,KACjD0tF,EAAQ11I,GACNiC,GACA,IAAA49E,WAAS,WAAM,OAAA61D,aAAO,EAAPA,EAAS93D,WAAW,GAApB,GAAyB,K,CAG5CrlF,KAAKm9I,QAAUA,C,CAGjB,OAAOA,CACT,EAaA,YAAAzoD,QAAA,SAAQnuE,EAAmBgD,EAAoBzoB,GAC7C,IAAM2C,EAAK3C,GAAmB,IAAVA,EAAcA,EAAQ,KACpCoM,EAAS,CACbA,QAAQ,EACRmwI,OAAQ,EACR92H,OAAM,EACNgD,OAAQ,MAGV,IAAKA,IAAWhD,EAAQ,OAAOrZ,EAG/B,IAAIowI,EAAW/zH,EAAO2rF,OAAS3rF,EAAS,KAExC,IAAK+zH,EAAU,CACb,IAAM12G,EAAU5mC,KAAKk9I,oBACrBI,GAAW12G,aAAO,EAAPA,EAASosD,OAAOzpE,GAAQ,KAAM,I,CAM3C,GAFArc,EAAOqc,OAAS+zH,GAEXA,EAAU,OAAOpwI,EAGtB,IAAI00C,EAAY07F,EAAS35I,IAAI,aAE7B,IAAI,IAAAtB,YAAWu/C,GACbA,IAAcA,EAAU07F,EAAU/2H,EAAQ9iB,OACrC,CACL,IAAM2Q,EAAKmS,EAAOo/D,QAClB/jC,GAAY,IAAA1gD,SAAQ0gD,GAAaA,EAAU6N,KAAK,KAAO7N,EACvDA,GAAY,IAAA1wC,UAAS0wC,GAAaxtC,aAAE,EAAFA,EAAI1G,QAAQk0C,GAAaA,C,CAG7D,IAAKA,EAAW,OAAO,SAAK10C,GAAM,CAAEmwI,OAAQ,IAG5C,IAAIxpB,EAAYttG,EAAO5iB,IAAI,aAE3B,IAAI,IAAAtB,YAAWwxH,GACbA,IAAcA,EAAUypB,EAAU/2H,EAAQ9iB,QAE1C,IAAkB,IAAdowH,GAAuBttG,EAAOopH,aAAa,SAAW2N,EAAS35I,IAAI,YACrEkwH,GAAY,MACP,CACCz/G,EAAKkpI,EAAS33D,QACpBkuC,GAAY,IAAA3yH,SAAQ2yH,GAAaA,EAAUpkE,KAAK,KAAOokE,EACvDA,GAAY,IAAA3iH,UAAS2iH,GAAaz/G,aAAE,EAAFA,EAAI1G,QAAQmmH,GAAaA,C,CAK/D,IAAM0pB,EAAiB,CAACh3H,GAAQxhB,OAAOwhB,EAAOyqF,WAAWnsG,QAAQy4I,IAAa,EAE9E,OAAyC,SAAKpwI,IAAzC2mH,GAAa0pB,EAAkC,CAAEF,OAAQ,GAE5C,CAAEnwI,QAAQ,GAC9B,EAEA,YAAA8zH,QAAA,WACE,OAAOhhI,KAAKkiI,cACd,EAEA,YAAAsb,QAAA,SAAQlzI,GACN,OAAOtK,KAAKkiI,eAAe53H,IAAO,IACpC,EAEA,YAAA+E,QAAA,W,MACQjO,EAAMpB,KAAKghI,UACjBh4G,OAAO/nB,KAAKG,GAAKqU,SAAQ,SAAAnL,GAAM,OAAAlJ,EAAIkJ,IAAOlJ,EAAIkJ,GAAIlF,QAAnB,IACb,QAAlB,EAAApF,KAAKm8I,qBAAa,SAAE/2I,SACpB,CAACpF,KAAKkjF,GAAIljF,KAAKkiI,eAAgBliI,KAAKm8I,eAAe1mI,SAAQ,SAAA5V,GAAK,MAAK,CAAC,CAAN,GAClE,EACF,EA9jBA,CAA8CisH,G,YC1H9C,SALkC,CAChC5nC,YAAa,OACbwH,MAAO,I,2fCNH+xD,GAAW35H,OAAO45H,UAiCxB,eAME,mBACE,cAAO,K,OACP,IAAAp7D,SAAQ,EAAM,aACd,EAAKq7D,QAAU,GACf,EAAKpyI,IAAM,G,CACb,CAmNF,OA9N0C,QAkBxC,YAAAqyI,eAAA,SAAez4I,EAAkB0E,GAAjC,gBAAiC,IAAAA,IAAAA,EAAA,IAC/B,IAAImhB,EAAO,GACLk4D,EAAKljF,KAAKkjF,GACV0/C,EAAc1/C,GAAMA,EAAG0D,YAAY27B,iBACnC5lG,EAAQxX,EAAMu6H,gBACdjpG,EAAUtxB,EAAMsxB,QAYtB,OAXAz2B,KAAKuL,IAAI5G,KAAK,WAAIQ,EAAM6kH,UAGxBvzF,EAAQhhB,SAAQ,SAACtQ,GAAe,SAAKw4I,QAAQh5I,KAAKQ,EAAMw+H,cAAxB,KAE3Bf,GAAejmH,IAClBqO,EAAO,WAAI7lB,EAAM6kH,QAAO,YAAIrtG,EAAK,MAGhBxX,EAAMkgF,aACd5vE,SAAQ,SAACtQ,GAAqB,OAAC6lB,GAAQ,EAAK4yH,eAAez4I,EAAO0E,EAApC,IAClCmhB,CACT,EAEA,YAAA86G,MAAA,SAAM3gI,EAAkB0E,GAAxB,gBAAwB,IAAAA,IAAAA,EAAA,IACd,IAAAgtE,EAAShtE,EAAI,KACfq5E,EAAKr5E,EAAKq5E,GACV49C,EAAOj3H,EAAKi3H,OAAQ59C,aAAE,EAAFA,EAAI0kC,KAC9B5nH,KAAKkjF,GAAKA,EACVljF,KAAK29I,QAAU,GACf39I,KAAKuL,IAAM,GACXvL,KAAKmF,MAAQA,EACb,IAAM04I,EAAsB,GACxB7yH,EAAO7lB,EAAQnF,KAAK49I,eAAez4I,EAAO0E,GAAQ,GAChD44G,GAAc,IAAA74B,aAAY//E,EAAK44G,cAAgBv/B,EAAKA,EAAG0D,YAAY67B,YAAc54G,EAAK44G,YAE5F,GAAIqe,EAAM,CACR,IAAIp1C,EAA8B7hF,EAAK6hF,OAASo1C,EAAKn1C,SAC/C,EAAmB,CAAC,EACpB,EAAkB,GAEpB9hF,EAAKi0I,aAAe34I,IAAS,IAAAq5F,YAC/B9S,EAAQ1rF,KAAK+9I,aAAa54I,EAAOumF,IAGnCA,EAAMj2E,SAAQ,SAAAm2E,GACZ,IAAM0iC,EAAS1iC,EAAK2iC,YAEpB,GAAID,EAAJ,CACE,IAAM0vB,EAAS,EAAQ1vB,GACnB0vB,EACFA,EAAOr5I,KAAKinF,GAEZ,EAAQ0iC,GAAU,CAAC1iC,E,KALvB,CAUA,IAAMxnF,EAAM,EAAK65I,cAAcryD,EAAM,EAAM/hF,GAEvCgtE,EACFgnE,EAASl5I,KAAKP,GAEd4mB,GAAQ5mB,C,CAEZ,IAEApE,KAAKk+I,gBAAgB,GAASzoI,SAAQ,SAAAgxE,GACpC,IAAI03D,EAAW,GACT7vB,EAAS7nC,EAAKplF,IACLolF,EAAK/+E,MAEb+N,SAAQ,SAAAm2E,GACb,IAAMwyD,EAAU,EAAKH,cAAcryD,EAAM,EAAM/hF,GAE3C+hF,EAAKjoF,IAAI,gBACXqnB,GAAQ,UAAGsjG,EAAM,YAAI8vB,EAAO,KAE5BD,GAAYC,EAGdvnE,GAAQgnE,EAASl5I,KAAKy5I,EACxB,IAEID,IACFnzH,GAAQ,UAAGsjG,EAAM,YAAI6vB,EAAQ,KAEjC,IAGAj7D,GAAMu/B,GAAe/2B,EAAMtmF,QAAUsmF,EAAMtmF,OAAO,E,CAGpD,OAAOyxE,EAAOgnE,EAAS5nI,QAAO,SAAA2P,GAAK,OAAAA,CAAA,IAAKoF,CAC1C,EAOA,YAAAizH,cAAA,SAAcryD,EAAeyyD,EAAiBx0I,GAA9C,I,EAAA,YAA8C,IAAAA,IAAAA,EAAA,IAC5C,IAKIygB,EALApd,EAA2B,GACvB/H,EAAUnF,KAAI,MAChBs+I,EAAmB1yD,EAAKm0C,kBAAkB,CAAEwe,QAAS,IACrDC,EAAe5yD,EAAKjoF,IAAI,gBACxB86I,EAAe7yD,EAAKjoF,IAAI,gBAW9B,GAPqB,QAArB,EAAAioF,EAAKjoF,IAAI,oBAAY,SAAE8R,SAAQ,SAAA/B,GAC7B,IAAM/J,EAAO+J,EAASiwH,eAClB,EAAKga,QAAQ94I,QAAQ8E,IAAS,GAAK,EAAK4B,IAAI1G,QAAQ8E,IAAS,GAAKE,EAAKm6G,oBACzE15F,EAAQ,EAEZ,IAEKg0H,GAAoBh0H,GAAUk0H,GAAgBC,IAAiBt5I,EAAO,CACzE,IAAMs0E,EAAQmS,EAAKoiC,eAAe,CAAElxG,KAAM,IAC1C28D,IAAU5vE,EAAKgtE,KAAQ3pE,EAAS0+E,EAAS1+E,GAAUusE,E,MAEnD4kE,EAAK15I,KAAKinF,GAGZ,OAAO1+E,CACT,EAQA,YAAA6wI,aAAA,SAAaz4D,EAAsBoG,GAAnC,WACQt3E,EAAKkxE,EAAUK,QACjBz4E,EAAoB,GAsBxB,OApBAw+E,EAAMj2E,SAAQ,SAAAm2E,GACZ,IAEIA,EACGm0C,oBACA91H,MAAM,KACNsH,MAAK,SAAAmC,GAAY,OAAAU,aAAE,EAAFA,EAAI1G,QAAQ,EAAKgxI,gBAAgBhrI,GAAjC,KAEpBxG,EAAOvI,KAAKinF,EAEF,CAAZ,MAAOumB,GAAK,CAChB,IAEA7sB,EAAUD,aAAa5vE,SAAQ,SAAC6vE,GAC9Bp4E,EAASA,EAAOnI,OAAO,EAAKg5I,aAAaz4D,EAAWoG,GACtD,IAGAx+E,EAASA,EAAO+I,QAAO,SAAC21E,EAAM/rF,GAAM,OAAAqN,EAAOrI,QAAQ+mF,KAAU/rF,CAAzB,GAGtC,EAOA,YAAA8+I,eAAA,SAAeC,GACb,IAAMj+I,EAAS,sBAAsB4Z,KAAKqkI,GAC1C,OAAKj+I,EAEE4nF,WAAW5nF,EAAO,IAFL88I,EAGtB,EAOA,YAAAS,gBAAA,SAAgBt6C,GAAhB,gBAAgB,IAAAA,IAAAA,EAAA,IACd,IAAMi7C,EAAgD,GAEtD,OADA,IAAAt5I,MAAKq+F,GAAO,SAACl8F,EAAOrG,GAAQ,OAAAw9I,EAASl6I,KAAK,CAAEtD,IAAG,EAAEqG,MAAK,GAA1B,IACrBm3I,EAAS9tI,MAAK,SAACnR,EAAG4lB,GACvB,IAAM0pG,EAAa,CAACtvH,EAAEyB,IAAKmkB,EAAEnkB,KAAK+U,OAAM,SAAA0oI,GAAU,OAAiC,IAAjCA,EAAOj6I,QAAQ,YAAf,IAC5C6qB,EAAOw/F,EAAatvH,EAAEyB,IAAMmkB,EAAEnkB,IAC9BsuB,EAAQu/F,EAAa1pG,EAAEnkB,IAAMzB,EAAEyB,IACrC,OAAO,EAAKs9I,eAAejvH,GAAQ,EAAKivH,eAAehvH,EACzD,GACF,EAEA,YAAAs/F,UAAA,SAAUrvH,EAAY4lB,GACpB,IAAMu5H,EAAS,SAACnzD,GAAkB,OAAAA,EAAKjoF,IAAI,cAAgB,EAAzB,EAC5BurH,EAAa,CAAC6vB,EAAOn/I,GAAIm/I,EAAOv5H,IAAIpP,OAAM,SAAA2/H,GAAK,OAA4B,IAA5BA,EAAElxI,QAAQ,YAAV,IAC/C6qB,EAAoBqvH,EAAb7vB,EAAoBtvH,EAAY4lB,GACvCmK,EAAqBovH,EAAb7vB,EAAoB1pG,EAAY5lB,GAC9C,OAAOI,KAAK2+I,eAAejvH,GAAQ1vB,KAAK2+I,eAAehvH,EACzD,EAQA,YAAA+uH,gBAAA,SAAgBhrI,GACd,OAAOA,EACJzJ,MAAM,KACNnF,KAAI,SAAA2hF,GAAQ,OAAAA,EAAKx8E,MAAM,KAAK,EAAhB,IACZwlD,KAAK,IACV,EACF,EA9NA,CAA0C,M,w9BC8BlCuvF,KAAQ,IAAAxgD,UAAWz+F,OAAS,CAAC,GAAC,IAkBtC,eAsBE,WAAY+oB,EAA0BwkC,QAAA,IAAAA,IAAAA,EAAA,IAAtC,MACE,YAAMxkC,IAAM,K,OACZ,EAAK7Q,OAAS6Q,GAAS,CAAC,EACxB,EAAKwkC,IAAMA,EACX,EAAK41B,GAAK51B,EAAI41B,GACd,EAAK+7D,gBAAgB,KAAM,KAAM,CAAC,GAClC,EAAKx3I,GAAG,SAAU,EAAK2jH,Y,CACzB,CAmPF,OAhRqC,QAKnC,YAAAtkH,SAAA,WACE,MAAO,CACLmhH,UAAW,GACXu2B,aAAc,GACd7hI,MAAO,CAAC,EACRiyG,UAAW,GACX3vG,MAAO,GACP8nH,UAAU,EACVmY,WAAY,GACZT,cAAc,EACd1wB,WAAW,EACXlrF,MAAO,GACPs6G,SAAS,EACT90B,OAAO,EAEX,EAWA,YAAA+C,WAAA,SAAW55G,EAAY3H,GACb,IAAAq5E,EAAOljF,KAAI,GACbmN,EAAUnN,KAAK4F,oBACrBuH,KAAY,IAAA4nG,YAAW5nG,KAAY+1E,SAAAA,EAAIqlC,UAAU1+G,GACnD,EAEA,YAAAtG,MAAA,WACE,IAAMsG,EAAO,MAAK7J,KAAKstD,KACjB9lD,EAAO,MAAKxH,KAAKgH,YAGvB,OAFAQ,EAAKygH,UAAYjoH,KAAK2D,IAAI,aAAcmB,KAAI,SAAAsD,GAAK,OAAAA,EAAE7E,OAAF,IAE1C,IAAIvD,KAAK2P,YAAYnI,EAAMqC,EACpC,EAEA,YAAAo1I,gBAAA,SAAgBztI,EAAQutE,EAAQl1E,GACtB,IAAAq5E,EAAOljF,KAAI,GACbqzF,EAAKnQ,aAAE,EAAFA,EAAIv/E,IAAI,mBACb2oI,EAAW,CAACtsI,KAAM,mBAAoBA,KAAKi/I,iBAC7C9jF,EAAOn7D,KAAK6/H,eAShB,GARA7/H,KAAKsL,cAAa,MAAlBtL,KAAsBssI,GAElBnxE,EAAK33D,SACP23D,EAAO,MAAIA,EAAK33D,QAAM,IAGxB23D,GAAO,IAAAjqD,UAASiqD,GAAQ,CAACA,GAAQA,EAE7B/6D,MAAMc,QAAQi6D,GAAO,CACvB,IAAM/2D,EAAM+2D,EAAKllD,QAAO,SAAApW,GAAK,OAAAA,CAAA,IAAGiF,KAAI,SAAAjF,GAAK,OAACwzF,EAAKA,EAAG/uF,IAAIzE,GAAKA,CAAlB,IACzCs7D,EAAO,IAAI,GAAU/2D,E,CAGvBpE,KAAKyF,IAAI,YAAa01D,EAAMtxD,GAE5B7J,KAAKwK,SAAQ,MAAbxK,KAAiBssI,EACnB,EAYA,YAAA/d,UAAA,WACE,IAAM/rH,EAAOxC,KAAK2D,IAAI,cAChBM,EAAYjE,KAAK2D,IAAI,aAErBw7I,EAAU38I,EAAO,WAAIA,GAASyB,EAAY,SAAW,GAE3D,OAAOk7I,GAAWl7I,GAAak7I,EAAU,WAAIl7I,GAAc,GAC7D,EAYA,YAAA87H,kBAAA,SAAkBl2H,QAAA,IAAAA,IAAAA,EAAA,IAChB,IAAMqD,EAAS,GACT+R,EAAQjf,KAAK2D,IAAI,SACjBy7I,EAAcp/I,KAAK2D,IAAI,gBACvB07I,EAAU,CACd7xI,OAAQ,SAACoc,GAAgB,OAACo1H,IAAOA,GAAIxxI,OAASwxI,GAAIxxI,OAAOoc,GAAOA,CAAvC,GAGrBq+F,EAAYjoH,KAAK2D,IAAI,aAAaq8H,cAAc,EAAGqf,GACnDC,EAAWrgI,IAAUpV,EAAK01I,UAAY,WAAItgI,GAAU,GAG1D,OAFAgpG,GAAa/6G,EAAOvI,KAAK,UAAGsjH,GAAS,OAAGq3B,IACxCF,IAAgBv1I,EAAK00I,SAAWrxI,EAAOvI,KAAKy6I,GACrClyI,EAAOuiD,KAAK,KACrB,EAaA,YAAAu+D,eAAA,SAAenkH,QAAA,IAAAA,IAAAA,EAAA,IACb,IAAIqD,EAAS,GACL6gH,EAAc/tH,KAAKgH,WAAU,UAC/BihH,EAAYjoH,KAAK+/H,kBAAkBl2H,GACnC8S,EAAQ3c,KAAK0/H,cAAc,IAAE3R,UAAS,GAAKlkH,IAC3C40I,EAAez+I,KAAK2D,IAAI,gBAM9B,OAJKskH,GAAaw2B,KAAkB9hI,GAAS9S,EAAK21I,cAChDtyI,EAASuxI,EAAe9hI,EAAQ,UAAGsrG,EAAS,YAAItrG,EAAK,MAGhDzP,CACT,EASA,YAAAuyI,UAAA,WACU,IAAAv8D,EAAOljF,KAAI,GACb,EAA4BA,KAAKgH,WAA/Bk4I,EAAU,aAAEtwB,EAAS,YACvB5C,GAAU9oC,aAAE,EAAFA,EAAIv/E,IAAI,iBAAiB4pH,eAAgB,GACnDmyB,EAAgB1zB,EAAQ/1G,QAAO,SAACsoB,GAAW,MAAsB,KAAtBA,EAAE6tF,eAAF,IAA0B,GAC3E,MAAmB,UAAf8yB,GAA2BtwB,EAGxB5C,EAAQ/1G,QAAO,SAACsoB,GAAW,OAAAA,EAAE6tF,oBDtOhCzrH,EAAS,sBAAsB4Z,KCsOoCq0G,IDrOnDjuH,EAAO,GAAZ,IAFW,IACtBA,CCsO8B,IAAiD,IAAM,KAFhF++I,GAAiB,IAG5B,EASA,YAAAC,SAAA,WACU,IAAAz8D,EAAOljF,KAAI,GACb4/I,EAAa5/I,KAAK2D,IAAI,SAE5B,QADeu/E,aAAE,EAAFA,EAAIv/E,IAAI,mBAAmBk8I,cAAe,IAC3C5pI,QAAO,SAAC7N,GAAW,OAAAA,EAAEskF,YAAckzD,CAAhB,IAA4B,IAAM,IACrE,EASA,YAAAx7B,aAAA,W,MACQvyE,EAAM7xC,KAAK6/H,eACXigB,EAAqB,GAAdjuG,EAAIlxC,QAAekxC,EAAIpuC,GAAG,GACjCs8I,EAAQD,GAAQA,EAAKrc,QAAUqc,EAAKn8I,IAAI,QAC9C,OAAQo8I,IAAgB,QAAP,EAAA//I,KAAKkjF,UAAE,eAAEv/E,IAAI,iBAAiB65I,QAAQuC,KAAW,IACpE,EAaA,YAAA3qC,MAAA,SAAMvrG,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAIqD,EAAS,GACPohH,EAAStuH,KAAKuuH,YACd90C,EAAQz5E,KAAKguH,eAAenkH,GASlC,OARI4vE,GAAS5vE,EAAK21I,cAChBtyI,EAASusE,GAGP60C,GAAUphH,IACZA,EAAS,UAAGohH,EAAM,YAAIphH,EAAM,MAGvBA,CACT,EAEA,YAAAI,OAAA,W,UAAO,kDACL,IAAMtM,EAAM,4BAA6BhB,KAAMU,GAE/C,GAAW,QAAP,EAAAV,KAAKkjF,UAAE,eAAE0D,YAAY47B,cAAe,CACtC,IAAM17G,EAAW9G,KAAK8G,YAEtB,IAAA2O,SAAQ3O,GAAU,SAACY,EAAOrG,GACpBL,EAAIK,KAASqG,UACR1G,EAAIK,EAEf,WAGOL,EAAI2b,MAAM+rE,KAEb,IAAApjF,SAAQtE,EAAIinH,mBAAmBjnH,EAAIinH,WACnC,IAAA3iH,SAAQtE,EAAI2b,eAAe3b,EAAI2b,K,CAGrC,OAAO3b,CACT,EAWA,YAAAu8D,QAAA,SAAQ0qD,EAAgBhpG,EAAgBknB,EAAgB65G,G,WAAA,IAAAA,IAAAA,EAAA,IACtD,IAAMlqH,EAAK7W,GAAS,GACdghI,EAAK95G,GAAS,GACd+5G,EAASF,EAAUxB,cAAgB,GACrClwB,EAAS0xB,EAAUd,YAAc,GAIjCe,IAAO3xB,IAAQA,EAAS,SAE5B,IAAM7hH,IALO,IAAAvL,SAAQ+mH,IAAeA,EAAUzkH,OAAuBykH,EAAUzkH,QAAUykH,EAAlC,CAACA,IAK/BnjH,KAAI,SAACK,GAAe,OAAAA,EAAMw+H,aAAN,IACvCj3H,EAAoC,QAArB,EAAA1M,KAAK2D,IAAI,oBAAY,eAAEmB,KAAI,SAAAK,GAAS,OAAAA,EAAMw+H,aAAN,IAGnDwc,EAAM1zI,EAAGnM,QAAQyQ,OACjBqvI,EAAM1zI,EAAGpM,QAAQyQ,OACvB,QAAItE,EAAG9L,SAAW+L,EAAG/L,SAAWw/I,EAAI/pI,OAAM,SAACq1C,EAAG5rD,GAAM,OAAA4rD,IAAM20F,EAAIvgJ,EAAV,OAMlDG,KAAK2D,IAAI,WAAamyB,GACtB91B,KAAK2D,IAAI,eAAiBs8I,GAC1BjgJ,KAAK2D,IAAI,kBAAoBu8I,GAC7BlgJ,KAAK2D,IAAI,gBAAkB2qH,EAM/B,EACF,EAhRA,CAAqC,I,ugBCtFrC,eAGE,WAAYxlG,EAAYwkC,GAAxB,MACE,YAAMxkC,IAAM,K,OAEZ,EAAKy5D,OAASj1B,aAAG,EAAHA,EAAK41B,GAGnB37D,YAAW,WACT,EAAK9f,GAAG,SAAU,EAAK08F,UACvB,EAAK18F,GAAG,MAAO,EAAK+4H,MACtB,I,CACF,CAyBF,OAtCsC,QAepC,YAAAlzH,OAAA,SAAOzD,GAEL,OADe,2BAAiC7J,KAAM6J,GACxCoM,QAAO,SAAC21E,GAA4B,OAAAA,EAAKjvE,QAAUivE,EAAKuxD,OAApB,GACpD,EAEA,YAAA3c,MAAA,SAAMr7H,EAAgB45E,EAAa5oD,GACjChxB,EAAM85I,gBAAgB95I,EAAO45E,EAAG5oD,EAClC,EAEA,YAAAguE,SAAA,SAAS7zF,GACP,IAAM4yE,EAAKljF,KAAKuiF,OAChBW,EAAG53E,cAAcgF,GACjB4yE,EAAG57E,YAAYlC,OAAOkL,EACxB,EAGA,YAAAhM,IAAA,SAAId,EAAa8pD,GAKf,YALe,IAAAA,IAAAA,EAAA,IACO,iBAAX9pD,IACTA,EAASxD,KAAKuiF,OAAO5+E,IAAI,UAAU08I,SAAS78I,IAE9C8pD,EAAI41B,GAAKljF,KAAKuiF,OACP,yBAA+BviF,KAAM,CAACwD,EAAQ8pD,GACvD,EACF,EAtCA,CAAsC,M,YAwCtCgzF,GAASjgJ,UAAU8E,MAAQ,G,48BCiB3B,eAaE,WAAY+9E,GAAZ,MACE,YAAMA,EAAI,cAAe,KAAM,CAAC,EAAG,KAAS,KAV9C,EAAAu+C,UAAY,GAEZ,EAAA/b,WAAa,SASH,IAAAztG,EAAW,EAAI,OAEjBsrE,EAAOtrE,EAAOksE,a,OAChBZ,IAAMtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAG7CjsE,EAAOyzE,MAAQ,EAAKxI,GAAGjrE,OAAO0E,OAAS1E,EAAOyzE,OAAS,GAEvD,EAAKA,MAAQ,IAAI,GAAS,GAAIzzE,G,CAChC,CA6aF,OArcyC,QA8BvC,YAAAqzG,OAAA,WACEtrH,KAAK0rF,MAAMpnF,IAAItE,KAAKiY,OAAOyzE,MAAO,CAAE99E,QAAQ,GAC9C,EAOA,YAAAs3G,SAAA,W,MACQ+E,EAAY,QAAP,EAAAjqH,KAAKkjF,UAAE,eAAEv/E,IAAI,eACxBsmH,GAAMA,EAAG3lH,IAAItE,KAAK2rF,SACpB,EAEA,YAAA4Q,MAAA,WACE,OAAOv8F,KAAKylH,gBACd,EAEA,YAAApiB,KAAA,SAAK3qF,GACH,OAAO1Y,KAAK2lH,gBAAgBjtG,EAAM,CAEhCtX,IAAKpB,KAAK0rF,OAEd,EAqBA,YAAApnF,IAAA,SAAI2jH,EAAgBhpG,EAAgBknB,EAAgBt8B,EAAWyqF,QAAX,IAAAzqF,IAAAA,EAAA,SAAW,IAAAyqF,IAAAA,EAAA,IAC7D,IAAMlsF,EAAI6W,GAAS,GACb82B,EAAI5P,GAAS,GACbmnB,EAAM,MAAKzjD,GACb+hF,EAAO5rF,KAAK2D,IAAIskH,EAAW7/G,EAAG2tC,EAAGuX,GAKrC,OAAIs+B,GAAQA,EAAK3zE,SAAW2zE,EAAK3zE,OAAOwmI,eAGtCnxF,EAAIruC,MAAQ7W,EACZklD,EAAIshE,UAAY74E,EAChBuX,EAAI26D,UAAY,GAEZlyE,IAAMuX,EAAI4xF,aACZ5xF,EAAI4xF,WAAa,UAEnBtzD,EAAO,IAAI,GAAQt+B,EAAKttD,KAAKiY,SAExBtU,IAAI,aAAaW,IAAI2jH,EAAW3zB,GACrCt0F,KAAK0rF,MAAMpnF,IAAIsnF,EAAM0I,IAZd1I,CAeX,EAqBA,YAAAjoF,IAAA,SACEskH,EACAhpG,EACAknB,EACA65G,GAEA,IAAIO,EAAMt4B,EACV,IAAI,IAAA/2G,UAAS+2G,GAAY,CACvB,IAAM50B,EAAKrzF,KAAKkjF,GAAGu+C,UACb+e,EAAYv4B,EAAUh+G,MAAM,KAAK,GAAGq+E,OACpCjkE,EAAOrkB,KAAKkjF,GAAG8+C,OAAO3D,UAAUoiB,UAAU,CAAEx4B,UAAWu4B,IAAoB,GACjFD,EAAMltD,EAAG1vF,IAAI0gB,EAAK4jG,U,CAEpB,OAAOjoH,KAAK0rF,MAAM93E,MAAK,SAAAg4E,GAAQ,OAAAA,EAAKruB,QAAQgjF,EAAKthI,EAAOknB,EAAO65G,EAAhC,KAA+C,IAChF,EAEA,YAAAr0D,OAAA,WACE,OAAO3rF,KAAK0rF,KACd,EAWA,YAAA02C,cAAA,SAAc1pH,EAA8B7O,EAAgCif,QAAhC,IAAAjf,IAAAA,EAAA,SAAgC,IAAAif,IAAAA,EAAA,IAClE,IAAAo6D,EAAOljF,KAAI,GACbkN,EAAoB,IAEtB,IAAAgE,UAASwH,KACXA,EAAOwqE,EAAG8+C,OAAOqe,SAAS3nI,IAK5B,IAFA,IAAM6lB,EAAI7lB,aAAgBtY,MAAQsY,EAAO,CAACA,GAEjC7Y,EAAI,EAAGoC,EAAIs8B,EAAE59B,OAAQd,EAAIoC,EAAGpC,IAAK,CACxC,IAAM+rF,EAAQrtD,EAAE1+B,IAAM,CAAC,EACvB,GAAK+rF,EAAKq8B,UAAV,CAEA,IAAM50B,EAAKnQ,aAAE,EAAFA,EAAIu+C,UACVpuC,GAAIqtD,QAAQ38C,KAAK,8BAKtB,IAJA,IAAM48C,EAAK/0D,EAAKq8B,UACV9sD,EAAOwlF,aAAcvgJ,MAAQugJ,EAAK,CAACA,GACnCC,EAAU,GAEPn1I,EAAI,EAAGo1I,EAAK1lF,EAAKx6D,OAAQ8K,EAAIo1I,EAAIp1I,IAAK,CAE7C,IAAMq1I,EAAQztD,EAAG/uF,IAAI62D,EAAK1vD,IAC1Bm1I,EAAQj8I,KAAKm8I,E,CAGf,IAAMC,EAAc/gJ,KAAK2D,IAAIi9I,EAASh1D,EAAK3sE,MAAO2sE,EAAKgjC,UAAWhjC,GAC5DzmF,EAAQnF,KAAKsE,IAAIs8I,EAASh1D,EAAK3sE,MAAO2sE,EAAKgjC,UAAWhjC,EAAM/hF,GAC5DunI,GAAe2P,IAAgBl3I,EAAK0+H,iBACpC5rH,EAAQivE,EAAKjvE,OAAS,CAAC,EAI7B,IAFA,IAAAjW,UAASoiB,IAAU3jB,EAAMM,IAAIqjB,EAAOjf,GAEhCunI,EAAa,CACf,IAAM4P,EAAcn3I,EAAKlD,OAAS,SAAKxB,EAAMxB,IAAI,UAAagZ,GAAUA,EACxExX,EAAMM,IAAI,QAASu7I,EAAan3I,E,CAGlCqD,EAAOvI,KAAKQ,EA1BiB,C,CA6B/B,OAAO+H,CACT,EAWA,YAAA+zI,SAAA,SAAS3gH,GACP,OAAOtgC,KAAKoiI,cAAc9hG,EAC5B,EA8BA,YAAA4gH,QAAA,SAAQj5B,EAAgBtrG,EAAwC9S,QAAxC,IAAA8S,IAAAA,EAAA,SAAwC,IAAA9S,IAAAA,EAAA,IACtD,IAAAq1I,EAA6Br1I,EAAI,WAArBs3I,EAAiBt3I,EAAI,aACnCwa,EAAOrkB,KAAKkjF,GAAG8+C,OAAO3D,UAAUoiB,UAAU,CAC9Cx4B,UAAS,EACTtrG,MAAK,IACJ,GACKsC,EAAwBoF,EAAI,MAArBm6H,EAAiBn6H,EAAI,aAE9B3Q,EADK1T,KAAKkjF,GAAGu+C,UACCn9H,IAAI+f,EAAK4jG,WACvBr8B,EAAO5rF,KAAKsE,IAAIoP,EAAUuL,EAAOkiI,EAAc,CACnD3C,aAAY,EACZlwB,OAAQ4wB,IASV,OANIr1I,EAAKu3I,UACPx1D,EAAKhD,SAASjsE,EAAO9S,GAErB+hF,EAAK9L,SAASnjE,EAAO9S,GAGhB+hF,CACT,EAiBA,YAAAy1D,QAAA,SAAQp5B,EAAgBp+G,QAAA,IAAAA,IAAAA,EAAA,IACd,IAAAq5E,EAAOljF,KAAI,GACbqzF,EAAKnQ,EAAGu+C,UACRp9G,EAAO6+D,EAAG8+C,OAAO3D,UAAUoiB,UAAU,CAAEx4B,UAAS,IAAI,GAEpDv0G,EAAW2/E,EAAG1vF,IAAI0gB,EAAK4jG,WACrBhpG,EAAwBoF,EAAI,MAArBm6H,EAAiBn6H,EAAI,aAC5B66H,EAA6Br1I,EAAI,WAArBs3I,EAAiBt3I,EAAI,aACzC,OAAO6J,EACH1T,KAAK2D,IAAI+P,EAAUuL,EAAOkiI,EAAc,CACtC3C,aAAY,EACZU,WAAU,SAEZ75I,CACN,EAcA,YAAA+7H,SAAA,SAAS1tH,GACP,IAAMg4E,EAAQ1rF,KAAK2rF,SACnB,IAAKj4E,EAAU,OAAO,MAAIg4E,EAAMloF,QAAM,GACtC,IAAM89I,EAAa,CAAEvwI,MAAM,GACrBoqD,GAAO,IAAAjqD,UAASwC,GAAYA,EAASzJ,MAAM,KAAKnF,KAAI,SAAAsD,GAAK,OAAAA,EAAEkgF,MAAF,IAAY50E,EAE3E,OADeg4E,EAAMz1E,QAAO,SAAA2P,GAAK,OAAAu1C,EAAKt2D,QAAQ+gB,EAAEi6G,eAAeG,cAAc,KAAMshB,KAAgB,CAAlE,GAEnC,EAgBA,YAAA7X,UAAA,SAAU9/H,EAAcgT,EAA0B9S,QAA1B,IAAA8S,IAAAA,EAAA,SAA0B,IAAA9S,IAAAA,EAAA,IACxC,MAA4BA,EAAI,QAAhCyqF,OAAO,IAAG,GAAC,EAAC,EAAEs6B,EAAc/kH,EAAI,UAClCoV,EAAQpV,EAAKoV,OAAS,GACtBsiI,GAAS,IAAA33D,aAAYglC,GAAyB5uH,KAAKkjF,GAAGs+D,kBAApB5yB,EAElCl7G,EADK1T,KAAKkjF,GAAGu+C,UACCn9H,IAAI,CAAEqF,KAAI,EAAEnH,KAAM,YAAoB8xF,GACpD1I,EAAO5rF,KAAKsE,IAAIoP,EAAUuL,EAAOsiI,EAAO,CAAC,EAAGjtD,GAElD,OADA1I,EAAK9L,SAASnjE,EAAO,SAAK9S,GAASyqF,IAC5B1I,CACT,EAYA,YAAA49C,UAAA,SAAU7/H,EAAcE,QAAA,IAAAA,IAAAA,EAAA,IACd,IAAA+kH,EAAc/kH,EAAI,UACpBoV,EAAQpV,EAAKoV,OAAS,GACtBsiI,GAAS,IAAA33D,aAAYglC,GAAyB5uH,KAAKkjF,GAAGs+D,kBAApB5yB,EAClCl7G,EAAW1T,KAAKkjF,GAAGu+C,UAAU99H,IAAIgG,EAAM,YAC7C,OAAO+J,GAAY1T,KAAK2D,IAAI+P,EAAUuL,EAAOsiI,EAC/C,EAgBA,YAAAxe,aAAA,SAAap5H,EAAcgT,EAA0B9S,QAA1B,IAAA8S,IAAAA,EAAA,SAA0B,IAAA9S,IAAAA,EAAA,IACnD,IAAMoV,EAAQpV,EAAKoV,OAAS,GACtBsiI,EAAQ13I,EAAK+kH,WAAa5uH,KAAKkjF,GAAGs+D,kBAElC9tI,EADK1T,KAAKkjF,GAAGu+C,UACCn9H,IAAI,CAAEqF,KAAI,EAAEnH,KAAM,gBAChCopF,EAAO5rF,KAAKsE,IAAIoP,EAAUuL,EAAOsiI,GAEvC,OADA31D,EAAK9L,SAASnjE,EAAO9S,GACd+hF,CACT,EAYA,YAAA61D,aAAA,SAAa93I,EAAcE,QAAA,IAAAA,IAAAA,EAAA,IACzB,IAAMoV,EAAQpV,EAAKoV,OAAS,GACtBsiI,EAAQ13I,EAAK+kH,WAAa5uH,KAAKkjF,GAAGs+D,kBAClC9tI,EAAW1T,KAAKkjF,GAAGu+C,UAAU99H,IAAIgG,EAAM,eAC7C,OAAO+J,GAAY1T,KAAK2D,IAAI+P,EAAUuL,EAAOsiI,EAC/C,EAaA,YAAAn8I,OAAA,SAAOwmF,EAAwB/hF,GAC7B,IAAMgH,GAAW,IAAAK,UAAS06E,GAAQ5rF,KAAKohI,SAASx1C,GAAQA,EAClD1+E,EAASlN,KAAK2rF,SAASvmF,OAAOyL,EAAUhH,GAC9C,OAAO,IAAA3I,SAAQgM,GAAUA,EAAS,CAACA,EACrC,EAMA,YAAAxE,MAAA,SAAMmB,GAEJ,YAFI,IAAAA,IAAAA,EAAA,IACJ7J,KAAK2rF,SAASzlF,MAAM,GAAI2D,GACjB7J,IACT,EAEA,YAAA0hJ,kBAAA,SAAkBhuH,EAAgB7pB,QAAA,IAAAA,IAAAA,EAAA,IAC1B,IAAAoV,EAA8BpV,EAAI,MAA3B+kH,EAAuB/kH,EAAI,UAAJA,EAAI,UAEtCoV,EAAQjf,KAAKkjF,GAAGv/E,IAAI,UAAY,GAChCirH,EAAY5uH,KAAKkjF,GAAGs+D,mBAEtB,IAAMl3I,EAAKopB,EAAIs2F,QAMf,OALchqH,KAAK2rF,SAAS11E,QAAO,SAAA2P,GACjC,UAAK,IAAAgkE,aAAY3qE,IAAU2G,EAAEjiB,IAAI,WAAasb,SACzC,IAAA2qE,aAAYglC,IAAchpG,EAAEjiB,IAAI,eAAiBirH,IAC/ChpG,EAAEk6G,uBAAyB,WAAIx1H,GACxC,GAEF,EAOA,YAAAuJ,OAAA,W,MAME,OALc,QAAd,EAAA7T,KAAK2hJ,iBAAS,SAAEv8I,SAChBpF,KAAK2hJ,UAAY,IAAI,GAAa,CAChC18I,WAAYjF,KAAK0rF,MACjBzzE,OAAQjY,KAAKiY,SAERjY,KAAK2hJ,UAAU9tI,SAASO,EACjC,EAEA,YAAA/E,QAAA,W,MACErP,KAAK0rF,MAAMxlF,QACXlG,KAAK0rF,MAAMpgF,gBACG,QAAd,EAAAtL,KAAK2hJ,iBAAS,SAAEv8I,QAClB,EACF,EArcA,CAAyC0mH,G,YCdzC,SAPmC,CACjCl6B,SAAU,GACVgwD,OAAQ,GACRC,eAAe,EACfhxD,QAAQ,G,ogBCmCV,yB,8CAyDA,QAzDmC,QACjC,YAAA/pF,SAAA,WACE,MAAO,CACL4lE,MAAO,GACP3tD,QAAS,GACTwiI,MAAO,GACPO,SAAU,GACVC,UAAU,EACV7rI,YAAQ7Q,EACRwqI,SAAS,EACTxhD,SAAS,EACT+C,aAAS/rF,EACT2B,WAAY,CAAC,EAEjB,EAMA,YAAAgjH,MAAA,WACE,OAAOhqH,KAAKsK,EACd,EAMA,YAAAs5H,SAAA,WACE,OAAO5jI,KAAK2D,IAAI,QAClB,EAMA,YAAAq+I,SAAA,WACE,OAAOhiJ,KAAK2D,IAAI,QAClB,EAMA,YAAAg0I,WAAA,WACE,OAAO33I,KAAK2D,IAAI,UAClB,EAMA,YAAAs+I,iBAAA,WACE,IAAMC,EAAMliJ,KAAK2D,IAAI,YAErB,OAAO,IAAAtB,YAAW6/I,aAAG,EAAHA,EAAKv+I,KAAOu+I,EAAIv+I,IAAI,UAAWu+I,aAAG,EAAHA,EAAKx1E,OAAQw1E,aAAG,EAAHA,EAAKx1E,MAAQw1E,CAC7E,EACF,EAzDA,CAAmC,M,2fC5EnC,4B,8CAAuD,QAAnB,QAAmB,EAAvD,CAAoC,M,YAEpChwD,GAAO7xF,UAAU8E,MAAQ,G,ogBCuBzB,yB,8CAWA,QAXsC,QAGpC,YAAA2B,SAAA,WACE,MAAO,CACLwD,GAAI,GACJoiE,MAAO,GACPvvD,MAAM,EACNnW,WAAY,CAAC,EAEjB,EACF,EAXA,CAAsC,M,2fCzBtC,4B,8CAA8D,QAAtB,QAAsB,EAA9D,CAAwC,M,YAExCm7I,GAAW9hJ,UAAU8E,MAAQ,G,2fCS7B,eAeE,WAAYgxB,EAAQle,QAAA,IAAAA,IAAAA,EAAA,IAApB,MACE,YAAMke,IAAE,KACAhxB,EAAU,EAAI,M,OACtB,EAAK+9E,GAAKjrE,EAAOirE,GACjB,EAAKjrE,OAASA,EACd,EAAKmqI,QAAU,EAAKA,QAAQr2I,KAAK,GACjC,EAAKw3E,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAK35E,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAKoF,SAASrF,EAAO,SAAU,EAAK0O,Q,CACtC,CAyHF,OAjJuC,QAKrC,YAAAnK,OAAA,WACE,MAAO,CACLuiF,MAAO,cACPyK,UAAW,YACXo7C,UAAW,kBACXziD,KAAM,aACNgzD,QAAS,gBAEb,EAaA,YAAAC,YAAA,WACE,OAAOtiJ,KAAKkjF,GAAGgP,MACjB,EAEA,YAAAyE,YAAA,SAAYnqF,GACJ,MAAwBxM,KAAtBiY,EAAM,SAAE9S,EAAK,QAAE+9E,EAAE,KACnBkO,EAAUjsF,EAAMxB,IAAI,YAAcsU,EAAO4pI,cAE/C,GADA3+D,EAAGp/E,QAAQ,cAAeqB,EAAOqH,GAC5B4kF,EAAL,CAEO,IAAI,IAAA/uF,YAAW+uF,GACpB,OAAOA,EAAQjsF,EAAO+9E,aAAE,EAAFA,EAAIzwB,YAAa,CAAE9/C,MAAOnG,IAElD,IAII+Z,EAAeknC,EAJbiiC,EAASz3E,EAAOsqI,YAChBxjI,EAAU5Z,EAAMxB,IAAI,WACpBqwD,EAAWkvB,EAAG8F,cAMpB,GALA0G,EAAOohC,eAAe/xG,GAKlBi1C,EAGF,GAFQ07B,EAAO8yD,YAAYxuF,EAAS2xB,QAAS5mE,GAEnC0jI,MACRl8H,EAASytC,MACJ,CACL,IAAM,EAASA,EAASz1C,SACpB,GACMmxE,EAAO8yD,YAAY,EAAO78D,QAAS5mE,GACjC0jI,QACRl8H,EAAS,EACTknC,EAAW,EAAO43B,aAAaxgF,QAAQmvD,GAAY,E,CAO3D,IAAKztC,EAAQ,CACX,IAAMqgB,EAAUs8C,EAAGqtC,aACX7gC,EAAO8yD,YAAY57G,EAAQ++C,QAAS5mE,GAClC0jI,QAAOl8H,EAASqgB,E,CAG5B,IAAM15B,EAASqZ,GAAUA,EAAOysE,OAAOj0E,EAAS,CAAEtb,GAAIgqD,IAAY,GAClEvgD,GAAUg2E,EAAGwb,YAAYxxF,EAAQ,CAAE4a,OAAQ,G,CAC7C,EAMA,YAAA4sG,UAAA,SAAUxpH,GACF,MAAwBlL,KAAtBiY,EAAM,SAAEirE,EAAE,KAAE/9E,EAAK,QACnBkpF,EAAUlpF,EAAMxB,IAAI,WAE1B,GAAiB,IAAbuH,EAAEyjB,QAAiB1W,EAAOsqI,YAAaviJ,KAAKoU,GAAGwtC,YAAaysC,EAAhE,CACAnL,EAAGkb,gBACH,IAAM1O,EAASz3E,EAAOsqI,YACtB7yD,EAAOgzD,eAAiBv9I,EACxBuqF,EAAOizD,cAAc3iJ,KAAKoU,GAAIlJ,GAC9BwkF,EAAOohC,eAAe9wH,KAAKmF,MAAMxB,IAAI,YACrC+rF,EAAO6P,UAAUv/F,KAAKoU,KACtB,IAAA3M,IAAGiN,SAAU,UAAW1U,KAAKoiJ,QAPkD,CAQjF,EAEA,YAAAnQ,gBAAA,SAAgBzlI,GACdxM,KAAKsiJ,cAAcM,YAAY5iJ,KAAKmF,MAAOqH,EAC7C,EAEA,YAAAq2I,WAAA,SAAWr2I,GACTxM,KAAKsiJ,cAAcQ,OAAOt2I,EAC5B,EAEA,YAAAokH,cAAA,WACE5wH,KAAKsiJ,cAAcS,WACrB,EAMA,YAAAX,QAAA,YACE,IAAAj3I,KAAIuJ,SAAU,UAAW1U,KAAKoiJ,SAC9B,IAAM1yD,EAAS1vF,KAAKiY,OAAOsqI,YAM3B7yD,EAAOhxB,MAAQ,EACfgxB,EAAOa,SACT,EAEA,YAAA18E,OAAA,W,MACQ,EAA+B7T,KAA7BkjF,EAAE,KAAE9uE,EAAE,KAAET,EAAG,MAAE4vE,EAAI,OAAEp+E,EAAK,QAC1BkpF,EAAUlpF,EAAMxB,IAAI,WACpB6D,EAAOrC,EAAMxB,IAAI,eAAiB,CAAC,EACnCugB,EAAM1c,EAAK2lF,OAAS,GACpBv4E,EAAY,UAAG2uE,EAAI,SACnB7W,EAASwW,GAAMA,EAAG5vB,EAAE,8BAAuBnuD,EAAMmF,MAAUnF,EAAMxB,IAAI,SAErEkQ,EAAS1O,EAAMxB,IAAI,UACnB49I,EAAQp8I,EAAMxB,IAAI,SAClBq/I,EAAS30D,EAAU,UAAGz5E,EAAS,aAAc,UAAG2uE,EAAI,gBAC1D5vE,EAAInM,KAAKA,GACT4M,EAAGQ,UAAY,UAAGsP,EAAG,YAAItP,EAAS,YAAI2uE,EAAI,kBAAUy/D,GAAS16D,OAC7Dl0E,EAAG4yE,UAAY,kBACXu6D,EAAQ,uBAAe3sI,EAAS,qBAAY2sI,EAAK,UAAW,GAAE,gCAClD3sI,EAAS,oBAAW83D,EAAK,gBAEzCt4D,EAAG6J,MAAQzW,EAAKyW,QAAuB,QAAd,EAAA7J,EAAGi3D,mBAAW,eAAEid,QACzCl0E,EAAG2Q,aAAa,YAAa,cAAG,IAAAmvF,QAAOhxB,IAAQmL,KAE/C,IAAMnhF,EAAS2G,GAAUA,EAAO,CAAEO,GAAE,EAAEjP,MAAK,EAAEyP,UAAS,EAAEohF,OAAQzS,IAEhE,OADIr2E,IAAQkH,EAAG4yE,UAAY95E,GACpBlN,IACT,EACF,EAjJA,CAAuC,M,gpBCJvC,eAgCE,WAAYm2B,EAAQle,GAApB,MACE,YAAMke,IAAE,KACR,EAAKle,OAASA,EACd,IAAMgsE,EAAMhsE,EAAOksE,cAAgB,G,OACnC,EAAKjB,GAAKjrE,EAAOirE,GACjB,EAAKe,IAAMA,EACX,EAAKg/D,OAAS,oBACd,EAAKC,OAAS,mBACd,EAAKC,UAAY,UAAGl/D,EAAG,cACvB,EAAKm/D,YAAc,UAAGn/D,EAAG,QACzB,EAAKrvE,UAAY,UAAGqvE,EAAG,kBACvB,EAAKz5E,SAAS,EAAKrF,MAAO,cAAe,EAAKk+I,kBAC9C,EAAKl+I,MAAMm9B,KAAO,E,CACpB,CAsDF,OAnG0C,QAWxC,YAAA54B,OAAA,WACE,MAAO,CACL,qBAAsB,SAE1B,EAEA,YAAAgzG,SAAA,SAAS,G,IAAEz4B,EAAG,MAAEvX,EAAK,QACnB,OAAOwJ,EAAI,uMACQ,2CACA,8BACR,sCAEQ,6BAJH+N,EACAA,EACVvX,EAEUuX,EAElB,EAGA,YAAAj9E,WAAA,WACE,OAAOhH,KAAKmF,MAAMxB,IAAI,eAAiB,CAAC,CAC1C,EAiBA,YAAA0/I,iBAAA,WACMrjJ,KAAKmF,MAAMxB,IAAI,QAAS3D,KAAKmd,OAC5Bnd,KAAKod,OACZ,EAEA,YAAAD,KAAA,WACEnd,KAAK2T,IAAI2R,SAAStlB,KAAKojJ,aACvBpjJ,KAAKsjJ,YAAa1uI,UAAY,UAAG5U,KAAKmjJ,UAAS,YAAInjJ,KAAKkjJ,QACxDljJ,KAAKujJ,cAAe5mI,MAAMC,QAAU,EACtC,EAEA,YAAAQ,MAAA,WACEpd,KAAK2T,IAAI04E,YAAYrsF,KAAKojJ,aAC1BpjJ,KAAKsjJ,YAAa1uI,UAAY,UAAG5U,KAAKmjJ,UAAS,YAAInjJ,KAAKijJ,QACxDjjJ,KAAKujJ,cAAe5mI,MAAMC,QAAU,MACtC,EAEA,YAAA0lD,OAAA,WACE,IAAIn9D,EAAQnF,KAAKmF,MACjBA,EAAMM,IAAI,QAASN,EAAMxB,IAAI,QAC/B,EAEA,YAAA2/I,UAAA,WAKE,OAJKtjJ,KAAKwjJ,SACRxjJ,KAAKwjJ,OAASxjJ,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKmjJ,aAGxCnjJ,KAAKwjJ,MACd,EAEA,YAAAD,YAAA,WAKE,OAJKvjJ,KAAKyjJ,WACRzjJ,KAAKyjJ,SAAWzjJ,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKikF,IAAG,cAG7CjkF,KAAKyjJ,QACd,EAEA,YAAAzwD,OAAA,SAAO5+E,GACLpU,KAAKujJ,cAAc9+H,YAAYrQ,EACjC,EAEA,YAAAP,OAAA,WACQ,MAA8B7T,KAA5BkjF,EAAE,KAAE9uE,EAAE,KAAET,EAAG,MAAExO,EAAK,QAAE8+E,EAAG,MACzBvX,EAAQwW,EAAG5vB,EAAE,kCAA2BnuD,EAAMmF,MAASnF,EAAMxB,IAAI,SAMvE,OALAyQ,EAAG4yE,UAAYhnF,KAAK08G,SAAS,CAAEz4B,IAAG,EAAEvX,MAAK,IACzC/4D,EAAI2R,SAAStlB,KAAK4U,WAClBjB,EAAI2sB,IAAI,CAAEjW,MAAOllB,EAAMxB,IAAI,WAC3B3D,KAAKqjJ,mBAEErjJ,IACT,EACF,EAnGA,CAA0C,M,wvBCO1C,eAcE,WAAY6J,EAAWoO,GAAvB,MACE,YAAMpO,IAAK,MACX,IAAAy4E,SAAQ,EAAM,YAAa,SAAU,SAAU,UAC/C,EAAKrqE,OAASA,GAAU,CAAC,EACzB,EAAKyrI,WAAa75I,EAAK65I,YAAc,GACrC,EAAKC,mBAAqB,CAAC,EAC3B,IAAMpgE,EAAO,EAAKtrE,OAAOksE,cAAgB,GACzC,EAAKZ,KAAOA,EACZ,EAAKqgE,WAAa,UAAGrgE,EAAI,iBACzB,EAAKsgE,eAAiB,UAAGtgE,EAAI,YAC7B,EAAKugE,UAAY,UAAGvgE,EAAI,oBACxB,IAAMyH,EAAO,EAAK/lF,W,OAClB,EAAKuF,SAASwgF,EAAM,MAAO,EAAK2Y,OAChC,EAAKn5F,SAASwgF,EAAM,QAAS,EAAKn3E,QAClC,EAAKqvE,GAAK,EAAKjrE,OAAOirE,GAElB,EAAKA,KACP,EAAKjrE,OAAOsqI,UAAY,EAAKA,W,CAEjC,CA+JF,OAhMwC,QAmCtC,YAAAD,YAAA,WACE,OAAOtiJ,KAAKkjF,GAAGgP,MACjB,EAEA,YAAA6xD,aAAA,SAAal6I,QAAA,IAAAA,IAAAA,EAAA,IACX7J,KAAKiY,OAAS,SACTjY,KAAKiY,QACLpO,EAEP,EAMA,YAAA04I,UAAA,WACU,IAAAr/D,EAAOljF,KAAI,GACnB,GAAKkjF,EAAL,CAEA,IAAKljF,KAAK0vF,OAAQ,CAChB,IAAMkP,EAAQ1b,EAAGoT,MACX7T,EAASS,EAAGsB,OAElBxkF,KAAK0vF,OAAS,IAAIkP,EAAMC,OAAO,CAE7Bp+C,UAAWgiC,EAAOmC,UAClBka,OAAQrc,EAAOsc,cACfC,aAAc,IACdC,QAAS,IACThb,IAAKjkF,KAAKujF,KACVG,QAAS1jF,KAAK2jF,OACdgM,UAAW3vF,KAAK6yD,OAChBwpC,OAAQr8F,KAAKq8F,OACb3nF,SAAU+tE,EAAOmU,aAAanH,gBAC9BlkE,UAAW,IACX2zE,QAAS,EACTC,OAAQ,EACRjc,GAAE,EACFkc,eAAgB,G,CAIpB,OAAOp/F,KAAK0vF,MAzBG,CA0BjB,EAEA,YAAA/L,OAAA,SAAOn3E,GACLxM,KAAKkjF,GAAGqS,cACRv1F,KAAKsiJ,cAAcM,YAAY5iJ,KAAK0vF,OAAOgzD,eAAgBl2I,EAC7D,EAEA,YAAA6vF,OAAA,SAAO7vF,GACLxM,KAAKsiJ,cAAcQ,OAAOt2I,GAC1BxM,KAAKkjF,GAAGp/E,QAAQ,kBAAmB0I,EACrC,EAEA,YAAAqmD,OAAA,SAAOyyB,GACLtlF,KAAKkjF,GAAG2S,aACR71F,KAAKsiJ,cAAcS,UAAU,CAAEz9D,UAAS,WACjCtlF,KAAK0vF,OAAOgzD,cACrB,EAOA,YAAA/+C,MAAA,SAAMx+F,GACJnF,KAAKsE,IAAIa,EACX,EAQA,YAAAb,IAAA,SAAIa,EAAc8U,GACR,IAAAhC,EAAWjY,KAAI,OAQjBuxF,EAPO,IAAI,GACf,CACEpsF,MAAK,EACL6B,WAAY7B,EAAMxB,IAAI,eAExBsU,GAEoBpE,SAASO,GAC3B0tI,EAAW38I,EAAMxB,IAAI,YAGzB,GAAIm+I,GAAY9hJ,KAAK0jJ,aAAezrI,EAAO+rI,iBAAkB,EACvD,IAAA9yI,UAAS4wI,GACXA,EAAW,CAAEx3I,GAAIw3I,EAAUp1E,MAAOo1E,IACzB,IAAAp7I,UAASo7I,KAAcA,EAASx3I,KACzCw3I,EAASx3I,GAAKw3I,EAASp1E,OAGzB,IAAMu3E,EAAWjkJ,KAAK0jJ,WAAWp/I,IAAIw9I,GAC/BoC,EAAQD,EAAStgJ,IAAI,MACrB+/I,EAAa1jJ,KAAKmkJ,kBACpBC,EAAUpkJ,KAAK2jJ,mBAAmBO,GAWtC,OATA/+I,EAAMM,IAAI,WAAYw+I,EAAU,CAAEr2I,QAAQ,KAErCw2I,GAAWV,IACdU,EAAU,IAAI,GAAa,CAAEj/I,MAAO8+I,GAAYhsI,GAAQpE,SACxD7T,KAAK2jJ,mBAAmBO,GAASE,EACjCV,EAAWj/H,YAAY2/H,EAAQhwI,UAGjCgwI,GAAWA,EAAQpxD,OAAOzB,G,CAI5Bt3E,EAAWA,EAASwK,YAAY8sE,GAAYvxF,KAAKgzF,OAAOzB,EAC1D,EAEA,YAAA4yD,gBAAA,WAKE,OAJKnkJ,KAAKqkJ,SACRrkJ,KAAKqkJ,OAASrkJ,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAK8jJ,aAGxC9jJ,KAAKqkJ,MACd,EAEA,YAAAd,YAAA,WAKE,OAJKvjJ,KAAKyjJ,WACRzjJ,KAAKyjJ,SAAWzjJ,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAK4jJ,WAAU,aAAK5jJ,KAAK6jJ,kBAG9D7jJ,KAAKyjJ,QACd,EAEA,YAAAzwD,OAAA,SAAO5+E,GACL,IAAIwtI,EAAS5hJ,KAAKujJ,cAClB3B,GAAUA,EAAOn9H,YAAYrQ,EAC/B,EAEA,YAAAP,OAAA,sBACQ0vE,EAAOvjF,KAAKujF,KACZ/uB,EAAO9/C,SAASisB,gCACf3gC,KAAKqkJ,cACLrkJ,KAAKyjJ,SACZzjJ,KAAK2jJ,mBAAqB,CAAC,EAC3B3jJ,KAAKoU,GAAG4yE,UAAY,+BACJhnF,KAAK8jJ,UAAS,yCACd9jJ,KAAK4jJ,WAAU,qCACb5jJ,KAAK6jJ,eAAc,iCAIrC7jJ,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKb,IAAIa,EAAOqvD,EAAhB,IAC9Bx0D,KAAKgzF,OAAOx+B,GACZ,IAAMtwC,EAAM,UAAGlkB,KAAK6jJ,eAAc,aAAKtgE,EAAI,kBAAUA,EAAI,aAGzD,OAFAvjF,KAAK2T,IAAI2R,SAASpB,GAClBlkB,KAAKuxF,UAAW,EACTvxF,IACT,EACF,EAhMA,CAAwC,M,qvBCgD3B,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChB,GAAQ,UAAG,GAAK,OAChB,GAAW,UAAG,GAAK,UACnB,GAAW,UAAG,GAAK,UACnB,GAAiB,UAAG,GAAQ,WAC5BskJ,GAAS,UAAG,GAAK,QAKxB,GAAS,CACbljJ,IAAK,GACLy4C,OAAQ,GACRv1C,IAAK,GACLc,OAAQ,GACR+gH,aAAc,GACd92B,KAAMi1D,GACNzlF,UAXyB,UAAGylF,GAAM,UAYlC3lF,QAXwB,UAAG2lF,GAAM,SAYjCzzD,OAXsB,UAAG,GAAK,WAchC,eAkBE,WAAY3N,GAAZ,I,EAAA,OAeE,O,EAdA,YAAMA,EAAI,eAAgB,IAAI,IAA6B,QAAtB,EAAAA,EAAGjrE,OAAO6rG,oBAAY,eAAE89B,SAAU,IAAK,GAAQ,KAAS,MAX/F2C,MAAQ,GAER,EAAAryD,OAAS,GAET,EAAAsyD,SAAW,GAEX,EAAArC,WAAa,GAEb,EAAAz8B,WAAa,GAMX,EAAKk8B,OAAS,EAAKxgJ,IACnB,EAAKqjJ,cAAgB,IAAI,GAAO,EAAK7C,OAAOp+I,QAC5C,EAAKkgJ,WAAa,IAAI,GAGtB,EAAK9B,OAAOn6I,GAAG,OAAO,SAAAtC,GAAS,SAAKs/I,cAAcngJ,IAAIa,EAAvB,IAC/B,EAAKy8I,OAAOn6I,GAAG,UAAU,SAAAtC,GAAS,SAAKs/I,cAAcr/I,OAAOD,EAA1B,IAClC,EAAKy8I,OAAOn6I,GAAG,SAAS,SAAAujF,GAAQ,SAAKy5D,cAAcv+I,MAAM8kF,EAAKxnF,OAA9B,IAEhC,EAAK4iH,cAAe,IAAA9+B,WAAS,WAAM,SAAKkK,aAAL,GAAoB,GAEhD,CACT,CA0PF,OA5R0C,QA2CxC,YAAAA,YAAA,WACExxF,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ7wF,KAAK8wF,eAC3C,EAEA,YAAAA,aAAA,sBACQ4zD,EAAM1kJ,KAAK2kJ,iBACjB,MAAO,CACLhzD,GAAI3xF,KACJ4hJ,OAAQ5hJ,KAAK2rF,SAASnoF,OACtBi9C,UAAWikG,EAAIjkG,UACfoe,UAAW,SAAC4a,EAAcjtE,GAAe,SAAKkoH,UAAUj7C,EAAOjtE,EAAtB,EACzC6iF,KAAM,SAAC7iF,GAAc,SAAKs2I,OAAOt2I,EAAZ,EACrB0jH,SAAU,SAACtlE,GAAqB,SAAKw3F,QAAQx3F,EAAb,EAEpC,EAEA,YAAAg4F,YAAA,SAAYnpE,EAAcjtE,GAClB,MAAyBxM,KAAvBkjF,EAAE,KAAEx5E,EAAM,SAAEk4I,EAAM,SACpB7iI,EAAU06D,EAAMk+D,WAAal+D,EAAMk+D,aAAel+D,EACxDz5E,KAAK4kJ,WAAanrE,EAClByJ,EAAGz9E,IAAI,CAAEo/I,WAAY,KAAMx0B,YAAatxG,IACxC,CAACmkE,EAAI0+D,GAAQ98I,KAAI,SAAAjF,GAAK,OAAAA,EAAEiE,QAAQ4F,EAAOm1D,UAAW4a,EAAOjtE,EAAnC,GACxB,EAEA,YAAAs2I,OAAA,SAAOt2I,GACC,MAAyBxM,KAAvBkjF,EAAE,KAAEx5E,EAAM,SAAEk4I,EAAM,SACpBnoE,EAAQz5E,KAAK4kJ,WACnB,CAAC1hE,EAAI0+D,GAAQ98I,KAAI,SAAAjF,GAAK,OAAAA,EAAEiE,QAAQ4F,EAAO2lF,KAAM5V,EAAOjtE,EAA9B,GACxB,EAEA,YAAAu2I,UAAA,SAAUl5I,QAAA,IAAAA,IAAAA,EAAA,IACF,MAAyB7J,KAAvBkjF,EAAE,KAAEx5E,EAAM,SAAEk4I,EAAM,SACpBnoE,EAAQz5E,KAAK4kJ,WACblxH,EAAM7pB,EAAKy7E,WAAapC,EAAGv/E,IAAI,cAGrC,UAFO3D,KAAK4kJ,WAERlxH,GAAO+lD,EAAO,CAChB,IAAMqrE,EAAS,iBACTC,EAAYrxH,EAAI/vB,KAAO+vB,EAAI/vB,IAAImhJ,GAC/BE,EAAWvrE,EAAM91E,IAAI,aAAeohJ,EACpC3/D,EAAW3L,EAAM91E,IAAI,UACrBkO,GAAQ,IAAA3Q,SAAQwyB,GAAOA,EAAI,GAAKA,GAElC0xD,GAAa4/D,IAAyB,IAAb5/D,IAC3BlC,EAAGwb,YAAY7sF,GAGbmzI,IACFnzI,EAAM/N,QAAQ,UACdihJ,GAAalzI,EAAMrM,MAAMs/I,IAGvBrrE,EAAM91E,IAAI,YACZkO,EAAMy9H,OAAM,SAAC57G,GAAa,OAAAA,EAAIm8G,SAAJ,G,CAI9B3sD,EAAGz9E,IAAI,CAAEo/I,WAAY,KAAMx0B,YAAa,OAEpC52C,GACF,CAACyJ,EAAI0+D,GAAQ98I,KAAI,SAAAjF,GAAK,OAAAA,EAAEiE,QAAQ4F,EAAOi1D,QAASjrC,EAAK+lD,EAA/B,GAE1B,EAEA,YAAAwrE,gBAAA,WACE,OAAOjlJ,KAAKkjF,GACTv/E,IAAI,UACJo0F,YACAjzF,KAAI,SAACqrF,GAAe,OAAAA,EAAM7tD,IAAN,GACzB,EAEA,YAAAgvD,YAAA,SAAYznF,GACV,YADU,IAAAA,IAAAA,EAAA,IACF7J,KAAKklJ,KAAO,SACdllJ,KAAKklJ,MAAQ,CAAC,GACfr7I,EAEP,EAEA,YAAA86I,eAAA,WACE,OAAO3kJ,KAAKklJ,MAAQ,CAAC,CACvB,EAEA,YAAAxwB,UAAA,SAAUj7C,EAAcjtE,GACtBxM,KAAK4iJ,YAAYnpE,EAAOjtE,GACxBxM,KAAKilJ,kBAAkBxvI,SAAQ,SAAC0vI,GAAY,OAAAA,EAAGtxB,UAAU9D,aAAb,GAC9C,EAEA,YAAAqyB,QAAA,SAAQx3F,GACN5qD,KAAKilJ,kBAAkBxvI,SAAQ,SAAC0vI,GAAY,OAAAA,EAAGtxB,UAAU7D,UAAUplE,EAAvB,IAC5C5qD,KAAK+iJ,WACP,EAEA,YAAA9O,WAAA,WACQ,MAA6Bj0I,KAA3B0jJ,EAAU,aAAEzrI,EAAM,SAAEirE,EAAE,KACxBj+E,EAAajF,KAAKykJ,cACxBzkJ,KAAKolJ,WAAa,IAAI,GAAW,CAAEngJ,WAAU,EAAEy+I,WAAU,GAAI,SAAKzrI,GAAM,CAAEirE,GAAE,KAC5EljF,KAAKolH,WAAWngH,EAAWzB,QAC3BxD,KAAKwxF,aACP,EAiBA,YAAAltF,IAAA,SAAIgG,EAAYwe,EAAwBjf,QAAA,IAAAA,IAAAA,EAAA,IACtC,IAAMqhI,EAAMpiH,GAAS,CAAC,EAEtB,OADAoiH,EAAI5gI,GAAKA,EACFtK,KAAK4hJ,OAAOt9I,IAAI4mI,EAAKrhI,EAC9B,EAWA,YAAAlG,IAAA,SAAI2G,GACF,OAAOtK,KAAK4hJ,OAAOj+I,IAAI2G,EACzB,EAUA,YAAAqhF,OAAA,WACE,OAAO3rF,KAAK4hJ,MACd,EAMA,YAAAyD,cAAA,WACE,OAAOrlJ,KAAKykJ,aACd,EAYA,YAAAr/I,OAAA,SAAOq0E,EAAuB5vE,GAC5B,YAD4B,IAAAA,IAAAA,EAAA,IACrB7J,KAAKkmH,SAASzsC,EAAO5vE,EAC9B,EAOA,YAAAy7I,cAAA,WACE,OAAOtlJ,KAAK0jJ,UACd,EAMA,YAAA70D,aAAA,W,MACE,OAAsB,QAAf,EAAA7uF,KAAKolJ,kBAAU,eAAEhxI,EAC1B,EA8BA,YAAAP,OAAA,SAAO+tI,EAAiB/3I,QAAA,IAAAA,IAAAA,EAAA,IAChB,MAA6B7J,KAA3B0jJ,EAAU,aAAEzrI,EAAM,SAAEirE,EAAE,KACxBqiE,EAAW3D,GAAU5hJ,KAAK2rF,SAASnoF,OAEzC,GAAIqG,EAAK27I,SAAU,CACjB,IAAMvgJ,EAAa,IAAI,GAAOsgJ,GAC9B,OAAO,IAAI,GAAW,CAAEtgJ,WAAU,EAAEy+I,WAAU,GAAI,OAAExgE,GAAE,GAAKjrE,GAAWpO,IAAQgK,SAASO,E,CAazF,OAVIpU,KAAKolJ,aACPplJ,KAAKolJ,WAAWrB,aAAal6I,GAC7B7J,KAAKolJ,WAAWngJ,WAAWiB,MAAMq/I,GAE5BvlJ,KAAKolJ,WAAW7zD,WACnBvxF,KAAKolJ,WAAWvxI,SAChB7T,KAAKolJ,WAAW7zD,UAAW,IAIxBvxF,KAAK6uF,cACd,EAEA,YAAAx/E,QAAA,W,MACQo2I,EAAQ,CAACzlJ,KAAK4hJ,OAAQ5hJ,KAAKykJ,cAAezkJ,KAAK0jJ,YACrD+B,EAAM3gJ,KAAI,SAAAi6E,GAAK,OAAAA,EAAEzzE,eAAF,IACfm6I,EAAM3gJ,KAAI,SAAAi6E,GAAK,OAAAA,EAAE74E,OAAF,IACA,QAAf,EAAAlG,KAAKolJ,kBAAU,SAAEhgJ,QACnB,EACF,EA5RA,CAA0C0mH,G,YC+D1C,SAlBsC,CACpC5nC,YAAa,OACb0N,SAAU,GACVq2B,UAAW,GACX30C,OAAQ,CAAC,CAAE3pE,KAAM,SAAW,CAAEA,KAAM,UAAY,CAAEA,KAAM,oBACxD+7I,QAAS,uFACTC,SACE,qQACFC,UACE,+LACFC,WACE,+IACFC,cACE,iKACFC,gBAAgB,EAChBl1D,QAAQ,G,2fC7IV,4B,8CAuBA,QAvBmC,QACjC,YAAA/pF,SAAA,WACE,MAAO,CACL6C,KAAM,GACN+iE,MAAO,GAEX,EAMA,YAAAggB,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,OAClB,EAMA,YAAAigI,SAAA,WACE,OAAO5jI,KAAK2D,IAAI,UAAY3D,KAAK0sF,SACnC,EACF,EAvBA,CAAmC,M,YAwBnCs5D,GAAM3lJ,UAAUgN,YAAc,O,ooBC1BxB44I,GAAY,kBAElB,eA4BE,WAAY9vH,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KACFle,EAASke,EAAEle,QAAU,CAAC,E,OAC5B,EAAKA,OAASA,EACd,EAAKxY,OAAS02B,EAAE12B,OAChB,EAAKurF,KAAO70D,EAAE60D,MAAQ,KACtB,EAAK/G,IAAMhsE,EAAOisE,aAAe,GACjC,EAAKX,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAKjB,GAAKjrE,EAAOirE,GACjB,EAAK14E,SAAS,EAAKrF,MAAO,gBAAiB,EAAKosI,c,CAClD,CAyFF,OA/H0C,QACxC,YAAA70B,SAAA,WACQ,MAAyB18G,KAAvBikF,EAAG,MAAE9+E,EAAK,QAAE8S,EAAM,SACpBy0D,EAAQvnE,EAAMxB,IAAI,UAAY,GAEpC,OAAOuyE,EAAI,yQACM,sBAAuB,0DACvB,6BAAiC,6BACjC,mBAAoB,iCAAoD,oBAF3E+N,EAAuBA,EACvBA,EAA+BvX,EAC/BuX,EAAoBA,EAAmChsE,EAAO6tI,cAE9E,EAEA,YAAAp8I,OAAA,WACE,MAAO,CACL,0BAA2B,YAC3B,0BAA2B,eAC3B,2BAA4B,eAC5B,2BAA4B,aAEhC,EAyBA,YAAAw8I,WAAA,WAKE,OAJKlmJ,KAAKmmJ,UACRnmJ,KAAKmmJ,QAAUnmJ,KAAKoU,GAAG8rB,cAAc,oBAGhClgC,KAAKmmJ,OACd,EAMA,YAAAC,aAAA,WACU,IAAAljE,EAAOljF,KAAI,GACbmmJ,EAAUnmJ,KAAKkmJ,aAErBC,EAAQF,IAAa,OACrBE,EAAQnxG,QACRkuC,SAAAA,EAAIs1D,YAAW,EACjB,EAOA,YAAA6N,WAAA,WACQ,IAAElhJ,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACXmmJ,EAAUnmJ,KAAKkmJ,aACfx5E,EAAQy5E,EAAQ96E,aAAe,GAC/BgoB,EAAKnQ,aAAE,EAAFA,EAAIu+C,UACf0kB,EAAQF,IAAa,QACrB/iE,SAAAA,EAAIs1D,YAAW,GAEXnlD,GAAMA,EAAGizD,OAAOnhJ,EAAOunE,KAAWvnE,IACpCghJ,EAAQI,UAAYphJ,EAAMxB,IAAI,SAElC,EAMA,YAAA6iJ,aAAA,WACU,IAAArhJ,EAAUnF,KAAI,MACtBmF,EAAMM,IAAI,UAAWN,EAAMxB,IAAI,UACjC,EAOA,YAAA8iJ,UAAA,WACEzmJ,KAAKP,OAAOinJ,eAAe1mJ,KAAKmF,MAClC,EAMA,YAAAosI,aAAA,WACQ,MAAyBvxI,KAAvBmF,EAAK,QAAEwO,EAAG,MAAEsE,EAAM,SAClB2tI,EAA0B3tI,EAAM,UAArB4tI,EAAe5tI,EAAM,WAClC0uI,EAAOhzI,EAAIC,KAAK,qBAElBzO,EAAMxB,IAAI,WACZgjJ,EAAKzwE,KAAK0vE,GACVjyI,EAAI04E,YAAY,YAEhBs6D,EAAKzwE,KAAK2vE,GACVlyI,EAAI2R,SAAS,UAEjB,EAEA,YAAAzR,OAAA,WACE,IAAMowE,EAAMjkF,KAAKikF,IACXV,EAAOvjF,KAAKujF,KAIlB,OAHAvjF,KAAK2T,IAAIuiE,KAAKl2E,KAAK08G,YACnB18G,KAAK2T,IAAInM,KAAK,QAAS,UAAGy8E,EAAG,eAAOV,EAAI,aACxCvjF,KAAKuxI,eACEvxI,IACT,EACF,EA/HA,CAA0C,M,mpBCK1C,eAwDE,WAAYm2B,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KACR,EAAKle,OAASke,EAAEle,QAAU,CAAC,EAC3B,EAAKgsE,IAAM,EAAKhsE,OAAOisE,aAAe,GACtC,EAAKX,KAAO,EAAKtrE,OAAOksE,cAAgB,GACxC,EAAKvvE,UAAY,EAAKqvE,IAAM,OAC5B,EAAK2iE,aAAe,EAAK3iE,IAAM,SAC/B,EAAK4iE,YAAc,EAAK5iE,IAAM,UAC9B,EAAK3Q,OAAS,EAAKr7D,OAAOq7D,QAAU,GACpC,IAAM4P,EAAK,EAAKjrE,OAAOirE,GACjB8H,EAAO,EAAK/lF,WAClB,EAAKshB,OAAS28D,EACd,IAAM+iC,EAAK/iC,EAAGu+C,UACd,EAAKhiI,OAASwmH,EACd,EAAK/iC,GAAKA,EACV,EAAK4jE,kBAAmB,IAAAx/D,UAAS,EAAKw/D,iBAAiB/6I,KAAK,GAAO,GACnE,EAAKg7I,WAAY,IAAAz/D,UAAS,EAAKy/D,UAAUh7I,KAAK,GAAO,G,OAGrD,EAAKvB,SAAS04E,EAFC,6CAEW,EAAK4jE,kBAC/B,EAAKt8I,SAAS04E,EAAI,sBAAuB,EAAK4jE,kBAC9C,EAAKt8I,SAAS04E,EAHI,wCAGW,EAAK8jE,qBAClC,EAAKx8I,SAAS04E,EAAI,iCAAkC,EAAK6jE,WACzD,EAAKv8I,SAASwgF,EAAM,MAAO,EAAK7sB,QAChC,EAAK3zD,SAASwgF,EAAM,QAAS,EAAKi8D,eAClC,EAAKz8I,SAASwgF,EAAM,SAAU,EAAKk8D,YACnC,EAAK18I,SACHy7G,EAAGt6B,SACHs6B,EAAGv8G,OAAOuV,OACV,IAAAqoE,WAAS,WAAM,SAAK6/D,cAAL,GAAqB,IAEtC,EAAKhzI,iB,CACP,CAoVF,OA5a2C,QACzC,YAAAuoG,SAAA,SAAS,G,IAAE0qC,EAAS,YAAEC,EAAS,YAAE1B,EAAQ,WAAED,EAAO,UAAEzhE,EAAG,MAAEV,EAAI,OAC3D,OAAOrN,EAAI,6mCAAgB,gBAAiB,gCAC1B,mBAAoB,kBAA0B,6BAC9C,sBAAuB,0CACpB,sDACK,SAAa,uCACb,iDACG,qFAED,8CACE,kIAMd,wBAA0B,+BACxB,uDACE,2CACD,qBAAsB,YAAe,8BAAoC,mCACtE,YAAe,8DAAmE,8CAErF,sCACE,eAAuB,iCACvB,+CAvBG+N,EAAiBA,EAC1BA,EAAoBA,EAAoBojE,EACxCpjE,EAAuBA,EACpBA,EACIV,EAAaA,EACbA,EACIU,EAEFV,EACEA,EAMbU,EAAyBV,EACvBU,EACEA,EACDA,EAAsBA,EAAeA,EAAgCyhE,EAClEzhE,EAAeA,EAA8D0hE,EAEhF1hE,EACEA,EAAiBmjE,EACjBnjE,EAEpB,EAEA,YAAAv6E,OAAA,WACE,MAAO,CACL,uBAAwB,eACxB,mBAAoB,cACpB,wBAAyB,YACzB,qBAAsB,eACtB,0BAA2B,YAE/B,EAqDA,YAAA49I,UAAA,WACU,IASJ3qI,EATIumE,EAAOljF,KAAI,GACbumB,EAASvmB,KAAKunJ,YACdC,EAAOtkE,EAAG0kC,IAEVK,EAAYjoH,KAAKynJ,mBAAmB,CAAE59I,KAD/B,CAAEw6H,WAAY,KAErBplH,EAAQikE,EAAGv/E,IAAI,SACfirH,EAAY1rC,EAAGs+D,kBACfkG,EAA4B,GAC5B97D,EAAO47D,EAAK7jJ,IAAIskH,EAAWhpG,EAAO2vG,IAAc44B,EAAKljJ,IAAI2jH,EAAWhpG,EAAO2vG,GAGjF5uH,KAAK2nJ,aAAalyI,SAAQ,SAAA8Q,GACxB,IAAMqhI,EAAgBJ,EAAKhe,UAAUjjH,EAAOyjG,QAAS,CACnD/qG,MAAK,EACL2vG,UAAS,IAEXjyG,EAAQirI,EAAcn/D,WACtBm/D,EAAc9nE,SAAS,CAAC,GACxB4nE,EAAe/iJ,KAAKijJ,EACtB,IAEAjrI,GAASivE,EAAKhD,SAASjsE,GACvBumE,EAAGp/E,QAAQ,qBACXo/E,EAAGp/E,QAAQ,uBAAwB,CACjCwhF,UAAW/+D,EACX0hG,UAAS,EACT2G,UAAS,EACThjC,KAAI,EACJ87D,eAAc,EACdzoI,MAAK,GAET,EAOA,YAAAioI,WAAA,SAAW/hJ,GACTnF,KAAK6nJ,gBACP,EAOA,YAAA1pF,OAAA,SAAOh5D,GACLnF,KAAK8nJ,aAAa3iJ,EACpB,EAOA,YAAA4iJ,YAAA,W,QACc,QAAZ,EAAA/nJ,KAAKgoJ,eAAO,SAAE1nH,IAAI,CAAE1jB,QAAS,SAClB,QAAX,EAAA5c,KAAKioJ,cAAM,SAAEv0D,OAAO1+C,OACtB,EAOA,YAAAkzG,UAAA,W,QACc,QAAZ,EAAAloJ,KAAKgoJ,eAAO,SAAE1nH,IAAI,CAAE1jB,QAAS,KAClB,QAAX,EAAA5c,KAAKioJ,cAAM,SAAEt0D,OAAO1tF,IAAI,GAC1B,EAOA,YAAAkiJ,aAAA,SAAaj9I,G,MACO,KAAdA,EAAEgrD,SACJhrD,EAAEqiB,iBACFvtB,KAAKooJ,UAAqB,QAAX,EAAApoJ,KAAKioJ,cAAM,eAAEhiJ,QACL,KAAdiF,EAAEgrD,SACXl2D,KAAKkoJ,WAET,EAEA,YAAAG,YAAA,WACE,IAAMppI,EAAQjf,KAAKkjF,GAAGy8D,WAChB2I,EAAWtoJ,KAAK6/I,YACtByI,GAAYA,EAASriJ,IAAIgZ,EAC3B,EAOA,YAAA6nI,iBAAA,SAAiB,G,IAAEyB,QAAF,MAAmB,CAAC,EAAC,GAAZ,QACxBvoJ,KAAKoxC,gBAAgBm3G,EACvB,EAEA,YAAAn3G,gBAAA,SAAgBm3G,GACd,IAAIC,EAAOD,GAAWvoJ,KAAK2nJ,aAEvB1/B,EAAwB,GAW5B,OAZAugC,GAAO,IAAAtnJ,SAAQsnJ,GAAQA,EAAO,CAACA,KAGnBA,EAAK7nJ,SACfsnH,EAAYjoH,KAAKynJ,mBAAmB,CAAEc,QAASC,IAE/CxoJ,KAAK+mJ,UAAU,CAAE0B,eAAgBxgC,KAGnCjoH,KAAKiF,WAAWiB,MAAM+hH,GACtBjoH,KAAK6nJ,eAAeW,GACpBxoJ,KAAKP,OAAO+xF,cACLy2B,CACT,EAEA,YAAAw/B,mBAAA,SAAmB,G,IAAA,aAA8B,CAAC,EAAC,EAA9Bc,EAAO,UAAE,IAAA1+I,KAAAA,OAAI,IAAG,GAAC,EAAC,EAC/B2+I,EAAOD,GAAWvoJ,KAAK2nJ,aAC7B,OAAO3nJ,KAAKP,OAAOipJ,qBAAqBF,EAAM3+I,EAChD,EAEA,YAAA8+I,iBAAA,W,UAAiB,kDACf,OAAO,EAAA3oJ,KAAKP,QAAOmpJ,SAAQ,QAAIloJ,EACjC,EAEA,YAAAqmJ,UAAA,WACQ,IAEF8B,EAFE,EAAqC7oJ,KAAnC8oJ,EAAU,aAAE7wI,EAAM,SAAEhT,EAAU,aAChCshB,EAASvmB,KAAKunJ,YAGpB,GAAIhhI,GAAUtO,EAAO8tI,gBAAkB9gJ,EAAWtE,OAAQ,CACxD,IAAMgc,EAAQ4J,EAAOkiE,WACrBogE,IAAY,IAAAvjJ,SAAQqX,E,CAGtBmsI,GAAcA,EAAWD,EAAW,OAAS,SAC/C,EAEA,YAAAtB,UAAA,WACE,OAAOvnJ,KAAKumB,OAAOyiE,aACrB,EAEA,YAAA2+D,WAAA,WACE,OAAO3nJ,KAAKumB,OAAOg/D,gBACrB,EAOA,YAAAsiE,eAAA,SAAeU,GACb,IAAMrlE,EAAKljF,KAAKkjF,GACV0/C,EAAc1/C,GAAMA,EAAG0D,YAAY27B,iBACnC3lG,EAAU5c,KAAKiF,WAAWtE,QAAUiiI,EAAc,GAAK,OAC7D5iI,KAAK+oJ,aAAazoH,IAAI,UAAW1jB,GACjC5c,KAAKgpJ,eAAeT,EACtB,EAEA,YAAAvB,oBAAA,WACEhnJ,KAAKgpJ,eAAehpJ,KAAK2nJ,aAC3B,EAOA,YAAAqB,eAAA,SAAeT,GAAf,WACQU,EAAQjpJ,KAAKoU,GAAG8rB,cAAc,mBAC9BhzB,EAAmB,GACrBs7I,EAAOD,GAAWvoJ,KAAK2nJ,cAC3Ba,GAAO,IAAAtnJ,SAAQsnJ,GAAQA,EAAO,CAACA,IAE1B/yI,SAAQ,SAAA8Q,GAAU,OAAArZ,EAAOvI,KAAK,EAAKukJ,UAAU3iI,GAA3B,IACvB0iI,IAAUA,EAAMjiE,UAAY95E,EAAOuiD,KAAK,OACxCzvD,KAAKqoJ,aACP,EAEA,YAAAa,UAAA,SAAU3iI,GACF,IAEFrZ,EAFE,EAAsBlN,KAApBikF,EAAG,MAAEhsE,EAAM,SAAEirE,EAAE,KACfimE,EAAiClxI,EAAM,aAAzB8tI,EAAmB9tI,EAAM,eAG/C,IAAI,IAAA/G,UAASqV,GACXrZ,EAASgpE,EAAI,uEAAmB,aAAkB,aAArB+N,EAAe19D,OACvC,CACL,IAAMsrB,EAAMtrB,aAAM,EAANA,EAAQs5G,eACpB,IAAKhuF,EAAK,MAAO,GACjB,IAAMo2E,EAAYp2E,EAAIsyF,eAChBllH,EAAQikE,EAAGv/E,IAAI,SACfylJ,EAAQ7iI,EAAOyjG,MACjB9zC,EAAI,0HAAmB,aAA4B,sCAC/B,aAA0B,aAD1B+N,EAAe19D,EAAOmmE,UACzBzI,EAAe19D,EAAOyjG,SACvC,GAEJ98G,GADAA,EAAUlN,KAAKiF,WAAyB+6H,cAAc/X,IACpC/xC,EAAI,wEAAmB,cAAmB,aAAtB+N,EAAgB/2E,GAAkBqZ,EAAO5iB,IAAI,iBAAmBylJ,EACtGl8I,EAAS64I,GAAkBqD,EAAQA,EAAQl8I,EAC3CA,GAAU+R,EAAQi3D,EAAI,0EAAmB,gBAAoB,aAAvB+N,EAAkBhlE,GAAiB,GACzE/R,EAASi8I,EAAeA,EAAa,CAAEj8I,OAAM,EAAE+R,MAAK,EAAEsH,OAAM,IAAMrZ,C,CAGpE,OAAOA,GAAU,wBAAgB+2E,EAAG,iBAAQ/2E,EAAM,UACpD,EAOA,YAAAm8I,aAAA,SAAa78I,GACH,IAAA02E,EAAOljF,KAAI,GACX0H,EAAU8E,EAAG+Z,OAAM,MAC3B28D,EAAGz9E,IAAI,QAASiC,EAClB,EAOA,YAAA0gJ,UAAA,SAAU1gJ,GACR,IAAMglE,EAAQhlE,EAAM4gF,OACf5b,IACL1sE,KAAKP,OAAO6pJ,YAAY,CAAE58E,MAAK,IAC/B1sE,KAAKkoJ,YAEP,EASA,YAAAJ,aAAA,SAAa3iJ,EAAcipH,GACzB,IAAMn0G,EAAWm0G,EACX33F,EAAUz2B,KAAK+pI,aACfx4C,EAAW,IAAI,GAAa,CAChCpsF,MAAK,EACL8S,OAAQjY,KAAKiY,OACb+yE,KAAMhrF,KAAKiF,WACXxF,OAAQO,KAAKP,SACZoU,SAASO,GAIZ,OAFA6F,EAAWA,EAASwK,YAAY8sE,GAAY96D,EAAQu8D,OAAOzB,GAEpDA,CACT,EAMA,YAAA01D,cAAA,sBACQzyF,EAAO9/C,SAASisB,yBAChBlK,EAAUz2B,KAAK+pI,aACrBtzG,EAAQub,QACRhyC,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAK2iJ,aAAa3iJ,EAAOqvD,EAAzB,IAC9B/9B,EAAQu8D,OAAOx+B,EACjB,EAOA,YAAAu1E,WAAA,WACE,OAAO/pI,KAAK2T,IAAIC,KAAK,mBACvB,EAOA,YAAAisI,UAAA,WACE,IAAK7/I,KAAKupJ,QAAS,CACjB,IAAMn1I,EAAKpU,KAAK2T,IAAIC,KAAK,iBACzB5T,KAAKupJ,QAAUn1I,EAAG,IAAMA,C,CAE1B,OAAOpU,KAAKupJ,OACd,EAOA,YAAAR,WAAA,WAEE,OADK/oJ,KAAKwpJ,WAAUxpJ,KAAKwpJ,SAAWxpJ,KAAK2T,IAAIC,KAAK,IAAM5T,KAAK6mJ,cACtD7mJ,KAAKwpJ,QACd,EAEA,YAAArC,aAAA,WACQ,IAAE1nJ,EAAeO,KAAT,OAAEkjF,EAAOljF,KAAL,GACZypJ,EAAcvmE,EAAG5vB,EAAE,8BACnBzwD,EAAUpD,EACbogJ,YACA/6I,KAAI,SAAAma,GACH,IAAMytD,EAAQwW,EAAG5vB,EAAE,iCAA0Br0C,EAAM3U,MAAS2U,EAAM2kH,YAAc3kH,EAAM3U,GACtF,MAAO,0BAAkB2U,EAAM3U,GAAE,cAAKoiE,EAAK,YAC7C,IACCjd,KAAK,IAEF64F,EAAWtoJ,KAAK6/I,YACtByI,GAAYA,EAASpyE,KAAK,6BAAoBuzE,EAAW,oBAAY5mJ,IACrE7C,KAAKqoJ,aACP,EAEA,YAAAx0I,OAAA,WACQ,MAAqC7T,KAAnCkjF,EAAE,KAAEe,EAAG,MAAEV,EAAI,OAAEtrE,EAAM,SAAEtE,EAAG,MAAES,EAAE,KAC9BP,EAA8BoE,EAAM,OACtCyxI,EAAU,CACd/D,SAFoC1tI,EAAM,SAG1CytI,QAHoCztI,EAAM,QAI1CovI,UAAWnkE,EAAG5vB,EAAE,yBAChB8zF,UAAWlkE,EAAG5vB,EAAE,4BAChBiwB,KAAI,EACJU,IAAG,EACH7vE,GAAE,GAEJT,EAAIuiE,KAAKl2E,KAAK08G,SAASgtC,IACvB,IAAMC,EAAY91I,GAAUA,EAAO61I,GAUnC,OATAC,GAAaA,IAAcv1I,GAAMT,EAAIq+B,QAAQghD,OAAO22D,GACpD3pJ,KAAKioJ,OAASt0I,EAAIC,KAAK,gBACvB5T,KAAKgoJ,QAAUr0I,EAAIC,KAAK,cACxB5T,KAAK4pJ,SAAWj2I,EAAIC,KAAK,IAAMqwE,EAAM,UACrCjkF,KAAK8oJ,WAAan1I,EAAIC,KAAK,qBAC3B5T,KAAKioJ,OAAOt0D,OACZ3zF,KAAKmnJ,eACLnnJ,KAAKinJ,gBACLtzI,EAAInM,KAAK,QAAS,UAAGxH,KAAK4U,UAAS,YAAI2uE,EAAI,kBAAUA,EAAI,cAClDvjF,IACT,EACF,EA5aA,CAA2C,M,u+BCgFrCyjI,GAAO,SAAC75G,GAAgB,WAAA1Y,UAAS0Y,IAAkB,KAAVA,EAAI,EAArB,EACxB85G,GAAU,SAAC95G,GAAgB,WAAA1Y,UAAS0Y,IAAkB,KAAVA,EAAI,EAArB,EAEpB,GAAQ,WACR,GAAQ,UAAG,GAAK,KAChB,GAAQ,UAAG,GAAK,OAChB,GAAW,UAAG,GAAK,UACnB,GAAW,UAAG,GAAK,UACnB,GAAiB,UAAG,GAAQ,WAC5B,GAAW,UAAG,GAAK,UACnBigI,GAAU,UAAG,GAAK,SAEzB,GAAS,CACbzoJ,IAAK,GACLy4C,OAAQ,GACRv1C,IAAK,GACLc,OAAQ,GACR+gH,aAAc,GACdlnG,MAAO4qI,GACPh5D,OAAQ,IAKV,eAqBE,WAAY3N,GAAZ,MACE,YAAMA,EAAI,kBAAmB,IAAI,GAAU,IAAK,GAAQ,GAAU,CAAEqiC,YAAY,KAAO,KArBzF,EAAAge,SAAW,GAEX,EAAA9B,UAAY,GAOZ,EAAA/b,WAAa,IAaX,IAAApjC,SAAQ,EAAM,gCACN,IAAArqE,EAAW,EAAI,OACjBsrE,EAAOtrE,EAAOksE,aAChBZ,IAAMtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAG7C,EAAK9iF,IAAM,IAAI,GAAU6W,EAAOgwG,WAChC,EAAKj0D,SAAW,IAAI,GAAU,GAAI,CAAEkvB,GAAE,EAAEjrE,OAAM,IAC9C,EAAKq7D,OAAS,IAAI,KAChBr7D,EAAOq7D,OAAQxuE,KAAI,SAACma,GAAe,WAAI,GAAMA,EAAV,IACnC,CAAE9Z,MAAO,KAEX,EAAKA,MAAQ,IAAI,KAAM,CAAE2kJ,OAAQ7xI,EAAO8tI,eAAgB19B,OAAO,IAC/D,EAAK0hC,UAAW,IAAAziE,WAAS,WAAM,SAAKkK,aAAL,GAAoB,GACnD,EAAKg0B,aAAa,CAChBO,YAAa,CAAC,EAAKzyC,OAAQ,EAAKtf,UAChCjO,UAAW,CAAC,CAAEigE,OAAQ,EAAK1yC,OAAQ3gE,MAAO,EAAKjJ,OAAOuV,UAExDikE,EAAGz7E,GAAG,gBAAgB,SAAC+J,EAAG9J,GAAU,OAAAw7E,EAAGp/E,QAAQ+lJ,GAASniJ,EAApB,IACpC,EAAKvC,MAAMsC,GAAG,iBAAiB,SAAC+J,EAAG9J,GAAU,OAAAw7E,EAAGp/E,QAAQ,gBAAiB4D,EAA5B,IAC7Cw7E,EAAGz7E,GAAG,6CAA8C,EAAKuiJ,8B,OAGzD,EAAK7kJ,MAAMqF,SAAS04E,EADlB,0HACgC,WAAM,SAAK6mE,UAAL,I,CAC1C,CAkaF,OAjd6C,QAiD3C,YAAAv4D,YAAA,SAAY3nF,GACV7J,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ7wF,KAAK8wF,aAAajnF,GACxD,EAEA,YAAA8hF,OAAA,SAAsC9hF,GACpC,YADoC,IAAAA,IAAAA,EAAU,CAAC,GACvC7J,KAAKoB,IAAOyI,EAAKoG,MAAQ,MAAIjQ,KAAKoB,IAAIoC,QAAM,GAAIxD,KAAKoB,IAAO,EAGtE,EAEA,YAAA0vF,aAAA,SAAajnF,GAEX,YAFW,IAAAA,IAAAA,EAAA,IACX7J,KAAKiqJ,MAAQjqJ,KAAKiqJ,OAASpgJ,EAAK42C,UACzB,CACL6yB,OAAQtzE,KAAK6/I,YACb7rF,SAAUh0D,KAAKgpF,cACfvoC,UAAWzgD,KAAKiqJ,MAEpB,EAUA,YAAAhW,WAAA,WACEj0I,KAAKolH,aACLplH,KAAKwxF,aACP,EAEA,YAAAt7E,OAAA,SAAOxO,EAAsCmC,QAAA,IAAAA,IAAAA,EAAA,IAC3C,IAAM0+I,EAAUnoJ,MAAMc,QAAQwG,GAASA,EAAQ,CAACA,GAC1C09E,EAAkBplF,KAAKkjF,GAAG4F,OAAO5yE,OAAOqyI,EAAS1+I,GACvD7J,KAAKg0D,SAAS9tD,MAAMlG,KAAK0oJ,qBAAqBtjE,IAC9C,IAAM8kE,EAAUlqJ,KAAKmqJ,aACf/lJ,EAAMghF,EACTnvE,QAAO,SAAApW,GAAK,OAAAA,CAAA,IACZiF,KAAI,SAAA+sC,GAAO,OAAC,IAAAojE,aAAYpjE,KAAa,IAAAsjE,QAAOtjE,KAASA,EAAIluC,IAAI,gBAA9BkuC,EAAsDA,EAAIiuF,oBAA9E,IAEd,OADAoqB,GAAWA,EAAQpD,iBAAiB,CAAEyB,QAASnkJ,IACxCpE,IACT,EAEA,YAAAo/I,YAAA,SAAYz1I,EAAuCE,EAAWugJ,QAAX,IAAAvgJ,IAAAA,EAAA,SAAW,IAAAugJ,IAAAA,EAAA,IAC5D,IAAIthI,EAAK,MAAajf,IAElB,IAAAnD,UAASiD,GACXmf,EAAQnf,EAERmf,EAAMnf,KAAOA,EAGX85H,GAAK36G,EAAMnf,OACbmf,EAAMnf,KAAOmf,EAAMnf,KAAK+W,OAAO,GAC/BoI,EAAMtmB,KAAO,YACJkhI,GAAQ56G,EAAMnf,QACvBmf,EAAMnf,KAAOmf,EAAMnf,KAAK+W,OAAO,IAG7BoI,EAAM4jD,QAAU5jD,EAAMnf,OACxBmf,EAAMnf,KAAO3J,KAAKqjI,WAAWv6G,EAAM4jD,QAGrC,IAAM29E,EAAQvhI,EAAMnf,KACdsO,EAASjY,KAAK4mF,YACZxlF,EAAYpB,KAAT,IAAEkjF,EAAOljF,KAAL,GACT0T,EAAW22I,EAASrqJ,KAAK2D,IAAI0mJ,EAAOvhI,EAAMtmB,MAAqBpB,EAAIsC,MAAMolB,GAAO,GAEtF,IAAKpV,EAAU,CACb,IAAM42I,EAAWxhI,aAAiB,GAAWA,EAAQ,IAAI,GAASA,EAAO,SAAKshI,GAAK,CAAEnyI,OAAM,EAAEirE,GAAE,KAC/F,OAAO9hF,EAAIkD,IAAIgmJ,EAAUF,E,CAG3B,OAAO12I,CACT,EAEA,YAAA62I,YAAA,SAAY5gJ,EAAcnH,GAQxB,YARwB,IAAAA,IAAAA,EAAO,eAC3BihI,GAAK95H,IACPA,EAAOA,EAAK+W,OAAO,GACnBle,EAAO,YACEkhI,GAAQ/5H,KACjBA,EAAOA,EAAK+W,OAAO,IAGd1gB,KAAKoB,IAAIsC,MAAM,CAAEiG,KAAI,EAAEnH,KAAI,IAAI,EACxC,EAeA,YAAA8B,IAAA,SAAIwkB,EAA6Bjf,GAAjC,gBAAiC,IAAAA,IAAAA,EAAA,IAC/B,IAAMugJ,GAAQ,IAAAl5I,UAAS4X,GAAS,CAAC,EAAIjf,EAErC,OAAI,IAAA3I,SAAQ4nB,GACHA,EAAMhkB,KAAI,SAAA2hF,GAAQ,SAAK24D,YAAY34D,EAAM58E,EAAMugJ,EAA7B,IAElBpqJ,KAAKo/I,YAAYt2H,EAAOjf,EAAMugJ,EAEzC,EAaA,YAAA9kI,SAAA,SAASmR,GAAT,WACQjmB,EAAoB,GAO1B,OALI,IAAAU,UAASulB,KACXA,EAAUA,EAAQ6xD,OAAOr+E,MAAM,MAGjCwsB,EAAQhhB,SAAQ,SAAA9L,GAAQ,OAAA6G,EAAM7L,KAAK,EAAKy6I,YAAYz1I,GAA5B,IACjB6G,CACT,EAWA,YAAA7M,IAAA,SAAiCgG,EAASnH,GAA1C,WAEE,IAAI,IAAAtB,SAAQyI,GAAO,CACjB,IAAM,EAAqB,GAI3B,OAHkBA,EAAK7E,KAAI,SAAA2hF,GAAQ,SAAK8jE,YAAY9jE,EAAjB,IAAwBxwE,OAAOuvE,SACxD/vE,SAAQ,SAAAgxE,GAAQ,SAAO5hF,QAAQ4hF,GAAQ,GAAK,EAAO9hF,KAAK8hF,EAAxC,IAEnB,C,CAGP,OAAOzmF,KAAKuqJ,YAAY5gJ,EAAMnH,EAElC,EAWA,YAAA4C,OAAA,SAAOsO,EAA6B7J,GAClC,OAAO7J,KAAKkmH,SAASxyG,EAAU7J,EACjC,EAYA,YAAAy8I,OAAA,SAAO5yI,EAAoB/J,EAAcE,GACvC,IAAM2gJ,EAAUxqJ,KAAKqjI,WAAW15H,GAGhC,OAFe3J,KAAK2D,IAAI6mJ,IAEP92I,EAASjO,IAAI,CAAEkE,KAAM6gJ,EAAS99E,MAAO/iE,GAAQE,EAChE,EASA,YAAA4gJ,SAAA,SAAS/iJ,GAEP,OADA1H,KAAKkjF,GAAGunE,SAAS/iJ,GACV1H,IACT,EAMA,YAAA2/I,SAAA,WACE,OAAO3/I,KAAKkjF,GAAGy8D,UACjB,EAMA,YAAAE,UAAA,WACE,OAAO,MAAI7/I,KAAKszE,OAAO9vE,QAAM,EAC/B,EAYA,YAAAknJ,UAAA,SAAUp3E,EAAiBzpE,GACzB,OAAO7J,KAAKszE,OAAOptE,MACjBotE,EAAOxuE,KAAI,SAAAma,GAAS,WAAI,GAAMA,EAAV,IACpBpV,EAEJ,EASA,YAAAm/E,YAAA,WACE,OAAOhpF,KAAK2qJ,aACd,EASA,YAAAplE,eAAA,WACE,OAAO,MAAIvlF,KAAKg0D,SAASxwD,QAAM,EACjC,EAQA,YAAA8lJ,YAAA,SAAYxgI,GACV,IAAMtY,EAAQxQ,KAAKsE,IAAIwkB,GACvB9oB,KAAKkjF,GAAGqC,iBAAiB9vE,SAAQ,SAAA8Q,GAC/BA,EAAOs5G,eAAev7H,IAAIkM,EAC5B,GAEF,EAQA,YAAAk2I,eAAA,SAAehzI,GACb1T,KAAKkjF,GAAGqC,iBAAiB9vE,SAAQ,SAAA2iF,IAC9B1kF,EAAS/P,IAAI,cAAgBy0F,GAAOA,EAAIynC,eAAez6H,OAAOsO,EACjE,GACF,EAEA,YAAAk3I,kBAAA,SAAkBl3I,EAAoB7J,GAAtC,gBAAsC,IAAAA,IAAAA,EAAA,IAC5B,IAAAq5E,EAAOljF,KAAI,GACb6qJ,EAAkB7qJ,KAAKgpF,cAC7B,KAAI6hE,EAAgBhmJ,QAAQ6O,GAAY,GAAxC,CAEA,IAAMuL,EAAQjf,KAAK2/I,WACb4B,EAAQr+D,EAAGs+D,kBACX51D,EAAO1I,EAAG0kC,IAAIjkH,IAAIknJ,EAAiB5rI,EAAOsiI,GAC1CuJ,EAAel/D,aAAI,EAAJA,EAAMnD,WAc3B,GAZAvF,EAAGqC,iBAAiB9vE,SAAQ,SAAA6vE,GAC1B,IAAM2iC,EAAY3iC,EAAUu6C,eAC5B,GAAI5X,EAAU1xG,SAAS7C,GAAW,CAChC,IAAMq3I,EAASlhJ,EAAKkhJ,QAAU,QACxBr+E,EAAQh5D,EAASkwH,WACjBonB,EAAc,EAAK5L,YAAY,UAAG1yE,GAAK,OAAGq+E,IAC1CtnJ,EAAKwkH,EAAUpjH,QAAQ6O,GAC7Bu0G,EAAU7iH,OAAOsO,GACjBu0G,EAAU3jH,IAAI0mJ,EAAa,CAAEvnJ,GAAE,G,CAEnC,IAEIqnJ,EACc5nE,EAAG0kC,IAAItjH,IAAItE,KAAKgpF,cAAe/pE,EAAOsiI,GAC9CzhE,SAASgrE,EArB8B,CAuBnD,EASA,YAAAG,mBAAA,WACE,OAAOjrJ,KAAKkjF,GAAG4F,OAAOvD,gBACxB,EAQA,YAAA2lE,kBAAA,SAAkBxjJ,GAChB1H,KAAK4mF,YAAYm/D,eAAiBr+I,EAClC1H,KAAKmF,MAAMM,IAAI,CAAEqkJ,OAAQpiJ,GAC3B,EAMA,YAAAyjJ,kBAAA,WACE,OAAOnrJ,KAAK4mF,YAAYm/D,cAC1B,EAeA,YAAA1iB,WAAA,SAAW15H,GACD,IAAA05H,EAAerjI,KAAK4mF,YAAW,WACvC,OAAOy8C,EAAaA,EAAW15H,GAAQ,cAAoBA,EAC7D,EAQA,YAAAkK,OAAA,SAAOo0G,GACG,IAAAkiC,EAAiBnqJ,KAAI,aACvBiY,EAASjY,KAAK4mF,YACdxyE,EAAK+1I,aAAY,EAAZA,EAAc/1I,GAUzB,OATApU,KAAKg0D,SAAS9tD,MAAM+hH,GACpBjoH,KAAKmqJ,aAAe,IAAI,GAAc,CACpC/1I,GAAE,EACFnP,WAAYjF,KAAKg0D,SAEjBv0D,OAAQO,KACRiY,OAAM,IAGDjY,KAAKmqJ,aAAat2I,SAASO,EACpC,EAEA,YAAA/E,QAAA,WACQ,IAAE86I,EAAwBnqJ,KAAZ,aAAYA,KAAL,MACrBsL,gBACNtL,KAAK+pJ,SAASn/F,SACd5qD,KAAK4mH,YACLujC,SAAAA,EAAc/kJ,SACdpF,KAAKmqJ,kBAAe9kJ,CACtB,EAOA,YAAAslJ,YAAA,WACE,OAAO3qJ,KAAK0oJ,qBAAqB1oJ,KAAKkjF,GAAGqC,iBAC3C,EAEA,YAAAmjE,qBAAA,SAAqBrjE,EAAyBx7E,QAAA,IAAAA,IAAAA,EAAA,IAC5C,IAAMo+G,EAAY5iC,EAAWvgF,KAAI,SAAA4uB,GAAO,OAAAA,EAAImsG,cAAgBnsG,EAAImsG,eAAeuE,SAASv6H,EAAhD,IAAuDoM,OAAOuvE,SACtG,OAAOxlF,KAAK4oJ,SAAQ,MAAb5oJ,KAAiBioH,EAC1B,EAEA,YAAA2gC,SAAA,W,IAAA,WAAS,kDACP,OAAKloJ,EAAKC,OACU,IAAhBD,EAAKC,OAAqBD,EAAK,GACf,IAAhBA,EAAKC,OAAqBD,EAAK,GAAGuV,QAAO,SAACwwE,GAAc,OAAA/lF,EAAK,GAAGmE,QAAQ4hF,IAAS,CAAzB,IAG1D/lF,EACGJ,MAAM,GAENqV,QAAO,SAACwrG,EAAK16B,GAAS,SAAKmiE,SAASznC,EAAK16B,EAAnB,GAA0B/lF,EAAK,IARjC,EAU3B,EAEA,YAAAspJ,6BAAA,WACEhqJ,KAAKg0D,SAAS9tD,MAAMlG,KAAK2qJ,cAC3B,EACF,EAjdA,CAA6C7+B,G,YCjC7C,SAZ6B,CAC3BsS,SAAU,CAAC,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,MAC3CC,eAAWh5H,EACXm5H,gBAAYn5H,EACZk5H,YAAa,CACXlC,SAAU,YACVyC,cAAc,EACdC,iBAAiB,EACjB3c,oBAAoB,IC1ExB,IAAM8L,GAAkC,CACtC,EAAG,QACH,EAAG,YACH,EAAG,OACH,EAAG,YACH,GAAI,gBACJ,GAAI,WACJ,GAAI,WACJ,GAAI,sBACJ,GAAI,YAEAk9B,IAAa,IAAAnqJ,MAAKitH,IAClBm9B,GAAgB,CAAC,IAAK,IAAK,KAAM,MACjCC,GAAqB,CAAC,YAAa,OAAQ,gBAAiB,YAcrDC,GAAgB,SAAC3hI,QAAA,IAAAA,IAAAA,EAAA,IAK5B,IAJA,IAAMtlB,EAAgB,GAChB4I,EAAqB,GACrBiuD,EAAOvxC,EAAI3f,MAAM,KAEdpK,EAAI,EAAG4rB,EAAM0vC,EAAKx6D,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAC/C,IAAIgyC,EAAMspB,EAAKt7D,GAAGyoF,OAMlB,GAAI,wCAAwCt+E,KAAK6nC,IAAQ,yCAAyC7nC,KAAK6nC,GAAM,CAC3G,IAAI3tB,EAAM2tB,EAAI5nC,MAAM,KAAKgM,OAAOuvE,SAChCt4E,EAAOvI,KAAKuf,E,MAEZ5f,EAAIK,KAAKktC,E,CAIb,MAAO,CACL3kC,OAAM,EACN5I,IAAG,EAEP,EAOa04H,GAAa,SAAC34G,GAKzB,IAHA,IAAMutG,EAAMvtG,EAAK1H,MACXA,EAAgC,CAAC,EAE9B9c,EAAI,EAAG4rB,EAAMmmG,EAAIjxH,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAC9C,IAAMulI,EAAWxT,EAAI/xH,GACf2rJ,EAAY55B,EAAIjoB,iBAAiBy7B,GACjCrX,EAAY6D,EAAI65B,oBAAoBrmB,GAC1CzoH,EAAMyoH,GAAY,UAAGomB,GAAS,OAAGz9B,EAAY,YAAKA,GAAc,G,CAGlE,OAAOpxG,CACT,EAOa+uI,GAAiB,SAACrnI,GAG7B,OADkBA,EAAKsnI,eAAkBtnI,EAAKk9H,OAASl9H,EAAKk9H,MAAM3yB,WAAcvqG,EAAK1a,MAAQ0a,EAAKunI,cAAgB,IACjGtjE,MACnB,EAQaujE,GAAa,SAAC5jC,EAAqBtrG,EAAY9S,QAAZ,IAAA8S,IAAAA,EAAA,SAAY,IAAA9S,IAAAA,EAAA,IAC1D,IAAMwa,EAA6B,CAAC,EAC9BynI,EAAS7jC,EAAUtnH,OACnBorJ,EAAY9jC,EAAU6jC,EAAS,GAC/BE,EAAWD,EAAYA,EAAU9hJ,MAAM,SAAW,GAClDgV,EAAQ+sI,EAAS,GAEf19B,EAAoCzkH,EAAI,OAAhC20I,EAA4B30I,EAAI,aAAlB+kH,EAAc/kH,EAAI,UAiBhD,OAhBqByhJ,GAAmBzmJ,QAAQypH,IAAW,IAC1CjqG,EAAKo6H,cAAe,GACrCnwB,IAAWjqG,EAAK66H,WAAa5wB,GAC7BkwB,IAAiBn6H,EAAKm6H,aAAeA,GACrC5vB,IAAcvqG,EAAKuqG,UAAYA,GAG3B3vG,IACFgpG,EAAU6jC,EAAS,GAAKE,EAAS,GACjC3nI,EAAKpF,MAAQA,EACb+sI,EAASpnJ,OAAOonJ,EAASrrJ,OAAS,EAAG,IAGvC0jB,EAAK4jG,UAAYA,EACjB5jG,EAAK1H,MAAQA,EAEN0H,CACT,EAOag5G,GAAY,SAACjpH,GAIxB,IAHA,IAAIlH,EAAwB,GACtBowH,EAASlpH,EAAqB63I,UAAY,GAEvCpsJ,EAAI,EAAG4rB,EAAM6xG,EAAM38H,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAChD,IAAMwkB,EAAgBi5G,EAAMz9H,GACtB2C,EAAO6hB,EAAK7hB,KAAKolB,WACnB62H,GAAe,EACfS,EAAa,GACbj7I,EAAY,GAEZk3D,EAAe92C,EAAKunI,cAAgBvnI,EAAK6nI,QACvCC,EAAiBd,GAAcxmJ,QAAQrC,IAAS,EAGtD,GAAI2pJ,EACF1N,GAAe,EACfS,EAAahxB,GAAQ1rH,GACrByB,EAAYynJ,GAAernI,QACtB,GAAI+mI,GAAWvmJ,QAAQrC,IAAS,EAAG,CACxC,IAAM4pJ,EAAW/uB,GAAUh5G,GAC3BpgB,EAAYynJ,GAAernI,GAE3B,IAAK,IAAIjc,EAAI,EAAGikJ,EAAOD,EAASzrJ,OAAQyH,EAAIikJ,EAAMjkJ,IAAK,CACrD,IAAMkkJ,EAAUF,EAAShkJ,GACzBnE,IAAcqoJ,EAAQ19B,UAAY3qH,GAClCqoJ,EAAQpN,WAAahxB,GAAQ1rH,E,CAE/B0K,EAASA,EAAOnI,OAAOqnJ,E,CAGzB,GAAKjxF,GAASgxF,EAAd,CASA,IAPA,IAAMxvI,EAAQqgH,GAAW34G,GACnBkoI,EAAahB,GAAcpwF,GAC3BqxF,EAAUD,EAAWjoJ,IACrBmoJ,EAAsBF,EAAWr/I,OAEnCw/I,OAAQ,EAEHvnH,EAAI,EAAGwnH,EAAOF,EAAQ9rJ,OAAQwkC,EAAIwnH,EAAMxnH,IAAK,CACpD,IAAMhgC,EAAQ0mJ,GAAWY,EAAQtnH,GAAIxoB,EAAO,CAC1C2xG,OAAQJ,GAAQ1rH,KAElB0K,EAAOvI,KAAKQ,GACZunJ,EAAWvnJ,C,CAKb,GAAIqnJ,EAAQ7rJ,OAAQ,CAClB,IAAIisJ,EAAaJ,EAAQ/8F,KAAK,MAC9B,GAAIi9F,EACFA,EAASlO,aAAeoO,MACnB,CACCznJ,EAAqB,CACzB8iH,UAAW,GACXu2B,aAAcoO,EACdjwI,MAAK,GAEP8hI,IAAiBt5I,EAAMs5I,aAAeA,GACtCS,IAAe/5I,EAAM+5I,WAAaA,GAClCj7I,IAAckB,EAAMypH,UAAY3qH,GAChCiJ,EAAOvI,KAAKQ,E,EAhCsB,C,CAqCxC,OAAO+H,CACT,ECxIA,SAtDkB,SAACg2E,EAAkBjrE,GAA8B,YAA9B,IAAAA,IAAAA,EAAA,IAA8B,CAMjEhL,MAAK,SAAC2c,GAAN,WACM1c,EAAwB,GACpBmxH,EAAcpmH,EAAM,UACtBsqE,EAASW,aAAE,EAAFA,EAAI2T,OACbymC,EAAQe,EAAYA,EAAUz0G,EAAK24D,GD2L7C,SAAgB34D,GACd,IAAMxV,EAAKM,SAASC,cAAc,SAClCP,EAAG4yE,UAAYp9D,EAGflV,SAASiC,KAAK8N,YAAYrQ,GAC1B,IAAMy4I,EAAQz4I,EAAGy4I,MAGjB,OAFAn4I,SAASiC,KAAKmH,YAAY1J,GAEnBipH,GAAUwvB,EAClB,CCrMuD,CAAiBjjI,GAIrE,OAHA0zG,EAAM7nH,SAAQ,SAAA4O,GAAQ,OAACnX,EAASA,EAAOnI,OAAO,EAAK07I,UAAUp8H,GAAvC,IACtB6+D,SAAAA,EAAIp/E,QAAQ,YAAa,CAAEw9B,MAAO1X,EAAK0O,OAAQprB,IAExCA,CACT,EAOAuzI,UAAS,SAACp8H,GACA,IAAA4jG,EAAqB5jG,EAAI,UAAd1H,EAAU0H,EAAI,MAC7BnX,EAAS,CAACmX,GAEd,IAAI,IAAAnT,UAAS+2G,GAAY,CACvB,IAAM,EAAuB,GACvB6kC,EAAazoI,EACbkoI,EAAahB,GAActjC,GAC3B8kC,EAAYR,EAAWr/I,OACvBsxI,EAAe+N,EAAWjoJ,IAAImrD,KAAK,MACnC,EAAO,CAAE6+D,OAAQw+B,EAAWx+B,OAAQM,UAAWk+B,EAAWt0I,QAUhE,GARIu0I,EAAUpsJ,OACZosJ,EAAUt3I,SAAQ,SAAAu3I,GAChB,EAAMroJ,KAAKknJ,GAAWmB,EAAUrwI,EAAO,GACzC,IAEA,EAAMhY,KAAKknJ,GAAW,GAAIlvI,EAAO,IAG/B6hI,EACe,EAAM,EAAM79I,OAAS,GAC7B69I,aAAeA,EAG1BtxI,EAAS,C,CAGX,OAAOA,CACT,EAnDiE,E,2fC0BnE,eAIE,WAAYg2E,GAAZ,MACE,YAAMA,EAAI,SAAU,KAAS,KACrBjrE,EAAW,EAAI,O,OACvB,EAAKomH,UAAY,GAAUn7C,EAAIjrE,GAC/B,EAAKumH,WAAa,GAAWt7C,EAAIjrE,G,CACnC,CA+CF,OAxD0C,QAqCxC,YAAAgqH,UAAA,SAAU3gG,EAAez+B,QAAA,IAAAA,IAAAA,EAAA,IACjB,IAAEqgF,EAAmBljF,KAAjB,GAAEw+H,EAAex+H,KAAL,WAEtB,OADAw+H,EAAWhC,UAAat5C,EAAGuR,WAAWs8C,YAAc,CAAC,EAC9CvS,EAAWvxH,MAAMq0B,EAAOthC,KAAKq+H,UAAWx7H,EACjD,EAUA,YAAAw9I,SAAA,SAAS/+G,GACP,OAAOthC,KAAKq+H,UAAUpxH,MAAMq0B,EAC9B,EAEA,YAAAjyB,QAAA,WAAW,EACb,EAxDA,CAA0C,G,YC2E1C,SA3BqC,CACnC/E,GAAI,OACJ9H,KAAM,QACNyqJ,UAAU,EACVC,UAAU,EACVC,gBAAiB,EACjBC,UAAU,EACVC,QAAS,SAAA30I,GAAQ,OAAAA,CAAA,EACjB4yG,OAAQ,SAAA5yG,GAAQ,OAAAA,CAAA,EAChB7V,QAAS,CACP4zE,MAAO,CACLp1E,IAAK,aACLisJ,YAAY,GAEdC,OAAQ,CACNC,QAAS,CAAC,EACVC,SAAU,GACVC,QAAS,GACTC,iBAAiB,EACjBC,aAAc,GACdC,YAAa,UACbR,QAAS,SAAA30I,GAAQ,OAAAA,CAAA,EACjB4yG,OAAQ,SAAAp+G,GAAU,OAAAA,CAAA,K,u7CCrFxB,wBA0BA,QAzBQ,YAAAqvF,MAAN,SAAY7jF,EAAmB7O,G,YAAA,IAAAA,IAAAA,EAAA,I,8DAI7B,OAHI7J,KAAK8tJ,SAASjkJ,GAAM,IACtBkkJ,aAAaC,QAAQnkJ,EAAKxI,IAAMuX,KAAKC,UAAUH,IAE1C,CAAP,EAAOA,E,QAGH,YAAA2qF,KAAN,SAAWx5F,G,YAAA,IAAAA,IAAAA,EAAA,I,oEAOT,OANIqD,EAAS,CAAC,EAEVlN,KAAK8tJ,SAASjkJ,GAAM,KACtBqD,EAAS0L,KAAK3L,MAAM8gJ,aAAaE,QAAQpkJ,EAAKxI,MAAS,OAGlD,CAAP,EAAO6L,E,QAGT,YAAA4gJ,SAAA,SAASjkJ,EAA+BqkJ,GACtC,QADO,IAAArkJ,IAAAA,EAAA,IACHA,EAAKyjJ,eAAgB,IAAA9uD,YAAauvD,cAAe,CACnD,GAAIG,EAAK,MAAM,IAAIn8I,MAAM,8BACzB,OAAO,C,CAGT,OAAO,CACT,EACF,EA1BA,GCjBe,SAASo8I,GAAQntJ,GAG9B,OAAOmtJ,GAAU,mBAAqBt7I,QAAU,iBAAmBA,OAAOC,SAAW,SAAU9R,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqB6R,QAAU7R,EAAI2O,cAAgBkD,QAAU7R,IAAQ6R,OAAOxS,UAAY,gBAAkBW,CAC1H,EAAGmtJ,GAAQntJ,EACb,CCcA,SAnBA,SAA4B4I,GAC1B,IAAI+F,EAAc3P,KAAK2P,YACvB,OAAO3P,KAAKouJ,MACV,SAAS1mJ,GAEP,OAAOiI,EAAYwmG,QAAQvsG,KAAYwkJ,MAAK,WAC1C,OAAO1mJ,CACT,GACF,IACA,SAAS21I,GAEP,OAAO1tI,EAAYwmG,QAAQvsG,KAAYwkJ,MAAK,WAE1C,OAAOz+I,EAAYwG,OAAOknI,EAC5B,GACF,GAEJ,EC4BA,SAhDA,SAAoBx8I,GAElB,OAAO,IADCb,MACK,SAASm2G,EAAShgG,GAC7B,IAAMtV,QAA6B,IAAfA,EAAIF,OACtB,OAAOwV,EACL,IAAIqnG,UACF,GAAO38G,GACL,IACAA,EACA,mEAIR,IAAIH,EAAON,MAAMC,UAAUC,MAAMM,KAAKC,GACtC,GAAoB,IAAhBH,EAAKC,OAAc,OAAOw1G,EAAQ,IACtC,IAAI3qG,EAAY9K,EAAKC,OAErB,SAASyD,EAAIvE,EAAGoG,GACd,GAAIA,IAAuB,WAAf,GAAOA,IAAmC,mBAARA,GAAqB,CACjE,IAAImoJ,EAAOnoJ,EAAImoJ,KACf,GAAoB,mBAATA,EAaT,YAZAA,EAAKxtJ,KACHqF,GACA,SAASA,GACP7B,EAAIvE,EAAGoG,EACT,IACA,SAASiF,GACPxK,EAAKb,GAAK,CAAE0+F,OAAQ,WAAY8+C,OAAQnyI,GACpB,KAAdM,GACJ2qG,EAAQz1G,EAEZ,GAIN,CACAA,EAAKb,GAAK,CAAE0+F,OAAQ,YAAa72F,MAAOzB,GACpB,KAAduF,GACJ2qG,EAAQz1G,EAEZ,CAEA,IAAK,IAAIb,EAAI,EAAGA,EAAIa,EAAKC,OAAQd,IAC/BuE,EAAIvE,EAAGa,EAAKb,GAEhB,GACF,EC3CA,SAASwuJ,GAAeC,EAAQC,GAC7BvuJ,KAAK2J,KAAO,iBAAoB3J,KAAKsuJ,OAASA,EAC/CtuJ,KAAKuuJ,QAAUA,GAAW,EAC5B,CACAF,GAAehuJ,UAAY0R,MAAM1R,UAmCjC,SAjCA,SAAaQ,GACX,IAAI2tJ,EAAIxuJ,KACR,OAAO,IAAIwuJ,GAAE,SAASr4C,EAAShgG,GAC7B,IAAMtV,QAA6B,IAAfA,EAAIF,OACtB,OAAOwV,EAAO,IAAIqnG,UAAU,iCAG9B,IAAI98G,EAAON,MAAMC,UAAUC,MAAMM,KAAKC,GACtC,GAAoB,IAAhBH,EAAKC,OAAc,OAAOwV,IAG9B,IADA,IAAIs4I,EAAmB,GACd5uJ,EAAI,EAAGA,EAAIa,EAAKC,OAAQd,IAC/B,IACE2uJ,EAAEr4C,QAAQz1G,EAAKb,IACZuuJ,KAAKj4C,GACLu4C,OAAM,SAAS5jJ,GACd2jJ,EAAiB9pJ,KAAKmG,GAClB2jJ,EAAiB9tJ,SAAWD,EAAKC,QACnCwV,EACE,IAAIk4I,GACFI,EACA,8BAIR,GAGJ,CAFE,MAAOE,GACPx4I,EAAOw4I,EACT,CAEJ,GACF,EClCA,IAAIC,GAAiBrnI,WAErB,SAASrmB,GAAQ2yB,GACf,OAAO2xD,QAAQ3xD,QAAyB,IAAbA,EAAElzB,OAC/B,CAEA,SAAS+6G,KAAQ,CAajB,SAASmzC,GAAQruJ,GACf,KAAMR,gBAAgB6uJ,IACpB,MAAM,IAAIrxC,UAAU,wCACtB,GAAkB,mBAAPh9G,EAAmB,MAAM,IAAIg9G,UAAU,kBAElDx9G,KAAK8uJ,OAAS,EAEd9uJ,KAAK+uJ,UAAW,EAEhB/uJ,KAAK+pG,YAAS1kG,EAEdrF,KAAKgvJ,WAAa,GAElBC,GAAUzuJ,EAAIR,KAChB,CAEA,SAASwsD,GAAO5jD,EAAMsmJ,GACpB,KAAuB,IAAhBtmJ,EAAKkmJ,QACVlmJ,EAAOA,EAAKmhG,OAEM,IAAhBnhG,EAAKkmJ,QAITlmJ,EAAKmmJ,UAAW,EAChBF,GAAQM,cAAa,WACnB,IAAIn6I,EAAqB,IAAhBpM,EAAKkmJ,OAAeI,EAASE,YAAcF,EAASG,WAC7D,GAAW,OAAPr6I,EAAJ,CAIA,IAAI29D,EACJ,IACEA,EAAM39D,EAAGpM,EAAKmhG,OAIhB,CAHE,MAAO7+F,GAEP,YADAiL,GAAO+4I,EAASI,QAASpkJ,EAE3B,CACAirG,GAAQ+4C,EAASI,QAAS38E,EAR1B,MAFmB,IAAhB/pE,EAAKkmJ,OAAe34C,GAAUhgG,IAAQ+4I,EAASI,QAAS1mJ,EAAKmhG,OAWlE,KAlBEnhG,EAAKomJ,WAAWrqJ,KAAKuqJ,EAmBzB,CAEA,SAAS/4C,GAAQvtG,EAAM8qG,GACrB,IAEE,GAAIA,IAAa9qG,EACf,MAAM,IAAI40G,UAAU,6CACtB,GACE9J,IACqB,WAApB,GAAOA,IAA6C,mBAAbA,GACxC,CACA,IAAI06C,EAAO16C,EAAS06C,KACpB,GAAI16C,aAAoBm7C,GAItB,OAHAjmJ,EAAKkmJ,OAAS,EACdlmJ,EAAKmhG,OAAS2J,OACd67C,GAAO3mJ,GAEF,GAAoB,mBAATwlJ,EAEhB,YADAa,IApEMzuJ,EAoES4tJ,EApEL9gD,EAoEWoG,EAnEpB,WACLlzG,EAAGD,MAAM+sG,EAASnsG,UACpB,GAiEsCyH,EAGpC,CACAA,EAAKkmJ,OAAS,EACdlmJ,EAAKmhG,OAAS2J,EACd67C,GAAO3mJ,EAGT,CAFE,MAAOsC,GACPiL,GAAOvN,EAAMsC,EACf,CA7EF,IAAc1K,EAAI8sG,CA8ElB,CAEA,SAASn3F,GAAOvN,EAAM8qG,GACpB9qG,EAAKkmJ,OAAS,EACdlmJ,EAAKmhG,OAAS2J,EACd67C,GAAO3mJ,EACT,CAEA,SAAS2mJ,GAAO3mJ,GACM,IAAhBA,EAAKkmJ,QAA2C,IAA3BlmJ,EAAKomJ,WAAWruJ,QACvCkuJ,GAAQM,cAAa,WACdvmJ,EAAKmmJ,UACRF,GAAQW,sBAAsB5mJ,EAAKmhG,OAEvC,IAGF,IAAK,IAAIlqG,EAAI,EAAG4rB,EAAM7iB,EAAKomJ,WAAWruJ,OAAQd,EAAI4rB,EAAK5rB,IACrD2sD,GAAO5jD,EAAMA,EAAKomJ,WAAWnvJ,IAE/B+I,EAAKomJ,WAAa,IACpB,CAKA,SAASS,GAAQL,EAAaC,EAAYC,GACxCtvJ,KAAKovJ,YAAqC,mBAAhBA,EAA6BA,EAAc,KACrEpvJ,KAAKqvJ,WAAmC,mBAAfA,EAA4BA,EAAa,KAClErvJ,KAAKsvJ,QAAUA,CACjB,CAQA,SAASL,GAAUzuJ,EAAIoI,GACrB,IAAIwK,GAAO,EACX,IACE5S,GACE,SAASkH,GACH0L,IACJA,GAAO,EACP+iG,GAAQvtG,EAAMlB,GAChB,IACA,SAAS21I,GACHjqI,IACJA,GAAO,EACP+C,GAAOvN,EAAMy0I,GACf,GAMJ,CAJE,MAAOsR,GACP,GAAIv7I,EAAM,OACVA,GAAO,EACP+C,GAAOvN,EAAM+lJ,EACf,CACF,CAEAE,GAAQxuJ,UAAU,SAAW,SAASgvJ,GACpC,OAAOrvJ,KAAKouJ,KAAK,KAAMiB,EACzB,EAEAR,GAAQxuJ,UAAU+tJ,KAAO,SAASgB,EAAaC,GAE7C,IAAIK,EAAO,IAAI1vJ,KAAK2P,YAAY+rG,IAGhC,OADAlvD,GAAOxsD,KAAM,IAAIyvJ,GAAQL,EAAaC,EAAYK,IAC3CA,CACT,EAEAb,GAAQxuJ,UAAU,WAAasvJ,GAE/Bd,GAAQztJ,IAAM,SAASP,GACrB,OAAO,IAAIguJ,IAAQ,SAAS14C,EAAShgG,GACnC,IAAKjV,GAAQL,GACX,OAAOsV,EAAO,IAAIqnG,UAAU,iCAG9B,IAAI98G,EAAON,MAAMC,UAAUC,MAAMM,KAAKC,GACtC,GAAoB,IAAhBH,EAAKC,OAAc,OAAOw1G,EAAQ,IACtC,IAAI3qG,EAAY9K,EAAKC,OAErB,SAASyD,EAAIvE,EAAGoG,GACd,IACE,GAAIA,IAAuB,WAAf,GAAOA,IAAmC,mBAARA,GAAqB,CACjE,IAAImoJ,EAAOnoJ,EAAImoJ,KACf,GAAoB,mBAATA,EAQT,YAPAA,EAAKxtJ,KACHqF,GACA,SAASA,GACP7B,EAAIvE,EAAGoG,EACT,GACAkQ,EAIN,CACAzV,EAAKb,GAAKoG,EACU,KAAduF,GACJ2qG,EAAQz1G,EAIZ,CAFE,MAAOiuJ,GACPx4I,EAAOw4I,EACT,CACF,CAEA,IAAK,IAAI9uJ,EAAI,EAAGA,EAAIa,EAAKC,OAAQd,IAC/BuE,EAAIvE,EAAGa,EAAKb,GAEhB,GACF,EAEAgvJ,GAAQx4I,IAAMA,GAEdw4I,GAAQe,WAAaA,GAErBf,GAAQ14C,QAAU,SAASzuG,GACzB,OAAIA,GAA0B,WAAjB,GAAOA,IAAsBA,EAAMiI,cAAgBk/I,GACvDnnJ,EAGF,IAAImnJ,IAAQ,SAAS14C,GAC1BA,EAAQzuG,EACV,GACF,EAEAmnJ,GAAQ14I,OAAS,SAASzO,GACxB,OAAO,IAAImnJ,IAAQ,SAAS14C,EAAShgG,GACnCA,EAAOzO,EACT,GACF,EAEAmnJ,GAAQgB,KAAO,SAAShvJ,GACtB,OAAO,IAAIguJ,IAAQ,SAAS14C,EAAShgG,GACnC,IAAKjV,GAAQL,GACX,OAAOsV,EAAO,IAAIqnG,UAAU,kCAG9B,IAAK,IAAI39G,EAAI,EAAG4rB,EAAM5qB,EAAIF,OAAQd,EAAI4rB,EAAK5rB,IACzCgvJ,GAAQ14C,QAAQt1G,EAAIhB,IAAIuuJ,KAAKj4C,EAAShgG,EAE1C,GACF,EAGA04I,GAAQM,aAEmB,mBAAjBW,cACN,SAAStvJ,GAEPsvJ,aAAatvJ,EACf,GACF,SAASA,GACPouJ,GAAepuJ,EAAI,EACrB,EAEFquJ,GAAQW,sBAAwB,SAA+Br9C,GACtC,oBAAZuuC,SAA2BA,SACpCA,QAAQ38C,KAAK,wCAAyCoO,EAE1D,EAEA,aC7PI,IAAA3T,YACFz+F,OAAO8uJ,QAAU9uJ,OAAO8uJ,SAAW,IAGrC,SAA+B,mBAATpgJ,MAElBA,MAAM1C,OACN,SAACuD,EAAazM,GAEZ,OAAO,IAAI,IAAQ,SAACuB,EAAK2rJ,GACvB,IAAM/5C,EAAM,IAAIg6C,eAIhB,IAAK,IAAI7qH,KAHT6wE,EAAI74F,KAAKta,EAAQoM,QAAU,MAAOK,GAClC0mG,EAAIi6C,gBAAyC,WAAvBptJ,EAAQgrJ,YAEhBhrJ,EAAQ2qJ,SAAW,CAAC,EAChCx3C,EAAIh9F,iBAAiBmsB,EAAGtiC,EAAQ2qJ,QAAQroH,IAG1C6wE,EAAIpiD,OAAS,SAAA1oD,GACX,OAAA9G,EAAI,CACFm6F,OAAQyX,EAAIzX,OACZ2xD,WAAYl6C,EAAIk6C,WAChBnvI,KAAM,WAAM,kBAAgBi1F,EAAIm6C,aAApB,GAHd,EAKFn6C,EAAIriD,QAAUo8F,EAGV/5C,EAAIo6C,QAAUvtJ,EAAQwtJ,aACxBr6C,EAAIo6C,OAAOE,WAAaztJ,EAAQwtJ,YAIlCxtJ,EAAQia,KAAOk5F,EAAIu6C,KAAK1tJ,EAAQia,MAAQk5F,EAAIu6C,MAC9C,GACF,E,qqDCwBJ,wBA8DA,QA7DQ,YAAAh0D,MAAN,SAAY7jF,EAAmB7O,G,YAAA,IAAAA,IAAAA,EAAA,I,qFACtB,SAAM7J,KAAKwwJ,QAAQ3mJ,EAAK4jJ,SAAWztJ,KAAKywJ,QAAQ5mJ,EAAM6O,GAAO7O,I,OAApE,MAAO,CAAP,EAAO,U,QAGH,YAAAw5F,KAAN,SAAWx5F,G,YAAA,IAAAA,IAAAA,EAAA,I,qFACF,SAAM7J,KAAKwwJ,QAAQ3mJ,EAAK6jJ,QAAU1tJ,KAAKywJ,QAAQ5mJ,GAAOA,I,OAA7D,MAAO,CAAP,EAAO,U,QAGT,YAAA2mJ,QAAA,SAAQlhJ,EAAawZ,EAAyBjf,GAC5C,YADmB,IAAAif,IAAAA,EAAA,SAAyB,IAAAjf,IAAAA,EAAA,IACrC,GAAMyF,EAAKwZ,GACfslI,MAAK,SAAChqJ,GACL,IAAM8I,EAAS9I,EAAI2c,OAEnB,OAD0C,IAA3B3c,EAAIm6F,OAAS,IAAO,GACrBrxF,EAASA,EAAOkhJ,KAAKS,QAAQ14I,OAC7C,IACCi4I,MAAK,SAACrtI,GACL,IAAM2vI,EAAW3vI,IAAQ,IAAA7P,UAAS6P,GAClC,OAAOlX,EAAK8jJ,iBAAmB+C,EAAW93I,KAAK3L,MAAM8T,GAAQA,CAC/D,GACJ,EAEA,YAAA0vI,QAAA,SAAQ5mJ,EAAgC6O,QAAhC,IAAA7O,IAAAA,EAAA,IACN,IAKIiT,EALE6zI,EAAW9mJ,EAAK8jJ,gBAChBH,EAAU3jJ,EAAK2jJ,SAAW,CAAC,EAC3BoD,EAAY/mJ,EAAK+jJ,cAAgB,CAAC,EAClCiD,EAAU,mBACVC,EAAW,eAWjB,IARI,IAAAlnE,aAAY4jE,EAAQqD,MACtBrD,EAAQqD,GAAW,mBAGjB,IAAAjnE,aAAY4jE,EAAQsD,KAAcH,IACpCnD,EAAQsD,GAAY,mCAGlBp4I,EACF,GAAIi4I,EACF7zI,EAAOlE,KAAKC,UAAUH,QAItB,IAAK,IAAIrX,KAFTyb,EAAO,IAAIi0I,SAEKr4I,EACdoE,EAAKk2E,OAAO3xF,EAAKqX,EAAKrX,IAK5B,IAAM6L,EAAsB,CAC1B+B,OAAQ6N,EAAO,OAAS,MACxB+wI,YAAahkJ,EAAKgkJ,YAClBL,QAAO,EACP1wI,KAAI,GAGN,OAAO,SACF5P,IACC,IAAA7K,YAAWuuJ,GAAaA,EAAU1jJ,GAAU0jJ,EAEpD,EACF,EA9DA,G,mpECYMI,GAAa,gBACbC,GAAa,gBACbC,GAAW,cACXC,GAAa,gBAEbC,GAAgB,QAChBC,GAAiB,SAEvB,eAKE,WAAYnuE,GAAZ,MACE,YAAMA,EAAI,iBAAkB,KAAS,KAHvC,EAAAouE,SAAqC,CAAC,EAI5B,IAAAr5I,EAAW,EAAI,O,OACnBA,EAAO+sG,WAAU/sG,EAAOzV,UAAO6C,GACnC,EAAKisJ,SAAW,CAAC,EACjB,EAAKhtJ,IAAI8sJ,GAAe,IAAI,IAC5B,EAAK9sJ,IAAI+sJ,GAAgB,IAAI,IAC7B,EAAKE,WAAWt5I,EAAOzV,M,CACzB,CAwTF,OArU4C,QA0B1C,YAAAgvJ,WAAA,WACE,QAASxxJ,KAAKiY,OAAOg1I,QACvB,EAMA,YAAAwE,YAAA,SAAY/pJ,GAEV,OADA1H,KAAKiY,OAAOg1I,WAAavlJ,EAClB1H,IACT,EAMA,YAAA0xJ,mBAAA,WACE,OAAO1xJ,KAAKiY,OAAOk1I,eACrB,EAMA,YAAAwE,mBAAA,SAAmBjqJ,GAEjB,OADA1H,KAAKiY,OAAOk1I,gBAAkBzlJ,EACvB1H,IACT,EAkBA,YAAAsE,IAAA,SAA8B9B,EAAcovJ,GAG1C,OADA5xJ,KAAKsxJ,SAAS9uJ,GAAQovJ,EACf5xJ,IACT,EAOA,YAAA2D,IAAA,SAA8BnB,GAC5B,OAAOxC,KAAKsxJ,SAAS9uJ,EACvB,EAMA,YAAAqvJ,YAAA,WACE,OAAO7xJ,KAAKsxJ,QACd,EAMA,YAAAQ,WAAA,WACE,OAAO9xJ,KAAKiY,OAAO85I,cACrB,EAMA,YAAAR,WAAA,SAAW/uJ,GAET,OADAxC,KAAK4mF,YAAYmrE,eAAiBvvJ,EAC3BxC,IACT,EAEA,YAAAgyJ,kBAAA,WACE,OAAOhyJ,KAAK2D,IAAI3D,KAAK8xJ,aACvB,EAOA,YAAAG,kBAAA,SAAkBzvJ,GAChB,OAAOxC,KAAKkyJ,kBAAkB1vJ,EAChC,EAWM,YAAA+5F,MAAN,SAAY7jF,EAAmB7V,G,YAAA,IAAAA,IAAAA,EAAA,I,mGACvBizB,EAAK91B,KAAKgyJ,oBACVnoJ,EAAO,SAAK7J,KAAKkyJ,qBAAwBrvJ,GACzCuqJ,EAAWptJ,KAAKmyJ,qBAChBC,EAAepyJ,KAAKkyJ,kBAAkBd,I,iBAG1C,O,sBAAA,GAAMpxJ,KAAKqyJ,OAAOv8H,EAAKjsB,EAAM6O,I,cAA7B,SACA00I,EAAa,GAAMptJ,KAAKqyJ,OAAOjF,EAAUgF,EAAc,CAAC,IAAxD,M,OAAa,S,sDAEThF,EACF,GAAMptJ,KAAKqyJ,OAAOjF,EAAUgF,EAAc15I,IADxC,M,cACF,S,aAEA,MAAM,E,0BAIV,MAAO,CAAP,EAAOA,G,QAWH,YAAA2qF,KAAN,SAAWxgG,G,YAAA,IAAAA,IAAAA,EAAA,I,0GACHizB,EAAK91B,KAAKgyJ,oBACVnoJ,EAAO,SAAK7J,KAAKkyJ,qBAAwBrvJ,IACzCyvJ,EAAkBtyJ,KAAKmyJ,sBAIN,GAAMnyJ,KAAKqyJ,OAAOC,EAAiBtyJ,KAAKkyJ,kBAAkBd,MAD7E,M,UACImB,EAAe,UAChB,IAAAjtJ,SAAQitJ,GAAT,Y,iBAEA,O,sBAAA,GAAMvyJ,KAAKwyJ,iB,cAAX,SACAtlJ,EAASqlJ,E,iDAKVrlJ,EAAD,MACO,GAAMlN,KAAKqyJ,OAAOv8H,EAAKjsB,I,OAAhCqD,EAAS,S,iBAGX,MAAO,CAAP,EAAOA,GAAU,CAAC,G,QAGpB,YAAAslJ,cAAA,WACU,IAAAtvE,EAAOljF,KAAI,GACbotJ,EAAWptJ,KAAKyyJ,cAEtB,OAAO,IAAI5D,SAAQ,SAACzqJ,EAAK2rJ,IACnB,IAAA1tJ,YAAW+qJ,GACbA,EAAShpJ,EAAK2rJ,EAAK7sE,aAAE,EAAFA,EAAIzwB,aAEvBigG,QAAQxvE,aAAE,EAAFA,EAAI5vB,EAAE,2BAA6BlvD,EAAI,MAAQ2rJ,GAE3D,GACF,EAEA,YAAA0C,YAAA,WACE,OAAOzyJ,KAAKiY,OAAOm1I,QACrB,EAEA,YAAA+E,mBAAA,WAEE,OADiBnyJ,KAAKyyJ,eACHzyJ,KAAK8xJ,eAAiBT,IAAkBrxJ,KAAK2D,IAAIytJ,GACtE,EAEM,YAAAiB,OAAN,SAAaT,EAAmB/nJ,EAAsB6O,G,gIAOpD,GANMlM,EAAKkM,EAAO,QAAU,OACtB,EAAsB1Y,KAAK4mF,YAAzBymE,EAAO,UAAE/hC,EAAM,SAGvBtrH,KAAK0jF,QAAQl3E,EAAIkM,IAEZk5I,EACH,MAAO,CAAP,EAAOl5I,GAAQ,CAAC,G,gDAIV6pE,EAAgB,QAAP,EAAAviF,KAAKkjF,UAAE,eAAEzwB,YACpBkgG,OAAQ,EAERj6I,GACa,EAAA20I,GAAY,GAAMA,EAAQ30I,EAAM6pE,IAAhC,MADb,M,OACwB,EAAC,S,wBAAvBqwE,EAAU,GAA8Cl6I,GACjD,EAAA7O,EAAKwjJ,SAAY,GAAMxjJ,EAAKwjJ,QAAQuF,EAASrwE,IAA7C,M,OAAgB,EAAC,S,iBACjB,OADXqwE,EAAU,GAA2DA,EAC1D,GAAMhB,EAAQr1D,MAAMq2D,EAAS/oJ,I,cAAxC8oJ,EAAW,SACXzlJ,EAASwL,E,cAEE,SAAMk5I,EAAQvuD,KAAKx5F,I,cAA9B8oJ,EAAW,SACXzlJ,EAASlN,KAAK6yJ,YAAYF,IAChB,EAAA9oJ,EAAKyhH,QAAW,GAAMzhH,EAAKyhH,OAAOp+G,EAAQq1E,IAA1C,O,OAAe,EAAC,S,0BAA1Br1E,EAAS,GAAwDA,GACvD,EAAAo+G,GAAW,GAAMA,EAAOp+G,EAAQq1E,IAAhC,O,QAAU,EAAC,S,mBAArBr1E,EAAS,GAA8CA,E,0BAEzDlN,KAAK8yJ,QAAQtmJ,EAAIU,EAAQylJ,GACzB3yJ,KAAK4jF,MAAMp3E,EAAIU,G,eAGf,M,WADAlN,KAAK22I,QAAQnqI,EAAI,GACX,E,QAGR,MAAO,CAAP,EAAOU,G,QAGT,YAAA2lJ,YAAA,SAAYn6I,QAAA,IAAAA,IAAAA,EAAA,IACV,IAAMT,EAASjY,KAAK4mF,YACdyoD,EAAM,IAAI/0H,OAAO,WAAIrC,EAAO3N,KAC5B4C,EAAsB,CAAC,EAE7B,IAAK,IAAI6lJ,KAAWr6I,EAAM,CAExBxL,EADiB6lJ,EAAQtjJ,QAAQ4/H,EAAK,KACnB32H,EAAKq6I,E,CAG1B,OAAO7lJ,CACT,EAEA,YAAAglJ,kBAAA,SAAkB1vJ,GAChB,IAAMyV,EAASjY,KAAK4mF,YACd34E,EAAUzL,GAAQxC,KAAK8xJ,aAC7B,OAAO75I,EAAOpV,QAASoL,IAAY,CAAC,CACtC,EAMA,YAAAy1E,QAAA,SAAQjjF,EAAaiY,GACX,IAAAwqE,EAAOljF,KAAI,GACfkjF,IACFA,EAAGp/E,QAAQktJ,IACXvwJ,GAAOyiF,EAAGp/E,QAAQ,UAAGktJ,GAAU,YAAIvwJ,GAAOiY,GAE9C,EAMA,YAAAo6I,QAAA,SAAQryJ,EAAaiY,EAAmBi6I,GAC9B,IAAAzvE,EAAOljF,KAAI,GACfkjF,IACFA,EAAGp/E,QAAQmtJ,IACX/tE,EAAGp/E,QAAQ,UAAGmtJ,GAAU,YAAIxwJ,GAAOiY,EAAMi6I,GACzCzvE,EAAGp/E,QAAQ,kBAAWrD,GAAOiY,EAAMi6I,GAEvC,EAMA,YAAA/uE,MAAA,SAAMnjF,EAAaiY,GACT,IAAAwqE,EAAOljF,KAAI,GACfkjF,IACFA,EAAGp/E,QAAQotJ,IACXzwJ,GAAOyiF,EAAGp/E,QAAQ,UAAGotJ,GAAQ,YAAIzwJ,GAAOiY,GAE5C,EAMA,YAAAi+H,QAAA,SAAQl2I,EAAaiY,GACX,IAAAwqE,EAAOljF,KAAI,GACfkjF,IACFA,EAAGp/E,QAAQqtJ,GAAYz4I,GACvBjY,GAAOyiF,EAAGp/E,QAAQ,UAAGqtJ,GAAU,YAAI1wJ,GAAOiY,GAC1C1Y,KAAK4jF,MAAMnjF,EAAKiY,GAEpB,EAOA,YAAAs6I,YAAA,WAEE,QADgBhzJ,KAAKgyJ,uBACChyJ,KAAKiY,OAAOi1I,QACpC,EAEA,YAAA79I,QAAA,WACErP,KAAKsxJ,SAAW,CAAC,CACnB,EACF,EArUA,CAA4C,G,YCpD5C,SAPmC,CACjCptE,YAAa,OACb0N,SAAU,GACVo0C,cAAe,CAAC,CAAEt+H,OAAO,GAAS,CAAEA,MAAO,WAC3CmpF,QAAQ,G,mvBCpBV,eAmCE,WAAY16D,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KArBV,EAAAzsB,OAAc,CAAC,EAEf,EAAAupJ,aAAc,EAoBJ,MAAgB98H,EAAC,OAAjBle,OAAM,IAAG,GAAC,EAAC,EACb,EAA0B,EAAxB9S,EAAK,QAAE+tJ,EAAY,eACnB3sI,EAAWphB,EAAK,OAChB3C,EAAS2C,EAAM6B,WAAU,KACjC,EAAKiR,OAASA,EACd,EAAKirE,GAAKjrE,EAAOirE,GACjB,EAAKK,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAKF,IAAM,EAAKV,KAAOtrE,EAAOisE,aAAe,GAC7C,EAAK39D,OAASA,EACN,IAAAg9D,EAAS,EAAI,K,OACrB,EAAK4vE,SAAW,UAAG5vE,EAAI,iBAASA,EAAI,iBAAS/gF,GACT,CAClC,CAAC,eAAgB,EAAK4wJ,eACtB,CAAC,SAAU,EAAKC,aAEP59I,SAAQ,SAAC,G,IAAC9C,EAAK,KAAE48H,EAAG,KAC7BpqI,EAAMgG,IAAIwH,EAAO48H,GACjB,EAAK/kI,SAASrF,EAAOwN,EAAO48H,EAC9B,IACApqI,EAAMm9B,KAAO,EACb,EAAK93B,SAASrF,EAAO,eAAgB,EAAK0O,QAC1C,EAAKrJ,SAASrF,EAAO,qBAAsB,EAAKmuJ,UAChD,EAAK5pJ,OAAS,CAAC,EACfwpJ,EAAaz9I,SAAQ,SAAA9C,GAAS,OAAC,EAAKjJ,OAAOiJ,GAAS,UAAtB,IAC9B,EAAKwB,iBACL,EAAK6tC,O,CACP,CAoOF,OAnSuC,QAoBrC,YAAAh7C,WAAA,WACE,OAAOhH,KAAKmF,MAAMxB,IAAI,eAAiB,CAAC,CAC1C,EAEA,YAAA4vJ,cAAA,SAAc7/H,GACJ,IAAA6vD,EAASvjF,KAAI,KACf0sE,EAAQ1sE,KAAK4jI,WACnB,MAAO,uBAAergD,EAAI,2BAAiB7W,EAAK,cAAKA,EAAK,SAC5D,EAEA,YAAA8mF,cAAA,SAAc96I,GACJ,IAAAy6I,EAAanzJ,KAAI,SACzB,MAAO,uBAAemzJ,EAAQ,uBAChC,EAgCA,YAAAM,WAAA,WACE,MAAO,CACLnuE,UAAWtlF,KAAKumB,OAChBu+G,MAAO9kI,KAAKmF,MACZuuJ,QAAS1zJ,KAAK2zJ,eAElB,EAEA,YAAAN,WAAA,WACErzJ,KAAKoF,SACLpF,KAAKsQ,SACP,EAEA,YAAA0xC,KAAA,WAAQ,EACR,YAAA1xC,QAAA,WAAW,EACX,YAAAwmF,SAAA,SAAShuE,GAA6C,EACtD,YAAA8qI,SAAA,SAAS9qI,GAA6C,EACtD,YAAA+qI,QAAA,SAAQ/qI,GAAgE,EAMxE,YAAAgrI,SAAA,SAASnhJ,GACP,IAAMyB,EAAKpU,KAAK2zJ,eACZv/I,KAAO,IAAAw1E,aAAYx1E,EAAG1M,QACxB1H,KAAKmF,MAAMM,IAAI,QAAS2O,EAAG1M,OAE7B1H,KAAK6zJ,QAAQ,SACR7zJ,KAAKyzJ,cAAY,CACpB9gJ,MAAK,IAET,EAEA,YAAAohJ,kBAAA,WACE,OAAO/zJ,KAAKmF,MAAMxB,IAAI,QACxB,EAEA,YAAAqwJ,cAAA,SAActsJ,GACZ,IAAM0M,EAAKpU,KAAK2zJ,eAChBv/I,IAAOA,EAAG1M,MAAQA,EACpB,EAMA,YAAA0rJ,cAAA,SAAcjuJ,EAAcuC,EAAemC,GACzC,QADyC,IAAAA,IAAAA,EAAA,IACrCA,EAAKw7H,WACPrlI,KAAKg0J,cAAc7uJ,EAAMxB,IAAI,UAC7B3D,KAAKi0J,iBACA,CACL,IAAMhuJ,EAAMjG,KAAK+zJ,oBACjB5uJ,EAAM4/H,eAAe9+H,EAAK4D,E,CAE9B,EAMA,YAAAqqJ,YAAA,WACQ,IAAEvgJ,EAAgB3T,KAAb,IAAEumB,EAAWvmB,KAAL,OACb0sE,EAAQ1sE,KAAK4jI,WACfuwB,EAA4Bn0J,KAAKuzJ,cAAchtI,GAE/CvmB,KAAKo0J,cACPD,EACEn0J,KAAKo0J,YAAY,CACf1nF,MAAK,EACL4Y,UAAW/+D,EACXu+G,MAAO9kI,QACH,IAGV2T,EAAIC,KAAK,gBAAgBo/E,OAAOmhE,EAClC,EAOA,YAAAvwB,SAAA,WACU,IAAA1gD,EAAOljF,KAAI,GACb,EAAkBA,KAAKmF,MAAM6B,WAA3B0lE,EAAK,QAAE/iE,EAAI,OACnB,OAAOu5E,EAAG5vB,EAAE,qCAA8B3pD,MAAW,IAAAqrG,YAAWtoC,GAAS/iE,GAAM8F,QAAQ,KAAM,IAC/F,EAKA,YAAA20G,aAAA,WACE,OAAOpkH,KAAKumB,MACd,EAOA,YAAA2/H,WAAA,WACE,IAAKlmJ,KAAKioJ,OAAQ,CACV,IAAE/kE,EAAcljF,KAAZ,GAAEmF,EAAUnF,KAAL,MACXimH,EAAK9gH,EACH,EAASA,EAAM6B,WAAU,KAC3B+nE,EAAck3C,EAAGtiH,IAAI,gBAAkBsiH,EAAGtiH,IAAI,YAAc,GAC5DnB,EAAOyjH,EAAGtiH,IAAI,SAAW,OACzBwM,EAAM81G,EAAGtiH,IAAI,OACbwI,EAAM85G,EAAGtiH,IAAI,OACb+D,EAAQ1H,KAAKq0J,gBACb/yH,GAAkC,gBAAE,wBAAgB9+B,EAAI,QACxD8xJ,EAAWpxE,EAAG5vB,EAAE,yCAAkC,KAAW,CAAC,EACpEhyB,EAAM95B,KAAK,IACTunE,YAAW,GACRulF,KAGA,IAAA1qE,aAAYliF,KACfu+G,EAAGxgH,IAAI,CAAEiC,MAAK,GAAI,CAAEkG,QAAQ,IAC5B0zB,EAAM7a,KAAK,QAAS/e,IAGlByI,GACFmxB,EAAM7a,KAAK,MAAOtW,GAGhBhE,GACFm1B,EAAM7a,KAAK,MAAOta,GAGpBnM,KAAKioJ,OAAS3mH,C,CAEhB,OAAOthC,KAAKioJ,OAAOtkJ,IAAI,EACzB,EAEA,YAAAgwJ,aAAA,WACQ,IAAEryH,EAAkBthC,KAAb,MAAEioJ,EAAWjoJ,KAAL,OACrB,OAAOshC,GAAU2mH,GAAUA,EAAOtkJ,KAAOskJ,EAAOtkJ,IAAI,IAAO3D,KAAKu0J,YAClE,EAEA,YAAAF,cAAA,WACE,IAAI3sJ,EACEvC,EAAQnF,KAAKmF,MACbohB,EAASvmB,KAAKumB,OACd5c,EAAOxE,EAAMunF,UAEnB,GAAIvnF,EAAMxB,IAAI,cACZ+D,EAAQ6e,EAAO5iB,IAAIgG,OACd,CACL,IAAMmD,EAAQyZ,EAAO5iB,IAAI,cACzB+D,EAAQvC,EAAMxB,IAAI,UAAYmJ,EAAMnD,E,CAGtC,OAAQ,IAAAigF,aAAYliF,GAAiB,GAARA,CAC/B,EAEA,YAAA6sJ,WAAA,WACE,OAAOv0J,KAAK0zJ,OACd,EAMA,YAAAc,YAAA,WACQ,MAA8Bx0J,KAA5B2T,EAAG,MAAEs/I,EAAW,cAAE9tJ,EAAK,QACzBqsG,EAAS79F,EAAIC,KAAK,gBAClBQ,EAAKo9F,EAAOA,EAAO7wG,OAAS,GAC9BwzJ,EAAwChvJ,EAAMiP,GAE7C+/I,IACHA,EAAMn0J,KAAKy0J,YAAcz0J,KAAKy0J,YAAYz0J,KAAKyzJ,cAAgBzzJ,KAAKkmJ,eAGlE,IAAAh1I,UAASijJ,IACX//I,EAAG4yE,UAAYmtE,EACfn0J,KAAK0zJ,QAAUt/I,EAAG6I,aAElBg2I,EAAc7+I,EAAGqQ,YAAY0vI,GAAQ//I,EAAG4I,aAAam3I,EAAM//I,EAAG6I,YAC9Djd,KAAK0zJ,QAAUS,GAGjBhvJ,EAAMiP,GAAKpU,KAAK0zJ,OAClB,EAEA,YAAAgB,SAAA,WACU,IAAAhoF,EAAU1sE,KAAKmF,MAAM6B,WAAU,MACvC,OAAQhH,KAAK20J,UAAqB,IAAVjoF,CAC1B,EAEA,YAAA4mF,SAAA,kBACStzJ,KAAKmF,MAAMiP,GAClBpU,KAAK6T,QACP,EAEA,YAAAogJ,WAAA,WACEj0J,KAAK4zJ,SAAS5zJ,KAAKyzJ,aACrB,EAEA,YAAA5/I,OAAA,WACQ,MAA4B7T,KAA1B2T,EAAG,MAAEswE,EAAG,MAAEV,EAAI,OAChB,EADuB,QACFv8E,WAAnBxE,EAAI,OAAE8H,EAAE,KACVoqJ,EAAW10J,KAAK00J,UAAY10J,KAAK00J,WACjCxwI,EAAM,UAAG+/D,EAAG,gBACXjkF,KAAKioJ,OACZ,IAAI2M,EAAO,uBAAe1wI,EAAG,YAAIA,EAAG,aAAK1hB,EAAI,sBACzCkyJ,EAAW,uBAAenxE,EAAI,iCAAiC,GAAE,gCACrDA,EAAI,qBAAaA,EAAI,sBAAc/gF,EAAI,mCAEjDxC,KAAKwzJ,eACD,IAAAnxJ,YAAWrC,KAAKwzJ,eACdxzJ,KAAKwzJ,cAAcxzJ,KAAKyzJ,cACxBzzJ,KAAKwzJ,cACP,GAAE,8BAUZ,OANA7/I,EAAIq+B,QAAQghD,OAAO4hE,GACnBF,GAAY10J,KAAKk0J,cACjBl0J,KAAKw0J,cACLx0J,KAAKoU,GAAGQ,UAAY,UAAGsP,EAAG,iBAASA,EAAG,iBAAS5Z,GAC/CtK,KAAKi0J,aACLj0J,KAAK82F,SAAS92F,KAAKyzJ,cACZzzJ,IACT,EACF,EAnSA,CAAuC,M,YAoSvC60J,GAAUx0J,UAAU6yJ,aAAe,CAAC,U,2fCvSpC,eAME,WAAY/8H,EAAaqtE,QAAb,IAAArtE,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KANV,EAAAutE,WAAY,EAOV,EAAKF,UAAYA,EACjB,IAAMvrF,EAASke,EAAEle,QAAU,CAAC,EAEtBirE,EAAK/sD,EAAEosD,O,OACb,EAAKtqE,OAASA,EACd,EAAKirE,GAAKA,EACV,EAAKK,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAKF,IAAM,EAAKV,KAAOtrE,EAAOisE,aAAe,GAC7C,EAAKtvE,UAAY,UAAG,EAAKqvE,IAAG,UAC5B,EAAKz5E,SAAS04E,EAAI,oBAAqB,EAAK4xE,mBAC5C,EAAKA,oB,CACP,CAcF,OAjCwC,QAyBtC,YAAAA,kBAAA,WACQ,MAA0B90J,KAAxBujF,EAAI,OAAE3uE,EAAS,YACjBmsC,EADqB,KACXioC,cAChBhpF,KAAKoU,GAAGQ,UAAY,UAAGA,EAAS,YAAI2uE,EAAI,kBAAUA,EAAI,aAEtDvjF,KAAKiF,WAAa87C,EAAOA,EAAKulF,OAAS,GACvCtmI,KAAK6T,QACP,EACF,EAjCA,CAAwCkjF,GAAA,G,YAoCxCg+D,GAAW10J,UAAU42F,SAAW,G,ogBCpChC,YACE,WAAY9gE,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,K,OACR,EAAK3rB,SAAS,EAAKrF,MAAO,iBAAkB,EAAKmuJ,U,CACnD,CAoDF,OAxD6C,QAM3C,YAAAE,cAAA,WACQ,IAAEjwE,EAAmBvjF,KAAf,KAAEmzJ,EAAanzJ,KAAL,SACtB,MAAO,uBAAemzJ,EAAQ,iEAEd5vE,EAAI,8CACFA,EAAI,+CAGxB,EAOA,YAAA2iE,WAAA,WACE,IAAKlmJ,KAAKioJ,OAAQ,CACV,IAAE9iJ,EAAcnF,KAAT,MAAE,EAAOA,KAAL,GACX,EAAWmF,EAAMxB,IAAI,QACrBkG,EAAO1E,EAAMxB,IAAI,YAAc,GAC/B,EAAmB,GACrB,EAAQ,WAEZkG,EAAK4L,SAAQ,SAAArB,GACX,IACIzK,EAAMjC,EAAOiV,EADb7P,EAAQ,IAGR,IAAAoE,UAASkD,IACXzK,EAAOyK,EACP1M,EAAQ0M,IAERzK,EAAOyK,EAAGzK,MAAQyK,EAAGs4D,OAASt4D,EAAG1M,MACjCA,EAAQ,WAAG,IAAAkiF,aAAYx1E,EAAG1M,OAAS0M,EAAG9J,GAAK8J,EAAG1M,OAAQ+H,QAAQ,KAAM,UAEpE3C,IADA6P,EAAQvI,EAAGuI,MAAQvI,EAAGuI,MAAMlN,QAAQ,KAAM,UAAY,IACrC,mBAAWkN,EAAK,MAAM,IAEzC,IAAMq4I,EAAa,EAAG1hG,EAAE,sCAA+B,EAAQ,YAAI5rD,KAAYiC,EAC/E,GAAS,0BAAkBjC,EAAK,aAAIoF,EAAK,YAAIkoJ,EAAU,aACvD,EAAOrwJ,KAAK+C,EACd,IAEA,GAAS,YACT1H,KAAKioJ,QAAS,gBAAE,GAChB,IAAMhiJ,EAAMd,EAAMy/H,iBACZqwB,EAAY,EAAOpwJ,QAAQoB,IAAQ,EAAIA,EAAMd,EAAMxB,IAAI,aAC5D,IAAAimF,aAAYqrE,IAAcj1J,KAAKioJ,OAAQhiJ,IAAIgvJ,E,CAG9C,OAAOj1J,KAAKioJ,OAAQtkJ,IAAI,EAC1B,EACF,EAxDA,CAA6C,I,ogBCD7C,uE,OACE,EAAAsvJ,aAAc,E,CAsDhB,QAvD+C,QAG7C,YAAAO,cAAA,WACQ,IAAEjwE,EAAmBvjF,KAAf,KAAEmzJ,EAAanzJ,KAAL,SACtB,MAAO,yBAAiBmzJ,EAAQ,0CACpB5vE,EAAI,8BAElB,EAMA,YAAAuwE,SAAA,WACE9zJ,KAAKmF,MAAMM,IAAI,QAASzF,KAAK2zJ,eAAellD,QAC9C,EAEA,YAAAulD,cAAA,SAActsJ,GACZ,IAAM0M,EAAKpU,KAAK2zJ,eAChBv/I,IAAOA,EAAGq6F,UAAY/mG,EACxB,EAOA,YAAAw+I,WAAA,W,IAAW,sDACT,IAAMgP,GAAUl1J,KAAKioJ,OACf7zI,EAAK,8BAAqCpU,KAAMU,GAEtD,GAAIw0J,EAAQ,CACV,IAAIzmD,OAAO,EAAE0mD,OAAW,EAClB,EAAoBn1J,KAAlBmF,EAAK,QAAEohB,EAAM,SACbk/G,EAAetgI,EAAM6B,WAAU,WACjC,EAAO7B,EAAMunF,UAEfvnF,EAAMxB,IAAI,cAEZwxJ,EADA1mD,EAAUloF,EAAO5iB,IAAI,GAIrB8qG,MADA0mD,EAAc5uI,EAAO5iB,IAAI,cAAe,KACC,KAAhBwxJ,IAGtB,IAAAvrE,aAAY67C,IAAe0vB,IAAgB1vB,IAC9Ch3B,GAAW,GAGbr6F,EAAIq6F,QAAUA,C,CAGhB,OAAOr6F,CACT,EACF,EAvDA,CAA+C,I,2fCA/C,eAkBE,WAAYvK,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAK,KACL05E,EAAO15E,EAAK05E,MAAQ,G,OAC1B,EAAK15E,KAAOA,EACZ,EAAK05E,KAAOA,EACZ,EAAKL,GAAKr5E,EAAK0c,QAAU,CAAC,GACzB1c,EAAKiqJ,UAAY,EAAKtpJ,SAAS,EAAKrF,MAAO,eAAgB,EAAKiwJ,mB,CACnE,CAgEF,OAzFmC,QAMjC,YAAA14C,SAAA,WACE,MAAO,wBAAgB18G,KAAKq1J,cAAa,aAC3C,EAEA,YAAAC,WAAA,WACE,MAAO,UAAGt1J,KAAKujF,KAAI,QACrB,EAEA,YAAA8xE,YAAA,WACE,MAAO,UAAGr1J,KAAKujF,KAAI,eACrB,EAcA,YAAAgyE,eAAA,WACEv1J,KAAKmF,MAAMrB,QAAQ,YACrB,EAMA,YAAA6rD,SAAA,SAASjoD,EAAemC,GACtB,IAAM1E,EAAQnF,KAAKmF,MACfc,EAAMyB,GAASvC,EAAMxB,IAAI,YACvB29B,EAAQthC,KAAKkmJ,aACnB5kH,IAAUA,EAAM55B,MAAQzB,EAC1B,EAKA,YAAAmvJ,kBAAA,SAAkBjwJ,EAAYuC,EAAemC,GAC3C7J,KAAK2vD,SAASjoD,EAAOmC,EACvB,EAKA,YAAA4nI,aAAA,SAAavmI,GACXA,EAAEmjB,kBACF,IAAM3mB,EAAQ1H,KAAKkmJ,aAAax+I,MAChC1H,KAAKw1J,gBAAgB9tJ,GACrB1H,KAAKu1J,gBACP,EAEA,YAAAC,gBAAA,SAAgB9tJ,GACd1H,KAAKmF,MAAMM,IAAI,CAAEiC,MAAK,GAAI,CAAE+tJ,UAAW,GACzC,EAMA,YAAAvP,WAAA,WACE,IAAKlmJ,KAAKmmJ,QAAS,CACX,IAAEhhJ,EAAgBnF,KAAX,MACPwC,EADkBxC,KAAL,KACDwC,MAAQ,OACpBkzJ,EAAMvwJ,EAAMxB,IAAI,gBAAkBwB,EAAMxB,IAAI,aAAewB,EAAMxB,IAAI,YAAc,GACzF3D,KAAKmmJ,SAAU,gBAAE,wBAAgB3jJ,EAAI,4BAAkBkzJ,EAAG,O,CAG5D,OAAO11J,KAAKmmJ,QAAQxiJ,IAAI,EAC1B,EAEA,YAAAkQ,OAAA,WACE7T,KAAKmmJ,QAAU,KACf,IAAM/xI,EAAKpU,KAAK2T,IAIhB,OAHAS,EAAGkR,SAAStlB,KAAKs1J,cACjBlhJ,EAAG8hE,KAAKl2E,KAAK08G,YACbtoG,EAAGR,KAAK,WAAI5T,KAAKq1J,gBAAiBriE,OAAOhzF,KAAKkmJ,cACvClmJ,IACT,EACF,EAzFA,CAAmC,M,YA2FnC21J,GAAMt1J,UAAUqJ,OAAS,CAEvBoxB,OAAQ,gB,2fC5FV,eAwBE,WAAYjxB,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAK,K,OACX,IAAAy4E,SAAQ,EAAM,gBAAiB,eAC/B,EAAKjwD,IAAM3d,SACX,EAAKlK,SAAS,EAAKrF,MAAO,cAAe,EAAKiwJ,mB,CAChD,CA8PF,OA3RyC,QAOvC,YAAA14C,SAAA,WACE,IAAMn5B,EAAOvjF,KAAKujF,KAClB,MAAO,gCACUA,EAAI,uDACJA,EAAI,qDACLA,EAAI,6DACFA,EAAI,sEACJA,EAAI,6DAGxB,EAEA,YAAA+xE,WAAA,WACE,IAAM/xE,EAAOvjF,KAAKujF,KAClB,OAAOvjF,KAAK6J,KAAK+rJ,WAAa,UAAGryE,EAAI,iBAASA,EAAI,gBACpD,EAcA,YAAA5zB,SAAA,SAASjoD,EAAemC,GACtB,IAAMyjD,EAAMzjD,GAAQ,CAAC,EACf44I,EAAQziJ,KAAK61J,mBAAmBnuJ,EAAO,CAAEouJ,UAAW,IACpDC,EAAW,CAAEruJ,MAAO+6I,EAAM/6I,MAAOw2D,KAAM,KAGzCukF,EAAMvkF,MAAQukF,EAAMhkG,SACtBs3G,EAAS73F,KAAOukF,EAAMvkF,MAGxBl+D,KAAKmF,MAAMM,IAAIswJ,EAAUzoG,GAIrBA,EAAI1/C,QACN5N,KAAKo1J,mBAET,EAKA,YAAA3jB,aAAA,SAAavmI,GACXA,EAAEmjB,kBACFruB,KAAK2vD,SAAS3vD,KAAKkmJ,aAAax+I,OAChC1H,KAAKu1J,gBACP,EAKA,YAAAS,iBAAA,SAAiB9qJ,GACfA,EAAEmjB,kBACF,IAAM3mB,EAAQ1H,KAAKi2J,YAAYvuJ,MAC/B1H,KAAKmF,MAAMM,IAAI,OAAQiC,GACvB1H,KAAKu1J,gBACP,EAKA,YAAAW,cAAA,SAAchrJ,GACE,YAAVA,EAAE7J,MACJ6J,EAAEqiB,iBACFvtB,KAAKm2J,gBAGO,cAAVjrJ,EAAE7J,MACJ6J,EAAEqiB,iBACFvtB,KAAKo2J,iBAET,EAKA,YAAAb,eAAA,WACEv1J,KAAKmF,MAAMrB,QAAQ,YACrB,EAKA,YAAAsxJ,kBAAA,WACE,IAAMjwJ,EAAQnF,KAAKmF,MACnBnF,KAAKkmJ,aAAax+I,MAAQvC,EAAMxB,IAAI,SACpC,IAAM0yJ,EAASr2J,KAAKi2J,YACpBI,IAAWA,EAAO3uJ,MAAQvC,EAAMxB,IAAI,SAAW,GACjD,EAMA,YAAAsyJ,UAAA,WACE,IAAKj2J,KAAKq2J,OAAQ,CAChB,IAAM,EAAQr2J,KAAKmF,MACbmxJ,EAAQ,EAAM3yJ,IAAI,UAAY,GAEpC,GAAI2yJ,EAAM31J,OAAQ,CAChB,IAAM,EAAU,CAAC,+CAEjB21J,EAAM7gJ,SAAQ,SAACyoD,GACb,IAAMlK,EAAWkK,GAAQ,EAAMv6D,IAAI,QAAU,WAAa,GAC1D,EAAQgB,KAAK,kBAAWqvD,EAAQ,YAAIkK,EAAI,aAC1C,IAEA,IAAMyhD,EAAOjrG,SAASC,cAAc,OACpCgrG,EAAK34B,UAAY,0BAAkBhnF,KAAKujF,KAAI,wBAAe,EAAQ9zB,KAAK,IAAG,aAC3EzvD,KAAKq2J,OAAS12C,EAAK1iG,U,EAIvB,OAAOjd,KAAKq2J,MACd,EAKA,YAAAF,aAAA,WACU,IAAAhxJ,EAAUnF,KAAI,MAChB8zG,EAAO3uG,EAAMxB,IAAI,QACnB+D,EAAQ6gF,WAAWpjF,EAAMxB,IAAI,UACjC3D,KAAK2vD,SAAS3vD,KAAKu2J,eAAe7uJ,EAAQosG,IAC1C9zG,KAAKu1J,gBACP,EAKA,YAAAa,eAAA,WACU,IAAAjxJ,EAAUnF,KAAI,MAChB8zG,EAAO3uG,EAAMxB,IAAI,QACjB+D,EAAQ6gF,WAAWpjF,EAAMxB,IAAI,UACnC3D,KAAK2vD,SAAS3vD,KAAKu2J,eAAe7uJ,EAAQosG,IAC1C9zG,KAAKu1J,gBACP,EAQA,YAAAiB,cAAA,SAActrJ,GACZA,EAAEqiB,iBACFvtB,KAAK0+D,OAAQ,EACb,IAAIh3D,EAAQ1H,KAAKmF,MAAMxB,IAAI,UAAY,EACvC+D,EAAQ1H,KAAKu2J,eAAe7uJ,GAC5B1H,KAAKiO,QAAU,CAAE2/B,EAAG1iC,EAAE24D,MAAO59D,IAAKyB,IAClC,IAAAD,IAAGzH,KAAKqyB,IAAK,YAAaryB,KAAKy2J,gBAC/B,IAAAhvJ,IAAGzH,KAAKqyB,IAAK,UAAWryB,KAAK02J,YAC/B,EAOA,YAAAD,cAAA,SAAcjqJ,GACZxM,KAAK0+D,OAAQ,EACb,IAAMv5D,EAAQnF,KAAKmF,MACb2uG,EAAO3uG,EAAMxB,IAAI,QACjB+U,EAAO1Y,KAAKiO,QACd4T,EAAM7hB,KAAKu2J,eAAe79I,EAAKzS,KAAOyS,EAAKk1B,EAAIphC,EAAGq3D,OAASiwC,GACzD,EAAkB9zG,KAAK61J,mBAAmBh0I,GAAxCna,EAAK,QAAEw2D,EAAI,OAGnB,OAFAl+D,KAAK22J,QAAUjvJ,EACfvC,EAAMM,IAAI,CAAEiC,MAAK,EAAEw2D,KAAI,GAAI,CAAE2qB,WAAY,KAClC,CACT,EAKA,YAAA6tE,YAAA,WACE,IAAMvxJ,EAAQnF,KAAKmF,MACb2uG,EAAO3uG,EAAMxB,IAAI,QAIvB,IAHA,IAAAwH,KAAInL,KAAKqyB,IAAK,UAAWryB,KAAK02J,cAC9B,IAAAvrJ,KAAInL,KAAKqyB,IAAK,YAAaryB,KAAKy2J,eAE5Bz2J,KAAK22J,SAAW32J,KAAK0+D,MAAO,CAC9B,IAAIh3D,EAAQ1H,KAAK22J,QAAU7iD,EAE3B3uG,EAAMM,IAAI,QAASiC,EAAO,CAAEmhF,WAAY,IAAKpjF,IAAI,QAASiC,EAAQosG,GAClE9zG,KAAKu1J,gB,CAET,EAEA,YAAAgB,eAAA,SAAe7uJ,EAAYkvJ,QAAA,IAAAA,IAAAA,EAAA,GACzB,IACM9iD,EADQ9zG,KAAKmF,MACAxB,IAAI,QACnBqwG,EAAe,EAEnB,GAAIpsE,MAAMlgC,GACR,OAAOkvJ,EAKT,GAFAlvJ,EAAQ6gF,WAAW7gF,GAEfwE,KAAKie,MAAMziB,KAAWA,EAAO,CAC/B,IAAM2rC,EAAOygE,EAAKlsF,WAAW3d,MAAM,KAAK,GACxC+pG,EAAe3gE,EAAOA,EAAK1yC,OAAS,C,CAGtC,OAAOqzG,EAAezrB,WAAW7gF,EAAMusG,QAAQD,IAAiBtsG,CAClE,EAQA,YAAAmuJ,mBAAA,SAAmBnuJ,EAAamC,QAAA,IAAAA,IAAAA,EAAA,IAC9B,IAAI40C,EAAQ,EACR6O,EAAMzjD,GAAQ,CAAC,EACf1E,EAAQnF,KAAKmF,MACXyxJ,EAAW,GACb3wJ,GAAO,IAAA2jF,aAAYliF,GAAiBkvJ,EAARlvJ,EAC5B4uJ,EAAQzsJ,EAAKysJ,OAASnxJ,EAAMxB,IAAI,UAAY,GAC5Cu6D,EAAO/4D,EAAMxB,IAAI,SAAY2yJ,EAAM31J,QAAU21J,EAAM,IAAO,GAC1DnqJ,GAAO,IAAAy9E,aAAY//E,EAAKsC,KAAkBhH,EAAMxB,IAAI,OAArBkG,EAAKsC,IACpCgE,GAAO,IAAAy5E,aAAY//E,EAAKsG,KAAkBhL,EAAMxB,IAAI,OAArBkG,EAAKsG,IACpC0mJ,IAAiB1xJ,EAAMxB,IAAI,gBAC3BmzJ,IAAiB3xJ,EAAMxB,IAAI,gBAE/B,GAAI2pD,EAAIwoG,UAAW,CACjB,IAAIiB,EAAQ5xJ,EAAMxB,IAAI,gBAAkB,GAIxC,GAFY,KAARsC,IAAYi4D,EAAO,IAEnBj4D,EAAK,CAEP,IAAI+wJ,EAAW,IAAI18I,OAAO,IAAMy8I,EAAMtnG,KAAK,KAAM,KACjD,GAAIsnG,EAAMp2J,QAAUq2J,EAAShtJ,KAAK/D,GAChCA,EAAMA,EAAIoO,MAAM2iJ,GAAU,GAC1B94F,EAAO,GACPzf,EAAQ,MACH,CACL,IAAIw4G,EAAUhxJ,EAAM,GACpBA,GAAO,GACPA,EAAMsiF,WAAWtiF,EAAIwJ,QAAQ,IAAK,MAClCxJ,EAAO2hC,MAAM3hC,GAAa2wJ,EAAN3wJ,EACpB,IAAIixJ,EAAKD,EAAQxnJ,QAAQxJ,EAAK,KAE1B,IAAApB,SAAQyxJ,EAAOY,IAAO,IAAGh5F,EAAOg5F,E,GAQ1C,OAHKL,IAAiB,IAAAjtE,aAAYz9E,IAAgB,KAARA,IAAYlG,EAAMA,EAAMkG,EAAMA,EAAMlG,GACzE6wJ,IAAiB,IAAAltE,aAAYz5E,IAAgB,KAARA,IAAYlK,EAAMA,EAAMkK,EAAMA,EAAMlK,GAEvE,CACLw4C,MAAK,EACL/2C,MAAOzB,EACPi4D,KAAI,EAER,EAEA,YAAArqD,OAAA,WACE,yBAA4B7T,MAC5BA,KAAKq2J,OAAS,KACd,IAAMn4F,EAAOl+D,KAAKi2J,YAElB,OADA/3F,GAAQl+D,KAAK2T,IAAIC,KAAK,WAAI5T,KAAKujF,KAAI,gBAAe5/E,IAAI,GAAI8gB,YAAYy5C,GAC/Dl+D,IACT,EACF,EA3RA,CAAyC,I,YA6RzCm3J,GAAY92J,UAAUqJ,OAAS,CAE7B,eAAgB,eAChB,gBAAiB,mBACjB,wBAAyB,eACzB,0BAA2B,iBAC3B,0BAA2B,gBAC3B0tJ,QAAS,iB,ogBCpSX,yB,8CAiCA,QAjC6C,QAE3C,YAAArD,kBAAA,WACU,IAAA5uJ,EAAUnF,KAAI,MAChB,EAAkBmF,EAAM6B,WAAtBU,EAAK,QAAEw2D,EAAI,OACnB,OAAQ,IAAA0rB,aAAYliF,IAAoB,KAAVA,EAA8BvC,EAAMxB,IAAI,WAAzB+D,EAAQw2D,CACvD,EAOA,YAAAgoF,WAAA,WACE,IAAKlmJ,KAAKshC,MAAO,CACT,IAAEiiD,EAAgBvjF,KAAZ,KAAEmF,EAAUnF,KAAL,MACb0H,EAAQ1H,KAAKq0J,gBACbgD,EAAc,IAAI,GAAY,CAClCzB,UAAW,UAAGryE,EAAI,aAClB/gF,KAAM,SACN2C,MAAOA,EACPo+E,KAAI,IAEN8zE,EAAYxjJ,SACZ7T,KAAKioJ,OAASoP,EAAYlR,QAC1BnmJ,KAAKs3J,MAAQD,EAAYhB,OAEzBlxJ,EAAMM,IAAI,QAASiC,EAAO,CAAE29H,YAAY,IACxCrlI,KAAKioJ,OAAOhiJ,IAAIyB,GAChB1H,KAAKshC,MAAQ+1H,EAAYjjJ,E,CAE3B,OAAOpU,KAAKshC,KACd,EACF,EAjCA,CAA6C,I,yuBCC7C,cCIe,SAAUv4B,EAAG1D,GAE1B,IAAK,IAAAm5F,UAAL,CAEA,IAAI+4D,EAAc,CAEdC,WAAY97C,EACZ17C,KAAM07C,EACN5gF,OAAQ4gF,EACRhoB,KAAMgoB,EACN/nB,KAAM+nB,EAGN69B,OAAO,EACPke,MAAM,EACNC,WAAW,EACXlY,YAAY,EACZmY,aAAa,EACbC,qBAAqB,EACrBC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,wBAAwB,EACxBC,mBAAmB,EACnBC,sBAAsB,EACtBC,iBAAiB,EACjBvmE,SAAU,OACVwmE,iBAAkB,EAClBC,WAAY,SACZC,WAAY,SACZC,sBAAuB,OACvBC,sBAAuB,OACvBC,UAAW,wBACXC,oBAAqB,oBACrBC,iBAAiB,EACjB/jJ,UAAW,GACXgkJ,mBAAoB,GACpBC,kBAAmB,GACnBC,WAAW,EACXh4F,MAAO,WACPi4F,QAAS,CAAC,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YACnGC,iBAAkB,GAClB3nF,UAAU,EACVl2C,OAAQ,MAEV89H,EAAY,GACZC,IAAO,QAAQ3+I,KAAKxa,OAAOsiB,UAAUD,WACrC+2I,EAAc,WACZ,SAASz0J,EAASklB,EAAKlJ,GACrB,UAAW,GAAKkJ,GAAK/kB,QAAQ6b,EAC/B,CAEA,IACI/D,EADOjI,SAASC,cAAc,OACjBgI,MAEjB,OADAA,EAAMiI,QAAU,kCACTlgB,EAASiY,EAAMy8I,gBAAiB,SAAW10J,EAASiY,EAAMy8I,gBAAiB,OACnF,CATa,GAUdC,EAAe,CACb,4BACA,qEACA,mCACA,UACA5pG,KAAK,IACP6pG,EAAS,WAGP,IAAIC,EAAc,GAClB,GAAIL,EACF,IAAK,IAAIr5J,EAAI,EAAGA,GAAK,EAAGA,IACtB05J,GAAe,kBAAoB15J,EAAI,WAI3C,MAAO,CACL,uCACA,qCACA,gDACA,kDACA,4DACA,SACA,SACA,oCACA,6BACA,8BACA,6BACA,yBACA,uBACA,uBACA,iCACA,SACA,SACA,SACA,0CACA,SACA,uBACA,gCACA05J,EACA,SACA,SACA,oGACA,SACA,yCACA,6DACA,SACA,gDACA,0CACA,qCACA,oDACA,SACA,SACA,UACA9pG,KAAK,GACR,CAjDQ,GAwjCP+pG,EAAS,cACbzwJ,EAAEvI,GAAGi5J,SAAW,SAAU5vJ,EAAM6vJ,GAC9B,GAAmB,iBAAR7vJ,EAAkB,CAC3B,IAAIskB,EAAcnuB,KACdU,EAAON,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,GAyBjD,OAvBAnB,KAAKuF,MAAK,WACR,IAAIo0J,EAAQV,EAAUlwJ,EAAE/I,MAAM0Y,KAAK8gJ,IACnC,GAAIG,EAAO,CACT,IAAI1qJ,EAAS0qJ,EAAM9vJ,GACnB,IAAKoF,EACH,MAAM,IAAI8C,MAAM,8BAAgClI,EAAO,KAG7C,OAARA,EACFskB,EAAcwrI,EAAMh2J,MACH,aAARkG,EACTskB,EAAcwrI,EAAMl5G,UACH,UAAR52C,EACTskB,EAAcwrI,EAAM17F,OAAO19D,MAAMo5J,EAAOj5J,GACvB,WAARmJ,GACT8vJ,EAAMtqJ,UACNtG,EAAE/I,MAAMmsG,WAAWqtD,IAEnBvqJ,EAAO1O,MAAMo5J,EAAOj5J,E,CAG1B,IAEOytB,C,CAIT,OAAOnuB,KAAKy5J,SAAS,WAAWl0J,MAAK,WACnC,IACIo0J,EAAQF,EAASz5J,KADP+I,EAAEpC,OAAO,CAAC,EAAGkD,EAAMd,EAAE/I,MAAM0Y,SAEzC3P,EAAE/I,MAAM0Y,KAAK8gJ,EAAQG,EAAMrvJ,GAC7B,GACF,EAEAvB,EAAEvI,GAAGi5J,SAASp2D,MAAO,EACrBt6F,EAAEvI,GAAGi5J,SAASG,SAAW,CAAC,EAC1B7wJ,EAAEvI,GAAGi5J,SAAS73G,UAAYA,EAC1B74C,EAAEvI,GAAGi5J,SAAS3yJ,SAAWywJ,EACzBxuJ,EAAEvI,GAAGi5J,SAASI,sBAAwB,SAASA,IAC7C,QAAmD,IAAxCA,EAAsBC,cAA+B,CAC9D,IAAIC,EAAahxJ,EAAE,yBAAyB,GAC5C8wJ,EAAsBC,cAAoC,UAApBC,EAAWv3J,MAAyC,KAArBu3J,EAAWryJ,K,CAElF,OAAOmyJ,EAAsBC,aAC/B,EAEA/wJ,EAAE0wJ,SAAW,CAAC,EACd1wJ,EAAE0wJ,SAASO,aAAe,CAAC,EAC3BjxJ,EAAE0wJ,SAASQ,SAAW,CAAC,EAEvBlxJ,EAAEvI,GAAGi5J,SAASS,yBAA2B,WACvC,IAAIC,EAAcpxJ,EAAE,qBAChBoxJ,EAAYx5J,SAAWk5J,KACzBM,EAAYV,SAAS,CACnBd,gBAAiB,QAGvB,EAQA,IAAIyB,EAAW,WACbC,EAAY,OACZC,EAAc,EACdC,EAAOruJ,KACPsuJ,EAAYD,EAAKpqH,MACjBsqH,EAAUF,EAAKpqJ,IACfuqJ,EAAUH,EAAKpuJ,IACfwuJ,EAAaJ,EAAK9kD,OAEhBmlD,EAAY,SAAUrhB,EAAO1vI,GAK/B,GAHAA,EAAOA,GAAQ,CAAC,GADhB0vI,EAAQA,GAAgB,cAIHqhB,EACnB,OAAOrhB,EAGT,KAAMv5I,gBAAgB46J,GACpB,OAAO,IAAIA,EAAUrhB,EAAO1vI,GAG9B,IAAIgxJ,EAkTN,SAAoBthB,GAClB,IAAIshB,EAAM,CAAEj1I,EAAG,EAAG/c,EAAG,EAAG2c,EAAG,GACvB5lB,EAAI,EACJysD,GAAK,EACLyuG,GAAS,EAEO,iBAATvhB,IACTA,EA8vBJ,SAA6BA,GAC3BA,EAAQA,EAAM9pI,QAAQ2qJ,EAAU,IAAI3qJ,QAAQ4qJ,EAAW,IAAIjxI,cAC3D,IAYI/U,EAZA0mJ,GAAQ,EACZ,GAAIjxJ,EAAMyvI,GACRA,EAAQzvI,EAAMyvI,GACdwhB,GAAQ,OACH,GAAa,eAATxhB,EACT,MAAO,CAAE3zH,EAAG,EAAG/c,EAAG,EAAG2c,EAAG,EAAG5lB,EAAG,EAAGk7J,OAAQ,QAQ3C,GAAKzmJ,EAAQ2mJ,EAASH,IAAItgJ,KAAKg/H,GAC7B,MAAO,CAAE3zH,EAAGvR,EAAM,GAAIxL,EAAGwL,EAAM,GAAImR,EAAGnR,EAAM,IAE9C,GAAKA,EAAQ2mJ,EAASC,KAAK1gJ,KAAKg/H,GAC9B,MAAO,CAAE3zH,EAAGvR,EAAM,GAAIxL,EAAGwL,EAAM,GAAImR,EAAGnR,EAAM,GAAIzU,EAAGyU,EAAM,IAE3D,GAAKA,EAAQ2mJ,EAASE,IAAI3gJ,KAAKg/H,GAC7B,MAAO,CAAErmH,EAAG7e,EAAM,GAAIjM,EAAGiM,EAAM,GAAIpS,EAAGoS,EAAM,IAE9C,GAAKA,EAAQ2mJ,EAASG,KAAK5gJ,KAAKg/H,GAC9B,MAAO,CAAErmH,EAAG7e,EAAM,GAAIjM,EAAGiM,EAAM,GAAIpS,EAAGoS,EAAM,GAAIzU,EAAGyU,EAAM,IAE3D,GAAKA,EAAQ2mJ,EAASI,IAAI7gJ,KAAKg/H,GAC7B,MAAO,CAAErmH,EAAG7e,EAAM,GAAIjM,EAAGiM,EAAM,GAAIo3C,EAAGp3C,EAAM,IAE9C,GAAKA,EAAQ2mJ,EAASK,KAAK9gJ,KAAKg/H,GAC9B,MAAO,CAAErmH,EAAG7e,EAAM,GAAIjM,EAAGiM,EAAM,GAAIo3C,EAAGp3C,EAAM,GAAIzU,EAAGyU,EAAM,IAE3D,GAAKA,EAAQ2mJ,EAASM,KAAK/gJ,KAAKg/H,GAC9B,MAAO,CACL35I,EAAG27J,GAAoBlnJ,EAAM,IAC7BuR,EAAG41I,EAAgBnnJ,EAAM,IACzBxL,EAAG2yJ,EAAgBnnJ,EAAM,IACzBmR,EAAGg2I,EAAgBnnJ,EAAM,IACzBymJ,OAAQC,EAAQ,OAAS,QAG7B,GAAK1mJ,EAAQ2mJ,EAASS,KAAKlhJ,KAAKg/H,GAC9B,MAAO,CACL3zH,EAAG41I,EAAgBnnJ,EAAM,IACzBxL,EAAG2yJ,EAAgBnnJ,EAAM,IACzBmR,EAAGg2I,EAAgBnnJ,EAAM,IACzBymJ,OAAQC,EAAQ,OAAS,OAG7B,GAAK1mJ,EAAQ2mJ,EAASU,KAAKnhJ,KAAKg/H,GAC9B,MAAO,CACL3zH,EAAG41I,EAAgBnnJ,EAAM,GAAK,GAAKA,EAAM,IACzCxL,EAAG2yJ,EAAgBnnJ,EAAM,GAAK,GAAKA,EAAM,IACzCmR,EAAGg2I,EAAgBnnJ,EAAM,GAAK,GAAKA,EAAM,IACzCymJ,OAAQC,EAAQ,OAAS,OAI7B,OAAO,CACT,CA1zBYY,CAAoBpiB,IAGV,iBAATA,IACLA,EAAM7yH,eAAe,MAAQ6yH,EAAM7yH,eAAe,MAAQ6yH,EAAM7yH,eAAe,MA8CrEd,EA7CG2zH,EAAM3zH,EA6CN/c,EA7CS0wI,EAAM1wI,EA6CZ2c,EA7Ce+zH,EAAM/zH,EAAvCq1I,EA8CG,CACLj1I,EAAqB,IAAlBg2I,EAAQh2I,EAAG,KACd/c,EAAqB,IAAlB+yJ,EAAQ/yJ,EAAG,KACd2c,EAAqB,IAAlBo2I,EAAQp2I,EAAG,MAhDZ6mC,GAAK,EACLyuG,EAAwC,MAA/BxnI,OAAOimH,EAAM3zH,GAAGlF,QAAQ,GAAa,OAAS,OAC9C64H,EAAM7yH,eAAe,MAAQ6yH,EAAM7yH,eAAe,MAAQ6yH,EAAM7yH,eAAe,MACxF6yH,EAAMnxI,EAAIyzJ,GAAoBtiB,EAAMnxI,GACpCmxI,EAAM9tF,EAAIowG,GAAoBtiB,EAAM9tF,GACpCovG,EA+JN,SAAkB3nI,EAAG9qB,EAAGqjD,GACtBv4B,EAAsB,EAAlB0oI,EAAQ1oI,EAAG,KACf9qB,EAAIwzJ,EAAQxzJ,EAAG,KACfqjD,EAAImwG,EAAQnwG,EAAG,KAEf,IAAI5rD,EAAI06J,EAAKpwI,MAAM+I,GACjB7M,EAAI6M,EAAIrzB,EACRm8B,EAAIyvB,GAAK,EAAIrjD,GACb2tI,EAAItqF,GAAK,EAAIplC,EAAIje,GACjBkrD,EAAI7H,GAAK,GAAK,EAAIplC,GAAKje,GACvB+Z,EAAMtiB,EAAI,EACV+lB,EAAI,CAAC6lC,EAAGsqF,EAAG/5G,EAAGA,EAAGs3B,EAAG7H,GAAGtpC,GACvBtZ,EAAI,CAACyqD,EAAG7H,EAAGA,EAAGsqF,EAAG/5G,EAAGA,GAAG7Z,GACvBqD,EAAI,CAACwW,EAAGA,EAAGs3B,EAAG7H,EAAGA,EAAGsqF,GAAG5zH,GAEzB,MAAO,CAAEyD,EAAO,IAAJA,EAAS/c,EAAO,IAAJA,EAAS2c,EAAO,IAAJA,EACtC,CA/KYs2I,CAASviB,EAAMrmH,EAAGqmH,EAAMnxI,EAAGmxI,EAAM9tF,GACvCY,GAAK,EACLyuG,EAAS,OACAvhB,EAAM7yH,eAAe,MAAQ6yH,EAAM7yH,eAAe,MAAQ6yH,EAAM7yH,eAAe,OACxF6yH,EAAMnxI,EAAIyzJ,GAAoBtiB,EAAMnxI,GACpCmxI,EAAMt3I,EAAI45J,GAAoBtiB,EAAMt3I,GACpC44J,EAmFN,SAAkB3nI,EAAG9qB,EAAGnG,GACtB,IAAI2jB,EAAG/c,EAAG2c,EAMV,SAASu2I,EAAQ//H,EAAG+5G,EAAGziF,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAUt3B,EAAc,GAAT+5G,EAAI/5G,GAASs3B,EACpCA,EAAI,EAAI,EAAUyiF,EAClBziF,EAAI,EAAI,EAAUt3B,GAAK+5G,EAAI/5G,IAAM,EAAI,EAAIs3B,GAAK,EAC3Ct3B,CACT,CAEA,GAbA9I,EAAI0oI,EAAQ1oI,EAAG,KACf9qB,EAAIwzJ,EAAQxzJ,EAAG,KACfnG,EAAI25J,EAAQ35J,EAAG,KAWL,IAANmG,EACFwd,EAAI/c,EAAI2c,EAAIvjB,MACP,CACL,IAAI8zI,EAAI9zI,EAAI,GAAMA,GAAK,EAAImG,GAAKnG,EAAImG,EAAInG,EAAImG,EACxC4zB,EAAI,EAAI/5B,EAAI8zI,EAChBnwH,EAAIm2I,EAAQ//H,EAAG+5G,EAAG7iH,EAAI,EAAI,GAC1BrqB,EAAIkzJ,EAAQ//H,EAAG+5G,EAAG7iH,GAClB1N,EAAIu2I,EAAQ//H,EAAG+5G,EAAG7iH,EAAI,EAAI,E,CAG5B,MAAO,CAAEtN,EAAO,IAAJA,EAAS/c,EAAO,IAAJA,EAAS2c,EAAO,IAAJA,EACtC,CA9GYw2I,CAASziB,EAAMrmH,EAAGqmH,EAAMnxI,EAAGmxI,EAAMt3I,GACvCoqD,GAAK,EACLyuG,EAAS,OAGPvhB,EAAM7yH,eAAe,OACvB9mB,EAAI25I,EAAM35I,IA2BhB,IAAkBgmB,EAAG/c,EAAG2c,EArBtB,OAFA5lB,EAAIq8J,EAAWr8J,GAER,CACLysD,GAAIA,EACJyuG,OAAQvhB,EAAMuhB,QAAUA,EACxBl1I,EAAG60I,EAAQ,IAAKC,EAAQG,EAAIj1I,EAAG,IAC/B/c,EAAG4xJ,EAAQ,IAAKC,EAAQG,EAAIhyJ,EAAG,IAC/B2c,EAAGi1I,EAAQ,IAAKC,EAAQG,EAAIr1I,EAAG,IAC/B5lB,EAAGA,EAEP,CA9VYs8J,CAAW3iB,GACpBv5I,KAAKm8J,eAAiB5iB,EACpBv5I,KAAKo8J,GAAKvB,EAAIj1I,EACd5lB,KAAKq8J,GAAKxB,EAAIhyJ,EACd7I,KAAKs8J,GAAKzB,EAAIr1I,EACdxlB,KAAKu8J,GAAK1B,EAAIj7J,EACdI,KAAKw8J,QAAUhC,EAAU,IAAMx6J,KAAKu8J,IAAM,IAC1Cv8J,KAAKy8J,QAAU5yJ,EAAKixJ,QAAUD,EAAIC,OACrC96J,KAAK08J,cAAgB7yJ,EAAK8yJ,aAMtB38J,KAAKo8J,GAAK,IACZp8J,KAAKo8J,GAAK5B,EAAUx6J,KAAKo8J,KAEvBp8J,KAAKq8J,GAAK,IACZr8J,KAAKq8J,GAAK7B,EAAUx6J,KAAKq8J,KAEvBr8J,KAAKs8J,GAAK,IACZt8J,KAAKs8J,GAAK9B,EAAUx6J,KAAKs8J,KAG3Bt8J,KAAK48J,IAAM/B,EAAIxuG,GACfrsD,KAAK68J,OAASvC,GAChB,EAEAM,EAAUv6J,UAAY,CACpBy8J,OAAQ,WACN,OAAO98J,KAAK+8J,gBAAkB,GAChC,EACAC,QAAS,WACP,OAAQh9J,KAAK88J,QACf,EACAltJ,QAAS,WACP,OAAO5P,KAAK48J,GACd,EACAK,iBAAkB,WAChB,OAAOj9J,KAAKm8J,cACd,EACAe,UAAW,WACT,OAAOl9J,KAAKy8J,OACd,EACAU,SAAU,WACR,OAAOn9J,KAAKu8J,EACd,EACAQ,cAAe,WACb,IAAIlC,EAAM76J,KAAKo9J,QACf,OAAgB,IAARvC,EAAIj1I,EAAkB,IAARi1I,EAAIhyJ,EAAkB,IAARgyJ,EAAIr1I,GAAW,GACrD,EACA63I,SAAU,SAAU31J,GAGlB,OAFA1H,KAAKu8J,GAAKN,EAAWv0J,GACrB1H,KAAKw8J,QAAUhC,EAAU,IAAMx6J,KAAKu8J,IAAM,IACnCv8J,IACT,EACAs9J,MAAO,WACL,IAAIlC,EAAMmC,EAASv9J,KAAKo8J,GAAIp8J,KAAKq8J,GAAIr8J,KAAKs8J,IAC1C,MAAO,CAAEppI,EAAW,IAARkoI,EAAIloI,EAAS9qB,EAAGgzJ,EAAIhzJ,EAAGqjD,EAAG2vG,EAAI3vG,EAAG7rD,EAAGI,KAAKu8J,GACvD,EACAiB,YAAa,WACX,IAAIpC,EAAMmC,EAASv9J,KAAKo8J,GAAIp8J,KAAKq8J,GAAIr8J,KAAKs8J,IACtCppI,EAAIsnI,EAAkB,IAARY,EAAIloI,GACpB9qB,EAAIoyJ,EAAkB,IAARY,EAAIhzJ,GAClBqjD,EAAI+uG,EAAkB,IAARY,EAAI3vG,GACpB,OAAkB,GAAXzrD,KAAKu8J,GACR,OAASrpI,EAAI,KAAO9qB,EAAI,MAAQqjD,EAAI,KACpC,QAAUv4B,EAAI,KAAO9qB,EAAI,MAAQqjD,EAAI,MAAQzrD,KAAKw8J,QAAU,GAClE,EACAiB,MAAO,WACL,IAAIvC,EAAMwC,EAAS19J,KAAKo8J,GAAIp8J,KAAKq8J,GAAIr8J,KAAKs8J,IAC1C,MAAO,CAAEppI,EAAW,IAARgoI,EAAIhoI,EAAS9qB,EAAG8yJ,EAAI9yJ,EAAGnG,EAAGi5J,EAAIj5J,EAAGrC,EAAGI,KAAKu8J,GACvD,EACAoB,YAAa,WACX,IAAIzC,EAAMwC,EAAS19J,KAAKo8J,GAAIp8J,KAAKq8J,GAAIr8J,KAAKs8J,IACtCppI,EAAIsnI,EAAkB,IAARU,EAAIhoI,GACpB9qB,EAAIoyJ,EAAkB,IAARU,EAAI9yJ,GAClBnG,EAAIu4J,EAAkB,IAARU,EAAIj5J,GACpB,OAAkB,GAAXjC,KAAKu8J,GACR,OAASrpI,EAAI,KAAO9qB,EAAI,MAAQnG,EAAI,KACpC,QAAUixB,EAAI,KAAO9qB,EAAI,MAAQnG,EAAI,MAAQjC,KAAKw8J,QAAU,GAClE,EACAoB,MAAO,SAAUC,GACf,OAAOC,EAAS99J,KAAKo8J,GAAIp8J,KAAKq8J,GAAIr8J,KAAKs8J,GAAIuB,EAC7C,EACAE,YAAa,SAAUF,GACrB,MAAO,IAAM79J,KAAK49J,MAAMC,EAC1B,EACAG,OAAQ,WACN,OAAOC,EAAUj+J,KAAKo8J,GAAIp8J,KAAKq8J,GAAIr8J,KAAKs8J,GAAIt8J,KAAKu8J,GACnD,EACA2B,aAAc,WACZ,MAAO,IAAMl+J,KAAKg+J,QACpB,EACAZ,MAAO,WACL,MAAO,CACLx3I,EAAG40I,EAAUx6J,KAAKo8J,IAClBvzJ,EAAG2xJ,EAAUx6J,KAAKq8J,IAClB72I,EAAGg1I,EAAUx6J,KAAKs8J,IAClB18J,EAAGI,KAAKu8J,GAEZ,EACA4B,YAAa,WACX,OAAkB,GAAXn+J,KAAKu8J,GACR,OAAS/B,EAAUx6J,KAAKo8J,IAAM,KAAO5B,EAAUx6J,KAAKq8J,IAAM,KAAO7B,EAAUx6J,KAAKs8J,IAAM,IACtF,QACE9B,EAAUx6J,KAAKo8J,IACf,KACA5B,EAAUx6J,KAAKq8J,IACf,KACA7B,EAAUx6J,KAAKs8J,IACf,KACAt8J,KAAKw8J,QACL,GACR,EACA4B,gBAAiB,WACf,MAAO,CACLx4I,EAAG40I,EAAkC,IAAxBoB,EAAQ57J,KAAKo8J,GAAI,MAAc,IAC5CvzJ,EAAG2xJ,EAAkC,IAAxBoB,EAAQ57J,KAAKq8J,GAAI,MAAc,IAC5C72I,EAAGg1I,EAAkC,IAAxBoB,EAAQ57J,KAAKs8J,GAAI,MAAc,IAC5C18J,EAAGI,KAAKu8J,GAEZ,EACA8B,sBAAuB,WACrB,OAAkB,GAAXr+J,KAAKu8J,GACR,OACE/B,EAAkC,IAAxBoB,EAAQ57J,KAAKo8J,GAAI,MAC3B,MACA5B,EAAkC,IAAxBoB,EAAQ57J,KAAKq8J,GAAI,MAC3B,MACA7B,EAAkC,IAAxBoB,EAAQ57J,KAAKs8J,GAAI,MAC3B,KACF,QACE9B,EAAkC,IAAxBoB,EAAQ57J,KAAKo8J,GAAI,MAC3B,MACA5B,EAAkC,IAAxBoB,EAAQ57J,KAAKq8J,GAAI,MAC3B,MACA7B,EAAkC,IAAxBoB,EAAQ57J,KAAKs8J,GAAI,MAC3B,MACAt8J,KAAKw8J,QACL,GACR,EACA8B,OAAQ,WACN,OAAgB,IAAZt+J,KAAKu8J,GACA,gBAGLv8J,KAAKu8J,GAAK,KAIPgC,EAAST,EAAS99J,KAAKo8J,GAAIp8J,KAAKq8J,GAAIr8J,KAAKs8J,IAAI,MAAU,EAChE,EACAkC,SAAU,SAAUC,GAClB,IAAIC,EAAa,IAAMT,EAAUj+J,KAAKo8J,GAAIp8J,KAAKq8J,GAAIr8J,KAAKs8J,GAAIt8J,KAAKu8J,IAC7DoC,EAAmBD,EACnB/B,EAAe38J,KAAK08J,cAAgB,qBAAuB,GAE3D+B,IAEFE,EADQ/D,EAAU6D,GACGP,gBAGvB,MACE,8CACAvB,EACA,iBACA+B,EACA,gBACAC,EACA,GAEJ,EACA/2I,SAAU,SAAUkzI,GAClB,IAAI8D,IAAc9D,EAClBA,EAASA,GAAU96J,KAAKy8J,QAExB,IAAIoC,GAAkB,EAClBC,EAAW9+J,KAAKu8J,GAAK,GAAKv8J,KAAKu8J,IAAM,EAIzC,OAFGqC,IAAaE,GAAwB,QAAXhE,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAU5E,QAAXA,IACF+D,EAAkB7+J,KAAKm+J,eAEV,SAAXrD,IACF+D,EAAkB7+J,KAAKq+J,yBAEV,QAAXvD,GAA+B,SAAXA,IACtB+D,EAAkB7+J,KAAK+9J,eAEV,SAAXjD,IACF+D,EAAkB7+J,KAAK+9J,aAAY,IAEtB,SAAXjD,IACF+D,EAAkB7+J,KAAKk+J,gBAEV,SAAXpD,IACF+D,EAAkB7+J,KAAKs+J,UAEV,QAAXxD,IACF+D,EAAkB7+J,KAAK29J,eAEV,QAAX7C,IACF+D,EAAkB7+J,KAAKw9J,eAGlBqB,GAAmB7+J,KAAK+9J,eA9Bd,SAAXjD,GAAiC,IAAZ96J,KAAKu8J,GACrBv8J,KAAKs+J,SAEPt+J,KAAKm+J,aA4BhB,EAEAY,mBAAoB,SAAUv+J,EAAIE,GAChC,IAAI64I,EAAQ/4I,EAAGD,MAAM,KAAM,CAACP,MAAM+E,OAAO,GAAGzE,MAAMM,KAAKF,KAKvD,OAJAV,KAAKo8J,GAAK7iB,EAAM6iB,GAChBp8J,KAAKq8J,GAAK9iB,EAAM8iB,GAChBr8J,KAAKs8J,GAAK/iB,EAAM+iB,GAChBt8J,KAAKq9J,SAAS9jB,EAAMgjB,IACbv8J,IACT,EACAg/J,QAAS,WACP,OAAOh/J,KAAK++J,mBAAmBC,EAAS79J,UAC1C,EACA89J,SAAU,WACR,OAAOj/J,KAAK++J,mBAAmBE,EAAU99J,UAC3C,EACA+9J,OAAQ,WACN,OAAOl/J,KAAK++J,mBAAmBG,EAAQ/9J,UACzC,EACAg+J,WAAY,WACV,OAAOn/J,KAAK++J,mBAAmBI,EAAYh+J,UAC7C,EACAi+J,SAAU,WACR,OAAOp/J,KAAK++J,mBAAmBK,EAAUj+J,UAC3C,EACAk+J,UAAW,WACT,OAAOr/J,KAAK++J,mBAAmBM,EAAWl+J,UAC5C,EACAm+J,KAAM,WACJ,OAAOt/J,KAAK++J,mBAAmBO,EAAMn+J,UACvC,EAEAo+J,kBAAmB,SAAU/+J,EAAIE,GAC/B,OAAOF,EAAGD,MAAM,KAAM,CAACP,MAAM+E,OAAO,GAAGzE,MAAMM,KAAKF,IACpD,EACA8+J,UAAW,WACT,OAAOx/J,KAAKu/J,kBAAkBC,EAAWr+J,UAC3C,EACAs+J,WAAY,WACV,OAAOz/J,KAAKu/J,kBAAkBE,EAAYt+J,UAC5C,EACAu+J,cAAe,WACb,OAAO1/J,KAAKu/J,kBAAkBG,EAAev+J,UAC/C,EACAw+J,gBAAiB,WACf,OAAO3/J,KAAKu/J,kBAAkBI,EAAiBx+J,UACjD,EACAy+J,MAAO,WACL,OAAO5/J,KAAKu/J,kBAAkBK,EAAOz+J,UACvC,EACA0+J,OAAQ,WACN,OAAO7/J,KAAKu/J,kBAAkBM,EAAQ1+J,UACxC,GAKFy5J,EAAUkF,UAAY,SAAUvmB,EAAO1vI,GACrC,GAAoB,iBAAT0vI,EAAmB,CAC5B,IAAIwmB,EAAW,CAAC,EAChB,IAAK,IAAIlgK,KAAK05I,EACRA,EAAM7yH,eAAe7mB,KAErBkgK,EAASlgK,GADD,MAANA,EACY05I,EAAM15I,GAENg8J,GAAoBtiB,EAAM15I,KAI9C05I,EAAQwmB,C,CAGV,OAAOnF,EAAUrhB,EAAO1vI,EAC1B,EAwPA+wJ,EAAUj3G,OAAS,SAAUq8G,EAAQC,GACnC,SAAKD,IAAWC,IAGTrF,EAAUoF,GAAQ7B,eAAiBvD,EAAUqF,GAAQ9B,aAC9D,EACAvD,EAAUnlD,OAAS,WACjB,OAAOmlD,EAAUkF,UAAU,CACzBl6I,EAAG+0I,IACH9xJ,EAAG8xJ,IACHn1I,EAAGm1I,KAEP,EA0IAC,EAAUsF,IAAM,SAAUF,EAAQC,EAAQj4F,GACxCA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GAEtC,IAOIm4F,EAPAC,EAAOxF,EAAUoF,GAAQ5C,QACzBiD,EAAOzF,EAAUqF,GAAQ7C,QAEzBphI,EAAIgsC,EAAS,IACbjyB,EAAQ,EAAJ/Z,EAAQ,EACZp8B,EAAIygK,EAAKzgK,EAAIwgK,EAAKxgK,EAYlB0gK,EAAK,GAFTH,IALEA,EADEpqH,EAAIn2C,IAAM,EACPm2C,GAECA,EAAIn2C,IAAM,EAAIm2C,EAAIn2C,IAGf,GAAK,GAIZq7J,EAAO,CACTr1I,EAAGy6I,EAAKz6I,EAAIu6I,EAAKC,EAAKx6I,EAAI06I,EAC1Bz3J,EAAGw3J,EAAKx3J,EAAIs3J,EAAKC,EAAKv3J,EAAIy3J,EAC1B96I,EAAG66I,EAAK76I,EAAI26I,EAAKC,EAAK56I,EAAI86I,EAC1B1gK,EAAGygK,EAAKzgK,EAAIo8B,EAAIokI,EAAKxgK,GAAK,EAAIo8B,IAGhC,OAAO4+H,EAAUK,EACnB,EAUAL,EAAU2F,YAAc,SAAUP,EAAQC,GACxC,IAAIO,EAAK5F,EAAUoF,GACfS,EAAK7F,EAAUqF,GACfG,EAAOI,EAAGpD,QACViD,EAAOI,EAAGrD,QACVsD,EAAcF,EAAGzD,gBACjB4D,EAAcF,EAAG1D,gBACjB6D,EACF10J,KAAKC,IAAIi0J,EAAKx6I,EAAGy6I,EAAKz6I,GACtB1Z,KAAKiE,IAAIiwJ,EAAKx6I,EAAGy6I,EAAKz6I,GACtB1Z,KAAKC,IAAIi0J,EAAKv3J,EAAGw3J,EAAKx3J,GACtBqD,KAAKiE,IAAIiwJ,EAAKv3J,EAAGw3J,EAAKx3J,GACtBqD,KAAKC,IAAIi0J,EAAK56I,EAAG66I,EAAK76I,GACtBtZ,KAAKiE,IAAIiwJ,EAAK56I,EAAG66I,EAAK76I,GAExB,MAAO,CACLq7I,WAAY30J,KAAK0kB,IAAI8vI,EAAcC,GACnCpnB,MAAOqnB,EAEX,EAOAhG,EAAUkG,WAAa,SAAUd,EAAQC,GACvC,IAAIM,EAAc3F,EAAU2F,YAAYP,EAAQC,GAChD,OAAOM,EAAYM,WAAa,KAAON,EAAYhnB,MAAQ,GAC7D,EAOAqhB,EAAUmG,aAAe,SAAUC,EAAWC,GAI5C,IAHA,IAAIC,EAAY,KACZC,EAAY,EACZC,GAAiB,EACZvhK,EAAI,EAAGA,EAAIohK,EAAUtgK,OAAQd,IAAK,CAIzC,IAAI0gK,EAAc3F,EAAU2F,YAAYS,EAAWC,EAAUphK,IACzDwhK,EAAWd,EAAYM,WAAa,KAAON,EAAYhnB,MAAQ,IAC/D7wH,EAAQ,GAAK63I,EAAYM,WAAa,KAAON,EAAYhnB,MAAQ,KAGlE8nB,IAAaD,GACbC,GAAYD,GAAkB14I,EAAQy4I,IACrCE,IAAaD,GAAkB14I,EAAQy4I,KAEzCC,EAAiBC,EACjBF,EAAYz4I,EACZw4I,EAAYtG,EAAUqG,EAAUphK,I,CAGpC,OAAOqhK,CACT,EAKA,IA+PMI,EAKAC,EACAC,EArQF13J,EAAS8wJ,EAAU9wJ,MAAQ,CAC7B23J,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,MACPC,eAAgB,SAChBC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,YAAa,SACbC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACPC,QAAS,MACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,MACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,MACPC,WAAY,SACZC,OAAQ,MACRC,YAAa,UAIXtM,EAAY3D,EAAU2D,SAM1B,SAAcpoI,GACZ,IAAI20I,EAAU,CAAC,EACf,IAAK,IAAIjrK,KAAKs2B,EACRA,EAAEzP,eAAe7mB,KACnBirK,EAAQ30I,EAAEt2B,IAAMA,GAGpB,OAAOirK,CACT,CAdqCC,CAAKjhK,GA8FtCkxJ,GAaEuG,EAAoB,eALpBD,EAAW,MAHE,uBAGmB,QANlB,gBAM0C,KAKT,aAAeA,EAAW,aAAeA,EAAW,YACnGE,EACF,cACAF,EACA,aACAA,EACA,aACAA,EACA,aACAA,EACA,YAEK,CACLzG,IAAK,IAAIvgJ,OAAO,MAAQinJ,GACxBtG,KAAM,IAAI3gJ,OAAO,OAASknJ,GAC1BtG,IAAK,IAAI5gJ,OAAO,MAAQinJ,GACxBpG,KAAM,IAAI7gJ,OAAO,OAASknJ,GAC1BpG,IAAK,IAAI9gJ,OAAO,MAAQinJ,GACxBlG,KAAM,IAAI/gJ,OAAO,OAASknJ,GAC1B9F,KAAM,qDACND,KAAM,qDACNH,KAAM,uEAqEVv7J,OAAO66J,UAAYA,EAGnB7xJ,GAAE,WACIA,EAAEvI,GAAGi5J,SAASp2D,MAChBt6F,EAAEvI,GAAGi5J,SAASS,0BAElB,GA90EqB,CAgHrB,SAAS8Q,EAAgBhvI,EAAGu9G,EAAO3kI,EAAW/K,GAE5C,IADA,IAAIqsE,EAAO,GACFr2E,EAAI,EAAGA,EAAIm8B,EAAEr7B,OAAQd,IAAK,CACjC,IAAIoO,EAAU+tB,EAAEn8B,GAChB,GAAIoO,EAAS,CACX,IAAIg9J,EAAOrQ,EAAU3sJ,GACjB8wE,EAAIksF,EAAKxN,QAAQx7J,EAAI,GAAM,4BAA8B,6BAC7D88E,GAAK67E,EAAUj3G,OAAO41F,EAAOtrI,GAAW,mBAAqB,GAC7D,IAAI4wJ,EAAkBoM,EAAKrjJ,SAAS/d,EAAK8uJ,iBAAmB,OACxDuS,EAAc/R,EAAc,oBAAsB8R,EAAK9M,cAAgB,UAAY8M,EAAKzM,WAC5FtoF,EAAKvxE,KACH,gBACEk6J,EACA,iBACAoM,EAAK9M,cACL,YACAp/E,EACA,yCACAmsF,EACA,oB,KAEC,CAELh1F,EAAKvxE,KACHoE,EAAE,WACCiqF,OACCjqF,EAAE,oEAJE,mBAI0E,aAAavB,KACzF,QACAqC,EAAK6uJ,sBAGRxiF,O,EAIT,MAAO,qBAAuBthE,EAAY,KAAOshE,EAAKzmB,KAAK,IAAM,QACnE,CAsBA,SAASgqG,EAASzlJ,EAASmiB,GACzB,IAq7BgBo7C,EAAMxiE,EAAMu4E,EACxB02B,EAt7BAn0G,EAbN,SAAyBssB,EAAGg1I,GAC1B,IAAIthK,EAAOd,EAAEpC,OAAO,CAAC,EAAG4wJ,EAAaphI,GAQrC,OAPAtsB,EAAKi5B,UAAY,CACfk9B,KAAMj0D,EAAKlC,EAAKm2D,KAAMmrG,GACtBrwI,OAAQ/uB,EAAKlC,EAAKixB,OAAQqwI,GAC1Bz3E,KAAM3nF,EAAKlC,EAAK6pF,KAAMy3E,GACtBx3E,KAAM5nF,EAAKlC,EAAK8pF,KAAMw3E,GACtB3T,WAAYzrJ,EAAKlC,EAAK2tJ,WAAY2T,IAE7BthK,CACT,CAGauhK,CAAgBj1I,EAAGniB,GAC5ByjJ,EAAO5tJ,EAAK4tJ,KACZS,EAAuBruJ,EAAKquJ,qBAC5BC,EAAkBtuJ,EAAKsuJ,gBACvBr3F,EAAQj3D,EAAKi3D,MACbh+B,EAAYj5B,EAAKi5B,UACjBuoI,GA+6Bc95F,EA/6BI+5F,GA+6BEv8J,EA/6BM,GAi7BrB,WACL,IAAIhF,EAAU/J,KACZU,EAAOS,UACLoqK,EAAY,WACdvtD,EAAU,KACVzsC,EAAKhxE,MAAMwJ,EAASrJ,EACtB,EACI4mF,GAAU7/D,aAAau2F,IACvB12B,GAAa02B,IAASA,EAAUz2F,WAAWgkJ,EAAWx8J,GAC5D,GAz7BE2vC,GAAU,EACV8sH,GAAa,EACbC,GAAY,EACZC,EAAY,EACZC,EAAa,EACbC,EAAmB,EACnBC,EAAc,EAEdC,EAAa,EACbC,EAAwB,EACxBC,EAAoB,EACpBC,EAAa,EACbC,EAAoB,EACpBC,EAAe,EACfC,EAAe,EACfrT,EAAU,GACVsT,EAAe,GACfC,EAAgB,CAAC,EACjBtT,EAAmBnvJ,EAAKmvJ,iBAAiB14J,MAAM,GAC/C83J,EAAmBvuJ,EAAKuuJ,iBACxBmU,EAAgB,cAChBC,EAAyB,KAEvBn6I,EAAMre,EAAQkc,cAEhBu8I,GADOp6I,EAAIvV,KACI/T,EAAEiL,IACjBq9D,GAAW,EACX5wB,EAAY13C,EAAEuwJ,EAAQjnI,GAAK/M,SAASw7C,GACpC4rG,EAAkBjsH,EAAU7sC,KAAK,wBACjCuvE,EAAU1iC,EAAU7sC,KAAK,aACzB+4J,GAAalsH,EAAU7sC,KAAK,eAC5Bg5J,GAASnsH,EAAU7sC,KAAK,WACxBi5J,GAAcpsH,EAAU7sC,KAAK,cAC7Bk5J,GAAmBrsH,EAAU7sC,KAAK,mBAClCm5J,GAActsH,EAAU7sC,KAAK,aAC7Bo5J,GAAmBvsH,EAAU7sC,KAAK,oBAClCq5J,GAAYxsH,EAAU7sC,KAAK,aAC3Bs5J,GAAmBzsH,EAAU7sC,KAAK,eAClCu5J,GAAwB1sH,EAAU7sC,KAAK,eACvCw5J,GAAe3sH,EAAU7sC,KAAK,cAC9By5J,GAAc5sH,EAAU7sC,KAAK,aAC7B05J,GAAe7sH,EAAU7sC,KAAK,cAC9B25J,GAAe9sH,EAAU7sC,KAAK,sBAC9B45J,GAAUf,EAAapjE,GAAG,SAC1BokE,GAAmBD,IAAyC,UAA9Bf,EAAajlK,KAAK,SAAuBqyJ,IACvE6T,GAAgBF,KAAY/V,EAC5BkW,GAAWD,GACP3kK,EAAEswJ,GAAc/zI,SAASw7C,GAAOx7C,SAASzb,EAAK+K,WAAW0Q,SAASzb,EAAKgvJ,mBACvE9vJ,EAAE,IACN6kK,GAAgBF,GAAgBC,GAAWlB,EAC3CoB,GAAiBF,GAAS/5J,KAAK,qBAC/Bk6J,GAAejkK,EAAK0vI,OAAUi0B,IAAWf,EAAaxmK,MACtD8nK,IAAc,EACdC,GAAyBnkK,EAAK8uJ,gBAC9Bf,IAAuB/tJ,EAAK8tJ,aAAe9tJ,EAAK+tJ,oBAChDtyJ,IAAWwoK,GACXtuB,GAAa31I,EAAK21I,aAAeiuB,GAEnC,SAASQ,KAOP,GANIpkK,EAAKkuJ,kBACPluJ,EAAKiuJ,aAAc,GAGrByV,GAAaxsJ,KAAKlX,EAAKkuJ,gBAAkBluJ,EAAK0uJ,sBAAwB1uJ,EAAK2uJ,uBAEvE3uJ,EAAKkvJ,QAAS,CAChBA,EAAUlvJ,EAAKkvJ,QAAQz4J,MAAM,GAC7B+rK,EAAetjK,EAAE7H,QAAQ63J,EAAQ,IAAMA,EAAU,CAACA,GAClDuT,EAAgB,CAAC,EACjB,IAAK,IAAIzsK,EAAI,EAAGA,EAAIwsK,EAAa1rK,OAAQd,IACvC,IAAK,IAAI4L,EAAI,EAAGA,EAAI4gK,EAAaxsK,GAAGc,OAAQ8K,IAAK,CAC/C,IAAIovJ,EAAMD,EAAUyR,EAAaxsK,GAAG4L,IAAI0yJ,cACxCmO,EAAczR,IAAO,C,EAK3Bp6G,EAAUupD,YAAY,UAAWytD,GACjCh3G,EAAUupD,YAAY,qBAAsBngG,EAAK6tJ,WACjDj3G,EAAUupD,YAAY,mBAAoBngG,EAAKivJ,WAC/Cr4G,EAAUupD,YAAY,mBAAoBw1C,IAC1C/+F,EAAUupD,YAAY,uBAAwBngG,EAAK8tJ,aACnDl3G,EAAUupD,YAAY,+BAAgCngG,EAAKouJ,mBAC3Dx3G,EAAUupD,YAAY,uBAAwBngG,EAAKiuJ,aACnDr3G,EAAUupD,YAAY,kBAAmBngG,EAAKkuJ,iBAC9Ct3G,EAAUupD,YAAY,uBAAwBngG,EAAKguJ,aACnDp3G,EAAUn7B,SAASzb,EAAK+K,WAAW0Q,SAASzb,EAAK+uJ,oBAEjD0S,IACF,CAwNA,SAAS4C,KACP,GAAI/V,GAAmBp4J,OAAOguJ,aAAc,CAE1C,IACE,IAAIogB,EAAapuK,OAAOguJ,aAAaoK,GAAiBluJ,MAAM,MACxDkkK,EAAWxtK,OAAS,WACfZ,OAAOguJ,aAAaoK,GAC3BpvJ,EAAExD,KAAK4oK,GAAY,SAAUtuK,EAAGk/E,GAC9BqvF,GAA2BrvF,EAC7B,IAEQ,CAAV,MAAO7zE,GAAG,CAEZ,IACE8tJ,EAAmBj5J,OAAOguJ,aAAaoK,GAAiBluJ,MAAM,IACpD,CAAV,MAAOiB,GAAG,C,CAEhB,CAEA,SAASkjK,GAA2B70B,GAClC,GAAI2e,EAAsB,CACxB,IAAI2C,EAAMD,EAAUrhB,GAAO4kB,cAC3B,IAAKmO,EAAczR,KAA8C,IAAtC9xJ,EAAEslK,QAAQxT,EAAK7B,GAExC,IADAA,EAAiBr0J,KAAKk2J,GACf7B,EAAiBr4J,OAASy3J,GAC/BY,EAAiBn1J,QAIrB,GAAIs0J,GAAmBp4J,OAAOguJ,aAC5B,IACEhuJ,OAAOguJ,aAAaoK,GAAmBa,EAAiBvpG,KAAK,IACnD,CAAV,MAAOvkD,GAAG,C,CAGlB,CAiBA,SAASojK,KACP,IAAIC,EAAe5qK,KAEfuyE,EAAOntE,EAAEjE,IAAIunK,GAAc,SAAUtT,EAASl5J,GAChD,OAAOmrK,EAAgBjS,EAASwV,EAAc,iCAAmC1uK,EAAGgK,EACtF,IAEAqkK,KAEIlV,GACF9iF,EAAKvxE,KACHqmK,EA1BN,WACE,IAAIxhE,EAAS,GACb,GAAI3/F,EAAKiuJ,YACP,IAAK,IAAIj4J,EAAI,EAAGA,EAAIm5J,EAAiBr4J,OAAQd,IAAK,CAChD,IAAIg7J,EAAMD,EAAU5B,EAAiBn5J,IAAIs+J,cAEpCmO,EAAczR,IACjBrxD,EAAO7kG,KAAKq0J,EAAiBn5J,G,CAKnC,OAAO2pG,EAAO18E,UAAUxsB,MAAM,EAAGuJ,EAAKuuJ,iBACxC,CAasBoW,GAA6BD,EAAc,0CAA2C1kK,IAI1GqjK,GAAiBh3F,KAAKA,EAAKzmB,KAAK,IAClC,CAEA,SAASg/G,KACP,GAAI5kK,EAAKguJ,YAAa,CACpB,IAAIhhJ,EAAUk3J,GACV9/J,EAAUtK,KACdwpK,GAAsBj3F,KAAK80F,EAAgB,CAACn0J,EAAS5I,GAAUA,EAAS,yBAA0BpE,G,CAEtG,CAEA,SAASg1D,MACH8sG,GAAc,GAAKD,GAAa,GAAKG,GAAe,IACtDP,KAEFE,GAAa,EACb/qH,EAAUn7B,SAASinJ,GACnBC,EAAyB,KACzBC,EAAa3oK,QAAQ,qBAAsB,CAACH,MAC9C,CAEA,SAASusH,KACPs7C,GAAa,EACb/qH,EAAU4rC,YAAYkgF,GACtBE,EAAa3oK,QAAQ,oBAAqB,CAACH,MAC7C,CAEA,SAAS+qK,KACP,IAAIhnK,EAAQulK,GAAUhnK,MAEtB,GAAe,OAAVyB,GAA4B,KAAVA,IAAiB83I,GAGjC,CACL,IAAIyrB,EAAOrQ,EAAUlzJ,GACjBujK,EAAKr7J,WACPnK,GAAIwlK,GACJ0D,IAAoB,IAEpB1B,GAAU3nJ,SAAS,sB,MARrB7f,GAAI,MACJkpK,IAAoB,EAUxB,CAEA,SAASrsG,KACH5jB,EACFi1C,KAEAD,IAEJ,CAEA,SAASA,KACP,IAAI/gF,EAAQ5J,EAAE8mE,MAAM,uBAEpB,GAAInxB,EACF4sH,UAMF,GAFAmB,EAAa3oK,QAAQ,sBAAuB,CAACH,QAET,IAAhCm/B,EAAU00H,WAAW7zJ,QAAoBgP,EAAMi8J,qBAAnD,EA9cJ,WACE,IAAK,IAAI/uK,EAAI,EAAGA,EAAIo5J,EAAUt4J,OAAQd,IAChCo5J,EAAUp5J,IACZo5J,EAAUp5J,GAAG8zF,MAGnB,CA4cIk7E,GACAnwH,GAAU,EAEV,IAAIowH,EAAO/lK,EAAEspB,GACby8I,EAAK/iK,KAAK,mBAAoBgjK,IAC9BD,EAAK/iK,KAAK,iBAAkBijK,IAC5BjmK,EAAEhJ,QAAQgM,KAAK,kBAAmBs/J,GAClCsC,GAASroJ,SAAS,aAClBm7B,EAAU4rC,YAAY,aAEtBi/E,KACA2D,KAEAlB,GAAcpqK,KAEd8qK,KACA3rI,EAAU4wD,KAAKq6E,IACftB,EAAa3oK,QAAQ,gBAAiB,CAACiqK,I,CACzC,CAEA,SAASgB,GAAU7jK,GAEC,KAAdA,EAAEgrD,SACJy9B,IAEJ,CAEA,SAASq7E,GAAS9jK,GAEA,GAAZA,EAAEyjB,SAMF68I,IAIA5T,GACF+W,IAAoB,GAEpBO,KAEFv7E,MACF,CAEA,SAASA,KAEFj1C,IAAW+4G,IAGhB/4G,GAAU,EAEV31C,EAAEspB,GAAKxlB,OAAO,mBAAoBkiK,IAClChmK,EAAEspB,GAAKxlB,OAAO,iBAAkBmiK,IAChCjmK,EAAEhJ,QAAQ8M,OAAO,kBAAmBw+J,GAEpCsC,GAASthF,YAAY,aACrB5rC,EAAUn7B,SAAS,aAEnBwd,EAAU6wD,KAAKhwF,MACf8oK,EAAa3oK,QAAQ,gBAAiB,CAACH,OACzC,CAEA,SAASurK,KACPzpK,GAAIsoK,IAAa,EACnB,CAEA,SAAStoK,GAAI8zI,EAAO41B,GAQlB,IAAIpP,EAAUqP,EAPVxU,EAAUj3G,OAAO41F,EAAO51I,MAG1BsrK,OAKG11B,GAASiG,GACZl6I,IAAU,GAEVA,IAAU,EACVmmK,GAAalyB,EAEb61B,GADArP,EAAWnF,EAAUrhB,IACH+jB,QAElB2O,EAAcmD,EAAOl8I,EAAI,IAAO,IAChCg5I,EAAoBkD,EAAOhnK,EAC3B+jK,EAAeiD,EAAO3jH,EACtB2gH,EAAegD,EAAOxvK,GAExBqvK,KAEIlP,GAAYA,EAASnwJ,YAAcu/J,IACrCnB,GAAyBnkK,EAAK8uJ,iBAAmBoH,EAAS7C,aAE9D,CAEA,SAASv5J,GAAIkG,GAGX,OAFAA,EAAOA,GAAQ,CAAC,EAEZ21I,IAAcl6I,GACT,KAGFs1J,EAAUkF,UACf,CACE5sI,EAAG+4I,EACH7jK,EAAG8jK,EACHzgH,EAAG0gH,EACHvsK,EAAGsM,KAAKikC,MAAqB,IAAfi8H,GAAsB,KAEtC,CAAEtR,OAAQjxJ,EAAKixJ,QAAUkT,IAE7B,CAMA,SAAShuG,KACPivG,KAEAnsI,EAAUk9B,KAAKr8D,MACf8oK,EAAa3oK,QAAQ,gBAAiB,CAACH,MACzC,CAEA,SAASsrK,KACPhC,GAAU5gF,YAAY,uBAEtBgjF,KAGA,IAAIC,EAAY1U,EAAUkF,UAAU,CAAE5sI,EAAG+4I,EAAY7jK,EAAG,EAAGqjD,EAAG,IAC9D03B,EAAQ7iD,IAAI,mBAAoBgvI,EAAUvR,eAG1C,IAAIjD,EAASkT,GACT5B,EAAe,IAAwB,IAAjBA,GAAiC,SAAXtR,KAC/B,QAAXA,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,IAChEA,EAAS,QAIb,IAAIyU,EAAY5rK,GAAI,CAAEm3J,OAAQA,IAC5B0U,EAAe,GAMjB,GAHA3B,GAAexhF,YAAY,oBAC3BwhF,GAAevtI,IAAI,mBAAoB,gBAElCivI,GAAa/vB,GAEhBquB,GAAevoJ,SAAS,wBACnB,CACL,IAAImqJ,EAAUF,EAAUxR,cACtB2R,EAAUH,EAAUpR,cAUtB,GAPIhF,GAAmC,IAApBoW,EAAUI,MAC3B9B,GAAevtI,IAAI,mBAAoBovI,IAEvC7B,GAAevtI,IAAI,mBAAoB,eACvCutI,GAAevtI,IAAI,SAAUivI,EAAU/Q,aAGrC30J,EAAKivJ,UAAW,CAClB,IAAI+B,EAAM0U,EAAUnS,QACpBvC,EAAIj7J,EAAI,EACR,IAAIgwK,EAAYhV,EAAUC,GAAKsD,cAC3B0R,EAAW,yBAA2BD,EAAY,KAAOH,EAAU,IAEnEvW,EACF4T,GAAiBxsI,IAAI,SAAUs6H,EAAUgV,GAAWpR,SAAS,CAAE7B,aAAc,GAAK8S,KAElF3C,GAAiBxsI,IAAI,aAAc,WAAauvI,GAChD/C,GAAiBxsI,IAAI,aAAc,QAAUuvI,GAC7C/C,GAAiBxsI,IAAI,aAAc,OAASuvI,GAE5C/C,GAAiBxsI,IAAI,aAAc,6BAA+BsvI,EAAY,KAAOH,EAAU,K,CAInGD,EAAeD,EAAU3nJ,SAASkzI,E,CAIhCjxJ,EAAK6tJ,WACPuV,GAAUhnK,IAAIupK,GAGZ3lK,EAAKiuJ,aACPwW,KAGFG,IACF,CAEA,SAASY,KACP,IAAIjnK,EAAI8jK,EACJzgH,EAAI0gH,EAER,GAAI3sB,IAAcl6I,GAEhB0nK,GAAiBr5E,OACjBk5E,GAAYl5E,OACZg5E,GAAWh5E,WACN,CAELq5E,GAAiBt5E,OACjBm5E,GAAYn5E,OACZi5E,GAAWj5E,OAGX,IAAI2gC,EAAQjsH,EAAIsjK,EACZp3C,EAAQq3C,EAAalgH,EAAIkgH,EAC7Bt3C,EAAQnoH,KAAKC,KAAKy/J,EAAkB1/J,KAAKiE,IAAIu7J,EAAYE,EAAkBv3C,EAAQu3C,IACnFt3C,EAAQpoH,KAAKC,KAAKy/J,EAAkB1/J,KAAKiE,IAAIw7J,EAAaC,EAAkBt3C,EAAQs3C,IACpFe,GAAWrsI,IAAI,CACbwI,IAAKwrF,EAAQ,KACb5kG,KAAM2kG,EAAQ,OAGhB,IAAIy7C,EAAS1D,EAAeN,EAC5BkB,GAAiB1sI,IAAI,CACnB5Q,KAAMogJ,EAAS/D,EAAwB,EAAI,OAI7C,IAAIgE,EAAS9D,EAAaJ,EAC1BgB,GAAYvsI,IAAI,CACdwI,IAAKinI,EAAS/D,EAAoB,M,CAGxC,CAEA,SAAS2C,GAAoBqB,GAC3B,IAAIz2B,EAAQ51I,KACV6rK,EAAe,GACflhK,IAAam9J,IAAoB7Q,EAAUj3G,OAAO41F,EAAOw0B,IAEvDx0B,IACFi2B,EAAej2B,EAAM3xH,SAASomJ,KAE7BtvH,GAAW0vH,GAA2B70B,IAGrCi0B,IACFf,EAAaxmK,IAAIupK,GAGfQ,GAAgB1hK,IAClBw0B,EAAUhI,OAAOy+G,GACjBkzB,EAAa3oK,QAAQ,SAAU,CAACy1I,IAEpC,CAEA,SAAS+xB,KACF5sH,IAGLgtH,EAAYvoF,EAAQh9C,QACpBwlI,EAAaxoF,EAAQrwD,SACrB84I,EAAmBe,GAAW75I,SACjB85I,GAAOzmI,QACpB0lI,EAAce,GAAO95I,SACrBk5I,EAAoBa,GAAY/5I,SAChCg5I,EAAaiB,GAAY5mI,QACzB4lI,EAAwBiB,GAAiB7mI,QAEpCsxH,IACHh3G,EAAUngB,IAAI,WAAY,YACtBz2B,EAAKsxB,OACPslB,EAAUtlB,OAAOtxB,EAAKsxB,QAEtBslB,EAAUtlB,OAoFlB,SAAmB80I,EAAQ3uI,GACzB,IAAI4uI,EAAS,EACTC,EAAUF,EAAOG,aACjBC,EAAWJ,EAAOK,cAClBC,EAAcjvI,EAAMgvI,cACpBj+I,EAAM49I,EAAO,GAAG//I,cAChBsgJ,EAAUn+I,EAAI2Z,gBACdykI,EAAKD,EAAQ3pI,YACb6pI,EAAKF,EAAQroI,aACbwoI,EAAM5nK,EAAEspB,GAAK4Z,aACb2kI,EAAM7nK,EAAEspB,GAAKga,YACb+M,EAAYq3H,EAAKE,EACjBx3H,EAAau3H,EAAKE,EAClBz1I,EAASmG,EAAMnG,SAcnB,OAZAA,EAAO2N,KAAOynI,EAEdp1I,EAAOzL,MAAQxjB,KAAKiE,IAClBgrB,EAAOzL,KACPyL,EAAOzL,KAAOygJ,EAAU/2H,GAAaA,EAAY+2H,EAAUjkK,KAAK0kB,IAAIuK,EAAOzL,KAAOygJ,EAAU/2H,GAAa,GAG3Gje,EAAO2N,KAAO58B,KAAKiE,IACjBgrB,EAAO2N,IACP3N,EAAO2N,IAAMunI,EAAWl3H,GAAcA,EAAak3H,EAAWnkK,KAAK0kB,IAAIy/I,EAAWE,EAAcL,GAAUA,GAGrG/0I,CACT,CAhHyBs1F,CAAUhwE,EAAWmtH,MAI1CyB,KAEIxlK,EAAKiuJ,aACPwW,KAGF7B,EAAa3oK,QAAQ,mBACvB,CAgCA,SAASuqF,KACPsF,KACAtiB,GAAW,EACXo7F,EAAajlK,KAAK,YAAY,GAC9BomK,GAActoJ,SAAS,cACzB,EA9pBA,WAeE,GAdI4zI,GACFz4G,EAAU7sC,KAAK,gBAAgBpM,KAAK,eAAgB,MAGtDymK,KAEIP,IACFjB,EAAa7pK,MAAM+qK,IAAUh6E,OAG1B6rD,IACH6tB,GAAY15E,OAGV8jE,EACFgV,EAAa7pK,MAAM69C,GAAWkzC,WACzB,CACL,IAAI/B,EAA6B,WAAlB/nF,EAAK+nF,SAAwB66E,EAAaluJ,SAAWxV,EAAEc,EAAK+nF,UACnD,IAApBA,EAASjxF,SACXixF,EAAW7oF,EAAE,SAGf6oF,EAASoB,OAAOvyC,E,CA0KlB,SAASowH,EAAoB3lK,GAa3B,OAZIA,EAAEwN,MAAQxN,EAAEwN,KAAKxT,QACnBO,GAAIsD,EAAEmC,EAAEqb,QAAQwqF,QAAQ,gBAAgBr4F,KAAK,UAC7CsnD,OAEAv6D,GAAIsD,EAAEmC,EAAEqb,QAAQwqF,QAAQ,gBAAgBr4F,KAAK,UAC7CsnD,KACIn2D,EAAKmuJ,yBACP2W,IAAoB,GACpBh7E,QAIG,CACT,CArLAu6E,KAEAN,GAAc7hK,KAAK,sCAAsC,SAAUb,GAC5DmmE,GACH/O,KAGFp3D,EAAEmjB,kBAEGtlB,EAAEmC,EAAEqb,QAAQ8iF,GAAG,UAClBn+F,EAAEqiB,gBAEN,KAEIk/I,EAAapjE,GAAG,eAAkC,IAAlBx/F,EAAKwnE,WACvCgd,KAIF5tC,EAAUwrC,MAAM59D,GAGhB4+I,GAAUnyI,OAAO4zI,IACjBzB,GAAUlhK,KAAK,SAAS,WACtBwb,WAAWmnJ,GAAkB,EAC/B,IACAzB,GAAU7V,SAAQ,SAAUlsJ,GACT,IAAbA,EAAEgrD,SACJw4G,IAEJ,IAEAtB,GAAarsJ,KAAKlX,EAAKwuJ,YACvB+U,GAAarhK,KAAK,kBAAkB,SAAUb,GAC5CA,EAAEmjB,kBACFnjB,EAAEqiB,iBACF2hJ,KACAv7E,IACF,IAEA05E,GAAY7lK,KAAK,QAASqC,EAAK4uJ,WAC/B4U,GAAYthK,KAAK,kBAAkB,SAAUb,GAC3CA,EAAEmjB,kBACFnjB,EAAEqiB,iBACFjoB,IAAU,EACV06D,KAEIy3F,GAEFkX,IAAoB,EAExB,IAEArB,GAAavsJ,KAAKlX,EAAKyuJ,YACvBgV,GAAavhK,KAAK,kBAAkB,SAAUb,GAC5CA,EAAEmjB,kBACFnjB,EAAEqiB,iBAEE2rI,GAAM+T,GAAU5jE,GAAG,WACrB4jE,GAAUnpK,QAAQ,UA2XdmpK,GAAUpjE,SAAS,yBAvXvB8kE,IAAoB,GACpBh7E,KAEJ,IAEA45E,GAAaxsJ,KAAKlX,EAAKkuJ,gBAAkBluJ,EAAK0uJ,sBAAwB1uJ,EAAK2uJ,uBAC3E+U,GAAaxhK,KAAK,kBAAkB,SAAUb,GAC5CA,EAAEmjB,kBACFnjB,EAAEqiB,iBAEF1jB,EAAKkuJ,iBAAmBluJ,EAAKkuJ,gBAOxBluJ,EAAKkuJ,iBAAoBN,GAC5Bh3G,EAAUngB,IAAI,OAAQ,MAAQosI,EAAgB0D,YAAW,GAAQ,IAEnEnC,IACF,IAEArsH,EACEmrH,IACA,SAAU14C,EAAOC,EAAOppH,GACtBkhK,EAAe/3C,EAAQy3C,EACvBxmK,IAAU,EACN4F,EAAEqrD,WACJ61G,EAAelgK,KAAKikC,MAAqB,GAAfi8H,GAAqB,IAGjDpsG,IACF,GACAnB,GACAqxD,IAGFtuE,EACEgrH,IACA,SAAUv4C,EAAOC,GACf23C,EAAa1jF,WAAW+rC,EAAQu3C,GAChCvmK,IAAU,EACLuE,EAAKivJ,YACRsT,EAAe,GAEjBpsG,IACF,GACAnB,GACAqxD,IAGFtuE,EACEuhC,GACA,SAAUkxC,EAAOC,EAAOppH,GAEtB,GAAKA,EAAEqrD,UAEA,IAAKi2G,EAAwB,CAClC,IAAIsE,EAAW5E,EAAoBR,EAC/BqF,EAAWpF,EAAaQ,EAAeR,EACvCqF,EAAe9kK,KAAK0kB,IAAIyjG,EAAQy8C,GAAY5kK,KAAK0kB,IAAI0jG,EAAQy8C,GAEjEvE,EAAyBwE,EAAe,IAAM,G,OAN9CxE,EAAyB,KAS3B,IACI78G,GAAY68G,GAAqD,MAA3BA,IADrBA,GAAqD,MAA3BA,KAI7CN,EAAoB3jF,WAAW8rC,EAAQq3C,IAErC/7G,IACFw8G,EAAe5jF,YAAYojF,EAAar3C,GAASq3C,IAGnDrmK,IAAU,EACLuE,EAAKivJ,YACRsT,EAAe,GAGjBpsG,IACF,GACAnB,GACAqxD,IAGI49C,IACJroK,GAAIqoK,IAIJmB,KACAjB,GAAyBnkK,EAAK8uJ,iBAAmBiC,EAAUkT,IAAc5Q,YAEzEkR,GAA2BN,KAE3BmB,KAGExX,GACF/jE,KAmBF,IAAIu9E,EAAe/X,EAAK,qBAAuB,qCAC/CgU,GAAiB54J,SAAS,eAAgB28J,EAAcJ,GACxD1D,GAAsB74J,SAAS,4BAA6B28J,EAAc,CAAE/rK,QAAQ,GAAQ2rK,EAC9F,CAidAtpK,GAEA,IAAIoyJ,GAAQ,CACVjmE,KAAMA,GACNC,KAAMA,GACNrxB,OAAQA,GACRgpG,OAAQA,GACRrtG,OAzCF,SAAgBizG,EAAYC,GAC1B,OAAID,IAAe7rK,EACV0D,EAAEpC,OAAO,CAAC,EAAGkD,GAElBsnK,IAAgB9rK,EACXwE,EAAKqnK,IAGdrnK,EAAKqnK,GAAcC,EAEA,oBAAfD,IACFlD,GAAyBnkK,EAAK8uJ,sBAEhCsV,KACF,EA4BEhrF,OA1BF,WACE5R,GAAW,EACXo7F,EAAajlK,KAAK,YAAY,GAC9BomK,GAAcvhF,YAAY,cAC5B,EAuBEgC,QAASA,GACTlzD,OAfF,SAAmBi2I,GACjBvnK,EAAKsxB,OAASi2I,EACd9F,IACF,EAaE7lK,IAAK,SAAUs5E,GACbt5E,GAAIs5E,GACJ4vF,IACF,EACAhrK,IAAKA,GACL0L,QA1DF,WACEo9J,EAAa/4E,OACbk6E,GAAc/gK,OAAO,sCACrB4zC,EAAUr7C,SACVuoK,GAASvoK,SACT6zJ,EAAUU,GAAMrvJ,IAAM,IACxB,EAqDEm2C,UAAWA,GAKb,OAFAk5G,GAAMrvJ,GAAK2uJ,EAAUt0J,KAAKg1J,IAAS,EAE5BA,EACT,CAuCA,SAASj+C,IAAQ,CAKjB,SAASrtF,EAAgBnjB,GACvBA,EAAEmjB,iBACJ,CAMA,SAAStiB,EAAKwlE,EAAMvwE,GAClB,IAAIV,EAAQF,MAAMC,UAAUC,MACxBI,EAAOJ,EAAMM,KAAKO,UAAW,GACjC,OAAO,WACL,OAAOowE,EAAKhxE,MAAMS,EAAKN,EAAKqE,OAAOzE,EAAMM,KAAKO,YAChD,CACF,CAMA,SAASygD,EAAU5tC,EAASq9J,EAAQC,EAASC,GAC3CF,EAASA,GAAU,WAAa,EAChCC,EAAUA,GAAW,WAAa,EAClCC,EAASA,GAAU,WAAa,EAChC,IAAIl/I,EAAM3d,SACNs8G,GAAW,EACX71F,EAAS,CAAC,EACVq2I,EAAY,EACZC,EAAW,EACXC,EAAW,iBAAkB3xK,OAE7B4xK,EAAmB,CAAC,EAMxB,SAASpxG,EAAQr1D,GACXA,EAAEmjB,iBACJnjB,EAAEmjB,kBAEAnjB,EAAEqiB,gBACJriB,EAAEqiB,iBAEJriB,EAAEijB,aAAc,CAClB,CAEA,SAAS6xC,EAAK90D,GACZ,GAAI8lH,EAAU,CAEZ,GAAIkoC,GAAM7mI,EAAIlW,aAAe,IAAMjR,EAAEyjB,OACnC,OAAOhR,IAGT,IAAIi0J,EAAK1mK,GAAKA,EAAEw1D,SAAWx1D,EAAEw1D,QAAQ,GACjCkD,EAASguG,GAAMA,EAAGhuG,OAAU14D,EAAE04D,MAC9BC,EAAS+tG,GAAMA,EAAG/tG,OAAU34D,EAAE24D,MAE9BwwD,EAAQnoH,KAAKC,IAAI,EAAGD,KAAKiE,IAAIyzD,EAAQzoC,EAAOzL,KAAM+hJ,IAClDn9C,EAAQpoH,KAAKC,IAAI,EAAGD,KAAKiE,IAAI0zD,EAAQ1oC,EAAO2N,IAAK0oI,IAEjDE,GAEFnxG,EAAQr1D,GAGVmmK,EAAO9wK,MAAMyT,EAAS,CAACqgH,EAAOC,EAAOppH,G,CAEzC,CAsBA,SAASyS,IACHqzG,IACFjoH,EAAEspB,GAAKxlB,OAAO8kK,GACd5oK,EAAEspB,EAAIvV,MAAMuvE,YAAY,eAIxB9kE,YAAW,WACTgqJ,EAAOhxK,MAAMyT,EAAS7S,UACxB,GAAG,IAEL6vH,GAAW,CACb,CAtEA2gD,EAAiB,eAAiBpxG,EAClCoxG,EAAiB,aAAepxG,EAChCoxG,EAAiB,uBAAyB3xG,EAC1C2xG,EAAiB,oBAAsBh0J,EAqEvC5U,EAAEiL,GAASjI,KAAK,wBAlChB,SAAeb,GACb,IAAI2mK,EAAa3mK,EAAEnJ,MAAmB,GAAXmJ,EAAEnJ,MAAyB,GAAZmJ,EAAEyjB,OAEvCkjJ,GAAe7gD,IACwB,IAAtCsgD,EAAQ/wK,MAAMyT,EAAS7S,aACzB6vH,GAAW,EACXwgD,EAAYzoK,EAAEiL,GAAS8e,SACvB2+I,EAAW1oK,EAAEiL,GAASmyB,QACtBhL,EAASpyB,EAAEiL,GAASmnB,SAEpBpyB,EAAEspB,GAAKtmB,KAAK4lK,GACZ5oK,EAAEspB,EAAIvV,MAAMwI,SAAS,eAErB06C,EAAK90D,GAELq1D,EAAQr1D,GAGd,GAiBF,CAgBA,SAAS2uJ,IACP,OAAO9wJ,EAAEvI,GAAGi5J,SAASI,uBACvB,CAydA,SAAS6D,EAAS93I,EAAG/c,EAAG2c,GACtBI,EAAIg2I,EAAQh2I,EAAG,KACf/c,EAAI+yJ,EAAQ/yJ,EAAG,KACf2c,EAAIo2I,EAAQp2I,EAAG,KAEf,IAEI0N,EACF9qB,EAHE+D,EAAMuuJ,EAAQ90I,EAAG/c,EAAG2c,GACtBrV,EAAMsqJ,EAAQ70I,EAAG/c,EAAG2c,GAGpBvjB,GAAKkK,EAAMgE,GAAO,EAEpB,GAAIhE,GAAOgE,EACT+iB,EAAI9qB,EAAI,MACH,CACL,IAAIm2B,EAAIpyB,EAAMgE,EAEd,OADA/H,EAAInG,EAAI,GAAMs8B,GAAK,EAAIpyB,EAAMgE,GAAOouB,GAAKpyB,EAAMgE,GACvChE,GACN,KAAKyZ,EACHsN,GAAKrqB,EAAI2c,GAAK+Y,GAAK11B,EAAI2c,EAAI,EAAI,GAC/B,MACF,KAAK3c,EACHqqB,GAAK1N,EAAII,GAAK2Y,EAAI,EAClB,MACF,KAAK/Y,EACH0N,GAAKtN,EAAI/c,GAAK01B,EAAI,EAItBrL,GAAK,C,CAGP,MAAO,CAAEA,EAAGA,EAAG9qB,EAAGA,EAAGnG,EAAGA,EAC1B,CAuCA,SAASs7J,EAAS33I,EAAG/c,EAAG2c,GACtBI,EAAIg2I,EAAQh2I,EAAG,KACf/c,EAAI+yJ,EAAQ/yJ,EAAG,KACf2c,EAAIo2I,EAAQp2I,EAAG,KAEf,IAEI0N,EACF9qB,EAHE+D,EAAMuuJ,EAAQ90I,EAAG/c,EAAG2c,GACtBrV,EAAMsqJ,EAAQ70I,EAAG/c,EAAG2c,GAGpBimC,EAAIt/C,EAEFoyB,EAAIpyB,EAAMgE,EAGd,GAFA/H,EAAY,IAAR+D,EAAY,EAAIoyB,EAAIpyB,EAEpBA,GAAOgE,EACT+iB,EAAI,MACC,CACL,OAAQ/mB,GACN,KAAKyZ,EACHsN,GAAKrqB,EAAI2c,GAAK+Y,GAAK11B,EAAI2c,EAAI,EAAI,GAC/B,MACF,KAAK3c,EACHqqB,GAAK1N,EAAII,GAAK2Y,EAAI,EAClB,MACF,KAAK/Y,EACH0N,GAAKtN,EAAI/c,GAAK01B,EAAI,EAGtBrL,GAAK,C,CAEP,MAAO,CAAEA,EAAGA,EAAG9qB,EAAGA,EAAGqjD,EAAGA,EAC1B,CA4BA,SAASqyG,EAASl4I,EAAG/c,EAAG2c,EAAGq4I,GACzB,IAAIiU,EAAM,CAACC,EAAKvX,EAAU50I,GAAGgC,SAAS,KAAMmqJ,EAAKvX,EAAU3xJ,GAAG+e,SAAS,KAAMmqJ,EAAKvX,EAAUh1I,GAAGoC,SAAS,MAGxG,OACEi2I,GACAiU,EAAI,GAAGl2J,OAAO,IAAMk2J,EAAI,GAAGl2J,OAAO,IAClCk2J,EAAI,GAAGl2J,OAAO,IAAMk2J,EAAI,GAAGl2J,OAAO,IAClCk2J,EAAI,GAAGl2J,OAAO,IAAMk2J,EAAI,GAAGl2J,OAAO,GAE3Bk2J,EAAI,GAAGl2J,OAAO,GAAKk2J,EAAI,GAAGl2J,OAAO,GAAKk2J,EAAI,GAAGl2J,OAAO,GAGtDk2J,EAAIriH,KAAK,GAClB,CAKA,SAASwuG,EAAUr4I,EAAG/c,EAAG2c,EAAG5lB,GAC1B,IAyf2B2+B,EAlf3B,MAPU,CACRwzI,GAwfyBxzI,EAxfA3+B,EAyfpBsM,KAAKikC,MAAsB,IAAhBo4C,WAAWhqD,IAAU3W,SAAS,MAxf9CmqJ,EAAKvX,EAAU50I,GAAGgC,SAAS,KAC3BmqJ,EAAKvX,EAAU3xJ,GAAG+e,SAAS,KAC3BmqJ,EAAKvX,EAAUh1I,GAAGoC,SAAS,MAGlB6nC,KAAK,GAClB,CAuBA,SAAS0vG,EAAW5lB,EAAOvxE,GACzBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIkzF,EAAMN,EAAUrhB,GAAOkkB,QAG3B,OAFAvC,EAAI9yJ,GAAK4/D,EAAS,IAClBkzF,EAAI9yJ,EAAI4pK,EAAQ9W,EAAI9yJ,GACbwyJ,EAAUM,EACnB,CAEA,SAASkE,EAAS7lB,EAAOvxE,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIkzF,EAAMN,EAAUrhB,GAAOkkB,QAG3B,OAFAvC,EAAI9yJ,GAAK4/D,EAAS,IAClBkzF,EAAI9yJ,EAAI4pK,EAAQ9W,EAAI9yJ,GACbwyJ,EAAUM,EACnB,CAEA,SAASmE,EAAU9lB,GACjB,OAAOqhB,EAAUrhB,GAAO4lB,WAAW,IACrC,CAEA,SAASH,EAAQzlB,EAAOvxE,GACtBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIkzF,EAAMN,EAAUrhB,GAAOkkB,QAG3B,OAFAvC,EAAIj5J,GAAK+lE,EAAS,IAClBkzF,EAAIj5J,EAAI+vK,EAAQ9W,EAAIj5J,GACb24J,EAAUM,EACnB,CAEA,SAAS+D,EAAS1lB,EAAOvxE,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI6yF,EAAMD,EAAUrhB,GAAO6jB,QAI3B,OAHAvC,EAAIj1I,EAAI80I,EAAQ,EAAGD,EAAQ,IAAKI,EAAIj1I,EAAI40I,EAAU,MAAQxyF,EAAS,QACnE6yF,EAAIhyJ,EAAI6xJ,EAAQ,EAAGD,EAAQ,IAAKI,EAAIhyJ,EAAI2xJ,EAAU,MAAQxyF,EAAS,QACnE6yF,EAAIr1I,EAAIk1I,EAAQ,EAAGD,EAAQ,IAAKI,EAAIr1I,EAAIg1I,EAAU,MAAQxyF,EAAS,QAC5D4yF,EAAUC,EACnB,CAEA,SAASqE,EAAO3lB,EAAOvxE,GACrBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIkzF,EAAMN,EAAUrhB,GAAOkkB,QAG3B,OAFAvC,EAAIj5J,GAAK+lE,EAAS,IAClBkzF,EAAIj5J,EAAI+vK,EAAQ9W,EAAIj5J,GACb24J,EAAUM,EACnB,CAIA,SAASoE,EAAK/lB,EAAOvxE,GACnB,IAAIkzF,EAAMN,EAAUrhB,GAAOkkB,QACvBwU,GAAOzX,EAAUU,EAAIhoI,GAAK80C,GAAU,IAExC,OADAkzF,EAAIhoI,EAAI++I,EAAM,EAAI,IAAMA,EAAMA,EACvBrX,EAAUM,EACnB,CAOA,SAASuE,EAAWlmB,GAClB,IAAI2hB,EAAMN,EAAUrhB,GAAOkkB,QAE3B,OADAvC,EAAIhoI,GAAKgoI,EAAIhoI,EAAI,KAAO,IACjB0nI,EAAUM,EACnB,CAEA,SAAS0E,EAAMrmB,GACb,IAAI2hB,EAAMN,EAAUrhB,GAAOkkB,QACvBvqI,EAAIgoI,EAAIhoI,EACZ,MAAO,CACL0nI,EAAUrhB,GACVqhB,EAAU,CAAE1nI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG8yJ,EAAI9yJ,EAAGnG,EAAGi5J,EAAIj5J,IACjD24J,EAAU,CAAE1nI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG8yJ,EAAI9yJ,EAAGnG,EAAGi5J,EAAIj5J,IAErD,CAEA,SAAS49J,EAAOtmB,GACd,IAAI2hB,EAAMN,EAAUrhB,GAAOkkB,QACvBvqI,EAAIgoI,EAAIhoI,EACZ,MAAO,CACL0nI,EAAUrhB,GACVqhB,EAAU,CAAE1nI,GAAIA,EAAI,IAAM,IAAK9qB,EAAG8yJ,EAAI9yJ,EAAGnG,EAAGi5J,EAAIj5J,IAChD24J,EAAU,CAAE1nI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG8yJ,EAAI9yJ,EAAGnG,EAAGi5J,EAAIj5J,IACjD24J,EAAU,CAAE1nI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG8yJ,EAAI9yJ,EAAGnG,EAAGi5J,EAAIj5J,IAErD,CAEA,SAAS09J,EAAgBpmB,GACvB,IAAI2hB,EAAMN,EAAUrhB,GAAOkkB,QACvBvqI,EAAIgoI,EAAIhoI,EACZ,MAAO,CACL0nI,EAAUrhB,GACVqhB,EAAU,CAAE1nI,GAAIA,EAAI,IAAM,IAAK9qB,EAAG8yJ,EAAI9yJ,EAAGnG,EAAGi5J,EAAIj5J,IAChD24J,EAAU,CAAE1nI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG8yJ,EAAI9yJ,EAAGnG,EAAGi5J,EAAIj5J,IAErD,CAEA,SAASu9J,EAAUjmB,EAAO/9B,EAAS02D,GACjC12D,EAAUA,GAAW,EACrB02D,EAASA,GAAU,GAEnB,IAAIhX,EAAMN,EAAUrhB,GAAOkkB,QACvBlzI,EAAO,IAAM2nJ,EACbv/F,EAAM,CAACioF,EAAUrhB,IAErB,IAAK2hB,EAAIhoI,GAAKgoI,EAAIhoI,GAAM3I,EAAOixF,GAAY,GAAK,KAAO,MAAOA,GAC5D0/C,EAAIhoI,GAAKgoI,EAAIhoI,EAAI3I,GAAQ,IACzBooD,EAAIhuE,KAAKi2J,EAAUM,IAErB,OAAOvoF,CACT,CAEA,SAAS+sF,EAAcnmB,EAAO/9B,GAC5BA,EAAUA,GAAW,EAQrB,IAPA,IAAI4/C,EAAMR,EAAUrhB,GAAO+jB,QACvBpqI,EAAIkoI,EAAIloI,EACV9qB,EAAIgzJ,EAAIhzJ,EACRqjD,EAAI2vG,EAAI3vG,EACNknB,EAAM,GACNw/F,EAAe,EAAI32D,EAEhBA,KACL7oC,EAAIhuE,KAAKi2J,EAAU,CAAE1nI,EAAGA,EAAG9qB,EAAGA,EAAGqjD,EAAGA,KACpCA,GAAKA,EAAI0mH,GAAgB,EAG3B,OAAOx/F,CACT,CAuRA,SAASspF,EAAWr8J,GAOlB,OANAA,EAAI2oF,WAAW3oF,IAEXgoC,MAAMhoC,IAAMA,EAAI,GAAKA,EAAI,KAC3BA,EAAI,GAGCA,CACT,CAGA,SAASg8J,EAAQ90I,EAAG3a,IAkCpB,SAAwB2a,GACtB,MAAmB,iBAALA,IAAoC,GAAnBA,EAAEjiB,QAAQ,MAAgC,IAAlB0jF,WAAWzhE,EACpE,EAnCMsrJ,CAAetrJ,KACjBA,EAAI,QAGN,IAAIurJ,EAkCN,SAAsBvrJ,GACpB,MAAoB,iBAANA,IAAqC,GAAnBA,EAAEjiB,QAAQ,IAC5C,CApCuBytK,CAAaxrJ,GASlC,OARAA,EAAI2zI,EAAQtuJ,EAAKuuJ,EAAQ,EAAGnyE,WAAWzhE,KAGnCurJ,IACFvrJ,EAAI4gB,SAAS5gB,EAAI3a,EAAK,IAAM,KAI1BouJ,EAAK3pI,IAAI9J,EAAI3a,GAAO,KACf,EAID2a,EAAI3a,EAAOo8E,WAAWp8E,EAChC,CAGA,SAAS6lK,EAAQ/rK,GACf,OAAOw0J,EAAQ,EAAGC,EAAQ,EAAGz0J,GAC/B,CAGA,SAASu1J,EAAgBv1J,GACvB,OAAOyhC,SAASzhC,EAAK,GACvB,CAcA,SAAS8rK,EAAKhzF,GACZ,OAAmB,GAAZA,EAAEp+E,OAAc,IAAMo+E,EAAI,GAAKA,CACxC,CAGA,SAAS88E,GAAoB/0I,GAK3B,OAJIA,GAAK,IACPA,EAAQ,IAAJA,EAAU,KAGTA,CACT,CAOA,SAASy0I,GAAoBroI,GAC3B,OAAOsoI,EAAgBtoI,GAAK,GAC9B,CAiHF,CDr1EKq/I,CAAY,cAEjB,IAAMC,GAAW,SAACj5B,GAChB,IAAM5vI,EAA6B,SAAtB4vI,EAAM2jB,aAA0B3jB,EAAM+kB,SAC7ClhC,EAAyB,GAApBmc,EAAM4jB,WAAkB5jB,EAAMwkB,cAAgBxkB,EAAM4kB,cAC/D,OAAOx0J,GAAQyzH,EAAG3tH,QAAQ,KAAM,GAClC,E,SAEA,yB,8CAiLA,QAjLwC,QAMtC,YAAAitG,SAAA,WACE,IAAMn5B,EAAOvjF,KAAKujF,KAClB,MAAO,+BACSvjF,KAAKq1J,cAAa,yCAClB9xE,EAAI,iDACFA,EAAI,mEACFA,EAAI,0DAI1B,EAEA,YAAA+xE,WAAA,WACE,IAAM/xE,EAAOvjF,KAAKujF,KAClB,MAAO,UAAGA,EAAI,iBAASA,EAAI,cAC7B,EAEA,YAAA8xE,YAAA,WACE,MAAO,UAAGr1J,KAAKujF,KAAI,eACrB,EAEA,YAAAn+E,OAAA,WAGE,OAFA,YAAMA,OAAM,WACZpF,KAAKyyK,QAAQhZ,SAAS,WACfz5J,IACT,EAEA,YAAAyxI,aAAA,SAAavmI,GACXA,EAAEmjB,kBACM,IAAA3mB,EAAUwD,EAAEqb,OAAM,OACtB,IAAAqjE,aAAYliF,IAChB1H,KAAKw1J,gBAAgB9tJ,EACvB,EAEA,YAAA8tJ,gBAAA,SAAgBvvJ,GACR,IAAEd,EAAgBnF,KAAX,MACL8zJ,EADgB9zJ,KAAL,KACM,SACrB0H,EAAQzB,EACNwsK,EAAUzyK,KAAK0yK,aAGrB,GAAID,EAAS,CACXA,EAAQhZ,SAAS,MAAO/xJ,GACxB,IAAMirK,EAAKF,EAAQhZ,SAAS,OACtBlgB,EAAQ7xI,GAAS8qK,GAASG,GAChCp5B,IAAU7xI,EAAQ6xI,E,CAGpBua,EAAWA,EAASpsJ,GAASvC,EAAMM,IAAI,CAAEiC,MAAK,GAAI,CAAE+tJ,UAAW,GACjE,EAOA,YAAA9lG,SAAA,SAAS1pD,EAAa4D,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAA1E,EAAUnF,KAAI,MAChBgkF,GAAO,IAAA4F,aAAY//E,EAAKm6E,KAAkB7+E,EAAMxB,IAAI,YAArBkG,EAAKm6E,IACpCt8E,GAAS,IAAAkiF,aAAY3jF,IAAc,IAAA2jF,aAAY5F,GAAa,GAANA,EAA1B/9E,EAC5BkgJ,EAAUnmJ,KAAKkmJ,aACfusB,EAAUzyK,KAAK0yK,aACfE,EAAoB,QAATlrK,EAAkBA,EAAQ,GAC3Cy+I,EAAQz+I,MAAQA,EAChB+qK,EAAQ9uK,IAAI,GAAGgZ,MAAMy8I,gBAAkBwZ,GAGnC/oK,EAAKw7H,YAAex7H,EAAK4rJ,YAAc5rJ,EAAKg/E,cAC9C4pF,EAAQhZ,SAAS,MAAOmZ,GACxB5yK,KAAK6yK,UAAqB,QAATnrK,EACjB1H,KAAK8yK,WAAaF,EAEtB,EAMA,YAAAF,WAAA,sBACE,IAAK1yK,KAAKyyK,QAAS,CACX,MAAsBzyK,KAApBkjF,EAAE,KAAE,EAAK,QAAEr5E,EAAI,OACjB05E,EAAOvjF,KAAKujF,KACV,EAAa15E,EAAI,SAErB4oK,GAAU,gBAAE,uBAAezyK,KAAKujF,KAAI,gCACpCwvF,EAAUN,EAAQ9uK,IAAI,GAAIgZ,MAC1Bq2J,EAAa9vF,GAAMA,EAAGjrE,OAASirE,EAAGjrE,OAAO7D,GAAK,GAC9C6+J,EAAqB/vF,GAAMA,EAAG0D,WAAa1D,EAAG0D,YAAYssF,aAAgB,CAAC,EAE/ElzK,KAAK8yK,WAAa,GAClB,IACI,EADA,GAAU,EAEd9yK,KAAK2T,IAAIC,KAAK,mBAAmBo/E,OAAOy/E,GAExC,IAAM,EAAe,SAAC/qK,EAAe+uI,QAAA,IAAAA,IAAAA,GAAA,GAC/B,EACF,EAAS/uI,GAAQ+uI,IAEjBA,GAAY,EAAM/Q,kBAAkB,GAAG,GACvC,EAAMA,kBAAkBh+H,EAAO+uI,GAEnC,EAGAg8B,EAAQhZ,SAAS,UACflgB,MAAO,EAAM/pF,aAAc,EAC3BopG,mBAAoB,UAAGr1E,EAAI,kBAAUA,EAAI,aACzCqO,SAAUohF,GAAc,OACxB5a,iBAAkB,EAClBN,aAAa,EACbgB,WAAW,EACXR,WAAY,KACZD,WAAY,IACZU,QAAS,IAGNka,GACC,EAAMtvK,IAAI,gBAAkB,CAAC,GAAE,CAEnCq8D,KAAM,SAACu5E,GACL,IAAMnc,EAAKo1C,GAASj5B,GACpB,EAAKu5B,WAAa11C,EAClB21C,EAAQ3Z,gBAAkBh8B,EAC1B,EAAaA,GAAI,EACnB,EACAtiG,OAAQ,SAACy+G,GACP,GAAU,EACV,IAAMnc,EAAKo1C,GAASj5B,GACpBw5B,EAAQ3Z,gBAAkBh8B,EAC1B,EAAaA,GACb,EAAKy1C,WAAY,CACnB,EACAn/E,KAAM,SAAC6lD,GACL,GAAU,EACV,EAAKu5B,WAAa,GAClB,EAAgB,EAAW,EAAMtjH,SAAS,CAAE2jH,WAAW,IAAUX,GAASj5B,EAC5E,EACA5lD,KAAM,WACC,IAAY,IAAiB,IAC5B,EAAKk/E,YACP,EAAgB,IAElBE,EAAQ3Z,gBAAkB,EAE1BqZ,EAAQhZ,SAAS,MAAO,GACxB,EAAa,GAAe,GAEhC,KAGEv2E,GAAMA,EAAGz7E,IACXzH,KAAKwK,SAAS04E,EAAI,sBAAsB,WACtC,EAAK4vF,YAAc,EAAa,EAAKA,YACrC,GAAU,EACV,EAAKA,WAAa,GAElBL,EAAQhZ,SAAS,OACnB,IAGFz5J,KAAKyyK,QAAUA,C,CAEjB,OAAOzyK,KAAKyyK,OACd,EAEA,YAAA5+J,OAAA,WAIE,OAHA,yBAA4B7T,MAE5BA,KAAK0yK,aACE1yK,IACT,EACF,EAjLA,CAAwC,I,ogBEVxC,yB,8CA2BA,QA3B4C,QAC1C,YAAAwzJ,cAAA,WACE,MAAO,EACT,EAOA,YAAAtN,WAAA,WACE,IAAKlmJ,KAAKshC,MAAO,CACf,IAAMn8B,EAAQnF,KAAKmF,MACbuC,EAAQ1H,KAAKq0J,gBAOb/yH,EANa,IAAI,GAAW,CAChCn8B,MAAK,EACLohB,OAAQvmB,KAAKiY,OAAOirE,GACpB0yE,UAAW51J,KAAKujF,KAAO,cACvBA,KAAMvjF,KAAKujF,OAEY1vE,SACzBytB,EAAMquB,SAASjoD,EAAO,CAAE29H,WAAY,IACpCrlI,KAAKshC,MAAQA,EAAMltB,E,CAGrB,OAAOpU,KAAKshC,KACd,EACF,EA3BA,CAA4C,I,2fCA5C,4B,8CAsCA,QAtC6C,QAC3C,YAAAkyH,cAAA,WACE,MAAO,EACT,EAEA,YAAAM,SAAA,WACE9zJ,KAAK22F,aACP,EAEA,YAAAA,YAAA,WACQ,IAAExxF,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACXw2F,EAAUrxF,EAAMxB,IAAI,WAEtB6yF,KACE,IAAAtlF,UAASslF,GACXtT,EAAGiC,SAASjD,IAAIsU,GAEhBA,EAAQtT,EAAG2T,OAAQ1xF,GAGzB,EAEA,YAAA+uJ,YAAA,WACMl0J,KAAKmF,MAAMxB,IAAI,UACjB,+BAAsC3D,KAE1C,EAEA,YAAAkmJ,WAAA,WACQ,IAAE/gJ,EAAgBnF,KAAX,MAAEujF,EAASvjF,KAAL,KACb,EAA8BmF,EAAM2jB,QAAlCsqJ,EAAW,cAAEryJ,EAAI,OAAEga,EAAI,OACzB2xC,EAAQ0mG,GAAeryJ,EACvBnM,EAAY,UAAG2uE,EAAI,OAIzB,MAHmB,0CAAgC3uE,EAAS,gBAC1DmmB,EAAO,WAAInmB,EAAS,UAAW,GAAE,cAC9B83D,EAAK,YAEZ,EACF,EAtCA,CAA6C,I,YAyC7C2mG,GAAgBhzK,UAAU6yJ,aAAe,CAAC,gB,2fC7B7B,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChB,GAAW,UAAG,GAAK,UAE1BogB,GAA0D,CAC9DvyJ,KAAM,GACNwyJ,OAAQ,GACRr9J,OAAQ,GACRs9J,SAAU,GACVj6B,MAAO,GACP5qH,OAAQ,IAeV,eAuBE,WAAYu0D,GAAZ,MACE,YAAMA,EAAI,eAAgB,KAAS,KAnBrC,EAAA6xE,WAAa,GAEb,EAAArrJ,OAAS,CACPtI,IAAK,GACLyvF,OAAQ,IAgBR,IAAM1rF,EAAQ,IAAI,KAClB,EAAKA,MAAQA,EACb,EAAKumB,MAAQ4nJ,GAEb,IAAMG,GAAQ,IAAAnsF,WAAS,WAAM,SAAKosF,SAAL,GAAgB,GAC7CvuK,EAAMqF,SAAS04E,EAAI,oBAAqBuwF,GAExC,IAAM55H,GAAS,IAAAytC,WAAS,WAAM,SAAKqsF,QAAL,GAAe,GAG7C,OAFAxuK,EAAMqF,SAAS04E,EAAI,eAAgBrpC,GAE5B,CACT,CA8FF,OAlI0C,QAsCxC,YAAA65H,QAAA,WACE1zK,KAAKkW,OAAOlW,KAAKkjF,GAAG8F,cACtB,EAEA,YAAA2qF,OAAA,WACE3zK,KAAKkW,OAAOlW,KAAKgpF,cACnB,EAEA,YAAA9yE,OAAA,SAAOovE,GACL,IAAMghD,EAAShhD,EAAYA,EAAU8nD,YAAc,GACnDptI,KAAKmF,MAAMM,IAAI,CAAE6/E,UAAS,EAAEghD,OAAM,IAClCtmI,KAAKwxF,aACP,EAEA,YAAAxI,YAAA,WACE,OAAOhpF,KAAKmF,MAAMxB,IAAI,YACxB,EAKA,YAAAmuJ,WAAA,WACE,OAAO9xJ,KAAKmF,MAAMxB,IAAI,WAAa,EACrC,EAEA,YAAA6tF,YAAA,SAAY3nF,QAAA,IAAAA,IAAAA,EAAA,IACV7J,KAAKiqJ,MAAQjqJ,KAAKiqJ,OAASpgJ,EAAK42C,UAChCzgD,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ,CAAEpwC,UAAWzgD,KAAKiqJ,OACxD,EAEA,YAAAhW,WAAA,WACEj0I,KAAKolH,YACP,EAOA,YAAAwuD,gBAAA,WACE,OAAO5zK,KAAKsiC,IACd,EAOA,YAAA+5G,QAAA,SAAW1yI,EAAcm7H,GACvB,IAAM+uC,EAAW7zK,KAAKgoH,QAAQ,QAE9BhoH,KAAK0rB,MAAM/hB,GAAQkqK,EAASltK,OAAOm+H,EACrC,EAOA,YAAA9c,QAAA,SAAQr+G,GACN,OAAO3J,KAAK+wI,WAAWpnI,EACzB,EAMA,YAAAonI,SAAA,WACE,OAAO/wI,KAAK0rB,KACd,EAEA,YAAA7X,OAAA,WACM,IAAEyuB,EAAatiC,KAAT,KAAEkjF,EAAOljF,KAAL,GACRiY,EAASjY,KAAK4mF,YACdxyE,EAAKkuB,GAAQA,EAAKluB,GAWxB,OAVAkuB,EAAO,IAAI,GACT,CACEluB,GAAE,EACFnP,WAAY,GACZs9E,OAAQW,EACRjrE,OAAM,GAERjY,KAAK+wI,YAEP/wI,KAAKsiC,KAAOA,EACLA,EAAKluB,EACd,EAEA,YAAA/E,QAAA,WACErP,KAAKmF,MAAMmG,gBACXtL,KAAKmF,MAAMuD,OACb,EACF,EAlIA,CAA0C,G,YCwF1C,SAlBmC,CACjCw7E,YAAa,GACb0N,SAAU,GACV5gF,UAAU,EACV8iK,SAAS,EACTC,cAAc,EACdz0K,KAAM,GACN00K,aAAa,EACbC,WAAW,EACXC,aAAc,CAAE51G,SAAU,SAAUmb,MAAO,WAC3C06F,aAAc,CAAE71G,SAAU,OAAQmb,MAAO,WACzC26F,gBAAgB,EAChBvjF,QAAQ,EACRwjF,OAAQ,WAAO,EACfv9E,SAAU,WAAO,EACjBnwF,OAAQ,CAAC,G,2fCxHX,eAME,WAAY2mD,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAI,KACV,EAAKs2C,MAAQ,GACb,EAAKt2C,IAAMA,EACX,IAAMr1C,EAASq1C,EAAIr1C,QAAU,CAAC,EAC9B,EAAKA,OAASA,EACd,EAAKq8J,WAAahnH,EAAIgnH,WACtB,IAAMrwF,EAAMhsE,EAAOisE,aAAe,GAC5BX,EAAOtrE,EAAOksE,cAAgB,GAC9B6G,EAAO,EAAK/lF,WAClB,EAAKuF,SAASwgF,EAAM,MAAO,EAAK2Y,OAChC,EAAKn5F,SAASwgF,EAAM,uBAAwB,EAAKn3E,QACjD,EAAKrJ,SAASwgF,EAAM,SAAU,EAAK1mE,gBACnC,EAAK1P,UAAY,UAAGqvE,EAAG,UACvB,IAAMf,EAAKjrE,EAAOirE,GAElB,GAAIjrE,EAAOjH,WAAa,EAAKs8C,IAAIoiC,OAAQ,CACvC,IAAMkP,EAAQ1b,EAAGoT,MACjB,EAAKhpC,IAAIoiC,OAAS,IAAIkP,EAAMC,OAAO,CAEjCp+C,UAAWxoC,EAAOs8J,eAAiB,EAAKngK,GACxC4qF,aAAc,WAAI,EAAKpqF,WACvBqqF,QAAS,WAAIhb,EAAG,SAChBuwF,mBAAoB,EACpB7kF,UAAS,SAAC8kF,EAAc/kF,EAAah3E,GACnC,IAAM4kI,EAAW5tD,EAAOglF,iBACxBxxF,EAAGwb,YAAY4+C,EAAU,CAAEq3B,YAAa,IACxCzxF,EAAGp/E,QAAQ,UAAGyiI,GAAS,QAAQ7tH,EACjC,EACAk8J,iBAAkB,EAClBz1E,OAAQ,EACR5b,KAAI,EACJU,IAAG,G,QAKP,EAAKtwE,IAAI+E,KAAK,aAAcsyE,GAC5B19B,EAAI/uC,QAAU,EAAK5K,IAAI+E,KAAK,QAAS40C,EAAI/uC,Q,CAC3C,CAqFF,OAlIuC,QA+CrC,YAAA+F,eAAA,SAAehU,GAEb,IAAMgyB,EAAOhyB,EAAQukK,UAChBvyI,IACLA,EAAKl9B,gBAEEkL,EAAQukK,UACjB,EAQA,YAAAlxE,MAAA,SAAMx+F,GACJ,IAAItF,EAAIG,KAAKiF,WAAWJ,QAAQM,GAChCnF,KAAKmuH,gBAAgBhpH,EAAO,KAAMtF,EACpC,EAUA,YAAAsuH,gBAAA,SAAgBhpH,EAAkBipH,EAAqCttH,GAC/D,MAA8Bd,KAA5Bs0K,EAAU,aAAEhnH,EAAG,MAAEr1C,EAAM,SACvB68J,EAA4CxnH,EAAG,SAArCynH,EAAkCznH,EAAG,OAA7B7tD,EAA0B6tD,EAAG,OACjDrzC,EAAWm0G,GAAc,KACzB3nC,EAAO,IAAIquF,EAAS,CACxBA,SAAQ,EACRtqJ,MAJkD8iC,EAAG,MAKrDnoD,MAAK,EACLmvK,WAAU,EACVr8J,OAAM,EACNy3E,OARkDpiC,EAAG,OASrDynH,OAAM,EACNt1K,OAAM,IAEF8xF,EAAW9K,EAAK5yE,SAASO,GAE/B,GAAI6F,EACFA,EAASwK,YAAY8sE,QAErB,QAAqB,IAAVzwF,EAAuB,CAChC,IAAImO,EAAS,SAGTjP,KAAK2T,IAAI4e,WAAW5xB,QAAUG,IAChCA,IACAmO,EAAS,SAGPnO,EAAQ,EACVd,KAAK2T,IAAIq/E,OAAOzB,GAGhBvxF,KAAK2T,IAAI4e,WAAW+1E,GAAGxnG,GAAOmO,GAAQsiF,E,MAEnCvxF,KAAK2T,IAAIq/E,OAAOzB,GAGzB,OADAvxF,KAAK4jG,MAAMj/F,KAAK8hF,GACT8K,CACT,EAEA,YAAAnsF,OAAA,W,IAAO,sDAGL,OAFA,4BAA4BpF,KAAMU,GAClCV,KAAK4jG,MAAM9+F,KAAI,SAAAjF,GAAK,OAAAA,EAAEuF,QAAF,IACbpF,IACT,EAEA,YAAA6T,OAAA,sBACQ2gD,EAAO9/C,SAASisB,yBAChBvsB,EAAKpU,KAAKoU,GAKhB,OAJAA,EAAG4yE,UAAY,GACfhnF,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKgpH,gBAAgBhpH,EAAOqvD,EAA5B,IAC9BpgD,EAAGqQ,YAAY+vC,GACfpgD,EAAGQ,UAAY5U,KAAK4U,UACb5U,IACT,EACF,EAlIA,CAAuC,M,ugBCejC,GAAY,kBAElB,eA2FE,WAAYstD,GAAZ,MACE,YAAMA,IAAI,MACV,IAAAg1B,SAAQ,EAAM,YACd,EAAKh1B,IAAMA,EACX,EAAK7tD,OAAS6tD,EAAI7tD,OAClB,EAAKwY,OAASq1C,EAAIr1C,QAAU,CAAC,EAC7B,EAAKy3E,OAASpiC,EAAIoiC,QAAU,GAC5B,EAAK4kF,WAAahnH,EAAIgnH,WAChB,MAAuB,EAArBnvK,EAAK,QAAE8+E,EAAG,MAAEV,EAAI,OAClB/gF,EAAO2C,EAAMxB,IAAI,SAAW,U,OAClC,EAAKiR,UAAY,UAAGqvE,EAAG,iBAASA,EAAG,oBAAYzhF,EAAI,sBAAc+gF,EAAI,aACrE,EAAKyxF,aAAe,UAAGzxF,EAAI,cAC3B,EAAK0xF,UAAY,UAAGhxF,EAAG,iBACvB,EAAKixF,SAAW,UAAGjxF,EAAG,eACtB,EAAKkxF,SAAW,UAAGlxF,EAAG,eACtB,EAAKmxF,SAAW,UAAGnxF,EAAG,eACtB,EAAKoxF,QAAU,UAAGpxF,EAAG,cACrB,EAAKqxF,YAAc,UAAGrxF,EAAG,kBACzB,EAAKsxF,WAAa,UAAGtxF,EAAG,iBACxB,EAAKuxF,QAAU,UAAG,EAAKR,aAAY,UACnC,EAAKS,UAAY,UAAG,EAAKT,aAAY,aACrC,EAAKU,gB,CACP,CAkTF,OAnasC,QACpC,YAAAhsK,OAAA,WACE,MAAO,CACL,+BAAgC,YAChC,gCAAiC,YACjC,8BAA+B,mBAC/B,2BAA4B,gBAC5B,6BAA8B,eAC9B,iCAAkC,cAClC,gCAAiC,iBACjC,uBAAwB,aACxB,sBAAuB,gBACvB,uBAAwB,gBAE5B,EAEA,YAAAgzG,SAAA,SAASv3G,GACD,MAAoDnF,KAAlDikF,EAAG,MAAEV,EAAI,OAAEtrE,EAAM,SAAEw9J,EAAS,YAAEh2K,EAAM,SAAE6tD,EAAG,MAAE41B,EAAE,KAC7C4wF,EAAY77J,EAAM,QACpBhN,EAAQxL,EAAOy8I,cAAc/2I,GAAOxE,OACpC2kB,EAAYra,EAA0B,GAAlBjL,KAAKu1K,WACzBL,EAAW,UAAGl1K,KAAKk1K,SAAQ,YAAI5vJ,GAC/B2vJ,EAAY,UAAGj1K,KAAKi1K,UAAS,YAAI1xF,EAAI,UACrCoyF,EAAW,UAAG31K,KAAKg1K,aAAY,YAAIS,EAAS,YAAIlyF,EAAI,UACpD/4D,EAAQ8iC,EAAI9iC,MAAQ,EACpBorJ,EAAM,UAAG,GAAa,GAARprJ,EAAU,MACxB7gB,EAAOxE,EAAMunF,UACbwN,EAAO/0F,EAAMg1F,UACb07E,EAAU,UAAG5xF,EAAG,SAEhB,GADYf,aAAE,EAAFA,EAAI0D,aAAW,MACzB5mB,EAAI,OAAEijD,EAAG,MAAEC,EAAM,SAAEF,EAAO,UAElC,MAAO,kBAEH8wD,EACI,qBAAa7vF,EAAG,oEACJA,EAAG,0BAAiBg/B,EAAG,wCACvBh/B,EAAG,2BAAkBi/B,EAAM,wBAEvC,GAAE,gCAEM+xD,EAAS,qCACPC,EAAQ,oCAA0BU,EAAG,0DACnC3xF,EAAG,qCAA2Bt6E,EAAI,uCAClC3J,KAAKm1K,SAAQ,+BAAsBnyD,EAAO,6BACpD9oB,EAAO,wBAAgB27E,EAAO,oBAAW37E,EAAI,WAAY,GAAE,uCAC9Cy7E,EAAQ,wBAAehsK,EAAI,uFAIlC3J,KAAKo1K,SAAQ,yBAAgBnqK,GAAS,GAAE,sCACxCjL,KAAKq1K,QAAO,+BAAsBr1G,GAAQ,GAAE,sCAC5ChgE,KAAKs1K,YAAW,YAClC,EAEA,sBAAW,iBAAE,C,IAAb,WACE,OAAOt1K,KAAKP,OAAOyjF,EACrB,E,gCAEA,sBAAW,mBAAI,C,IAAf,WACE,OAAOljF,KAAKkjF,GAAG0D,YAAY1C,WAC7B,E,gCAEA,sBAAW,kBAAG,C,IAAd,WACE,OAAOlkF,KAAKiY,OAAOisE,WACrB,E,gCAkDA,YAAAwxF,cAAA,sBACUvwK,EAAkBnF,KAAb,MACLq0K,EADkBr0K,KAAL,OACI,OACnBqlF,EAAalgF,EAAMkgF,aACzBrlF,KAAKwK,SAAS66E,EAAY,mBAAoBrlF,KAAK81K,eACnD,CACE,CAAC,gBAAiB91K,KAAKuxI,cACvB,CAAC,cAAevxI,KAAK+1K,eACrB,CAAC,mBAAoB/1K,KAAKg2K,iBAC1B,CAAC,uBAAwBh2K,KAAKqjJ,kBAC9B,CAAC,iBAAkBrjJ,KAAK6T,QACxB,CAAC,iCAAkC7T,KAAKi2K,aAExCxgK,SAAQ,SAAAgxE,GAAQ,SAAKj8E,SAASrF,EAAOshF,EAAK,GAAIA,EAAK,GAAnC,IAClBzmF,KAAK2T,IAAI+E,KAAK,QAASvT,GACvBnF,KAAK2T,IAAI+E,KAAK,aAAc2sE,GAE5BlgF,EAAM0vK,UAAY70K,KAClBq0K,EAAOtoK,KAAK/L,KAAZq0K,CAAkB,CAChB/uF,UAAWngF,EACX0O,OAAQ7T,KAAKk2K,SACb1rK,SAAUxK,KAAKwK,UAEnB,EAEA,YAAAyrK,WAAA,WACEj2K,KAAKm2K,eAAe5vB,UAAYvmJ,KAAKmF,MAAMunF,SAC7C,EAEA,YAAA0pF,gBAAA,WAKE,OAJKp2K,KAAKq2K,QACRr2K,KAAKq2K,MAAQr2K,KAAK2T,IAAI4e,SAAS,WAAIvyB,KAAKikF,IAAG,eAGtCjkF,KAAKq2K,KACd,EAEA,YAAAhzB,iBAAA,WACQ,MAAyBrjJ,KAAvBikF,EAAG,MAAE9+E,EAAK,QAAE1F,EAAM,SACpB62K,EAAS,UAAGryF,EAAG,gBAEfh1E,GADUxP,EAAOiyG,UAAUvsG,GACT,WAAa,cACrCnF,KAAK2T,IAAI1E,GAAQqnK,GACjBt2K,KAAKo2K,kBAAkBnnK,GAAQ,UAAGg1E,EAAG,aACvC,EAQA,YAAAsyF,iBAAA,SAAiB/pK,GACfA,SAAAA,EAAI6hB,kBACE,IAAE5uB,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MACrBP,EAAO+2K,WAAWrxK,GAAQ1F,EAAOiyG,UAAUvsG,GAC7C,EAKA,YAAAsxK,WAAA,SAAWjqK,GACTA,SAAAA,EAAI6hB,kBACE,MAAkCruB,KAAhCkjF,EAAE,KAAEvvE,EAAG,MAAE8hK,EAAS,YAAED,EAAO,UAC7BrvB,EAAUnmJ,KAAKm2K,eACrBhwB,EAAQ,IAAa,OACrBA,EAAQnxG,QACRtgC,SAASsmD,YAAY,aAAa,GAClCkoB,EAAGs1D,YAAW,GACd7kI,EAAIC,KAAK,WAAI5T,KAAKg1K,eAAgB3oF,YAAYopF,GAAWnwJ,SAASkwJ,EACpE,EAEA,YAAAkB,cAAA,SAAclqK,GACZA,EAAG6hB,oBACF,IAAAu4E,UAASp6F,KAAO,IAAAsoG,YAAWtoG,KAAQxM,KAAK22K,cAAcnqK,EACzD,EAKA,YAAAmqK,cAAA,SAAcnqK,GACZA,SAAAA,EAAI6hB,kBACE,MAAkCruB,KAAhCkjF,EAAE,KAAEvvE,EAAG,MAAE8hK,EAAS,YAAED,EAAO,UAC7BrvB,EAAUnmJ,KAAKm2K,eACfxsK,EAAOw8I,EAAQ96E,YACrB86E,EAAQl6G,WAAa,EACrBk6G,EAAQ,IAAa,QACrBnmJ,KAAKkqH,QAAQvgH,EAAM,CAAE27E,UAAWtlF,KAAKmF,MAAOigI,SAAU,gBACtDliD,EAAGs1D,YAAW,GACd7kI,EAAIC,KAAK,WAAI5T,KAAKg1K,eAAgB1vJ,SAASmwJ,GAAWppF,YAAYmpF,GAElEx1K,KAAKi2K,YACP,EAEA,YAAA/rD,QAAA,SAAQvgH,EAAc,G,IAAEy7H,EAAQ,WAC9BplI,KAAKmF,MAAMM,IAAI2/H,EAAUz7H,EAC3B,EAMA,YAAAwsK,aAAA,WAIE,OAHKn2K,KAAK42K,YACR52K,KAAK42K,UAAY52K,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKg1K,gBAE3Ch1K,KAAK42K,SACd,EAOA,YAAAb,cAAA,WACQ,MAAsB/1K,KAApB2T,EAAG,MAAExO,EAAK,QAAE8+E,EAAG,MACjB4yF,EAAU,OACVC,EAAa,UAAG7yF,EAAG,cACnB4+B,EAAQ7iH,KAAK+2K,WAEf/2K,KAAKP,OAAOu3K,OAAO7xK,IACrBwO,EAAI2R,SAASuxJ,GACbh0D,EAAMv9F,SAASwxJ,KAEfnjK,EAAI04E,YAAYwqF,GAChBh0D,EAAMx2B,YAAYyqF,GAEtB,EAQA,YAAAG,cAAA,SAAczqK,GACN,IAAErH,EAAkBnF,KAAb,MAAEP,EAAWO,KAAL,OACrBwM,SAAAA,EAAI0qK,2BAEC/xK,EAAMxB,IAAI,cAAehD,QAE9BlB,EAAO03K,QAAQhyK,GAAQ1F,EAAOu3K,OAAO7xK,GACvC,EAKA,YAAAiyK,aAAA,SAAazkK,GACXA,SAAAA,EAAO0b,kBACD,IAAE5uB,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MACrBP,EAAO43K,aAAalyK,EAAO,CAAE6uD,UAAU,GAAQ,CAAErhD,MAAK,GACxD,EAKA,YAAA2kK,YAAA,SAAY9qK,GACVA,SAAAA,EAAI6hB,kBACE,IAAE5uB,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MACrBP,EAAO43K,aAAalyK,EAAO,CAAEoyK,SAAS,GACxC,EAEA,YAAAC,eAAA,SAAehrK,GACbA,SAAAA,EAAI6hB,kBACE,IAAE5uB,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MACrBP,EAAO43K,aAAalyK,EAAO,CAAEoyK,SAAS,GACxC,EAMA,YAAAh4E,UAAA,SAAU/yF,GACRA,EAAG6hB,kBACG,IAAE60D,EAAeljF,KAAb,GAAE0vF,EAAW1vF,KAAL,OAEdwM,EAAGmiB,QAAwB,IAAdniB,EAAGmiB,QAEhB+gE,IACFA,EAAOhM,QAAU,SAAChrE,GAAc,OAAAwqE,EAAGp/E,QAAQ,UAAGyiI,GAAS,UAAU7tH,EAAjC,EAChCg3E,EAAOW,UAAY,SAAC33E,GAAc,OAAAwqE,EAAGp/E,QAAQyiI,GAAW7tH,EAAtB,EAClCg3E,EAAO6P,UAAU/yF,EAAG+Z,QAExB,EAMA,YAAAgrH,aAAA,WAEE,gCAA2CvxI,KAAM,CAC/C,CACE6yI,YAAa7yI,KAAKiY,OAAOm8J,eACzBxhC,SAAS,IAGf,EAOA,YAAAkjC,cAAA,WACQ,MAAqC91K,KAAnCmF,EAAK,QAAEowK,EAAU,aAAE5hK,EAAG,MAAElU,EAAM,SAChCwL,EAAQxL,EAAOy8I,cAAc/2I,GAAOxE,OACpCsd,EAAQtK,EAAI4e,SAAS,WAAIvyB,KAAKi1K,YAAa1iJ,SAAS,WAAIvyB,KAAKk1K,WAC7DrkD,EAAQ7wH,KAAI,IAEb6wH,IACHA,EAAMl9G,EAAI4e,SAAS,gBAAgB5uB,IAAI,GACvC3D,KAAK6wH,IAAMA,GAGb5yG,EAAMhT,EAAQ,cAAgB,YAAYsqK,GACtC1kD,IAAKA,EAAI7pC,UAAY/7E,GAAS,KACjCA,GAASxL,EAAO03K,QAAQhyK,GAAO,EAClC,EAEA,YAAA4xK,SAAA,WAKE,OAJK/2K,KAAK6iH,OAAU7iH,KAAK6iH,MAAMliH,SAC7BX,KAAK6iH,MAAQ7iH,KAAK2T,IAAI4e,SAAS,WAAIvyB,KAAKi1K,YAAarhK,KAAK,WAAI5T,KAAKm1K,YAG9Dn1K,KAAK6iH,KACd,EAEA,YAAA8I,QAAA,SAAQv3G,G,MACNA,GAAK,IAAAlD,UAASkD,GAA0B,QAApB,EAAApU,KAAKkjF,GAAGqtC,oBAAY,eAAE38G,KAAKQ,GAAI,GAAMA,EACzD,IAAMjP,GAAQ,IAAA4gF,UAAS3xE,EAAI,GACtBjP,IACLnF,KAAKsL,gBACLtL,KAAKmF,MAAQA,EACbnF,KAAK01K,gBACL11K,KAAKy3K,WAAaz3K,KAAK6T,SACzB,EAEA,YAAAmiK,gBAAA,YACyBh2K,KAAI,YACMA,MACtB6T,QACb,EAEA,YAAA6jK,aAAA,W,MACY,QAAV,EAAA13K,KAAK4jG,aAAK,SAAEx+F,QACd,EAEA,YAAAA,OAAA,W,IAAO,sDAGL,OAFA,4BAA4BpF,KAAMU,GAClCV,KAAK03K,eACE13K,IACT,EAEA,YAAA6T,OAAA,WACQ,MAA4C7T,KAA1CmF,EAAK,QAAE8S,EAAM,SAAEgsE,EAAG,MAAEV,EAAI,OAAEj2B,EAAG,MAAEoiC,EAAM,SAC7C1vF,KAAK03K,eACG,IAAA3C,EAA6BznH,EAAG,OAAxB7tD,EAAqB6tD,EAAG,OAAhBwnH,EAAaxnH,EAAG,SAClCnrB,GAAU1iC,EAAOk4K,cAAcxyK,GAC/BiP,EAAKpU,KAAK2T,IAAIq+B,QACdxnB,EAAQ8iC,EAAI9iC,MAAQ,SACnBxqB,KAAK42K,UACZ52K,KAAK4jG,MAAQ,IAAI,GAAU,CACzBkxE,SAAQ,EACR7vK,WAAYE,EAAMxB,IAAI,cACtBsU,OAAM,EACNy3E,OAAM,EACNqlF,OAAM,EACNT,WAAYt0K,KACZue,OAAQpZ,EACRqlB,MAAK,EACL/qB,OAAM,IAER,IAAM8yB,EAAWvyB,KAAK4jG,MAAM/vF,SAASF,IAqBrC,OAnBKsE,EAAO+7J,aAAyB,IAAVxpJ,GAGzBpW,EAAG8hE,KAAKl2E,KAAK08G,SAASv3G,IACtBiP,EAAGR,KAAK,WAAI5T,KAAKs1K,cAAetiF,OAAOzgE,IAHvCne,EAAG4+E,OAAOzgE,GAMPptB,EAAMxB,IAAI,cAAiBsU,EAAOjH,UACrCoD,EAAGme,SAAS,WAAIvyB,KAAKq1K,UAAWjwK,UAGjC3F,EAAOiyG,UAAUvsG,KAAWnF,KAAK4U,WAAa,WAAIqvE,EAAG,SACtD9hD,IAAWniC,KAAK4U,WAAa,WAAI2uE,EAAI,WACrCnvE,EAAG5M,KAAK,QAASxH,KAAK4U,WACtB5U,KAAKuxI,eACLvxI,KAAK+1K,gBACL/1K,KAAKqjJ,mBACLrjJ,KAAKk2K,WACLl2K,KAAKy3K,WAAY,EACVz3K,IACT,EAEA,YAAAk2K,SAAA,WACQ,MAAwBl2K,KAAtBmF,EAAK,QAAE8S,EAAM,SAEfq1C,EAAM,CAAEg4B,UAAWngF,EAAOiP,GAFP,MACJ6D,EAAM,SAElBlM,KAAK/L,KAAd82F,CAAoBxpC,GACpBttD,KAAKkjF,GAAGp/E,QAAQ,eAAgBwpD,EAClC,EACF,EAnaA,CAAsC,M,qvBCsCzB,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChBsqH,GAAS,UAAG,GAAK,QACjBC,GAAc,UAAG,GAAK,aACtB,GAAW,UAAG,GAAK,UAE1B,GAAS,CACbz2K,IAAK,GACL9B,KAAMs4K,GACNtyF,UAAWuyF,GACXhnF,OAAQ,IAGJinF,GAAY,CAAElpD,UAAW,IAEzBmpD,GAAgB,CAAC,OAAQ,SAAU,SAAU,cAAe,aAAc,WAC7EjzK,KAAI,SAAAk3B,GAAK,iCAAoBA,EAApB,IACTyzB,KAAK,KAMR,eAOE,WAAYyzB,GAAZ,MACE,YAAMA,EAAI,eAAgB,KAAS,KAKnC,OARF,EAAAx5E,OAAS,IAIP,IAAA44E,SAAQ,EAAM,mBAAoB,iBAAkB,iBACpD,EAAKn9E,MAAQ,IAAI,EAAY,EAAM,CAAE4vK,OAAQ,CAAC,IAE9C,EAAK98J,OAAOisE,YAAc,EAAKjsE,OAAOksE,aAC/B,CACT,CA6RF,OA3S0C,QAgBxC,YAAAmnC,OAAA,sBACQ,EAAwBtrH,KAAtBkjF,EAAE,KAAEjrE,EAAM,SAAE9S,EAAK,QACzBA,EAAMqF,SAAS04E,EAAI,qBAAsBljF,KAAK8mJ,kBAC9C3hJ,EAAMsC,GAAG,cAAezH,KAAKg4K,gBAC7B7yK,EAAMqF,SAAS04E,EAAI60F,GAAe/3K,KAAKi4K,eACvCj4K,KAAK8mJ,mBACL3hJ,EAAM6G,aAAak3E,EAAI,QAAQ,WAC7B,EAAKyoC,QAAQ1zG,EAAO3Y,MACpB,EAAK8lH,YACP,GACF,EAUA,YAAAuG,QAAA,SAAQrmC,GACN,IAAM1+C,EAAqB5mC,KAAKkjF,GAAGqtC,aAC/BjxH,GAAO,IAAA21G,aAAY3vB,GAAcA,EAA0B1+C,EAQ/D,OANI0+C,IAAa,IAAAp0E,UAASo0E,KAAc,IAAAkZ,YACtCl/F,EAAOsnC,EAAQhzB,KAAK0xE,GAAW,IAAM1+C,GAGvC5mC,KAAKmF,MAAMM,IAAI,OAAQnG,GAEhBA,CACT,EAQA,YAAA44K,QAAA,WACE,OAAOl4K,KAAKmF,MAAMxB,IAAI,OACxB,EAWA,YAAAu4I,cAAA,SAAc52D,GAAd,WACE,OAAOA,EAAUD,aAAapvE,QAAO,SAACyd,GAAa,SAAKikJ,cAAcjkJ,EAAnB,GACrD,EAOA,YAAAyjJ,QAAA,SAAQ7xF,EAAsB59E,GAC5B49E,EAAU7/E,IAAI,OAAQiC,EACxB,EAOA,YAAAsvK,OAAA,SAAO1xF,GACL,QAASA,EAAU3hF,IAAI,OACzB,EAOA,YAAA6yK,WAAA,SAAWlxF,EAAsB59E,GAC/B,IAAMywK,EAAa,iBACbx7J,EAAa2oE,EAAUmD,SAASqvF,IAC9Bl7J,EAAYD,EAAK,QAEzB,GAAIjV,EAAO,CACT,IAAM0wK,EAAc9yF,EAAU3hF,IAAIw0K,UAC3Bx7J,EAAMC,QAETw7J,IACFz7J,EAAMC,QAAUw7J,EAChB9yF,EAAU9/E,MAAM2yK,G,MAGlBv7J,GAAW0oE,EAAU7/E,IAAI0yK,EAAYv7J,GACrCD,EAAMC,QAAU,OAGlB0oE,EAAUxF,SAASnjE,EAAOm7J,IAC1B93K,KAAKq4K,YAAY/yF,GACjBtlF,KAAKkjF,GAAGp/E,QAAQ,oBAClB,EAOA,YAAA4tG,UAAA,SAAUpsB,GACR,YAhImB,KAAA3oE,EAgIG2oE,EAAUmD,SAASqvF,OAhItBn7J,EAAA,MACmC,KAAhDA,EAAMC,SAAW,IAAI0rE,OAAOzjF,QAAQ,SADxB,IAAC8X,CAiIrB,EAOA,YAAA27J,UAAA,SAAUhzF,EAAsB59E,GAC9B49E,EAAU7/E,IAAI,SAAUiC,EAC1B,EAOA,YAAA6wK,SAAA,SAASjzF,GACP,QAASA,EAAU3hF,IAAI,SACzB,EAOA,YAAAumH,QAAA,SAAQ5kC,EAAsB59E,GAC5B49E,EAAU7/E,IAAI,cAAeiC,EAC/B,EAOA,YAAAglF,QAAA,SAAQpH,GACN,OAAOA,EAAUoH,SACnB,EAWA,YAAA8rF,aAAA,SAAalzF,GACX,IAAMiZ,EAASjZ,EAAU3hF,IAAI,UAE7B,MAAO,CACLgG,KAAM27E,EAAUoH,UAChBvvE,KAAMnd,KAAKg3K,OAAO1xF,GAClBtxB,SAAqB,aAAXuqC,EACVg5E,QAAoB,YAAXh5E,EACT7/C,QAAS1+C,KAAK0xG,UAAUpsB,GACxBiiD,OAAQvnI,KAAKu4K,SAASjzF,GACtBD,WAAYrlF,KAAKk8I,cAAc52D,GAEnC,EAEA,YAAA+xF,aAAA,SAAa/xF,EAAsB5sE,EAA8C7O,G,WAAA,IAAAA,IAAAA,EAAA,IACzE,IAAEq5E,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,OACVmd,EAAmDzE,EAAI,KAAjDs7C,EAA6Ct7C,EAAI,SAAvC6+J,EAAmC7+J,EAAI,QAA9BgmC,EAA0BhmC,EAAI,QAArB6uH,EAAiB7uH,EAAI,OAAb/O,EAAS+O,EAAI,KACzD+/J,EAAU,IAAEC,YAAY,GAAS7uK,GAKvC,IAHI,IAAA8oG,OAAMx1F,IACRnd,KAAKm3K,QAAQ7xF,EAAWnoE,IAEtB,IAAAw1F,OAAM3+C,GACR,GAAIA,EAAU,CACZkvB,EAAGwb,YAAYpZ,EAAWmzF,GAC1B,IAAM,EAASxgK,EAAOi8J,aACtB,IAAyB,QAAf,EAAA5uF,EAAUsT,aAAK,SAAEnjF,SAAQ,SAAC6sB,GAAc,OAAAA,EAAKmU,eAAe,EAApB,I,MAElDysC,EAAGwjE,eAAephE,EAAWmzF,IAG7B,IAAA9lE,OAAM4kE,IAAYt/J,EAAOg8J,YAC3BsD,EAAUr0F,EAAGuV,WAAWnT,EAAWmzF,GAAWv1F,EAAGuV,WAAW,KAAMggF,KAEhE,IAAA9lE,OAAMj0D,IACRA,IAAY1+C,KAAK0xG,UAAUpsB,IAActlF,KAAKw2K,WAAWlxF,EAAW5mC,IAElE,IAAAi0D,OAAM40B,IACRvnI,KAAKs4K,UAAUhzF,EAAWiiD,IAExB,IAAA50B,OAAMhpG,IACR3J,KAAKkqH,QAAQ5kC,EAAW37E,EAE5B,EAMA,YAAAm9I,iBAAA,SAAiBj1G,EAAiBhoC,G,MAEhC,QAFgC,IAAAA,IAAAA,EAAA,KAE5BA,EAAK6uK,WAAT,CACM,IAAEx1F,EAAeljF,KAAb,GACFm0K,EADen0K,KAAL,OACa,aACzB+0K,EAAS/0K,KAAKmF,MAAMxB,IAAI,UACxBqwD,EAAWkvB,EAAG8F,cAChBzqE,EAASy1C,aAAQ,EAARA,EAAUz1C,SAEvB,IAAK,IAAI9Z,KAAOswK,EACdA,EAAOtwK,GAAKgB,IAAI,QAAQ,UACjBsvK,EAAOtwK,GAGhB,KAAO8Z,GACLA,EAAO9Y,IAAI,QAAQ,GACnBsvK,EAAOx2J,EAAO9Z,KAAO8Z,EACrBA,EAASA,EAAOA,SAGlB,GAAIy1C,GAAYmgH,EAAc,CAE5B,IAAM//J,EAAuB,QAAlB,EAAA4/C,EAAS6gH,iBAAS,eAAEzgK,GAC/BA,SAAAA,EAAIqiC,eAAe09H,E,CArBM,CAuB7B,EAEA,YAAAxoF,OAAA,WACE,OAAO3rF,KAAKsiC,IACd,EAEA,YAAAzuB,OAAA,W,QACUoE,EAAkBjY,KAAZ,OAAEmF,EAAUnF,KAAL,MACf80K,EAAW,UAAY78J,EAAOtR,QAUpC,OATA3G,KAAKsiC,KAAO,IAAIwyI,EAAS,CACvB1gK,GAAa,QAAT,EAAApU,KAAKsiC,YAAI,eAAEluB,GACf0gK,SAAQ,EACRtqJ,MAAO,EACPvS,OAAM,EACN88J,OAAQ5vK,EAAMxB,IAAI,UAClBwB,MAAOnF,KAAKk4K,UACZz4K,OAAQO,OAEM,QAAT,EAAAA,KAAKsiC,YAAI,eAAEzuB,SAASO,EAC7B,EAEA,YAAA/E,QAAA,W,MACW,QAAT,EAAArP,KAAKsiC,YAAI,SAAEl9B,QACb,EAEA,YAAA4yK,eAAA,W,MACQ14K,EAAOU,KAAKk4K,UACT,QAAT,EAAAl4K,KAAKsiC,YAAI,SAAEqpF,QAAQrsH,GACnBU,KAAKkjF,GAAGp/E,QAAQ8zK,GAAQt4K,EAC1B,EAEA,YAAA24K,cAAA,SAAc3yF,GACZtlF,KAAKq4K,YAAY/yF,EACnB,EAEA,YAAAqyF,cAAA,SAAcjkJ,GACZ,IAAM/O,EAAM+O,EAAI/vB,IAAI,WAIpB,QAHiB3D,KAAKiY,OAAO87J,eACErgJ,EAAI21E,GAAG,aAAuB,OAAR1kF,IAEnC+O,EAAI/vB,IAAI,YAC5B,EAEA,YAAA6tF,YAAA,SAAY3nF,GACV7J,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ,CAClCpwC,UAAW52C,EAAK42C,UAChBnhD,KAAMU,KAAKk4K,WAEf,EAEA,YAAAG,YAAA,SAAY/yF,EAAsBz7E,GAChC7J,KAAKkjF,GAAGp/E,QAAQ+zK,GAAavyF,EAAWz7E,EAC1C,EACF,EA3SA,CAA0C,G,YC8E1C,SAvBmC,CACjC4nF,OAAQ,GACRknF,SAAU,GACVz0F,YAAa,MACbksE,OAAQ,GACRwoB,WAAY,QACZprB,QAAS,CAAC,EACVh1I,OAAQ,CAAC,EACTq1I,YAAa,UACbgrB,aAAa,EACbt1E,SAAS,EACTu1E,iBAAazzK,EACbkxI,gBAAYlxI,EACZ0zK,eAAe,EACf9yC,eAAW5gI,EACX2zK,kBAAc3zK,EACd4zK,cAAc,EACdpoF,QAAQ,EACRqoF,UAAU,EACVC,kBAAkB,EAClBC,gBAAiB,I,2fCrJnB,4B,8CA2DA,QA3DmC,QAC1B,EAAA/oC,YAAP,WACE,OAAO,IAAAnjI,QAAOlN,KAAKK,UAAW,WAChC,EAEA,YAAAyG,SAAA,WACE,MAAO,CACLtE,KAAM,GACNka,IAAK,GAET,EASA,YAAAsrG,QAAA,WACE,OAAOhoH,KAAK2D,IAAI,OAClB,EASA,YAAA+yI,OAAA,WACE,OAAO12I,KAAK2D,IAAI,MAClB,EAWA,YAAA01K,YAAA,WACE,OAAOr5K,KAAK2D,IAAI,OAAOsG,MAAM,KAAKrG,MAAMqG,MAAM,KAAKpG,OACrD,EAWA,YAAAy1K,aAAA,WACE,OAAOt5K,KAAKq5K,cAAcpvK,MAAM,KAAKrG,KACvC,EACF,EA3DA,CAAmC,M,YA6DnC21K,GAAMl5K,UAAUgN,YAAc,M,kvBCpE9B,yB,8CAUA,QAVwC,QACtC,YAAAvG,SAAA,WACE,OAAO,SACF,kBAAmB,CACtBtE,KAAM,QACNg3K,QAAS,KACT1mJ,OAAQ,EACRqT,MAAO,GAEX,EACF,EAVA,CAAwC,I,2fCUxC,eAQE,WAAYmnB,GAAZ,MACE,YAAMA,IAAW,KACjB,EAAKzqD,QAAUyqD,EACf,EAAKroD,WAAaqoD,EAAIroD,WACtB,IAAMgT,EAASq1C,EAAIr1C,QAAU,CAAC,EAC9B,EAAKA,OAASA,EACd,EAAKgsE,IAAMhsE,EAAOisE,aAAe,GAEjC,EAAKX,KAAOtrE,EAAOksE,cAAgB,GAEnC,EAAKjB,GAAKjrE,EAAOirE,GACjB,EAAKtuE,UAAY,EAAKqvE,IAAM,QAC5B,EAAKz5E,SAAS,EAAKrF,MAAO,iBAAkB,EAAKC,QAEjD,EAAKD,MAAMm9B,KAAO,EAClB,IAAM0f,EAAO,EAAKA,MAAQ,EAAKA,KAAKj2C,KAAK,G,OACzCi2C,GAAQA,EAAKsL,G,CACf,CAiDF,OA1EqE,QA2BnE,YAAAmsH,SAAA,WACU,IAAAv2F,EAAOljF,KAAI,GACb4wF,EAAK1N,aAAE,EAAFA,EAAImzD,OACf,OAAOzlD,aAAE,EAAFA,EAAI+zD,mBAAoB,CAAC,CAClC,EAEA,YAAAjoC,SAAA,SAASp6E,EAAiBk0G,GAChB,IAAAvyD,EAAQjkF,KAAI,IACpB,MAAO,+BACSikF,EAAG,oCACbjkF,KAAK05K,aAAY,8CAEPz1F,EAAG,4BACbjkF,KAAK25K,UAAS,8CAEJ11F,EAAG,6EAIrB,EAOA,YAAAqY,aAAA,SAAa/1E,GACPA,GAAUA,EAAO9gB,MACnB8gB,EAAO9gB,IAAI,cAAc,IAAAlC,OAAMgjB,EAAO5iB,IAAI,gBAC1C4iB,EAAO9gB,IAAI,MAAOzF,KAAKmF,MAAMxB,IAAI,QAErC,EAEA,YAAA+1K,WAAA,WACE,MAAO,EACT,EAEA,YAAAC,QAAA,WACE,MAAO,EACT,EAEA,YAAA9lK,OAAA,WACE,IAAMO,EAAKpU,KAAKoU,GAGhB,OAFAA,EAAG4yE,UAAYhnF,KAAK08G,SAAS18G,KAAMA,KAAKmF,OACxCiP,EAAGQ,UAAY5U,KAAK4U,UACb5U,IACT,EACF,EA1EA,CAAqE,M,gpBCPrE,4B,8CAoFA,QApF4C,QAC1C,YAAA05K,WAAA,WACQ,MAAuB15K,KAArBikF,EAAG,MAAEV,EAAI,OACX7mE,EADkB,QACN/Y,IAAI,OACtB,OAAOuyE,EAAI,wLACQ,4CAA6C,oCAC7C,cAAkB,+BADrB+N,EAA6CvnE,EAC7CunE,EAAiBV,EAEnC,EAEA,YAAAo2F,QAAA,WACQ,IAAE11F,EAAejkF,KAAZ,IAAEmF,EAAUnF,KAAL,MACd2J,EAAOxE,EAAMxB,IAAI,QACjBwiC,EAAQhhC,EAAMxB,IAAI,SAClBmvB,EAAS3tB,EAAMxB,IAAI,UACnBu6D,EAAO/4D,EAAMxB,IAAI,WACjBi2K,EAAMzzI,GAASrT,EAAS,UAAGqT,EAAK,YAAIrT,GAAM,OAAGorC,GAAS,GAE1D,OADAv0D,EAAOA,GAAQxE,EAAMk0K,cACdnjG,EAAI,qIACQ,UAAa,8BACb,gBAAkB,kBADrB+N,EAAYt6E,EACZs6E,EAAkB21F,EAEpC,EAGA,YAAA53H,KAAA,SAAK7rB,GACH,IAAM8tD,EAAMjkF,KAAKikF,IACjBjkF,KAAK4U,WAAa,WAAIqvE,EAAG,cAC3B,EAMA,YAAAmN,QAAA,WACQ,IAAEjsF,EAAenF,KAAV,MAAEikF,EAAQjkF,KAAL,IACVkW,EAAWlW,KAAKy5K,WAAU,OAE1BroF,EAAYpxF,KAAKiY,OAAM,QACzB+yE,EAAOhrF,KAAKiF,WAClB+lF,EAAKlnF,QAAQ,eACb9D,KAAK2T,IAAI2R,SAAS2+D,EAAM,cAEpB,IAAA5hF,YAAW6T,GACbA,EAAO/Q,GAAO,IACL,IAAA9C,YAAW+uF,GACpBA,EAAQjsF,GAGRnF,KAAKs8F,aAAatR,EAAKzkE,OAE3B,EAMA,YAAA8qE,WAAA,WACQ,IAAEnO,EAAcljF,KAAZ,GAAEmF,EAAUnF,KAAL,MACTkW,EAAWlW,KAAKy5K,WAAU,OAE1BpoF,EAAerxF,KAAKiY,OAAM,WAE5B,EAAuBjY,KAAKiF,WAA1BshB,EAAM,SAAE+pE,EAAQ,YAEpB,IAAAjuF,YAAW6T,GACbA,EAAO/Q,GAAO,IACL,IAAA9C,YAAWgvF,GACpBA,EAAWlsF,IAEXnF,KAAKs8F,aAAa/1E,GAClB28D,SAAAA,EAAI0J,MAAMxvE,UAEZ,IAAA/a,YAAWiuF,IAAaA,EAASnrF,EACnC,EAMA,YAAAg/F,SAAA,SAASj5F,GACPA,EAAEgsK,2BACFl3K,KAAKmF,MAAMF,WAAWG,OAAOpF,KAAKmF,MACpC,EACF,EApFA,CAA4C,I,sBAsF5C00K,GAAex5K,UAAUqJ,OAAS,CAEhC,mCAAoC,WACpCuiF,MAAO,UACPgqD,SAAU,c,kPC3FN6jC,GAAqB,CACzBpuJ,MAAO,GAEPnkB,WAAU,SAAC/D,EAAQqG,GAAnB,gBAAmB,IAAAA,IAAAA,EAAA,IACT,IAAAq5E,EAAOr5E,EAAI,GACnB7J,KAAKkjF,GAAKA,EACVljF,KAAK6J,KAAOA,EACZ7J,KAAKmF,MAAQ,SAAC2H,EAAYjK,GACxB,IAAIgE,EAAOwM,EAAM7Q,EAEjB,QAHY,IAAAsK,IAAAA,EAAA,SAAY,IAAAjK,IAAAA,EAAA,IAGpBiK,GAASA,EAAMtK,KAAM,CACvB,IAAMu3K,EAAW,EAAKC,cAEtBnzK,GADArE,EAAO,EAAKwlH,QAAQl7G,EAAMtK,OACXA,EAAK2C,MAAQ40K,EAAS50K,MACrCkO,EAAO7Q,EAAOA,EAAK8/B,KAAOy3I,EAASz3I,I,KAC9B,CACL,IAAM23I,EAAY,EAAKC,cAAcptK,GAErCjG,GADArE,EAAOy3K,EAAUz3K,MACJ2C,MACbkO,EAAO7Q,EAAK8/B,KACZx1B,EAAQmtK,EAAUjzK,U,CAGpB,IAAM7B,EAAQ,IAAI0B,EAAMiG,EAAO,SAAKjK,GAAO,CAAEqgF,GAAE,KAE/C,OADA/9E,EAAMg1K,SAAW9mK,EACVlO,CACT,EACA,IAAM68C,EAAOhiD,KAAKgiD,MAAQhiD,KAAKgiD,KAAKj2C,KAAK/L,MACzCgiD,GAAQA,GACV,EAOAk4H,cAAa,SAACxyK,GAGZ,IAFA,IAAMgkB,EAAQ1rB,KAAK+wI,WAEVlxI,EAAI,EAAGA,EAAI6rB,EAAM/qB,OAAQd,IAAK,CACrC,IAAM2C,EAAOkpB,EAAM7rB,GACfo6K,EAAYz3K,EAAK43K,OAAO1yK,GAG5B,GAFAuyK,EAAgC,kBAAbA,GAA0BA,EAAY,CAAEz3K,KAAMA,EAAK8H,IAAO2vK,EAG3E,MAAO,CACLz3K,KAAI,EACJwE,WAAYizK,E,CAMlB,MAAO,CACLz3K,KAAMxC,KAAKg6K,cACXhzK,WAAYU,EAEhB,EAMAsyK,YAAW,WACT,IAAMtuJ,EAAQ1rB,KAAK+wI,WACnB,OAAOrlH,EAAMA,EAAM/qB,OAAS,EAC9B,EAMAowI,SAAQ,WACN,OAAO/wI,KAAK0rB,KACd,EAOAs8F,QAAO,SAAC19G,GAGN,IAFA,IAAMohB,EAAQ1rB,KAAK+wI,WAEVlxI,EAAI,EAAGA,EAAI6rB,EAAM/qB,OAAQd,IAAK,CACrC,IAAM2C,EAAOkpB,EAAM7rB,GACnB,GAAI2C,EAAK8H,KAAOA,EACd,OAAO9H,C,CAGb,EAeA65I,QAAO,SAAC/xI,EAAIw2G,GACV,IAAMt+G,EAAOxC,KAAKgoH,QAAQ19G,GACpByvK,EAAW/5K,KAAKg6K,cAChBK,EAAY73K,EAAOA,EAAK2C,MAAQ40K,EAAS50K,MACzCm1K,EAAW93K,EAAOA,EAAK8/B,KAAOy3I,EAASz3I,KACvCn9B,EAAwB27G,EAAU,MAA3Bx+E,EAAiBw+E,EAAU,KAArBs5D,EAAWt5D,EAAU,OACxC37G,EAAQA,aAAiB,OAAS,IAAA9C,YAAW8C,GAASA,EAAQk1K,EAAU1zK,OAAOxB,GAAS,CAAC,GACzFm9B,EAAOA,aAAgB,OAAQ,IAAAjgC,YAAWigC,GAAQA,EAAOg4I,EAAS3zK,OAAO27B,GAAQ,CAAC,IAG9EtiC,KAAKu6K,eAAkBz5D,EAAW37G,OAAU27G,EAAWx+E,OACzDA,EAAOA,EAAK37B,OAAOm6G,IAGjBt+G,GACFA,EAAK2C,MAAQA,EACb3C,EAAK8/B,KAAOA,EACZ9/B,EAAK43K,OAASA,GAAU53K,EAAK43K,SAE7Bt5D,EAAWx2G,GAAKA,EAChBw2G,EAAW37G,MAAQA,EACnB27G,EAAWx+E,KAAOA,EAClBw+E,EAAWs5D,OACTA,GACA,SAAU1yK,GACR,GAAIA,GAASA,EAAMlF,MAAQ8H,EACzB,OAAO,CAEX,EACFtK,KAAK+wI,WAAWr/H,QAAQovG,GAE5B,GAGF,Y,2fCvIA,4B,8CAAkE,QAA9B,QAA8B,EAAlE,CAF8B,YAAkB,K,YAIhDu1B,GAAOh2I,UAAUqrB,MAAQ,CACvB,CACEphB,GAAI,QACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,MAAoB,iBAATA,EACF,CACLlF,KAAM,QACNka,IAAKhV,GAGFA,CACT,I,2fClBJ,eAiCE,WAAYyuB,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KACR,EAAKtzB,QAAUszB,EACf,EAAKle,OAASke,EAAEle,OAChB,EAAKgsE,IAAM,EAAKhsE,OAAOisE,aAAe,GAEtC,EAAKX,KAAO,EAAKtrE,OAAOksE,cAAgB,GAExC,EAAKjB,GAAK,EAAKjrE,OAAOirE,GACtB,IAAM8H,EAAO,EAAK/lF,W,OAClB,EAAKuF,SAASwgF,EAAM,QAAS,EAAKwvF,cAClC,EAAKhwK,SAASwgF,EAAM,MAAO,EAAKyvF,YAChC,EAAKjwK,SAASwgF,EAAM,SAAU,EAAK0vF,cACnC,EAAKlwK,SAASwgF,EAAM,cAAe,EAAK2vF,a,CAC1C,CAoJF,OAnMwC,QAQtC,YAAAj+D,SAAA,SAAS,G,IAAEz4B,EAAG,MAAEV,EAAI,OAAEL,EAAE,KAClBjU,EAAO,GAaX,OAZIjvE,KAAKiY,OAAOghK,eACdhqG,EAAO,oCACYgV,EAAG,kDACFV,EAAI,iBAASU,EAAG,4DACNf,aAAE,EAAFA,EAAI5vB,EAAE,yBAAwB,iEAErCiwB,EAAI,sBAAaL,aAAE,EAAFA,EAAI5vB,EAAE,0BAAyB,uFAMlE,6BACO2wB,EAAG,8CACDA,EAAG,qCACbhV,EAAI,8CAEMgV,EAAG,+FAIrB,EAwBA,YAAA22F,aAAA,SAAapuK,GACXA,EAAG+gB,iBACH,IAAM+T,EAAQthC,KAAK66K,cACbvrK,EAAMgyB,GAASA,EAAM55B,MAAM4gF,OAC3B29C,EAAYjmI,KAAKiY,OAAOguH,UAE9B,GAAK32H,EAAL,CAIAgyB,EAAM55B,MAAQ,GACd,IAAMozK,EAAW96K,KAAK+6K,cAElBD,IACFA,EAASzuI,UAAY,GAGnB45F,EACFA,EAAUl6H,KAAK/L,KAAfimI,CAAqB32H,GAErBtP,KAAK6C,QAAQm4K,iBAAiB12K,IAAIgL,EAAK,CAAE7L,GAAI,G,CAEjD,EAOA,YAAAs3K,YAAA,WAEE,OAAO/6K,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKikF,IAAG,UAC3C,EAOA,YAAA42F,YAAA,WAIE,OAHK76K,KAAKi7K,UAAaj7K,KAAKi7K,SAASvzK,QACnC1H,KAAKi7K,SAAWj7K,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKikF,IAAG,qBAE7CjkF,KAAKi7K,QACd,EAOA,YAAAP,aAAA,SAAav1K,GACNnF,KAAKiF,WAAWtE,QACnBX,KAAKk7K,gBAET,EAMA,YAAAT,WAAA,SAAWt1K,GACqB,GAA1BnF,KAAKiF,WAAWtE,QAClBX,KAAKk7K,gBAAe,GAEtBl7K,KAAKm7K,SAASh2K,EAChB,EASA,YAAAg2K,SAAA,SAASh2K,EAAcipH,QAAA,IAAAA,IAAAA,EAAA,MACrB,IAAMn0G,EAAWm0G,EACXnpH,EAAajF,KAAKiF,WAClBgT,EAASjY,KAAKiY,OAEds5E,EAAW,IAAIpsF,EAAMg1K,SAAS,CAClCh1K,MAAK,EACLF,WAAU,EACVgT,OAAM,IACLpE,SAASO,GAEZ,GAAI6F,EACFA,EAASwK,YAAY8sE,OAChB,CACL,IAAMupF,EAAW96K,KAAK+6K,cAClBD,GACFA,EAAS99J,aAAau0E,EAAUupF,EAAS79J,W,CAI7C,OAAOs0E,CACT,EAOA,YAAA2pF,eAAA,SAAevnF,QAAA,IAAAA,IAAAA,GAAA,GACb,IAAMmnF,EAAW96K,KAAK2T,IAAIC,KAAK,WAAI5T,KAAKikF,IAAG,WAE3C,GAAI0P,EACFmnF,EAAS9oI,YACJ,CACL,IAAM2mI,EAAW34K,KAAKiY,OAAO0gK,SAC7BA,GAAYmC,EAAS9nF,OAAO2lF,E,CAEhC,EAMA,YAAAgC,YAAA,WACE,IAAM12F,EAAMjkF,KAAKikF,IACjBjkF,KAAK2T,IAAIC,KAAK,WAAIqwE,EAAG,cAAaoI,YAAY,UAAGpI,EAAG,aACtD,EAEA,YAAAu2F,aAAA,sBACQvgK,EAAWvF,SAASisB,yBACpB8wD,EAASzxF,KAAK2T,IAAIC,KAAK,WAAI5T,KAAKikF,IAAG,WACzCwN,EAAOz/C,QACPhyC,KAAKk7K,iBAAiBl7K,KAAKiF,WAAWtE,QACtCX,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKg2K,SAASh2K,EAAO8U,EAArB,IAC9Bw3E,EAAOuB,OAAO/4E,EAChB,EAEA,YAAApG,OAAA,WACE,IAAMunK,EAAap7K,KAAK6C,QAAQuzI,GAAGviI,SAASO,GAK5C,OAJApU,KAAK2T,IAAIq+B,QACThyC,KAAK2T,IAAIq/E,OAAOooF,GAAYpoF,OAAOhzF,KAAK08G,SAAS18G,OACjDA,KAAKoU,GAAGQ,UAAY,UAAG5U,KAAKujF,KAAI,iBAChCvjF,KAAKw6K,eACEx6K,IACT,EACF,EAnMA,CAAwC,M,YAqMxCq7K,GAAWh7K,UAAUqJ,OAAS,CAE5BylE,OAAQ,gB,ooBC9LV,eAqCE,WAAYtlE,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAK,KACX,EAAKhH,QAAUgH,EACf,IAAMk1E,EAAIl1E,EAAKoO,QAAU,CAAC,EAC1B,EAAKxY,OAASoK,EAAKpK,OACnB,EAAKwY,OAAS8mE,EAEd,EAAKmE,GAAK,EAAKjrE,OAAOirE,GACtB,EAAKe,IAAMlF,EAAEmF,aAAe,GAC5B,EAAKX,KAAOxE,EAAEoF,cAAgB,GAC9B,EAAK59D,OAAS,EAAK1jB,QAAQm4K,kBAAoB,CAAC,EAChD,EAAKM,SAAW,EAAKr3F,IAAM,aAC3B,EAAK5S,cAA+BhsE,IAApB05E,EAAEw8F,cAA8Bx8F,EAAEw8F,eAAiBx8F,EAAEqxE,SAAWrxE,EAAEg6F,cAClF,EAAKF,iBAAgCxzK,IAAlB05E,EAAE85F,aAA4B95F,EAAE85F,YACnD,IAAMtiC,EAAax3D,EAAEw3D,W,OAEjBA,EACF,EAAKA,WAAaA,EAAWxqI,KAAK,IACxBgzE,EAAEqxE,QAAUrxE,EAAEg6F,gBACxB,EAAKxiC,WAAailC,EAAiBzC,eAGrC,EAAK5kK,iB,CACP,CA2UF,OAvY8C,QAa5C,YAAAuoG,SAAA,SAAS,G,IAAEz4B,EAAG,MAAEhmE,EAAK,QAAEq9J,EAAQ,WAAEjqG,EAAQ,WAAEwnG,EAAW,cACpD,OAAO3iG,EAAI,8VAEO,WAAe,yFAIb,oEAGc,eACG,kFARtB+N,EAAahmE,EAIhBq9J,EAGJjqG,EAAW,WAAa,GACxBwnG,EAAc,WAAa,GAKrC,EAEA,YAAAnvK,OAAA,WACE,MAAO,CACL,sBAAuB,aAE3B,EA+BA,YAAA+xK,cAAA,WACU,IAAAh8K,EAAWO,KAAI,OACvBP,GAAUA,EAAOi8K,SAAS,qBAC5B,EAOA,YAAAC,YAAA,SAAYv3K,GACJ,IAAEuP,EAAgB3T,KAAb,IAAEP,EAAWO,KAAL,OACnBP,GAAUA,EAAOi8K,SAAS,mBAAoBt3K,GAC9C,IAAMk9B,EAAQ3tB,EAAIC,KAAK,SACvB0tB,GAASA,EAAMr7B,IAAI,GACrB,EAOA,YAAA21K,cAAA,SAAczpE,GACJ,IAAA1yG,EAAWO,KAAI,OACvB0gJ,QAAQ51I,MAAMqnG,GACdnyG,KAAK27K,YAAYxpE,GACjB1yG,GAAUA,EAAOi8K,SAAS,qBAAsBvpE,EAClD,EAOA,YAAA0pE,iBAAA,SAAiB96J,EAAcwuH,GACvB,IACF14D,EADE,EAA6B72E,KAA3BP,EAAM,SAAEwY,EAAM,SAAEsO,EAAM,SAE9B,IACEswD,EAAuB,iBAAT91D,EAAoBnI,KAAK3L,MAAM8T,GAAQA,C,CACrD,MAAO7V,GACP2rE,EAAO91D,C,CAGTthB,GAAUA,EAAOi8K,SAAS,wBAAyB7kG,GAE/C5+D,EAAOsrF,SAAWh9E,GACpBA,EAAOjiB,IAAIuyE,EAAKn+D,KAAM,CAAEjV,GAAI,IAG9BzD,KAAK27K,YAAY56J,GACjBwuH,SAAAA,EAAM14D,EACR,EAQA,YAAA0/D,WAAA,SAAWrrI,EAAcqkI,GAAzB,WAEQx8E,EAAQ7nD,EAAE8nD,aAAe9nD,EAAE8nD,aAAaD,MAAQ7nD,EAAEqb,OAAOwsC,MACvD96C,EAAWjY,KAAI,OACfg5K,EAAiB/gK,EAAM,aAG/B,IAA6B,KADA+gK,GAAgBA,EAAajmH,IAC1D,CAEA,IAAMj2C,EAAO,IAAIi0I,SACTv4I,EAAsCP,EAAM,OAApC6gK,EAA8B7gK,EAAM,YAAvB21I,EAAiB31I,EAAM,aAEpD,IAAK,IAAIuC,KAAShC,EAChBsE,EAAKk2E,OAAOx4E,EAAOhC,EAAOgC,IAG5B,GAAIxa,KAAK64K,YACP,IAAK,IAAIh5K,EAAI,EAAGA,EAAIkzD,EAAMpyD,OAAQd,IAChCid,EAAKk2E,OAAO,UAAG/6E,EAAO2gK,WAAU,MAAM7lH,EAAMlzD,SAErCkzD,EAAMpyD,QACfmc,EAAKk2E,OAAO/6E,EAAO2gK,WAAa7lH,EAAM,IAGxC,IAAMzjD,EAAM2I,EAAOm4I,OACb5C,EAAUv1I,EAAOu1I,QACjBqD,EAAU,mBAMhB,QAJ+B,IAApBrD,EAAQqD,KACjBrD,EAAQqD,GAAW,kBAGjBvhJ,EAAK,CACPtP,KAAKy7K,gBACL,IAAM7qB,EAAY,CAChB3hJ,OAAQ,OACR4+I,YAAa51I,EAAO41I,aAAe,UACnCL,QAAO,EACP1wI,KAAI,GAEAg/J,GAAkBluB,aAAY,EAAZA,EAAegD,KAAcA,EAMrD,OALoBkoB,EAChBA,EAAYxpK,EAAKwsK,GACjB,GAAMxsK,EAAKwsK,GAAiB1tB,MAAK,SAAChqJ,GAChC,OAA4B,IAA1BA,EAAIm6F,OAAS,IAAO,GAAUn6F,EAAI2c,OAAS3c,EAAI2c,OAAOqtI,MAAK,SAACrtI,GAAiB,OAAA8tI,QAAQ14I,OAAO4K,EAAf,GAA/E,KAGHqtI,MAAK,SAACrtI,GAAiB,SAAK86J,iBAAiB96J,EAAMwuH,EAA5B,IACvBmf,OAAM,SAACv8C,GAAe,SAAKypE,cAAczpE,EAAnB,G,CAzCe,CA2C5C,EAMA,YAAA4pE,SAAA,WACE,IAAIC,EAAOh8K,KAEX,IAAKA,KAAKi8K,WAAY,CACpBj8K,KAAKi8K,WAAaj8K,KAAK2T,IAAIC,KAAK,QAAQjQ,IAAI,GAC5C,IAAM,EAAS3D,KAAKi8K,WAEhB,cAAe,IACjBj8K,KAAKi8K,WAAWC,WAAa,WAE3B,OADA,EAAOtnK,UAAYonK,EAAK/3F,IAAM,SACvB,CACT,EACAjkF,KAAKi8K,WAAWE,YAAc,WAE5B,OADA,EAAOvnK,UAAY,IACZ,CACT,EACA5U,KAAKi8K,WAAWG,OAAS,SAAU5vK,GACjC,EAAOoI,UAAY,GACnBpI,EAAG+gB,iBACHyuJ,EAAKzlC,WAAW/pI,EAElB,E,CAGN,EAEA,YAAA6vK,aAAA,SAAa7vK,GAAb,WACM8vK,EAAW,EACTv9F,EAAI/+E,KAAKiY,OACTirE,EAAK12E,EAAGrH,MACRo3K,EAAO/vK,EAAG4H,GACVmuE,EAASW,EAAG2T,OACZrH,EAAUtM,EAAGsB,OAAOI,UACpBrB,EAAOvjF,KAAKujF,KACZi5F,EAAa,UAAGj5F,EAAI,mBACpBk5F,EAAc,UAAGl5F,EAAI,YACrBm5F,EAAmB,WACvBH,EAAK3nK,UAAY2nK,EAAK3nK,UAAUnF,QAAQ+sK,EAAY,IAAIl0F,OACxDg0F,EAAW,CACb,EACM/nH,EAAa,WAKjB,OAJK+nH,IACHC,EAAK3nK,WAAa,WAAI4nK,GACtBF,EAAW,IAEN,CACT,EACMK,EAAc,WAElB,OADAD,KACO,CACT,EACM7pH,EAAS,SAAC3nD,GAMd,GALAwxK,IACAxxK,EAAEqiB,iBACFriB,EAAEmjB,kBACF,EAAKkoH,WAAWrrI,GAEZ6zE,EAAEo6F,kBAAoB52F,EAAQ,CAChC,IAAMh8D,EAASg8D,EAAOyG,cACtBzG,EAAOqT,WAAW,cAAe,CAC/BrvE,OAAM,EACN+pE,SAAQ,WACN/N,EAAOqK,MAAMxvE,QACbmlE,EAAOyO,aAAaG,UAAU,KAChC,G,CAIJ,OAAO,CACT,EAEA3kF,EAAGmH,IAAIq/E,OAAO,uBAAeypF,EAAW,cAAK19F,EAAEq6F,gBAAe,WAC9DsD,IAEI,cAAeH,GACjB,CAACA,EAAM/sF,GAAS/5E,SAAQ,SAAAgxE,GACtBA,EAAKy1F,WAAa3nH,EAClBkyB,EAAK01F,YAAcQ,EACnBl2F,EAAK21F,OAASvpH,CAChB,GAEJ,EAEA,YAAAh/C,OAAA,WACQ,MAAmB7T,KAAjB2T,EAAG,MAAEswE,EAAG,MAAEf,EAAE,KAYpB,OAXAvvE,EAAIuiE,KACFl2E,KAAK08G,SAAS,CACZz+F,MAAOilE,GAAMA,EAAG5vB,EAAE,4BAClBgoH,SAAUt7K,KAAKs7K,SACfjqG,SAAUrxE,KAAKqxE,SACfwnG,YAAa74K,KAAK64K,YAClB50F,IAAG,KAGPjkF,KAAK+7K,WACLpoK,EAAInM,KAAK,QAASy8E,EAAM,iBACjBjkF,IACT,EAEO,EAAA+4K,cAAP,SAAqB7tK,EAAcqkI,GAAnC,WAGQx8E,EAAQ7nD,EAAE8nD,aAAe9nD,EAAE8nD,aAAaD,MAAQ7nD,EAAEqb,OAAOwsC,MACzD4/F,EAAgC,CAAEj6I,KAAM,IAG9C,GAAKw6C,WAAL,CASA,IAHA,IAAM0pH,EAAW,GACXC,EAAkB,e,WAEbrpH,GAGT,IAAM87F,EAAU,IAAIT,SAAQ,SAAC14C,EAAShgG,GACpC,IAAMu9C,EAAS,IAAIR,WACnBQ,EAAOp2C,iBAAiB,QAAQ,SAAA3K,GAC9B,IAAInQ,EACEmH,EAAO6pD,EAAK7pD,KAGZ0K,EAAQwoK,EAAgBtiK,KAAKi5C,EAAKhxD,MA4BxC,GAAa,WA1BXA,EADE6R,EACKA,EAAM,GAENm/C,EAAKhxD,MAwBQ,CACpB,IAAM,EAAO,CACXka,IAAKg3C,EAAOxmD,OACZvD,KAAI,EACJnH,KAAI,EACJswB,OAAQ,EACRqT,MAAO,GAGH,EAAQ,IAAI22I,MAClB,EAAMx/J,iBAAiB,SAAS,SAAAxS,GAC9BqL,EAAOrL,EACT,IACA,EAAMwS,iBAAiB,QAAQ,WAC7B,EAAKwV,OAAS,EAAMA,OACpB,EAAKqT,MAAQ,EAAMA,MACnBgwE,EAAQ,EACV,IAEA,EAAMz5F,IAAM,EAAKA,G,MAGjBy5F,EAFS3zG,EAED,CACNka,IAAKg3C,EAAOxmD,OACZvD,KAAI,EACJnH,KAAI,GAIEkxD,EAAOxmD,OAEnB,IACAwmD,EAAOp2C,iBAAiB,SAAS,SAAAxS,GAC/BqL,EAAOrL,EACT,IACA4oD,EAAOp2C,iBAAiB,SAAS,SAAAxS,GAC/BqL,EAAO,UACT,IAEAu9C,EAAOqpH,cAAcvpH,EACvB,IAEAopH,EAASj4K,KAAK2qJ,E,EAhFG,MAAAv8F,EAAA,eAAO,C,EAAX,K,CAmFf,OAAO87F,QAAQztJ,IAAIw7K,GAAUxuB,MAC3B,SAAA11I,GACEi6I,EAASj6I,KAAOA,EAEhB,EAAKmjK,iBAAiBlpB,EAAUpjB,EAClC,IACA,SAAAzkI,GAEE,EAAK8wK,cAAc9wK,EACrB,G,CAnGA9K,KAAK47K,cAAc,IAAI7pK,MAAM,mDAqGjC,EACF,EAvYA,CAA8C,M,29BCqDjC,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChB,GAAW,UAAG,GAAK,UACnB,GAAW,UAAG,GAAK,UACnB,GAAQ,UAAG,GAAK,OAChB,GAAW,UAAG,GAAK,UACnB,GAAiB,UAAG,GAAQ,WAC5B,GAAW,UAAG,GAAK,UACnBirK,GAAS,UAAG,GAAK,QACjBC,GAAU,UAAG,GAAK,SAClBC,GAAW,UAAG,GAAK,UACnBC,GAAgB,UAAGD,GAAQ,UAC3BE,GAAc,UAAGF,GAAQ,QACzBG,GAAgB,UAAGH,GAAQ,UAC3BI,GAAc,UAAGJ,GAAQ,aAChCK,GAAW,cACX,GAAS,CACbn8K,IAAK,GACL8U,OAAQ,GACR2jC,OAAQ,GACRv1C,IAAK,GACLc,OAAQ,GACR+gH,aAAc,GACdt1B,OAAQ,GACR1zE,KAAM6/J,GACN5/J,MAAO6/J,GACPO,YAAaL,GACbM,UAAWL,GACXM,YAAaL,GACbM,eAAgBL,IAalB,eAcE,WAAYp6F,GAAZ,MAEE,YAAMA,EAAI,eAAgB,IAAI,GAAO,GAAIA,GAAK,GAAQ,KAAS,KAfjE,EAAAwiC,WAAa,SACb,EAAA6zD,MAAQ,GACR,EAAAljC,OAAS,GAcD,MAAkB,EAAhBj1I,EAAG,MAAE6W,EAAM,SAEnB,EAAK2lK,UAAY,IAAI,GAAO,IAE5B,IAAMr6F,EAAOtrE,EAAOksE,aAWpB,OAVIZ,IACFtrE,EAAOisE,YAAc,UAAGX,GAAI,OAAGtrE,EAAOisE,cAIxC9iF,EAAIqG,GAAG,OAAO,SAACtC,GAAiB,SAAKkgJ,gBAAgB/gJ,IAAIa,EAAzB,IAChC/D,EAAIqG,GAAG,UAAU,SAACtC,GAAiB,SAAKkgJ,gBAAgBjgJ,OAAOD,EAA5B,IAEnC,EAAKihH,cAAe,IAAA9+B,WAAS,WAAM,SAAKkK,aAAL,GAAoB,GAEhD,CACT,CAqVF,OAtX0C,QAmCxC,YAAAkqF,SAAA,SAASlvK,G,YAAY,qDACnB,EAAAxM,KAAKkjF,IAAGp/E,QAAO,YAAC0I,GAAOkM,GAAI,KAC3B,EAAA1Y,KAAK2rF,UAAS7nF,QAAO,YAAC0I,GAAOkM,GAAI,GACnC,EAEA,YAAA84E,YAAA,WACE,IAAMkzD,EAAM1kJ,KAAK2kJ,iBACX9zD,EAAS7wF,KAAK4mF,YAAYiK,QAE3B6zD,EAAIjkG,WAAeowC,EAAe1zE,OAGvCnd,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ7wF,KAAK8wF,eAC3C,EAEA,YAAAA,aAAA,sBACQ4zD,EAAM1kJ,KAAK2kJ,iBACjB,MAAO,CACL/zD,GAAI5wF,KACJmd,KAAMnd,KAAKg3K,SACXvlF,OAAQzxF,KAAK2rF,SAASnoF,OACtBkoB,MAAOg5H,EAAIh5H,OAAS,GACpB+0B,UAAWikG,EAAIjkG,UACfrjC,MAAO,WAAM,SAAKA,OAAL,EACbhY,OAAQ,SAACoxI,EAAuB3sI,GAA+B,SAAKzE,OAAOoxI,EAAO3sI,EAAnB,EAC/DqM,OAAQ,SAACsgI,EAAcC,GACrB,IAAMryI,EAAM,EAAKE,IAAIkyI,IACrB,IAAAn0I,YAAWqiJ,EAAIxuI,SAAWwuI,EAAIxuI,OAAO9R,EAAKqyI,EAC5C,EAEA5zI,QAAS6hJ,EAAI7hJ,SAAW,CAAC,EAE7B,EAsBA,YAAAsa,KAAA,SAAKta,QAAA,IAAAA,IAAAA,EAAA,IACS7C,KAAKkjF,GAAGiC,SAChBjD,IAAIq7F,GAAU,IAChB7xJ,MAAO,CAAC,SACRxV,OAAQ,WAAO,GACZrT,GAEP,EAOA,YAAAua,MAAA,WACcpd,KAAKkjF,GAAGiC,SAChBxnE,KAAK4/J,GACX,EAQA,YAAAvG,OAAA,WACE,IAAMthH,EAAM11D,KAAKkjF,GAAGiC,SACpB,SAASzvB,aAAG,EAAHA,EAAK4/B,SAASioF,IACzB,EAqBA,YAAAj5K,IAAA,SAAIkyI,EAAsD3sI,GAMxD,YANwD,IAAAA,IAAAA,EAAA,SAElC,IAAXA,EAAKpG,KACdoG,EAAKpG,GAAK,GAGLzD,KAAKoB,IAAIkD,IAAIkyI,EAAO3sI,EAC7B,EASA,YAAAlG,IAAA,SAAI+Y,GACF,OAAO1c,KAAKoB,IAAIsC,MAAM,CAAEgZ,IAAG,IAAI,IAAM,IACvC,EAMA,YAAAivE,OAAA,WACE,OAAO3rF,KAAKoB,GACd,EAMA,YAAAikJ,cAAA,WACE,OAAOrlJ,KAAK49K,SACd,EAYA,YAAAx4K,OAAA,SAAOoxI,EAAuB3sI,GAC5B,OAAO7J,KAAKkmH,SAASswB,EAAO3sI,EAC9B,EAEA,YAAA0yF,MAAA,WACE,OAAOv8F,KAAKylH,gBACd,EAEA,YAAApiB,KAAA,SAAK3qF,GACH,OAAO1Y,KAAK2lH,gBAAgBjtG,EAC9B,EAMA,YAAAm2E,aAAA,W,MAEE,OADY7uF,KAAK2kJ,iBACNlkG,YAAoB,QAAP,EAAAzgD,KAAK4wF,UAAE,eAAEx8E,GACnC,EAOA,YAAA2mK,YAAA,W,MACE,OAAc,QAAP,EAAA/6K,KAAK4wF,UAAE,eAAEx8E,GAAG8rB,cAAc,mBACnC,EAiBA,YAAArsB,OAAA,SAAOgqK,GACL,IAAI79K,KAAK4mF,YAAYiK,OAArB,CACA,IAAM00D,EAAWs4B,GAAS79K,KAAK2rF,SAASnoF,OAExC,IAAKxD,KAAK4wF,GAAI,CACZ,IAAM5vF,EAAMhB,KAAK89K,eACjB98K,EAAIo1I,GAAKp2I,KAAKs2I,eACdt2I,KAAK4wF,GAAK,IAAI,GAAW,MAAK5vF,IAC9BhB,KAAK4wF,GAAG/8E,Q,CAIV,OADA7T,KAAK49K,UAAU13K,MAAMq/I,GACdvlJ,KAAK6uF,cAXuB,CAYrC,EAEA,YAAAivF,aAAA,WACE,MAAO,CACL74K,WAAYjF,KAAK49K,UACjB5C,iBAAkBh7K,KAAKoB,IACvB6W,OAAQjY,KAAKiY,OACbxY,OAAQO,KACRo2I,QAAI/wI,EAER,EAiBA,YAAAg3I,QAAA,SAAQ/xI,EAAYw2G,GAClB9gH,KAAK2rF,SAAS0wD,QAAQ/xI,EAAIw2G,EAC5B,EAQA,YAAAkH,QAAA,SAAQ19G,GACN,OAAOtK,KAAK2rF,SAASq8B,QAAQ19G,EAC/B,EAOA,YAAAymI,SAAA,WACE,OAAO/wI,KAAK2rF,SAASolD,UACvB,EAIA,YAAAsqC,WAAA,WACE,OAAOr7K,KAAK4wF,EACd,EAEA,YAAA0lD,aAAA,WAIE,OAHKt2I,KAAKo2I,KACRp2I,KAAKo2I,GAAK,IAAIE,GAAiBt2I,KAAK89K,iBAE/B99K,KAAKo2I,EACd,EAEA,YAAA9qB,OAAA,sBACEtrH,KAAK2rF,SAASzlF,MAAMlG,KAAKiY,OAAOw5E,QAC1B,IAAEvO,EAAeljF,KAAb,GAAE0J,EAAW1J,KAAL,OAClBkjF,EAAGz7E,GAAG,cAAO81K,KAAY,WAAM,SAAK7B,SAAShyK,EAAOyT,KAArB,IAC/B+lE,EAAGz7E,GAAG,eAAQ81K,KAAY,WAAM,SAAK7B,SAAShyK,EAAO0T,MAArB,GAClC,EAEA,YAAA62H,WAAA,SAAW8pC,G,MACT/9K,KAAKiY,OAAOihK,WAAmB,QAAP,EAAAl5K,KAAKo2I,UAAE,SAAEimC,aAAa0B,GAChD,EAOA,YAAA5sF,UAAA,SAAU3/E,GACRxR,KAAK49K,UAAUr3J,OAAS/U,CAC1B,EAOA,YAAA8+E,SAAA,SAASjqE,GACPrmB,KAAK49K,UAAUttF,SAAWjqE,CAC5B,EAOA,YAAA+qE,QAAA,SAAQ7f,GAENvxE,KAAKiY,OAAOm5E,QAAU7f,CACxB,EAOA,YAAA8f,WAAA,SAAW9f,GAETvxE,KAAKiY,OAAOo5E,WAAa9f,CAC3B,EAEA,YAAA+f,YAAA,SAAYznF,GACV,YADU,IAAAA,IAAAA,EAAA,IACF7J,KAAKklJ,KAAO,SACdllJ,KAAKklJ,MAAQ,CAAC,GACfr7I,EAEP,EAEA,YAAA86I,eAAA,SAAe96I,GACb,YADa,IAAAA,IAAAA,EAAA,IACN7J,KAAKklJ,MAAQ,CAAC,CACvB,EAEA,YAAA71I,QAAA,W,QACErP,KAAKoB,IAAIkK,gBACTtL,KAAKoB,IAAI8E,QACTlG,KAAK49K,UAAUtyK,gBACftL,KAAK49K,UAAU13K,QACR,QAAP,EAAAlG,KAAKo2I,UAAE,SAAEhxI,SACF,QAAP,EAAApF,KAAK4wF,UAAE,SAAExrF,SACTpF,KAAKklJ,KAAO,CAAC,CACf,EACF,EAtXA,CAA0Cp5B,G,YC7G1C,IAAMkyD,GAAiB,CAAEjvG,YAAa,iBCgDtC,SAT2B,CACzB41D,OAAQ,KACRs5C,eAAgB,KAChBC,cAAc,EACd12F,OAAO,EACP22F,SAAU,CAAEC,GD1Cd,CACEh7D,aAAc,CACZi7D,UAAW,YACXC,SAAU,+BACVptF,WAAY,eACZqtF,YAAa,sCAIfz6D,aAAc,CACZ06D,OAAQ,CACN,EAEF96B,WAAY,CACV,GAGJlgC,cAAe,CACb15G,MAAO,CACL,GAAI,MACJ88B,QAAS,OACT7lB,KAAM,OACN09J,QAAS,UACTC,MAAO,QACPC,MAAO,QACPjyG,MAAO,QACPymC,KAAM,OACNruG,IAAK,MACLuqG,MAAO,aACPD,MAAO,aACPD,MAAO,aACPH,MAAO,QACP4vE,IAAK,YACLC,KAAM,eAGVj7D,cAAe,CACbgJ,OAAQ,SACRZ,QAAS,CACP8yD,QAAS,UACTC,OAAQ,SACRC,gBAAiB,mBACjBC,eAAgB,oBAGpB1sF,OAAQ,CACNtyB,QAAS,CACPi/G,OAAQ,CACNC,QAAS,UACTC,WAAY,aACZ,gBAAiB,kBACjB,kBAAmB,YACnB,UAAW,qBACX,UAAW,WACX,cAAe,qBACf,cAAe,iBAIrBz7D,gBAAiB,CACfj3C,MAAO,UACP1Y,SAAU,WACVqrH,WAAY,YACZ/rG,OAAQ,CACNgsG,MAAO,QACPpgI,OAAQ,QACR,kBAAmB,aAGvB2kE,aAAc,CACZ7xE,MAAO,+CACPutI,MAAO,QACPC,WAAY,SACZC,QAAS,CACPC,QAAS,UACTC,OAAQ,SACRC,WAAY,aACZC,YAAa,cACbnmB,MAAO,QACPomB,KAAM,OACNC,UAAW,aAIbnuJ,WAAY,CACV,gBAAiB,IACjB,gBAAiB,IACjB,mBAAoB,OACpB,oBAAqB,QACrB,eAAgB,IAChB,eAAgB,IAChB,kBAAmB,OACnB,oBAAqB,SACrB,mBAAoB,QACpB,kBAAmB,OACnB,iBAAkB,MAClB,mBAAoB,QACpB,oBAAqB,SACrB,kBAAmB,OACnB,kBAAmB,MACnB,oBAAqB,QACrB,qBAAsB,SACtB,mBAAoB,OACpB,mBAAoB,QACpB,mBAAoB,QACpB,mBAAoB,QACpB,6BAA8B,WAC9B,8BAA+B,YAC/B,iCAAkC,eAClC,gCAAiC,cACjC,qBAAsB,WACtB,qBAAsB,WACtB,qBAAsB,WACtB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,0BAA2B,WAC3B,0BAA2B,WAC3B,iCAAkC,SAClC,uBAAwB,QACxB,wBAAyB,SACzB,0BAA2B,WAC3B,4BAA6B,aAC7B,sBAAuB,SAU3BmyF,aAAc,CACZ/xE,MAAO,+CACP06B,MAAO,qBACP45D,OAAQ,CAENk4C,OAAQ,CAIN,EAGFx3K,WAAY,CACVsD,GAAI0zK,GACJxoH,IAAKwoH,GACL//J,MAAO+/J,GACPxiK,KAAM,CAAEuzD,YAAa,2BAGvBlsE,QAAS,CACP0jB,OAAQ,CACNy5J,MAAO,cACPC,OAAQ,iBAKhB38D,eAAgB,CACd48D,QAAS,6CCtHXC,iBAAa96K,G,2fCTf,eAME,WAAY69E,GAAZ,MACE,YAAMA,EAAI,OAAQ,KAAS,KACrB5+E,EAAM,EAAK2T,OAAOkoK,Y,OACxB77K,GAAO,EAAK87K,YAAY97K,GAEpB,EAAK2T,OAAOimK,eACd,EAAKjmK,OAAO0sH,OAAS,EAAK07C,c,CAE9B,CAkKF,OAhLwC,QA8BtC,YAAAC,UAAA,SAAU37C,GACF,IAAEzhD,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,OACZugL,EAAQ,CAAE74K,MAAOi9H,EAAQ67C,UAAWvoK,EAAO0sH,QAGjD,OAFAzhD,GAAMA,EAAGp/E,QAAQ,cAAey8K,GAChCtoK,EAAO0sH,OAASA,EACT3kI,IACT,EAMA,YAAAygL,UAAA,WACE,OAAOzgL,KAAKiY,OAAO0sH,MACrB,EAcA,YAAA+7C,YAAA,SAAYC,EAAc92K,QAAA,IAAAA,IAAAA,EAAA,IACxB,IAAMs0K,EAAWn+K,KAAKiY,OAAOkmK,SAE7B,OADAwC,IAASxC,EAASwC,IAAS3gL,KAAK4gL,OAAO,WAAID,EAAI,yBAAyB92K,GACjE82K,EAAOxC,EAASwC,GAAQxC,CACjC,EAcA,YAAA0C,YAAA,SAAYC,GACJ,IAAE59F,EAAeljF,KAAb,GAGV,OAHuBA,KAAL,OACXm+K,SAAW2C,EAClB59F,GAAMA,EAAGp/E,QAAQ,cAAeg9K,GACzB9gL,IACT,EAcA,YAAAogL,YAAA,SAAYU,GACF,IAAA59F,EAAOljF,KAAI,GACXm+K,EAAan+K,KAAKiY,OAAM,SAIhC,OAHAirE,GAAMA,EAAGp/E,QAAQ,WAAYg9K,GAC7B9gL,KAAK6gL,aAAY,IAAAvsE,WAAU6pE,EAAW2C,IAE/B9gL,IACT,EAqBA,YAAAszD,EAAA,SAAEjyD,EAAawI,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAAoO,EAAWjY,KAAI,OACjBwa,EAAQ3Q,EAAK2O,QAAU,CAAC,EACxBmsH,EAAS96H,EAAK5H,GAAKjC,KAAKygL,YACxBM,EAAYl3K,EAAKm3K,MAAQ/oK,EAAOgmK,eAClC/wK,EAASlN,KAAKihL,QAAQ5/K,EAAKsjI,EAAQ96H,GAQvC,OALKqD,IAAQA,EAASlN,KAAKihL,QAAQ5/K,EAAK0/K,EAAWl3K,KAElDqD,GAAUlN,KAAK4gL,OAAO,WAAIv/K,EAAG,oCAA4BsjI,EAAM,UAAU96H,GAC1EqD,EAASA,IAAU,IAAAgE,UAAShE,GAAUlN,KAAKkhL,WAAWh0K,EAAQsN,GAAStN,CAGzE,EAEA,YAAAmzK,WAAA,WACE,IAAMc,GAAO,IAAA3iF,WAAYz+F,OAAOsiB,WAAc,CAAC,EAEzCs+J,EAAOQ,EAAIC,UAAYD,EAAIE,aACjC,OAAOV,EAAOA,EAAK12K,MAAM,KAAK,GAAK,IACrC,EAEA,YAAAi3K,WAAA,SAAWt3J,EAAapR,GACtB,IAAM62H,EAAM,IAAI/0H,OAAO,iBAAkB,KACzC,OAAOsP,EAAIna,QAAQ4/H,GAAK,SAAC79H,EAAGvL,GAAQ,OAAAuS,EAAOvS,IAAQ,EAAf,IAAmBqiF,MACzD,EAEA,YAAA24F,QAAA,SAAQ5/K,EAAasjI,EAAgB96H,QAAA,IAAAA,IAAAA,EAAA,IACnC,IAAMy3K,EAASthL,KAAK0gL,YAAY/7C,EAAQ96H,GAGxC,GAAKy3K,EAAL,CAEA,IAAIp0K,EAASo0K,EAAOjgL,GAUpB,OAPK6L,GAAU7L,EAAIwD,QAAQ,KAAO,IAChCqI,EAAS7L,EAAI4I,MAAM,KAAK0L,QAAO,SAACgrK,EAAMt/K,GACpC,KAAI,IAAAuoF,aAAY+2F,GAChB,OAAOA,EAAKt/K,EACd,GAAGigL,IAGEp0K,CAZY,CAarB,EAEA,YAAA0zK,OAAA,SAAOh3J,EAAa/f,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAEq5E,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,QACjB6J,EAAK29E,OAASvvE,EAAOuvE,QAAUtE,GAAMA,EAAGuC,WAAW77D,EACtD,EAEA,YAAAva,QAAA,WAAW,EACb,EAhLA,CAAwC,G,qvBC7BlC,GAAO,WAAO,EAkDpB,4B,8CAivCA,QAjvCoC,QAsDlC,YAAA9H,WAAA,SAAW+lD,QAAA,IAAAA,IAAAA,EAAA,IACTttD,KAAKstD,IAAMA,GAAO,CAAC,GACnB,IAAAg1B,SAAQtiF,KAAM,YAAa,SAAU,UAAW,WAAY,eAAgB,kBAC5E,IAAIm2B,EAAIm3B,GAAO,CAAC,EAChBttD,KAAKuhL,IAAM,EACXvhL,KAAKwhL,IAAM,EACXxhL,KAAKyhL,aAAetrJ,EAAEsrJ,cAAgB,GAEtC,IAAIrtK,EAAK+hB,EAAEsqB,UACXzgD,KAAKoU,GAAmB,iBAAPA,EAAkBM,SAASwrB,cAAc9rB,GAAOA,EACjEpU,KAAK2T,KAAM,gBAAE3T,KAAKoU,IAElBpU,KAAKg/F,aAAe7oE,EAAE6oE,cAAgB,MACtCh/F,KAAKi/F,QAAU9oE,EAAE8oE,SAAW,MAC5Bj/F,KAAK4hD,UAAYzrB,EAAEyrB,YAAa,EAChC5hD,KAAKm/F,SAAWhpE,EAAEgpE,OAClBn/F,KAAKikF,IAAM9tD,EAAE8tD,KAAO,GACpBjkF,KAAKujF,KAAOptD,EAAEotD,MAAQ,GACtBvjF,KAAK0hL,YAAcvrJ,EAAEurJ,aAAe1hL,KAAKikF,IAAM,UAC/CjkF,KAAK0jF,QAAUvtD,EAAEutD,SAAW,GAC5B1jF,KAAK2vF,UAAYx5D,EAAEw5D,UACnB3vF,KAAK8vH,aAAe35F,EAAE25F,aACtB9vH,KAAK4jF,MAAQztD,EAAEytD,MACf5jF,KAAKurB,UAAY4K,EAAE5K,WAAa,IAChCvrB,KAAKqwF,UAAYl6D,EAAEkmE,OACnBr8F,KAAK2hL,SAAWxrJ,EAAEwrJ,WAAY,EAC9B3hL,KAAKw0K,qBAAuBr+I,EAAEq+I,mBAC9Bx0K,KAAK01J,IAAMv/H,EAAE2oE,OAEb9+F,KAAKk/F,QAAU/oE,EAAE+oE,SAAW,EAC5Bl/F,KAAK4hL,OAASzrJ,EAAEiR,WAAa,EAC7BpnC,KAAK6hL,QAAU1rJ,EAAEiZ,YAAc,EAC/BpvC,KAAK0U,SAAWyhB,EAAEzhB,UAAYA,SAC9B1U,KAAKkjF,GAAK/sD,EAAE+sD,GACZljF,KAAKo/F,iBAAmBjpE,EAAEipE,eAC1Bp/F,KAAK8hL,aAAe3rJ,EAAEy+I,iBACtB50K,KAAKq/F,MAAQlpE,EAAEkpE,MAEXr/F,KAAKkjF,IAAMljF,KAAKkjF,GAAGz7E,KACrBzH,KAAKkjF,GAAGz7E,GAAG,sBAAuBzH,KAAKg0H,cACvCh0H,KAAKg0H,eAET,EAEA,YAAA+tD,SAAA,WACE,OAAO,IAAA70K,QAAOlN,KAAM,UAAY,CAClC,EAEA,YAAA6kG,eAAA,SAAejK,GAGb,GAFIA,IAAM56F,KAAKoU,GAAKwmF,IAEf56F,KAAKoU,GAAI,CACZ,IAAIA,EAAKpU,KAAKstD,IAAI7M,UAClBzgD,KAAKoU,GAAmB,iBAAPA,EAAkBM,SAASwrB,cAAc9rB,GAAOA,EACjEpU,KAAK2T,KAAM,gBAAE3T,KAAKoU,G,CAGpB,OAAOpU,KAAKoU,EACd,EAEA,YAAA4tK,aAAA,SAAa5tK,GACX,IAAM8uE,EAAKljF,KAAKkjF,GACV6wD,EAAQ3/H,EAAKA,EAAG8b,cAAgBgzD,aAAE,EAAFA,EAAIsB,OAAOI,UAAU10D,cACrDgrE,EAAO,CAACxmF,UAEd,OADAq/H,GAAS74C,EAAKv2F,KAAKovI,GACZ74C,CACT,EAKA,YAAA84B,aAAA,W,MACQ74F,GAAgB,QAAP,EAAAn7B,KAAKkjF,UAAE,eAAEv/E,IAAI,kBAAmB,CAAC,EAChD3D,KAAK4hL,OAASzmJ,EAAO2N,IACrB9oC,KAAK6hL,QAAU1mJ,EAAOzL,IACxB,EAMA,YAAAohG,eAAA,SAAe/xG,UACN/e,KAAKiiL,UACZjiL,KAAKkiL,YAAcnjK,CACrB,EAEA,YAAAojK,6BAAA,SAA6Bj3K,GACnB,IAAAg4E,EAAOljF,KAAI,GACnB,GAAKkjF,EAAL,CACA,IAAMsB,EAAStB,EAAGv/E,IAAI,UAChBy+K,EAAY59F,EAAOi1C,cACrBt1G,EAAQ,KAEZ,GAAIi+J,EAAUC,oBAAqB,CAEjC,IAAMC,GAAS,IAAAl7E,iBAAgBl8F,GAC/BiZ,EAAQi+J,EAAUC,oBAAoBC,EAAOvyI,QAASuyI,EAAOtyI,Q,MACpD9kC,EAAEq3K,cAEXp+J,EAAQi+J,EAAU18J,eACZI,SAAS5a,EAAEq3K,YAAar3K,EAAEs3K,aAGlC,IAAM3wI,EAAM2yC,EAAOyT,YAAYjoE,eAC/Bw0D,EAAOoS,aAAa5hD,QACpBnD,EAAI6N,kBACJv7B,GAAS0tB,EAAI8N,SAASx7B,GACtBnkB,KAAKyiL,mBAAmBziL,KAAK0iL,iBAAiB,EAnB/B,CAoBjB,EAEA,YAAAD,mBAAA,SAAmBt9K,EAAe6a,GAChC,GAAI7a,EAAO,CAET,IAAMiP,EAAKjP,EAAMwgF,QACbvxE,EAAGk4D,iBAAmBtsD,IAAM5L,EAAGk4D,gBAAkBtsD,E,CAEzD,EAMA,YAAA2iK,iBAAA,SAAiBzjI,GACP,IAAAgkC,EAAOljF,KAAI,GACbgjG,EAAK9f,GAAMA,EAAGv/E,IAAI,UAIxBq/F,IAAO9jD,EAAS8jD,EAAGuvB,kBAAoBvvB,EAAGiwB,iBAC5C,EAOA,YAAA0vB,cAAA,SAAcvuI,EAAiBzB,GAO7B,IANA,IAAMnG,EAAKmG,GAAS,GACdiwK,EAAWxuK,EAAGs6C,WAAU,GACxBpmB,EAAOl0B,EAAGob,wBACV+vF,EAAW/3E,iBAAiBpzB,GAC9BuI,EAAQ,GAEH9c,EAAI,EAAGA,EAAI0/G,EAAS5+G,OAAQd,IAAK,CACxC,IAAM4mB,EAAO84F,EAAS1/G,GACtB8c,GAAS,UAAG8J,EAAI,YAAI84F,EAAS5V,iBAAiBljF,GAAK,I,EAGrD/R,SAASoI,KAAK2H,YAAYm+J,GAC1BA,EAAShuK,WAAa,WAAI5U,KAAKikF,IAAG,SAClC2+F,EAAS79J,aAAa,QAASpI,GAC/B3c,KAAK2sK,WAAaiW,EAClBA,EAASjmK,MAAMwpB,MAAQ,UAAGmC,EAAKnC,MAAK,MACpCy8I,EAASjmK,MAAMmW,OAAS,UAAGwV,EAAKxV,OAAM,MACtCtmB,GAAMxM,KAAK6iL,eAAer2K,GAGtBxM,KAAKkjF,MACM,gBAAEljF,KAAKkjF,GAAGsB,OAAOI,UAAU10D,eACnC/kB,IAAI,YAAanL,KAAK6iL,gBAAgBp7K,GAAG,YAAazH,KAAK6iL,iBAElE,gBAAEnuK,UAAUvJ,IAAI,YAAanL,KAAK6iL,gBAAgBp7K,GAAG,YAAazH,KAAK6iL,eACzE,EAMA,YAAAA,eAAA,SAAe33K,GACb,IAAMmnB,EAAOnnB,EAAEqb,OAAuB2J,cAEtC,GAAKlwB,KAAK2sK,YAAet6I,EAAzB,CAIA,IAAIywJ,EAAO53K,EAAE24D,MACTk/G,EAAO73K,EAAE04D,MACTy3D,EAAS,EACTC,EAAU,EAGRnrC,GADS99D,EAAI00E,aAAgB10E,EAAI20E,cAClB4oB,aACfozD,EAAkBhjL,KAAK2sK,WAAWhwJ,MAOxC,GAAIwzE,EAAO,CACT,IAAM4mC,EAAY5mC,EAAM3gE,wBACxB6rG,EAAStE,EAAUjuF,IAAMp0B,SAASs3B,gBAAgBK,UAClDivF,EAAUvE,EAAUrnG,KAAOhb,SAASs3B,gBAAgBC,WACpD62I,EAAO53K,EAAE8kC,QACT+yI,EAAO73K,EAAE6kC,O,CAGXizI,EAAgBl6I,IAAMg6I,EAAOznD,EAAS,KACtC2nD,EAAgBtzJ,KAAOqzJ,EAAOznD,EAAU,I,CAC1C,EAQA,YAAA5tH,QAAA,SAAQ0G,EAAiBV,GACvB,OAAO,EAAAhG,QAAA,KAAa0G,EAAIV,EAC1B,EAQA,YAAAq9F,QAAA,SAAQ38F,EAAiBV,GACvB,GAAKU,EAGL,IAFA,IAAIwmF,EAAOxmF,EAAG6Q,WAEP21E,GAA0B,IAAlBA,EAAK51E,UAAgB,CAClC,GAAIhlB,KAAK0N,QAAQktF,EAAqBlnF,GAAW,OAAOknF,EACxDA,EAAOA,EAAK31E,U,CAEhB,EAOA,YAAAkW,OAAA,SAAO/mB,GACL,IAAMk0B,EAAOl0B,EAAGob,wBAEhB,MAAO,CACLsZ,IAAKR,EAAKQ,IAAMp0B,SAASoI,KAAKuvB,UAC9B3c,KAAM4Y,EAAK5Y,KAAOhb,SAASoI,KAAKmvB,WAEpC,EAMA,YAAAg3I,kBAAA,WACU,IAAAh/F,EAAQjkF,KAAI,IACdoU,EAAKM,SAASC,cAAc,OAC5BuuK,EAAMxuK,SAASC,cAAc,OAMnC,OALAP,EAAGQ,UAAYqvE,EAAM,cACrB7vE,EAAGuI,MAAMC,QAAU,OACnBxI,EAAGuI,MAAMqmC,cAAgB,OACzBkgI,EAAItuK,UAAYqvE,EAAM,kBACtB7vE,EAAGqQ,YAAYy+J,GACR9uK,CACT,EAMA,YAAAmrF,UAAA,SAAU7iF,EAAmB7S,G,aAAA,IAAAA,IAAAA,EAAA,IACrB,IAGFyzI,EAHE,EAAqCt9I,KAAnCkjF,EAAE,KAAE+b,EAAO,UAAED,EAAY,eAAE02D,EAAG,MAChCj1G,EAAYzgD,KAAK6kG,eAAeh7F,EAAK42C,WACrCy6C,EAAOl7F,KAAKgiL,aAAatlK,UAExB1c,KAAKiiL,iBACLjiL,KAAKumB,cACLvmB,KAAKmjL,WACZnjL,KAAK0+D,OAAQ,EAGThiD,IAAQ1c,KAAK0N,QAAQgP,EAAK,UAAGuiF,EAAO,aAAKD,MAC3CtiF,EAAM1c,KAAK+wG,QAAQr0F,EAAKuiF,IAG1Bj/F,KAAKojL,SAAW1mK,EAGXg5I,IACH11J,KAAK01J,IAAM11J,KAAKijL,oBAChBxiI,EAAUh8B,YAAYzkB,KAAK01J,MAGzBh5I,KACF4gI,EAAWt9I,KAAK00K,eAAeh4J,KACnB4gI,EAAS73I,KAAO63I,EAAS73I,IAAI,SAAU,WACnDzF,KAAKs9I,SAAWA,IAGlB,IAAA71I,IAAGg5C,EAAW,qBAAsBzgD,KAAKq8F,SACzC,IAAA50F,IAAGyzF,EAAM,2BAA4Bl7F,KAAKuwF,UAC1C,IAAA9oF,IAAGyzF,EAAM,UAAWl7F,KAAK8vF,UACzB9vF,KAAK0jF,QAAQ,CACXgM,OAAQ1vF,KACRumB,OAAQ+2H,EAER/+H,OAAQ++H,IAA2B,QAAf,EAAAA,EAAS/+H,cAAM,wBAEnCzd,MAAOw8I,IAA0B,QAAd,EAAAA,EAASx8I,aAAK,0BAInCoiF,SAAAA,EAAImgG,iBACJrjL,KAAK2iL,kBAAiB,GACtBz/F,SAAAA,EAAIp/E,QAAQ,oBAAqB4Y,EAAK4gI,EACxC,EAMA,YAAAgmC,eAAA,SAAelvK,GACb,IAAMwmF,EAAOxmF,GAAMpU,KAAKumB,OACxB,OAAO,gBAAEq0E,GAAMliF,KAAK,QACtB,EAMA,YAAAg8J,eAAA,SAAenrJ,EAAsB,GAArC,WAAqC,aAAqC,CAAC,EAAC,EAArChD,EAAM,SAAE,IAAAmmH,cAAAA,OAAa,IAAG,IAAC,EACtDxpD,EAAiBljF,KAAf,GAAEojL,EAAapjL,KAAL,SACd0c,EAAM6M,GAAU65J,EAChBnB,EAA2BjiL,KAAlB,UAAEkiL,EAAgBliL,KAAL,YACtB+yI,EAAa,SAACr2H,GAClB,OAAAA,GAAO6J,GAAU7J,EAAI4wC,KAAO5wC,EAAI4wC,IAAIo/E,eAAiB,EAAK62C,iBAAiB7mK,EAAK6J,EAAhF,EAEF,GAAI27J,GAAeh/F,EAAI,CAKrB,GAJI6vD,EAAWkvC,KACbA,OAAY58K,IAGT48K,EAAW,CACd,IAAMlkD,EAAQ76C,EAAGuR,WAAWynD,gBACtBryI,EAAO,CACX6iI,cAAa,EACb7jD,WAAY,EACZ0/C,iBAAkB,GAEdi7C,EAAYzlD,EAAMz5H,IAAI49K,EAAa,SAAKr4K,GAAI,CAAE2+G,WAAW,KAM/D,GAHAy5D,GADAA,EAAYlkD,EAAM34H,OAAOo+K,EAAW35K,cACHzJ,MAAQ6hL,EAAU,GAAKA,EACxDjiL,KAAKiiL,UAAYA,EAEblvC,EAAWkvC,GACb,OAAOjiL,KAAK00K,eAAeh4J,EAAK,CAAE6J,OAAM,EAAEmmH,cAAe,G,CAI7D,OAAOu1C,C,CAGT,OAAOvlK,IAAO,gBAAEA,GAAKhE,KAAK,QAC5B,EAMA,YAAA+qK,kBAAA,SAAkBt+K,EAAeokB,GAC/B,KAAIpkB,aAAiB,MAMjBokB,GAAUA,IAAWpkB,GAAzB,CAEQ,IAAAu+K,EAAgB1jL,KAAI,YAIxB0jL,GAAeA,IAAgB1jL,KAAKs9I,UACtComC,EAAYj+K,IAAI,SAAU,IAGxBN,GAASA,EAAMM,MACjBN,EAAMM,IAAI,SAAU,mBACpBzF,KAAK0jL,YAAcv+K,EAZiB,CAcxC,EAMA,YAAAk3F,OAAA,SAAOnxF,GACL,IAAMsB,EAAKtB,EACL,EAAuClL,KAArCkjF,EAAE,KAAEmN,EAAS,YAAEqlE,EAAG,MAAE5lC,EAAY,eACxC9vH,KAAK0+D,OAAQ,EAGb,IAAMilH,EAAMjuB,EAAK/4I,MAAMC,QAClB+mK,GAAe,SAARA,IAAgBjuB,EAAK/4I,MAAMC,QAAU,SAGjD,IAAIgnK,EAAK5jL,KAAKm7B,OAAOn7B,KAAKoU,IAC1BpU,KAAKuhL,IAAMvhL,KAAKk/F,QAAUhzF,KAAK0kB,IAAIgzJ,EAAG96I,KAAO86I,EAAG96I,IAChD9oC,KAAKwhL,IAAMxhL,KAAKk/F,QAAUhzF,KAAK0kB,IAAIgzJ,EAAGl0J,MAAQk0J,EAAGl0J,KACjD,IAAIm0J,EAAK34K,EAAE24D,MAAQ7jE,KAAKuhL,IAAMvhL,KAAKoU,GAAGi4B,UAClCy3I,EAAK54K,EAAE04D,MAAQ5jE,KAAKwhL,IAAMxhL,KAAKoU,GAAG63B,WAEtC,GAAIjsC,KAAKo/F,gBAAkBlc,EAAI,CAC7B,IAAM6gG,EAAW7gG,EAAGv/E,IAAI,UAAU2lF,uBAAuBp+E,EAAG,CAAEg9E,SAAU,IACxE47F,EAAKC,EAASlwJ,EACdgwJ,EAAKE,EAASn2I,C,CAGhB5tC,KAAK8jL,GAAKA,EACV9jL,KAAK6jL,GAAKA,EACV7jL,KAAKgkL,UAAY94K,EAGjB,IAAM+4K,EAAcjkL,KAAK00K,iBACnB/lF,EAAWmhC,EAAeA,EAAa,CAAEpgC,OAAQ1vF,KAAM2S,MAAOzH,IAAOA,EAAEqb,OACvEid,EAAOxjC,KAAKkkL,eAAev1F,EAAyBm1F,EAAID,GACxDt9J,EAASvmB,KAAKumB,OACdm9J,EAAcn9J,GAAUvmB,KAAKsjL,eAAe/8J,GAGlD,GAFAvmB,KAAKyjL,kBAAkBC,EAAaO,GAC/BP,IAAahuB,EAAK/4I,MAAMC,QAAU,QAClC2J,EAAL,CACAvmB,KAAKmkL,SAAW3gJ,EAChB,IAAM3hB,EAAM7hB,KAAKokL,aAAa5gJ,EAAMsgJ,EAAID,GAEpC7jL,KAAKujL,iBAAiBU,EAAaP,IACrC1jL,KAAK0iL,gBAAkBgB,EACvBhuB,EAAK/4I,MAAMC,QAAU,OACrB5c,KAAKq/D,QAAUx9C,EACf7hB,KAAKmiL,6BAA6B31K,KAElCxM,KAAKqkL,yBACErkL,KAAK0iL,gBAGP1iL,KAAKq/D,SAAWr/D,KAAKq/D,QAAQv+D,OAAS+gB,EAAI/gB,OAASd,KAAKq/D,QAAQpwD,QAAU4S,EAAI5S,SACjFjP,KAAKskL,gBAAgBtkL,KAAK01J,IAAMlyH,EAAM3hB,EAAK7hB,KAAKukL,eAC3CvkL,KAAKwkL,OAAMxkL,KAAKwkL,MAAO,gBAAExkL,KAAK01J,MAI9B11J,KAAKo/F,iBACJp/F,KAAK4hL,QAAQ5hL,KAAKwkL,KAAKlkJ,IAAI,MAAO,KAAOtgC,KAAK4hL,OAAS,MACvD5hL,KAAK6hL,SAAS7hL,KAAKwkL,KAAKlkJ,IAAI,OAAQ,KAAOtgC,KAAK6hL,QAAU,OAGhE7hL,KAAKq/D,QAAUx9C,KAInB,IAAAxf,YAAWguF,IACTA,EAAU,CACR19E,MAAOzH,EACPqb,OAAQ09J,EACR1lK,OAAQmlK,EACR5iL,MAAO+gB,EAAI/gB,OAAuB,SAAd+gB,EAAI5S,OAAoB,EAAI,KAGpDi0E,GACEA,EAAGp/E,QAAQ,cAAe,CACxByiB,OAAM,EACNm9J,YAAW,EACXO,YAAW,EACXzgJ,KAAI,EACJ3hB,IAAG,EACHgS,EAAGiwJ,EACHl2I,EAAGi2I,GA7CY,CA+CrB,EAEA,YAAAN,iBAAA,SAAiB7mK,EAAU07E,G,MACzB,OAAe,QAAR,EAAA17E,aAAG,EAAHA,EAAK/Y,WAAG,sBAAG,eAAey0F,aAAG,EAAHA,EAAKu3C,aAAa,QACrD,EAEA,YAAA00C,gBAAA,WACU,IAAA3B,EAAoB1iL,KAAI,gBAEhC0iL,SAAAA,EAAiBzpF,UAAUo+C,iBAC3Br3I,KAAKyiL,mBAAmBC,GAAiB,EAC3C,EAUA,YAAA+B,SAAA,SAASrwK,EAAiBmK,GACxB,IAAKnK,EAAI,OAAO,EAEhBmK,EAASA,GAAU7J,SAASoI,KAC5B,IAEI89E,EAAOxmF,EAEX,OADIwmF,EAAKzrE,eACWnvB,KAAK0kL,YAAY9pF,EAAMr8E,EAE7C,EASA,YAAAmmK,YAAA,SAAYtwK,EAAiBmK,GAC3B,KAAI,IAAA+hF,YAAWlsF,GAAf,CACA,IAAMuI,EAAQvI,EAAGuI,OAAS,CAAC,EACrBhJ,GAAM,gBAAES,GACRuwK,EAAUpmK,IAAU,gBAAEA,GAE5B,IAAI5B,EAAMioK,UAA+B,YAAnBjoK,EAAMioK,SAA5B,CACA,IAAMC,EAAYlxK,EAAI2sB,IAAI,SAC1B,KAAIukJ,GAA2B,SAAdA,GACbF,GAAqC,QAA1BA,EAAQrkJ,IAAI,YAA0D,WAAlCqkJ,EAAQrkJ,IAAI,mBAA/D,CACA,OAAQ3jB,EAAM4pB,UACZ,IAAK,SACL,IAAK,WACL,IAAK,GACH,MACF,QACE,OAEJ,OAAQnyB,EAAGX,SACT,IAAK,KACL,IAAK,QACL,IAAK,QACL,IAAK,QACH,OAAO,EAEX,OAAQE,EAAI2sB,IAAI,YACd,IAAK,QACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,OACH,OAAO,EAtB0F,CAH3C,CALhC,CAiC5B,EAOA,YAAAkiH,YAAA,SAAYpqD,EAAkB17E,GAC5B,IAAMooK,EAAW9kL,KAAKsjL,eAAelrF,GAC/BklD,EAAWt9I,KAAK00K,eAAeh4J,EAAK,CAAE6J,OAAQu+J,IAIhD53K,EAAS,CACXu1I,OAAO,EACP/lI,IAJFA,EAAM4gI,GAAYA,EAASh7G,MAAQg7G,EAASh7G,KAAKluB,GAK/CkpI,SAAQ,EACRllD,IALFA,EAAM0sF,GAAYA,EAASxiJ,MAAQwiJ,EAASxiJ,KAAKluB,GAM/C0wK,SAAQ,EACRljI,WAAW,EACXiyE,WAAW,EACXkxD,SAAU,GACVC,SAAU,IAGZ,IAAKtoK,IAAQ07E,EAEX,OADAlrF,EAAOu1I,OAAQ,EACRv1I,EAIT,IAAI00C,EAAY07F,EAAS35I,IAAI,aAC7B,IAAI,IAAAtB,YAAWu/C,GAAY,CACzB,IAAMx9C,EAAMw9C,EAAU07F,EAAUwnC,GAChC53K,EAAO63K,SAAW3gL,EAClB8I,EAAO00C,UAAYx9C,EACnBw9C,EAAYx9C,C,MAEZw9C,EAAYA,aAAqBxhD,MAAQwhD,EAAU6N,KAAK,MAAQ7N,EAChE10C,EAAO63K,SAAWnjI,EAClBA,GAAY,IAAA1wC,UAAS0wC,GAAa5hD,KAAK0N,QAAQ0qF,EAAKx2C,GAAaA,EACjE10C,EAAO00C,UAAYA,EAIrB,IAAIiyE,EAAYixD,EAASnhL,IAAI,aAC7B,IAAI,IAAAtB,YAAWwxH,GAAY,CACnBzvH,EAAMyvH,EAAUypB,EAAUwnC,GAChC53K,EAAO2mH,UAAYzvH,EACnB8I,EAAO83K,SAAW5gL,EAClByvH,EAAYzvH,C,MAGZyvH,GADAA,EAAYA,aAAqB,KAAa,EAAIA,aACjBzzH,MAAQyzH,EAAUpkE,KAAK,MAAQokE,EAChE3mH,EAAO83K,SAAWnxD,EAClBA,GAAY,IAAA3iH,UAAS2iH,GAAa7zH,KAAK0N,QAAQgP,EAAKm3G,GAAaA,EACjEA,EAAYjyE,GAAa5hD,KAAKujL,iBAAiBjmC,EAAUwnC,GAAY,EAAIjxD,EACzE3mH,EAAO2mH,UAAYA,EAOrB,OAJKA,GAAcjyE,IACjB10C,EAAOu1I,OAAQ,GAGVv1I,CACT,EASA,YAAAg3K,eAAA,SAAe39J,EAAqBu9J,EAAYD,GAC9C,IAAM3gG,EAAKljF,KAAKkjF,GACZ1/C,EAAc,GAElB,IAAKjd,EACH,OAAOid,EAaT,GATKxjC,KAAK0N,QAAQ6Y,EAAQ,UAAGvmB,KAAKi/F,QAAO,aAAKj/F,KAAKg/F,iBACjDz4E,EAASvmB,KAAK+wG,QAAQxqF,EAAQvmB,KAAKi/F,UAIjCj/F,KAAK4hD,qBAAqBxhD,QAC5BmmB,EAASvmB,KAAK+wG,QAAQxqF,EAAQvmB,KAAK4hD,UAAU6N,KAAK,QAG/ClpC,EACH,OAAOid,EAST,GALIxjC,KAAKmjL,YAAcnjL,KAAKmjL,YAAc58J,UACjCvmB,KAAKmjL,YAITnjL,KAAKmjL,WAAY,CACpBnjL,KAAKilL,QAAUjlL,KAAK+wG,QAAQxqF,EAAQvmB,KAAKg/F,cAGzC,IAAIkmF,EAAcllL,KAAKwiJ,YAAYj8H,GAGnC,GAFA28D,GAAMA,EAAGp/E,QAAQ,yBAA0BohL,IAEtCA,EAAYziC,OAASziJ,KAAKilL,QAC7B,OAAOjlL,KAAKkkL,eAAelkL,KAAKilL,QAASnB,EAAID,GAG/C7jL,KAAKmjL,WAAa58J,EAClBvmB,KAAKukL,cAAgBvkL,KAAKmlL,OAAO5+J,GACjCvmB,KAAKolL,WAAaplL,KAAKqlL,eAAerlL,KAAKilL,SAC3CjlL,KAAKslL,UAAYtlL,KAAKqlL,eAAe9+J,E,CAWvC,GAPIvmB,KAAKmjL,YAAc58J,IAAQid,EAAOxjC,KAAKslL,WAG3CtlL,KAAKumB,OAASvmB,KAAKmjL,WAIfnjL,KAAKulL,YAAYvlL,KAAKukL,cAAgBT,EAAID,KAAS7jL,KAAKm/F,SAAWn/F,KAAKslL,UAAW3kL,OAAS,CAC9F,IAAM6kL,EAAexlL,KAAKilL,QAEtBO,GAAgBxlL,KAAKwiJ,YAAYgjC,GAAc/iC,QACjDj/G,EAAOxjC,KAAKolL,WACZplL,KAAKumB,OAASi/J,E,CAKlB,cADOxlL,KAAKq/D,QACL77B,CACT,EAQA,YAAAiiJ,gBAAA,SAAgBrxK,GACd,IACIoxK,EADAj/J,EAASnS,EAETsxK,EAAa1lL,KAAK0lL,WAChBxiG,EAAKljF,KAAKkjF,GACV8b,EAAeh/F,KAAKg/F,aACpBC,EAAUj/F,KAAKi/F,QAmBrB,GAhBKj/F,KAAK0N,QAAQ6Y,EAAQ,UAAG04E,EAAO,aAAKD,MACvCz4E,EAASvmB,KAAK+wG,QAAQxqF,EAAQ04E,IAK5Bj/F,KAAK4hD,qBAAqBxhD,QAC5BmmB,EAASvmB,KAAK+wG,QAAQxqF,EAAQvmB,KAAK4hD,UAAU6N,KAAK,OAIhDi2H,GAAcA,GAAcn/J,UACvBvmB,KAAK0lL,YAIT1lL,KAAK0lL,WAAY,CACpBF,EAAexlL,KAAK+wG,QAAQxqF,EAAQy4E,GAIpC,IAAMkmF,EAAcllL,KAAKwiJ,YAAYj8H,GAGrC,GAFA28D,GAAMA,EAAGp/E,QAAQ,yBAA0BohL,IAEtCA,EAAYziC,OAAS+iC,EACxB,OAAOxlL,KAAKylL,gBAAgBD,GAG9BxlL,KAAK0lL,WAAan/J,C,CAapB,OARIvmB,KAAK2lL,cAAcp/J,KACrBi/J,EAAexlL,KAAK+wG,QAAQxqF,EAAQy4E,KAEhBh/F,KAAKwiJ,YAAYgjC,GAAc/iC,QACjDl8H,EAASi/J,GAINj/J,CACT,EAMA,YAAAo/J,cAAA,SAAcvxK,GACZ,IAAMjJ,EAAM,GACNm9B,EAAOl0B,EAAGob,wBACV1S,EAAO1I,EAAG8b,cAAcpT,KACxB,EAAW9c,KAAK4lL,gBAAd/xJ,EAAC,IAAE+Z,EAAC,IACN9E,EAAMR,EAAKQ,IAAMhsB,EAAKuvB,UACtB3c,EAAO4Y,EAAK5Y,KAAO5S,EAAKmvB,WACxB9F,EAAQmC,EAAKnC,MACbrT,EAASwV,EAAKxV,OAEpB,GACE8a,EAAI9E,EAAM39B,GACVyiC,EAAI9E,EAAMhW,EAAS3nB,GACnB0oB,EAAInE,EAAOvkB,GACX0oB,EAAInE,EAAOyW,EAAQh7B,EAEnB,OAAO,CAEX,EAEA,YAAAy6K,cAAA,WACE,IAAMp5K,EAAKxM,KAAKgkL,UAGhB,MAAO,CAAEnwJ,GAFCrnB,aAAE,EAAFA,EAAIo3D,QAAS,EAEXh2B,GADFphC,aAAE,EAAFA,EAAIq3D,QAAS,EAEzB,EAOA,YAAAshH,OAAA,SAAO/wK,GACC,IAGF00B,EAAKpZ,EAAMoD,EAAQqT,EAHf+8C,EAAuBljF,KAArB,GAAEo/F,EAAmBp/F,KAAL,eACpByiF,EAASS,aAAE,EAAFA,EAAIsB,OACbqhG,EAAUpjG,EAASA,EAAOs1C,kBAAkB3jH,GAAM,CAAC,EAGzD,GAAIgrF,GAAkBlc,EAAI,CACxB,IAAMrhE,EAAM4gE,EAAQmF,cAAcxzE,EAAI,CAAE8zE,SAAU,IAClDp/C,EAAMjnB,EAAIinB,IACVpZ,EAAO7N,EAAI6N,KACXoD,EAASjR,EAAIiR,OACbqT,EAAQtkB,EAAIskB,K,KACP,CACL,IAAIhQ,EAAIn2B,KAAKm7B,OAAO/mB,GACpB00B,EAAM9oC,KAAK2hL,SAAWvtK,EAAGgzB,UAAYjR,EAAE2S,KAAO9oC,KAAKk/F,SAAW,EAAI,GAAKl/F,KAAKuhL,IAC5E7xJ,EAAO1vB,KAAK2hL,SAAWvtK,EAAGg7B,WAAajZ,EAAEzG,MAAQ1vB,KAAKk/F,SAAW,EAAI,GAAKl/F,KAAKwhL,IAC/E1uJ,EAAS1e,EAAG+a,aACZgX,EAAQ/xB,EAAGgb,W,CAGb,MAAO,CAAE0Z,IAAG,EAAEpZ,KAAI,EAAEoD,OAAM,EAAEqT,MAAK,EAAE0/I,QAAO,EAC5C,EAOA,YAAAR,eAAA,SAAejtF,GAAf,WACQ50D,EAAc,GACpB,IAAK40D,EAAK,OAAO50D,EAGjB,IAAMshJ,EAAW9kL,KAAKsjL,eAAelrF,GACrC,GAAI0sF,GAAYA,EAASxiJ,OAAStiC,KAAKw0K,mBAAoB,CACzD,IAAMlyI,EAAOwiJ,EAAS51C,eAAiB41C,EAAS51C,iBAAmB41C,EAASxiJ,KAC5E81D,EAAM91D,EAAKixG,sB,CA0Bb,OAvBA,IAAAhuI,MAAK6yF,EAAI7lE,UAAU,SAACg2E,EAAK1oG,GACvB,IAAMuU,EAAKm0F,EACLpjG,GAAQ,IAAA4gF,UAAS3xE,EAAI,cACrB0xK,EAAU3gL,GAASA,EAAMrE,MAAQqE,EAAMrE,QAAUjB,EAEvD,IAAK,IAAAygG,YAAWlsF,IAAQ,EAAK1G,QAAQ0G,EAAI,EAAK6qF,SAA9C,CAIA,IAEI8mF,EAFEnM,EAAM,EAAKuL,OAAO/wK,GACpByV,EAAM,EAAK0B,UAGCw6J,EAAL,KAAPl8J,GACY,KAAPA,GACO,EAAK46J,SAASrwK,EAAIgkF,GAElCwhF,EAAI/vJ,IAAMk8J,EACVnM,EAAIxlK,GAAKA,EACTwlK,EAAIoM,QAAUF,EACdtiJ,EAAK7+B,KAAKi1K,E,CACZ,IAEOp2I,CACT,EASA,YAAA+hJ,YAAA,SAAY3L,EAAUkK,EAAYD,GAChC,IAAI32K,GAAS,EACP/B,EAAMnL,KAAKyhL,aACX5tJ,EAAIiwJ,GAAM,EACVl2I,EAAIi2I,GAAM,EACVvwH,EAAIsmH,EAAI9wI,IACR7mC,EAAI23K,EAAIlqJ,KACRwD,EAAI0mJ,EAAI9mJ,OACRijB,EAAI6jI,EAAIzzI,MAGd,OAFImtB,EAAInoD,EAAMyiC,GAAKA,EAAI0lB,EAAIpgC,EAAI/nB,GAAOlJ,EAAIkJ,EAAM0oB,GAAKA,EAAI5xB,EAAI8zC,EAAI5qC,KAAK+B,GAAS,GAExEA,CACT,EASA,YAAAk3K,aAAA,SAAa5gJ,EAAau/I,EAAcD,GAYtC,IAXA,IAQIlJ,EARE1sK,EAAc,CAAEpM,MAAO,EAAGklL,QAAS,EAAG/2K,OAAQ,UAChDg3K,EAAY,EACZC,EAAS,EAETC,EAAS,EACTC,EAAU,EACVC,EAAU,EACVC,EAAU,EAILzmL,EAAI,EAAG4rB,EAAM+X,EAAK7iC,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAEvC,OADR+5K,EAAMp2I,EAAK3jC,IAC6B,IAA3B6vB,EAAwBkqJ,EAAG,KAArB9mJ,EAAkB8mJ,EAAG,OAAbzzI,EAAUyzI,EAAG,MAUxC,GANA0M,EAAU,EAAMxzJ,EAEhBszJ,EAAU12J,EAAOyW,EAAQ,EAEzBkgJ,EAAU,EAAMvzJ,EAAS,IAGtBozJ,GAAUx2J,EAAOw2J,GACjBC,GAAUE,GAAWF,GACrBF,GAXQv2J,EAAOyW,EAWS8/I,GAM3B,GAHA/4K,EAAOpM,MAAQjB,EACfqN,EAAO84K,QAAUpM,EAAIoM,QAEhBpM,EAAI/vJ,IAUF,CAEL,GAAIi5J,EAAOuD,EAAS,CAClBn5K,EAAO+B,OAAS,SAChB,K,CACK/B,EAAO+B,OAAS,O,MAdnB6zK,EAAOwD,IAASH,EAASG,GAEzBvD,EAAOqD,GACTF,EAASE,EACTl5K,EAAO+B,OAAS,WAEhBg3K,EAAYG,EACZl5K,EAAO+B,OAAS,Q,CAWtB,OAAO/B,CACT,EASA,YAAAo3K,gBAAA,SAAgB5uB,EAAkBlyH,EAAa3hB,EAAU0kK,GACvD,IAAIC,EAAO,EACPlzH,EAAI,EACJrxD,EAAI,EACJ8zC,EAAI,GACJ7iB,EAAI,GACJ60D,EAAK,KACL0+F,EAAQ,EACRx3K,EAAS4S,EAAI5S,OACXy3K,EAAQljJ,EAAK3hB,EAAI/gB,OAMvB,GAHA40J,EAAIpyE,UAAUl+E,OAAO,YACrBswJ,EAAIpyE,UAAUh/E,IAAI,cAEdoiL,EAAO,CAED,MAA6BA,EAAK,IAA7Bh3J,EAAwBg3J,EAAK,KAAvB5zJ,EAAkB4zJ,EAAK,OAAfvgJ,EAAUugJ,EAAK,MACrCA,EAAM78J,KASTksB,EAAI5P,EAAQ4hD,EACZ70D,EAAI,OACJogC,EAAc,UAAVrkD,EAAqB,EAAMu3K,EAAO,EAAM1zJ,EAAS0zJ,EACrDvkL,EAAIytB,IAXJqmB,EAAI,OACJ7iB,EAAIJ,EAAgB,EAAP0zJ,EAAWz+F,EACxBz0B,EAAI,EAAMkzH,EACVvkL,EAAc,UAAVgN,EAAqBygB,EAAO82J,EAAO92J,EAAOyW,EAAQqgJ,EAEtD9wB,EAAIpyE,UAAUl+E,OAAO,cACrBswJ,EAAIpyE,UAAUh/E,IAAI,Y,KAOf,CAEL,IAAKtE,KAAKm/F,OAER,YADAu2D,EAAI/4I,MAAMC,QAAU,QAGtB,GAAI2pK,EAAQ,CACV,IAAMprJ,EAASorJ,EAAOV,SAAW,CAAC,EAC5Bc,EAAKxrJ,EAAO+L,YAAcu/I,EAC1BG,EAAKzrJ,EAAOmL,aAAemgJ,EACjCnzH,EAAIizH,EAAOz9I,IAAM69I,EACjB1kL,EAAIskL,EAAO72J,KAAOk3J,EAClB7wI,EAAIrO,SAAS,UAAG6+I,EAAOpgJ,QAAgB,EAALygJ,EAAS7+F,EAC3C70D,EAAI,M,EAGRwiI,EAAI/4I,MAAMmsB,IAAMwqB,EAAIy0B,EACpB2tE,EAAI/4I,MAAM+S,KAAOztB,EAAI8lF,EACjBhyC,IAAG2/G,EAAI/4I,MAAMwpB,MAAQ4P,GACrB7iB,IAAGwiI,EAAI/4I,MAAMmW,OAASI,EAC5B,EAMA,YAAA89E,QAAA,SAAQ7rG,GACN,OAAOA,EAAQ,CAACA,GAAOJ,OAAO/E,KAAKgxG,QAAQ7rG,EAAMoZ,WAAa,EAChE,EAOA,YAAAxN,KAAA,SAAK81K,EAAWC,GAEd,IACMC,EADYF,EAAK71E,QAAQ/6F,QAAO,SAAC+lB,GAAW,OAAA8qJ,EAAK91E,QAAQz6F,SAASylB,EAAtB,IACvB,GAC3B,IAAK+qJ,EAEH,OAAOD,EAAK3hL,MAAMrE,QAAU+lL,EAAK1hL,MAAMrE,QAIzC,IAAMkmL,EAAKH,EAAK71E,QAAQ61E,EAAK71E,QAAQnsG,QAAQkiL,GAAY,GAGzD,OAFWD,EAAK91E,QAAQ81E,EAAK91E,QAAQnsG,QAAQkiL,GAAY,GAE/CjmL,QAAUkmL,EAAGlmL,OACzB,EAQA,YAAAyvF,QAAA,eAQM+sD,EARN,OACQ5gI,EAAM1c,KAAKojL,SACX1kH,EAAQ,GACRw8B,EAAOl7F,KAAKgiL,eACZvhI,EAAYzgD,KAAK6kG,iBACjBlV,EAAY3vF,KAAK2vF,UACjB/L,EAAQ5jF,KAAK4jF,MACXr9D,EAAoBvmB,KAAd,OAAEq/D,EAAYr/D,KAAL,QAevB,IAbA,IAAAmL,KAAIs1C,EAAW,qBAAsBzgD,KAAKq8F,SAC1C,IAAAlxF,KAAI+vF,EAAM,2BAA4Bl7F,KAAKuwF,UAC3C,IAAAplF,KAAI+vF,EAAM,UAAWl7F,KAAK8vF,UAC1B9vF,KAAK01J,IAAK/4I,MAAMC,QAAU,OAEtBF,IACF4gI,EAAWt9I,KAAK00K,iBACZ10K,KAAK8hL,aAAexkC,GAAYA,EAAS73I,MAC3C63I,EAAS73I,IAAI,SAAU,IACvB63I,EAAS73I,IAAI,SAAU,cAIvBzF,KAAK0+D,OAASn4C,EAAQ,CACxB,IAAM6pE,EAASpwF,KAAKowF,OACd62F,GAAY,IAAA/lL,SAAQkvF,GAAUA,EAASA,EAAS,CAACA,GAAU,CAAC1zE,GAC9D,EAAoB,EACC,IAArBuqK,EAAUtmL,OAIZ+9D,EAAM/5D,KAAK3E,KAAKggE,KAAKz5C,EAAQ0gK,EAAU,GAAK5nH,IAE5C4nH,EAEGniL,KAAI,SAAAK,GAAS,OACZA,MAAK,EACL6rG,QAAS,EAAKA,QAAQ7rG,GAFV,IAKb4L,KAAK/Q,KAAK+Q,MAEV0E,SAAQ,SAAC,G,IAAEtQ,EAAK,QAETrE,EAAQqE,EAAMrE,QAEdyd,EAASpZ,EAAMoZ,SAASonE,QAE9BjnB,EAAM/5D,KACJ,EAAKq7D,KAAKz5C,EAAQphB,EAAQ,SACrBk6D,GAAQ,CACX2mH,QAAS3mH,EAAS2mH,QAAU,EAC5BllL,MAAOu+D,EAASv+D,MAAQ,MAMxByd,IAAWgI,GAAUzlB,GAASu+D,EAASv+D,OAEzC,GAEJ,G,CAIFd,KAAK01J,MAAK11J,KAAK01J,IAAI/4I,MAAMC,QAAU,QACvC,IAAM+vJ,EAAa3sK,KAAK2sK,WAexB,GAbIA,IACFA,EAAW1nJ,WAAYnH,YAAY6uJ,UAC5B3sK,KAAK2sK,YAGd3sK,KAAKqkL,kBACLrkL,KAAKyjL,oBACLzjL,KAAK2iL,0BAEE3iL,KAAKowF,cACLpwF,KAAKgkL,iBACLhkL,KAAKiiL,WAER,IAAA5/K,YAAWstF,GAAY,CACzB,IAAM,EAAO,CACXppE,OAAQ+2H,EAER/+H,OAAQ++H,GAAYA,EAAS/+H,SAE7Bzd,MAAOw8I,GAAYA,EAASx8I,SAE9B49D,EAAM/9D,OAAS+9D,EAAMjpD,SAAQ,SAAAjE,GAAK,OAAAm+E,EAAUn+E,EAAG,EAAM,EAAnB,IAA4Bm+E,EAAU,KAAM3vF,KAAM,SAAK,GAAI,CAAE2mG,UAAW,I,EAG5G,IAAAtkG,YAAWuhF,IAAUA,EAAM,CAAE8L,OAAQ1vF,MACvC,EAQA,YAAAggE,KAAA,SAAKknH,EAAkBxqK,EAA0BmF,GACzC,IAQFslK,EAAa1S,EARTvxF,EAAoBljF,KAAlB,GAAEkiL,EAAgBliL,KAAL,YACjBonL,GAAQ,IAAA1iG,YAAWhoE,GACnB2qK,EAAQ,GACRvmL,EAAuB,UAAf+gB,EAAI5S,OAAqB4S,EAAImkK,QAAU,EAAInkK,EAAImkK,QACvDd,EAAcllL,KAAKwiJ,YAAY0kC,EAAKE,GACpCE,GAAmB,gBAAEJ,GAAKxuK,KAAK,cAC7BosK,EAAkCI,EAAW,SAAnC5nC,EAAwB4nC,EAAW,SAAzBtjI,EAAcsjI,EAAW,UAC/CrxD,EAAYixD,aAAoB,KAAa,EAAII,EAAYrxD,UAGnE,GAAIyzD,GAAoBzzD,GAAajyE,EAAW,CAC9C,IAAM/3C,EAAY,CAAEpG,GAAI3C,EAAOyB,OAAQ,kBACjCwwI,EAAa/yI,KAAKujL,iBAAiBjmC,EAAUwnC,GAEnD,GAAK5C,EAgBHiF,GAAc,IAAA9kL,YAAW6/K,GAAeA,IAAgBA,EACxDr4K,EAAK0+H,kBAAmB,EACxB1+H,EAAKtH,OAAS,oBAlBE,CAChB,IAAMglL,EAAWjqC,EAASr4I,WAAWJ,QAAQy4I,GACvCkqC,EAAiBF,IAAqBhqC,EAASr4I,aAElCuiL,KADDD,IAAazmL,GAASymL,IAAazmL,EAAQ,IACViyI,KAGjDo0C,EAAc7pC,EAASr4I,WAAWG,OAAOk4I,EAAU,CACjD90B,WAAW,IAETg/D,GAAkB1mL,EAAQymL,IAC5B19K,EAAKpG,GAAK3C,EAAQ,G,CAUpBqmL,IACEp0C,UACKlpI,EAAKpG,GACZgxK,EAAUqQ,EAAS7rF,UAAUi/C,gBAAgBivC,EAAat9K,IAE1D4qK,EAAU6S,EAAiBhjL,IAAI6iL,EAAat9K,WAIzC7J,KAAKkiL,mBACLliL,KAAKmjL,U,MACP,GAAIjgG,EAAI,CACb,IAAM8hG,EAAWE,EAAYF,WAAYF,aAAQ,EAARA,EAAUnhL,IAAI,cACjDohL,EAAWG,EAAYH,WAAYznC,aAAQ,EAARA,EAAU35I,IAAI,eAEtD2jL,GAAoBD,EAAM1iL,KAAK,gCAC/BkvH,GAAamxD,GAAYqC,EAAM1iL,KAAK,4CAAqCqgL,EAAQ,OACjFpjI,GAAamjI,GAAYsC,EAAM1iL,KAAK,kDAA2CogL,EAAQ,MACxF7hG,EAAGuC,WAAW,0BAA2B,CACvC6oE,OAAQ+4B,EACRliL,MAAOm4I,EACPvzI,QAAS,SACTwc,OAAQu+J,G,CAaZ,OATA5hG,SAAAA,EAAIp/E,QAAQ,kBAAmB,CAC7BwjL,iBAAgB,EAChBH,YAAW,EACXE,MAAK,EACLnC,YAAW,EACXgC,IAAG,EACHE,MAAK,IAGA3S,CACT,EAOA,YAAA3kF,SAAA,SAAS5kF,IACP,IAAAC,KAAInL,KAAKgiL,eAAgB,UAAWhiL,KAAK8vF,UAG9B,KAFC5kF,EAAEnJ,OAASmJ,EAAEgrD,WAGvBl2D,KAAK0+D,OAAQ,EACb1+D,KAAKuwF,UAET,EACF,EAjvCA,CAAoC,M,8PCgLpC,cA6BE,WAAY1mF,QAAA,IAAAA,IAAAA,EAAA,IACV7J,KAAK02H,QAAU,CACb6d,cAAc,EACdkzC,kBAAmB,WAAO,EAC1B3zE,KAAM,EACN4zE,OAAQ,GACRC,OAAQvgL,IACR80F,WAAY,KACZE,UAAW,KACXhB,UAAW,SACXC,SAAU,QACVC,aAAa,EACbssF,cAAc,EACdC,sBAAsB,EACtBtsF,gBAAgB,EAChBC,eAAe,EACfQ,YAAY,EACZF,WAAW,EACXgsF,IAAI,EACJnV,IAAI,EACJ1jE,IAAI,EACJmuB,IAAI,EACJ2qD,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,IAAI,GAENloL,KAAK6J,KAAO,MAAK7J,KAAK02H,SACtB12H,KAAK+P,WAAWlG,IAChB,IAAAy4E,SAAQtiF,KAAM,gBAAiB,kBAAmB,OAAQ,OAC5D,CAgcF,OA1bE,YAAA4mF,UAAA,WACE,OAAO5mF,KAAK6J,IACd,EAMA,YAAAkG,WAAA,SAAWlN,EAAuCqD,QAAvC,IAAArD,IAAAA,EAAA,IACT7C,KAAK6J,KAAO,SACN3D,EAAQlG,KAAK02H,QAAU12H,KAAK6J,MAC7BhH,GAEL7C,KAAKmoL,OACP,EAKA,YAAAA,MAAA,WACE,IAAMt+K,EAAO7J,KAAK6J,KACZo6E,EAAMp6E,EAAKmsF,QAAU,GACrBpE,EAAW/nF,EAAK+nF,UAAYl9E,SAASoI,KACvC2jC,EAAYzgD,KAAKygD,UAUrB,IAPKA,KACHA,EAAY/rC,SAASC,cAAc,QACzBC,UAAY,UAAGqvE,EAAG,aAC5B2N,EAASntE,YAAYg8B,GACrBzgD,KAAKygD,UAAYA,GAGZA,EAAUxjC,YACfwjC,EAAU3iC,YAAY2iC,EAAUxjC,YAIlC,IAAMjS,EAAqB,CAAC,EAM5B,IAAK,IAAI8b,IALT,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMrR,SAE/C,SAAA2yK,GAAO,OAACp9K,EAASo9K,GAAOv+K,EAAKu+K,GA7Hb,SAACz+K,EAAcE,QAAA,IAAAA,IAAAA,EAAA,IACnC,IAAIo6E,EAAMp6E,EAAKmsF,QAAU,GACrB5hF,EAAKM,SAASC,cAAc,KAGhC,OAFAP,EAAGQ,UAAYqvE,EAAM,aAAeA,EAAM,aAAet6E,EACzDyK,EAAG2Q,aAAa,QAAUk/D,EAAM,UAAWt6E,GACpCyK,CACT,CAuH0Ci0K,CAAcD,EAAKv+K,GAAQ,IAAxD,IAGKmB,EAAU,CACtB,IAAMU,EAAUV,EAAS8b,GACzBpb,GAAW+0C,EAAUh8B,YAAY/Y,E,CAGnC1L,KAAKgL,SAAWA,EAChBhL,KAAKk2F,gBAAkBrsF,EAAKqsF,gBAC5Bl2F,KAAKs8F,aAAezyF,EAAKyyF,aACzBt8F,KAAKi2F,WAAapsF,EAAKosF,WACvBj2F,KAAK0jF,QAAU75E,EAAK65E,QACpB1jF,KAAKq8F,OAASxyF,EAAKwyF,OACnBr8F,KAAK4jF,MAAQ/5E,EAAK+5E,MAClB5jF,KAAKynL,kBAAoB59K,EAAK49K,iBAChC,EAMA,YAAAa,aAAA,SAAa16K,GACX,GAAI5N,KAAK6J,KAAK+9K,aAAc,CAC1B,IAAM,EAASlzK,SAAS0gF,iBAAiB,WACzC,IAAA7vF,MAAK,GAAQ,SAAA4qF,GAAS,OAACA,EAAMxzE,MAAMqmC,cAAgBp1C,EAAS,OAAS,EAA/C,G,CAE1B,EAOA,YAAA26K,UAAA,SAAUn0K,GACA,IAAApJ,EAAahL,KAAI,SAEzB,IAAK,IAAI8mB,KAAK9b,EACZ,GAAIA,EAAS8b,KAAO1S,EAAI,OAAO,EAGjC,OAAO,CACT,EAMA,YAAAo0K,aAAA,WACE,OAAOxoL,KAAKoU,EACd,EAMA,YAAAq0K,YAAA,W,MACE,OAAc,QAAP,EAAAzoL,KAAKoU,UAAE,eAAEgc,aAClB,EAKA,YAAAw0E,cAAA,WACE,MAAO,CAAC5kG,KAAKoU,GAAI8b,cAAexb,SAClC,EAQA,YAAAkzE,cAAA,SAAcxzE,EAAiBvK,QAAA,IAAAA,IAAAA,EAAA,IACrB,IAAAosF,EAAej2F,KAAI,WAC3B,OAAOi2F,EAAaA,EAAW7hF,EAAIvK,GAhMf,SAACuK,EAAiB4jF,GACxC,IAAIjiD,EAAIiiD,GAAOj4F,OACXuoC,EAAOl0B,EAAGob,wBACd,MAAO,CACLE,KAAM4Y,EAAK5Y,KAAOqmB,EAAEhK,YACpBjD,IAAKR,EAAKQ,IAAMiN,EAAE3J,YAClBjG,MAAOmC,EAAKnC,MACZrT,OAAQwV,EAAKxV,OAEjB,CAuL+C41J,CAAgBt0K,EAC7D,EAMA,YAAA4gC,MAAA,SAAM5gC,GAEAA,GAAMA,IAAOpU,KAAKoU,KAItBpU,KAAKoU,GAAKA,EACVpU,KAAK2oL,gBAAgB,CAAEC,WAAW,KAClC,IAAAnhL,IAAGzH,KAAK4kG,gBAAiB,cAAe5kG,KAAK6oL,iBAC/C,EAKA,YAAA9mH,KAAA,WACE/hE,KAAKygD,UAAW9jC,MAAMC,QAAU,OAE5B5c,KAAKoU,MACP,IAAAjJ,KAAInL,KAAK4kG,gBAAiB,cAAe5kG,KAAK6oL,wBACvC7oL,KAAKoU,GAEhB,EAMA,YAAA4H,MAAA,SAAMxP,GACJ,IAAMtB,EAAIsB,EAEV,GAAiB,IAAbtB,EAAEyjB,OAAN,CACAzjB,EAAEqiB,iBACFriB,EAAEmjB,kBACF,IAAMja,EAAKpU,KAAKoU,GACV88H,EAAWlxI,KAAKyoL,cAEhBxwK,EAASjY,KAAK6J,MAAQ,CAAC,EACvBi/K,EAAa9oL,KAAKk2F,gBAClBwmC,EAAW,QAAUzkH,EAAO+9E,OAAS,UACrC1tD,EAAOtoC,KAAK4nF,cAAcxzE,EAAK,CAAE0jH,gBAAgB,EAAMF,kBAAkB,IACzEmxD,EAAa/oL,KAAK4nF,cAAcspD,GAChC3qH,EAASrb,EAAEqb,OACjBvmB,KAAKgpL,YAAcziK,EAAOwgB,aAAa21F,GACvC18H,KAAKipL,eAAiB1iK,EACtBvmB,KAAKi8F,SAAW,CACd3oC,EAAGhrB,EAAKQ,IACR7mC,EAAGqmC,EAAK5Y,KACRqmB,EAAGzN,EAAKnC,MACRjT,EAAGoV,EAAKxV,QAEV9yB,KAAKkpL,QAAU,CACb51H,EAAGhrB,EAAKQ,IACR7mC,EAAGqmC,EAAK5Y,KACRqmB,EAAGzN,EAAKnC,MACRjT,EAAGoV,EAAKxV,QAEV9yB,KAAKmpL,SAAWL,EACZA,EAAW59K,GACX,CACE2oB,EAAG3oB,EAAE6kC,QACLnC,EAAG1iC,EAAE8kC,SAEXhwC,KAAKopL,UAAY,CACf91H,EAAGy1H,EAAWjgJ,IACd7mC,EAAG8mL,EAAWr5J,KACdqmB,EAAGgzI,EAAW5iJ,MACdjT,EAAG61J,EAAWj2J,QAIhB,IAAMooE,EAAOl7F,KAAK4kG,gBAClB5kG,KAAKk7F,KAAOA,GACZ,IAAAzzF,IAAGyzF,EAAM,cAAel7F,KAAKggE,OAC7B,IAAAv4D,IAAGyzF,EAAM,UAAWl7F,KAAKk2J,gBACzB,IAAAzuJ,IAAGyzF,EAAM,YAAal7F,KAAK2d,OAC3B,IAAAtb,YAAWrC,KAAK0jF,UAAY1jF,KAAK0jF,QAAQx4E,EAAG,CAAEgwF,KAAI,EAAEjjF,OAAM,EAAE7D,GAAE,EAAE+mF,QAxChDn7F,OAyChBA,KAAKsoL,cAAa,GAClBtoL,KAAKggE,KAAK90D,EA/CgB,CAgD5B,EAMA,YAAA80D,KAAA,SAAKxzD,GACH,IAAMtB,EAAIsB,EACJ6vF,EAASr8F,KAAKq8F,OACdysF,EAAa9oL,KAAKk2F,gBAClBmP,EAAayjF,EACfA,EAAW59K,GACX,CACE2oB,EAAG3oB,EAAE6kC,QACLnC,EAAG1iC,EAAE8kC,SAEXhwC,KAAKqlG,WAAaA,EAClBrlG,KAAK6iD,MAAQ,CACXhvB,EAAGwxE,EAAWxxE,EAAI7zB,KAAKmpL,SAAUt1J,EACjC+Z,EAAGy3D,EAAWz3D,EAAI5tC,KAAKmpL,SAAUv7I,GAEnC5tC,KAAKiB,KAAO,CACV4C,MAAOqH,EAAEqrD,SACTd,KAAMvqD,EAAE0jB,QACR4mC,IAAKtqD,EAAEmrD,QAGTr2D,KAAKkpL,QAAUlpL,KAAKqpL,KAAKrpL,MACzBA,KAAKspL,YAAW,GAGhBjtF,GAAUA,EAAOnxF,EACnB,EAMA,YAAAyS,KAAA,SAAKzS,GACH,IAAMkJ,EAAKpU,KAAKoU,GACV6D,EAASjY,KAAK6J,KACdqxF,EAAOl7F,KAAKk7F,MAAQl7F,KAAK4kG,iBAC/B,IAAAz5F,KAAI+vF,EAAM,cAAel7F,KAAKggE,OAC9B,IAAA70D,KAAI+vF,EAAM,UAAWl7F,KAAKk2J,gBAC1B,IAAA/qJ,KAAI+vF,EAAM,YAAal7F,KAAK2d,MAC5B3d,KAAKspL,YAAW,GAChBtpL,KAAKsoL,gBACL,IAAAjmL,YAAWrC,KAAK4jF,QAAU5jF,KAAK4jF,MAAM14E,EAAG,CAAEgwF,KAAI,EAAEjjF,OAAM,EAAE7D,GAAE,EAAE+mF,QAASn7F,cAC9DA,KAAKk7F,IACd,EAKA,YAAAouF,WAAA,SAAW/sF,GACT,IAAMnoF,EAAKpU,KAAKoU,GAEV6D,EAASjY,KAAK6J,KACdy+B,EAAOtoC,KAAKkpL,QACZ5sF,EAAet8F,KAAKs8F,aACpBE,EAAkBx8F,KAAKupL,qBACrBrtF,EAA+CjkF,EAAM,WAAzCmkF,EAAmCnkF,EAAM,UAA9BojF,EAAwBpjF,EAAM,SAApBmjF,EAAcnjF,EAAM,UAG7D,IAAI,IAAA5V,YAAWi6F,GACbA,EAAaloF,EAAIk0B,EAAM,CACrBi0D,MAAK,EACLC,gBAAe,EACfrB,QAZYn7F,KAaZiY,OAAM,QAEH,CACL,IAAMuxK,EAAUp1K,EAAGuI,MACnB6sK,EAAQnuF,GAAa/yD,EAAKyN,EAAIqmD,EAC9BotF,EAAQpuF,GAAc9yD,EAAKpV,EAAIgpE,EAC/BstF,EAAQ1gJ,IAAMR,EAAKgrB,EAAI4oC,EACvBstF,EAAQ95J,KAAO4Y,EAAKrmC,EAAIm6F,C,CAG1Bp8F,KAAK2oL,iBACP,EAEA,YAAAA,gBAAA,SAAgBr7H,G,WAAA,IAAAA,IAAAA,EAAA,IACR,MAA0BttD,KAAxB6J,EAAI,OAAE42C,EAAS,YAAErsC,EAAE,KACnBuI,EAAU8jC,EAAU,OAEvB52C,EAAKg+K,sBAAwBzzK,GAM5Bk5C,EAAIs7H,YAAWjsK,EAAMC,QAAU,SAGf,QAAtB,EAAA5c,KAAKynL,yBAAiB,mBAAG,CACvBrzK,GAAIqsC,EACJ06C,QAASn7F,KACT6J,KAAM,SACDA,GACAyjD,IAGT,EAMA,YAAAi8H,mBAAA,WACE,IAAIv+K,EAAWhL,KAAKgL,SAEpB,GAAKhL,KAAKw8F,gBAIV,IAAK,IAAI11E,KAAK9b,EACZ,GAAIA,EAAS8b,KAAO9mB,KAAKw8F,gBAAiB,OAAO11E,CAErD,EAMA,YAAAovI,cAAA,SAAchrJ,GAEM,KAAdA,EAAEgrD,UAEJl2D,KAAKkpL,QAAUlpL,KAAKi8F,SACpBj8F,KAAK2d,KAAKzS,GAEd,EAMA,YAAA29K,gBAAA,SAAgB39K,GACd,IAAMkJ,EAAKlJ,EAAEqb,OAETvmB,KAAKuoL,UAAUn0K,IACjBpU,KAAKw8F,gBAAkBpoF,EACvBpU,KAAKgc,MAAM9Q,IACFkJ,IAAOpU,KAAKoU,YACdpU,KAAKw8F,gBACZx8F,KAAK+hE,OAET,EAMA,YAAAsnH,KAAA,SAAK3wK,GACH,IAAIhR,EACEmC,EAAO7J,KAAK6J,MAAQ,CAAC,EACrBiqG,EAAOjqG,EAAKiqG,KACZ7X,EAAWj8F,KAAKi8F,SAChByrF,EAAS79K,EAAK69K,OACdC,EAAS99K,EAAK89K,OACdxkI,EAASzqC,EAAKmqC,MAAOhvB,EACrBuvB,EAAS1qC,EAAKmqC,MAAOjV,EACrB67I,EAAUzpL,KAAKopL,UAAWrzI,EAC1B2zI,EAAU1pL,KAAKopL,UAAWl2J,EAC1BkpE,EAAYp8F,KAAK6J,KAAKuyF,UACtBF,EAAal8F,KAAK6J,KAAKqyF,WACvBytF,EAAuB,MAAdvtF,EAAqBH,EAASlmD,EAAI,IAAO0zI,EAAUxtF,EAASlmD,EACrE6zI,EAAwB,MAAf1tF,EAAsBD,EAAS/oE,EAAI,IAAOw2J,EAAUztF,EAAS/oE,EACtEib,EAAe,CACnBmlB,EAAG2oC,EAAS3oC,EACZrxD,EAAGg6F,EAASh6F,EACZ8zC,EAAG4zI,EACHz2J,EAAG02J,GAGL,GAAKlxK,EAAL,CAEA,IAAIlR,EAAOkR,EAAKswK,aACXxhL,EAAK3C,QAAQ,OAChB6C,EACgB,MAAd00F,GACI,IAAAyX,iBAAiB81E,EAASxmI,EAAS2wD,GAAQ21E,EAAW,IAAK,MAC3D,IAAA51E,gBAAe81E,EAASxmI,EAAS2wD,EAAMA,GAC7CpsG,EAAQwE,KAAKC,IAAIu7K,EAAQhgL,GACzBigL,IAAWjgL,EAAQwE,KAAKiE,IAAIw3K,EAAQjgL,IACpCymC,EAAI4H,EAAIruC,IAELF,EAAK3C,QAAQ,OAChB6C,EACiB,MAAfw0F,GACI,IAAA2X,iBAAiB+1E,EAASxmI,EAAS0wD,GAAQ41E,EAAW,IAAK,MAC3D,IAAA71E,gBAAe+1E,EAASxmI,EAAS0wD,EAAMA,GAC7CpsG,EAAQwE,KAAKC,IAAIu7K,EAAQhgL,GACzBigL,IAAWjgL,EAAQwE,KAAKiE,IAAIw3K,EAAQjgL,IACpCymC,EAAIjb,EAAIxrB,IAELF,EAAK3C,QAAQ,OAChB6C,EACgB,MAAd00F,GACI,IAAAyX,iBAAiB81E,EAASxmI,EAAS2wD,GAAQ21E,EAAW,IAAK,MAC3D,IAAA51E,gBAAe81E,EAASxmI,EAAS2wD,EAAMA,GAC7CpsG,EAAQwE,KAAKC,IAAIu7K,EAAQhgL,GACzBigL,IAAWjgL,EAAQwE,KAAKiE,IAAIw3K,EAAQjgL,IACpCymC,EAAI4H,EAAIruC,IAELF,EAAK3C,QAAQ,OAChB6C,EACiB,MAAfw0F,GACI,IAAA2X,iBAAiB+1E,EAASxmI,EAAS0wD,GAAQ41E,EAAW,IAAK,MAC3D,IAAA71E,gBAAe+1E,EAASxmI,EAAS0wD,EAAMA,GAC7CpsG,EAAQwE,KAAKC,IAAIu7K,EAAQhgL,GACzBigL,IAAWjgL,EAAQwE,KAAKiE,IAAIw3K,EAAQjgL,IACpCymC,EAAIjb,EAAIxrB,GAIV,IAAImiL,EAAchgL,EAAK0qI,cAAgB77H,EAAKzX,KAAM4C,MAAQ6U,EAAKzX,KAAM4C,MACrE,GAAI2D,EAAK3C,QAAQ,KAAO,GAAKglL,EAAa,CACxC,IAAIC,EAAQ7tF,EAASlmD,EAAIkmD,EAAS/oE,EAC9Bib,EAAI4H,EAAI5H,EAAIjb,EAAI42J,EAClB37I,EAAIjb,EAAIhnB,KAAKikC,MAAMhC,EAAI4H,EAAI+zI,GAE3B37I,EAAI4H,EAAI7pC,KAAKikC,MAAMhC,EAAIjb,EAAI42J,E,CAW/B,IAAK,IAAMzoL,KAPNmG,EAAK3C,QAAQ,OAChBspC,EAAIlsC,GAAKg6F,EAASlmD,EAAI5H,EAAI4H,IAEvBvuC,EAAK3C,QAAQ,OAChBspC,EAAImlB,GAAK2oC,EAAS/oE,EAAIib,EAAIjb,GAGVib,EAAK,CACrB,IAAMtuC,EAAIwB,EACV8sC,EAAItuC,GAAK6nC,SAAS,UAAGyG,EAAItuC,IAAM,G,CAGjC,OAAOsuC,CA/DU,CAgEnB,EACF,EA3fA,G,8vBClOA,YAME,WAAY+0C,GAAZ,MACE,YAAMA,EAAI,UAAQ,K,OANpB,EAAA2b,OAAS,GACT,EAAAtI,QAAU,GACV,EAAAg+B,QAAUA,GAAA,EACV,EAAAjuD,QAAU,MAAK,G,CAIf,CAGF,OAXyC,QAUvC,YAAAj3D,QAAA,WAAW,EACb,EAXA,CAAyC,GCHzC,IAAI81B,GACFjY,GAAY,CAAC,EACb68J,GAAQ,CACN,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,GAENC,GAAS,MAETC,GAAa,CACX,IAAK,GACLpmL,MAAO,GACP,IAAK,GACL2xD,IAAK,GACLyI,OAAQ,GACR,IAAK,GACLxI,KAAM,GACNy0H,QAAS,GACT,IAAK,GACL1zF,QAAS,IAGX2zF,GAAO,CACLC,UAAW,EACXC,IAAK,EACL3hL,MAAO,GACP65D,MAAO,GACP+nH,OAAQ,GACRC,IAAK,GACL/8K,OAAQ,GACRsiC,MAAO,GACPpgB,KAAM,GACNmtC,GAAI,GACJltC,MAAO,GACP66J,KAAM,GACNC,IAAK,GACL3nE,OAAQ,GACR4nE,KAAM,GACN1oK,IAAK,GACL2oK,OAAQ,GACRC,SAAU,GACV,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,KAER5/J,GAAO,SAAU6I,GACf,OAAOs2J,GAAKt2J,IAAMA,EAAE1K,cAAcO,WAAW,EAC/C,EACAmhK,GAAY,GAEd,IAAK1lJ,GAAI,EAAGA,GAAI,GAAIA,KAAKglJ,GAAK,IAAMhlJ,IAAK,IAAMA,GAG/C,SAASrkC,GAAMmP,EAAOw2E,GAEpB,IADA,IAAI5mF,EAAIoQ,EAAMtP,OACPd,QAASoQ,EAAMpQ,KAAO4mF,EAAM,OAAO5mF,EAC1C,OAAQ,CACV,CAGA,SAASirL,GAAar+K,EAAIC,GACxB,GAAID,EAAG9L,QAAU+L,EAAG/L,OAAQ,OAAO,EACnC,IAAK,IAAId,EAAI,EAAGA,EAAI4M,EAAG9L,OAAQd,IAC7B,GAAI4M,EAAG5M,KAAO6M,EAAG7M,GAAI,OAAO,EAE9B,OAAO,CACT,CAEA,IAAIkrL,GAAc,CAChB,GAAI,WACJ,GAAI,SACJ,GAAI,UACJ,GAAI,WAGN,SAASC,GAAkBr4K,GACzB,IAAKwyB,MAAK4kJ,GAAOA,GAAM5kJ,IAAKxyB,EAAMo4K,GAAY5lJ,IAChD,CAuDA,SAAS8lJ,GAAct4K,GACrB,IACEwyB,EADE9jC,EAAMsR,EAAMujD,QAEdr2D,EAAIiB,GAAM+pL,GAAWxpL,GAQvB,GALIxB,GAAK,GACPgrL,GAAUjmL,OAAO/E,EAAG,GAGX,IAAPwB,GAAoB,KAAPA,IAAYA,EAAM,IAC/BA,KAAO0oL,GAET,IAAK5kJ,KADL4kJ,GAAM1oL,IAAO,EACH4oL,GAAgBA,GAAW9kJ,IAAM9jC,IAAK6pL,GAAU/lJ,IAAK,EAEnE,CAEA,SAASgmJ,KACP,IAAKhmJ,MAAK4kJ,GAAOA,GAAM5kJ,KAAK,EAC5B,IAAKA,MAAK8kJ,GAAYiB,GAAU/lJ,KAAK,CACvC,CAGA,SAAS+lJ,GAAU7pL,EAAK+pL,EAAOn8K,GAC7B,IAAIhO,EAAMoqL,EACVpqL,EAAOqqL,GAAQjqL,QACAgE,IAAX4J,IACFA,EAASm8K,EACTA,EAAQ,OAIV,IAAK,IAAIvrL,EAAI,EAAGA,EAAIoB,EAAKN,OAAQd,IAE/BwrL,EAAO,IACPhqL,EAAMJ,EAAKpB,GAAGoK,MAAM,MACZtJ,OAAS,IACf0qL,EAAOE,GAAQlqL,GACfA,EAAM,CAACA,EAAIA,EAAIV,OAAS,KAG1BU,EAAMA,EAAI,IACVA,EAAM2pB,GAAK3pB,MAEE6rB,KAAYA,GAAU7rB,GAAO,IAC1C6rB,GAAU7rB,GAAKsD,KAAK,CAClB6mL,SAAUvqL,EAAKpB,GACfurL,MAAOA,EACPn8K,OAAQA,EACR5N,IAAKJ,EAAKpB,GACVwrL,KAAMA,GAGZ,CA2DA,IAAKlmJ,MAAK8kJ,GAAYiB,GAAU/lJ,KAAK,EAOrC,SAASsmJ,KACP,OAAOzB,IAAU,KACnB,CAgBA,SAASsB,GAAQjqL,GACf,IAAIJ,EAMJ,MAH6B,KAD7BA,GADAI,EAAMA,EAAIoO,QAAQ,MAAO,KACdxF,MAAM,MACRhJ,EAAKN,OAAS,KACrBM,EAAKA,EAAKN,OAAS,IAAM,KAEpBM,CACT,CAGA,SAASsqL,GAAQlqL,GAEf,IADA,IAAIgqL,EAAOhqL,EAAIf,MAAM,EAAGe,EAAIV,OAAS,GAC5B+qL,EAAK,EAAGA,EAAKL,EAAK1qL,OAAQ+qL,IAAML,EAAKK,GAAMzB,GAAWoB,EAAKK,IACpE,OAAOL,CACT,CAGA,SAAS99E,GAAS7qG,EAAQiQ,EAAO1D,GAC3BvM,EAAO4a,iBAAkB5a,EAAO4a,iBAAiB3K,EAAO1D,GAAQ,GAC3DvM,EAAO6a,aACd7a,EAAO6a,YAAY,KAAO5K,GAAO,WAC/B1D,EAAOlP,OAAO4S,MAChB,GACJ,CAGAu4K,GAAUS,SAjDV,SAAkBP,GAChBpB,GAASoB,GAAS,KACpB,EAgDAF,GAAUO,SAAWA,GACrBP,GAAUU,YA1CV,SAAqBR,GACnB,IAAI/pL,EAAK2J,EAAUnL,EAEnB,IAAKwB,KAAO6rB,GAEV,IADAliB,EAAWkiB,GAAU7rB,GAChBxB,EAAI,EAAGA,EAAImL,EAASrK,QACnBqK,EAASnL,GAAGurL,QAAUA,EAAOpgL,EAASpG,OAAO/E,EAAG,GAC/CA,GAGX,EAiCAqrL,GAAUj1K,OA9DV,SAAgBtD,GACd,IAAIc,GAAWd,EAAM4T,QAAU5T,EAAM8b,YAAYhb,QAEjD,QAAoB,SAAXA,GAAiC,UAAXA,GAAkC,YAAXA,EACxD,EA2DAy3K,GAAUW,UA1EV,SAAmB31H,GAIjB,MAHsB,iBAAXA,IACTA,EAAUlrC,GAAKkrC,KAEoB,GAA9Bp1D,GAAM+pL,GAAW30H,EAC1B,EAsEAg1H,GAAUY,mBApEV,WACE,OAAOjB,GAAUvqL,MAAM,EACzB,EAmEA4qL,GAAUr+K,OAlHV,SAAmBxL,EAAK+pL,GACtB,IAAIW,EACF9qL,EAEApB,EACA4L,EACAzK,EAHAqqL,EAAO,GAOT,IAFAU,EAAeT,GAAQjqL,GAElBoK,EAAI,EAAGA,EAAIsgL,EAAaprL,OAAQ8K,IAAK,CAaxC,IAZAxK,EAAO8qL,EAAatgL,GAAGxB,MAAM,MAEpBtJ,OAAS,IAChB0qL,EAAOE,GAAQtqL,IAGjBI,EAAMJ,EAAKA,EAAKN,OAAS,GACzBU,EAAM2pB,GAAK3pB,QAEGgE,IAAV+lL,IACFA,EAAQK,OAELv+J,GAAU7rB,GACb,OAEF,IAAKxB,EAAI,EAAGA,EAAIqtB,GAAU7rB,GAAKV,OAAQd,KACrCmB,EAAMksB,GAAU7rB,GAAKxB,IAEburL,QAAUA,GAASN,GAAa9pL,EAAIqqL,KAAMA,KAChDn+J,GAAU7rB,GAAKxB,GAAK,CAAC,E,CAI7B,EAiFAqrL,GAAUlgL,SAAWkiB,GACrBg+J,GAAUlpI,KAAO,SAAAg2C,GAGfuV,GAASvV,EAAItjF,SAAU,WAAW,SAAU/B,IAnO9C,SAAkBA,GAChB,IAAItR,EAAKqK,EAASy5B,EAAGtlC,EAAGmsL,EAAgBZ,EASxC,GARA/pL,EAAMsR,EAAMujD,SAEkB,GAA1Bp1D,GAAM+pL,GAAWxpL,IACnBwpL,GAAUlmL,KAAKtD,GAIN,IAAPA,GAAoB,KAAPA,IAAYA,EAAM,IAC/BA,KAAO0oL,GAGT,IAAK5kJ,KAFL4kJ,GAAM1oL,IAAO,EAEH4oL,GAAgBA,GAAW9kJ,IAAM9jC,IAAK6pL,GAAU/lJ,IAAK,QAOjE,GAJA6lJ,GAAkBr4K,GAIbu4K,GAAUj1K,OAAOrV,KAAKZ,KAAM2S,IAG3BtR,KAAO6rB,GAKb,IAHAk+J,EAAQK,KAGH5rL,EAAI,EAAGA,EAAIqtB,GAAU7rB,GAAKV,OAAQd,IAIrC,IAHA6L,EAAUwhB,GAAU7rB,GAAKxB,IAGburL,OAASA,GAA0B,OAAjB1/K,EAAQ0/K,MAAgB,CAGpD,IAAKjmJ,KADL6mJ,EAAiBtgL,EAAQ2/K,KAAK1qL,OAAS,EAC7BopL,KACFA,GAAM5kJ,IAAMrkC,GAAM4K,EAAQ2/K,MAAOlmJ,IAAM,GAAO4kJ,GAAM5kJ,KAAkC,GAA5BrkC,GAAM4K,EAAQ2/K,MAAOlmJ,MACnF6mJ,GAAiB,IAEO,GAAvBtgL,EAAQ2/K,KAAK1qL,QAAgBopL,GAAM,KAAQA,GAAM,KAAQA,GAAM,KAAQA,GAAM,OAAQiC,IACjD,IAAnCtgL,EAAQuD,OAAO0D,EAAOjH,KACpBiH,EAAM4a,eAAgB5a,EAAM4a,iBAC3B5a,EAAMwb,aAAc,EACrBxb,EAAM0b,iBAAiB1b,EAAM0b,kBAC7B1b,EAAM2b,eAAc3b,EAAM2b,cAAe,G,CAKvD,CAmLI29J,CAASt5K,EACX,IACA46F,GAASvV,EAAItjF,SAAU,QAASu2K,IAChC19E,GAASvV,EAAK,QAASmzF,GACzB,EAEA,YCnQA,SA1C8B,CAC5BrkL,SAAU,CACR,YAAa,CACX7F,KAAM,cACNyK,QAAS,aAEX,YAAa,CACXzK,KAAM,0BACNyK,QAAS,aAEX,YAAa,CACXzK,KAAM,cACNyK,QAAS,aAEX,aAAc,CACZzK,KAAM,cACNyK,QAAS,cAEX,sBAAuB,CACrBzK,KAAM,IACNyK,QAAS,uBAEX,sBAAuB,CACrBzK,KAAM,IACNyK,QAAS,uBAEX,uBAAwB,CACtBzK,KAAM,IACNyK,QAAS,wBAEX,sBAAuB,CACrBzK,KAAM,IACNyK,QAAS,uBAEX,wBAAyB,CACvBzK,KAAM,oBACNyK,QAAS,wBACT7B,KAAM,CAAE02D,SAAS,M,+tBCTvB,IAAAi+B,WAAY0tF,GAAUlqI,KAAKjiD,QAE3B,mBAIE,WAAYmjF,GAAZ,MACE,YAAMA,EAAI,UAAW,KAAS,K,OAJhC,EAAAgpG,UAAiBA,GAKf,EAAKC,QAAU,CAAC,E,CAClB,CAqIF,OA5I2C,QASzC,YAAA7gE,OAAA,WACE,IAAM8gE,EAAUpsL,KAAKiY,OAAOnR,SAE5B,IAAK,IAAIwD,KAAM8hL,EAAS,CACtB,IAAM1kL,EAAQ0kL,EAAQ9hL,GACtBtK,KAAKsE,IAAIgG,EAAI5C,EAAMzG,KAAMyG,EAAMgE,QAAShE,EAAMmC,MAAQ,CAAC,E,CAE3D,EAkCA,YAAAvF,IAAA,SAAIgG,EAAkBrJ,EAAsByK,EAA4B7B,QAAA,IAAAA,IAAAA,EAAA,IAC9D,IAAAq5E,EAAOljF,KAAI,GACb01D,EAAMwtB,EAAGiC,SACT5C,EAASW,EAAGzwB,YACZgwB,EAASS,EAAGsB,OACZ5uB,EAAiB,CAAEtrD,GAAE,EAAErJ,KAAI,EAAEyK,QAAO,GAsB1C,OArBW1L,KAAKmsL,QAAQ7hL,IAClBtK,KAAKoF,OAAOkF,GAClBtK,KAAKmsL,QAAQ7hL,GAAMsrD,EACnBs2H,GACEjrL,GACA,SAACiK,EAAQgoB,GAEP,IAAMo6B,EAAM,CAAE36C,MAAOzH,EAAGgoB,EAAC,GACnBm5J,GAAa,IAAAn7K,UAASxF,GAAWgqD,EAAI/xD,IAAI+H,GAAWA,EAE1D,IADmBw3E,EAAG4W,cAAgBvX,EAAOiC,OAAO+xC,kBACnC1sH,EAAK40C,MAAO,CAC3B50C,EAAK02D,SAAWkiB,EAAOC,gBAAgBn1D,eAAeriB,IACtD,IAAA7I,YAAWgqL,GAAcA,EAAW9pG,EAAQ,EAAGj1B,GAAOoI,EAAIkgC,WAAWy2F,EAAY/+H,GACjF,IAAM5sD,EAAO,CAAC4J,EAAI4oB,EAAEs4J,SAAUtgL,GAC9Bg4E,EAAGp/E,QAAO,MAAVo/E,EAAE,IAAS,eAAkBxiF,GAAI,IACjCwiF,EAAGp/E,QAAO,MAAVo/E,EAAE,IAAS,sBAAe54E,IAAS5J,GAAI,G,CAE3C,QACA2E,GAEF69E,EAAGp/E,QAAQ,aAAc8xD,GAClBA,CACT,EAUA,YAAAjyD,IAAA,SAAI2G,GACF,OAAOtK,KAAKmsL,QAAQ7hL,EACtB,EASA,YAAAqhF,OAAA,WACE,OAAO3rF,KAAKmsL,OACd,EAUA,YAAA/mL,OAAA,SAAOkF,GACG,IAAA44E,EAAOljF,KAAI,GACb41D,EAAS51D,KAAK2D,IAAI2G,GAExB,GAAIsrD,EAOF,cANO51D,KAAKmsL,QAAQ7hL,GACpBsrD,EAAO30D,KAAKgJ,MAAM,MAAMwL,SAAQ,SAAA0vB,GAE9B+mJ,GAAUr/K,OAAOs4B,EAAEmjD,OACrB,IACApF,SAAAA,EAAIp/E,QAAQ,gBAAiB8xD,GACtBA,CAEX,EAMA,YAAA02H,UAAA,sBAGE,OAFAtjK,OAAO/nB,KAAKjB,KAAKmsL,SAAS12K,SAAQ,SAAAmgD,GAAU,SAAKxwD,OAAOwwD,EAAZ,IAC5Cs2H,GAAUlhL,SAAW,CAAC,EACfhL,IACT,EAEA,YAAAqP,QAAA,WACErP,KAAKssL,YACLtsL,KAAKmsL,QAAU,CAAC,CAClB,EACF,EA5IA,CAA2C,G,YCnB3C,SAT4B,CAC1BjoG,YAAa,OACbjmE,MAAO,GACPc,QAAS,GACTwtK,UAAU,EACV17F,QAAQ,EACRlqF,OAAQ,CAAC,G,ogBC/BX,yB,8CAiBA,QAjBmC,QACjC,YAAAG,SAAA,WACE,MAAO,CACLmX,MAAO,GACPc,QAAS,GACT/X,WAAY,CAAC,EACbmW,MAAM,EAEV,EAEA,YAAAA,KAAA,WACEnd,KAAKyF,IAAI,QAAQ,EACnB,EAEA,YAAA2X,MAAA,WACEpd,KAAKyF,IAAI,QAAQ,EACnB,EACF,EAjBA,CAAmC,G,kvBCAnC,YA0BE,WAAY0wB,GAAZ,MACE,YAAMA,IAAE,KACFhxB,EAAQ,EAAKA,M,OACnB,EAAKqF,SAASrF,EAAO,cAAe,EAAKqnL,YACzC,EAAKhiL,SAASrF,EAAO,eAAgB,EAAKsnL,aAC1C,EAAKjiL,SAASrF,EAAO,iBAAkB,EAAKqsI,e,CAC9C,CA6GF,OA7IuC,QACrC,YAAA90B,SAAA,SAAS,G,IAAEz4B,EAAG,MAAEV,EAAI,OAAExkE,EAAO,UAAEd,EAAK,QAClC,MAAO,uBAAegmE,EAAG,kBAAUV,EAAI,kBAAUA,EAAI,4CACrCU,EAAG,2CACDA,EAAG,mBAAUhmE,EAAK,wCAClBgmE,EAAG,wFAELA,EAAG,yCACJA,EAAG,eAAMllE,EAAO,wGAIjBklE,EAAG,6CACnB,EAEA,YAAAv6E,OAAA,WACE,MAAO,CACLuiF,MAAO,UACP,2BAA4B,OAEhC,EAcA,YAAAmF,QAAA,SAAQlmF,GACMlL,KAAKiY,OAAOs0K,UACjBrhL,EAAEqb,SAAWvmB,KAAKoU,IAAMpU,KAAK2zF,MACtC,EAOA,YAAA+4F,aAAA,WAEE,OADK1sL,KAAK2sL,aAAY3sL,KAAK2sL,WAAa3sL,KAAK2T,IAAIC,KAAK,IAAM5T,KAAKikF,IAAM,cAChEjkF,KAAK2sL,UACd,EAMA,YAAAh1C,WAAA,WACE,IAAM1zD,EAAMjkF,KAAKikF,IAMjB,OAJKjkF,KAAK4sL,WACR5sL,KAAK4sL,SAAW5sL,KAAK2T,IAAIC,KAAK,WAAIqwE,EAAG,oBAAYA,EAAG,OAG/CjkF,KAAK4sL,QACd,EAOA,YAAAC,SAAA,SAAShjL,GAEP,YAFO,IAAAA,IAAAA,EAAA,IACF7J,KAAK8sL,SAAQ9sL,KAAK8sL,OAAS9sL,KAAK2T,IAAIC,KAAK,IAAM5T,KAAKikF,IAAM,UACxDp6E,EAAKd,EAAI/I,KAAK8sL,OAAS9sL,KAAK8sL,OAAOnpL,IAAI,EAChD,EAMA,YAAA6tI,cAAA,WACE,IAAIzyH,EAAU/e,KAAK23I,aACbplH,EAAWxT,EAAQwT,WACnBy4D,EAAOhrF,KAAK0sL,eACZ5vK,EAAO9c,KAAKmF,MAAMxB,IAAI,WAC5B4uB,EAAS5xB,QAAUqqF,EAAKgI,OAAOzgE,GAC/BxT,EAAQizB,QAAQghD,OAAOl2E,EACzB,EAMA,YAAA2vK,YAAA,WACE,IAAMxuK,EAAQje,KAAK6sL,SAAS,CAAE9jL,GAAG,IAEjCkV,GAASA,EAAM+zB,QAAQghD,OAAOhzF,KAAKmF,MAAMxB,IAAI,SAC/C,EAMA,YAAA6oL,WAAA,WACExsL,KAAKoU,GAAGuI,MAAMC,QAAU5c,KAAKmF,MAAMxB,IAAI,QAAU,GAAK,MACxD,EAMA,YAAAgwF,KAAA,WACE3zF,KAAKmF,MAAMiY,OACb,EAMA,YAAAs2E,KAAA,WACE1zF,KAAKmF,MAAMgY,MACb,EAEA,YAAA4vK,WAAA,SAAWvlL,GACH,MAAmBxH,KAAjBikF,EAAG,MAAEtwE,EAAG,MAAES,EAAE,KAEd44K,EAAW,GAAG1sL,MAAMM,KAAKwT,EAAGpN,YAAYlC,KAAI,SAAAjF,GAAK,OAAAA,EAAE8J,IAAF,IACvDgK,EAAIm2F,WAAWkjF,EAASv9H,KAAK,MAC7B97C,EAAInM,KAAK,SACHA,GAAQ,CAAC,GAAE,CACf2lF,MAAO,UAAGlJ,EAAG,qBAAcz8E,GAAQA,EAAK2lF,OAAU,IAAK7E,SAE3D,EAEA,YAAAz0E,OAAA,WACE,IAAMO,EAAKpU,KAAK2T,IACV3S,EAAMhB,KAAKmF,MAAMmI,SAMvB,OALAtM,EAAIijF,IAAMjkF,KAAKikF,IACfjjF,EAAIuiF,KAAOvjF,KAAKujF,KAChBnvE,EAAG8hE,KAAKl2E,KAAK08G,SAAS17G,IACtBhB,KAAK+sL,aACL/sL,KAAKwsL,aACExsL,IACT,EACF,EA7IA,CAAuC,I,ogBC4CvC,YAQE,WAAYkjF,GAAZ,MACE,YAAMA,EAAI,QAAS,KAAS,KAiB5B,OAfA,EAAK/9E,MAAQ,IAAI,GAAO,GACxB,EAAKA,MAAMsC,GAAG,eAAe,SAAC+J,EAAWyxE,GACvCC,EAAGp/E,QAAQ,gBAASm/E,EAAS,OAAS,SACxC,IACA,EAAK99E,MAAMsC,GACT,UACA,IAAA6/E,WAAS,WACP,IAAM5uE,EAAO,EAAKu0K,UACVp8F,EAAW,EAAK54E,OAAM,QAE9B,IAAA5V,YAAWwuF,IAAWA,EAAOn4E,GAC7BwqE,EAAGp/E,QAAQ,QAAS4U,EACtB,GAAG,IAGE,CACT,CAgMF,OA3NyC,QA6BvC,YAAAu0K,QAAA,sBACQC,EAAOltL,KAAK6sL,WACZh8D,EAAM7wH,KAAK23I,aACX,EAAuB33I,KAAKmF,MAAM6B,WACxC,MAAO,CACLmW,KAFU,OAGVnW,WAHsB,aAItBiX,OAAO,IAAA/M,UAASg8K,IAAQ,SAAWA,GAAQA,EAE3CnuK,SAAS,IAAA7N,UAAS2/G,IAAO,SAAWA,GAAOA,EAAIltH,IAAMktH,EAAIltH,IAAI,GAAKktH,EAClEzzG,MAAO,WACL,EAAKA,OACP,EAEJ,EAEA,YAAA62H,WAAA,SAAW3xG,GACT,IAAMluB,EAAKkuB,EAAKn9B,MAAM8S,OAAO7D,IAAMkuB,EAAKluB,GAClChQ,EAAMpE,KAAK6T,SACjBzP,IAAOgQ,SAAAA,EAAIqQ,YAAYrgB,GACzB,EAgBA,YAAA+Y,KAAA,SAAKtT,QAAA,IAAAA,IAAAA,EAAA,IACH,IAAMrC,EAAOqC,EAAK7C,YAAc,CAAC,EAMjC,OALA6C,EAAKoU,OAASje,KAAKmtL,SAAStjL,EAAKoU,OACjCpU,EAAKkV,SAAW/e,KAAKqtF,WAAWxjF,EAAKkV,SACrC/e,KAAKmF,MAAMM,IAAI,aAAc+B,GAC7BxH,KAAKmF,MAAMgY,OACXnd,KAAK2sF,OAAS3sF,KAAK2sF,MAAMogG,WAAWvlL,GAC7BxH,IACT,EAQA,YAAAod,MAAA,WAEE,OADApd,KAAKmF,MAAMiY,QACJpd,IACT,EAYA,YAAA+wF,UAAA,SAAUw+C,GAER,OADAvvI,KAAKkjF,GAAGr3E,KAAK,cAAe0jI,GACrBvvI,IACT,EAYA,YAAAotL,SAAA,SAAS79C,GAEP,OADAvvI,KAAKkjF,GAAGr3E,KAAK,aAAc0jI,GACpBvvI,IACT,EAQA,YAAAg3K,OAAA,WACE,QAASh3K,KAAKmF,MAAMxB,IAAI,OAC1B,EAcA,YAAAwpL,SAAA,SAASlvK,GAEP,OADAje,KAAKmF,MAAMM,IAAI,QAASwY,GACjBje,IACT,EAQA,YAAA6sL,SAAA,WACE,OAAO7sL,KAAKmF,MAAMxB,IAAI,QACxB,EAcA,YAAA0pF,WAAA,SAAWtuE,GAGT,OAFA/e,KAAKmF,MAAMM,IAAI,UAAW,KAC1BzF,KAAKmF,MAAMM,IAAI,UAAWsZ,GACnB/e,IACT,EAQA,YAAA23I,WAAA,WACE,OAAO33I,KAAKmF,MAAMxB,IAAI,UACxB,EAOA,YAAA0pL,aAAA,W,MACE,OAAiB,QAAV,EAAArtL,KAAK2sF,aAAK,eAAEgrD,aAAah0I,IAAI,EACtC,EAOA,YAAAoiF,SAAA,WACE,OAAO/lF,KAAKmF,KACd,EAOA,YAAA0O,OAAA,W,MACE,IAAI7T,KAAKiY,OAAO44E,OAAhB,CACA,IAAMx9E,EAAO,UAAiBrT,KAAKiY,OAAOtR,QACpCyN,EAAKpU,KAAK2sF,OAAS3sF,KAAK2sF,MAAMv4E,GAMpC,OALApU,KAAK2sF,MAAQ,IAAIt5E,EAAK,CACpBe,GAAE,EACFjP,MAAOnF,KAAKmF,MACZ8S,OAAQjY,KAAKiY,SAEE,QAAV,EAAAjY,KAAK2sF,aAAK,eAAE94E,SAASO,EARE,CAShC,EAEA,YAAA/E,QAAA,W,MACY,QAAV,EAAArP,KAAK2sF,aAAK,SAAEvnF,QACd,EACF,EA3NA,CAAyC,GC/CzC,IAAMkoL,GAAM,gBACNC,GAAO,kBACPC,GAAM,UACNC,GAAM,UACNC,GAAM,cACNC,GAAM,cACNC,GAAM,aACNC,GAAM,UAuGZ,SA7E6B,CAC3B3pG,YAAa,MACbp9E,SAAU,CACR,CACEwD,GAAI,WACJ21D,QAAS,CAAC,CAAC,IAEb,CACE31D,GAAI,UACJ21D,QAAS,CACP,CACE/gB,QAAQ,EACR50C,GAAIgjL,GACJ14K,UAAW,iBACX4hF,QAAS,yBACTzsF,QAASujL,GACTtmL,WAAY,CAAEiX,MAAO,oBAEvB,CACE3T,GAAIujL,GACJj5K,UAAW,YACX4hF,QAASq3F,GACT9jL,QAAS8jL,GACT7mL,WAAY,CAAEiX,MAAO,YAEvB,CACE3T,GAAIsjL,GACJh5K,UAAW,mBACX4hF,QAASo3F,GACT7jL,QAAS6jL,GACT5mL,WAAY,CAAEiX,MAAO,eAEvB,CACE3T,GAAIijL,GACJ34K,UAAW,aACX4hF,QAAS+2F,GACTvmL,WAAY,CAAEiX,MAAO,gBAI3B,CACE3T,GAAI,QACJ21D,QAAS,CACP,CACE31D,GAAIkjL,GACJ54K,UAAW,oBACX4hF,QAASg3F,GACTtuI,QAAQ,EACR4uI,WAAW,EACX9mL,WAAY,CAAEiX,MAAO,uBAEvB,CACE3T,GAAImjL,GACJ74K,UAAW,YACX4hF,QAASi3F,GACTK,WAAW,EACX9mL,WAAY,CAAEiX,MAAO,aAEvB,CACE3T,GAAIojL,GACJ94K,UAAW,aACX4hF,QAASk3F,GACTI,WAAW,EACX9mL,WAAY,CAAEiX,MAAO,uBAEvB,CACE3T,GAAIqjL,GACJ/4K,UAAW,iBACX4hF,QAASm3F,GACTG,WAAW,EACX9mL,WAAY,CAAEiX,MAAO,oB,ogBCnG/B,YAkDE,WAAYxe,EAAsBoD,GAAlC,MACE,YAAMpD,EAAQoD,IAAQ,K,OAClB,EAAKc,IAAI,WAAWhD,QACtB,EAAK8E,IAAI,UAAW,IAAI,GAAQ,EAAKhG,OAAQ,EAAKkE,IAAI,a,CAE1D,CACF,OAxDoC,QAClC,YAAAmD,SAAA,WACE,MAAO,CACLwD,GAAI,GACJoiE,MAAO,GACPj5D,QAAS,OACTmB,UAAW,GACX4hF,QAAS,GACTzsF,QAAS,GACTk2D,QAAS,GACTj5D,WAAY,CAAC,EACbnE,QAAS,CAAC,EACVq8C,QAAQ,EACRqf,UAAU,EACVuvH,WAAW,EACXC,mBAAmB,EACnBC,oBAAoB,EACpB3/F,SAAS,EAEb,EAEA,sBAAI,wBAAS,C,IAAb,WACE,OAAOruF,KAAK2D,IAAI,YAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,IACA,SAAW2xF,GACTt1F,KAAKyF,IAAI,SAAU6vF,EACrB,E,gCAEA,sBAAI,wBAAS,C,IAAb,WACE,OAAOt1F,KAAK2D,IAAI,YAClB,E,gCAEA,sBAAI,gCAAiB,C,IAArB,WACE,OAAO3D,KAAK2D,IAAI,oBAClB,E,gCACA,sBAAI,iCAAkB,C,IAAtB,WACE,OAAO3D,KAAK2D,IAAI,qBAClB,E,gCACA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAQF,EAxDA,CAAoC,G,2fCApC,eACE,WAAYlE,EAAsB+D,G,OAChC,YAAM/D,EAAQ+D,EAAQ,KAAO,IAC/B,CA+DF,OAlEqC,QAWnC,YAAAyqL,uBAAA,SAAuBC,EAAgBtoK,GACrC5lB,KAAKyV,SAAQ,SAACtQ,EAAOrE,GACfqE,IAAU+oL,IACZ/oL,EAAMM,IAAI,UAAU,GAChBmgB,GAAKzgB,EAAMxB,IAAI,WAAWhD,QAAQwE,EAAMxB,IAAI,WAAWsqL,uBAAuBC,EAAQtoK,GAE9F,GACF,EAQA,YAAAuoK,cAAA,SAAc1tL,EAAcwkF,GAC1B,IAAMl7E,EAAUtJ,GAAO,GACvBT,KAAKyV,SAAQ,SAAAtQ,GACPA,EAAMxB,IAAI,YAAcoG,GAAW5E,IAAU8/E,GAE/C9/E,EAAMM,IAAI,UAAU,EAAO,CAAE2oL,gBAAgB,GAEjD,GACF,EAQA,YAAAC,kBAAA,SAAkB5tL,GAChB,IAAIsJ,EAAUtJ,GAAO,GACrBT,KAAKyV,SAAQ,SAACtQ,EAAOrE,GACfqE,EAAMxB,IAAI,YAAcoG,GAC1B5E,EAAMM,IAAI,WAAW,EAEzB,GACF,EASA,YAAA6oL,2BAAA,SAA2BJ,EAAgBtoK,GACzC5lB,KAAKyV,SAAQ,SAACtQ,EAAOrE,GACfqE,IAAU+oL,IACZ/oL,EAAMM,IAAI,WAAW,GACjBmgB,GAAKzgB,EAAMxB,IAAI,WAAWhD,QAAQwE,EAAMxB,IAAI,WAAW2qL,2BAA2BJ,EAAQtoK,GAElG,GACF,EACF,EAlEA,CAAqC,G,YAoErC2oK,GAAQluL,UAAU8E,MAAQ,G,ogBChB1B,YAqBE,WAAY1F,EAAsBoD,GAAlC,MACE,YAAMpD,EAAQoD,IAA6C,KACrD2rL,EAAM,EAAK7qL,IAAI,YAAc,G,OACnC,EAAKs8D,QAAU,IAAI,GAAQxgE,EAAQ+uL,G,CACrC,CACF,OA1BmC,QACjC,YAAA1nL,SAAA,WACE,MAAO,CACLwD,GAAI,GACJyU,QAAS,GACT2/B,SAAS,EACTuhB,QAAS,GACTj5D,WAAY,CAAC,EAEjB,EAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAOhH,KAAK2D,IAAI,UAClB,E,IAEA,SAAoBs8D,GAClBjgE,KAAKyF,IAAI,UAAWw6D,EACtB,E,gCASF,EA1BA,CAAmC,G,2fCpDnC,eACE,WAAYxgE,EAAsB+D,G,OAChC,YAAM/D,EAAQ+D,EAAQ,KAAM,IAC9B,CACF,OAJoC,QAIpC,EAJA,CAAoC,G,YAMpCuuF,GAAO1xF,UAAU8E,MAAQ,G,yuBCLzB,eAoBE,WAAYgxB,GAAZ,MACE,YAAMA,IAAE,KACF,EAA2B,EAAzBhxB,EAAK,QAAE+9E,EAAE,KAAEe,EAAG,MAAEV,EAAI,OACtBr/D,EAAM/e,EAAMyP,UACZ,EAAsBzP,EAAM6B,WAA1BwvF,EAAO,UAAEi4F,EAAM,SAevB,GAbA,EAAKnkL,GAAK25E,EAAM9+E,EAAMxB,IAAI,MAC1B,EAAK+qL,UAAY,UAAGzqG,EAAG,kBAAUV,EAAI,cACrC,EAAKorG,WAAa,UAAGprG,EAAI,YACzB,EAAKqrG,WAAa,UAAG3qG,EAAG,WACxB,EAAKrvE,UAAYqvE,EAAM,OAAS//D,EAAM,IAAMA,EAAM,IAClD,EAAK1Z,SAASrF,EAAO,SAAU,EAAK0O,QACpC,EAAKrJ,SAASrF,EAAO,6BAA8B,EAAK0pL,cACxD,EAAKrkL,SAASrF,EAAO,cAAe,EAAK2pL,aACzC,EAAKtkL,SAASrF,EAAO,iBAAkB,EAAK4pL,eAC5C,EAAKvkL,SAASrF,EAAO,oBAAqB,EAAK+tI,kBAC/C,EAAK1oI,SAASrF,EAAO,mBAAoB,EAAK6pL,iBAC9C,EAAKxkL,SAASrF,EAAO,iBAAkB,EAAK8pL,eAExC/rG,IAAM,IAAAhyE,UAASslF,IAAYi4F,EAAQ,CACrC,IAAM,EAAc,CAAES,YAAY,GAClC,EAAK1kL,SAAS04E,EAAI,cAAOsT,IAAW,WAAM,OAAArxF,EAAMM,IAAI,UAAU,EAAM,EAA1B,IAC1C,EAAK+E,SAAS04E,EAAI,eAAQsT,IAAW,WAAM,OAAArxF,EAAMM,IAAI,UAAU,EAAO,EAA3B,G,QAGzCy9E,GAAMA,EAAGv/E,MAAK,EAAKs0D,SAAWirB,EAAGv/E,IAAI,a,CAC3C,CAyIF,OAvLwC,QAEtC,YAAA8P,QAAA,WACE,OAAOzT,KAAKmF,MAAMxB,IAAI,UACxB,EAEA,YAAA+F,OAAA,WACE,MAAO,CACLuiF,MAAO,UAEX,EA2CQ,YAAA+iG,gBAAR,WACQ,IAAE7pL,EAAenF,KAAV,MAAEikF,EAAQjkF,KAAL,IACZkkB,EAAM/e,EAAMyP,UACZy3H,EAAUlnI,EAAMxB,IAAI,cAAcwpF,MAClC68C,EAAW,UAAGqC,GAAoB,GAAE,YAAIpoD,EAAG,eAAO//D,GAAY,IACpElkB,KAAK2T,IAAInM,KAAK,QAASwiI,EAAS1hD,OAClC,EAOQ,YAAA4qD,iBAAR,WACQ,MAAqBlzI,KAAnBkjF,EAAE,KAAE/9E,EAAK,QAAEwO,EAAG,MAChBnM,EAAOrC,EAAMxB,IAAI,eAAiB,CAAC,EACnCsa,EAAQilE,GAAMA,EAAG5vB,GAAK4vB,EAAG5vB,EAAE,gCAAyBnuD,EAAMmF,KAChEqJ,EAAInM,KAAKA,GACTyW,GAAStK,EAAInM,KAAK,CAAEyW,MAAK,IAEzBje,KAAKgvL,iBACP,EAOQ,YAAAD,cAAR,WACO/uL,KAAKmvL,WAENnvL,KAAKmF,MAAMxB,IAAI,WAAY3D,KAAKmvL,SAAS7pK,SAAStlB,KAAK4uL,YACtD5uL,KAAKmvL,SAAS9iG,YAAYrsF,KAAK4uL,YACtC,EAOQ,YAAAC,aAAR,SAAqBr9K,EAAQi6C,EAAQ5hD,G,WAAA,IAAAA,IAAAA,EAAA,IAC7B,MAAsC7J,KAApCmF,EAAK,QAAE8yD,EAAQ,WAAEtkD,EAAG,MAAE+6K,EAAS,YAC/BN,EAA+BvkL,EAAI,eAAnBqlL,EAAerlL,EAAI,WACrCE,EAAU5E,EAAMxB,IAAI,WACpBd,EAAUsC,EAAMxB,IAAI,WACpByrL,EAAcjqL,EAAMqxF,QACtBA,EAAU,CAAC,EAEV44F,IAEDn3H,IAAY,IAAA/mD,UAASk+K,GACvB54F,EAAUv+B,EAASt0D,IAAIyrL,IAAgB,CAAC,GAC/B,IAAA/sL,YAAW+sL,GACpB54F,EAAUv+B,EAAS/lD,OAAO,CAAEgwE,IAAKktG,IACR,OAAhBA,IAAwB,IAAA1oL,UAAS0oL,KAC1C54F,EAAUv+B,EAAS/lD,OAAOk9K,IAGxBjqL,EAAM+5C,SACPkvI,IAA+C,QAA5B,EAAAjpL,EAAMF,kBAAsB,SAAEkpL,cAAcpkL,EAAS5E,IACzEA,EAAMM,IAAI,UAAU,EAAM,CAAEmI,QAAQ,IAAQ9J,QAAQ,gBACnDorL,GAAcj3H,EAAS29B,WAAWY,EAAS,SAAK3zF,GAAO,CAAEoiF,OAAQ9/E,KAIlEqxF,EAAQ64F,QAAUlqL,EAAMM,IAAI,UAAU,KAEtCkO,EAAI04E,YAAYqiG,IACfQ,GAAcj3H,EAAS6qB,YAAY0T,EAAS,SAAK3zF,GAAO,CAAEoiF,OAAQ9/E,EAAOs5C,MAAO,MAErF,EAEA,YAAAwwI,cAAA,WACQ,IAAEN,EAAsB3uL,KAAZ,WACZquF,EADwBruF,KAAL,MACHquF,QACtBruF,KAAK2T,IAAI06E,EAAU,WAAa,eAAesgG,EACjD,EAOA,YAAAG,YAAA,WACQ,MAA4B9uL,KAA1BmF,EAAK,QAAEwO,EAAG,MAAE+6K,EAAS,YAC7BvpL,EAAM+5C,OAASvrC,EAAI2R,SAASopK,GAAa/6K,EAAI04E,YAAYqiG,EAC3D,EAQA,YAAAY,QAAA,SAAQpkL,GACE,IAAA/F,EAAUnF,KAAI,MAElBmF,EAAMxB,IAAI,YAAcwB,EAAMkpF,UAAYlpF,EAAMqxF,SAEpDx2F,KAAKuvL,cACP,EAEQ,YAAAA,aAAR,WACQ,IAAEpqL,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACTk/C,EAAsB/5C,EAAK,OAAnB2oL,EAAc3oL,EAAK,UAE/B+5C,IAAW4uI,IAEf3oL,EAAM+5C,QAAUA,EAGZA,EACE/5C,EAAM4oL,mBAAmB7qG,EAAG2S,aAE5B1wF,EAAM6oL,oBAAoB9qG,EAAGqS,cAErC,EAEO,YAAA1hF,OAAP,WACU,IAAA1O,EAAUnF,KAAI,MAChB0sE,EAAQvnE,EAAMxB,IAAI,SAChBgQ,EAAQ3T,KAAI,IAOpB,OANCmF,EAAMxB,IAAI,OAASgQ,EAAIq+B,QACxBhyC,KAAKkzI,mBACLxmE,GAAS/4D,EAAIq/E,OAAOtmB,GACpB1sE,KAAK8uL,cACL9uL,KAAKivL,gBAEEjvL,IACT,EACF,EAvLA,CAAwC,I,ghBCCxC,YACE,WAAYiF,GAAZ,MACE,YAAM,CAAEA,WAAU,KAAG,K,OACrB,EAAKuF,SAAS,EAAKvF,WAAY,MAAO,EAAK0+F,OAC3C,EAAKn5F,SAAS,EAAKvF,WAAY,eAAgB,EAAK4O,QACpD,EAAKe,UAAY,EAAKqvE,IAAM,U,CAC9B,CA+CF,OArDyC,QAc/B,YAAA0f,MAAR,SAAcx+F,GACZnF,KAAKmuH,gBAAgBhpH,EACvB,EASQ,YAAAgpH,gBAAR,SAAwBhpH,EAAeipH,GACrC,IAAMn0G,EAAWm0G,GAAc,KACzBh6G,EAAKjP,EAAMxB,IAAI,MAKf4tF,EAJO,IAAI,GAAW,CAC1Bn9E,GAAE,EACFjP,MAAK,IAEe0O,SAASO,GAQ/B,OANI6F,EACFA,EAASwK,YAAY8sE,GAErBvxF,KAAK2T,IAAIq/E,OAAOzB,GAGXA,CACT,EAEO,YAAA19E,OAAP,sBACMoG,EAAWvF,SAASisB,yBAOxB,OANA3gC,KAAK2T,IAAIq+B,QAEThyC,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKgpH,gBAAgBhpH,EAAO8U,EAA5B,IAE9Bja,KAAK2T,IAAIq/E,OAAO/4E,GAChBja,KAAK2T,IAAInM,KAAK,SAAS,IAAA0F,QAAOlN,KAAM,cAC7BA,IACT,EACF,EArDA,CAAyC,I,yuBCDzC,eACE,WAAYmF,GAAZ,MACE,YAAM,CAAEA,MAAK,EAAEiP,GAAIjP,EAAMxB,IAAI,SAAkB,K,OAC/C,EAAKiR,UAAY,EAAKqvE,IAAM,QAC5B,EAAK35E,GAAK,EAAK25E,IAAM9+E,EAAMxB,IAAI,MAC/B,EAAK6G,SAASrF,EAAO,uBAAwB,EAAKqqL,eAClD,EAAKhlL,SAASrF,EAAO,iBAAkB,EAAKqsI,eAC5C,EAAKhnI,SAASrF,EAAO,iBAAkB,EAAKsqL,eAC5CtqL,EAAMm9B,KAAO,E,CACf,CAmHF,OA5HuC,QAcrC,YAAAktJ,cAAA,WACExvL,KAAK2T,IAAIq/E,OAAOhzF,KAAKmF,MAAMxB,IAAI,iBACjC,EAKA,YAAA6tI,cAAA,WACExxI,KAAK2T,IAAIuiE,KAAKl2E,KAAKmF,MAAMxB,IAAI,WAC/B,EAEA,YAAA8rL,cAAA,WACOzvL,KAAKmF,MAAMxB,IAAI,WAIpB3D,KAAK2T,IAAI04E,YAAY,UAAGrsF,KAAKujF,KAAI,WAH/BvjF,KAAK2T,IAAI2R,SAAS,UAAGtlB,KAAKujF,KAAI,UAIlC,EAGA,YAAAv8E,WAAA,WACE,OAAOhH,KAAKmF,MAAMxB,IAAI,aACxB,EAEA,YAAAy1F,WAAA,WACU,IAAAlW,EAAOljF,KAAI,GACbuiF,EAASW,aAAE,EAAFA,EAAI2T,OACbmE,EAAYh7F,KAAKmF,MAAMxB,IAAI,aAEjC,GAAI4+E,GAAUyY,EAAW,CACvB,IAAM00F,GAAqB,IAAd10F,EAAqB,EAAC,GAAM,GAAM,GAAM,GAAQA,EACvD20F,EAAUD,EAAmB/uL,OAC/BgyK,OAAE,EACJoV,OAAE,EACFE,OAAE,EACF7qD,GAAK,EAGP,GAAc,GAAVuyD,EAEFhd,GADMid,EAAWF,GACH,GACdzH,EAAK2H,EAAS,GACd7H,EAAK6H,EAAS,GACdxyD,EAAKwyD,EAAS,QACT,GAAc,GAAVD,EAAa,CACtB,IAAMC,EACNjd,GADMid,EAAWF,GACH,GACd3H,EAAK6H,EAAS,GACd3H,EAAK2H,EAAS,GACdxyD,EAAKwyD,EAAS,E,CAGhB,IAAM,EAAmB,IAAIrtG,EAAO+T,MAAMC,QAAQ,IAChDo8E,GAAE,EACFoV,GAAE,EACFE,GAAE,EACF7qD,GAAE,EACF0qD,IAAI,EACJ74E,IAAI,EACJ+4E,IAAI,EACJE,IAAI,EACJt2F,SAAU5xF,KAAKoU,GACfwzK,cAAc,EACdC,sBAAsB,EACtB7xF,OAAQzT,EAAOqE,YAAY1C,YAC3BN,MAAK,WACHV,GAAMA,EAAGp/E,QAAQ,sBACnB,EACAmyF,WAAY,SAAC7hF,EAAiB,G,IAAEmS,EAAM,SAC9B5J,EAAQvI,EAAGuI,MACX1E,EAAS,EAAQ2uE,YACjByU,EAAWpjF,EAAOojF,SAClBD,EAAYnjF,EAAOmjF,UACnB9yD,EAAOl0B,EAAGob,wBACVqgK,EAAyB,aAAVtpK,EACfupK,EAAanzK,EAAM0+E,GACnB00F,EAAcpzK,EAAMy+E,GAG1B,MAAO,CACL1rE,KAAM,EACNoZ,IAAK,EACL3C,MALY2pJ,IAAeD,EAAetnG,WAAWunG,GAAcxnJ,EAAKnC,MAMxErT,OALai9J,IAAgBF,EAAetnG,WAAWwnG,GAAeznJ,EAAKxV,OAO/E,GACIkoE,GAAkC,kBAAdA,EAA0BA,EAAY,CAAC,IAEjE,EAAQj5B,KAAO,WAAO,EACtB,EAAQ/sB,MAAMh1C,KAAKoU,G,CAEvB,EAEA,YAAAP,OAAA,WACU,IAAAosD,EAAYjgE,KAAKmF,MAAK,QACxBwO,EAAM3T,KAAK2T,IACX4vE,EAAOvjF,KAAKujF,KACZr/D,EAAM,UAAGlkB,KAAK4U,UAAS,YAAI5U,KAAKsK,GAAE,YAAIi5E,EAAI,kBAAUA,EAAI,aAK9D,GAJA5vE,EAAI2R,SAASpB,GAEblkB,KAAKyvL,gBAEDxvH,EAAQt/D,OAAQ,CAClB,IAAIqvL,EAAc,IAAI,GAAY/vH,GAClCtsD,EAAIq/E,OAAOg9F,EAAYn8K,SAASO,G,CAIlC,OADAT,EAAIq/E,OAAOhzF,KAAKmF,MAAMxB,IAAI,YACnB3D,IACT,EACF,EA5HA,CAAuC,I,ghBCAvC,YACE,WAAYumB,GAAZ,MACE,YAAM,CAAEthB,WAAYshB,KAAS,K,OAC7B,EAAK/b,SAAS+b,EAAQ,MAAO,EAAKo9E,OAClC,EAAKn5F,SAAS+b,EAAQ,QAAS,EAAK1S,QACpC,EAAKrJ,SAAS+b,EAAQ,SAAU,EAAK49E,UACrC,EAAKvvF,UAAY,EAAKqvE,IAAM,S,CAC9B,CA4DF,OAnEwC,QAS9B,YAAAkgB,SAAR,SAAiBh/F,GACf,IAAMm9B,EAAOn9B,EAAMm9B,KACnBA,GAAQA,EAAKl9B,QACf,EASQ,YAAAu+F,MAAR,SAAcx+F,GACZnF,KAAKmuH,gBAAgBhpH,EACvB,EAWQ,YAAAgpH,gBAAR,SAAwBhpH,EAAcipH,GACpC,IAAMn0G,EAAWm0G,GAAc,KACzBh6G,EAAKjP,EAAMxB,IAAI,MACf2+B,EAAO,IAAI,GAAUn9B,GACrBosF,EAAWjvD,EAAKzuB,SAASO,GACzBw9E,EAAWzsF,EAAMxB,IAAI,YAG3B,GAAIyQ,QACG,GAAIw9E,EAAU,CACnB,IAAMq+F,EAAWv7K,SAASwrB,cAAc0xD,GACxCq+F,SAAAA,EAAUxrK,YAAY8sE,E,MAElBt3E,EACFA,EAASwK,YAAY8sE,GAErBvxF,KAAK2T,IAAIq/E,OAAOzB,GAKpB,OADAjvD,EAAK82D,aACE7H,CACT,EAEO,YAAA19E,OAAP,sBACQF,EAAM3T,KAAK2T,IACX6gD,EAAO9/C,SAASisB,yBAKtB,OAJAhtB,EAAIq+B,QACJhyC,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKgpH,gBAAgBhpH,EAAOqvD,EAA5B,IAC9B7gD,EAAIq/E,OAAOx+B,GACX7gD,EAAInM,KAAK,QAASxH,KAAK4U,WAChB5U,IACT,EACF,EAnEA,CAAwC,I,ogBC6BxC,YASE,WAAYkjF,GAAZ,MACE,YAAMA,EAAI,SAAU,KAAS,KAE7B,IAAK,IAAIv5E,KADT,EAAK4oF,OAAS,IAAI,GAAO,EAAM,EAAKt6E,OAAOnR,UAC1B,GAET6C,KAAQ,EAAKsO,SAAS,EAAKA,OAAOtO,GAAQ,GAASA,IAE3D,OAAO,CACT,CA+KF,OAhM0C,QAuBxC,YAAAkrF,UAAA,WACE,OAAO70F,KAAKuyF,MACd,EAMA,YAAA29F,YAAA,W,MACE,OAAyB,QAAlB,EAAAlwL,KAAKmwL,qBAAa,eAAE/7K,EAC7B,EAaA,YAAA69E,SAAA,SAASyD,GACP,OAAO11F,KAAKuyF,OAAOjuF,IAAIoxF,EACzB,EAcA,YAAA06F,YAAA,SAAY16F,GACV,OAAO11F,KAAKuyF,OAAOntF,OAAOswF,EAC5B,EASA,YAAA1D,SAAA,SAAS1nF,GACP,IAAMlG,EAAMpE,KAAKuyF,OAAO7uF,MAAM,CAAE4G,GAAE,IAClC,OAAOlG,EAAIzD,OAASyD,EAAI,GAAK,IAC/B,EAgCA,YAAAi6K,UAAA,SAAUgS,EAAiB1hK,GACzB,IAAMmjE,EAAK9xF,KAAKgyF,SAASq+F,GACzB,OAAOv+F,EAAKA,EAAG7xB,QAAQ37D,IAAIqqB,GAAU,IACvC,EAmBA,YAAA2hK,aAAA,SAAaD,EAAiB1hK,GAC5B,IAAMmjE,EAAK9xF,KAAKgyF,SAASq+F,GACzB,OAAOv+F,GAAMA,EAAG7xB,QAAQ76D,OAAOupB,EACjC,EAUA,YAAA4hK,UAAA,SAAUF,EAAiB/lL,GACzB,IAAMwnF,EAAK9xF,KAAKgyF,SAASq+F,GACzB,GAAIv+F,EAAI,CACN,IAAM1tF,EAAM0tF,EAAG7xB,QAAQv8D,MAAM,CAAE4G,GAAE,IACjC,OAAOlG,EAAIzD,OAASyD,EAAI,GAAK,I,CAE/B,OAAO,IACT,EAOA,YAAAyP,OAAA,W,MAGE,OAFkB,QAAlB,EAAA7T,KAAKmwL,qBAAa,SAAE/qL,SACpBpF,KAAKmwL,cAAgB,IAAI,GAAWnwL,KAAKuyF,QAClCvyF,KAAKmwL,cAAct8K,SAASO,EACrC,EAMA,YAAA8qC,OAAA,WACEl/C,KAAK60F,YAAYtvF,MAAK,SAAAy2B,GACpBA,EAAEikC,QAAQ16D,MAAK,SAAAipL,GACbA,EAAI7qL,IAAI,WAAa6qL,EAAI1qL,QAAQ,eACnC,GACF,GACF,EAMA,YAAA0sL,eAAA,WACExwL,KAAK60F,YAAYtvF,MAAK,SAAAy2B,GACpBA,EAAEikC,QAAQ16D,MAAK,SAAAipL,GACTA,EAAI7qL,IAAI,YAAY6qL,EAAI1qL,QAAQ,iBACtC,GACF,GACF,EAEA,YAAAuL,QAAA,WACErP,KAAKuyF,OAAOrsF,QACZlG,KAAKuyF,OAAOjnF,gBACZtL,KAAKmwL,eAAiBnwL,KAAKmwL,cAAc/qL,QAC3C,EACF,EAhMA,CAA0C,GCf1C,SALkC,CAChC8+E,YAAa,MACbusG,eAAgB,CAAC,G,02BCCnB,yB,8CAoCA,QApC2C,QACzC,YAAA3qD,MAAA,SAAM3gI,EAAkB0E,QAAA,IAAAA,IAAAA,EAAA,IACd,IAAAq5E,EAAoBr5E,EAAI,GAC1B6mL,EADiB,GAAK7mL,EAAtB,QAIN,GAAIA,EAAK8mL,SAAWztG,EAAI,CACtB,IACM,EADQA,EAAG0kC,IAAIj8B,SAElBr+E,SACAxI,KAAI,SAAC8mF,GACJ,IAAMzwB,EAAOywB,EAAKq8B,UACZp2E,EAAMspB,GAAwB,IAAhBA,EAAKx6D,QAAgBw6D,EAAK33D,OAAO,GACrD,OAAOquC,GAAOA,EAAI4xF,QAAU5xF,EAAIluC,IAAI,OACtC,IACCsS,OAAOuvE,SAELkrG,EAAS1pL,aACZ0pL,EAAS1pL,WAAa,SAACmb,EAAKrV,GAClB,IAAAxC,EAAOwC,EAAK,GAUpB,OARExC,GACU,MAAVA,EAAG,KACF6X,EAAIxe,IAAI,YACRwe,EAAIxe,IAAI,cAAe2G,IACxB,EAAQzF,QAAQyF,GAAM,UAEfwC,EAAMxC,GAERwC,CACT,E,CAIJ,OAAO3H,EAAM+vG,OAAOw7E,EACtB,EACF,EApCA,CAA2C,M,2fCX3C,4B,8CAgCA,QAhC2C,QACzC,YAAA5qD,MAAA,SAAM3gI,GAAN,WAEQ0xE,EAAO1xE,EAAMmI,SAmBnB,OAlBAtN,KAAK4wL,WAAW/5G,IAEhB,IAAAtxE,MAAKsxE,GAAM,SAACprB,EAAGjkD,GACb,IAAMxG,EAAM61E,EAAKrvE,GACjB,GAAIxG,aAAe,KAEjB61E,EAAKrvE,GAAQ,EAAKs+H,MAAM9kI,QACnB,GAAIA,aAAe,KAAY,CACpC,IAAMgqF,EAAOhqF,EACb61E,EAAKrvE,GAAQ,GACTwjF,EAAKrqF,QACPqqF,EAAKv1E,SAAQ,SAACrB,EAAItT,GAChB+1E,EAAKrvE,GAAM1G,GAAS,EAAKglI,MAAM1xH,EACjC,G,CAGN,IAEOyiE,CACT,EAMA,YAAA+5G,WAAA,SAAW5vL,UACFA,EAAIu9F,MACb,EACF,EAhCA,CAA2C,M,ugBCS3C,gC,8CAsFA,QAtFyC,QAGvC,YAAAsyF,SAAA,SAAS1rL,G,MAAT,OACM6lB,EAAO,GACL6pD,EAAS1vE,EAAMxB,IAAI,kBAAoBwB,EAAMxB,IAAI,UACjDnB,EAAO2C,EAAMxB,IAAI,QACjBo6H,EAAQ54H,EAAMxB,IAAI,cAClB2G,EAAKnF,EAAM6kH,QAEjB,GAAIn1C,EAAQ,CAEV,IAAIrtE,EAAOrC,EAAMxB,IAAI,cACrB6D,GAAO,IAAAb,QAAO,CAAC,EAAGa,EAAM,CAAE8C,GAAE,IAC5BnF,EAAMM,IAAI,aAAc+B,EAAM,CAAEoG,QAAQ,IAExC,IAAMwhI,EAASjqI,EAAMkzH,gBAAgBxjD,GAC/Bi8G,EAAW3rL,EAAMxB,IAAI,gBAG3B,GAAIwB,EAAMxB,IAAI,mBAAqBmtL,EACjC9wL,KAAK+wL,MAAMvuL,EAAO,IAAM8H,GAAM,CAAEiB,IAAK,CAACjB,GAAK0gB,KAAMokH,OAC5C,CACL,IAAItmH,OAAK,EACH0sH,EAAUx1I,KAAK+wL,MAAMvuL,GAM3B,GAJIsuL,IACFhoK,EAAQ3jB,EAAMqzH,oBAGZgd,EACFA,EAAQjqI,IAAI5G,KAAK2F,GACbwe,IAAO0sH,EAAQ1sH,MAAOxe,GAAMwe,OAC3B,CACL,IAAM1kB,EAAiB,CAAEmH,IAAK,CAACjB,GAAK0gB,KAAMokH,GACtCtmH,IAAO1kB,EAAI0kB,QAAK,MAAMxe,GAAKwe,EAAK,IACpC9oB,KAAK+wL,MAAMvuL,GAAQ4B,C,GASzB,OAJA25H,EAAMtoH,SAAQ,SAACtQ,GACb6lB,GAAQ,EAAK6lK,SAAS1rL,EACxB,IAEO6lB,CACT,EAEA,YAAA86G,MAAA,SAAM3gI,GACJnF,KAAK+wL,MAAQ,CAAC,EACd/wL,KAAK6wL,SAAS1rL,GACd,IA9DqB3E,E,EA8DjBwqB,EAAO,GAEX,IAAK,IAAIxoB,KAAQxC,KAAK+wL,MAAO,CAC3B,IAAMv7C,EAAUx1I,KAAK+wL,MAAMvuL,GAE3B,GAAKgzI,EAAQxqH,KAIb,GAAIwqH,EAAQ1sH,MAAO,CACjB,GAxEiBtoB,EAwEGg1I,EAAQxqH,K,SAtE4B,MADT,QAArC,EAAAxqB,EAAGonB,WAAWvT,MAAM,yBAAiB,eAAG,KAAM,IAC/C5E,QAAQ,gBAAiB,IAAI64E,OAAO3nF,OAuE3C,SAGFqqB,GAAQ,kCACQpS,KAAKC,UAAU28H,EAAQ1sH,OAAM,kQAKtC0sH,EAAQxqH,KAAI,yC,KAEd,CAEL,IAAMzf,EAAM,IAAMiqI,EAAQjqI,IAAIkkD,KAAK,OACnCzkC,GAAQ,6DACmCzf,EAAG,yGAE1BiqI,EAAQxqH,KAAI,sC,EAKpC,OAAOA,CACT,EACF,EAtFA,CAAyC,M,gBCXrCvM,G,suBAEA,IAAA+/E,YACF//E,GAAa,EAAQ,KACrB,EAAQ,KACR,EAAQ,KACR,EAAQ,MAGV,gC,8CAmGA,QAnG8C,QAI5C,YAAA3X,SAAA,WACE,MAAO,CACLw6B,MAAO,GACPorC,MAAO,GACPghB,SAAU,GACV5sB,MAAO,YACPjlC,UAAU,EACViJ,aAAa,EACbksJ,YAAY,EAEhB,EAEA,YAAAhvI,KAAA,SAAK5tC,GAWH,OAVA,IAAAkuE,SAAQtiF,KAAM,YACdA,KAAKuiF,OAAS9jE,GAAWmwD,aAAax6D,EAAI,IACxCmqD,UAAU,EACV/1B,cAAc,EACdxoB,KAAMhgB,KAAK2D,IAAI,aACZ3D,KAAKgH,aAEVhH,KAAKgU,QAAUI,EACfpU,KAAKuiF,OAAO96E,GAAG,SAAUzH,KAAK8zJ,UAEvB9zJ,IACT,EAEA,YAAA8zJ,SAAA,WACE9zJ,KAAK8D,QAAQ,SAAU9D,KACzB,EAEA,YAAAyyD,UAAA,WACE,OAAOzyD,KAAKuiF,MACd,EAMA,YAAAmC,WAAA,WACE,OAAO1kF,KAAKgU,OACd,EASA,YAAAD,WAAA,SAAWK,GAET,OADApU,KAAKgU,QAAUI,EACRpU,IACT,EAMA,YAAAshE,QAAA,WAEE,OADAthE,KAAKyyD,YAAY6O,UACVthE,IACT,EAMA,YAAAg1C,MAAA,WAEE,OADAh1C,KAAKyyD,YAAYzd,QACVh1C,IACT,EAEA,YAAA23I,WAAA,WACE,IAAMx1D,EAAKniF,KAAKyyD,YAChB,OAAO0vB,GAAMA,EAAG3yB,UAClB,EAGA,YAAA69B,WAAA,SAAW3lF,EAAemC,GAA1B,gBAA0B,IAAAA,IAAAA,EAAA,IAChB,IAAA04E,EAAWviF,KAAI,OACvB,GAAKuiF,EAAL,CACAA,EAAO5yB,SAASjoD,GAChB,IAAMspL,EAAahxL,KAAK2D,IAAI,cAE1B4+E,EAAO0uG,mBACS,IAAfD,GAAwB5wL,MAAMc,QAAQ8vL,IAAeA,EAAWz6K,SAASvW,KAAK2D,IAAI,gBAGnF8a,GAAWw5C,SAASxN,UAAU83B,GAC9BA,EAAO0uG,gBAAgB1uG,EAAOrgE,WAAU,GAAOqgE,EAAOrgE,WAAU,IAChEzD,GAAWw5C,SAASQ,WAAW8pB,KAGhC14E,EAAKqnL,WAAa3pK,YAAW,WAAM,SAAK+5C,SAAL,GAbjB,CAcrB,EACF,EAnGA,CAA8C,M,YAsG9C6vH,GAAiB9wL,UAAUoe,WAAaA,G,6oBChHxC,yB,8CA4BA,QA5B4C,QAI1C,YAAAi+F,SAAA,SAAS,G,IAAEz4B,EAAG,MAAEyJ,EAAQ,WAAEhhB,EAAK,QAC7B,OAAOwJ,EAAI,wLACQ,iBAAkB,GAAW,0BAC9B,WAAe,6BACf,uCAFF+N,EAAkBA,EAAMyJ,EACzBzJ,EAAavX,EACbuX,EAGjB,EAEA,YAAA18E,WAAA,SAAW4uB,GACTn2B,KAAKiY,OAASke,EAAEle,QAAU,CAAC,EAC3BjY,KAAKikF,IAAMjkF,KAAKiY,OAAOisE,WACzB,EAEA,YAAArwE,OAAA,W,QACQ,EAAsB7T,KAApBmF,EAAK,QAAE8+E,EAAG,MAAEtwE,EAAG,MACjB3S,EAAMmE,EAAMmI,SACZu+H,EAAW1mI,EAAMxB,IAAI,WAAqC,QAAxB,GAAD,EAACwB,GAAcu/E,kBAAU,wBAKhE,OAJA1jF,EAAIijF,IAAMA,EACVtwE,EAAIuiE,KAAKl2E,KAAK08G,SAAS17G,IACvB2S,EAAInM,KAAK,QAAS,UAAGy8E,EAAG,aACxBtwE,EAAIC,KAAK,WAAIqwE,EAAG,SAAQ+O,OAAO64C,GACxB7rI,IACT,EACF,EA5BA,CAA4C,M,4uBC2BtCoxL,GAAgB,aAEtB,eAQE,WAAYluG,GAAZ,MACE,YAAMA,EAAI,cAAe,KAAS,KAHpC,EAAA0K,WAAa,GAIH,IAAA31E,EAAW,EAAI,OACjBsrE,EAAOtrE,EAAOksE,a,OAChBZ,IAAMtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAE7C,EAAKmtG,WAAa,CAAC,EACnB,EAAKC,QAAU,CAAC,EAChB,EAAKC,cAAgB,CACnBr7G,KAAM,IAAI,GACV51C,IAAK,IAAI,GACTu2C,KAAM,IAAI,GACV26G,GAAI,IAAI,IAEV,EAAKC,WAAa,CAAEhzK,WAAY,IAAI,IACpC,EAAKizK,wBAAwBC,qB,CAC/B,CA6JF,OArL+C,QAuC7C,YAAAC,aAAA,SAAatnL,EAAYunL,GAEvB,OADA7xL,KAAKqxL,WAAW/mL,GAAMunL,EACf7xL,IACT,EAYA,YAAA8xL,aAAA,SAAaxnL,GACX,OAAOtK,KAAKqxL,WAAW/mL,EACzB,EAMA,YAAAynL,cAAA,WACE,OAAO/xL,KAAKqxL,UACd,EAoBA,YAAAW,UAAA,SAAU1nL,EAAY2nL,GAEpB,OADAjyL,KAAKsxL,QAAQhnL,GAAM2nL,EACZjyL,IACT,EASA,YAAAkyL,UAAA,SAAU5nL,GACR,OAAOtK,KAAKsxL,QAAQhnL,EACtB,EAMA,YAAA6nL,WAAA,WACE,OAAOnyL,KAAKsxL,OACd,EAEA,YAAA3jG,aAAA,SAAa9jF,QAAA,IAAAA,IAAAA,EAAA,IACX,IAAMrH,GAAQ,IAAAonF,aAAY//E,EAAKrH,MAAoB4uL,GAAZvnL,EAAKrH,KACtCyvL,EAASjyL,KAAKkyL,UAAU1vL,IAASxC,KAAKkyL,UAAU1vL,GAAMe,QACtDw0E,EAAOrjE,SAASC,cAAc,OAC9By9K,EAAU19K,SAASC,cAAc,YASvC,OARAojE,EAAKtzD,YAAY2tK,GACjBH,EAAOxsL,IAAI,SACNzF,KAAKiY,OAAOw4K,gBACZ5mL,IAELooL,EAAOjwI,KAAKowI,GACZH,EAAOl+K,WAAWgkE,GAEXk6G,CACT,EAaA,YAAAI,aAAA,SAAaJ,EAAajnK,GACxBinK,EAAO5kG,WAAWriE,EACpB,EAWA,YAAAsnK,QAAA,SAAQntL,EAAYotL,EAAejlI,QAAA,IAAAA,IAAAA,EAAA,IACjCA,EAAI41B,GAAKljF,KAAKkjF,GACd,IAAM2uG,EAAY7xL,KAAK8xL,aAAaS,GACpC,OAAOV,EAAYA,EAAU/rD,MAAM3gI,EAAOmoD,GAAO,EACnD,EAOA,YAAAokI,sBAAA,WACE,IAAK,IAAMpnL,KAAMtK,KAAKuxL,cACpBvxL,KAAK4xL,aAAatnL,EAAItK,KAAKuxL,cAAcjnL,IAG3C,OAAOtK,IACT,EAOA,YAAA2xL,mBAAA,WACE,IAAK,IAAMrnL,KAAMtK,KAAKyxL,WACpBzxL,KAAKgyL,UAAU1nL,EAAItK,KAAKyxL,WAAWnnL,IAGrC,OAAOtK,IACT,EAEA,YAAAqP,QAAA,WAAW,EACb,EArLA,CAA+C,G,qCCd/C,SALkC,CAChC9K,mBAAoB,IACpBiuL,gBAAgB,G,48BCuBZC,GAAU,SAAC5oL,GAAc,OAAAA,EAAKg/E,YAAch/E,EAAK+jH,MAAxB,EAEzB8kE,GAAa,SAAC1xL,GAAa,OAAAgoB,OAAO/nB,KAAKD,EAAI4E,oBAAhB,EAEjC,eAIE,WAAYs9E,GAAZ,MACE,YAAMA,EAAI,cAAe,KAAS,KAE9B,EAAKjrE,OAAO+sG,WACd,EAAK/sG,OAAO1T,mBAAqB,GAGnC,IAAMglH,GAAW,E,OACjB,EAAKU,GAAK,IAAI,KAAJ,CAAgB,IAAE9lH,OAAO,EAAMhC,SAAU,IAAO,EAAK8V,SAC/D,EAAKgyG,GAAGzhH,eAAe,SAAU,CAC/BvE,UAAW,SAACvB,GACV,IAAMiwL,EAAUjwL,EAAOiB,IAAI,SAC3B,GAAIgvL,EAAS,CACX,IAAM,EAAUjwL,EAAOiB,IAAI,YAC3B,IAAI,IAAAzC,SAAQ,IACNwxL,GAAWhwL,GAAQ6O,MAAK,SAAAqhL,GAAO,SAAQ/tL,QAAQ+tL,IAAQ,CAAxB,IAA4B,OAAO,EAExE,IAAI,IAAAn7E,WAAUk7E,GAAU,OAAO,EAC/B,IAAI,IAAAzxL,SAAQyxL,IACND,GAAWhwL,GAAQ6O,MAAK,SAAAqhL,GAAO,OAAAD,EAAQ9tL,QAAQ+tL,IAAQ,CAAxB,IAA4B,OAAO,C,CAG1E,OAAO,CACT,EACAnrL,GAAE,SAAC/E,EAAa+oD,EAAQ5hD,GAAxB,YACG7J,KAAK6yL,cAAgB7yL,KAAK6yL,YAAcnwL,EAAOoD,sBAChD,IAAMwnD,EAAMzjD,GAAQ4hD,GAAK,CAAC,EAK1B,GAJA6B,EAAIsgE,QACFrmG,YAAW,WACT,EAAKsrK,YAAc,IACrB,KACEJ,GAAQnlI,GAAZ,CAGE,IAAM1qD,EAAQF,EAAO4K,OAAO,CAAEi8G,SAAQ,IAChCr8G,EAAS,CACbxK,OAAM,EACNC,OAAQ3C,KAAK6yL,YACbjwL,MAAK,GAIP,GAFA5C,KAAK6yL,YAAc,OAEf,IAAAvtL,SAAQ1C,GAEZ,OAAOsK,C,CAEX,IAEF,EAAK+8G,GAAGzhH,eAAe,MAAO,CAC5Bf,GAAI,SAACtC,EAAYF,EAAiBpC,GAChC,QADgC,IAAAA,IAAAA,EAAA,KAC5B4vL,GAAQ5vL,IAAa,EAAK2B,aAAaS,GAC3C,MAAO,CACLvC,OAAQuC,EACRtC,YAAQ0C,EACRzC,MAAOuC,EACPtC,QAAS,SAAKA,GAAO,CAAE0mH,SAAQ,IAEnC,IAEF,EAAKU,GAAGzhH,eAAe,SAAU,CAC/Bf,GAAI,SAACtC,EAAYF,EAAiBpC,GAChC,QADgC,IAAAA,IAAAA,EAAA,KAC5B4vL,GAAQ5vL,IAAa,EAAK2B,aAAaS,GAC3C,MAAO,CACLvC,OAAQuC,EACRtC,OAAQwC,EACRvC,WAAOyC,EACPxC,QAAS,SAAKA,GAAO,CAAE0mH,SAAQ,IAEnC,IAEF,EAAKU,GAAGzhH,eAAe,QAAS,CAC9BzB,KAAM,SAAC9B,EAAiBtC,GACtBsC,EAAWiB,MAAMvD,EAAQ,CAAE4mH,SAAQ,GACrC,EACAtiH,KAAM,SAAChC,EAAiBugB,EAAQ5iB,GAC9BqC,EAAWiB,MAAMtD,EAAO,CAAE2mH,SAAQ,GACpC,EACA9hH,GAAI,SAACxC,EAAiBpC,GACpB,QADoB,IAAAA,IAAAA,EAAA,KAChB4vL,GAAQ5vL,IAAa,EAAK2B,aAAaS,GAC3C,MAAO,CACLvC,OAAQuC,EACRtC,OAAQE,EAAQsD,eAChBvD,MAAO,MAAIqC,EAAWzB,QAAM,GAC5BX,QAAS,SAAKA,GAAO,CAAE0mH,SAAQ,IAEnC,IAGF,EAAKU,GAAGxiH,GAAG,aAAa,WACtBy7E,EAAGp/E,QAAQ,uBACXo/E,EAAGqC,iBAAiBzgF,KAAI,SAAAi6E,GAAK,OAAAA,EAAEj7E,QAAQ,iBAAV,GAC/B,IACA,CAAC,OAAQ,QAAQ2R,SAAQ,SAAAjJ,GAAM,SAAKy9G,GAAGxiH,GAAG+E,GAAI,WAAM,OAAA02E,EAAGp/E,QAAQ0I,EAAX,GAArB,I,CACjC,CAiQF,OAlW+C,QAmG7C,YAAA04G,SAAA,WACQ,IAAEjtG,EAAejY,KAAT,OAAEkjF,EAAOljF,KAAL,GAClBiY,EAAOu6K,gBAAkBtvG,GAAMljF,KAAKsE,IAAI4+E,EAAGv/E,IAAI,YACjD,EAiBA,YAAAW,IAAA,SAAI0hH,GAEF,OADAhmH,KAAKiqH,GAAG9nH,SAAS6jH,GACVhmH,IACT,EASA,YAAAoF,OAAA,SAAO4gH,GAEL,OADAhmH,KAAKiqH,GAAG7nH,WAAW4jH,GACZhmH,IACT,EAQA,YAAAssL,UAAA,WAEE,OADAtsL,KAAKiqH,GAAGjiH,gBACDhI,IACT,EAQA,YAAAgc,MAAA,WAEE,OADAhc,KAAKiqH,GAAGtiH,gBACD3H,IACT,EAQA,YAAA2d,KAAA,WAEE,OADA3d,KAAKiqH,GAAGpiH,eACD7H,IACT,EAQA,YAAA+G,KAAA,SAAK3F,QAAA,IAAAA,IAAAA,GAAA,GACG,IAAE8hF,EAAWljF,KAAT,GAAEiqH,EAAOjqH,KAAL,GAEd,OADCkjF,EAAG4W,aAAemwB,EAAGljH,KAAK3F,GACpBpB,IACT,EAQA,YAAAiI,QAAA,WAEE,OADAjI,KAAKiqH,GAAGhiH,UACDjI,IACT,EAQA,YAAAiH,KAAA,SAAK7F,QAAA,IAAAA,IAAAA,GAAA,GACG,IAAE8hF,EAAWljF,KAAT,GAAEiqH,EAAOjqH,KAAL,GAEd,OADCkjF,EAAG4W,aAAemwB,EAAGhjH,KAAK7F,GACpBpB,IACT,EAQA,YAAAkI,QAAA,WAEE,OADAlI,KAAKiqH,GAAG/hH,UACDlI,IACT,EAQA,YAAA2yL,QAAA,WACE,QAAS3yL,KAAKiqH,GAAG9hH,YAAY,OAC/B,EAQA,YAAA2qL,QAAA,WACE,QAAS9yL,KAAKiqH,GAAG9hH,YAAY,OAC/B,EAQA,YAAA3D,aAAA,SAAaxD,GACX,QAAShB,KAAK+yL,cAAc7wL,eAAesC,aAAaxD,EAC1D,EASA,YAAAgyL,SAAA,WACE,OAAOhzL,KAAKiqH,GAAGjnH,KACjB,EAaA,YAAAiwL,cAAA,WACE,IAAM/lL,EAAc,GACd23D,EAAgB,GAUtB,OARA7kE,KAAKgzL,WAAWv9K,SAAQ,SAACgxE,GACvB,IAAM3lF,EAAQ2lF,EAAK9iF,IAAI,oBACnBkhE,EAAShgE,QAAQ/D,GAAS,IAC5B+jE,EAASlgE,KAAK7D,GACdoM,EAAOvI,KAAK8hF,GAEhB,IAEOv5E,CACT,EAEA,YAAA84C,KAAA,SAAKupF,GACHvvI,KAAK2d,OACL4xH,IACAvvI,KAAKgc,OACP,EAEA,YAAAk3K,gBAAA,WACE,IAAMhmL,EAA8B,CAAC,EAC/BlK,EAAQhD,KAAKgzL,WAgBnB,OAXAhwL,EAAMyS,SAAQ,SAACgxE,EAAM5mF,GACnB,IAAMiB,EAAQ2lF,EAAK9iF,IAAI,oBACjB+D,EANW,SAAC++E,EAAW3lF,GACvB,MAAgD2lF,EAAKz/E,WAAnDxE,EAAI,OAAEI,EAAK,QAAED,EAAM,SAAED,EAAM,SAAE,IAAAG,QACrC,MAAO,CAAE/B,MAAK,EAAE0B,KAAI,EAAEI,MAAK,EAAED,OAAM,EAAED,OAAM,EAAEG,aADD,IAAG,GAAC,EAAC,EAEnD,CAGgBswL,CAAW1sG,EAAM5mF,GAE1BqN,EAAOpM,GAGVoM,EAAOpM,GAAO6D,KAAK+C,GAFnBwF,EAAOpM,GAAS,CAAC4G,EAIrB,IAEOshB,OAAO/nB,KAAKiM,GAAQpI,KAAI,SAAAhE,GAC7B,IAAMuC,EAAU6J,EAAOpM,GACvB,MAAO,CACLA,MAAOuC,EAAQA,EAAQ1C,OAAS,GAAGG,MACnCuC,QAAO,EACPm7K,QAAQ,IAAAh1E,QACNnmG,EAAQsS,QAAO,SAACvR,EAAUqiF,G,MAClB/Z,EAAoB,QAAZ,EAAA+Z,EAAK5jF,eAAO,eAAEN,OAE5B,OADAmqE,GAAStoE,EAAIO,KAAK+nE,GACXtoE,CACT,GAAG,KAGT,GACF,EAEA,YAAAgvL,UAAA,SAAUvwJ,GAAV,WACE,GAAKA,EAAL,CACA,IAAM50B,EAAUjO,KAAKqzL,aACfC,EAAOzwJ,EAAM/hC,MAAQmN,GAC3B,IAAA2tG,OAAM1vG,KAAK0kB,IAAI0iK,IAAO,WACpB,EAAKA,EAAO,EAAI,OAAS,SAAQ,EACnC,GALkB,CAMpB,EAEA,YAAAD,WAAA,WAEE,OAAOrzL,KAAKgzL,WAAW5vL,OACzB,EAQA,YAAAsF,MAAA,WAEE,OADA1I,KAAKiqH,GAAGvhH,QACD1I,IACT,EAEA,YAAA+yL,YAAA,WACE,OAAO/yL,KAAKiqH,EACd,EAEA,YAAA56G,QAAA,WACErP,KAAK0I,QAAQ4jL,WACf,EACF,EAlWA,CAA+C,G,YCmB/C,SAPqC,CACnCpoG,YAAa,OACbqvG,eAAe,EACflwL,QAAS,CAAC,OAAQ,SAAU,YAAa,gBAAiB,OAAQ,QAClEwtF,QAAQ,G,ICtCE2iG,G,+OAAZ,SAAYA,GACV,0BACA,8BACA,8BACD,CAJD,CAAYA,KAAAA,GAAyB,KAmBrC,IAAMC,GAAU,OAEVC,GACI,EADJA,GAEM,EAFNA,IAGO,EAEPC,GAAa,SAACz8C,EAAqBzjI,QAAA,IAAAA,IAAAA,EAAA,KACjC,MAA4ByjI,EAAI/mH,aAAe,CAAC,EAA9CgvB,EAAU,aAAEE,EAAS,YACvBu0I,EAAez0I,aAAU,EAAVA,EAAYl6B,WAC3B4uK,EAAcx0I,aAAS,EAATA,EAAWp6B,WAC/B,OAAO2uK,aAAY,EAAZA,EAAcn0I,WAAYhsC,IAAWogL,aAAW,EAAXA,EAAap0I,WAAYhsC,CACvE,EAEMqgL,GAAe,gBAEfC,GAAmD,CACvDC,KAAM,CACJrqL,KAAM,OACNuwF,KAAM,WACNlzF,WAAY,CAAEiX,MAAO,QACrB/Q,OAAQ,SAAAgqI,GAAO,OAAAA,EAAI38H,KAAK,OAAT,GAEjB05K,OAAQ,CACNtqL,KAAM,SACNuwF,KAAM,WACNlzF,WAAY,CAAEiX,MAAO,UACrB/Q,OAAQ,SAAAgqI,GAAO,OAAAA,EAAI38H,KAAK,SAAT,GAEjB25K,UAAW,CACTvqL,KAAM,YACNuwF,KAAM,WACNlzF,WAAY,CAAEiX,MAAO,aACrB/Q,OAAQ,SAAAgqI,GAAO,OAAAA,EAAI38H,KAAK,YAAT,GAEjB45K,cAAe,CACbxqL,KAAM,gBACNuwF,KAAM,WACNlzF,WAAY,CAAEiX,MAAO,kBACrB/Q,OAAQ,SAAAgqI,GAAO,OAAAA,EAAI38H,KAAK,gBAAT,GAEjB44F,KAAM,CACJjZ,KAAM,4UAGNvwF,KAAM,OACN3C,WAAY,CACV2V,MAAO,sCACPsB,MAAO,QAETgB,MAAO,SAAAi4H,GACL,OAAOA,GAAOA,EAAI/mH,aAAewjK,GAAWz8C,GAAOw8C,GAAkBA,EACvE,EACAxmL,OAAQ,SAAAgqI,GACFy8C,GAAWz8C,GACbA,EAAI38H,KAAK,UAET28H,EAAIk9C,WAAW,uBAAcN,GAAY,YAAI58C,EAAI/mH,YAAW,QAAQ,CAClEja,QAAQ,GAGd,GAEFguB,KAAM,CACJv6B,KAAM,OACNuwF,KAAM,2SAGNlzF,WAAY,CAAEiX,MAAO,kBACrBgB,MAAO,SAAAi4H,GACL,OAAOA,aAAG,EAAHA,EAAK/mH,cAAewjK,GAAWz8C,EAAK,QAAUw8C,GAAoBA,EAC3E,EACAxmL,OAAQ,SAAAgqI,IACLy8C,GAAWz8C,EAAK,SACfA,EAAIk9C,WAAW,gBAASN,GAAY,YAAI58C,EAAI/mH,YAAW,WAAW,CAChEja,QAAQ,GAEd,IAIJ,cAWE,WAAYgtE,EAAiB9uE,EAA6CuoG,QAAA,IAAAA,IAAAA,EAAA,IAA1E,WAIE,GAHA38G,KAAKkjF,GAAKA,EACVljF,KAAK28G,SAAWA,EAEZvoG,EAAGq/K,IACL,OAAOr/K,EAAGq/K,IAGZr/K,EAAGq/K,IAAWzzL,KACdA,KAAKq0L,MAAMjgL,GACXpU,KAAKs0L,oBAAsBt0L,KAAKs0L,oBAAoBvoL,KAAK/L,MACzDA,KAAKu0L,YAAcv0L,KAAKu0L,YAAYxoL,KAAK/L,MACzCA,KAAKw0L,UAAYx0L,KAAKw0L,UAAUzoL,KAAK/L,MAErC,IAAMy0L,GAAQ93E,EAASt5G,SAAW,IAAIyB,KAAI,SAAAvC,GACxC,IAAI2K,EAAS3K,EAMb,OALI,IAAA2O,UAAS3O,GACX2K,EAAS,MAAK6mL,GAAWxxL,IAChBwxL,GAAWxxL,EAAOoH,QAC3BuD,EAAS,SAAK6mL,GAAWxxL,EAAOoH,OAAUpH,IAErC2K,CACT,IACM7J,EAAUoxL,EAAK9zL,OAAS8zL,EAAOzrK,OAAO/nB,KAAK8yL,IAAYjvL,KAAI,SAAAlF,GAAK,OAAAm0L,GAAWn0L,EAAX,IAEtE+8G,EAASlmF,QAAU,IACjBi+J,UAAW,YACX/lK,OAAQ,SACRuwB,OAAQ,SACRmyB,SAAU,WACVsjH,SAAU,YACPh4E,EAASlmF,SAGd,IAAMA,EAAUkmF,EAASlmF,QACrBi+J,EAAY/3E,EAAS+3E,UAKzB,GAJA10L,KAAK00L,UAAYA,EACjB10L,KAAKy2B,QAAUA,EACfz2B,KAAKqD,QAAUA,GAEVqxL,EAAW,CACd,IAAK10L,KAAK40L,SAASj4E,EAASl9G,QAAS,CACnC,IAAMo1L,EAAgBl4E,EAASm4E,oBAC/BJ,EAAYhgL,SAASC,cAAc,QACzBC,UAAY6hB,EAAQi+J,UAC9BG,SAAAA,EAAepwK,YAAYiwK,GAC3B10L,KAAK00L,UAAYA,C,CAEnBrxL,EAAQoS,SAAQ,SAAAlT,GAAU,SAAKwyL,UAAUxyL,EAAf,G,CAI5B,OADAo6G,EAASq4E,cAAgBh1L,KAAKua,KAAK,gBAC5Bva,IACT,CAuQF,OArQE,YAAA40L,SAAA,SAASn1L,GACP,IAAMy3I,EAAMz3I,GAAUO,KAAKkjF,GAAGi0D,eAC9B,UAAUD,aAAG,EAAHA,EAAKj/H,OAAO44E,WAAUqmD,aAAG,EAAHA,EAAKc,WACvC,EAEA,YAAA3oI,QAAA,WAAW,EAEX,YAAAglL,MAAA,SAAMjgL,GACJpU,KAAKoU,GAAKA,EACVpU,KAAKqyB,IAAMje,EAAG8b,aAChB,EAEA,YAAAokK,oBAAA,sBACQjxL,EAAUrD,KAAKi1L,aACrB5xL,EAAQoS,SAAQ,SAAAlT,GACN,IAAAs3C,EAAgBt3C,EAAM,OAAdisL,EAAQjsL,EAAM,IACxB,EAAiC,EAAKk0B,QAApCyoB,EAAM,SAAEy1I,EAAQ,WAAEtjH,EAAQ,WAC5BpyD,EAAQ1c,EAAO0c,MACftV,EAAOpH,EAAOoH,KACd0oB,EAAM,EAAKA,IACb6iK,EAAe1B,GAA0B2B,SAU7C,GARI3G,IACFA,EAAI55K,UAAY45K,EAAI55K,UAAUnF,QAAQyvC,EAAQ,IAAIopC,OAClDkmG,EAAI55K,UAAY45K,EAAI55K,UAAUnF,QAAQklL,EAAU,IAAIrsG,OACpDkmG,EAAI55K,UAAY45K,EAAI55K,UAAUnF,QAAQ4hE,EAAU,IAAIiX,QAKlDrpE,EAAO,CACT,IAAMm2K,EAAWn2K,EAAM,EAAMoT,GAE7B,GADA6iK,EAAeE,EACX5G,EACF,OAAQ4G,GACN,KAAK1B,GACHlF,EAAI55K,WAAa,WAAIsqC,GACrB,MACF,KAAKw0I,GACHlF,EAAI55K,WAAa,WAAI+/K,GACrB,MACF,KAAKjB,GACHlF,EAAI55K,WAAa,WAAIy8D,G,MAMvBh/C,EAAIgjK,sBAAsB1rL,IAAS0oB,EAAIijK,kBAAkB3rL,KAC3D6kL,IAAQA,EAAI55K,WAAa,WAAIsqC,IAC7Bg2I,EAAe1B,GAA0B+B,QAG7ChzL,EAAO2yL,aAAeA,EACtBr7I,SAAAA,EAAS,EAAMt3C,EACjB,IAEAc,EAAQ1C,QAAUX,KAAKkjF,GAAGi0D,eAAeq+C,gBAC3C,EAEA,YAAAvyG,OAAA,SAAOp5E,GACL,OAAI7J,KAAKy1L,QAAgBz1L,KAClBA,KAAK01L,iBAAgB,EAAM7rL,EACpC,EAEA,YAAAwkF,QAAA,WACE,OAAOruF,KAAK01L,iBAAgB,EAC9B,EAEA,YAAAA,gBAAA,SAAgBzyG,EAAgBp5E,QAAhB,IAAAo5E,IAAAA,GAAA,QAAgB,IAAAp5E,IAAAA,EAAA,IAC9B,IAAMoF,EAASg0E,EAAS,EAAAx7E,GAAK,EAAA0D,IACrBiJ,EAAYpU,KAAV,GAAEqyB,EAAQryB,KAAL,IACT00L,EAAY10L,KAAK21L,cAQvB,GAPAjB,IAAcA,EAAU/3K,MAAMC,QAAUqmE,EAAS,GAAK,QACtD7uE,EAAGk4D,gBAAkB,YAAK2W,GAC1Bh0E,EAAOmF,EAAI,gBAAiBpU,KAAKs0L,qBACjCrlL,EAAOojB,EAAK,UAAWryB,KAAKu0L,aAC5BtlL,EAAOojB,EAAK,QAASryB,KAAKw0L,WAC1Bx0L,KAAKy1L,QAAUxyG,EAEXA,EAAQ,CACF,MAAUp5E,EAAI,MAItB,GAHA7J,KAAK41L,cACL51L,KAAKs0L,sBAED,EAAO,CACT,IAAInwK,EAAQ,KAEZ,GAAIkO,EAAIgwJ,oBAAqB,CAC3B,IAAMC,GAAS,IAAAl7E,iBAAgB,GAC/BjjF,EAAQkO,EAAIgwJ,oBAAoBC,EAAOvyI,QAASuyI,EAAOtyI,Q,MAE9C,EAAMuyI,cACfp+J,EAAQkO,EAAI3M,eAENI,SAAS,EAAMy8J,YAAa,EAAMC,aAG1C,IAAM3wI,EAAMxf,EAAIrC,eAChB6hB,SAAAA,EAAK6N,kBACLv7B,IAAS0tB,SAAAA,EAAK8N,SAASx7B,G,CAGzB/P,EAAG4gC,O,CAGL,OAAOh1C,IACT,EAEA,YAAAu0L,YAAA,SAAY5hL,GACV,IAAMnG,EAAKmG,EACH0f,EAAQryB,KAAI,IAGL,UAAXwM,EAAGnL,KAFS,CAAC,oBAAqB,uBAEHkQ,MAAK,SAAAmkD,GAAO,OAAArjC,EAAIijK,kBAAkB5/H,EAAtB,MAC7CrjC,EAAI2oC,YAAY,mBAChBxuD,EAAG+gB,iBAEP,EAEA,YAAAinK,UAAA,SAAUhoL,GAER,IAAMi5D,EAAgBj5D,EAAGi5D,eAAiB1lE,OAAO0lE,cAC3C1kD,EAAO0kD,EAAc1R,QAAQ,QAC7B8hI,EAAWpwH,EAAc1R,QAAQ,aAEvC,GAAIhzC,IAAS80K,EAAU,CACrBrpL,EAAG+gB,iBACH,IAAM2oD,EAAOn1D,EAAKtR,QAAQ,kBAAmB,SAC7CzP,KAAKqyB,IAAI2oC,YAAY,cAAc,EAAOkb,E,CAE9C,EAKA,YAAA0/G,YAAA,sBACE51L,KAAKi1L,aAAax/K,SAAQ,SAAAlT,GACxB,GAAI,EAAKmyL,aACFnyL,EAAO0c,OAAU1c,EAAO0c,OAAS1c,EAAO0c,MAAM,EAAM,EAAKoT,MAAQ,GAAI,CACxE,IAAM,EAAQ9vB,EAAOoQ,OAAS,QACtB67K,EAAQjsL,EAAM,IAClBisL,IACDA,EAAY,YAAK,IAAW,WAC3BjsL,EAAO2K,OAAO,EAAM3K,GACpB,EAAK+xL,qBACP,E,CAIR,GACF,EAOA,YAAAS,UAAA,SAAUxyL,EAA8BsH,QAAA,IAAAA,IAAAA,EAAA,IAC9B,IAAA0D,EAAS1D,EAAI,KACf6qL,EAAY10L,KAAK21L,cAEvB,GAAIjB,EAAW,CACL,IAAAx6F,EAAgC33F,EAAM,KAAhC,EAA0BA,EAAM,WAApBiF,OAAI,IAAG,GAAC,EAAC,EAC7BgnL,EAAM95K,SAASC,cAAc,QAInC,IAAK,IAAItT,KAHTmtL,EAAI55K,UAAY5U,KAAKy2B,QAAQ9H,OAC7BpsB,EAAOisL,IAAMA,EAEGhnL,EACdgnL,EAAIzpK,aAAa1jB,EAAKmG,EAAKnG,IAGV,iBAAR64F,EACTs0F,EAAIxnG,UAAYkT,EAEhBs0F,EAAI/pK,YAAYy1E,GAGlBw6F,EAAUjwK,YAAY+pK,E,CAGpBjhL,IACFvN,KAAKqD,QAAQsB,KAAKpC,GAClBvC,KAAK41L,cAET,EAMA,YAAAX,WAAA,WACE,OAAOj1L,KAAKqD,OACd,EAMA,YAAA8sB,UAAA,WACE,OAAOnwB,KAAKqyB,IAAIrC,cAClB,EAQA,YAAAzV,KAAA,SAAKi8E,EAAiB9uF,GACpB1H,KAAKqyB,IAAI2oC,YAAYw7B,GAAS,EAAO9uF,EACvC,EAMA,YAAAiuL,YAAA,WACE,OAAO31L,KAAK00L,SACd,EAOA,YAAAN,WAAA,SAAW1sL,EAA6B,G,IAAEwO,QAAF,MAAmC,CAAC,EAAC,GAA7B,OACxC,EAAkBlW,KAAhBkjF,EAAE,KAAE7wD,EAAG,MAAEje,EAAE,KACby9B,EAAMxf,EAAIrC,eAEhB,GAAI6hB,GAAOA,EAAIm7B,WAAY,CACzB,IAAM,GAAQ,IAAA+Y,UAAS3xE,GACjBiQ,EAAOgO,EAAI1d,cAAc,OACzB,EAAQk9B,EAAIo7B,WAAW,GAC7B,EAAM6oH,kBAEF,IAAA5kL,UAASxJ,GACX2c,EAAK2iE,UAAYt/E,EACRA,GACT2c,EAAKI,YAAY/c,GAGnBtH,MAAMC,UAAUC,MAAMM,KAAKyjB,EAAKE,YAAY9O,SAAQ,SAAAsgL,GAClD,EAAMC,WAAWD,EACnB,IAEAlkJ,EAAI6N,kBACJ7N,EAAI8N,SAAS,GACbvrC,EAAG4gC,QAEC9+B,GAAU,IACZ,EAAMrK,KAAK,eAAe,WACxB,IAAMoqL,EAAQ,EAAMriL,KAAK,WAAIkgL,GAAY,MAAK,GACzCmC,IACL/yG,EAAGwb,YAAYu3F,GACfA,EAAM7sD,iBAAiB0qD,IACzB,IACA,EAAMhwL,QAAQ,W,CAGpB,EACF,EAvUA,G,opECrEMoyL,GAAW,oDAMX,GAAS,CACbjzG,OALsB,aAMtBoL,QALuB,cAMvBwC,OALsB,cAYxB,eAmBE,WAAY3N,GAAZ,MACE,YAAMA,EAAI,iBAAkB,KAAS,KAVvC,EAAAx5E,OAAS,GAWC,IAAAuO,EAAW,EAAI,OACjBsrE,EAAOtrE,EAAOksE,aAEhBZ,IACFtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAGrC,EAAKD,IAAMhsE,EAAOisE,YAClB,EAAK7gF,QAAU4U,EAAO5U,SAAW,GACjC,IAAM8B,EAAQ,IAAI,K,OAClB,EAAKA,MAAQA,EACbA,EAAMsC,GAAG,qBAAsB,EAAK+pF,YAAa,GACjD,EAAKgkG,gBAAiB,IAAAluG,WAAS,WAAM,SAAKkK,aAAL,GAAoB,G,CAC3D,CAgUF,OAlWkD,QAoChD,YAAA85B,OAAA,WACE,IAAK,IAAA9sB,UAAL,CACQ,IAAAvmF,EAAWjY,KAAI,OACjBujF,EAAOtrE,EAAOksE,aACdywG,EAAW38K,EAAO44E,OAClBoM,GAAU,SAAS,MAAO,CAC9B9P,OAAO,KAAAvZ,IAAG,UAAG2P,EAAI,gBAAgBqxG,GAAY,UAAGrxG,EAAI,kBAAUA,EAAI,qBAEpEvjF,KAAKi9F,QAAUA,EACfj9F,KAAKm2L,SAAQ,SAAS,SAGtB,IAAA1uL,IAAGw1F,EAAS,aAAa,SAAA/xF,GAAK,OAAAA,EAAEmjB,iBAAF,GAXT,CAYvB,EAEA,YAAAmjE,YAAA,WACQ,MAAwBxxF,KAAtBmF,EAAK,QAAE+9E,EAAE,KAAEx5E,EAAM,SACzBw5E,EAAGp/E,QAAQ4F,EAAOmnF,OAAQ,CACxB4kG,UAAWtwL,EAAMxB,IAAI,eACrB88C,UAAWzgD,KAAKk1F,eAChB7xF,QAASrD,KAAK2rF,UAElB,EAEA,YAAAt8E,QAAA,W,UACgB,QAAd,EAAArP,KAAKo2L,iBAAS,SAAE/mL,UACO,QAAvB,EAAc,QAAd,EAAArP,KAAKg4I,iBAAS,eAAE3oI,eAAO,iBACvBrP,KAAKmF,MAAMmG,gBAAgB5C,MAAM,CAAEkF,QAAQ,IAC3C5N,KAAKw1L,eAAe5qI,UACpB,SAAS5qD,KAAKi9F,QAChB,EAOA,YAAAg3C,WAAA,SAAWznI,GACT,IAAMi2E,EAASj2E,EAAGrH,MAAMxB,IAAI,UAC5B3D,KAAKi9F,QAAQtgF,MAAMqmC,cAAgB,MACnChjD,KAAKq2L,cACL5zG,EAAOqC,aAAargE,YAAYzkB,KAAKi9F,QACvC,EAQA,YAAAk5F,QAAA,SAAQ/hL,GACA,IAAAgiL,EAAcp2L,KAAI,UAClB,EAAiCA,KAA/BkjF,EAAE,KAAEe,EAAG,MAAEywG,EAAS,YAAEz8K,EAAM,SAC5B5U,EAAUrD,KAAKqD,SAAW,MAAI4U,EAAO5U,SAAQ,GAC7CozB,EAAU,CACdi+J,UAAW,UAAGzwG,EAAG,aACjBt1D,OAAQ,UAAGs1D,EAAG,UACd/kC,OAAQ,UAAG+kC,EAAG,UACd0wG,SAAU,UAAG1wG,EAAG,YAChB5S,SAAU,UAAG4S,EAAG,aAyBlB,OAtBKmyG,GAUHA,EAAUlzG,GAAKA,EACfkzG,EAAU/B,MAAMjgL,KAVhBgiL,EAAY,IAAI,GAAelzG,EAAI9uE,EAAI,CACrCqiB,QAAO,EACPpzB,QAAO,EACPqxL,UAAS,EACTI,mBAAoB90L,KAAKi9F,QACzBx9F,OAAQO,OAEVA,KAAKo2L,UAAYA,GAMfA,EAAU1B,YACZ10L,KAAK00L,UAAY0B,EAAU1B,WAGzB0B,EAAU/yL,UACZrD,KAAKqD,QAAU+yL,EAAU/yL,SAGpB+yL,CACT,EA+DA,YAAA9xL,IAAA,SAAIqF,EAAcpH,G,WAAA,IAAAA,IAAAA,EAAA,IAChBA,EAAOoH,KAAOA,EACA,QAAd,EAAA3J,KAAKo2L,iBAAS,SAAErB,UAAUxyL,EAAgC,CAAEgL,MAAM,GACpE,EAUA,YAAA5J,IAAA,SAAIgG,G,MACEuD,EAMJ,OALc,QAAd,EAAAlN,KAAKo2L,iBAAS,SAAEnB,aAAax/K,SAAQ,SAAAlT,GAC/BA,EAAOoH,MAAQA,IACjBuD,EAAS3K,EAEb,IACO2K,CACT,EAMA,YAAAy+E,OAAA,W,MACE,OAAqB,QAAd,EAAA3rF,KAAKo2L,iBAAS,eAAEnB,eAAgB,EACzC,EAUA,YAAA7vL,OAAA,SAAOuE,G,MACCtG,EAAUrD,KAAK2rF,SACfppF,EAASvC,KAAK2D,IAAIgG,GAExB,GAAIpH,EAAQ,CACV,IAAMisL,EAAMjsL,EAAOisL,IACb1tL,EAAQuC,EAAQwB,QAAQtC,GACf,QAAf,EAAAisL,aAAG,EAAHA,EAAKvpK,kBAAU,SAAEnH,YAAY0wK,GAC7BnrL,EAAQuB,OAAO9D,EAAO,E,CAGxB,OAAOyB,CACT,EASA,YAAA2/E,IAAA,SAAI3/E,GACF,IAAM20I,EAAMl3I,KAAKo2L,UACXE,GAAY,IAAAplL,UAAS3O,GAAUvC,KAAK2D,IAAIpB,GAAUA,EAEpD20I,GAAOo/C,IACTA,EAAUppL,OAAOgqI,EAAKo/C,GACtBp/C,EAAIo9C,sBAER,EAMA,YAAAp/F,aAAA,WACE,OAAOl1F,KAAKi9F,OACd,EAMA,YAAAs5F,eAAA,WACQ,IAAErzG,EAAgBljF,KAAd,GAAEi9F,EAAYj9F,KAAL,QACb+nF,EAAK,KACLtF,EAASS,EAAGsB,OACV7nE,EAAUsgF,EAAO,MACnBp7E,EAAM4gE,EAAOgY,wBAAwBz6F,KAAK2nF,OAASsV,EAAS,CAChEtqF,MAAO,sBACP+c,KAAM,IAER,CAAC,MAAO,OAAQ,SAAU,SAASja,SAAQ,SAAApU,GACzC,IAAMqG,EAAQma,EAAIxgB,IACd,IAAAsxG,OAAMjrG,KACRiV,EAAMtb,IAAc,IAAA6P,UAASxJ,GAASA,GAASA,GAAS,GAAKqgF,EAEjE,GACF,EAQM,YAAA9E,OAAN,SAAa3gD,EAAqB40G,EAAqBrtI,G,YAAA,IAAAA,IAAAA,EAAA,I,mGAMrC,OALhB7J,KAAK2nF,OAASrlD,EAAKluB,GACX4jI,GAAF,EAAoBh4I,MAAT,UAAEkjF,EAAE,KACf9uE,EAAKkuB,EAAKixG,uBAEhBvzI,KAAKi9F,QAAQtgF,MAAMC,QAAU,GACb,GAAOo7H,EAAYA,EAAU/0D,OAAO7uE,EAAI8iI,GAAOl3I,KAAKm2L,QAAQ/hL,GAAI6uE,OAAOp5E,I,OAWvF,OAXM2sL,EAAU,SAEZtzG,IACF37D,WAAWvnB,KAAKu2L,eAAexqL,KAAK/L,MAAO,GAC3CkjF,EAAG/3E,IAAI+qL,GAAUl2L,KAAKu2L,eAAgBv2L,MACtCkjF,EAAGz7E,GAAGyuL,GAAUl2L,KAAKu2L,eAAgBv2L,MACrCkjF,EAAGp/E,QAAQ,aAAcw+B,EAAMk0J,IAGjCx2L,KAAKmF,MAAMM,IAAI,CAAEgxL,YAAan0J,IAEvB,CAAP,EAAOk0J,G,QAGH,YAAA7+C,WAAN,SAAiBr1G,EAAqB40G,G,yGAC5Bc,EAAch4I,KAAI,YAETk3I,IAAO,IAAA70I,YAAW21I,EAAUL,YACpC,GAAMK,EAAUL,WAAWr1G,EAAKluB,GAAI8iI,IADzC,M,OACF,MAAO,CAAP,EAAO,U,OAEP,MAAO,CAAP,EAAO50G,EAAKixG,uBAAuBvsD,W,QAIvC,YAAAqvG,YAAA,WACE,IAAM15K,EAAQ3c,KAAKi9F,QAAQtgF,MACrBjG,EAAO,UACbiG,EAAMmsB,IAAMpyB,EACZiG,EAAM+S,KAAOhZ,EACbiG,EAAMC,QAAU,MAClB,EAQA,YAAAyxE,QAAA,SAAQ/rD,EAAqB40G,GACnB,IAAAh0D,EAAOljF,KAAI,GACbg4I,EAAYh4I,KAAKg4I,UAEjB5jI,EAAKkuB,EAAKixG,uBAEZyE,EACFA,EAAU3pD,QAAQj6E,EAAI8iI,GAEtBA,GAAOA,EAAI7oD,UAGbruF,KAAKq2L,cAEDnzG,IACFA,EAAG/3E,IAAI+qL,GAAUl2L,KAAKu2L,eAAgBv2L,MACtCkjF,EAAGp/E,QAAQ,cAAew+B,EAAM40G,IAGlCl3I,KAAKmF,MAAMK,MAAM,cACnB,EACF,EAlWA,CAAkD,G,0BCtClD,SAN+B,CAC7B0+E,YAAa,OACbp9E,SAAU,CAAC,EACX42G,QAAQ,G,48BC4BJg5E,GAAc,CAClB,CAAC,UAAW,UAAW,WACvB,CAAC,SAAU,SAAU,UACrB,CAAC,aAAc,aAAc,cAC7B,CAAC,OAAQ,iBACT,CAAC,QAAS,kBACV,CAAC,cAAe,cAChB,CAAC,eAAgB,eACjB,CAAC,YAAa,iBAAkB,mBAChC,CAAC,cAAe,aAAc,eAC9B,CAAC,cAAe,mBAAoB,WACpC,CAAC,cAAe,mBAAoB,WACpC,CAAC,cAAe,aAAc,eAC9B,CAAC,cAAe,aAAc,eAC9B,CAAC,mBAAoB,kBAAmB,eACxC,CAAC,oBAAqB,mBAAoB,iBAC1C,CAAC,mBAAoB,aAAc,eACnC,CAAC,iBAAkB,gBAAiB,aACpC,CAAC,iBAAkB,iBACnB,CAAC,iBAAkB,iBACnB,CAAC,kBAAmB,kBACpB,CAAC,iBAAkB,gBAAiB,iBACpC,CAAC,mBAAoB,mBACrB,CAAC,wBAAyB,uBAC1B,CAAC,iBAAkB,kBAGrB,eASE,WAAYxzG,GAAZ,MACE,YAAMA,EAAI,WAAY,KAAS,KATjC,EAAAyzG,gBAAkBA,GAAA,WAClB,EAAAC,gBAA2C,CAAC,EAC5C,EAAA3+H,SAA0C,CAAC,EAC3C,EAAA/Y,OAA8B,CAAC,EAOrB,IAAAjnC,EAAW,EAAI,OACjBsrE,EAAOtrE,EAAOksE,aACZyyG,EAAoB,EAAI,gBAqHhC,IAAK,IAAMtsL,KAnHPi5E,IACFtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAIrCl7D,OAAO/nB,KAAKgX,EAAOnR,UAAW2O,SAAQ,SAAA0vB,GACpC,IAAMnkC,EAAMiX,EAAOnR,SAAUq+B,GACzBnkC,EAAIsJ,IAAI,EAAKhG,IAAItD,EAAIsJ,GAAItJ,EAC/B,IAEA41L,EAAgB,cAAgB,CAC9B10G,IAAG,SAACC,GACF,OAAOA,EAAGyT,WAAW,wBACvB,GAGFghG,EAAgB,aAAe,CAC7B10G,IAAG,SAACC,GACFA,EAAGyT,WAAW,aACdzT,EAAGyT,WAAW,aAAc,CAAErzF,OAAQ,mBACxC,GAGFq0L,EAAgB,YAAc,CAC5B10G,IAAG,SAACC,EAAI8C,EAAQp7E,QAAA,IAAAA,IAAAA,EAAA,IAEd,IAAMq5E,EAAKf,EAAG4D,WACRpzE,EAAQ9I,GAAQA,EAAK8I,MACnB4T,EAAW1c,EAAI,OACjBgoC,EAAMtrB,GAAU47D,EAAG6G,cACnB6tG,EAAStwK,EAAS,CAACA,GAAU,MAAI47D,EAAGoD,kBAAgB,GACpDuxG,EAAankL,GAAuB,aAAdA,EAAMnQ,KAC5Bu0L,EAAgB,CAAEt4F,iBAAkB,GAG1C,IAAK5sD,IAAQA,EAAIluC,IAAI,aACnB,OAAOu/E,EAAGuC,WAAW,gCAGvB,IAAMzlE,EAAO6xB,EAAIluC,IAAI,UAAYu/E,EAAGv/E,IAAI,SAClCqzL,EAAU,WAAM,OAAA9zG,EAAGqS,YAAYwhG,EAAf,EAChBE,GAAU,IAAA1gL,UARF,CAAC,WAAY,aAQKyJ,GAChC62K,EAAOphL,SAAQ,SAAAo8B,GAAO,OAAAA,EAAI/tC,QAAQ,UAAZ,IAGtBgzL,EAAavvK,WAAWyvK,EAAS,GAAKA,IAEtC,IAAMtzG,EAAU,SAAChrE,GACfwqE,EAAGp/E,QAAQ,UAAGyiI,GAAS,UAAU7tH,EACnC,EACMirE,EAAS,SAACjrE,GACdwqE,EAAGp/E,QAAQyiI,GAAW7tH,EACxB,EACMkrE,EAAQ,SAAC14E,EAAQrB,EAAW6O,GAChCm+K,EAAOphL,SAAQ,SAAAo8B,GAAO,OAAAA,EAAIpsC,IAAI,SAAU,WAAlB,IACtB08E,EAAGjsE,OAAO2gL,GACVhlJ,EAAI8iD,aACJzR,EAAGp/E,QAAQ,UAAGyiI,GAAS,QAAQ7tH,GAG/B6O,YAAW,WAAM,OAAA27D,EAAG2S,WAAWkhG,EAAd,KAGhBE,GAAWv+K,EAAKiuF,YAAczjB,EAAGz9E,IAAI,WAAY,EACpD,EAEA,GAAIwxL,EAEQ90G,EAAGyT,WAAW,sBAAuB,CAC7CpM,WAAY,EACZxpE,KAAI,EACJuG,OAAQsrB,EACR6xC,QAAO,EACPC,OAAM,EACNC,MAAK,EACLjxE,MAAK,QAEF,CACDmkL,GACFnkL,EAAMqgD,aAAaoB,aAAaviB,EAAIvP,KAAKluB,GAAI,EAAG,GAIlD,IAAM8iL,EAAU/0G,EAAGgD,SAASxhF,IAAI,aAChCuzL,EAAQxzG,QAAUA,EAClBwzG,EAAQvzG,OAASA,EACjBuzG,EAAQlnG,mBAAqBpM,EAE7BszG,EAAQjnG,qBAAqB4mG,E,CAG/BA,EAAOphL,SAAQ,SAAAo8B,GAAO,OAAAA,EAAIpsC,IAAI,SAAU,mBAAlB,GACxB,GAIFmxL,EAAgB,aAAe,SAAA1rL,GAAK,OAAAA,EAAE5D,YAAYP,MAAd,EACpC6vL,EAAgB,aAAe,SAAA1rL,GAAK,OAAAA,EAAE5D,YAAYL,MAAd,EACpCyvL,GAAYjhL,SAAQ,SAAAgxE,GAClB,IAAM0wG,EAAS1wG,EAAK,GACd/wB,EAAM,OAAQ,YAAU+wB,EAAK,KAAMslC,QACnCyoB,EAAU,eAAQ/tD,EAAK,IAC7BmwG,EAAgBpiD,GAAW9+E,EACvByhI,IACFP,EAAgBO,GAAUzhI,EAE1B,CAAC,MAAO,QAAQjgD,SAAQ,SAAA9L,GACtBu5E,EAAGz7E,GAAG,UAAGkC,EAAI,YAAIwtL,IAAU,W,IAAC,sDAAY,OAAAj0G,EAAGp/E,QAAO,MAAVo/E,EAAE,IAAS,UAAGv5E,EAAI,YAAI6qI,IAAc9zI,GAAI,GAAxC,GAC1C,IAEJ,IAGAuX,EAAO9S,MAAQ+9E,EAAGsB,OAEDoyG,EACf,EAAKtyL,IAAIgG,EAAIssL,EAAgBtsL,IAG/B,OAAO,CACT,CAkOF,OAzW4C,QA2J1C,YAAAhG,IAAA,SAA8BgG,EAAYksF,GACxC,IAAItpF,GAAwB,IAAA7K,YAAWm0F,GAAW,CAAEtU,IAAKsU,GAAYA,EAWrE,OATKtpF,EAAOyQ,OACVzQ,EAAOmiL,QAAS,UAGXniL,EAAO3F,WAEd2F,EAAO5C,GAAKA,EACZtK,KAAKi4D,SAAS3tD,GAAMqsL,GAAA,kBAAuBzpL,GAEpClN,IACT,EAUA,YAAA2D,IAAA,SAAI2G,GACF,IAAIksF,EAAex2F,KAAKi4D,SAAS3tD,GASjC,OAPI,IAAAjI,YAAWm0F,IACbA,EAAU,IAAIA,EAAQx2F,KAAKiY,QAC3BjY,KAAKi4D,SAAS3tD,GAAMksF,GACVA,GACVx2F,KAAKkjF,GAAGuC,WAAW,WAAIn7E,EAAE,wBAGpBksF,CACT,EAcA,YAAA7vF,OAAA,SAAO2D,EAAYorD,QAAA,IAAAA,IAAAA,EAAA,IACjB,IAAM8gC,EAAUx2F,KAAK2D,IAAI2G,GAEzB,GAAIksF,EAAS,CACX,IAAM4gG,EAAS,SACV5gG,EAAQ7mF,YAAYtP,WACpBq1D,GAEL11D,KAAKsE,IAAIgG,EAAI8sL,GAEb,IAAMD,EAAST,GAAYzgL,QAAO,SAAAy/C,GAAO,qBAAQA,EAAI,MAASprD,GAAMorD,EAAI,EAA/B,IAAmC,GAC5EyhI,GAAUn3L,KAAKsE,IAAI6yL,EAAO,GAAIC,E,CAGhC,OAAOp3L,IACT,EAOA,YAAAyN,IAAA,SAAInD,GACF,QAAStK,KAAKi4D,SAAS3tD,EACzB,EAMA,YAAAqhF,OAAA,WACE,OAAO3rF,KAAKi4D,QACd,EAUA,YAAAiqB,IAAA,SAAI53E,EAAYzH,GACd,YADc,IAAAA,IAAAA,EAAA,IACP7C,KAAK41F,WAAW51F,KAAK2D,IAAI2G,GAAKzH,EACvC,EAUA,YAAA8a,KAAA,SAAKrT,EAAYzH,GACf,YADe,IAAAA,IAAAA,EAAA,IACR7C,KAAK8iF,YAAY9iF,KAAK2D,IAAI2G,GAAKzH,EACxC,EAiBA,YAAAyyF,SAAA,SAAShrF,GACP,OAAOtK,KAAK8jI,YAAYp9G,eAAepc,EACzC,EASA,YAAAw5H,UAAA,WACE,OAAO9jI,KAAKk/C,MACd,EASA,YAAA02C,WAAA,SAAWY,EAAyB3zF,GAClC,IAAIqK,EAEJ,QAHkC,IAAArK,IAAAA,EAAA,IAG9B2zF,GAAWA,EAAQtU,IAAK,CACpB,IAAEgB,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,OACZsK,EAAKksF,EAAQlsF,GACbi4E,EAASW,EAAG2T,OAEb72F,KAAKs1F,SAAShrF,KAAOzH,EAAQ47C,OAAUxmC,EAAOylG,SAEjDxwG,EAASq1E,GAAUiU,EAAQzR,QAAQxC,EAAQ1/E,GAEvCyH,GAAMksF,EAAQ74E,OAAS64E,EAAQ64F,SAAWxsL,EAAQmiF,QACpDhlF,KAAKk/C,OAAO50C,GAAM4C,G,CAKxB,OAAOA,CACT,EASA,YAAA41E,YAAA,SAAY0T,EAAyB3zF,GACnC,IAAIqK,EAEJ,QAHmC,IAAArK,IAAAA,EAAA,IAG/B2zF,GAAWA,EAAQtU,IAAK,CACpB,IAAEgB,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,OACZsK,EAAKksF,EAAQlsF,GACbi4E,EAASW,EAAG2T,QAEd72F,KAAKs1F,SAAShrF,IAAOzH,EAAQ47C,QAAUxmC,EAAOylG,UAC5CpzG,UAAWtK,KAAKk/C,OAAO50C,GAE3B4C,EAASspF,EAAQtR,SAAS3C,EAAQ1/E,G,CAItC,OAAOqK,CACT,EAQA,YAAAgF,OAAA,SAAOskF,GAGL,OAFKA,EAAQ74E,OAAM64E,EAAQ64F,QAAS,GAE7B,IADKsH,GAAA,kBAAuBngG,GAC5B,CAAQx2F,KAAKiY,OACtB,EAEA,YAAA5I,QAAA,WACErP,KAAK42L,gBAAkB,CAAC,EACxB52L,KAAKi4D,SAAW,CAAC,EACjBj4D,KAAKk/C,OAAS,CAAC,CACjB,EACF,EAzWA,CAA4C,G,YCb5C,IACEugI,QAAS,CACP,CACE91K,KAAM,UACNwT,MAAM,EACNyU,WAAY,CAAC,UAAW,QAAS,WAAY,MAAO,QAAS,OAAQ,WAEvE,CACEjoB,KAAM,OACNwT,MAAM,EACNyU,WAAY,CACV,iBACA,YACA,kBACA,cACA,gBACA,QACA,aACA,YACA,cACA,eAGJ,CACEjoB,KAAM,YACNwT,MAAM,EACNyU,WAAY,CAAC,QAAS,SAAU,YAAa,aAAc,SAAU,YAEvE,CACEjoB,KAAM,aACNwT,MAAM,EACNyU,WAAY,CACV,cACA,YACA,cACA,iBACA,QACA,cACA,aACA,gBAGJ,CACEjoB,KAAM,cACNwT,MAAM,EACNyU,WAAY,CAAC,mBAAoB,gBAAiB,SAAU,aAAc,eAE5E,CACEjoB,KAAM,QACNwT,MAAM,EACNyU,WAAY,CAAC,UAAW,aAAc,eAG1CggE,SAAU,GACV1N,YAAa,MACb2M,QAAQ,EACRwmG,iBAAiB,EACjBC,kBAAkB,EAClBC,mBAAmB,EACnBC,cAAc,EACdC,iBAAiB,EACjBC,cAAe,CAAC,QAAS,W,kzCC5B3B,4B,8CAmeA,QAneqF,QAI5E,EAAArnD,YAAP,WACE,OAAO,IAAAnjI,QAAOlN,KAAKK,UAAW,WAChC,EAKA,YAAAyG,SAAA,WACE,MAAO,CACL6C,KAAM,GACN2yE,SAAU,GACV95E,KAAM,GACNsE,SAAU,GACVgrB,KAAM,GACNpqB,MAAO,GACPwyF,KAAM,GACNy9F,aAAc,GACdp5F,OAAQ,GACR7/C,SAAS,EACTk5I,YAAa,CAAC,UAAW,WACzB78J,MAAM,EACNgzF,WAAW,EACX8pE,WAAW,EACXC,cAAUzyL,EACV0yL,eAAgB,KAChBC,aAAc,KAElB,EAEA,YAAAzwL,WAAA,SAAWuhB,EAAYjf,QAAZ,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IACrB7J,KAAKkjF,GAAKr5E,EAAKq5E,GACf,IAAM54E,EAAKtK,KAAKgqH,SAAW,GACrBrgH,EAAe3J,KAAK2D,IAAI,SAAW3D,KAAK2D,IAAI,UAAY,IAE7D3D,KAAK2D,IAAI,aAAe3D,KAAKyF,IAAI,YAAakE,GAAQW,GAAImF,QAAQ,KAAM,MACzE,IAAMgX,EAAOzmB,KAAK2D,IAAI,aACrB3D,KAAK2D,IAAI,OAAS3D,KAAKyF,IAAI,KAAMghB,IAEjC9c,GAAQ3J,KAAKyF,IAAI,QAAQ,IAAAuvG,YAAWvuF,GAAMhX,QAAQ,KAAM,MACzDzP,KAAKyH,GAAG,SAAUzH,KAAKi4L,aAEvBC,EAASC,SAASn4L,KAAM8oB,EAAOjf,EACjC,EAEA,YAAAuuL,gBAAA,W,QAEE,OAA4B,QAArB,EAAe,QAAf,EAAAp4L,KAAKiF,kBAAU,eAAE4E,YAAI,eAAEwuL,UAChC,EAEA,YAAAJ,YAAA,SAAYj8J,EAASnyB,G,MAArB,YAAqB,IAAAA,IAAAA,EAAA,IACX,IACFwpF,EADSrzF,KAAI,GACL8oF,OACRn/E,EAAO3J,KAAK0sF,UACZ4rG,EAAUzuL,EAAK8qH,QACfjtH,EAAQ4wL,EAAU,GAAKt4L,KAAKu4L,eAAe1uL,GAC3CwuL,EAAar4L,KAAKo4L,kBAElB14K,EAAK1f,KAAK4F,oBACV6Z,GAAO,IAAAxe,MAAKye,GAAI/J,QAAO,SAAC/V,EAAGC,GAE/B,OADAD,EAAEC,GAAK,EAAK2O,SAAS3O,GACdD,CACT,GAAG,CAAC,GAEE44L,EAAS,UAAI,IAAAv3L,MAAKjB,KAAKy4L,oBAAoB,GAAF,CAAE,QAAK,GAChDC,GAAU,IAAAz3L,MAAKye,GACfi5K,GAAc9uL,EAAK+uL,OAASP,IAAeC,GAAWE,EAAOjnL,MAAK,SAAA4zB,GAAK,OAAAuzJ,EAAQ7zL,QAAQsgC,IAAM,CAAtB,KACvE2uH,EAAW9zJ,KAAK2D,IAAI,YACpB0vH,EAAS,CAAE/2C,SAAUt8E,KAAMyf,KAAI,EAAEC,GAAE,EAAEhY,MAAK,EAAEmC,KAAI,GACtDwpF,EAAGwlG,QAAQxlG,EAAG3pF,OAAOovL,eAAgBzlE,GACrCygC,GAAYA,EAASzgC,GACrBslE,GAAc34L,KAAK+4L,mBAAgB,MAAIpvL,GAAOjC,EAAK,GAAImC,EACzD,EAEA,YAAAkvL,iBAAA,SAAiBp8K,EAAmB9S,G,MAC5BwpF,EAAY,QAAP,EAAArzF,KAAKkjF,UAAE,eAAEv/E,IAAI,gBACxB0vF,SAAAA,EAAI2lG,gBAAgB,SAAKr8K,GAAK,CAAE+rE,MAAO7+E,EAAKg/E,aAAch/E,EAC5D,EAEA,YAAAovL,IAAA,SAAInwK,EAAmBjf,QAAA,IAAAA,IAAAA,EAAA,IACjBA,EAAKqvL,WAAUrvL,EAAK+uL,MAAO,GACvB,IAAAt7E,EAAqBzzG,EAAI,QAAbiN,EAAI,GAAKjN,EAAvB,aAGN,OADAif,EAAM4/D,OAAS5xE,EAAK+xE,aAAcy0B,GAC3Bt9G,KAAKyF,IAAIqjB,EAAO,SAAKhS,GAAI,CAAE+xE,WAAY//D,EAAM4/D,MACtD,EAEA,YAAA7rB,GAAA,SAAG/zC,EAA6Bjf,QAAA,IAAAA,IAAAA,EAAA,IAE9B7J,KAAKyF,IAAIqjB,EAAO,SAAKjf,GAAI,CAAE+uL,MAAM,IACnC,EAEA,YAAA52I,KAAA,WAAQ,EAMR,YAAAgoE,MAAA,WACE,OAAOhqH,KAAK2D,IAAI,KAClB,EAQA,YAAAqkH,QAAA,WACE,OAAOhoH,KAAK2D,IAAI,OAClB,EAMA,YAAA+oF,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,WAClB,EAQA,YAAAigI,SAAA,SAAS/5H,G,WAAA,IAAAA,IAAAA,EAAA,IACC,MAAkBA,EAAI,OAAtB86H,OAAM,IAAG,GAAI,EACfr6H,EAAKtK,KAAKgqH,QACVrgH,EAAO3J,KAAK2D,IAAI,SAAW3D,KAAK2D,IAAI,SAC1C,OAAQghI,IAAiB,QAAP,EAAA3kI,KAAKkjF,UAAE,eAAE5vB,EAAE,kCAA2BhpD,MAAUX,CACpE,EAQA,YAAA6lD,SAAA,SAAS3lD,QAAA,IAAAA,IAAAA,EAAA,IACC,IAAAspK,EAActpK,EAAI,UACpB5D,EAAMjG,KAAK2D,IAAI,SACrB,OAAQ3D,KAAKm5L,YAAehmB,EAAqCltK,EAAzBjG,KAAKo5L,iBAC/C,EAQA,YAAAD,SAAA,SAAStvL,QAAA,IAAAA,IAAAA,EAAA,IACC,IACFwvL,EADexvL,EAAI,UACO7J,KAAKs5L,kBAC/BrzL,EAAMjG,KAAK2D,IAAI,SACrB,QAAQ,IAAAimF,aAAY3jF,IAAgB,KAARA,IAAeozL,CAC7C,EAMA,YAAAE,eAAA,WACE,OAAOv5L,KAAKm5L,aAAen5L,KAAKm5L,SAAS,CAAEK,UAAU,GACvD,EAYA,YAAA/wG,SAAA,SAAS5+E,G,WAAA,IAAAA,IAAAA,EAAA,IACP,IAAMF,EAAO3J,KAAK0sF,UAElB,OAAO,EAAP,IADY7iF,EAAK6+F,WAAY,IAAAA,WAAU/+F,GAAQA,GAC/B3J,KAAKu4L,eAAe1uL,GAAK,CAC3C,EAMA,YAAAuvL,gBAAA,WACE,IAAMp1G,EAAMhkF,KAAK2D,IAAI,WACrB,MAAO,WAAI,IAAAimF,aAAY5F,GAAahkF,KAAK2D,IAAI,YAAfqgF,EAChC,EAUA,YAAAy1G,QAAA,SAAQ/xL,EAAemC,QAAA,IAAAA,IAAAA,EAAA,IACrB,IAAMo3H,EAAmB,OAAVv5H,GAA4B,KAAVA,EAAe1H,KAAKy4L,kBAAoBz4L,KAAK05L,aAAahyL,EAAOmC,GAClG,OAAO7J,KAAKi5L,IAAIh4D,EAAsBp3H,EACxC,EAMA,YAAA6nG,UAAA,WACE,QAAS1xG,KAAK2D,IAAI,UACpB,EAQA,YAAA+E,MAAA,SAAMmB,GAEJ,YAFI,IAAAA,IAAAA,EAAA,IACJ7J,KAAKi5L,IAAIj5L,KAAKy4L,kBAAmB,SAAK5uL,GAAI,CAAE8qH,SAAS,KAC9C30H,IACT,EAMA,YAAA25L,SAAA,WACE,IAAMp7K,EAASve,KAAK45L,YACpB,OAAOr7K,EAASA,EAAOs7K,eAAe75L,MAAQA,KAAKm5L,SAAS,CAAEK,UAAU,GAC1E,EAMA,YAAAI,UAAA,WACE,OAAO55L,KAAKo4L,iBACd,EAMA,YAAA0B,OAAA,WACE,QAAS95L,KAAK2D,IAAI,OACpB,EAEA,YAAA+1L,aAAA,SAAahyL,EAAemC,GAC1B,OAAO7J,KAAK+5L,WAAWryL,EAAOmC,EAChC,EAEA,YAAA4uL,gBAAA,WACE,MAAO,CAAE/wL,MAAO,GAClB,EASA,YAAAioD,SAAA,SAASjoD,EAAe+uI,EAAiB5sI,QAAjB,IAAA4sI,IAAAA,GAAA,QAAiB,IAAA5sI,IAAAA,EAAA,IACvC,IAAMo3H,EAASjhI,KAAK+5L,WAAWryL,GACzBmhF,GAAc4tD,GAEnB5tD,GAAc7oF,KAAKyF,IAAI,CAAEiC,WAAOrC,GAAa,CAAEwjF,WAAU,EAAEj7E,QAAQ,IACpE5N,KAAKyF,IAAIw7H,EAAQ,IAAEp4C,WAAU,GAAKh/E,GACpC,EAYA,YAAA67H,kBAAA,SAAkBh+H,EAAe+uI,EAAmB5sI,QAAA,IAAAA,IAAAA,EAAA,IAClD7J,KAAK2vD,SAASjoD,EAAO+uI,EAAU,SAAK5sI,GAAI,CAAE4rJ,UAAW,IACvD,EAaA,YAAAskC,WAAA,SAAWryL,EAAemC,QAAA,IAAAA,IAAAA,EAAA,IACxB,IAAMqD,EAAS,CAAExF,MAAK,GAChBi4H,EAAM,aAOZ,IALI,IAAAzuH,UAASxJ,KAAkC,IAAxBA,EAAM7C,QAAQ86H,KACnCzyH,EAAOxF,MAAQA,EAAM+H,QAAQkwH,EAAK,IAAIr3C,OACtCp7E,EAAO6gH,WAAY,IAGhB/tH,KAAK2D,IAAI,kBAAoBkG,EAAK4sI,SACrC,OAAOvpI,EAGT,IAAMxM,EAAO,GACTs5L,EAAW,UAAG9sL,EAAOxF,OACrBsU,EAAQg+K,EAASn1L,QAAQ,KAAO,EAChCmd,EAAMg4K,EAAS5iL,YAAY,KACzBugL,EAAeqC,EAASr5K,UAAU,EAAG3E,EAAQ,GAWnD,GAVI27K,IAAczqL,EAAOyqL,aAAeA,GACxCj3L,EAAKiE,KAAKqX,GAGNgG,GAAO,GACTthB,EAAKiE,KAAKqd,GAGZ9U,EAAOxF,MAAQ4rB,OAAOjzB,UAAUsgB,UAAUpgB,MAAMy5L,EAAUt5L,GAEtDmJ,EAAKowL,QAAS,CAChB,IAAMC,EAAM3xG,WAAWr7E,EAAOxF,OAC9BwF,EAAOgxD,KAAOhxD,EAAOxF,MAAM+H,QAAQyqL,EAAK,IACxChtL,EAAOxF,MAAQwyL,C,CAGjB,OAAOhtL,CACT,EAuCA,YAAAqrL,eAAA,SAAe,G,IAAE4B,QAAF,MAAuB,CAAC,EAAC,GAAZ,YAC1B,OAAQn6L,KAAKm5L,YAAcgB,EAAcn6L,KAAKo5L,kBAAoBp5L,KAAKo6L,cACzE,EAUA,YAAAA,aAAA,SAAan0L,EAAc4D,QAAA,IAAAA,IAAAA,EAAA,IACzB,IAAMrJ,EAAKR,KAAK2D,IAAI,gBACdqgF,EAAMhkF,KAAKo5L,kBACb1xL,GAAQ,IAAAkiF,aAAY3jF,GAAQjG,KAAK2D,IAAI,SAAsBsC,EACzDkzL,IAAY,IAAAvvG,aAAYliF,IAAoB,KAAVA,EAExC,GAAIA,GAASs8E,GAAOt8E,IAAUs8E,EAC5B,OAAOA,EAGT,GAAIxjF,GAAM24L,EAAU,CAClB,IAAMkB,EAAqB,QAAP75L,EAAe,WAAIkH,EAAM+H,QAAQ,OAAQ,IAAG,KAAM/H,EACtEA,EAAQ,UAAGlH,EAAE,YAAI65L,EAAW,I,CAO9B,OAJIlB,GAAYn5L,KAAK2D,IAAI,eAAiBkG,EAAKywL,gBAC7C5yL,EAAQ,UAAGA,EAAK,gBAGXA,GAAS,EAClB,EAEA,YAAA6yL,kBAAA,SAAkBvC,GAChBh4L,KAAK68D,GAAG,CAAEm7H,aAAY,GACxB,EAEA,YAAAsB,gBAAA,WACE,OAAOt5L,KAAK2D,IAAI,iBAAmB,IACrC,EAEA,YAAA62L,UAAA,SAAUl5J,QAAA,IAAAA,IAAAA,EAAA,IACR,IAAMtlB,EAAQslB,EAAMz8B,QAAQ,KAAO,EAC7Bmd,EAAMsf,EAAMlqB,YAAY,KAE9B,MAAO,CACLzN,KAAM23B,EAAM3gB,UAAU,EAAG3E,EAAQ,GAAGssE,OACpC5gF,MAAO4rB,OAAOjzB,UAAUsgB,UAAUpgB,MAAM+gC,EAAO,CAACtlB,EAAOgG,GAAO,EAAIA,OAAM3c,IAAYijF,OAExF,EAEA,YAAAmyG,kBAAA,SAAkB,G,IAAEl0K,EAAM,SAAE++D,EAAS,YAAEm6F,EAAO,UACtCrnF,EAAM9S,GAAa/+D,EACzB,IAAK6xE,EAAK,OAAO,EAEjB,IAAM9tF,EAAKtK,KAAKgqH,QACV1tC,EAAWt8E,KAAK0sF,UAChBmrG,EAAY73L,KAAK2D,IAAI,aACrBm0L,EAAW93L,KAAK2D,IAAI,YACpBo0L,EAAiB/3L,KAAK2D,IAAI,kBAC1BqjI,EAAa5uC,EAAIz0F,IAAI,cACrB+2L,EAActiG,EAAIz0F,IAAI,oBACxBojI,EAAW3uC,EAAIz0F,IAAI,YAmBvB,IAfI,IAAAzC,SAAQ6lI,KACVA,EAAWA,EAASliI,QAAQy3E,IAAa,IAIvC,IAAAp7E,SAAQ8lI,KACVD,EAAWC,EAAWniI,QAAQy3E,GAAY,GAIxCu7G,IACF9wD,GAAYxgH,GAAWm0K,IAAgBA,EAAY71L,QAAQyF,IAAO,GAAKowL,EAAY71L,QAAQy3E,IAAa,IAItGmjG,GAAWqY,EAAU,CACvB,IAAM,GAAa,IAAA72L,MAAK62L,GACxBrY,EAAQhqK,SAAQ,SAAAklL,GACdA,EAAOC,gBAAgBnlL,SAAQ,SAAAtQ,GAC7B,IAAI,IAAAoR,UAAS,EAAYpR,EAAMmF,IAAK,CAClC,IAAM8H,EAAS0lL,EAAS3yL,EAAMmF,IAC9By8H,EAAWA,IAAY,IAAAxwH,UAASnE,EAAQjN,EAAMxB,IAAI,S,CAEtD,GACF,G,CAIF,GAAIo0L,EAAgB,CAClB,IAAM,EAASzyG,GAAaA,EAAU/mE,SAChC2yH,EAAW,GAAU,EAAOvrD,QAClC,GAAIurD,EAAU,CACZ,IAAM,GAA8B,IAAA1yC,UAAWz+F,OAAOynC,iBAAiB0pG,GAAY,CAAC,GACpF,IAAA3rI,MAAKwyL,GAAgB,SAAC3lL,EAAQkqE,GAC5ByqD,EAAWA,GAAY,EAAOzqD,KAAa,IAAA/lE,UAASnE,EAAQ,EAAOkqE,GACrE,G,MAEAyqD,GAAW,C,CAIf,QAASA,CACX,EACF,EAneA,CAAqF,M,YAserFmxD,GAAS2C,eAAiB,SAAUv+G,EAAU77E,EAAKqoB,EAAOjf,QAAA,IAAAA,IAAAA,EAAA,IACxDyyE,EAASj8E,UAAUkH,WAAWhH,MAAME,EAAK,CACvCqoB,E,SAEKjf,GAAI,CACPixL,SAAU,KAGhB,EAGA5C,GAASC,SAAW,SAAUpuL,EAAS+e,EAAOjf,QAAA,IAAAA,IAAAA,EAAA,KAC3CA,EAAKixL,UAAY/wL,EAAQi4C,KAAKl5B,EAAOjf,EACxC,E,48BCjlBakxL,GAAe,SAACv4L,GAAiB,MAAS,YAATA,GAA+B,WAATA,CAAtB,EA6E9C,4B,8CA0SA,QA1SuG,QACrG,YAAAsE,SAAA,WACE,OAAO,SACF,kBAAsB,CACzBk0L,UAAU,EACVppK,WAAY,GACZqpK,UAAW,IACXxrI,KAAM,KACNyrI,UAAW,KACXC,QAAS,KACTpgK,MAAM,GAEV,EAEA,YAAAxzB,WAAA,SAAWuhB,EAAYjf,QAAZ,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IAErB,kBAAwB,GAAU7J,KAAM8oB,EAAOjf,GACvC,IAAAq5E,EAAOljF,KAAI,GACb4xB,EAAa,IAAI,GAAW5xB,KAAK2D,IAAI,eAAiB,GAAI,CAC9Du/E,GAAE,EACFm1G,WAAYr4L,OAEdA,KAAKyF,IAAI,aAAcmsB,EAAY,CAAEhkB,QAAQ,IAC7C5N,KAAKwK,SAASonB,EAAY,SAAU5xB,KAAKo7L,gBAEzC,YAAkBp7L,KAAM8oB,EAAOjf,EACjC,EAEA,sBAAI,yBAAU,C,IAAd,WAEE,OAAO7J,KAAK2D,IAAI,eAAkB,EACpC,E,gCAMA,YAAAi3L,cAAA,WAEE,OAAO,MAAI56L,KAAK2D,IAAI,cAAcH,QAAM,EAC1C,EAOA,YAAA63L,YAAA,SAAY/wL,GACV,OAAOtK,KAAK4xB,WAAW3b,QAAO,SAAAwQ,GAAQ,OAAAA,EAAKujG,UAAY1/G,GAAMmc,EAAKimE,YAAcpiF,CAA1C,IAA8C,EACtF,EAOA,YAAAgxL,cAAA,SAAcx6L,GAEZ,OAAOd,KAAK2D,IAAI,cAAcF,GAAG3C,EACnC,EAMA,YAAAy6L,WAAA,WACE,QAASv7L,KAAK2D,IAAI,WACpB,EAYA,YAAA63L,UAAA,SAAU,G,IAAEC,QAAF,MAAmC,CAAC,EAAC,GAA7B,OAChB,OAAOz7L,KAAK46L,gBAAgBjlL,QAAO,SAACvR,EAAKqiB,GAGvC,OADAriB,EADYq3L,EAASh1K,EAAKimE,UAAYjmE,EAAKujG,SAChC,UAAGvjG,EAAK8xK,kBACZn0L,CACT,GAAG,CAAC,EACN,EAMA,YAAAs3L,aAAA,WACE,OAAO17L,KAAK27L,mBACd,EAMA,YAAAC,QAAA,WACE,OAAO57L,KAAK67L,WACd,EASA,YAAAC,kBAAA,SAAkBjyL,G,WAAA,IAAAA,IAAAA,EAAA,IAChB,IAAMF,EAAO3J,KAAK0sF,UACZj9B,EAAOzvD,KAAK67L,YACZV,EAAUn7L,KAAK2D,IAAI,WACrByO,EAASpS,KAAKw7L,YACd7+K,EAAoB,CAAC,EAEzB,GAAIw+K,EACFx+K,EAAQw+K,EAAQ/oL,EAAQ,CAAEq9C,KAAI,EAAE9lD,KAAI,EAAE2yE,SAAUt8E,YAIhD,GAFAoS,EAASpS,KAAKw7L,UAAU,CAAEC,QAAQ,IAE9Bz7L,KAAKu7L,aACP5+K,EAAQvK,MACH,CACL,IAAM1K,EAAQ1H,KAAK46L,gBAChB91L,KAAI,SAAAk3B,GAAK,OAAAA,EAAEu8J,eAAe,CAAE4B,YAAa,GAAhC,IACTlkL,OAAOuvE,SACP/1B,KAAKA,IACH,MAAM9lD,GAAOjC,EAAlBiV,EAAuB,C,CAiB3B,OAbI3c,KAAKu7L,aACP5+K,EAAMhT,GAAQ,IAEdgT,EAAMhT,GAAQgT,EAAMhT,IAAS,GAC7BgT,EAAQ,SACHA,GACA3c,KAAK46L,gBAAgBjlL,QAAO,SAACwrG,EAAK16F,GAEnC,OADA06F,EAAI16F,EAAKimE,WAAa,GACfy0B,CACT,GAAG,CAAC,KAIDt3G,EAAK6+F,UACR1/E,OAAO/nB,KAAK0b,GAAOhH,QAAO,SAACvR,EAAK/C,GAE9B,OADA+C,GAAI,IAAAskG,WAAUrnG,IAAQsb,EAAMtb,GACrB+C,CACT,GAAG,CAAC,GACJuY,CACN,EAEA,YAAAg/K,kBAAA,WACE,OAAO,IAAIrhL,OAAO,UAAGta,KAAK2D,IAAI,aAAY,kBAC5C,EAEA,YAAAy3L,eAAA,SAAep/J,EAAsBnyB,GACnC,QADmC,IAAAA,IAAAA,EAAA,KAC/BA,EAAK+uL,OAAQ/uL,EAAKkyL,UAAtB,CAEA,IAAM1D,EAAar4L,KAAKo4L,kBACxB,GAAIC,EAAY,OAAOA,EAAW+C,eAAep7L,KAAa6J,GAE9D7J,KAAKg8L,sBAAsBnyL,EAAMmyB,EALM,CAMzC,EAEA,YAAAggK,sBAAA,SAAsBnyL,EAAW4c,G,WAAX,IAAA5c,IAAAA,EAAA,IACpB,IAAI8S,EAAQ3c,KAAK87L,oBAEjB,GAAI97L,KAAKu7L,cAAgB90K,EAAM,CAC7B,IAAM,EAAOA,EAAKimE,WACb,MAAM,GAAO/vE,EAAM,GAAxBA,EAA6B,C,CAG/B3c,KAAK+4L,iBAAiBp8K,EAAO9S,EAC/B,EAEA,YAAAovL,IAAA,SAAInwK,EAAmBjf,GAGrB,YAHqB,IAAAA,IAAAA,EAAA,IACrB7J,KAAKi8L,gBAAgBj8L,KAAKk8L,gBAAgBpzK,EAAMphB,OAAQmC,GACxD,sBAA4B7J,KAAM8oB,EAAOjf,GAClC7J,IACT,EAEA,YAAAyoF,SAAA,SAAS5+E,GACP,OAAO7J,KAAK87L,kBAAkBjyL,EAChC,EAEA,YAAA0uL,eAAA,SAAe1uL,GACb,YADa,IAAAA,IAAAA,EAAA,IACT7J,KAAKu7L,cAAgB1xL,EAAK8qH,QAAgB,GAEvC30H,KAAK87L,oBAAoB97L,KAAK0sF,YAAc,EACrD,EAEA,YAAAmvG,UAAA,WACE,IAAMpsI,EAAOzvD,KAAK2D,IAAI,QACtB,OAAO,IAAAuN,UAASu+C,GAAQA,EAAOzvD,KAAK2D,IAAI,YAC1C,EAEA,YAAAw4L,gBAAA,SAAgBx/K,QAAA,IAAAA,IAAAA,EAAA,IACd,IAAMhT,EAAO3J,KAAK0sF,UAEZ0vG,EADQp8L,KAAK46L,gBACK91L,KAAI,SAAA2hB,GAAQ,OAAAA,EAAKimE,SAAL,IAEpC,OADqB,IAAC/iF,GAASyyL,GAAS,GACpB7qL,MAAK,SAAAkV,GAAQ,QAAC,IAAAmjE,aAAYjtE,EAAM8J,KAA0B,KAAhB9J,EAAM8J,EAAnC,GACnC,EAEA,YAAA41K,aAAA,SAAa30L,EAAeo1E,GAC1B,OAAOp1E,EACJuC,MAAM6yE,GACNh4E,KAAI,SAAA4C,GAAS,OAAAA,EAAM4gF,MAAN,IACbryE,OAAOuvE,QACZ,EAEA,YAAA82G,iBAAA,SAAiB3/K,EAAmBhT,EAAcmzE,GAChD,OAAO98E,KAAKq8L,aAAa1/K,EAAMhT,IAAS,GAAImzE,EAC9C,EAEA,YAAAo/G,gBAAA,SAAgBx0L,EAAY,QAAZ,IAAAA,IAAAA,EAAA,I,IAAc+zL,QAAF,MAA2B,CAAC,EAAC,GAArB,OAC5B3yK,EAAQ9oB,KAAK46L,gBACb2B,EAA8B,IAAjBzzK,EAAMnoB,QAAgBmoB,EAAM1S,OAAM,SAAAqQ,GAAQ,OAAAs0K,GAAat0K,EAAKuhG,UAAlB,IACvD51G,EAASpS,KAAKq8L,aAAa30L,EAAO1H,KAAK27L,qBACvCzuL,EAAqB,CAAC,EAkB5B,OAhBA4b,EAAMrT,SAAQ,SAACgR,EAAM5mB,GACnB,IAAM6H,EAAQ0K,EAAOvS,GACjBuE,GAAO,IAAAwlF,aAAYliF,GAAiB,GAARA,EAEhC,GAAI60L,EAAY,CAId,IAAM9wK,EAAMrZ,EAAOzR,OACnByD,EAAMgO,EAAOvS,IAAMuS,EAAQvS,EAAI4rB,GAAe,GAAPA,GAAYA,EAAM,EAAI,EAAI,KAAOrnB,C,CAG1E,IAAM/C,EAAMo6L,EAASh1K,EAAKimE,UAAYjmE,EAAKujG,QAC3C98G,EAAO7L,GAAO+C,GAAO,EACvB,IAEO8I,CACT,EAEA,YAAAsvL,oBAAA,SAAoB7/K,EAAwB9S,GAC1C,QADkB,IAAA8S,IAAAA,EAAA,SAAwB,IAAA9S,IAAAA,EAAA,KACrC7J,KAAKm8L,gBAAgBx/K,GAAQ,OAAO,KAEjC,IAAA8+K,EAAW5xL,EAAI,OACjBF,EAAO3J,KAAK0sF,UACZ5jE,EAAQ9oB,KAAK46L,gBACb99G,EAAM98E,KAAK27L,oBACXT,EAAYl7L,KAAK2D,IAAI,aACvBuJ,EAASguL,EAAYA,EAAUv+K,EAAO,CAAE2/D,SAAUt8E,KAAM2J,KAAI,EAAEsxL,UAAWn+G,IAAS,CAAC,EAcvF,OAZKo+G,IAEHhuL,EAASlN,KAAKk8L,gBAAgBv/K,EAAMhT,IAAS,GAAI,CAAE8xL,OAAM,IAGzD3yK,EAAMrT,SAAQ,SAAAgR,GACZ,IAAM/e,EAAQiV,EAAM8J,EAAKimE,WACnBrrF,EAAMo6L,EAASh1K,EAAKimE,UAAYjmE,EAAKujG,SACtC,IAAApgC,aAAYliF,IAAoB,KAAVA,IAAcwF,EAAO7L,GAAOqG,EACzD,KAGKwF,CACT,EAEA,YAAA+uL,gBAAA,SAAgB7pL,EAAkCvI,QAAlC,IAAAuI,IAAAA,EAAA,SAAkC,IAAAvI,IAAAA,EAAA,IAChD7J,KAAK46L,gBAAgBnlL,SAAQ,SAAAgR,GAC3B,IAAM/e,EAAQ0K,EAAOqU,EAAKujG,SAC1BvjG,EAAK8xK,mBAAqB7wL,GAAS+e,EAAKgzK,QAAQ/xL,EAAOmC,EACzD,IAGA,IAAM4yL,GAAY,IAAAx7L,MAAKmR,GACpBtN,KAAI,SAAAqgC,GAAK,OAAA/yB,EAAO+yB,EAAP,IACTsqB,KAAK,KACRzvD,KAAKyF,IAAI,QAASg3L,EAAkB,CAAE7uL,QAAQ,GAChD,EAEA,YAAAlF,MAAA,sBAGE,OAFA1I,KAAK46L,gBAAgB91L,KAAI,SAAAk3B,GAAK,OAAAA,EAAEtzB,MAAM,CAAEqzL,WAAY,EAAKR,cAA3B,IAC9B,wBAA8Bv7L,MACvBA,IACT,EAEA,YAAAm5L,SAAA,SAAStvL,GACP,OAAO7J,KAAK46L,gBAAgBrpL,MAAK,SAAAkV,GAAQ,OAAAA,EAAK0yK,SAAStvL,EAAd,GAC3C,EAEA,YAAAuwL,aAAA,WACE,OAAOp6L,KAAKu4L,gBACd,EAEA,YAAAsB,eAAA,SAAepzK,GACb,OAAOzmB,KAAKu7L,cAAgB90K,EAAK0yK,SAAS,CAAEK,UAAU,GACxD,EACF,EA1SA,CAAuG,I,qvBCzEvG,4B,8CA+GA,QA/GmC,QAIjC,YAAA1yL,SAAA,WACE,MAAO,CACLsL,OAAQ,CAAC,EAEb,EAEA,YAAA7K,WAAA,WACE,IAAM61H,EAAKp9H,KAAKiF,WAEhBjF,KAAKymB,KAAO22G,aAAE,EAAFA,EAAI32G,IAClB,EAMA,YAAAujG,MAAA,WACE,OAAOhqH,KAAKyE,GACd,EAMA,YAAAi4L,SAAA,WACE,IAAM1xG,EAAOhrF,KAAKiF,WAClB,OAAO+lF,EAAOA,EAAKnmF,QAAQ7E,OAAS,CACtC,EAQA,YAAAw7L,UAAA,SAAU3xL,QAAA,IAAAA,IAAAA,EAAA,IACR,IAAMuI,EAASpS,KAAK2D,IAAI,UAExB,OAAOkG,EAAK6+F,UACR1/E,OAAO/nB,KAAKmR,GAAQuD,QAAO,SAACvR,EAAK/C,GAE/B,OADA+C,GAAI,IAAAskG,WAAUrnG,IAAQ+Q,EAAO/Q,GACtB+C,CACT,GAAG,CAAC,GACJgO,CACN,EAMA,YAAAwxH,SAAA,W,MACE,OAAgB,QAAT,EAAA5jI,KAAKymB,YAAI,eAAEk2K,cAAc38L,KAClC,EAMA,YAAA48L,WAAA,W,MACE,OAAgB,QAAT,EAAA58L,KAAKymB,YAAI,eAAEo2K,sBAAuB78L,IAC3C,EAKA,YAAAkW,OAAA,W,MACE,OAAgB,QAAT,EAAAlW,KAAKymB,YAAI,eAAEq2K,YAAY98L,KAChC,EAKA,YAAAoF,OAAA,W,MACE,OAAgB,QAAT,EAAApF,KAAKymB,YAAI,eAAEs2K,YAAY/8L,KAChC,EAMA,YAAAggE,KAAA,SAAKl/D,G,MACH,OAAgB,QAAT,EAAAd,KAAKymB,YAAI,eAAEu2K,UAAUh9L,KAAMc,EACpC,EAOA,YAAAm8L,gBAAA,SAAgBpzL,G,MACd,YADc,IAAAA,IAAAA,EAAA,IACE,QAAT,EAAA7J,KAAKymB,YAAI,eAAEw2K,gBAAgBj9L,KAAM6J,EAC1C,EAMA,YAAAqzL,WAAA,W,MACE,SAAkB,QAAT,EAAAl9L,KAAKymB,YAAI,eAAE9iB,IAAI,WAC1B,EAEA,YAAAw5L,SAAA,SAASr0K,GACP,YADO,IAAAA,IAAAA,EAAA,IACA9oB,KAAKyF,IAAI,SAAU,SACrBzF,KAAKw7L,aACL1yK,GAEP,EACF,EA/GA,CAAmC,M,ugBCRnC,4B,8CAMA,QANoC,QAGlC,YAAAvhB,WAAA,SAAWy0B,EAAQnyB,QAAA,IAAAA,IAAAA,EAAA,IACjB7J,KAAKymB,KAAO5c,EAAK4c,IACnB,EACF,EANA,CAAoC,M,YAQpCglG,GAAOprH,UAAU8E,MAAQ,G,+kCCMnBi4L,GAAa,gBACbC,GAAY,gBA6DlB,4B,8CAqdA,QArd2C,QACzC,YAAAv2L,SAAA,WACE,OAAO,SACF,kBAA+B,CAClCwrF,OAAQ,GACRgrG,eAAgB,KAChBC,UAAW,GACX9tF,QAAS,EACT0vE,SAAS,EACTqe,WAAY,KACZC,cAAe,MAEnB,EAEA,YAAAl2L,WAAA,SAAWuhB,EAAYjf,QAAZ,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IAErB,kBAAiC,GAAmB7J,KAAM8oB,EAAOjf,GACjE,IAAMyoF,EAAStyF,KAAK2D,IAAI,UAClB+5L,EAAa,IAAI,GAAOprG,EAAQ,CAAE7rE,KAAMzmB,OAE9C09L,EAAWphH,SAAWt8E,KAEtB09L,EAAW9rK,WAAa5xB,KAAK2D,IAAI,cACjC3D,KAAKyF,IAAI,SAAUi4L,EAAmB,CAAE9vL,QAAQ,IAChD5N,KAAKyH,GAAG,uBAAwBzH,KAAK29L,cACrC39L,KAAKwK,SAASkzL,EAAY,aAAc19L,KAAK49L,YAE7C,YAA2B59L,KAAM8oB,EAAOjf,EAC1C,EAMA,YAAAg0L,UAAA,WACE,OAAO79L,KAAK89L,cAAct6L,MAC5B,EAEA,YAAAs6L,YAAA,WACE,OAAO99L,KAAK2D,IAAI,SAClB,EAaA,YAAAo6L,SAAA,SAASj9L,GACP,YADO,IAAAA,IAAAA,EAAA,GACAd,KAAK89L,cAAcr6L,GAAG3C,SAAUuE,CACzC,EAMA,YAAAw3L,iBAAA,WACE,IAAMtd,EAAQv/K,KAAK2D,IAAI,iBACvB,OAAO47K,GAASA,EAAMmd,YAAc,EAAInd,OAAQl6K,CAClD,EAUA,YAAAy3L,YAAA,SAAYvd,GACV,OAAOv/K,KAAKyF,IAAI,gBAAiB85K,EAAO,CAAEye,UAAU,GACtD,EAQA,YAAAC,cAAA,SAAcn9L,QAAA,IAAAA,IAAAA,EAAA,GACZ,IAAMy+K,EAAQv/K,KAAK+9L,SAASj9L,GAC5B,OAAOy+K,GAASv/K,KAAK88L,YAAYvd,EACnC,EAUA,YAAAyd,UAAA,SAAUzd,EAAcz+K,QAAA,IAAAA,IAAAA,EAAA,GACtB,IAAMo9L,EAAY3e,EAAQA,EAAMmd,YAAc,EAE1CwB,GAAa,IAAK,IAAA7lF,UAASv3G,IAAUA,GAAS,GAAKA,EAAQd,KAAK69L,YAAYl9L,QAAUu9L,IAAcp9L,IACtGd,KAAK+8L,YAAYxd,GACjBv/K,KAAK89L,cAAcx5L,IAAIi7K,EAAO,CAAE97K,GAAI3C,IAExC,EAYA,YAAAq9L,SAAA,SAASr1K,EAAyBjf,QAAzB,IAAAif,IAAAA,EAAA,SAAyB,IAAAjf,IAAAA,EAAA,IAChC,IAAMuI,EAAsB,CAAC,EAQ7B,OAPApS,KAAK46L,gBAAgBnlL,SAAQ,SAAAgR,GAC3B,IAAMplB,EAAMolB,EAAKujG,QACXtiH,EAAQohB,EAAMznB,GACpB+Q,EAAO/Q,IAAO,IAAAuoF,aAAYliF,GAAS+e,EAAK2yK,kBAAoB1xL,CAC9D,IACc1H,KAAK89L,cAAcn5L,KAAK,CAAEyN,OAAM,GAAWvI,EAG3D,EAUA,YAAAkzL,YAAA,SAAYxd,GACV,OAAOv/K,KAAK89L,cAAc14L,OAAOm6K,EACnC,EASA,YAAA6e,cAAA,SAAct9L,QAAA,IAAAA,IAAAA,EAAA,GACZ,IAAMy+K,EAAQv/K,KAAK+9L,SAASj9L,GAC5B,OAAOy+K,EAAQv/K,KAAK+8L,YAAYxd,GAAS,IAC3C,EAUA,YAAAod,cAAA,SAAcpd,GACZ,IAAIryK,EAAS,GAEb,GAAIqyK,EAAO,CACT,IAAMie,EAAax9L,KAAK2D,IAAI,cACtB,EAAS47K,EAAMic,YACf16L,EAAQy+K,EAAMmd,WAEpB,GAAIc,EACFtwL,EAASswL,EAAWje,EAAO,CAAEz+K,MAAK,EAAEsR,OAAM,EAAEkqE,SAAUt8E,WACjD,CACL,IAAM,EAAkB,GACxBA,KAAK46L,gBAAgB91L,KAAI,SAAA2hB,GACvB,EAAM9hB,KAAK,EAAO8hB,EAAKujG,SACzB,IACA98G,EAAS,EAAM+I,OAAOuvE,SAAS/1B,KAAK,I,EAIxC,OAAOviD,CACT,EAUA,YAAAmxL,kBAAA,SAAkB9e,EAAc11K,G,WAAA,IAAAA,IAAAA,EAAA,IAC9B,IAKI8S,EALE8yC,EAAOzvD,KAAK67L,YACZyC,EAAat+L,KAAKu+L,kBAClBpD,EAAUn7L,KAAK2D,IAAI,WACnBgG,EAAO3J,KAAK0sF,UACZt6E,EAASmtK,EAAMic,YAGrB,GAAIL,EACFx+K,EAAQw+K,EAAQ/oL,EAAQ,CACtBq9C,KAAI,EACJ6uI,WAAU,EACV30L,KAAI,EACJ41K,MAAK,EACLjjG,SAAUt8E,WAEP,CACL,IAAMkN,EAASlN,KAAK46L,gBAAgB91L,KAAI,SAAA2hB,GACtC,IAAM9c,EAAO8c,EAAKimE,UACZzmF,EAAMmM,EAAOqU,EAAKujG,SACpBtiH,GAAQ,IAAAkiF,aAAY3jF,GAAOwgB,EAAK2yK,kBAAoBnzL,EAGxD,GAAI4D,EAAK0pK,QAAUwnB,GAAat0K,EAAKuhG,WAAY,CAC/C,IAAMw2E,EAAU/3K,EAAwBszK,WAAW9zL,EAAK4D,EAAK0pK,QAC7D7rK,EAAQ,UAAG82L,EAAO92L,OAAK,OAAG82L,EAAOtgI,K,CAGnC,MAAO,CAAEv0D,KAAI,EAAEjC,MAAK,EACtB,IACAiV,EAAQ3c,KAAKu7L,aACTruL,EAAOyI,QAAO,SAACwrG,EAAK16B,GAElB,OADA06B,EAAI16B,EAAK98E,MAAQ88E,EAAK/+E,MACfy5G,CACT,GAAG,CAAC,KACL,MACInhH,KAAK0sF,WAAYx/E,EAAOpI,KAAI,SAAA8gB,GAAK,OAAAA,EAAEle,KAAF,IAAS+nD,KAAKA,G,GAIxD,OAAO5lD,EAAK6+F,UACR1/E,OAAO/nB,KAAK0b,GAAOhH,QAAO,SAACvR,EAAK/C,GAE9B,OADA+C,GAAI,IAAAskG,WAAUrnG,IAAQsb,EAAMtb,GACrB+C,CACT,GAAG,CAAC,GACJuY,CACN,EASA,YAAAsgL,gBAAA,SAAgB1d,EAAc11K,QAAA,IAAAA,IAAAA,EAAA,IAC5B,IAAIqD,EAAS,CAAC,EAOd,OANgBlN,KAAK2D,IAAI,aAGvBuJ,EAASlN,KAAKq+L,kBAAkB9e,EAAO11K,IAGlCqD,CACT,EAMA,YAAAuxL,kBAAA,WACE,IAAM3hH,EAAM98E,KAAK2D,IAAI,kBACrB,OAAO,IAAAuN,UAAS4rE,GAAO,IAAIxiE,OAAO,UAAGwiE,EAAG,mBAAoBA,CAC9D,EAEA,YAAAs+G,eAAA,SAAe30K,EAAgB5c,G,WAAA,IAAAA,IAAAA,EAAA,IAC7B,IAAM01K,EAAQv/K,KAAK68L,mBACdtd,IACLA,EAAM4d,WAAQ,MAAI12K,EAAKujG,SAAUvjG,EAAK8xK,iBAAgB,IAClD1uL,EAAK+uL,MACT54L,KAAKg8L,sBAAsBnyL,GAC7B,EAEA,YAAA+zL,WAAA,SAAWpsL,EAAQutE,EAAQ5oD,GACzBn2B,KAAKg8L,sBAAsB7lK,GAAK4oD,EAClC,EAEA,YAAAk5G,YAAA,SAAYj8J,EAASnyB,GACnB,QADmB,IAAAA,IAAAA,EAAA,KACfA,EAAKm0L,SACT,OAAO,8BAAwCh+L,KAAMg8B,EAAGnyB,EAC1D,EAEA,YAAAmyL,sBAAA,SAAsBnyL,QAAA,IAAAA,IAAAA,EAAA,IACpB7J,KAAK+4L,iBAAiB/4L,KAAK0+L,qBAAsB70L,EACnD,EAEA,YAAAkvL,iBAAA,SAAiBp8K,EAAmB9S,GAClC,OAAO,mCAA6C7J,KAAM2c,EAAO9S,EACnE,EAEA,YAAA8zL,aAAA,SAAa,EAAyC9zL,G,IAAvC21H,QAAF,MAAqC,CAAC,EAAC,GAA9B,aAAgC,IAAA31H,IAAAA,EAAA,IACpD,IAAMwpF,EAAKrzF,KAAKkjF,GAAG4F,OACb90B,EAAWh0D,KAAK68L,mBAChBzqL,EAAS4hD,aAAQ,EAARA,EAAUwnI,YAGzBppL,GACEpS,KAAK46L,gBAAgBnlL,SAAQ,SAAAgR,G,MACrB/e,EAA4B,QAApB,EAAA0K,EAAOqU,EAAKujG,gBAAQ,QAAI,GACtCvjG,EAAK8xK,mBAAqB7wL,GAAS+e,EAAKgzK,QAAQ/xL,EAAO,SAAKmC,GAAI,CAAE+uL,MAAM,IAC1E,KAEDp5D,GAAWnsC,EAAGwlG,QAAQxlG,EAAG3pF,OAAOi1L,YAAa,CAAEriH,SAAUt8E,MAC5D,EAGA,YAAAi5L,IAAA,SAAInwK,EAAoCjf,QAAA,IAAAA,IAAAA,EAAA,IAC9B,MAA2Bif,EAAK,SAAhC81K,OAAQ,IAAG,KAAE,EAAK9nL,EAAI,GAAKgS,EAA7B,cAKN,OAHC9oB,KAAKu7L,cAAgBv7L,KAAK6+L,YAAYD,GACvC5+L,KAAK29L,aAAa,CAAEn+D,SAAS,GAAQ31H,GACrC,sBAAgC7J,KAAM8W,EAAMjN,GACrC7J,IACT,EAEA,YAAA6+L,YAAA,SAAYC,QAAA,IAAAA,IAAAA,EAAA,IACV,IAAMxsG,EAAStyF,KAAK89L,cACdiB,EAAYD,EAAUh6L,KAAI,SAAAsN,GAAU,OAAGA,OAAM,EAAT,IAEtCkgF,EAAO3xF,SAAWo+L,EAAUp+L,OAC9Bo+L,EAAUj6L,KAAI,SAACy6K,EAAOz4J,GAAC,MAAK,OAAY,QAAZ,EAAAwrE,EAAO7uF,GAAGqjB,UAAE,eAAEq2K,SAAS5d,EAAMntK,OAAO,IAEhEpS,KAAK89L,cAAc53L,MAAM64L,GAG3B/+L,KAAK29L,aAAa,CAAEn+D,SAAS,GAC/B,EAEA,YAAAk6D,aAAA,SAAahyL,GAAb,WACQwF,EAASlN,KAAK+5L,WAAWryL,GAO/B,OANAwF,EAAO0xL,SAAWl3L,EACfuC,MAAMmzL,IACNt4L,KAAI,SAAA2mD,GAAK,OAAAA,EAAE68B,MAAF,IACTxjF,KAAI,SAAA2mD,GAAK,SAAKuzI,aAAavzI,EAAlB,IACTx1C,OAAOuvE,SAEHt4E,CACT,EAEA,YAAA8xL,aAAA,SAAat3L,GACX,IAAMu3L,EAAUj/L,KAAK2D,IAAI,cACnByO,EAAS1K,EAAMuC,MAAMozL,IACrBzrK,EAAa5xB,KAAK46L,gBACxB,OAAOqE,EACHA,EAAQ,CAAEv3L,MAAK,EAAE0K,OAAM,IACvBwf,EAAWjc,QAAO,SAACwrG,EAAK16F,EAAM5mB,GAC5B,IAAM6H,EAAQ0K,EAAOvS,GAErB,OADAshH,EAAI16F,EAAKujG,UAAY,IAAApgC,aAAYliF,GAAiB+e,EAAK2yK,kBAAb1xL,EACnCy5G,CACT,GAAG,CAAC,EACV,EAEA,YAAA+9E,qBAAA,SAAqBviL,GAArB,WACE,QADmB,IAAAA,IAAAA,EAAA,KACd3c,KAAKm8L,gBAAgBx/K,GAAQ,OAAO,KAEzC,IAAMhT,EAAO3J,KAAK0sF,UACZ5jE,EAAQ9oB,KAAK46L,gBACb99G,EAAM98E,KAAKy+L,oBACXvD,EAAYl7L,KAAK2D,IAAI,aACvBuJ,EAASguL,EAAYA,EAAUv+K,EAAO,CAAE2/D,SAAUt8E,KAAM2J,KAAI,EAAEw1L,gBAAiBriH,IAAS,GAE5F,IAAKo+G,EAAW,CAEd,IAAM,EAASl7L,KAAKs8L,iBAAiB3/K,EAAOhT,EAAMmzE,GAC/Ch4E,KAAI,SAAA4C,GAAS,OAAAA,EAAMuC,MAAM,EAAK0xL,oBAAjB,IACb72L,KAAI,SAAAg3B,GACH,IAAM5uB,EAAqB,CAAC,EAK5B,OAJA4b,EAAMrT,SAAQ,SAACgR,EAAM5mB,GACnB,IAAM6H,EAAQo0B,EAAMj8B,GACpBqN,EAAOuZ,EAAKujG,UAAY,IAAApgC,aAAYliF,GAAiB+e,EAAK2yK,kBAAb1xL,CAC/C,IACOwF,CACT,IAEF4b,EAAMrT,SAAQ,SAAAgR,GACZ,IAAMnc,EAAKmc,EAAKujG,QAChB,EAAKsyE,iBAAiB3/K,EAAO8J,EAAKimE,UAAW5P,GAC1Ch4E,KAAI,SAAA4C,G,MAAS,aAAI4C,GAAK5C,GAAS+e,EAAK2yK,kBAAiB,CAAxC,IACb3jL,SAAQ,SAAC2pL,EAASv/L,GACjB,EAAOA,GAAK,EAAOA,GAAK,SAAK,EAAOA,IAAOu/L,GAAYA,CACzD,GACJ,IACAlyL,EAAS,C,CAGX,OAAO,IAAAhM,SAAQgM,GAAUA,EAAS,CAACA,EACrC,EAEA,YAAAu7E,SAAA,SAAS5+E,GACP,YADO,IAAAA,IAAAA,EAAA,IACA7J,KAAK0+L,mBAAmB70L,EACjC,EAEA,YAAA60L,mBAAA,SAAmB70L,GAAnB,gBAAmB,IAAAA,IAAAA,EAAA,IACjB,IAAIqD,EAAqB,CAAC,EACpBvD,EAAO3J,KAAK0sF,UACZ4F,EAAStyF,KAAK69L,YACd/0K,EAAQ9oB,KAAK46L,gBAiBnB,GAhBetoG,EAAOxtF,KAAI,SAAA7C,GAAK,SAAKo8L,kBAAkBp8L,EAAG4H,EAA1B,IACxB4L,SAAQ,SAAAkH,IACb,IAAA1b,MAAK0b,GAAO7X,KAAI,SAAAzD,GACT6L,EAAO7L,KAEV6L,EAAO7L,GAAO,IAGhB6L,EAAO7L,GAAKsD,KAAKgY,EAAMtb,GACzB,GACF,KACA,IAAAJ,MAAKiM,GAAQpI,KAAI,SAAAzD,GAEf6L,EAAO7L,GAAO6L,EAAO7L,GAAKouD,KAAK,EAAK8uI,kBACtC,IAEIv+L,KAAKu7L,aACPruL,EAAOvD,GAAQ,IACd2oF,EAAO3xF,QACNmoB,EAAMhkB,KAAI,SAAA2hB,GACRvZ,EAAOuZ,EAAKimE,WAAa,EAC3B,QACG,CACL,IAAM/vE,EAAQmM,EAAMnT,QAAO,SAACwrG,EAAK16F,GAE/B,OADA06F,EAAI16F,EAAKimE,WAAa,GACfy0B,CACT,GAAG,CAAC,GACJj0G,EAAOvD,GAAQuD,EAAOvD,IAAS,GAC/BuD,EAAS,SAAKA,GAAWyP,E,CAG3B,OAAOzP,CACT,EAEA,YAAAqxL,gBAAA,WACE,IAAM9uI,EAAOzvD,KAAK2D,IAAI,aAChBm5E,EAAM98E,KAAK2D,IAAI,kBAErB,OAAO8rD,KAAS,IAAAv+C,UAAS4rE,GAAOA,EAAMrtB,EACxC,EAEA,YAAA8oI,eAAA,WACE,OAAIv4L,KAAK2D,IAAI,YAAoB,GACnB3D,KAAK0+L,qBAEN1+L,KAAK0sF,UACpB,EAMA,YAAAysG,SAAA,SAAStvL,QAAA,IAAAA,IAAAA,EAAA,IACC,IACFwvL,EADexvL,EAAI,UACO7J,KAAKs5L,kBACrC,OAAOt5L,KAAK69L,YAAYl9L,OAAS,IAAM04L,CACzC,EAMA,YAAA3wL,MAAA,SAAMmB,GAIJ,YAJI,IAAAA,IAAAA,EAAA,IACJ7J,KAAK89L,cAAc53L,QACnBlG,KAAKg8L,sBAAsBnyL,GAC3B,wBAAkC7J,MAC3BA,IACT,EAEA,YAAA65L,eAAA,WACE,OAAO,CACT,EACF,EArdA,CAA2C,I,8zCCzErCwF,GAAY,mBAYlB,eAiBE,WAAYlpK,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,MACR,IAAAmsD,SAAQ,EAAM,WAAY,iBAE1B,IAAMrqE,EAASke,EAAEle,QAAU,CAAC,EACpBirE,EAAOjrE,EAAM,GACrB,EAAKA,OAASA,EACd,EAAKirE,GAAKA,EACV,EAAKe,IAAMhsE,EAAOisE,aAAe,GACjC,EAAKX,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAKm7G,YAAc,EAAKjwL,QAAU,EAAKA,QAAQtD,KAAK,GAAQ,WAAO,EAC3D,IAAA5G,EAAU,EAAI,MAEtBA,EAAMm9B,KAAO,EAIb,EAAK8wH,eAAgB,IAAA9rE,UAAS,EAAK8rE,cAAcrnJ,KAAK,GAAO,IAC7D,EAAKwlI,cAAe,IAAAjqD,UAAS,EAAKiqD,aAAaxlI,KAAK,GAAO,GAE3D,EAAKvB,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAKoF,SAASrF,EAAO,iBAAkB,EAAKk+I,kBAC5C,EAAK74I,SAASrF,EAAO,2CAA4C,EAAK0O,QACtE,EAAKrJ,SAASrF,EAAO,eAAgB,EAAKiuJ,eAC1C,EAAK5oJ,SAASrF,EAAO,sBAAuB,EAAKosI,cACjD,EAAK/mI,SAAS04E,EAAI,gBAAiB,EAAKkwE,eAGxC,IAAMpxG,EAAO,EAAKA,MAAQ,EAAKA,KAAKj2C,KAAK,G,OACzCi2C,GAAQA,I,CACV,CAqNF,OApQ0C,QAiDxC,YAAAt4C,OAAA,W,MACE,OAAO,EAAP,CACEoxB,OAAQ,sBACP,iBAAUukK,GAAS,MAAM,Q,CAE9B,EAEA,YAAA3iF,SAAA,SAASv3G,GACD,IAAE8+E,EAAcjkF,KAAX,IAAEujF,EAASvjF,KAAL,KACjB,MAAO,+BACSikF,EAAG,4DACHV,EAAI,uCAEtB,EAEA,YAAAgwE,cAAA,SAAcpuJ,GACN,IAAE8+E,EAAYjkF,KAAT,IAAEkjF,EAAOljF,KAAL,GACPue,EAAWpZ,EAAK,OAClB,EAA2BA,EAAM6B,WAA/B,IAAAkzF,KAAAA,OAAI,IAAG,KAAE,EAAE,IAAApoE,KAAAA,OAAI,IAAG,KAAE,EACtB6wF,EAAQz/B,aAAE,EAAFA,EAAI0D,YAAY+7B,MACxB48E,GAAY58E,aAAK,EAALA,EAAOvlG,QAAS,GAElC,MAAO,gCACU6mE,EAAG,gBAAQiW,EAAI,sBAAYpoE,EAAI,wBAC1C3sB,EAAMy+H,WAAU,kCAEjBrlH,EAA4F,GAAnF,uBAAe0lE,EAAG,2CAAgCo7G,GAAS,YAAIE,EAAS,UAAa,SAErG,EAEA,YAAA/rC,cAAA,SAAcruJ,GACZ,MAAO,+BACSnF,KAAKujF,KAAI,kDACCp+E,EAAMi0L,kBAAiB,2BAGnD,EAEA,YAAAh0L,OAAA,sBAKE,OAJA,4BAA4BpF,KAAMmB,WAElC,CAAC,KAAM,QAAS,SAAU,QAAQsU,SAAQ,SAAA5V,GAAK,OAAC,EAAKA,GAAK,IAAX,IAC/CG,KAAKs/L,YAAYt/L,KAAKw/L,eACfx/L,IACT,EAOA,YAAAuxI,aAAA,W,MACQ,EAA+BvxI,KAA7BmF,EAAK,QAAE8+E,EAAG,MAAEV,EAAI,OAAEtrE,EAAM,SAC1BukK,EAAa,UAAGj5F,EAAI,cACpBk8G,EAAc,UAAGl8G,EAAI,cACrBm8G,EAAU1/L,KAAK2T,IAAI4e,SAAS,WAAI0xD,EAAG,UACnC07G,EAAe3/L,KAAK4/L,aACpBC,EAAaF,EAAeA,EAAahjL,MAAS,CAAC,EACzD+iL,EAAQrzG,YAAY,UAAGmwF,EAAU,YAAIijB,IACrCI,EAAWjjL,QAAU,OAEjBzX,EAAMg0L,SAAS,CAAEK,UAAU,KAAWvhL,EAAOq/K,kBAC/CoI,EAAQp6K,SAASk3J,GACjBvkK,EAAOw/K,kBAAoBoI,EAAWjjL,QAAU,KACvCzX,EAAMg0L,YAAclhL,EAAOs/K,mBACpCmI,EAAQp6K,SAASm6K,GAGR,QAAX,EAAAz/L,KAAKue,cAAM,SAAEgzH,cACf,EAKA,YAAA7oI,MAAA,SAAM8D,GACJA,GAAMA,EAAG6hB,kBACTruB,KAAKmF,MAAMuD,OACb,EAMA,YAAAk3L,WAAA,WAKE,OAJK5/L,KAAK8/L,UACR9/L,KAAK8/L,QAAU9/L,KAAKoU,GAAG8rB,cAAc,WAAIm/J,GAAS,OAG7Cr/L,KAAK8/L,OACd,EAMA,YAAAC,kBAAA,SAAkBvzL,GAChBA,GAAMA,EAAG6hB,kBAELruB,KAAKggM,MACThgM,KAAKmF,MAAMs0L,QAAQjtL,EAAG+Z,OAAO7e,MAC/B,EAEA,YAAA0rJ,cAAA,SAAc5hJ,EAAQvL,EAAUqnD,QAAA,IAAAA,IAAAA,EAAA,IAC9BttD,KAAK2vD,SAAS3vD,KAAKmF,MAAMi1L,kBAAa/0L,EAAW,CAAEi1L,eAAe,KAClEt6L,KAAKuxI,cACP,EAOA,YAAA5hF,SAAA,SAASjoD,GACC,IAAAvC,EAAUnF,KAAI,MAChBkN,GAAS,IAAA08E,aAAYliF,IAAoB,KAAVA,EAAevC,EAAMi0L,kBAAoB1xL,EAC9E,GAAI1H,KAAK65C,OAAQ,OAAO75C,KAAK+pJ,SAAS78I,GACtClN,KAAKigM,gBAAgB/yL,EACvB,EAEA,YAAA+yL,gBAAA,SAAgBv4L,GACd,IAAM45B,EAAQthC,KAAKkmJ,aACnB5kH,IAAUA,EAAM55B,MAAQA,EAC1B,EAEA,YAAAw+I,WAAA,WAKE,OAJKlmJ,KAAKshC,QACRthC,KAAKshC,MAAQthC,KAAKoU,GAAG8rB,cAAc,UAG9BlgC,KAAKshC,KACd,EAEA,YAAA+hH,iBAAA,WACErjJ,KAAKoU,GAAGuI,MAAMC,QAAU5c,KAAKmF,MAAMusG,YAAc,GAAK,MACxD,EAEA,YAAAwuF,YAAA,kBACSlgM,KAAK8/L,eACL9/L,KAAKshC,aACLthC,KAAKioJ,MACd,EAEA,YAAAk4C,QAAA,WACE,IAAM36L,EAAQxF,KAAKwF,OAASxF,KAAKwF,MAAMuG,KAAK/L,MAC5CwF,GAASA,EAAMxF,KAAKw/L,cACtB,EAEA,YAAAz1C,SAAA,SAASriJ,GACP,IAAMmyC,EAAS75C,KAAK65C,QAAU75C,KAAK65C,OAAO9tC,KAAK/L,MAC/C65C,GACEA,EAAO,SACF75C,KAAKw/L,eAAa,CACrB93L,MAAK,IAEX,EAEA,YAAA04L,SAAA,W,IAAS,sDACP,IAAMJ,EAAOhgM,KAAKggM,MAAQhgM,KAAKggM,KAAKj0L,KAAK/L,MACzCggM,GAAQA,EAAI,iBAAChgM,KAAKw/L,eAAkB9+L,GAAI,GAC1C,EAEA,YAAA2/L,cAAA,SAAc34L,EAA4B,sBAAE,IAAA+uI,EAAQ,WAAEn5B,EAAO,UACnDn4G,GAD4D,KAA5B,wBACtBnF,KAAI,OAChB2lI,GAAqB,IAAb8Q,IAAkC,IAAZn5B,GAEhC,IAAA52G,UAASgB,GACXvC,EAAM4zL,iBAAiBrxL,EAAqB,CAAEmhF,YAAa88C,IAE3DxgI,EAAMs0L,QAAQ/xL,EAAO,CAAE41G,SAAUqoB,GAErC,EAEA,YAAA65D,YAAA,WACQ,MAA2Bx/L,KAAzBmF,EAAK,QACb,MAAO,CACLiP,GAFe,KAGfksL,UAH0B,YAI1BhkH,SAAUn3E,EACV2jB,MAAO3jB,EAAM6B,WACb8zB,OAAQ96B,KAAKogM,SACbhvD,YAAapxI,KAAKqgM,cAEtB,EAEA,YAAAxsL,OAAA,WACE7T,KAAKkgM,cACC,MAA0BlgM,KAAxBikF,EAAG,MAAE9+E,EAAK,QAAEiP,EAAE,KAAET,EAAG,MACrBhK,EAAOxE,EAAMunF,UACblqF,EAAO2C,EAAM6iH,UACb9jG,EAAM/e,EAAMxB,IAAI,cAAgB,GAChCiR,EAAY,UAAGqvE,EAAG,YAElBs8G,EAAmB,WAAT/9L,EAAoB,UAAGyhF,GAAG,OAAGzhF,EAAI,YAAIyhF,EAAG,WAAY,UAAGA,GAAG,OAAGzhF,GAE7ExC,KAAKsgM,WAAatgM,KAAKs/L,YAAYt/L,KAAKw/L,eACxC7rL,EAAIq+B,QAAQghD,OAAOhzF,KAAK08G,SAASv3G,IACjCwO,EAAIC,KAAK,mBAAmBo/E,OAAOhzF,KAAKuzJ,cAAcpuJ,IACtD,IAAM+M,EAASlS,KAAKkS,QAAUlS,KAAKkS,OAAOnG,KAAK/L,MAC/CA,KAAKsgM,UAAYpuL,GAAUA,EAAOlS,KAAKw/L,eACvC7rL,EAAIC,KAAK,oBAAoBo/E,OAAOhzF,KAAKsgM,WAAatgM,KAAKwzJ,cAAcruJ,IAEzEiP,EAAGQ,UAAY,UAAGA,EAAS,YAAI2rL,EAAO,YAAI3rL,EAAS,aAAKjL,EAAI,YAAIua,GAAMokE,OACtEl0E,EAAGQ,WAAazP,EAAM20L,SAAW,WAAIllL,EAAS,UAAW,GAEzD,IAAMkiF,EAAW92F,KAAK82F,UAAY92F,KAAK82F,SAAS/qF,KAAK/L,MAGrD,OAFA82F,GAAYA,IACZ92F,KAAK2vD,SAASxqD,EAAMqqD,YACbxvD,IACT,EAEA,YAAA82F,SAAA,WAAY,EACd,EApQA,CAA0C,M,ugBCd1C,eAME,WAAY3gE,GAAZ,MACE,YAAMA,IAAE,KACR,EAAKle,OAASke,EAAEle,QAAU,CAAC,EAC3B,EAAKgsE,IAAM,EAAKhsE,OAAOisE,aAAe,GACtC,EAAKtyD,WAAa,GAClB,EAAKrT,OAAS4X,EAAE5X,OAChB,IAAMysE,EAAO,EAAK/lF,W,OAClB,EAAKuF,SAASwgF,EAAM,MAAO,EAAK2Y,OAChC,EAAKn5F,SAASwgF,EAAM,QAAS,EAAKn3E,Q,CACpC,CAsCF,OArD4C,QAiB1C,YAAA8vF,MAAA,SAAMx+F,EAAY6lF,EAAWnhF,GAC3B7J,KAAKsE,IAAIa,EAAO,KAAM0E,EACxB,EAEA,YAAAvF,IAAA,SAAIa,EAAYqvD,EAA+B3qD,QAAA,IAAAA,IAAAA,EAAA,IACvC,IAAE0U,EAAmBve,KAAb,OAAEiY,EAAWjY,KAAL,OAChB4xF,EAAWp9B,GAAQx0D,KAAKoU,GACxBkuB,EAAO,IAAIn9B,EAAMg1K,SAAS,CAAEh1K,MAAK,EAAE8S,OAAM,IAC/CsG,IAAW+jB,EAAK/jB,OAASA,GACzB+jB,EAAKzuB,SACL,IAAM09E,EAAWjvD,EAAKluB,GACtBpU,KAAK4xB,WAAWjtB,KAAK29B,IACrB,SAAcsvD,EAAUL,EAAU1nF,EAAKpG,GACzC,EAEA,YAAA2B,OAAA,WAGE,OAFA,4BAA4BpF,KAAMmB,WAClCnB,KAAKikG,aACEjkG,IACT,EAEA,YAAAikG,WAAA,WACEjkG,KAAK4xB,WAAWnc,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKrhF,QAAL,IAChCpF,KAAK4xB,WAAa,EACpB,EAEA,YAAA/d,OAAA,sBACUF,EAAa3T,KAAV,IAAEikF,EAAQjkF,KAAL,IAChBA,KAAKikG,aACL,IAAMhqF,EAAWvF,SAASisB,yBAK1B,OAJA3gC,KAAKiF,WAAWwQ,SAAQ,SAAAtQ,GAAS,SAAKb,IAAIa,EAAO8U,EAAhB,IACjCtG,EAAIq+B,QACJr+B,EAAIq/E,OAAO/4E,GACXtG,EAAInM,KAAK,QAAS,UAAGy8E,EAAG,eACjBjkF,IACT,EACF,EArDA,CAA4C,M,8vBCA5C,yB,8CA+CA,QA/CmD,QAGjD,YAAAwzJ,cAAA,WACU,IAAAvvE,EAAQjkF,KAAI,IACpB,MAAO,+BACSikF,EAAG,iBAASA,EAAG,4CACfA,EAAG,6CAGrB,EAEA,YAAA7+E,OAAA,W,MAGE,OAFU,QAAV,EAAApF,KAAK8oB,aAAK,SAAE1jB,SACZ,0BAAoCpF,KAAMmB,WACnCnB,IACT,EAEA,YAAAozJ,cAAA,WAAiB,EAEjB,YAAAt8D,SAAA,WACU,IAAA7S,EAAQjkF,KAAI,IACdmF,EAAQnF,KAAKmF,MACb2jB,EAAQ3jB,EAAMxB,IAAI,cAExB,GAAImlB,EAAMnoB,SAAWX,KAAK8oB,MAAO,CAC/B,IAAMkyK,EAAW71L,EAAMo2L,aACjBiF,EAAY,IAAI,GAAe,CACnCvoL,OAAQ,SACHjY,KAAKiY,QAAM,CACds/K,kBAAmByD,EACnB1D,iBAAkB0D,IAGpB/1L,WAAY6jB,EACZvK,OAAQve,OAEVwgM,EAAU3sL,SACV7T,KAAK2T,IAAIC,KAAK,WAAIqwE,EAAG,iBAAgB+O,OAAOwtG,EAAUpsL,IACtDpU,KAAK8oB,MAAQ03K,C,CAEjB,EAEA,YAAAN,YAAA,WACE,+BAAyClgM,KAAMmB,kBACxCnB,KAAK8oB,KACd,EACF,EA/CA,CAAmD,I,2fCEnD,4B,8CA+HA,QA/HuC,QAWrC,YAAApf,OAAA,WACE,MAAO,CACLuiF,MAAO,SACP,2BAA4B,aAC5B,8BAA+B,aAC/B,+BAAgC,aAEpC,EAEA,YAAAywB,SAAA,WACQ,MAAoB18G,KAAlBikF,EAAG,MAAEV,EAAI,OAAEL,EAAE,KACfy/B,EAAQz/B,aAAE,EAAFA,EAAI0D,YAAY+7B,MACxB48E,GAAY58E,aAAK,EAALA,EAAOvlG,QAAS,GAC5BqjL,GAAW99E,aAAK,EAALA,EAAO3iD,OAAQ,GAEhC,MAAO,+BACSikB,EAAG,2CACJA,EAAG,0BAAgBV,EAAI,0DAC9Bk9G,EAAQ,+CAEDx8G,EAAG,wDACHA,EAAG,iCAAuBA,EAAG,0FAC3BA,EAAG,6BAAmBA,EAAG,sFAE3BA,EAAG,iCAAuBA,EAAG,oDACpCs7G,EAAS,2DAGJt7G,EAAG,wCAElB,EAEA,YAAA18E,WAAA,SAAW4uB,QAAA,IAAAA,IAAAA,EAAA,IACD,IAAAhxB,EAAUnF,KAAI,MAChBiY,EAASke,EAAEle,QAAU,CAAC,EAC5BjY,KAAKkjF,GAAKjrE,EAAOirE,GACjBljF,KAAKiY,OAASA,EACdjY,KAAK0vF,OAASv5D,EAAEu5D,OAChB1vF,KAAKikF,IAAMhsE,EAAOisE,aAAe,GACjClkF,KAAKujF,KAAOtrE,EAAOksE,cAAgB,GACnCnkF,KAAK0gM,aAAevqK,EAAEuqK,aACtB,IAAMC,EAAS3gM,KAAK0gM,aAAav7L,MACjCnF,KAAKwK,SAASrF,EAAO,iBAAkBnF,KAAKoF,QAC5CpF,KAAKwK,SAASrF,EAAO,gBAAiBnF,KAAK4gM,aAC3C5gM,KAAKwK,SAASm2L,EAAQ,uBAAwB3gM,KAAKqjJ,kBAGnDl+I,EAAMm9B,KAAOtiC,KAEbmF,EAAMM,IAAI,CAAEouH,UAAW,EAAGjyE,UAAW,IACrC5hD,KAAK2T,IAAI+E,KAAK,QAASvT,EACzB,EAEA,YAAAgqF,WAAA,W,MACa,QAAX,EAAAnvF,KAAK0vF,cAAM,SAAE6P,UAAUv/F,KAAKoU,GAC9B,EAEA,YAAAysL,WAAA,SAAWr0L,GACTA,GAAMA,EAAG6hB,kBACTruB,KAAKmF,MAAMC,QACb,EAEA,YAAA8Q,OAAA,WACElW,KAAKmF,MAAM+Q,QACb,EAEA,YAAA4qL,qBAAA,WAEE,OADK9gM,KAAK+gM,cAAa/gM,KAAK+gM,YAAc/gM,KAAKoU,GAAG8rB,cAAc,sBACzDlgC,KAAK+gM,WACd,EAEA,YAAAC,aAAA,WAEE,OADKhhM,KAAKihM,YAAWjhM,KAAKihM,UAAYjhM,KAAKoU,GAAG8rB,cAAc,mBACrDlgC,KAAKihM,SACd,EAEA,YAAAC,WAAA,WAEE,OADKlhM,KAAK0/L,UAAS1/L,KAAK0/L,QAAU1/L,KAAKoU,GAAG8rB,cAAc,iBACjDlgC,KAAK0/L,OACd,EAEA,YAAAkB,YAAA,WACU,IAAAz7L,EAAUnF,KAAI,MAChB0sE,EAAQvnE,EAAMy+H,WAGpB,GAFA5jI,KAAKkhM,aAAal6G,UAAYta,EAE1BvnE,EAAM+3L,aAAc,CACtB,IAAMiE,EAAQnhM,KAAKghM,eACb,EAAQ77L,EAAM83L,gBAAgB,CAAE1pB,OAAQ,CAAEpjK,KAAM,EAAGhE,IAAK,KACxD8yH,GAAW,IAAAh+H,MAAK,GACnB6D,KAAI,SAAAqgC,GAAK,gBAAGA,EAAC,YAAI,EAAMA,GAAd,IACTsqB,KAAK,KACR0xI,EAAMp8K,aAAa,QAASk6G,E,CAEhC,EAEA,YAAAokB,iBAAA,W,MACQ,EAA+BrjJ,KAA7BikF,EAAG,MAAE9+E,EAAK,QAAEu7L,EAAY,eAC1BU,EAASphM,KAAK8gM,uBACdlE,EAAaz3L,EAAMy3L,aACzBwE,EAAOzkL,MAAMC,QAAUggL,EAAa,GAAK,OACzC58L,KAAK2T,IAAIipL,EAAa,WAAa,eAAe,UAAG34G,EAAG,WACxD24G,GAAcwE,EAAO38K,YAA8B,QAAlB,EAAAi8K,EAAa53K,aAAK,eAAE1U,GACvD,EAEA,YAAAP,OAAA,WACQ,MAAqB7T,KAAnBoU,EAAE,KAAE6vE,EAAG,MAAE9+E,EAAK,QAQtB,OAPAiP,EAAG4yE,UAAYhnF,KAAK08G,WACpBtoG,EAAGQ,UAAY,UAAGqvE,EAAG,SACjB9+E,EAAM+3L,eACP9oL,EAAG8rB,cAAc,sBAAsCvjB,MAAMC,QAAU,IAE1E5c,KAAK4gM,cACL5gM,KAAKqjJ,mBACErjJ,IACT,EACF,EA/HA,CAAuC,M,ugBCAvC,eAQE,WAAYm2B,GAAZ,MACE,YAAMA,IAAE,KACF60D,EAAO,EAAK/lF,WACZgT,EAASke,EAAEle,QAAU,CAAC,EACtBirE,EAAKjrE,EAAOirE,GACZe,EAAMhsE,EAAOisE,aAAe,GAC5BX,EAAOtrE,EAAOksE,cAAgB,GACpC,EAAKlsE,OAASA,EACd,EAAKgsE,IAAMA,EACX,EAAKV,KAAOA,EACZ,EAAKm9G,aAAevqK,EAAEuqK,aACtB,EAAK9rL,UAAY,UAAGqvE,EAAG,kBAAUV,EAAI,SACrC,EAAK/4E,SAASwgF,EAAM,MAAO,EAAK2Y,OAChC,EAAKn5F,SAASwgF,EAAM,QAAS,EAAK9kF,OAClC,EAAK09F,MAAQ,GAGb,IAAMhF,EAAQ1b,aAAE,EAAFA,EAAIoT,M,OAClB,EAAK5G,OAASkP,EACV,IAAIA,EAAMC,OAAO,CAEfp+C,UAAW,EAAKrsC,GAChBogK,mBAAoB,EACpBx1E,aAAc,WAAI/a,EAAG,UACrBgb,QAAS,WAAIhb,EAAG,SAChBA,IAAKhsE,EAAOksE,eAEd,GAEJ6G,EAAK1oD,KAAO,EACZ,EAAK3uB,IAAI+E,KAAK,QAASsyE,GACvB,EAAKr3E,IAAI+E,KAAK,aAAcsyE,G,CAC9B,CAwEF,OAhHwC,QA0CtC,YAAA2Y,MAAA,SAAMx+F,GACJ,IAAMtF,EAAIG,KAAKiF,WAAWJ,QAAQM,GAClCnF,KAAKmuH,gBAAgBhpH,EAAO,KAAMtF,EACpC,EAEA,YAAAsuH,gBAAA,SAAgBhpH,EAAcipH,EAAqCttH,GACjE,IAAMmZ,EAAWm0G,GAAc,KACzB,EAAwCpuH,KAAtC0gM,EAAY,eAAEzoL,EAAM,SAAEy3E,EAAM,SAAE/7E,EAAG,MACnC2uB,EAAO,IAAI,GAAU,CACzBn9B,MAAK,EAEL8S,OAAM,EACNy3E,OAAM,EACNgxG,aAAY,IAERnvG,EAAWjvD,EAAKzuB,SAASO,GAG/B,GAFApU,KAAK4jG,MAAMj/F,KAAK29B,GAEZroB,EACFA,EAASwK,YAAY8sE,QAErB,QAAoB,IAATzwF,EAAsB,CAC/B,IAAImO,EAAS,SAET0E,EAAI4e,WAAW5xB,SAAWG,IAC5BA,IACAmO,EAAS,SAGPnO,EAAQ,EACV6S,EAAIq/E,OAAOzB,GAGX59E,EAAI4e,WAAW+1E,GAAGxnG,GAAOmO,GAAQsiF,E,MAGnC59E,EAAIq/E,OAAOzB,GAIf,OAAOA,CACT,EAEA,YAAArrF,MAAA,SAAM8kF,EAAWnhF,GACf7J,KAAKikG,aACLjkG,KAAK6T,QACP,EAEA,YAAAzO,OAAA,WAGE,OAFApF,KAAKikG,aACL,4BAA4BjkG,KAAMmB,WAC3BnB,IACT,EAEA,YAAAikG,WAAA,WACEjkG,KAAK4jG,MAAMnuF,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKrhF,QAAL,IAC3BpF,KAAK4jG,MAAQ,EACf,EAEA,YAAA/vF,OAAA,sBACUF,EAAgB3T,KAAb,IAAE0vF,EAAW1vF,KAAL,OACbw0D,EAAO9/C,SAASisB,yBAOtB,OANAhtB,EAAIq+B,QACJhyC,KAAKiF,WAAWwQ,SAAQ,SAAAjE,GAAK,SAAK28G,gBAAgB38G,EAAGgjD,EAAxB,IAC7B7gD,EAAIq/E,OAAOx+B,GACX7gD,EAAInM,KAAK,QAASxH,KAAK4U,WACnB86E,IAAQA,EAAOgmE,IAAM,MAElB11J,IACT,EACF,EAhHA,CAAwC,M,qvBCDxC,4B,8CAqFA,QArF+C,QAK7C,YAAA0J,OAAA,WACE,OAAO,SACF,uBAAwC,CAC3C,yBAA0B,WAC1BoxB,OAAQ,IAEZ,EAEA,YAAA04H,cAAA,WACQ,IAAEvvE,EAAYjkF,KAAT,IAAEkjF,EAAOljF,KAAL,GACT2iH,EAAQz/B,aAAE,EAAFA,EAAI0D,YAAY+7B,MACxB0+E,GAAW1+E,aAAK,EAALA,EAAOC,OAAQ,IAChC,MAAO,+BACS3+B,EAAG,iBAASA,EAAG,0DACCA,EAAG,4CAC3Bo9G,EAAQ,mFAKlB,EAEA,YAAAr/I,KAAA,WACU,IAAA78C,EAAUnF,KAAI,MACtBA,KAAKwK,SAASrF,EAAM24L,cAAe,eAAgB99L,KAAKuxI,aAC1D,EAEA,YAAA4sD,SAAA,WACEn+L,KAAKmF,MAAMg5L,SAAS,CAAC,EAAG,CAAE16L,GAAI,GAChC,EAOA,YAAAksD,SAAA,WAAY,EAEZ,YAAAvqD,OAAA,W,MAGE,OAFe,QAAf,EAAApF,KAAKshM,kBAAU,SAAEl8L,SACjB,0BAA6CpF,KAAMmB,WAC5CnB,IACT,EAEA,YAAAkgM,YAAA,WACE,+BAAkDlgM,KAAMmB,kBACjDnB,KAAKshM,UACd,EAEA,YAAAxqG,SAAA,WACQ,MAAwB92F,KAAtBmF,EAAK,QAAEiP,EAAE,KAAE6D,EAAM,SACnB6Q,EAAQ3jB,EAAMxB,IAAI,cAExB,GAAImlB,EAAMnoB,SAAWX,KAAK8oB,MAAO,CAC/B,IAAM03K,EAAY,IAAI,GAAe,CACnCvoL,OAAQ,SACHA,GAAM,CACTs/K,mBAAmB,EACnBD,kBAAkB,IAGpBryL,WAAY6jB,EACZvK,OAAQve,OAEVwgM,EAAU3sL,SAEV,IAAMytL,EAAa,IAAI,GAAW,CAChCr8L,WAAYE,EAAM24L,cAElB7lL,OAAM,EACNyoL,aAAc1gM,OAEhBshM,EAAWztL,SAEKO,EAAG8rB,cAAc,yBACzBzb,YAAY68K,EAAWltL,IAC/BpU,KAAK8oB,MAAQ03K,EACbxgM,KAAKshM,WAAaA,C,CAEtB,EACF,EArFA,CAA+C,I,8vBCF/C,yB,8CAsDA,QAtD8C,QAC5C,YAAA53L,OAAA,WACE,OAAO,SACF,uBAA+B,CAClC,2BAA4B,QAC5B,2BAA4B,oBAEhC,EAEA,YAAA8pJ,cAAA,W,MACUvvE,EAAYjkF,KAAT,IAAEkjF,EAAOljF,KAAL,GACT2iH,EAAe,QAAP,EAAA3iH,KAAKkjF,UAAE,eAAE0D,YAAY+7B,MAC7B48E,EAAY58E,aAAK,EAALA,EAAOvlG,MAEzB,MAAO,+BACS6mE,EAAG,iBAASA,EAAG,qCAChBA,EAAG,kDACEA,EAAG,iDACEA,EAAG,sBAAYA,EAAG,qEAC/Bf,EAAG5vB,EAAE,2BAA0B,qIAK5B2wB,EAAG,iCAAuBA,EAAG,iEAC3BA,EAAG,kCAAwBA,EAAG,uEAC9BA,EAAG,2BAAiBA,EAAG,iDAAwCs7G,EAAS,6CAI3F,EAEA,YAAAU,gBAAA,SAAgBv4L,GACR,IAAEvC,EAAcnF,KAAT,MAAEoU,EAAOpU,KAAL,GACX+zG,EAAW5uG,EAAMi0L,kBACjBmI,EAAWntL,EAAG8rB,cAAc,sBAC5BihK,EAAQ/sL,EAAG8rB,cAAc,kBAC/BqhK,EAAS5kL,MAAMC,QAAWlV,GAASA,IAAUqsG,EAAoB,GAAT,OACxDotF,EAAMxkL,MAAM6kL,gBAAkB95L,GAASvC,EAAMi0L,iBAC/C,EAEA,YAAAqI,iBAAA,e,EAAA,OACQ7wG,EAAY,QAAP,EAAA5wF,KAAKkjF,UAAE,eAAEmzD,OAEpBzlD,SAAAA,EAAIzzE,KAAK,CACPjH,OAAQ,SAACsgI,EAAOC,GACd,IAAMnnI,GAAM,IAAA4B,UAASslI,GAASA,EAAQA,EAAM7yI,IAAI,OAChD,EAAKwB,MAAMs0L,QAAQnqL,EAAK,CAAEguG,SAAUm5B,IACpCA,GAAY7lD,EAAGxzE,OACjB,EACAsO,MAAO,CAAC,SACRulE,OAAQ,WAEZ,EACF,EAtDA,CAA8C,I,ogBCD9C,yB,8CAmCA,QAnCgD,QAG9C,YAAAuiE,cAAA,SAAchiJ,GACZ,MAAO,EACT,EAEA,YAAAwwC,KAAA,WACE,IAAM78C,EAAQnF,KAAKmF,MACnBnF,KAAKwK,SAASrF,EAAO,cAAenF,KAAKozJ,eACzCpzJ,KAAKwK,SAASrF,EAAO,eAAgBnF,KAAK6T,OAC5C,EAEA,YAAA87C,SAAA,SAASlE,GAET,EAEA,YAAAqrC,SAAA,WACQ,MAAsB92F,KAApBujF,EAAI,OAAEp+E,EAAK,QAAEiP,EAAE,KAEvB,IAAKpU,KAAK0hM,UAAW,CACX,IAAApgK,EAAUn8B,EAAY,MAC9Bm8B,EAAMiiD,KAAOA,EACbjiD,EAAMztB,SACSO,EAAG8rB,cAAc,WAAIqjD,EAAI,WACjC9+D,YAAY6c,EAAMltB,IACzBpU,KAAKshC,MAAQA,EAAM6kH,QAAQxiJ,IAAI,GAC/B3D,KAAK0hM,UAAYpgK,C,CAErB,EAEA,YAAA4+J,YAAA,WACE,+BAAyClgM,KAAMmB,WAC/CnB,KAAK0hM,UAAY,IACnB,EACF,EAnCA,CAAgD,I,ogBCChD,yB,8CAqCA,QArC+C,QAC7C,YAAA/xI,SAAA,SAASjoD,G,MACO,QAAd,EAAA1H,KAAK0hM,iBAAS,SAAE/xI,SAASjoD,EAAO,CAC9B29H,WAAY,EACZrhD,IAAKhkF,KAAKmF,MAAMi0L,mBAEpB,EAEA,YAAAh0L,OAAA,sBACE,0BAA0CpF,KAAMmB,WAChD,IAAM2iE,EAAM9jE,KAAK0hM,UAIjB,OAHA59H,GAAOA,EAAI1+D,QAAU0+D,EAAI1+D,SAEzB,CAAC,YAAa,UAAUqQ,SAAQ,SAAA5V,GAAK,OAAC,EAAKA,GAAK,IAAX,IAC9BG,IACT,EAEA,YAAA2hM,eAAA,SAAej6L,EAAe41G,GAC5Bt9G,KAAKmF,MAAMs0L,QAAQ/xL,EAAO,CAAE41G,QAAO,GACrC,EAEA,YAAAxmB,SAAA,W,MACE,IAAK92F,KAAK0hM,UAAW,CACnB1hM,KAAK2hM,eAAiB3hM,KAAK2hM,eAAe51L,KAAK/L,MACzC,MAA0BA,KAAxBujF,EAAI,OAAEp+E,EAAK,QAAE+9E,EAAE,KAAE9uE,EAAE,KAOrBktB,EANa,IAAI,GAAW,CAChC/a,OAAQ28D,EACR/9E,MAAK,EACLo+E,KAAI,EACJuwE,SAAU9zJ,KAAK2hM,iBAEQ9tL,SACzBO,EAAG8rB,cAAc,WAAIqjD,EAAI,WAAW9+D,YAAY6c,EAAMltB,IACtDpU,KAAKshC,MAAqB,QAAb,EAAAA,EAAM6kH,eAAO,eAAExiJ,IAAI,GAChC3D,KAAK0hM,UAAYpgK,C,CAErB,EACF,EArCA,CAA+C,I,q9BC8B/C,yB,8CAmFA,QAnF4C,QAC1C,YAAAx6B,SAAA,WACE,OAAO,SACF,kBAAsB,CACzBjE,QAAS,GACTk4B,KAAM,GAEV,EAMA,YAAA8xF,WAAA,WAEQ,MAAoB7sH,KAAKgH,WAAvBnE,EAAO,UAAEugC,EAAI,OACrB,OAAQvgC,GAAWA,EAAQlC,OAASkC,EAAUugC,IAAS,EACzD,EAOA,YAAAliB,UAAA,SAAU5W,GAAV,WACQ69G,GAAQ,IAAAxV,OAAMroG,GAAMA,EAAKtK,KAAKwvD,WACpC,OAAOxvD,KAAK6sH,aAAa52G,QAAO,SAAAkgB,GAAK,SAAK8uG,YAAY9uG,KAAOgyF,CAAxB,IAA+B,IAAM,IAC5E,EAMA,YAAAp4G,WAAA,SAAWrI,GAET,YAFS,IAAAA,IAAAA,EAAA,IACT1H,KAAKyF,IAAI,UAAWiC,GACb1H,IACT,EAMA,YAAA4hM,UAAA,SAAUl6L,GACR,GAAIA,EAAO,CACT,IAAMmC,EAAO7J,KAAK6sH,aAClB7sH,KAAK+P,WAAW,SAAIlG,GAAM,GAAF,CAAEnC,IAAK,G,CAEjC,OAAO1H,IACT,EAOA,YAAAilI,YAAA,SAAYhnE,GACV,OAAO,IAAA00C,OAAM10C,EAAO3zD,IAAM2zD,EAAO3zD,GAAM2zD,EAAOv2D,KAChD,EASA,YAAAw9H,eAAA,SAAe56H,EAA2BT,G,WAAA,IAAAA,IAAAA,EAAA,IAChC,MAAkBA,EAAI,OAAtB86H,OAAM,IAAG,GAAI,EACf1mE,IAAU,IAAA/sD,UAAS5G,GAAMtK,KAAKkhB,UAAU5W,GAAMA,IAAO,CAAC,EACtD66H,EAAQnlI,KAAKilI,YAAYhnE,GACzByO,EAAQzO,EAAOyO,OAASzO,EAAOt0D,MAAQw7H,EACvC08D,EAASh4L,EAAKyyE,UAAYt8E,KAAKgqH,QACrC,OAAQ2a,IAAiB,QAAP,EAAA3kI,KAAKkjF,UAAE,eAAE5vB,EAAE,+BAAwBuuI,EAAM,YAAI18D,MAAaz4D,CAC9E,EAEA,YAAAnlE,WAAA,W,IAAW,sDACT,8BAAoCvH,KAAMU,GAC1CV,KAAKwK,SAASxK,KAAM,iBAAkBA,KAAK8hM,iBAC7C,EAEA,YAAAA,iBAAA,WACE9hM,KAAKyF,IAAI,OAAQzF,KAAK2D,IAAI,WAC5B,EACF,EAnFA,CAA4C,I,ogBC9B5C,YAaE,WAAYwyB,GAAZ,MACE,YAAMA,IAAE,K,OACR,EAAK3rB,SAAS,EAAKrF,MAAO,iBAAkB,EAAK48L,e,CACnD,CAqCF,OArDgD,QAC9C,YAAAvuC,cAAA,WACQ,IAAEvvE,EAAcjkF,KAAX,IAAEujF,EAASvjF,KAAL,KACjB,MAAO,+BACSujF,EAAI,iBAASA,EAAI,yCACjBU,EAAG,wDACDV,EAAI,gDACFA,EAAI,yDAI1B,EAOA,YAAAw+G,cAAA,kBACS/hM,KAAKshC,MACZthC,KAAK82F,UACP,EAEA,YAAAA,SAAA,WACU,IAAA7S,EAAQjkF,KAAI,IACdmF,EAAQnF,KAAKmF,MACbtC,EAAUsC,EAAM0nH,aAEtB,IAAK7sH,KAAKshC,MAAO,CACf,IAAM,EAAuB,GAE7Bz+B,EAAQ4S,SAAQ,SAAAwoD,GACd,IAAM3zD,EAAKnF,EAAM8/H,YAAYhnE,GACvBt0D,EAAOxE,EAAM+/H,eAAe56H,GAC5BqS,EAAQshD,EAAOthD,MAAQshD,EAAOthD,MAAMlN,QAAQ,KAAM,UAAY,GAC9DuyL,EAAYrlL,EAAQ,kBAAUA,EAAK,MAAM,GACzCjV,EAAQ4C,EAAGmF,QAAQ,KAAM,UAC/B,EAAW9K,KAAK,0BAAkB+C,EAAK,cAAKs6L,EAAS,YAAIr4L,EAAI,aAC/D,IAEA,IAAMs4L,EAASjiM,KAAKoU,GAAG8rB,cAAc,WAAI+jD,EAAG,iBAC5Cg+G,EAAOj7G,UAAY,kBAAW,EAAWv3B,KAAK,IAAG,aACjDzvD,KAAKshC,MAAQ2gK,EAAOhlL,U,CAExB,EAEA,YAAAgjL,gBAAA,SAAgBv4L,GACd,IAAMvC,EAAQnF,KAAKmF,MACbm8B,EAAQthC,KAAKkmJ,aACbg8C,EAAW/8L,EAAM0nH,aAAa,GAC9Bs1E,EAAUD,EAAW/8L,EAAM8/H,YAAYi9D,GAAY,GACzD5gK,IAAUA,EAAM55B,MAAQA,GAASy6L,EACnC,EACF,EArDA,CAAgD,I,kvBCDhD,yB,8CAOA,QAP2C,QACzC,YAAAr7L,SAAA,WACE,OAAO,SACF,kBAA4B,CAC/Bi0B,KAAM,GAEV,EACF,EAPA,CAA2C,I,ogBCC3C,yB,8CA6CA,QA7C+C,QAC7C,YAAAy4H,cAAA,WACU,IAAAjwE,EAASvjF,KAAI,KACrB,MAAO,uBAAeujF,EAAI,iBAASA,EAAI,uBACzC,EAEA,YAAAuT,SAAA,WACQ,IAAE7S,EAAcjkF,KAAX,IAAEujF,EAASvjF,KAAL,KACXmF,EAAQnF,KAAKmF,MACbi9L,EAAU,UAAG7+G,EAAI,oBACjB98D,EAAOthB,EAAMunF,UACb7pF,EAAUsC,EAAM0nH,aAChB8oD,EAAW,UAAG1xF,EAAG,iBAASA,EAAG,iBAASx9D,GACpChiB,EAAQU,EAAK,IAErB,IAAKnF,KAAKshC,MAAO,CACf,IAAM,EAAuB,GAE7Bz+B,EAAQ4S,SAAQ,SAAA63C,GACd,IAAMppC,EAAMopC,EAAI14C,UAAY,UAAG04C,EAAI14C,UAAS,YAAIqvE,EAAG,gBAAQm+G,GAAY,GACjE93L,EAAKnF,EAAM8/H,YAAY33E,GACvB+0I,EAAO,UAAG57K,EAAI,YAAInc,EAAE,YAAI7F,GACxBi7L,EAAUx7K,EAAM,GAAK/e,EAAM+/H,eAAe56H,GAC1Cg4L,EAAYh1I,EAAIrvC,MAAQ,kBAAUqvC,EAAIrvC,MAAK,MAAM,GACjDwwF,EAAUtpG,EAAMqqD,aAAellD,EAAK,UAAY,GACtD,EAAW3F,KAAK,mCACA4+E,EAAI,oEACaoyF,EAAQ,mBAAS0sB,EAAI,qBAAW57K,EAAI,YAAIhiB,EAAG,sBAAY6F,EAAE,cAAKmkG,EAAO,0CAClFvqF,GAAOk+K,EAAO,cAAKE,EAAS,kBAASD,EAAI,cAAK3C,EAAO,wCAG3E,IAEA,IAAM6C,EAAWviM,KAAKoU,GAAG8rB,cAAc,WAAIqjD,EAAI,UAC/Cg/G,EAASv7G,UAAY,uBAAezD,EAAI,yBAAgB,EAAW9zB,KAAK,IAAG,UAC3EzvD,KAAKshC,MAAQihK,EAAStlL,U,CAE1B,EAEA,YAAAgjL,gBAAA,SAAgBv4L,G,MACNvC,EAAUnF,KAAI,MAChBsK,EAAK5C,GAASvC,EAAMi0L,kBACpBoJ,EAA2B,QAAjB,EAAAxiM,KAAKkmJ,oBAAY,eAAEhmH,cAAc,mBAAW51B,EAAE,QAC9Dk4L,IAAYA,EAAQ/zF,SAAU,EAChC,EACF,EA7CA,CAA+C,I,kvBCmC/C,yB,8CA0GA,QA1G4C,QAG1C,YAAA3nG,SAAA,WACE,OAAO,SACF,kBAAsB,CACzBwvJ,MAAO,GACPp4F,KAAM,GACN/tD,IAAK,GACLhE,IAAK,GACL2nG,KAAM,GAEV,EAMA,YAAA2uF,SAAA,WACE,OAAOziM,KAAK2D,IAAI,UAAY,EAC9B,EAMA,YAAA++L,QAAA,WACE,OAAO1iM,KAAK2D,IAAI,OAClB,EAMA,YAAAg/L,OAAA,WACE,OAAO3iM,KAAK2D,IAAI,MAClB,EAMA,YAAAi/L,OAAA,WACE,OAAO5iM,KAAK2D,IAAI,MAClB,EAMA,YAAAk/L,QAAA,WACE,OAAO7iM,KAAK2D,IAAI,OAClB,EAUA,YAAAm/L,OAAA,SAAO5kI,EAAcr0D,GACnB,YADmB,IAAAA,IAAAA,EAAA,IACZ7J,KAAKi5L,IAAI,CAAE/6H,KAAI,GAAIr0D,EAC5B,EAEA,YAAAtC,WAAA,SAAWuhB,EAAYjf,QAAZ,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IAErB,kBAAwB,GAAU7J,KAAM8oB,EAAOjf,GAC/C,IAAMq0D,EAAOl+D,KAAK2D,IAAI,QAChB2yJ,EAAQt2J,KAAKyiM,WACnBziM,KAAKshC,OAAQ,IAAAk9D,UAAW,IAAI,GAAY,CAAEr5F,MAAOnF,YAAUqF,EAEvDixJ,EAAM31J,SAAWu9D,GACnBl+D,KAAKyF,IAAI,OAAQ6wJ,EAAM,GAAI,CAAE1oJ,QAAQ,IAGvC,YAAkB5N,KAAM8oB,EAAOjf,EACjC,EAEA,YAAA4uL,gBAAA,WACE,OAAO,SACF,gCAAoC,CACvCv6H,KAAM,IAEV,EAEA,YAAA67H,WAAA,SAAW9zL,EAAU4D,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAMo3H,EAAS,8BAAoCjhI,KAAMmB,WACnD,EAAkBnB,KAAKshC,MAAOu0H,mBAAmB50B,EAAOv5H,MAAO,IACnEouJ,UAAW,GACRjsJ,IAFGnC,EAAK,QAAEw2D,EAAI,OAMnB,OAFA+iE,EAAOv5H,MAAQA,EACfu5H,EAAO/iE,KAAOA,EACP+iE,CACT,EAEA,YAAAm5D,aAAA,WACE,IAAM2I,EAAY/iM,KAAK2D,IAAI,SACrBq/L,EAAWhjM,KAAK2D,IAAI,QACpB+D,GAAS,IAAAkiF,aAAYm5G,GAA8B,GAAjB,UAAGA,GACrC7kI,IAAQ,IAAA0rB,aAAYo5G,IAAat7L,EAAQs7L,EAAW,GACpD91L,EAAS,UAAGxF,GAAK,OAAGw2D,GAC1B,OAAO,gCAAsCl+D,KAAM,CAACkN,GACtD,EACF,EA1GA,CAA4C,I,kvBCpC5C,yB,8CAOA,QAP4C,QAC1C,YAAApG,SAAA,WACE,OAAO,SACF,kBAA4B,CAC/B4wJ,UAAW,GAEf,EACF,EAPA,CAA4C,I,kvBCC5C,yB,8CA4DA,QA5DgD,QAG9C,YAAAhuJ,OAAA,WACE,OAAO,SACF,uBAAqC,CACxC,sBAAuB,oBACvB,qBAAsB,wBACtBoxB,OAAQ,IAEZ,EAEA,YAAA04H,cAAA,SAAcruJ,GACJ,IAAAo+E,EAASvjF,KAAI,KACrB,MAAO,+BACSujF,EAAI,iBAASA,EAAI,+DACFp+E,EAAMxB,IAAI,OAAM,oBAAUwB,EAAMxB,IAAI,OAAM,qBAAWwB,EAAMxB,IAAI,QAAO,2BAGvG,EAEA,YAAAs/L,YAAA,WAKE,OAJKjjM,KAAK4sK,SACR5sK,KAAK4sK,OAAS5sK,KAAKoU,GAAG8rB,cAAc,sBAG/BlgC,KAAK4sK,MACd,EAEA,YAAAmzB,kBAAA,SAAkBvzL,GAChBA,EAAG6hB,kBACHruB,KAAKmF,MAAMs0L,QAAQz5L,KAAKijM,cAAcv7L,MACxC,EAEA,YAAAw7L,sBAAA,SAAsB12L,GACpBA,EAAG6hB,kBACHruB,KAAKmF,MAAMs0L,QAAQz5L,KAAKijM,cAAcv7L,MAAO,CAAE41G,SAAS,GAC1D,EAEA,YAAA3tD,SAAA,SAASjoD,GACC,IAAAvC,EAAUnF,KAAI,MAChBihI,EAAS97H,EAAM40L,WAAWryL,GAEhC1H,KAAKijM,cAAcv7L,MAAkB,KAAVA,EAAevC,EAAMi0L,kBAAoB7wG,WAAW04C,EAAOv5H,OACtF,4BAA4C1H,KAAMmB,UACpD,EAEA,YAAA21F,SAAA,WACE,4BAA4C92F,KAAMmB,WAG7CnB,KAAKmF,MAAMxB,IAAI,eAClB3D,KAAK0hM,UAAUttL,GAAGuI,MAAMC,QAAU,OAEtC,EAEA,YAAAsjL,YAAA,WACE,+BAA+ClgM,KAAMmB,kBAC9CnB,KAAK4sK,MACd,EACF,EA5DA,CAAgD,ICqIhD,SArH8B,YAAkB,IAEPjmK,OAAO,CAC9C4zK,cAAe,EAEfv4H,KAAI,WACI,IAAEn4C,EAAa7J,KAAT,KAAEkjF,EAAOljF,KAAL,GACVqzF,EAAKxpF,EAAKpK,SAAUyjF,aAAE,EAAFA,EAAIv/E,IAAI,iBAC9B0vF,IACFA,EAAGozB,YAAYzmH,KAAMqzF,EAAG3pF,OAAOy5L,aAC/B9vG,EAAGqzB,eAAe1mH,KAAMqzF,EAAG3pF,OAAO05L,gBAEtC,EAEA13K,MAAO,CACL,CACEphB,GAAI,QACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,SAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,YACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,aAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,OACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,QAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,QACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,SAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,SACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,UAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,QACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,SAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,SACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,UAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,UACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,WAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,SACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GACL,GAAIA,GAAuB,UAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,OACJnF,MAAO,GACPm9B,KAAM,GACN83I,OAAM,SAAC1yK,GAEL,OADAA,EAAMlF,KAAO,OACNkF,CACT,M,2zCCxGN,YAiBE,WAAYwjI,EAAuBrhI,QAAA,IAAAA,IAAAA,EAAA,IAAnC,MACE,YAAMqhI,IAAI,KACFhoD,EAAOr5E,EAAI,GACnB,EAAKq5E,GAAKA,EACV,IAAM/sD,EAAI+0G,GAAO,CAAC,EACZm4D,EAAU,EAAKC,gBAAgBntK,EAAEotK,YACjC55L,EAAO,EAAKhG,IAAI,SAAW,GAC7BmlB,EAAQ,IACX,EAAKnlB,IAAI,OAAS,EAAK8B,IAAI,KAAMkE,EAAK8F,QAAQ,KAAM,KAAK2Z,eAU1DN,GAHEA,EALGu6K,EAKK,EAAKG,iBAAiBH,GAJtB,EAAK1/L,IAAI,cACdmB,KAAI,SAAA2hB,GAAQ,OAAC,IAAAvV,UAASuV,GAAQ,EAAK68K,gBAAgB78K,GAAM,GAAKA,CAAlD,IACZxQ,OAAOuvE,UAKE1gF,KAAI,SAAA2hB,GAAQ,SAAKg9K,YAAYh9K,EAAjB,IAE1B,IAAMi9K,EAAa,IAAI,GAAW56K,EAAO,CAAEo6D,GAAE,I,OAC7CwgH,EAAW/I,OAAS,EACpB,EAAKl1L,IAAI,aAAci+L,G,CACzB,CAgKF,OAxMoC,QAGlC,YAAA58L,SAAA,WACE,MAAO,CACLwD,GAAI,GACJX,KAAM,GACNwT,MAAM,EACNuhC,SAAS,EACTilJ,eAAe,EACf/xK,WAAY,GAEhB,EA8BA,sBAAI,yBAAU,C,IAAd,WACE,OAAO5xB,KAAK2D,IAAI,aAClB,E,gCAMA,YAAAqmH,MAAA,WACE,OAAOhqH,KAAK2D,IAAI,KAClB,EAMA,YAAA+oF,QAAA,W,MACQpiF,EAAKtK,KAAKgqH,QAChB,OAAc,QAAP,EAAAhqH,KAAKkjF,UAAE,eAAE5vB,EAAE,+BAAwBhpD,MAAStK,KAAK2D,IAAI,OAC9D,EAMA,YAAAumH,QAAA,SAAQxiH,GACN,OAAO1H,KAAKyF,IAAI,OAAQiC,EAC1B,EAMA,YAAAsvK,OAAA,WACE,QAASh3K,KAAK2D,IAAI,OACpB,EAMA,YAAAwzK,QAAA,SAAQzvK,GACN,OAAO1H,KAAKyF,IAAI,OAAQiC,EAC1B,EAMA,YAAAgqG,UAAA,WACE,QAAS1xG,KAAK2D,IAAI,UACpB,EASA,YAAAi3L,cAAA,SAAc/wL,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAMif,EAAQ9oB,KAAK2D,IAAI,cAEvB,OADamlB,EAAMtlB,OAAS,MAAIslB,EAAMtlB,QAAM,GAAIslB,GACrC7S,QAAO,SAAAwQ,GAChB,IAAIvZ,GAAS,GAETrD,EAAK+5L,YACP12L,EAASuZ,EAAK0yK,SAAS,CAAEK,UAAU,KAGjC3vL,EAAKg6L,mBAEP32L,GADeuZ,EAAK0yK,SAAS,CAAEK,UAAU,KACrB/yK,EAAK0yK,YAG3B,OAAOjsL,CACT,GACF,EAEA,YAAAmuL,YAAA,SAAY/wL,GACV,OAAOtK,KAAK46L,gBAAgB3kL,QAAO,SAAAwQ,GAAQ,OAAAA,EAAK9iB,IAAI,QAAU2G,CAAnB,IAAuB,SAAMjF,CAC1E,EAEA,YAAAy+L,YAAA,SAAYxnH,EAAyBzyE,GAEnC,OAAO7J,KAAK2D,IAAI,cAAeW,IAAItE,KAAKyjM,YAAYnnH,GAAWzyE,EACjE,EAUA,YAAA25L,iBAAA,SAAiB16K,EAAwBi7K,EAA2Bp1C,QAAA,IAAAA,IAAAA,GAAA,GAMlE,IALA,IAAIq1C,EAAOl7K,EAAMnoB,OACbsjM,EAASF,GAAW/jM,KAAK2D,IAAI,cAC7BygC,EAAMpkC,KAAK2D,IAAI,iBACfugM,EAAW,GAENrkM,EAAI,EAAG4rB,EAAMw4K,EAAOtjM,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAIjD,IAHA,IAAIskM,EAAQF,EAAOpkM,GACfyqB,EAAQ,EAEH7e,EAAI,EAAGA,EAAIu4L,EAAMv4L,IAAK,CAC7B,IAAIgb,EAAOqC,EAAMrd,GACjB,GAAI04L,EAAM7nH,UAAY71D,EAAK61D,UAAY6nH,EAAM75L,IAAMmc,EAAK61D,cAAxD,CAEE,IAAI8nH,EAAUD,EAAMvyK,WAChBwyK,GAAWA,EAAQzjM,SAErBwjM,EAAMvyK,WAAa5xB,KAAKwjM,iBAAiB/8K,EAAKmL,YAAc,GAAIwyK,EAAS,IAE3Et7K,EAAMrd,GAAK24B,GAAM,IAAAz9B,QAAO8f,EAAM09K,GAASA,EACvCD,EAASz4L,GAAKqd,EAAMrd,GACpB6e,EAAQ,C,EAKPA,IACHxB,EAAMnkB,KAAKw/L,GACXD,EAASv/L,KAAKw/L,G,CAIlB,OAAOx1C,EAAKu1C,EAASjuL,QAAO,SAAApW,GAAK,OAAAA,CAAA,IAAKipB,CACxC,EAEA,YAAA26K,YAAA,SAAYh9K,GACV,IAAM,IAAuB,IAAAvV,UAASuV,GAAQ,CAAE9f,OAAQ8f,GAASA,IAAS,CAAC,EAAnE9f,EAAM,SAAKmQ,EAAI,KAAjB,YACN,OAAInQ,EACK,SACD3G,KAAKsjM,gBAAgB,CAAC38L,IAAS,IAAM,CAAC,GACvCmQ,GAGE2P,CAEX,EAQA,YAAA68K,gBAAA,SAAgBx6K,G,MACRu7K,EAASv7K,GAAS,GAExB,IAAKu7K,EAAO1jM,OAAQ,MAAO,GAE3B,IAAM2jM,EAAiB,QAAP,EAAAtkM,KAAKkjF,UAAE,eAAEv/E,IAAI,gBAAgB2gM,QAE7C,OAAOA,aAAO,EAAPA,EAASx+D,MAAMu+D,EACxB,EACF,EAxMA,CAAoC,M,kvBCvBpC,yB,8CAuBA,QAvBqC,QAInC,YAAA98L,WAAA,SAAWkf,EAAW5c,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAApK,EAAeoK,EAAI,OAAXq5E,EAAOr5E,EAAI,GAC3B7J,KAAKkjF,GAAKA,EACVljF,KAAKP,OAASA,EACdO,KAAKwK,SAASxK,KAAM,QAASA,KAAK0pH,QACpC,EAGA,YAAAvkH,MAAA,SAAM2jB,EAAOjf,QAAA,IAAAA,IAAAA,EAAA,IAEH,IAAAq5E,EAAOr5E,EAAK5E,WAAU,GAC9B,OAAO,IAAI,GAAO6jB,EAAO,SAAKjf,GAAI,CAAEq5E,GAAE,IACxC,EAEA,YAAAwmC,QAAA,SAAQlmH,EAAaqG,QAAA,IAAAA,IAAAA,EAAA,KACNA,EAAK1D,gBAAkB,IAE/BsP,SAAQ,SAAA8uL,GAAQ,OAAAA,EAAK5gM,IAAI,cAAcuC,OAAvB,GACvB,EACF,EAvBA,CAAqC,M,2zBCY/B2mH,GAAa,SAACjpB,GAA8B,OAAAA,EAAM9+F,KAAI,SAAA2hF,GAAQ,OAAGn8E,GAAIm8E,EAAP,GAAlB,EAElD,cAyCE,aAxCA,KAAA39D,MAAmD,CAAC,EAyClD9oB,KAAKwkM,WAAa,SAClBxkM,KAAKykM,UAAY,QACjBzkM,KAAK0kM,UAAY,QACjB1kM,KAAK2kM,WAAa,SAClB3kM,KAAK4kM,SAAW,OAChB5kM,KAAK6kM,WAAa,SAClB7kM,KAAK8kM,cAAgB,YACrB9kM,KAAK+kM,UAAY,QACjB/kM,KAAKglM,UAAY,CAAC,KAAM,IAAK,KAAM,MAAO,KAAM,MAChDhlM,KAAKilM,gBAAkB,CAAC,KAAM,KAAM,MAAO,KAAM,MACjDjlM,KAAKklM,UAAY,CAAC,IAAK,MACvBllM,KAAKmlM,WAAa,CAAC,MAAO,MAAO,QACjCnlM,KAAK43L,YAAc,CAAC,UAAW,UAAW,QAC1C,IAAMwN,EAAK,eACLC,EAAW,CAAC,aAAc,WAAY,UACtCC,EAAgB,SAAID,GAAU,GAAF,CAAE,WAAY,YAAS,GAEzDrlM,KAAKulM,WAAa14E,GAAW,CAAC,OAAQ,QAAS,YAC/C7sH,KAAKwlM,aAAe34E,GAAW,CAAC,SAAU,QAAS,UACnD7sH,KAAKylM,aAAe54E,GAAW,CAAC,SAAU,WAAY,WAAY,cAClE7sH,KAAK0lM,SAAW74E,GAAW,CAAC,SAAU,OAAQ,iBAC9C7sH,KAAK2lM,aAAe94E,GAAW,CAAC,UAAW,SAAU,SAAU,SAC/D7sH,KAAK4lM,QAAU/4E,GAAW,CAAC,MAAO,cAAe,SAAU,mBAC3D7sH,KAAK6lM,YAAch5E,GAAW,CAAC,QAAS,SAAU,eAAgB,OAAQ,SAC1E7sH,KAAK8lM,cAAgBj5E,GAAW,CAAC,SAAU,OAAQ,UAAW,WAAY,gBAC1E7sH,KAAK+lM,WAAal5E,GAAW,CAAC,OAAQ,UAAW,OAAQ,YAAa,OAAQ,WAAY,OAAQ,OAAQ,SAC1G7sH,KAAKgmM,UAAYn5E,GAAW,CAAC,OAAQ,OAAQ,UAC7C7sH,KAAKimM,QAAUp5E,GAAW,CAAC,SAAU,WAAY,WAAY,UAC7D7sH,KAAKkmM,cAAgBr5E,GAAW,CAAC,OAAQ,SAAU,QAAS,YAC5D7sH,KAAKslM,cAAgBz4E,GAAWy4E,GAChCtlM,KAAKmmM,aAAet5E,GAAW,SAAIw4E,GAAU,GAAF,CAAE,gBAAiB,eAAgB,iBAAc,IAC5FrlM,KAAKomM,cAAgBv5E,GAAW,SAAIw4E,GAAU,GAAF,CAAE,gBAAiB,eAAgB,YAAS,IACxFrlM,KAAKqmM,cAAgBx5E,GAAW,IAAC,QAAWy4E,GAAa,IACzDtlM,KAAKsmM,gBAAkBz5E,GAAW,CAChC,MACA,QACA,SACA,mBACA,YACA,aACA,YAEF7sH,KAAKumM,gBAAkB15E,GAAW,CAChC,OACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,WAEF7sH,KAAKwmM,UAAY35E,GAAW,CAC1B,WACA,cACA,cACA,YACA,eACA,eACA,aACA,gBACA,kBAEF7sH,KAAKymM,WAAa,CAChB,CAAEn8L,GAAI,MAAOoiE,MAAO,QACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,eACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,SACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,UACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,UACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,aACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,QACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,cACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,eAEtB1sE,KAAK0mM,eAAiB,CACpB,CAAEp8L,GAAI,GAAIoiE,MAAO,WACjB,CAAEpiE,GAAI,QAASoiE,MAAO,WAExB1sE,KAAK2mM,UAAY,CACf,mBAAqBvB,EACrB,sBAAwBA,EACxB,kBAAoBA,EACpB,yBAA2BA,EAC3B,kCACA,iBACA,YAAcA,EACd,mBAAqBA,EACrB,qCAAuCA,EACvC,iBAAmBA,EACnB,gCACA,0BAA4BA,EAC5B,kBAAoBA,GACpBtgM,KAAI,SAAA8hM,GACJ,MAAO,CAAEt8L,GAAIs8L,EAAMl6H,MAAOk6H,EAAK38L,MAAM,KAAK,GAC5C,IAGAjK,KAAK6mM,eAAiB,CACpB,SACA,WACA,UACA,QACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,WAEF7mM,KAAK8mM,cAAgB,CAAC,SAAU,UAAW,WAC3C9mM,KAAK+mM,YAAc,CAAEnqL,QAAS,CAAC,SAE/B5c,KAAKgiD,MACP,CAkXF,OAhXE,YAAAglJ,MAAA,SAAMpjG,GAAN,WACE,OAAO,WACL,OAAAA,EAAM9+F,KAAI,SAAAk3B,GACR,IAAI,IAAA9qB,UAAS8qB,GAAI,OAAO,EAAKr4B,IAAIq4B,GACzB,IAAAr1B,EAAoBq1B,EAAC,OAAVllB,EAAI,GAAKklB,EAAtB,YACN,OAAO,SACF,EAAKr4B,IAAIgD,IACTmQ,EAEP,GAPA,CAQJ,EAEA,YAAAkrC,KAAA,sBACQ,EAA2ChiD,KAAzC43L,EAAW,cAAEmP,EAAW,cAAEvC,EAAU,aAC5CxkM,KAAK8oB,MAAQ,CAAC,EAId,IAAMm+K,EAA6E,CAEjF,CAAC,gBAAiB,CAAEzkM,KAAMgiM,EAAYz4E,QAAS,IAAKuqC,MAAOt2J,KAAKilM,kBAChE,CAAC,MAAO,CAAEl5E,QAAS,OAAQuqC,MAAOt2J,KAAKglM,UAAWpN,YAAW,GAAI,iBACjE,CAAC,QAAS,CAAC,EAAG,OACd,CAAC,SAAU,CAAC,EAAG,OACf,CAAC,OAAQ,CAAC,EAAG,OACb,CAAC,aAAc,CAAE7rE,QAAS,KAAO,OACjC,CAAC,eAAgB,CAAC,EAAG,cACrB,CAAC,gBAAiB,CAAC,EAAG,cACtB,CAAC,cAAe,CAAC,EAAG,cACpB,CAAC,cAAe,CAAE57G,IAAK,GAAK,cAC5B,CAAC,gBAAiB,CAAC,EAAG,eACtB,CAAC,iBAAkB,CAAC,EAAG,eACvB,CAAC,eAAgB,CAAC,EAAG,eACrB,CAAC,QAAS,CAAEA,IAAK,GAAK,OACtB,CAAC,YAAa,CAAC,EAAG,SAClB,CAAC,YAAa,CAAC,EAAG,SAClB,CAAC,SAAU,CAAC,EAAG,SACf,CAAC,aAAc,CAAC,EAAG,SACnB,CAAC,aAAc,CAAC,EAAG,SACnB,CAAC,aAAc,CAAE4nL,eAAgBgP,GAAe,SAChD,CAAC,YAAa,CAAEh7E,QAAS,SAAU6rE,YAAa53L,KAAK6mM,gBAAkB,SACvE,CAAC,iBAAkB,CAAE96E,QAAS,SAAU6rE,YAAa53L,KAAK8mM,eAAiB,OAC3E,CAAC,cAAe,CAAC,EAAG,kBACpB,CAAC,gBAAiB,CAAC,EAAG,iBACtB,CAAC,mBAAoB,CAAE32L,IAAK,GAAK,iBACjC,CAAC,kBAAmB,CAAEmsE,SAAU,gBAAiBs7G,iBAAavyL,GAAa,eAC3E,CAAC,yBAA0B,CAAC,EAAG,mBAC/B,CAAC,0BAA2B,CAAC,EAAG,mBAChC,CAAC,4BAA6B,CAAC,EAAG,mBAClC,CAAC,6BAA8B,CAAC,EAAG,mBACnC,CAAC,eAAgB,CAAEixJ,MAAOt2J,KAAKilM,iBAAmB,mBAClD,CAAC,eAAgB,CAAC,EAAG,iBACrB,CAAC,eAAgB,CAAC,EAAG,iBACrB,CAAC,kBAAmB,CAAEl5E,QAAS,OAAS,oBACxC,CAAC,oBAAqB,CAAC,EAAG,iBAC1B,CAAC,sBAAuB,CAAEA,QAAS,KAAMuqC,MAAOt2J,KAAKklM,WAAa,mBAClE,CAAC,cAAe,CAAC,EAAG,mBACpB,CAAC,QAAS,CAAE1iM,KAAMgiM,EAAYz4E,QAAS,IAAKgsE,eAAgBgP,IAC5D,CAAC,YAAa,CAAC,EAAG,SAClB,CAAC,cAAe,CAAEh7E,QAAS,KAAO,SAGlC,CAAC,QAAS,CAAEvpH,KAAMxC,KAAK0kM,UAAW34E,QAAS,OAAQlpH,QAAS7C,KAAKgmM,YACjE,CAAC,WAAY,CAAEj6E,QAAS,SAAUlpH,QAAS7C,KAAKimM,SAAW,SAC3D,CAAC,aAAc,CAAEl6E,QAAS,OAAQlpH,QAAS7C,KAAKkmM,eAAiB,SAGjE,CAAC,QAAS,CAAE1jM,KAAMxC,KAAKykM,UAAW14E,QAAS,QAAShxF,MAAM,IAC1D,CAAC,oBAAqB,CAAC,EAAG,SAC1B,CAAC,eAAgB,CAAC,EAAG,SACrB,CAAC,mBAAoB,CAAC,EAAG,SACzB,CAAC,mBAAoB,CAAEgxF,QAAS,QAAU,SAG1C,CACE,mBACA,CACEvpH,KAAMxC,KAAK4kM,SACXjN,aAAc,MACd5rE,QAAS,OACThxF,MAAM,IAKV,CAAC,UAAW,CAAEv4B,KAAMxC,KAAK6kM,WAAY94E,QAAS,IAAK57G,IAAK,EAAGhE,IAAK,EAAG2nG,KAAM,IAAM/4E,MAAM,IAGrF,CAAC,UAAW,CAAEv4B,KAAMxC,KAAK2kM,WAAY54E,QAAS,QAASlpH,QAAS7C,KAAK6lM,cACrE,CAAC,iBAAkB,CAAE95E,QAAS,MAAOlpH,QAAS7C,KAAK4lM,QAAS9N,SAAUiP,GAAe,WACrF,CAAC,YAAa,CAAEh7E,QAAS,SAAUlpH,QAAS7C,KAAK0lM,UAAY,kBAC7D,CAAC,kBAAmB,CAAE35E,QAAS,aAAclpH,QAAS7C,KAAKmmM,cAAgB,aAC3E,CAAC,cAAe,CAAEp6E,QAAS,UAAWlpH,QAAS7C,KAAKslM,eAAiB,aACrE,CAAC,gBAAiB,CAAEziM,QAAS7C,KAAKomM,eAAiB,eACnD,CACE,aACA,CACEr6E,QAAS,OACTlpH,QAAS7C,KAAKqmM,cACdtO,eAAgBgP,GAElB,WAEF,CAAC,cAAe,CAAEh7E,QAAS,+BAAgClpH,QAAS7C,KAAK2mM,WAAa,WACtF,CAAC,cAAe,CAAE56E,QAAS,MAAOlpH,QAAS7C,KAAKymM,YAAc,WAC9D,CAAC,eAAgB,CAAE16E,QAAS,QAASlpH,QAAS7C,KAAKumM,iBAAmB,WACtE,CAAC,kBAAmB,CAAEx6E,QAAS,GAAIlpH,QAAS7C,KAAK0mM,gBAAkB,WACnE,CAAC,oBAAqB,CAAE36E,QAAS,SAAUlpH,QAAS7C,KAAKylM,cAAgB,WACzE,CAAC,sBAAuB,CAAE15E,QAAS,WAAYlpH,QAAS7C,KAAKwmM,WAAa,WAC1E,CAAC,wBAAyB,CAAEz6E,QAAS,SAAUlpH,QAAS7C,KAAKwlM,cAAgB,WAC7E,CAAC,kBAAmB,CAAEz5E,QAAS,OAAQlpH,QAAS7C,KAAKulM,YAAc,WACnE,CAAC,sBAAuB,CAAEx5E,QAAS,QAASlpH,QAAS7C,KAAKsmM,iBAAmB,WAC7E,CAAC,6BAA8B,CAAEv6E,QAAS,OAAQlpH,QAAS7C,KAAK8lM,eAAiB,WACjF,CAAC,SAAU,CAAE/5E,QAAS,OAAQlpH,QAAS7C,KAAK+lM,YAAc,WAC1D,CAAC,WAAY,CAAEh6E,QAAS,UAAWlpH,QAAS7C,KAAK2lM,cAAgB,WACjE,CAAC,aAAc,CAAC,EAAG,YACnB,CAAC,aAAc,CAAC,EAAG,YAGnB,CACE,SACA,CACEnjM,KAAMxC,KAAK8kM,cACXlzK,WAAY5xB,KAAKgnM,MAAM,CACrB,CAAErgM,OAAQ,aAAc2D,GAAI,kBAC5B,CAAE3D,OAAQ,eAAgB2D,GAAI,oBAC9B,CAAE3D,OAAQ,gBAAiB2D,GAAI,qBAC/B,CAAE3D,OAAQ,cAAe2D,GAAI,uBAInC,CACE,UACA,CACEsnB,WAAY5xB,KAAKgnM,MAAM,CACrB,CAAErgM,OAAQ,cAAe2D,GAAI,mBAC7B,CAAE3D,OAAQ,gBAAiB2D,GAAI,qBAC/B,CAAE3D,OAAQ,iBAAkB2D,GAAI,sBAChC,CAAE3D,OAAQ,eAAgB2D,GAAI,uBAGlC,UAEF,CACE,SACA,CACEsnB,WAAY5xB,KAAKgnM,MAAM,CACrB,CAAErgM,OAAQ,eAAgB2D,GAAI,oBAC9B,CAAE3D,OAAQ,eAAgB2D,GAAI,oBAC9B,CAAE3D,OAAQ,eAAgB2D,GAAI,uBAGlC,UAEF,CACE,gBACA,CACEsnB,WAAY5xB,KAAKgnM,MAAM,CACrB,CACErgM,OAAQ,yBACR2D,GAAI,8BAEN,CACE3D,OAAQ,0BACR2D,GAAI,+BAEN,CACE3D,OAAQ,6BACR2D,GAAI,kCAEN,CACE3D,OAAQ,4BACR2D,GAAI,oCAIV,UAIF,CACE,aACA,CACE9H,KAAMxC,KAAK+kM,UACXnzK,WAAY5xB,KAAKgnM,MAAM,CACrB,CAAErgM,OAAQ,sBAAuB2D,GAAI,2BACrC,CAAE3D,OAAQ,sBAAuB2D,GAAI,2BACrC,CACE3D,OAAQ,6BACR2D,GAAI,sCAKZ,CACE,aACA,CACE60K,SAAS,EACTqe,WAAY,SAACv7L,EAAG,G,IAAEmQ,EAAM,SAChByhB,EAAIzhB,EAAO,gBACXw7B,EAAIx7B,EAAO,gBACX2vD,EAAO3vD,EAAO,mBACd80L,EAAS90L,EAAO,qBACtB,MAAO,UAAGyhB,EAAC,YAAI+Z,EAAC,YAAIm0B,EAAI,YAAImlI,EAC9B,EACAt1K,WAAY5xB,KAAKgnM,MAAM,CACrB,eACA,eACA,kBACA,oBACA,mBACA,qBAGJ,cAEF,CACE,cACA,CACEj7E,QAAS,OACTyxE,WAAY,SAACv7L,EAAG,G,IAAEmQ,EAAM,SAChByhB,EAAIzhB,EAAO,iBACXw7B,EAAIx7B,EAAO,iBACX2vD,EAAO3vD,EAAO,oBACpB,MAAO,UAAGyhB,EAAC,YAAI+Z,EAAC,YAAIm0B,EACtB,EACAnwC,WAAY5xB,KAAKgnM,MAAM,CAAC,gBAAiB,gBAAiB,mBAAoB,uBAEhF,cAEF,CACE,aACA,CACEhM,UAAU,EACVwC,WAAY,SAACv7L,EAAG,G,IAAEmQ,EAAM,SAKtB,MAAO,CAJQA,EAAO,0BAA4B,GACtCA,EAAO,4BAA8B,GACrCA,EAAO,8BAAgC,GACtCA,EAAO,wBAA0B,IACdq9C,KAAK,IACvC,EACA79B,WAAY5xB,KAAKgnM,MAAM,CACrB,CAAErgM,OAAQ,mBAAoB2D,GAAI,wBAClC,CAAE3D,OAAQ,oBAAqB2D,GAAI,yBACnC,CAAE3D,OAAQ,sBAAuB2D,GAAI,2BACrC,CACE3D,OAAQ,wBACR2D,GAAI,6BAEN,CAAE3D,OAAQ,kBAAmB2D,GAAI,0BAGrC,cAEF,CACE,YACA,CACE9H,KAAM,QACN86L,eAAgB,IAChBpC,UAAS,SAACv+K,EAAO,G,IAAE2/D,EAAQ,WACnBrmE,EAAS0G,EADgB,SACD,GACxBmgE,EAAMR,EAASmiH,oBACrB,OAAOxoL,EACHA,EAAOhM,MAAM6yE,GAAKh4E,KAAI,SAAAw8B,GACd,MAAkBg7C,EAASk+G,UAAUl5J,GAC3C,MAAO,CACL,iBAFU,OAGV,kBAHiB,QAKrB,IACA,EACN,EACA65J,QAAO,SAAC/oL,EAAQ,G,MACd,OAAO,EAAP,IADoB,QACH,UAAGA,EAAO,kBAAiB,YAAIA,EAAO,mBAAkB,KAAG,CAC9E,EACAwf,WAAY,CACV,CACE0qD,SAAU,iBACV3yE,KAAM,OACNnH,KAAMxC,KAAK2kM,WACX54E,QAAS,UACThxF,MAAM,EACNl4B,QAAS,CACP,CAAEyH,GAAI,SAAUkhJ,UAAW,CAAE8K,MAAO,CAAC,IAAKxiD,KAAM,MAChD,CAAExpG,GAAI,SAAUkhJ,UAAW,CAAE8K,MAAO,CAAC,IAAKxiD,KAAM,MAChD,CAAExpG,GAAI,SAAUkhJ,UAAW,CAAE8K,MAAO,CAAC,IAAKxiD,KAAM,MAChD,CACExpG,GAAI,UACJkhJ,UAAW,CAAE8K,MAAOt2J,KAAKmlM,WAAYrxF,KAAM,IAE7C,CACExpG,GAAI,UACJkhJ,UAAW,CAAE8K,MAAOt2J,KAAKmlM,WAAYrxF,KAAM,IAE7C,CACExpG,GAAI,UACJkhJ,UAAW,CAAE8K,MAAOt2J,KAAKmlM,WAAYrxF,KAAM,IAE7C,CACExpG,GAAI,aACJkhJ,UAAW,CAAE8K,MAAOt2J,KAAKglM,UAAWlxF,KAAM,IAE5C,CACExpG,GAAI,aACJkhJ,UAAW,CAAE8K,MAAOt2J,KAAKglM,UAAWlxF,KAAM,KAG9CggD,SAAQ,SAAC,G,IAAEx3E,EAAQ,WACjB,GADqB,KACd50E,MAAO,CACZ,IAAMu2D,EAAUqe,EAA4Bp7D,YACtC4H,EAAQ,MAAMm1C,EAAOutF,WAAa,CAAC,GACnC27C,EAAW7qH,EAASs9G,YAAYyB,YAAY,mBAC5Cn9H,EAAOipI,EAASzE,YACjBxkI,IAAQp1C,aAAK,EAALA,EAAOwtI,MAAMzxJ,QAAQq5D,IAAQ,KACxCp1C,EAAMo1C,MAAOp1C,aAAK,EAALA,EAAOwtI,MAAM,KAAM,IAElC6wC,EAAStqI,GAAG/zC,E,CAEhB,GAEF,CACEwzD,SAAU,kBACV95E,KAAMxC,KAAKwkM,WACXz4E,QAAS,IACThxF,MAAM,OAWhB,OAJAksK,EAAcxxL,SAAQ,SAAC,G,IAACgR,EAAI,KAAEu9D,EAAG,KAAEvkE,EAAI,KACrC,EAAKnb,IAAImiB,EAAMu9D,GAAO,CAAC,EAAG,CAAEvkE,KAAI,GAClC,IAEOzf,IACT,EAEA,YAAAsE,IAAA,SAAIg4E,EAAkB0H,EAA+Bn6E,QAA/B,IAAAm6E,IAAAA,EAAA,SAA+B,IAAAn6E,IAAAA,EAAA,IACnD,IAAM4V,EAAO5V,EAAK4V,MAAQ,GACpB2nL,EAAUpnM,KAAK8oB,MAAMrJ,GAAQ68D,IAAa,CAAC,EAC3CpvE,EAAM,YAAak6L,GAAO,CAAE9qH,SAAQ,IAAK0H,GAK/C,OAJI92E,EAAO0kB,aAAc,IAAAvvB,YAAW6K,EAAO0kB,cACzC1kB,EAAO0kB,WAAa1kB,EAAO0kB,cAE7B5xB,KAAK8oB,MAAMwzD,GAAYpvE,EAChBA,CACT,EAEA,YAAAvJ,IAAA,SAAI8iB,GACF,OAAOzmB,KAAK8oB,MAAMrC,EACpB,EAOA,YAAAq/G,MAAA,SAAMh9G,GAAN,WACQ5b,EAA0B,GAOhC,QANiB,IAAAgE,UAAS4X,GAAS,CAACA,GAASA,GAEpCrT,SAAQ,SAAAgR,GACfvZ,EAAOvI,KAAK,EAAKhB,IAAI8iB,IAAS,CAAE61D,SAAU71D,GAC5C,IAEOvZ,CACT,EACF,EAhhBA,G,gpBCXA,eAKE,WAAYipB,GAAZ,MACE,YAAMA,IAAE,KACFle,EAASke,EAAEle,QAAU,CAAC,EACpB9S,EAAU,EAAI,MAEd+9E,EAAOjrE,EAAM,G,OACrB,EAAKA,OAASA,EACd,EAAKirE,GAAKA,EACV,EAAKe,IAAMhsE,EAAOisE,aAAe,GACjC,EAAK15E,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAKoF,SAASrF,EAAO,cAAe,EAAKqnL,YACzC,EAAKhiL,SAASrF,EAAO,iBAAkB,EAAKk+I,kB,CAC9C,CA+DF,OAhFwC,QAmBtC,YAAA3mC,SAAA,SAAS,G,MAAEz4B,EAAG,MAAEvX,EAAK,QACbi2C,EAAe,QAAP,EAAA3iH,KAAKkjF,UAAE,eAAE0D,YAAY+7B,MAC7B0kF,GAAY1kF,aAAK,EAALA,EAAOE,QAAS,GAC5BykF,EAAS,UAAGrjH,EAAG,WAErB,OAAO/N,EAAI,sMACW,oDACE,YAAoB,gCACpB,WAAe,gCAFvBoxH,EACEA,EAAiBD,EACjBC,EAAgB56H,EAGpC,EAEA,YAAAhjE,OAAA,WACE,MAAO,CACL,4BAA6B,SAEjC,EAEA,YAAA8iL,WAAA,WACQ,MAAsBxsL,KAApB2T,EAAG,MAAExO,EAAK,QAAE8+E,EAAG,MACjB+yF,EAAS7xK,EAAM6xK,SACrBrjK,EAAIqjK,EAAS,WAAa,eAAe,UAAG/yF,EAAG,SAC/CjkF,KAAKunM,kBAAkB5qL,MAAMC,QAAUo6J,EAAS,GAAK,MACvD,EAEA,YAAA3zB,iBAAA,WACErjJ,KAAKoU,GAAGuI,MAAMC,QAAU5c,KAAKmF,MAAMusG,YAAc,GAAK,MACxD,EAEA,YAAA61F,gBAAA,WACQ,IAAE5zL,EAAa3T,KAAV,IAAEikF,EAAQjkF,KAAL,IAChB,OAAO2T,EAAIC,KAAK,WAAIqwE,EAAG,eAActgF,IAAI,EAC3C,EAEA,YAAA2+D,OAAA,WACU,IAAAn9D,EAAUnF,KAAI,MACtBmF,EAAMgyK,SAAShyK,EAAMxB,IAAI,QAC3B,EAEA,YAAA6jM,iBAAA,WACQ,IAAEriM,EAAkBnF,KAAb,MAAEiY,EAAWjY,KAAL,OACfynM,EAAOtiM,EAAMxB,IAAI,cAEvB,GAAI8jM,EAAM,CAER,IAAMnlK,EAAO,IAAI,GAAe,CAAEr9B,WAAYwiM,EAAMxvL,OAAM,IAC1DjY,KAAK2T,IAAIq/E,OAAO1wD,EAAKzuB,SAASO,G,CAElC,EAEA,YAAAP,OAAA,WACQ,MAAsB7T,KAApBikF,EAAG,MAAE9+E,EAAK,QAAEwO,EAAG,MACjBrJ,EAAKnF,EAAM6kH,QACXt9C,EAAQvnE,EAAMunF,UAKpB,OAJA/4E,EAAIuiE,KAAKl2E,KAAK08G,SAAS,CAAEz4B,IAAG,EAAEvX,MAAK,KACnC1sE,KAAKwnM,mBACL7zL,EAAInM,KAAK,QAAS,UAAGy8E,EAAG,kBAAUA,EAAG,mBAAW35E,EAAE,eAClDtK,KAAKwsL,aACExsL,IACT,EACF,EAhFA,CAAwC,M,0gBCCxC,eAME,WACEm2B,QAAA,IAAAA,IAAAA,EAAA,IADF,MAIE,YAAMA,IAAE,KACA12B,EAAmB02B,EAAC,OAAZle,EAAWke,EAAC,OACtB60D,EAAO,EAAK/lF,W,OAClB,EAAKg/E,KAAMhsE,aAAM,EAANA,EAAQisE,cAAe,GAClC,EAAKX,MAAOtrE,aAAM,EAANA,EAAQksE,eAAgB,GACpC,EAAKlsE,OAASA,EACd,EAAKxY,OAASA,EACd,EAAK+K,SAASwgF,EAAM,MAAO,EAAK2Y,OAChC,EAAKn5F,SAASwgF,EAAM,QAAS,EAAKn3E,Q,CACpC,CAkCF,OArDyC,QAqBvC,YAAAzO,OAAA,sBAOE,OANA,4BAA4BpF,KAAMmB,WAClC,CAAC,SAAU,SAAU,MAAMsU,SACzB,SAAA5V,GAEE,OAAC,EAAKA,GAAK,CAAC,CAAZ,IAEGG,IACT,EAEA,YAAA2jG,MAAA,SAAMx+F,EAAe45E,EAAQl1E,QAAA,IAAAA,IAAAA,EAAA,IAC3B7J,KAAKmuH,gBAAgBhpH,EAAO,KAAM0E,EACpC,EAEA,YAAAskH,gBAAA,SAAgBhpH,EAAeipH,EAAqCvkH,QAAA,IAAAA,IAAAA,EAAA,IAC5D,IAAEoO,EAAejY,KAAT,OAAEoU,EAAOpU,KAAL,GACZ4xF,EAAWw8B,GAAch6G,EACzBm9E,EAAW,IAAI,GAAW,CAAEpsF,MAAK,EAAE8S,OAAM,IAAIpE,SAASO,GAG5D,OAFA,SAAcw9E,EAAUL,EAAU1nF,EAAKpG,IAEhC8tF,CACT,EAEA,YAAA19E,OAAA,sBACQ,EAAqB7T,KAAnB2T,EAAG,MAAEswE,EAAG,MAAEV,EAAI,OACtB5vE,EAAIq+B,QACJ,IAAMwiB,EAAO9/C,SAASisB,yBAItB,OAHA3gC,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKgpH,gBAAgBhpH,EAAOqvD,EAA5B,IAC9B7gD,EAAIq/E,OAAOx+B,GACX7gD,EAAI2R,SAAS,UAAG2+D,EAAG,mBAAWV,EAAI,kBAAUA,EAAI,cACzCvjF,IACT,EACF,EArDA,CAAyC,M,w9BC0F5B,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChB0nM,GAAW,UAAG,GAAK,UACnBC,GAAc,UAAGD,GAAQ,QACzBE,GAAiB,UAAGF,GAAQ,WAC5BG,GAAiB,UAAGH,GAAQ,WAC5BI,GAAS,UAAG,GAAK,YACjBC,GAAY,UAAGD,GAAM,QACrBE,GAAe,UAAGF,GAAM,WACxBG,GAAW,UAAGH,GAAM,WACpBI,GAAgB,UAAG,GAAK,gBACxBC,GAAW,UAAG,GAAK,UACnB,GAAW,UAAG,GAAK,UAI1BC,GAAU,SAAC1gM,GAAe,OAAAA,GAAmB,IAAVA,CAAT,EAE1B,GAAS,CACbtG,IAAK,GACLinM,UAAWV,GACXW,aAAcV,GACdW,aAAcV,GACd1E,YAAa4E,GACb3E,eAAgB4E,GAChBlP,eAAgBmP,GAChBtJ,YAAauJ,GACb3hL,OAAQ4hL,GACRt3G,OAAQ,IAGV,eA0BE,WAAY3N,GAAZ,MACE,YAAMA,EAAI,eAAgB,IAAI,GAAQ,GAAI,CAAEA,GAAE,IAAK,GAAQ,KAAS,KAjBtE,EAAAslH,OAAS,GACT,EAAA9iF,WAAa,IAiBX,IAAApjC,SAAQ,EAAM,sBACd,IAAMvD,EAAI,EAAK9mE,OACTsrE,EAAOxE,EAAEoF,aACXZ,IAAMxE,EAAEmF,YAAcX,EAAOxE,EAAEmF,aACnC,EAAKogH,QAAU,IAAI,GACnB,EAAK1yK,WAAa,IAAI,GAAW,GAAI,CAAEsxD,GAAE,EAAEzjF,OAAQ,IACnD,EAAKggL,QAAU,EAAKr+K,IACpB,IAAM+D,EAAQ,IAAI,KAAM,CAAEojJ,QAAS,KACnC,EAAKpjJ,MAAQA,EAIb,EAAKsuK,OAAQ,IAAAnsF,WAAS,WAAM,SAAKosF,SAAL,GAAgB,GAC5CvuK,EAAMqF,SAAS04E,EAFJ,oGAEY,EAAKuwF,OAE5BtuK,EAAMqF,SAAS04E,EAAI,oBAAqB,EAAKulH,oBAG7C,IAAMC,GAAU,IAAAphH,WAAS,WACvB,EAAKqhH,YACL,EAAKn3G,aACP,GAAG,GACHrsF,EAAMqF,SAAS04E,EAAI,6BAA8BwlH,GAGjD,IAAME,GAAY,IAAAthH,WAAS,WAAM,SAAKkK,aAAL,GAAoB,G,OACrDrsF,EAAMqF,SAAS04E,EAAI,UAAGglH,GAAa,YAAIC,IAAYS,GAGnDzjM,EAAMsC,GAAG,qBAAqB,WAAM,OAAAy7E,EAAGp/E,QAAQqkM,GAAU,EAAKn/G,cAA1B,I,CACtC,CAopBF,OA9sB0C,QA4DxC,YAAA0qF,QAAA,WACE1zK,KAAKkW,OAAOlW,KAAKkjF,GAAGqC,iBACtB,EAEA,YAAAiM,YAAA,SAAY3nF,QAAA,IAAAA,IAAAA,EAAA,IACV7J,KAAKiqJ,MAAQjqJ,KAAKiqJ,OAASpgJ,EAAK42C,UAChCzgD,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ,CAAEpwC,UAAWzgD,KAAKiqJ,OACxD,EAEA,YAAA4uC,QAAA,SAAQlmL,G,UAAe,qDACrB,EAAA3S,KAAKkjF,IAAGp/E,QAAO,YAAC6O,GAAU+F,GAAI,GAChC,EAEA,YAAA+vL,mBAAA,sBACUvlH,EAAOljF,KAAI,GACb6oM,EAAc7oM,KAAK8oM,mBACzBD,IACE3lH,SAAAA,EAAIl9B,MAAK,WACPk9B,EAAG0kC,IAAIxiH,OAAOyjM,GACd,EAAK1jM,MAAMM,IAAI,CAAEojM,YAAa,MAChC,IACJ,EAEA,YAAAv9E,OAAA,WAEEtrH,KAAKy/K,QAAQn7K,IAAItE,KAAKiY,OAAOwnK,QAAU,CAAE7xK,QAAQ,GACnD,EAEA,YAAAqmI,WAAA,WACEj0I,KAAKolH,YACP,EAiBA,YAAA2jF,UAAA,SAAUz+L,EAAYqwL,EAA0B93L,QAAA,IAAAA,IAAAA,EAAA,IAC9C,IAAIqK,EAASlN,KAAKgpM,UAAU1+L,GAO5B,OALK4C,IACHytL,EAAOrwL,GAAKA,EACZ4C,EAASlN,KAAKy/K,QAAQn7K,IAAIq2L,EAAQ93L,IAG7BqK,CACT,EASA,YAAA87L,UAAA,SAAU1+L,EAAYT,QAAA,IAAAA,IAAAA,EAAA,IACpB,IAAMzF,EAAMpE,KAAKy/K,QAAQ/7K,MAAM,CAAE4G,GAAE,IAAI,GAEvC,OADClG,GAAOyF,EAAKk6F,MAAQ/jG,KAAKipM,aAAa3+L,GAChClG,GAAO,IAChB,EAUA,YAAA8kM,WAAA,SAA6Dr/L,QAAA,IAAAA,IAAAA,EAAU,CAAC,GAC9D,IAAA41K,EAAYz/K,KAAI,QAClBoE,EAAMq7K,GAAWA,EAAQj8K,OAAUqG,EAAKoG,MAAQ,MAAIwvK,EAAQj8K,QAAM,GAAIi8K,EAAW,GACvF,OAAQ51K,EAAK60C,QAAUt6C,EAAI6R,QAAO,SAAA7N,GAAK,OAAAA,EAAEspG,WAAF,IAAiBttG,CAK1D,EASA,YAAA+kM,aAAA,SAAa7+L,GACX,OAAOtK,KAAKkpM,aAAa9jM,OAAOpF,KAAKgpM,UAAU1+L,EAAI,CAAEy5F,MAAM,IAC7D,EAqBA,YAAA+/F,YAAA,SAAYsF,EAAkB9sH,EAAyBzyE,QAAA,IAAAA,IAAAA,EAAA,IACrD,IAAM8wL,EAAS36L,KAAKgpM,UAAUI,EAAU,CAAErlG,MAAM,IAC5Ct9E,EAAO,KAGX,OAFIk0K,IAAQl0K,EAAOk0K,EAAOmJ,YAAYxnH,EAAUzyE,IAEzC4c,CACT,EAUA,YAAA40K,YAAA,SAAY+N,EAAkB9+L,GAC5B,IACImc,EADEk0K,EAAS36L,KAAKgpM,UAAUI,EAAU,CAAErlG,MAAM,IAOhD,OAJI42F,IACFl0K,EAAOk0K,EAAO/oK,WAAW3b,QAAO,SAAAwQ,GAAQ,OAAAA,EAAK9iB,IAAI,cAAgB2G,GAAMmc,EAAK9iB,IAAI,QAAU2G,CAAlD,IAAsD,IAGzFmc,CACT,EASA,YAAAm0K,cAAA,SAAcwO,GACZ,IAAItgL,EACE6xK,EAAS36L,KAAKgpM,UAAUI,EAAU,CAAErlG,MAAM,IAGhD,OAFI42F,IAAQ7xK,EAAQ6xK,EAAO/oK,YAEpB9I,CACT,EAUA,YAAAugL,eAAA,SAAeD,EAAkB9+L,GAC/B,IAAMwe,EAAQ9oB,KAAK46L,cAAcwO,GACjC,OAAOtgL,EAAQA,EAAM1jB,OAAOpF,KAAKq7L,YAAY+N,EAAU9+L,IAAQ,IACjE,EAgBA,YAAA4L,OAAA,SACEqQ,EACA1c,GAFF,gBAEE,IAAAA,IAAAA,EAAA,IAEQ,IAAAq5E,EAAOljF,KAAI,GACbwoJ,GAAO,IAAAtnJ,SAAQqlB,GAAUA,EAAS,CAACA,GACjCwgH,EAAal9H,EAAI,SACnBi3H,EAAO59C,EAAG0kC,IACZ2gC,EAAyB,GAE7BC,EAAKvyI,OAAOuvE,SAAS/vE,SAAQ,SAAA8Q,GAC3B,IAAIphB,EAAQohB,EAEZ,IAAI,IAAArV,UAASqV,GAAS,CACpB,IAAMqlE,EAAOk1C,EAAKugB,QAAQ96H,IAAWu6G,EAAKogB,QAAQ36H,KACjD,IAAAqjE,aAAYm9C,IAAan7C,EAAKnmF,IAAI,CAAEshI,SAAQ,IAC7C5hI,EAAQymF,C,CAGV28D,EAAQ5jJ,KAAKQ,EACf,IAEA,IAAMmgF,EAAYz7E,EAAKy7E,WAAaijE,EAAQtyI,QAAO,SAAAq9C,GAAK,WAAA2hD,aAAY3hD,EAAZ,IAAgBxmC,UAAU,GAClFy7H,EAAUA,EAAQzjJ,KAAI,SAAAwuD,GAAK,SAAKmoC,gBAAgBnoC,EAArB,IAC3B,IAAMr0C,EAAQikE,EAAGy8D,WACX2pD,EAAa/gD,EAAQjoJ,QAAQwsB,UAAU,GACvCy8K,EAAoBvpM,KAAKwpM,eAAeF,EAAY,CACxDrqL,MAAK,EAELqmE,UAAS,IAEPujH,EAAc7oM,KAAK8oM,mBAgCvB,OA7BA5lH,EAAGl9B,MAAK,W,MAEN,GAAI/mC,IAA6B,QAApB,EAAAqqL,aAAU,EAAVA,EAAY3pD,gBAAQ,wBAAM,CACrC,IAAMhjI,EAAQ2sL,EAAW7gH,WACpBogH,EAQHA,EAAY/oH,SAASnjE,GAPrBksL,EAAc/nE,EAAKn1C,SAASrnF,IAAI,CAC9B2jH,UAAW,eACXtrG,MAAK,EACLwgI,SAAS,EACTpvB,WAAW,G,MAKN86E,IACT/nE,EAAK17H,OAAOyjM,GACZA,OAAcxjM,EAElB,IAEArF,KAAKmF,MAAMM,IAAI,CACb8iJ,QAAO,EACP+gD,WAAU,EACVC,kBAAiB,EACjBV,YAAW,EACXvjH,UAAS,IAEXtlF,KAAK2oM,UAAU9+L,GAER0+I,CACT,EAOA,YAAAv/D,YAAA,WACE,OAAOhpF,KAAKmF,MAAMxB,IAAI,aACxB,EAMA,YAAA4hF,eAAA,WACE,OAAOvlF,KAAKmF,MAAMxB,IAAI,UACxB,EAMA,YAAA8lM,mBAAA,WACE,OAAOzpM,KAAKmF,MAAMxB,IAAI,sBAAwB,EAChD,EAEA,YAAAmlM,iBAAA,WACE,OAAO9oM,KAAKmF,MAAMxB,IAAI,cACxB,EASA,YAAAq1L,gBAAA,SAAgBr8K,EAAmB9S,GACjC7J,KAAKulF,iBAAiBzgF,KAAI,SAAAwuD,GAAK,OAAAA,EAAEs1B,SAASjsE,EAAO9S,EAAlB,IAC/B,IAAM0c,EAASvmB,KAAKgpF,cAGpBziE,GAAUvmB,KAAK+oF,qBAAqBpsE,GAGpC,IAAM+sL,EAAc1pM,KAAK8oM,mBACzBviL,IAAUmjL,SAAAA,EAAa5pH,SAASv5D,EAAOkiE,WAAY5+E,GACrD,EASA,YAAA8/L,WAAA,SAAWljL,GACT,OAAOzmB,KAAKskM,QAAQ3gM,IAAI8iB,EAC1B,EAMA,YAAAmjL,cAAA,WACE,OAAO5pM,KAAKskM,QAAQx7K,KACtB,EAeA,YAAA+gL,WAAA,SAAWpjL,EAAcq6F,GACvB,OAAO9gH,KAAKskM,QAAQhgM,IAAImiB,EAAMq6F,EAChC,EAWA,YAAArlB,gBAAA,SAAgBt2F,EAAYtC,QAAA,IAAAA,IAAAA,EAAA,IAClB,IAAAqgF,EAAOljF,KAAI,GACXu+I,EAAY17I,EAAO,QAE3B,GAAIqgF,IAAM/9E,aAAK,EAALA,EAAO+vG,QAAQ,CACvB,IAAMj9F,EAASirE,EAAG0D,YACZqjC,EAAK/mC,EAAG57E,YACRkgJ,EAAOtkE,EAAG0kC,IACVv0B,EAAKnQ,EAAGu+C,UACRqoE,EAASz2G,EAAKA,EAAGzM,YAAc,CAAC,EAChC3nE,EAAShH,EAAO+pG,kBAAsC,GAAlB9+B,EAAGv/E,IAAI,SAE3C8+I,EADUt9I,EAAMxB,IAAI,WACJwgI,eAChB4lE,EAAatnD,EAAM9hJ,OACnBqpM,GAAcF,EAAO/jD,gBAAkBljJ,EAAQmnM,WAC/C11G,EAAU,CAAEm0B,QAAS,GACrB5+G,EAAO,CAAEoV,MAAK,EAAEq1E,QAAO,GACzB1I,OAAI,EAQR,GAFAq+B,EAAGtsG,OAECosL,GAAcC,EAAY,CAC5B,IAAMC,EAAU/mH,EAAGs+D,mBACnB51D,EAAO47D,EAAK7jJ,IAAI8+I,EAAOxjI,EAAOgrL,KAEhB1rD,IACZ3yD,EAAO47D,EAAKljJ,IAAIm+I,EAAOxjI,EAAOgrL,EAAS,CAAC,EAAG31G,G,MAExC,GAAIr8E,EAAOsqG,iBAAkB,CAClC,IAAMj4G,EAAKnF,EAAM6kH,UACjBp+B,EAAO47D,EAAKhe,UAAUl/H,EAAIT,MAChB00I,IAAY3yD,EAAO47D,EAAK/d,UAAUn/H,EAAI,CAAC,EAAGT,IAChD1E,EAAMkkG,GAAG,YAEXzd,EAAMnmF,IAAI,UAAW,EAAG6uF,E,CAI5B1I,IAASzmF,EAAQymF,GACjBq+B,EAAGjuG,O,CAGL,OAAO7W,CACT,EAEA,YAAAqkM,eAAA,SAAejjL,EAAqB,G,IAAA,aAAkE,CAAC,EAAC,EAAlEtH,EAAK,QAAEqmE,EAAS,YAC5CpC,EAAOljF,KAAI,GACfkN,EAAoB,GAExB,GAAIg2E,GAAM38D,EAAQ,CAChB,IAAMsrB,EAAMyzC,EACNkiE,EAAOtkE,EAAG0kC,IACVsiF,EAAShnH,EAAG2J,YAAYilG,aAAa,OAErCp+J,EAAMnN,EAAO2uF,OAAS3uF,EAASA,EAAO69F,eACtC+lF,EAAU,CAAE7lE,aAAa,EAAMr0H,OAAO,GACxCm6L,EAAW,GACXC,EAAa,GACb3+G,EAAQ,GAGRh4D,GACF02K,EAAW5iD,EAAKpmB,SAAS,WAAI1tG,EAAIs2F,UAEjCt+B,GADA2+G,EAAax4J,EAAM21G,EAAKpmB,SAASvvF,EAAIguF,eAAe8D,YAAYwmE,IAAsB,IACnEplM,OAAOqlM,KAE1BA,EAAWv4J,EAAM21G,EAAKpmB,SAAS,WAAIvvF,EAAIm4E,UAAa,GACpDqgF,EAAa7iD,EAAKpmB,SAAS76G,EAAOs5G,eAAe8D,YAAYwmE,IAC7Dz+G,EAAQ0+G,EAASrlM,OAAOslM,IAG1B,IAAMjpM,EAAMsqF,EACTz1E,QAAO,SAAA21E,GAAQ,OAAE,IAAAhC,aAAY3qE,GAAuC,EAA9B2sE,EAAKjoF,IAAI,WAAasb,CAA7C,IACflO,KAAKm5L,EAAOj7E,WACZniG,UAGH5f,EAAS9L,EAAId,MAAMc,EAAIyD,QAAQ0hB,GAAqB,E,CAGtD,OAAOrZ,CACT,EA8BA,YAAAmvI,QAAA,SAAW/xI,EAAYw2G,GACrB9gH,KAAK4xB,WAAWyqH,QAAQ/xI,EAAIw2G,EAC9B,EAOA,YAAAkH,QAAA,SAAQ19G,GACN,OAAOtK,KAAK4xB,WAAWo2F,QAAQ19G,EACjC,EAMA,YAAAymI,SAAA,WACE,OAAO/wI,KAAK4xB,WAAWm/G,UACzB,EAkBA,YAAAu5D,WAAA,SAAWhgM,EAAY,G,IAAA,aAA4B,CAAC,EAAC,EAA5B,IAAAnF,MAAAA,OAAK,IAAG,GAAC,EAAC,EAAE,IAAAm9B,KAAAA,OAAI,IAAG,GAAC,EAAC,EACpCrqB,EAAWjY,KAAI,OACjBwC,EAAOxC,KAAKgoH,QAAQ19G,GAE1B,GAAI9H,EACF,OAAO,IAAIA,EAAK8/B,KAAK,IACnBn9B,MAAO,IAAI3C,EAAK2C,MAAMA,GACtB8S,OAAM,GACHqqB,GAGT,EAOA,YAAAzuB,OAAA,WACQ,MAA2B7T,KAAzBiY,EAAM,SAAEirE,EAAE,KAAEqnH,EAAQ,WACtBn2L,EAAKm2L,GAAYA,EAASn2L,GAQhC,OAPApU,KAAKuqM,SAAW,IAAI,GAAY,CAC9Bn2L,GAAE,EACF8uE,GAAE,EACFjrE,OAAM,EACNxY,OAAQO,KACRiF,WAAYjF,KAAKy/K,UAEZz/K,KAAKuqM,SAAS12L,SAASO,EAChC,EAEA,YAAA60L,aAAA,SAAaG,GACH,IAAAlmH,EAAOljF,KAAI,GACnBkjF,GAAMA,EAAGuC,WAAW,WAAI2jH,EAAQ,sBAClC,EAEA,YAAArgH,qBAAA,SAAqBpsE,EAAmB9S,QAAA,IAAAA,IAAAA,EAAA,IAC9B,IAAAq5E,EAAOljF,KAAI,GACb2S,EAAQ,wBAGd,IAAKgK,EAAM+rE,IAAK,CACd,IAAMh1D,EAAM7pB,EAAKw7E,YAAcnC,EAAGqC,iBAC5Bg7C,EAAOngI,MAAMc,QAAQwyB,GAAOA,EAAM,CAACA,GACnC6rG,EAAW,MAAK5iH,UACf4iH,EAAS72C,IAChB,IAAM,EAAY1/D,OAAO/nB,KAAKs+H,GACxB,EAAa,CAAE5iH,MAAO4iH,GAE5BgB,EAAK9qH,SAAQ,SAAA6vE,GACXpC,EAAGp/E,QAAQ6O,EAAO2yE,EAAW,GAC7B,EAAU7vE,SAAQ,SAAApU,GAAO,OAAA6hF,EAAGp/E,QAAQ,UAAG6O,EAAK,YAAItR,GAAOikF,EAAW,EAAzC,GAC3B,G,CAEJ,EAEA,YAAAqjH,UAAA,SAAU9+L,GAAV,gBAAU,IAAAA,IAAAA,EAAA,IACR,IAAMy/L,EAAatpM,KAAKgpF,cACxB,GAAKsgH,EAAL,CAEQ,IAAA7pB,EAAYz/K,KAAI,QAClBslF,EAAYtlF,KAAKmF,MAAMxB,IAAI,aAC3B4lM,EAAoBvpM,KAAKypM,qBACzB9sL,EAAQ2sL,EAAW7gH,WACnB+hH,EAAejB,EAAkBzkM,KAAI,SAAAk3B,GAAK,OAC9CzV,OAAQyV,EACRrf,MAAOqf,EAAEysD,WAFqC,IAKhDg3F,EAAQ36K,KAAI,SAAA61L,GACVA,EAAOC,gBAAgB91L,KAAI,SAAA2hB,GACzB,EAAKgkL,SAAShkL,EAAM9J,EAAO6tL,EAAc3gM,EAC3C,GACF,IAGA41K,EAAQhqK,SAAQ,SAAAklL,GACd,IAAM7xK,EAAQ6xK,EAAOC,gBACrB9xK,EAAMrT,SAAQ,SAAAgR,GACZ,IAAMirF,EAAYjrF,EAAKg0K,kBAAkB,CACvCl0K,OAAQ+iL,EACRhkH,UAAS,EAETm6F,QAAO,IAETh5J,EAAKhhB,IAAI,UAAWisG,EACtB,IACA,IAAMg5F,EAAgB5hL,EAAMvX,MAAK,SAAAyqB,GAAK,OAAAA,EAAE01E,WAAF,IACtCipF,EAAOl1L,IAAI,UAAWilM,EACxB,GA/BuB,CAgCzB,EAEA,YAAAD,SAAA,SAAShkL,EAAW9J,EAAmB6tL,EAAqB3gM,GAA5D,WACQF,EAAO8c,EAAKimE,UACZhlF,EAAQiV,EAAMhT,GACdghM,EAASvC,GAAQ1gM,GACjBkjM,EAA6B,UAAnBnkL,EAAKuhG,UACf6iF,EAAiC,cAAnBpkL,EAAKuhG,UACnB16D,EAAM,SAAKzjD,GAAI,CAAE+uL,MAAM,IACvBkS,GAAaD,IAAgBD,EAC/B9L,EAAY8L,EAAUnkL,EAAKy4K,qBAAqBviL,GAAS,GACzDkwH,EAAWg+D,EAAcpkL,EAAK+1K,oBAAoB7/K,GAAS,CAAC,EAC5D+2F,EAAWi3F,EAASjjM,EAAQ,KAC5BswL,EAAoB,KAExB,GAAK4S,GAAyB,OAAd9L,GAAwB+L,GAA4B,OAAbh+D,EAAoB,CACzE,IAAM,EAAS+9D,EAAU,uBAAyB,sBAGlD,GAFMG,EAAaP,EAAav0L,QAAO,SAAA+lB,GAAK,OAA0B,OAA1BvV,EAAK,GAAQuV,EAAErf,MAAf,IAAgC,GAE5D,CACd+2F,EAAWq3F,EAAWpuL,MAAMhT,GAC5BquL,EAAe+S,EAAWxkL,OAC1B,IAAMtgB,EAAMwgB,EAAK,GAAQskL,EAAWpuL,OAChCiuL,EACF9L,EAAY74L,EAEZ4mI,EAAW5mI,C,OAGV,IAAK0kM,EAAQ,CAElB,IAAMI,EADNr3F,EAAW,MACLq3F,EAAaP,EAAav0L,QAAO,SAAA+lB,GAAK,OAAAosK,GAAQpsK,EAAErf,MAAMhT,GAAhB,IAAwB,MAGlE+pG,EAAWq3F,EAAWpuL,MAAMhT,GAC5BquL,EAAe+S,EAAWxkL,O,CAO9B,GAHAE,EAAK8zK,kBAAkBvC,GACvB8S,GAAarkL,EAAK8xK,mBAAqB7kF,GAAYjtF,EAAKgzK,QAAQ/lF,EAAUpmD,GAC1Es9I,GAAWnkL,EAAKo4K,YAAYC,GAAa,IACrC+L,EAAa,CACf,IAAM/hL,EAAQrC,EAAKm0K,gBAGnB,GAAIn0K,EAAK80K,aAAc,CACrB,IAAM,EAAW90K,EAAK+1K,oBAAoB7/K,EAAO,CAAE8+K,QAAQ,KAAW,CAAC,EACjE,EAAkB+O,EAAa1lM,KAAI,SAAAk3B,GAAK,OAAC,SAC1CA,GAAC,CACJrf,MAAO8J,EAAK+1K,oBAAoBxgK,EAAErf,MAAO,CAAE8+K,QAAQ,KAAW,CAAC,GAFnB,IAI9C3yK,EAAMhkB,KAAI,SAACqnH,GAAY,SAAKs+E,SAASt+E,EAAI,EAAU,EAAiBtiH,EAA7C,G,MAEvB4c,EAAKw1K,gBAAgBpvD,GAAY,CAAC,EAAGv/E,GACrC7mC,EAAKm0K,gBAAgB91L,KAAI,SAACqnH,GAAY,OAAAA,EAAGouE,kBAAkBvC,EAArB,G,CAG5C,EAEA,YAAA3oL,QAAA,W,MACE,CAACrP,KAAK4xB,WAAY5xB,KAAKy/K,SAAShqK,SAAQ,SAAAu1E,GACtCA,EAAK9kF,QACL8kF,EAAK1/E,eACP,IACa,QAAb,EAAAtL,KAAKuqM,gBAAQ,SAAEnlM,SACfpF,KAAKmF,MAAMmG,gBACXtL,KAAKyzK,MAAM7oH,QACb,EACF,EA9sBA,CAA0CkhE,G,wuFCpF1C,MAAa,aAEb,IAAMk/E,GAA6C,CACjD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEIC,GAAuE,CAC3E,GACA,GACA,GACA,KCrEF,SAAgB,G,IAAEliM,EAAC,IACjB,GAAIA,GAAKA,EAAE1I,WAA8C,WAAjC0I,EAAE1I,UAAUsP,YAAYhG,KAAmB,CACjE,IAAMnJ,EAAKuI,EAAEvI,GAIbA,EAAGmzF,KAAO,WACR,OAAO3zF,KAAKsgC,IAAI,UAAW,OAC7B,EAEA9/B,EAAGkzF,KAAO,WACR,OAAO1zF,KAAKsgC,IAAI,UAAW,QAC7B,EAEA9/B,EAAGw0C,MAAQ,WACT,IAAM5gC,EAAKpU,KAAK2D,IAAI,GAEpB,OADAyQ,GAAMA,EAAG4gC,QACFh1C,IACT,EAIAQ,EAAGuL,KAAO,SAAUS,EAAS0mB,GAC3B,OAAOlzB,KAAKyH,GAAG+E,EAAI0mB,EACrB,EAEA1yB,EAAGqM,OAAS,SAAUL,EAAS0mB,GAC7B,IAAI,IAAAxsB,UAAS8F,GAAK,CAChB,IAAK,IAAI,KAAQA,EACfA,EAAGka,eAAe,IAAS1mB,KAAKmL,IAAI,EAAMqB,EAAG,IAG/C,OAAOxM,I,CAEP,OAAOA,KAAKmL,IAAIqB,EAAI0mB,EAExB,EAEA1yB,EAAGyrF,MAAQ,SAAU/4D,GACnB,OAAOA,EAAIlzB,KAAKyH,GAAG,QAASyrB,GAAKlzB,KAAK8D,QAAQ,QAChD,EAEAtD,EAAGs6B,OAAS,SAAU5H,GACpB,OAAOA,EAAIlzB,KAAKyH,GAAG,SAAUyrB,GAAKlzB,KAAK8D,QAAQ,SACjD,EAEAtD,EAAG42J,QAAU,SAAUlkI,GACrB,OAAOA,EAAIlzB,KAAKyH,GAAG,UAAWyrB,GAAKlzB,KAAK8D,QAAQ,UAClD,EAEAtD,EAAG8T,SAAW,SAAUZ,EAAehK,EAAagP,EAAWhN,GAK7D,OAJKA,IACHA,EAAUgN,GAGL1Y,KAAKyH,GAAGiC,EAAQgK,GAAU,SAAUxI,GACzCA,EAAEwN,KAAOA,EACThN,EAAQR,EACV,GACF,EAEA1K,EAAGyrC,WAAa,WACd,IAAI73B,EAAKpU,KAAK2D,IAAI,GAEdq0F,GADJ5jF,EAAoB,GAAfA,EAAG4Q,SAAgB5Q,EAAG2yF,YAAc3yF,aACjB82L,OAAS92L,EAAK,KACtC,OAAO4jF,EAAMA,EAAIjsD,YAAc33B,EAAG63B,YAAc,CAClD,EAEAzrC,EAAG6rC,UAAY,WACb,IAAIj4B,EAAKpU,KAAK2D,IAAI,GAEdq0F,GADJ5jF,EAAoB,GAAfA,EAAG4Q,SAAgB5Q,EAAG2yF,YAAc3yF,aACjB82L,OAAS92L,EAAK,KACtC,OAAO4jF,EAAMA,EAAI5rD,YAAch4B,EAAGi4B,WAAa,CACjD,EAEA,IAAM,EAAStjC,EAAE1I,UAAU86B,OAC3B36B,EAAG26B,OAAS,SAAU2R,GACpB,IAAIhE,EAAKpZ,EAcT,OAZIod,IACFhE,EAAMgE,EAAOhE,IACbpZ,EAAOod,EAAOpd,WAGE,IAAPoZ,GACT9oC,KAAKsgC,IAAI,MAAO,UAAGwI,EAAG,YAEL,IAARpZ,GACT1vB,KAAKsgC,IAAI,OAAQ,UAAG5Q,EAAI,OAGnB,EAAO9uB,KAAKZ,KACrB,EAEA+I,EAAEjE,IAAM,SAAU8+F,EAAY2rC,GAG5B,IAFA,IAAM47D,EAAK,GAEFtrM,EAAI,EAAGA,EAAI+jG,EAAMjjG,OAAQd,IAChCsrM,EAAGxmM,KAAK4qI,EAAI3rC,EAAM/jG,GAAIA,IAGxB,OAAOsrM,CACT,EAEA,IAAM,EAAU/qM,MAAMC,UAAUwE,QAEhCkE,EAAEslK,QAAU,SAAUpoK,EAAUpF,EAAUhB,GACxC,OAAc,MAAPgB,GAAe,EAAI,EAAQD,KAAKC,EAAKoF,EAAKpG,EACnD,EAEAkJ,EAAE8mE,MAAQ,SAAUnzD,EAAUoM,GAC5B,KAAM9oB,gBAAgB+I,EAAE8mE,OACtB,OAAO,IAAI9mE,EAAE8mE,MAAMnzD,EAAKoM,GAG1B9oB,KAAKwC,KAAOka,EACZ1c,KAAK4uK,mBAAqB,WAAM,SAClC,C,CAEH,CD/CD,CAAS,CAAE7lK,EAAC,eAEZ,IAAMqiM,GAAO,CACX5jH,MAAOk5D,QAAQ/+B,IACf7vF,KAAM4uH,QAAQ5uH,KACdu5K,QAAS3qD,QAAQ38C,KACjBj5F,MAAO41I,QAAQ51I,OAGjB,eA4IE,WAAY48G,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,cAAO,KA3HT,EAAA4jF,QAAS,EACT,EAAAC,gBAAiB,EACjB,EAAA32E,WAAY,EA0HV,EAAK3P,QAAUyC,EACP,IAAAzvG,EAAW,EAAI,OACvB,EAAKxS,IAAI,SAAUiiH,GACnB,EAAKjiH,IAAI,UAAW,IACpB,EAAKA,IAAI,SAAU,IACnB,EAAKA,IAAI,YAAa,IACtB,EAAKA,IAAI,WAAY,IAAI,GACzB,EAAKA,IAAI,QAASwS,EAAOuzL,UACjB,IAAAp3L,EAAY6D,EAAM,GAAd0pG,EAAQ1pG,EAAM,IACpBwzL,GAAgB,IAAR9pF,GAAe,IAAA1gH,MAAKmqM,KAAQ,IAAAlqM,SAAQygH,GAAOA,EAAM,G,OAC/D,IAAAr/B,SAAQ,EAAM,uBAEVluE,GAAM6D,EAAOspG,cACftpG,EAAOotE,WAAajxE,EAAG4yE,WAGzB,EAAK0kH,UAAYt3L,GACb,IAAAqC,SAAQrC,EAAGpN,YAAY2O,QAAO,SAACvR,EAAK+O,GAElC,OADA/O,EAAI+O,EAAKssC,UAAYtsC,EAAKm4D,UACnBlnE,CACT,GAAG,CAAC,GACJ,GAGA6T,EAAOotE,aAAeptE,EAAO0zL,cAC/B1zL,EAAO0zL,YAAc,CAAExgF,MAAO,CAAC,CAAE7lC,UAAWrtE,EAAOotE,eAIrD2lH,GAAKv1L,SAAQ,SAAAm2L,GAAU,SAAKC,WAAWD,EAAhB,IACvBX,GAAax1L,SAAQ,SAAAm2L,GAAU,SAAKE,mBAAmBF,EAAxB,IAC/B,EAAKnkM,GAAG,0BAA2B,EAAKs0I,iBAAkB,GAC1D,EAAKt0I,GAAG,sBAAuB,EAAKskM,cAAe,GACnD,EAAKtkM,GAAG,sCAAuC,EAAKukM,YAAa,GACjEP,EAAMh2L,SAAQ,SAAAvK,GAAK,SAAK+gM,UAAU/gM,EAAf,IAGnB,CAAC,CAAEuU,KAAM,2BAA4BC,GAAI,sBAAuBjK,SAAQ,SAAA9C,GACtE,IAAMu5L,EAAYv5L,EAAM8M,KAClB0sL,EAAUx5L,EAAM+M,GACtB,EAAKlV,SAAS,EAAM0hM,GAAW,W,IAAC,sDAC9B,EAAKpoM,QAAO,MAAZ,EAAI,IAASqoM,GAAYzrM,GAAI,IAC7B,EAAK+kF,WAAW,qBAAcymH,EAAS,6CAAqCC,EAAO,KACrF,GACF,I,CACF,CA4yBF,OAv+ByC,QACvC,YAAArlM,SAAA,WACE,MAAO,CACLslM,QAAS,EACTp4I,SAAU,EACVq4I,UAAW,KACX7kE,MAAO,EACPuU,iBAAkB,KAClBuwD,cAAe,KACflkF,aAAc,EACdmkF,UAAW,GACXC,QAAS,GACTC,OAAQ,GACR13B,OAAQ,CAAC,EACTnoD,OAAQ,GAEZ,EAYA,sBAAI,wBAAS,C,IAAb,WACE,OAAO5sH,KAAK2D,IAAI,YAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO3D,KAAK2D,IAAI,WAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,mBAAI,C,IAAR,WACE,OAAO3D,KAAK2D,IAAI,OAClB,E,gCAEA,sBAAI,oBAAK,C,IAAT,WACE,OAAO3D,KAAK2D,IAAI,QAClB,E,gCAEA,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO3D,KAAK2D,IAAI,WAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,oBAAK,C,IAAT,WACE,OAAO3D,KAAK2D,IAAI,QAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,0BAAW,C,IAAf,WACE,OAAO3D,KAAK2D,IAAI,cAClB,E,gCAEA,sBAAI,0BAAW,C,IAAf,WACE,OAAO3D,KAAK2D,IAAI,cAClB,E,gCAEA,sBAAI,6BAAc,C,IAAlB,WACE,OAAO3D,KAAK2D,IAAI,iBAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,yBAAU,C,IAAd,WACE,OAAO3D,KAAK2D,IAAI,gBAClB,E,gCAEA,sBAAI,kBAAG,C,IAAP,WACE,OAAO3D,KAAK2D,IAAI,cAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAEA,sBAAI,wBAAS,C,IAAb,WACE,OAAO3D,KAAK2D,IAAI,kBAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,iBAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,gBAClB,E,gCAEA,sBAAI,oBAAK,C,IAAT,WACE,OAAO3D,KAAK2D,IAAI,cAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAmDA,YAAAqoM,YAAA,WACMhsM,KAAK2D,IAAI,cAAgB3D,KAAK2D,IAAI,iBAAmB3D,KAAK2D,IAAI,UAChE3D,KAAKyF,IAAI,SAAS,EAEtB,EAEA,YAAAopF,aAAA,WACE,OAAO7uF,KAAKiY,OAAO7D,EACrB,EAEA,YAAA63L,UAAA,SAAUt5L,GAER3S,KAAKwK,SAASxK,KAAM,cAAO2S,GAASy4L,GAAKz4L,GAC3C,EAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3S,KAAKilH,OACd,E,gCAQA,YAAAr+B,UAAA,SAGEngE,GACQ,IAAAxO,EAAWjY,KAAI,OAEvB,OAAO,IAAA4pF,aAAYnjE,GAAQxO,EAASA,EAAOwO,EAC7C,EAMA,YAAAimL,YAAA,sBACQ,EAA4B1sM,KAAKiY,OAA/BupG,EAAW,cAAEmrF,EAAQ,WACvBt5G,EAAKrzF,KAAK2D,IAAI,kBAGpB3D,KAAKysM,OAAO3/K,UAAUrX,SAAQ,SAAA+sH,GAAO,OAAAA,EAAIlX,QAAJ,IAGrC,IAAMpG,EAAW,WACf,EAAKsnF,QAAQ/2L,SAAQ,SAAA+sH,GAAO,OAAAA,EAAItd,UAAYsd,EAAItd,SAAS,EAA7B,IAC5B,EAAKz/G,IAAI,YAAa,EACxB,EAEIknM,GACFnrF,GAAexhH,KAAK4sM,SAASprF,GAC7B0D,KAGAllH,KAAK6sM,gBAAkBtlL,YAAW,iD,gEAC5Bi6F,GACFxhH,KAAK4sM,SAASprF,G,OADZ,M,YAEOnuB,aAAE,EAAFA,EAAI2/D,eAAJ,Y,iBAEP,O,sBAAA,GAAMhzJ,KAAKqjG,Q,cAAX,S,+BAEArjG,KAAKixI,SAAS,G,oBAGlB/rB,I,cAMJ,IAAMi4B,EAAU,IAAI2vD,EAAY,CAC9BrrF,gBAAgB,EAChB6B,gBAAgB,EAChBh7G,aAAa,IAGf,CAAC,cAAe,UAAUmN,SAAQ,SAAApU,GAAO,OAAA87I,EAAQx5I,IAAItC,GAAKiqH,QAAjB,IACzCtrH,KAAKyF,IAAI,UAAW03I,EACtB,EAOA,YAAA4uD,cAAA,sBACQgB,EAAM/sM,KAAK2D,IAAI,kBACfkK,EAAU7N,KAAKgtM,gBACrBhtM,KAAKitM,WAAaxlL,aAAaznB,KAAKitM,WACpCjtM,KAAKitM,UAAY1lL,YAAW,WAAM,SAAKzjB,QAAQ,SAAb,IAE9B9D,KAAKiY,OAAOwpG,iBACd1hH,OAAOmtM,eAAiBr/L,EAAU,WAAM,UAAO,MAG7Ck/L,EAAIv7C,cAAgB3jJ,GAAWk/L,EAAIr7C,sBACrC1xJ,KAAKu8F,QAAQmyD,OAAM,SAAAv8C,GAAO,SAAK8+B,SAAS9+B,EAAd,GAE9B,EAKQ,YAAA05F,WAAR,SAAmBsB,GACjB,IAAMC,EAAM,IAAID,EAAWntM,MAI3B,OAHAA,KAAKyF,IAAI2nM,EAAIzjM,KAAMyjM,GACnBA,EAAI9hF,QAAUtrH,KAAKysM,OAAO9nM,KAAKyoM,GAC/BptM,KAAKwsM,QAAQ7nM,KAAKyoM,GACXA,CACT,EAEQ,YAAAtB,mBAAR,SAA2BqB,GACzB,IAAMC,EAAMptM,KAAK6rM,WAAWsB,GAE5B,OADAntM,KAAKusM,UAAU5nM,KAAKyoM,GACbA,CACT,EAQA,YAAAprJ,KAAA,SAAKugC,EAAgB14E,QAAA,IAAAA,IAAAA,EAAA,IACf7J,KAAK40H,YACP50H,KAAKuH,WAAWsC,GAChB7J,KAAK40H,WAAY,GAEnB50H,KAAKyF,IAAI,SAAU88E,EACrB,EAEA,YAAA9vB,UAAA,WACE,OAAOzyD,KAAK2D,IAAI,SAClB,EAUA,YAAA0pM,cAAA,SAAcloM,EAAYc,EAAUqnD,GAApC,gBAAoC,IAAAA,IAAAA,EAAA,IAE9BttD,KAAKsrM,QAAUh+I,EAAIk7D,WAAal7D,EAAIm7D,SAAWn7D,EAAIu7B,aAAe7oF,KAAK2D,IAAI,WAI/E3D,KAAKstM,eAAiB7lL,aAAaznB,KAAKstM,eACxCttM,KAAKstM,cAAgB/lL,YAAW,WAC9B,IAAM28G,EAAO,EAAK8oE,iBAAmB,EACnBnjM,GAASyjD,EAAG,MAAR,GAAKA,EAArB,YACN,EAAK7nD,IAAI,eAAgBy+H,EAAO,EAAGr6H,EACrC,GAAG,GACL,EAEA,YAAA0+G,UAAA,SAAU1+G,GACR7J,KAAKqtM,cAAc,EAAG,EAAGxjM,EAC3B,EASA,YAAAkyI,iBAAA,SAAiBx5D,EAAa+C,EAAgBziF,GAC5C,IAAMqL,EAAOlO,KAAKwO,SAAS,oBAC3BN,GAAQlO,KAAK8D,QAAQ,sBAAuBoK,EAAMrL,GAClDyiF,GAAatlF,KAAK8D,QAAQ,oBAAqBwhF,EAAWziF,EAC5D,EAOA,YAAAmmF,YAAA,WACE,OAAOhpF,KAAKg0D,SAASwwD,eACvB,EAOA,YAAAj/B,eAAA,WACE,OAAOvlF,KAAKg0D,SAASywD,eACvB,EAQA,YAAA/lB,YAAA,SAAYtqF,EAA8BvK,GAA1C,gBAA0C,IAAAA,IAAAA,EAAA,IAChC,IAAA8I,EAAU9I,EAAI,MAChB+kB,EAAUjc,IAAUA,EAAMic,SAAWjc,EAAM2jD,SACzCC,GAAa5jD,GAAS,CAAC,GAAC,SAC1B08G,IAAO,IAAAnuH,SAAQkT,GAAMA,EAAK,CAACA,IAAKtP,KAAI,SAAAsP,GAAM,WAAA2xE,UAAS3xE,EAAI,aAAb,IAC1C4/C,EAAWh0D,KAAKulF,iBAChBgoH,EAASvtM,KAAK4mF,YAAY07B,kBAK1BkrF,GAAW,IAAAtsM,SAAQkT,GACzBo5L,GAAYxtM,KAAK0mJ,eAAe1yF,EAAS/9C,QAAO,SAAA7N,GAAK,QAAC,IAAA1D,UAAS2qH,EAAKjnH,EAAf,KAErDinH,EAAI55G,SAAQ,SAAArB,GACV,IAAIjP,GAAQ,IAAA4gF,UAAS3xE,OAAI/O,GAEzB,GAAIF,IACF,EAAKrB,QAAQ,0BAA2BqB,EAAO0E,IAG1C1E,EAAMxB,IAAI,eAAiBkG,EAAKm7E,OAAO,CAC1C,IAAIn7E,EAAK6uF,SAKP,OAHA,IADA,IAAI,EAASvzF,EAAMoZ,SACZ,IAAW,EAAO5a,IAAI,eAAe,EAAS,EAAO4a,SAC5DpZ,EAAQ,C,CAQd,GAAIypB,GAAW2+K,EACb,OAAO,EAAKE,eAAetoM,GACtB,GAAIoxD,GAAYg3I,EAAQ,CAC7B,EAAKlqB,eAAe,EAAK1/K,IAAI,UAAUs0F,aACvC,IAEI,EAAyB,EAFvB,EAAO9yF,EAAMF,WACb,EAAQE,EAAMrE,QAkBpB,GAdA,EAAKykF,iBAAiB9vE,SAAQ,SAAAo8B,GAC5B,IAAM67J,EAAU77J,EAAI5sC,WACd0oM,EAAW97J,EAAI/wC,QACjB4sM,IAAY,IACVC,EAAW,EAEb,GAAM,IAAA/jH,aAAY,GAAO+jH,EAAWzhM,KAAKC,IAAI,EAAKwhM,GACzCA,EAAW,IAEpB,GAAM,IAAA/jH,aAAY,GAAO+jH,EAAWzhM,KAAKiE,IAAI,EAAKw9L,IAGxD,MAEK,IAAA/jH,aAAY,GACf,KAAO,IAAQ,GACb,EAAK0/D,YAAY,EAAK7lJ,GAAG,IACzB,IAIJ,KAAK,IAAAmmF,aAAY,GACf,KAAO,IAAQ,GACb,EAAK0/D,YAAY,EAAK7lJ,GAAG,IACzB,IAIJ,OAAO,EAAK6lJ,YAAYnkJ,E,EAGzBqoM,GAAY,EAAK9mD,eAAe1yF,EAAS/9C,QAAO,SAAA7N,GAAK,OAAAA,IAAMjD,CAAN,KACtD,EAAKmkJ,YAAYnkJ,EAAO0E,GAChB1E,CACV,GACF,EAQA,YAAAmkJ,YAAA,SAAYl1I,EAA6BvK,GAAzC,gBAAyC,IAAAA,IAAAA,EAAA,IACvC,IAAM1E,GAAQ,IAAA4gF,UAAS3xE,EAAI,gBACZ,IAAAlT,SAAQiE,GAASA,EAAQ,CAACA,IAElCsQ,SAAQ,SAAAtQ,GACL,IAAA6uD,EAAa,EAAI,SAEtB7uD,GACAA,EAAMxB,IAAI,gBAEXwB,EAAM6rG,UAAUz/F,MAAK,SAACgN,GAAsB,OAAAy1C,EAASswD,aAAa/lG,EAAtB,MAI9C1U,EAAK8qK,aAAe,EAAKjuB,eAAevhJ,EAAO0E,GAE5BmqD,EAASywD,gBAAgBxuG,QAAO,SAAAyd,GAAO,WAAAhvB,UAASgvB,EAAIs9E,UAAW7rG,EAAxB,IAC/CsQ,SAAQ,SAAAie,GAAO,SAAKgzH,eAAehzH,EAAK7pB,EAAzB,IAE1BmqD,EAASqwD,aAAal/G,EAAO0E,GAC7B1E,GAAS,EAAKrB,QAAQ,mBAAoBqB,EAAO0E,GACnD,GACF,EAQA,YAAA68I,eAAA,SAAetyI,EAA6BvK,QAAA,IAAAA,IAAAA,EAAA,IAC1C7J,KAAKg0D,SAAS0wD,iBAAgB,IAAA3+B,UAAS3xE,EAAI,cAAIvK,EACjD,EAQA,YAAA4jM,eAAA,SAAer5L,EAA6BvK,GAA5C,gBAA4C,IAAAA,IAAAA,EAAA,IAC1C,IAAM1E,GAAQ,IAAA4gF,UAAS3xE,EAAI,gBACZ,IAAAlT,SAAQiE,GAASA,EAAQ,CAACA,IAElCsQ,SAAQ,SAAAtQ,GACT,EAAK6uD,SAASswD,aAAan/G,GAC7B,EAAKuhJ,eAAevhJ,EAAO0E,GAE3B,EAAKy/I,YAAYnkJ,EAAO0E,EAE5B,GACF,EAQA,YAAA4uF,WAAA,SAAWrkF,EAASvK,GAClB,QADkB,IAAAA,IAAAA,EAAA,KACbuK,EAAI,OAAOpU,KAAKyF,IAAI,mBAAoB,IAE7C,IAAM+G,EAAK,kBACPrH,GAAQ,IAAA4gF,UAAS3xE,OAAI/O,GAEzB,GAAKF,EAAL,CAMA,GAJA0E,EAAK8qK,aAAe30K,KAAKyF,IAAI,mBAAoB,IACjDzF,KAAK8D,QAAQ,UAAG0I,EAAE,WAAWrH,EAAO0E,IAG/B1E,EAAMxB,IAAI,aAAc,CAC3B,IAAIkG,EAAK6uF,UAAa7uF,EAAKm7E,MAKzB,OAHA,IADA,IAAI,EAAS7/E,GAASA,EAAMoZ,SACrB,IAAW,EAAO5a,IAAI,cAAc,EAAS,EAAO4a,SAC3DpZ,EAAQ,C,CAMP0E,EAAKm7E,QACRhlF,KAAKyF,IAAI,mBAAoBN,EAAO0E,GACpC7J,KAAK8D,QAAQ0I,EAAIrH,EAAO0E,GAlBR,CAoBpB,EAEA,YAAA+jM,WAAA,WACE,OAAO5tM,KAAK2D,IAAI,mBAClB,EASA,YAAAy4I,cAAA,SAAc/2D,EAA0B/3B,GACtC,YADsC,IAAAA,IAAAA,EAAA,IAC/BttD,KAAKy0F,WAAW2nD,cAAc/2D,EAAY/3B,EACnD,EAOA,YAAA4uF,cAAA,WACE,IAAMxoH,EAAM1zB,KAAKy0F,WACX90E,EAAK3f,KAAK6sF,YAEhB,GAAKn5D,GAAQ/T,EAAb,CAEA,IAAM6rE,EAAM93D,EAAIwoH,gBAChB,OAAOv8H,EAAG2yK,QAAQ9mG,EAAK,OAHA,CAIzB,EASA,YAAA1L,SAAA,SAASnjE,EAAY2wC,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAMwzE,EAAO9gI,KAAK4nH,IAGlB,OAFAkZ,EAAKp4H,MAAM4kD,GACXwzE,EAAKn1C,SAASrnF,IAAIqY,EAAO2wC,GAClBttD,IACT,EAQA,YAAA4oF,SAAA,SAASjsE,EAAY9S,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAMzF,EAAMpE,KAAKyoF,WAAWnkF,IAAIqY,EAAO9S,GACvC,OAAO,IAAA3I,SAAQkD,GAAOA,EAAM,CAACA,EAC/B,EAOA,YAAAqkF,SAAA,WACE,OAAOzoF,KAAK4nH,IAAIj8B,QAClB,EAOA,YAAA8+D,SAAA,SAAS/iJ,GAEP,OADA1H,KAAKyF,IAAI,QAASiC,GACX1H,IACT,EAMA,YAAA2/I,SAAA,WACE,OAAO3/I,KAAK2D,IAAI,UAAY,EAC9B,EAQA,YAAA2pF,QAAA,SAAQzjF,QAAA,IAAAA,IAAAA,EAAA,IACE,IAAAoO,EAAWjY,KAAI,OACfutF,EAAat1E,EAAM,SACrBu5K,EAAKv5K,EAAOoqG,SAAWriH,KAAK6tM,MAAMhkM,GAAQ,GAC1C6pB,EAAM7pB,EAAKy7E,WAAatlF,KAAKy0F,WAAW2vB,eAC1CluC,EAAOxiD,EACP1zB,KAAK6sF,YAAYylG,QAAQ5+J,EAAK,OAAQ,SACjC65D,GACA1jF,IAEL,GAEJ,OADAqsE,GAAQs7G,EAAK,kBAAWA,EAAE,cAAc,EAE1C,EAQA,YAAAhkG,OAAA,SAAO3jF,QAAA,IAAAA,IAAAA,EAAA,IACG,IAAAoO,EAAWjY,KAAI,OACfytF,EAAYx1E,EAAM,QACpB61L,EAAYjkM,EAAKkkM,eACjB/pF,GAAoB,IAAAp6B,aAAY//E,EAAKm6G,kBAA4C/rG,EAAO+rG,iBAA/Bn6G,EAAKm6G,iBAC9D8c,EAAO9gI,KAAK4nH,IACZp8B,EAAM3hF,EAAKy7E,WAAatlF,KAAKy0F,WAAW2vB,eACxC4pF,EAAWF,EAAmC,GAAvB71L,EAAO4pG,aAC9BvhF,EACJkrD,GACAxrF,KAAK6sF,YAAYylG,QAAQ9mG,EAAK,MAAO,OACnCs1C,KAAI,EACJ9c,iBAAgB,GACbv2B,GACA5jF,IAEP,OAAO2hF,EAAO3hF,EAAKgtE,KAAOv2C,EAAM0tK,EAAU1tK,EAAO,EACnD,EAOA,YAAAutK,MAAA,SAAMhkM,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAI2hF,EAAM3hF,EAAKy7E,WAAatlF,KAAKy0F,WAAW87B,aAC5C,OAAO/kC,EAAMxrF,KAAK6sF,YAAYylG,QAAQ9mG,EAAK,MAAMlD,OAAS,EAC5D,EAMM,YAAAiU,MAAN,SAAY15F,G,kGAEV,OADM6V,EAAO1Y,KAAKiuM,YAClB,GAAMjuM,KAAKkuM,QAAQ3xG,MAAM7jF,EAAM7V,I,OAE/B,OAFA,SACA7C,KAAKmuM,kBACE,CAAP,EAAOz1L,G,QAOH,YAAA2qF,KAAN,SAAWxgG,G,kGACM,SAAM7C,KAAKkuM,QAAQ7qG,KAAKxgG,I,OAEvC,OAFMqK,EAAS,SACflN,KAAK4sM,SAAS1/L,GACP,CAAP,EAAOA,G,QAGT,YAAA+gM,UAAA,WACE,IAAI/gM,EAAS,CAAC,EAERkhM,EAAapuM,KAAKy3I,aAMxB,OALA22D,GAAcA,EAAWtqM,QAAQ,eAAgB,CAAE2kH,SAAS,IAE5DzoH,KAAKusM,UAAU92L,SAAQ,SAAAjE,GACrBtE,EAAS,SAAKA,GAAWsE,EAAE+qF,MAAM,GACnC,IACO3jF,KAAK3L,MAAM2L,KAAKC,UAAU3L,GACnC,EAEA,YAAA0/L,SAAA,SAASl0L,GAKP,YALO,IAAAA,IAAAA,EAAA,KACF,IAAAq8F,YAAWr8F,KACd1Y,KAAKusM,UAAU92L,SAAQ,SAAAhW,GAAU,OAAAA,EAAOiJ,OAAP,IACjC1I,KAAKusM,UAAU92L,SAAQ,SAAAhW,GAAU,OAAAA,EAAO4jG,KAAK3qF,EAAZ,KAE5BA,CACT,EAOA,YAAAi0G,eAAA,WACE,IAAMhjH,EAAO3J,KAAK2D,IAAI,UACtB,OAAO3D,KAAKqsH,QAAQ1oH,IAAIgG,EAC1B,EAOA,YAAAksF,WAAA,SAAWhsF,QAAA,IAAAA,IAAAA,EAAA,IACT,IAAM2sF,EAAUx2F,KAAK2D,IAAI,YAAYA,IAAI3D,KAAKiY,OAAO8pG,gBAChDvrB,IAAWx2F,KAAKurM,iBACrB/0G,EAAQ74E,KAAK3d,KAAMA,KAAM6J,GACzB2sF,EAAQtU,IAAIliF,KAAMA,KAAM6J,GACxB7J,KAAKurM,gBAAiB,EACxB,EAOA,YAAAh2G,YAAA,SAAY1rF,QAAA,IAAAA,IAAAA,EAAA,IACV,IACM2sF,EADWx2F,KAAK2D,IAAI,YACDA,IAAI3D,KAAKiY,OAAO8pG,gBACpCvrB,GAAYx2F,KAAKurM,iBACtB/0G,EAAQ74E,KAAK3d,KAAMA,KAAM6J,GACzB7J,KAAKurM,gBAAiB,EACxB,EAMA,YAAAntG,cAAA,SAAcv0F,QAAA,IAAAA,IAAAA,EAAA,IACZ7J,KAAKyF,IAAI,eAAgB,MACzBzF,KAAKyF,IAAI,eAAgBzF,KAAKwkF,OAAOisC,aACrC5mH,EAAKqnH,OAASlxH,KAAK8D,QAAQ,qBAC7B,EAQA,YAAAu/K,eAAA,SAAerrF,G,MAEG,QAAhB,GADQA,GAAOj4F,QACbiwB,sBAAc,SAAE0vB,iBACpB,EAMA,YAAA8hG,gBAAA,WACE,IAAMvpI,EAASjY,KAAKiY,OACd20G,EAAS5sH,KAAK2sH,iBACd1oH,EAAYgU,EAAOgqG,eACnBk9D,EAAUlnK,EAAO+pG,kBACjB77E,EAAQymF,GAAUA,EAAOjpH,IAAI,cACnC,OAAOipH,GAAUzmF,IAAUg5I,EAAU,WAAIl7K,EAAS,aAAKkiC,EAAK,KAAM,EACpE,EAMA,YAAAoqF,WAAA,WACE,OAAOvwH,KAAKy0F,WAAW87B,YACzB,EAEA,YAAAqI,gBAAA,SAAgBtgC,GACd,OAAOt4F,KAAKyF,IAAI,eAAgB6yF,EAClC,EAEA,YAAAsjC,gBAAA,WACE,OAAO57H,KAAK2D,IAAI,eAClB,EAEA,YAAAgqH,qBAAA,WACE,OAAQ3tH,KAAK47H,mBAAqB,CAAC,GAAGz2H,KACxC,EAEA,YAAAg1F,QAAA,SAAQD,GAEN,OADcl6F,KAAKiY,OAAO0qG,OAAS,CAAC,GACvBzoB,IAAS,EACxB,EAOA,YAAA8yG,cAAA,WACE,OAAOhtM,KAAK2D,IAAI,eAClB,EAEA,YAAAwqM,gBAAA,WACE,OAAOnuM,KAAKyF,IAAI,eAAgB,EAClC,EAEA,YAAA65F,eAAA,WACE,OAAOt/F,KAAKwkF,OAAO8a,gBACrB,EAEA,YAAAk1B,kBAAA,WACE,OAAOx0H,KAAKwkF,OAAOgwC,mBACrB,EAEA,YAAAqU,YAAA,SAAYnhI,GACV,OAAO1H,KAAKyF,IAAI,QAASiC,EAC3B,EAEA,YAAAk1F,YAAA,SAAYtX,GAEV,OADaA,aAAS,EAATA,EAAWsX,gBAAiB58F,KAAK2D,IAAI,UACnC,EACjB,EAEA,YAAA2vD,EAAA,W,IAAE,sDACA,IAAM6vD,EAAOnjH,KAAK2D,IAAI,QACtB,OAAOw/G,aAAI,EAAJA,EAAM7vD,EAAC,MAAP6vD,EAAWziH,EACpB,EAMA,YAAA4vH,eAAA,SAAehrC,GACb,MAAuC,aAAhCtlF,KAAK48F,YAAYtX,EAC1B,EAKA,YAAA+oH,WAAA,sBACUp2L,EAAiBjY,KAAX,OAAEsiC,EAAStiC,KAAL,KACduiF,EAASviF,KAAKyyD,YAEZ,GAAiBx6C,EAAOq2L,UAAY,CAAC,GAAC,QAAtCz5I,OAAO,IAAG,KAAE,EACdsoF,EAAUn9I,KAAK2D,IAAI,WACzB3D,KAAK6sM,iBAAmBplL,aAAaznB,KAAK6sM,iBAC1C1vD,SAAAA,EAASkxD,aACTruM,KAAKsL,gBACLtL,KAAKu1F,cACLv1F,KAAKwsM,QACFlsM,QACAwsB,UACArX,SAAQ,SAAA0M,GAAO,OAAAA,EAAI9S,SAAJ,IAClBizB,GAAQA,EAAKl9B,SACbpF,KAAK0I,MAAM,CAAEkF,QAAQ,IACrB5N,KAAK40H,WAAY,EACjB,CAAC,UAAW,OAAQ,sBAAuB,UAAW,cAAcn/G,SAElE,SAAA5V,GAAK,OAAC,EAAKA,GAAK,CAAC,CAAZ,IAEPg1D,EAAQjwD,OAAOiwD,EAAQhwD,QAAQ09E,GAAS,IAExC,IAAAic,YAAY,gBAAEvmF,EAAO7D,IAAI49B,QAAQxqC,KAAKxH,KAAK0rM,UAC7C,EAEA,YAAAj0D,WAAA,WACE,IAAMrzI,EAAMpE,KAAK2D,IAAI,WACrB,OAAQS,GAAOA,EAAIe,YAAUE,CAC/B,EAEA,YAAAmzI,WAAA,SAAW9wI,GAET,OADA1H,KAAKyF,IAAI,UAAWiC,GACb1H,IACT,EAEA,YAAA85F,UAAA,WACE,QAAS95F,KAAK2D,IAAI,UACpB,EAEA,YAAAg+G,IAAA,SAAIm/D,EAAaj3K,QAAA,IAAAA,IAAAA,EAAA,IACP,IAAAi6F,EAAwBj6F,EAAI,GAAxB,EAAoBA,EAAI,MAAxB2gB,OAAK,IAAG,UAAO,EAI3B,GAHAxqB,KAAK8D,QAAQ,MAAOg9K,EAAKj3K,GACzB2gB,GAASxqB,KAAK8D,QAAQ,cAAO0mB,GAASs2J,EAAKj3K,GAEvCi6F,EAAI,CACN,IAAMyqG,EAAQ,cAAOzqG,GACrB9jG,KAAK8D,QAAQyqM,EAAOztB,EAAKj3K,GACzB2gB,GAASxqB,KAAK8D,QAAQ,UAAGyqM,EAAK,YAAI/jL,GAASs2J,EAAKj3K,E,CAEpD,EAEA,YAAA2kM,QAAA,SAAQ1tB,EAAaj3K,GACnB7J,KAAK2hH,IAAIm/D,EAAK,SAAKj3K,GAAI,CAAE2gB,MAAO,SAClC,EAEA,YAAAi7D,WAAA,SAAWq7F,EAAaj3K,GACtB7J,KAAK2hH,IAAIm/D,EAAK,SAAKj3K,GAAI,CAAE2gB,MAAO,YAClC,EAEA,YAAAymH,SAAA,SAAS6vC,EAAaj3K,GACpB7J,KAAK2hH,IAAIm/D,EAAK,SAAKj3K,GAAI,CAAE2gB,MAAO,UAClC,EAEA,YAAAikL,oBAAA,SAAoBr6L,EAASvK,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAAoO,EAAWjY,KAAI,OACf,EAAqBiY,EAAM,YAA3Bi7J,OAAW,IAAG,GAAC,EAAC,EAClBF,EAAa/6J,EAAO7D,GACpBmvE,EAAOtrE,EAAOisE,YAGpB,OAAO,gBAAE9vE,GAAIqlJ,SAAS,OACpBb,mBAAoB,UAAGr1E,EAAI,kBAAUA,EAAI,aACzCqO,SAAUohF,GAAc,OACxB5a,iBAAkB,EAClBN,aAAa,EACbiB,QAAS,GACTD,WAAW,EACXR,WAAY,KACZD,WAAY,KACTxuJ,GACAqpK,GAEP,EAOA,YAAAltH,KAAA,SAAKupF,GACHvvI,KAAKsrM,QAAS,EACd,IAAMrhF,EAAKjqH,KAAKsH,YAChB2iH,EAAKA,EAAGjkE,KAAKupF,GAAOA,IACpBvvI,KAAKsrM,QAAS,CAChB,EAUA,YAAA5yL,KAAA,SAAKtE,EAASzK,EAAcjC,GAC1B,IAAMgnM,EAAU,YAMhB,GAJKt6L,EAAGs6L,KACNt6L,EAAGs6L,GAAW,CAAC,IAGb,IAAA9kH,aAAYliF,GACd,OAAO0M,EAAGs6L,GAAS/kM,GAEnByK,EAAGs6L,GAAS/kM,GAAQjC,CAExB,EACF,EAv+BA,CAAyC,M,ugBE/EzC,eACE,WAAYvC,GAAZ,MACE,YAAM,CAAEA,MAAK,KAAG,KAEV,EAA0BA,EAAM6B,WAA9B+qF,EAAM,SAAEzqF,EAAW,c,OAC3BnC,EAAMm9B,KAAO,EACbn9B,EAAM0G,KAAK,gBAAgB,WACzBkmF,EAAO7yC,SACP6yC,EAAOy+F,iBACPlpL,EAAYoB,QACZ6e,YAAW,WACTpiB,EAAMrB,QAAQ,OAAQqB,EAAMxB,IAAI,WAChCwB,EAAMgpM,iBACR,GACF,I,CACF,CAoCF,OAnDwC,QAiBtC,YAAAt6L,OAAA,sBACUF,EAAe3T,KAAZ,IAAEmF,EAAUnF,KAAL,MACZ,EAAqBmF,EAAM6B,WAAzB+qF,EAAM,SAAEvN,EAAM,SACdvsE,EAAoB9S,EAAK,OAAjBqnM,EAAYrnM,EAAK,QAC3B8+E,EAAMhsE,EAAOisE,YACbyqH,EAAa,CAAC,UAAG1qH,EAAG,YACzBhsE,EAAOisG,UAAYyqF,EAAWhqM,KAAK,UAAGs/E,EAAG,kBAAUA,EAAG,cAGvD,IAAM2qH,GAAS,gBAAE32L,EAAO7D,IAAM,eAAQ6D,EAAOwoC,YAC7CxoC,EAAOyqG,WAAY,IAAAzP,cAAah7F,EAAOyqG,SAAU,CAAElZ,QAAQ,EAAM4J,SAAS,IAC1Ez/F,EAAIq+B,QAGA/5B,EAAOkuB,OAAOyoK,EAAOtuK,IAAI,QAASroB,EAAOkuB,OAEzCluB,EAAO6a,QAAQ87K,EAAOtuK,IAAI,SAAUroB,EAAO6a,QAE/Cnf,EAAIq/E,OAAOxO,EAAO3wE,UAClBF,EAAIq/E,OAAOjB,EAAOl+E,UAGlB,IACMg7L,EADU1pM,EAAMxB,IAAI,WACMA,IAAI,UAAUkQ,SAS9C,OARAg7L,EAAgBlyL,MAAMC,QAAU,OAChCjJ,EAAIq/E,OAAO67G,GAEXl7L,EAAInM,KAAK,QAASmnM,EAAWl/I,KAAK,MAElCm/I,EAAOtpL,SAAS,UAAG2+D,EAAG,gBAAejyC,QAAQghD,OAAOr/E,GACpD64L,EAAQ/2L,SAAQ,SAAAwwG,GAAM,OAAAA,EAAGguB,YAAchuB,EAAGguB,WAAW,EAA/B,IAEfj0I,IACT,EACF,EAnDA,CAAwC,M,24DCyHxC,cAOE,WAAYiY,EAA2BpO,G,WAA3B,IAAAoO,IAAAA,EAAA,SAA2B,IAAApO,IAAAA,EAAA,IA8rBvC,KAAAqsE,KAAOA,EA7rBLl2E,KAAKiY,OAAS,YACT,GACAA,GAAM,CACTksE,aAAgC,QAAlB,EAAAlsE,EAAOisE,mBAAW,QAAI,gBAEtClkF,KAAKkjF,GAAK,IAAI,GAAYljF,KAAKiY,QAC/BjY,KAAK+I,EAAIc,EAAKd,EACd/I,KAAKkjF,GAAGlhC,KAAKhiD,MACbA,KAAKuiF,OAASviF,KAAKkjF,EACrB,CAqrBF,OAnrBE,sBAAI,qBAAM,C,IAAV,WACE,OAAOljF,KAAKkjF,GAAGjrE,MACjB,E,gCACA,sBAAI,mBAAI,C,IAAR,WACE,OAAOjY,KAAKkjF,GAAG4rH,IACjB,E,gCACA,sBAAI,oBAAK,C,IAAT,WACE,OAAO9uM,KAAKkjF,GAAGoT,KACjB,E,gCACA,sBAAI,uBAAQ,C,IAAZ,WACE,OAAOt2F,KAAKkjF,GAAGiC,QACjB,E,gCACA,sBAAI,sBAAO,C,IAAX,WACE,OAAOnlF,KAAKkjF,GAAG6rH,OACjB,E,gCACA,sBAAI,oBAAK,C,IAAT,WACE,OAAO/uM,KAAKkjF,GAAG0J,KACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAO5sF,KAAKkjF,GAAG6O,MACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAO/xF,KAAKkjF,GAAGsB,MACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOxkF,KAAKkjF,GAAG8+C,MACjB,E,gCACA,sBAAI,0BAAW,C,IAAf,WACE,OAAOhiI,KAAKkjF,GAAG2J,WACjB,E,gCACA,sBAAI,0BAAW,C,IAAf,WACE,OAAO7sF,KAAKkjF,GAAG57E,WACjB,E,gCACA,sBAAI,6BAAc,C,IAAlB,WACE,OAAOtH,KAAKkjF,GAAGi0D,cACjB,E,gCACA,sBAAI,oBAAK,C,IAAT,WACE,OAAOn3I,KAAKkjF,GAAGmI,KACjB,E,gCACA,sBAAI,yBAAU,C,IAAd,WACE,OAAOrrF,KAAKkjF,GAAGuR,UACjB,E,gCACA,sBAAI,4BAAa,C,IAAjB,WACE,OAAOz0F,KAAKkjF,GAAGuR,UACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOz0F,KAAKkjF,GAAGuoC,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAOzrH,KAAKkjF,GAAGuoC,MACjB,E,gCACA,sBAAI,kBAAG,C,IAAP,WACE,OAAOzrH,KAAKkjF,GAAG0kC,GACjB,E,gCACA,sBAAI,0BAAW,C,IAAf,WACE,OAAO5nH,KAAKkjF,GAAG0kC,GACjB,E,gCACA,sBAAI,sBAAO,C,IAAX,WACE,OAAO5nH,KAAKkjF,GAAGgrH,OACjB,E,gCACA,sBAAI,6BAAc,C,IAAlB,WACE,OAAOluM,KAAKkjF,GAAGgrH,OACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOluM,KAAKkjF,GAAGmzD,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAOr2I,KAAKkjF,GAAGmzD,MACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOr2I,KAAKkjF,GAAGgP,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAOlyF,KAAKkjF,GAAGgP,MACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOlyF,KAAKkjF,GAAGijD,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAOnmI,KAAKkjF,GAAGijD,MACjB,E,gCACA,sBAAI,wBAAS,C,IAAb,WACE,OAAOnmI,KAAKkjF,GAAGu+C,SACjB,E,gCACA,sBAAI,8BAAe,C,IAAnB,WACE,OAAOzhI,KAAKkjF,GAAGu+C,SACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOzhI,KAAKkjF,GAAG4F,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAO9oF,KAAKkjF,GAAG4F,MACjB,E,gCACA,sBAAI,sBAAO,C,IAAX,WACE,OAAO9oF,KAAKkjF,GAAGmpC,OACjB,E,gCACA,sBAAI,4BAAa,C,IAAjB,WACE,OAAOrsH,KAAKkjF,GAAGmpC,OACjB,E,gCAEA,sBAAIx1B,EAAA,wBAAW,C,IAAf,WACE,OAAO72F,KAAKkjF,EACd,E,gCAMA,YAAA0D,UAAA,SAGEngE,GACA,OAAOzmB,KAAKkjF,GAAG0D,UAAUngE,EAC3B,EASA,YAAA6mE,QAAA,SAAQzjF,GACN,OAAO7J,KAAKkjF,GAAGoK,QAAQzjF,EACzB,EAYA,YAAA2jF,OAAA,SAAO3jF,GACL,OAAO7J,KAAKkjF,GAAGsK,OAAO3jF,EACxB,EAQA,YAAAgkM,MAAA,SAAMhkM,GACJ,OAAO7J,KAAKkjF,GAAG2qH,MAAMhkM,EACvB,EAMA,YAAAqyI,cAAA,WACE,OAAOl8I,KAAKy0F,WAAWynD,eACzB,EAMA,YAAA3rB,WAAA,WACE,OAAOvwH,KAAKy0F,WAAW87B,YACzB,EAgBA,YAAA6rB,cAAA,SAAc/2D,EAA0B/3B,GAEtC,YAFsC,IAAAA,IAAAA,EAAA,IACtCttD,KAAKkjF,GAAGk5D,cAAc/2D,EAAY/3B,GAC3BttD,IACT,EAmBA,YAAAgvM,cAAA,SAAc3pH,EAA0Bx7E,GACtC,OAAO7J,KAAKuwH,aAAcv9B,OAAO3N,EAAYx7E,EAC/C,EAMA,YAAA4+E,SAAA,WACE,OAAOzoF,KAAKkjF,GAAG0kC,IAAIj8B,QACrB,EAcA,YAAA7L,SAAA,SAASnjE,EAAY2wC,GAEnB,YAFmB,IAAAA,IAAAA,EAAA,IACnBttD,KAAKkjF,GAAGpD,SAASnjE,EAAO2wC,GACjBttD,IACT,EASA,YAAA4oF,SAAA,SAASjsE,EAAY9S,GACnB,YADmB,IAAAA,IAAAA,EAAA,IACZ7J,KAAKkjF,GAAG0F,SAASjsE,EAAO9S,EACjC,EAMA,YAAAm/E,YAAA,WACE,OAAOhpF,KAAKkjF,GAAG8F,aACjB,EAMA,YAAAzD,eAAA,WACE,OAAOvlF,KAAKkjF,GAAGqC,gBACjB,EAUA,YAAA0pH,mBAAA,WACE,IAAIj7I,EAAWh0D,KAAKkjF,GAAG8F,cAEvB,GAAIh1B,EACF,OAAOh0D,KAAK2yF,aAAa8I,gBAAgBznC,EAE7C,EAcA,YAAA99C,OAAA,SAAO9B,EAAyCvK,GAE9C,OADA7J,KAAKkjF,GAAGwb,YAAYtqF,EAAIvK,GACjB7J,IACT,EAUA,YAAAg8I,UAAA,SAAU5nI,GAER,OADApU,KAAKkjF,GAAGomE,YAAYl1I,GACbpU,IACT,EASA,YAAAi8I,aAAA,SAAa7nI,GAEX,OADApU,KAAKkjF,GAAGwjE,eAAetyI,GAChBpU,IACT,EASA,YAAAkvM,aAAA,SAAa96L,GAEX,OADApU,KAAKkjF,GAAGuqH,eAAer5L,GAChBpU,IACT,EAWA,YAAAy3I,WAAA,WACE,OAAOz3I,KAAKkjF,GAAGu0D,YACjB,EAUA,YAAA03D,UAAA,SAAUxlM,GAER,OADA3J,KAAKkjF,GAAGz9E,IAAI,SAAUkE,GACf3J,IACT,EAUA,YAAAy/I,UAAA,WACE,OAAOz/I,KAAKkjF,GAAGv/E,IAAI,SACrB,EAUA,YAAAiyF,WAAA,SAAWtrF,EAAYzH,GACrB,YADqB,IAAAA,IAAAA,EAAA,IACd7C,KAAKmlF,SAASjD,IAAI53E,EAAIzH,EAC/B,EAUA,YAAAigF,YAAA,SAAYx4E,EAAYzH,GACtB,YADsB,IAAAA,IAAAA,EAAA,IACf7C,KAAKmlF,SAASxnE,KAAKrT,EAAIzH,EAChC,EAUM,YAAA05F,MAAN,SAAY15F,G,4FACH,SAAM7C,KAAKkjF,GAAGqZ,MAAM15F,I,OAA3B,MAAO,CAAP,EAAO,U,QAUH,YAAAwgG,KAAN,SAAWxgG,G,4FACF,SAAM7C,KAAKkjF,GAAGmgB,KAAKxgG,I,OAA1B,MAAO,CAAP,EAAO,U,QAUT,YAAA4iH,eAAA,WACE,OAAOzlH,KAAKkjF,GAAG+qH,WACjB,EAQA,YAAAtoF,gBAAA,SAAgBjtG,GACd,OAAO1Y,KAAKkjF,GAAG0pH,SAASl0L,EAC1B,EAEA,YAAAu1L,UAAA,WACE,OAAOjuM,KAAKkjF,GAAG+qH,WACjB,EAEA,YAAArB,SAAA,SAASl0L,GACP,OAAO1Y,KAAKkjF,GAAG0pH,SAASl0L,EAC1B,EAOA,YAAAm2E,aAAA,WACE,OAAO7uF,KAAKiY,OAAO7D,EACrB,EAOA,YAAA44L,cAAA,WACE,OAAOhtM,KAAKkjF,GAAG8pH,eACjB,EAKA,YAAAmB,gBAAA,WACE,OAAOnuM,KAAKkjF,GAAGirH,iBACjB,EAWA,YAAA7sI,QAAA,SAAQz3D,GACN7J,KAAKkjF,GAAGkb,cAAcv0F,EACxB,EA+BA,YAAAulM,aAAA,SAAgBpuM,GACdhB,KAAKm3I,eAAea,UAAYh3I,CAClC,EAqBA,YAAAquM,mBAAA,SAAmBrvH,GAEjB,OADAhgF,KAAKgiI,OAAOp7C,YAAYy3C,UAAYr+C,EAC7BhgF,IACT,EAQA,YAAA6oI,YAAA,SAAYnhI,GAEV,OADA1H,KAAKkjF,GAAG2lD,YAAYnhI,GACb1H,IACT,EAiBA,YAAA2hH,IAAA,SAAIm/D,EAAaj3K,GAEf,YAFe,IAAAA,IAAAA,EAAA,IACf7J,KAAKkjF,GAAGy+B,IAAIm/D,EAAKj3K,GACV7J,IACT,EAgBA,YAAAszD,EAAA,W,UAAE,kDACA,OAAO,EAAAtzD,KAAKkjF,IAAG5vB,EAAC,QAAI5yD,EACtB,EAQA,YAAA+G,GAAA,SAAGkL,EAAoB/I,GAErB,OADA5J,KAAKkjF,GAAGz7E,GAAGkL,EAAO/I,GACX5J,IACT,EAQA,YAAA6L,KAAA,SAAK8G,EAAoB/I,GAEvB,OADA5J,KAAKkjF,GAAGr3E,KAAK8G,EAAO/I,GACb5J,IACT,EAQA,YAAAmL,IAAA,SAAIwH,EAAoB/I,GAEtB,OADA5J,KAAKkjF,GAAG/3E,IAAIwH,EAAO/I,GACZ5J,IACT,EAOA,YAAA8D,QAAA,SAAQ6O,G,IAAoB,wDAE1B,OADA3S,KAAKkjF,GAAGp/E,QAAQvD,MAAMP,KAAKkjF,GAAI,IAACvwE,GAAUjS,GAAI,IACvCV,IACT,EAKA,YAAAqP,QAAA,WACOrP,KAAKkjF,KACVljF,KAAKkjF,GAAGmrH,aACRruM,KAAK+9K,gBAAa14K,EACpB,EAOA,YAAAsgF,MAAA,W,MACE,OAAsB,QAAf,EAAA3lF,KAAK+9K,kBAAU,eAAE3pK,EAC1B,EAOA,YAAA2xE,SAAA,WACE,OAAO/lF,KAAKkjF,EACd,EAMA,YAAArvE,OAAA,W,MAGE,OAFe,QAAf,EAAA7T,KAAK+9K,kBAAU,SAAE34K,SACjBpF,KAAK+9K,WAAa,IAAI,GAAW/9K,KAAKkjF,IAC/BljF,KAAK+9K,WAAWlqK,SAASO,EAClC,EAWA,YAAAk7L,QAAA,SAAQ//D,GACNvvI,KAAKkjF,GAAGv/E,IAAI,SAAW4rI,EAAIvvI,MAAQA,KAAKkjF,GAAGz7E,GAAG,OAAQ8nI,EACxD,EAcF,EAtsBA,G,YCrHA,IAYaggE,GAAY,SAACC,EAA8BC,GACtD,OAAO,IAAAv+L,UAASs+L,GAbI,SAACE,EAAkBD,GACvC,IAAIviM,EAASuiM,EAAQ9rM,IAAI+rM,GAGzB,IAAKxiM,EAAQ,CACX,IAAMyiM,GAAQ,IAAA/8F,aAAoB88F,GAClCxiM,GAASyiM,aAAI,EAAJA,EAAM5jF,UAAW4jF,C,CAG5B,OAAOziM,CACT,CAG4B0iM,CAAcJ,EAAQC,GAAWD,CAC7D,EAEaK,GAAgB,SAACttH,EAAgBitH,GAC5CjtH,EAAOwD,WAAWN,WAAW,iBAAU+pH,EAAM,cAAc,CACzDzlM,QAAS,UACTylM,OAAM,GAEV,E,SAEA,wBACE,KAAAC,QAAkC,CAAC,CAgDrC,QA/BE,YAAAnrM,IAAA,SAA6BgG,EAAYklM,GACvC,IAAMM,EAAM9vM,KAAK2D,IAAI2G,GAErB,OAAIwlM,IAKJ9vM,KAAKyvM,QAAQnlM,GAAMklM,EAEZA,EACT,EAUA,YAAA7rM,IAAA,SAA6B2G,GAC3B,OAAOtK,KAAKyvM,QAAQnlM,EACtB,EAKA,YAAAqhF,OAAA,WACE,OAAO3rF,KAAKyvM,OACd,EACF,EAjDA,G,mPCzBA,WAwBE,IAAI,IAAAjxG,WAnBS,WAUX,IATA,IAAInqF,EACE07L,EAAQhwM,OAAOsiB,UAAUD,UACzBspE,EAA4B,CAChC,CAAC,OAAQ,qBACT,CAAC,KAAM,gBACP,CAAC,KAAM,uCACP,CAAC,KAAM,8CAGA7rF,EAAI,EAAGA,EAAI6rF,EAAM/qF,OAAQd,IAAK,CAGrC,GADAwU,EADaq3E,EAAM7rF,GACN,GAAG0a,KAAKw1L,GACV,K,CAGb,QAAS17L,CACX,CAEgB27L,GAAQ,CACtB,IAAM,EAA6BC,kBAAkB5vM,UAAU6vM,mBAC/DD,kBAAkB5vM,UAAU6vM,mBAAqB,SAAAjyL,GAE/C,OADKA,IAAOA,EAAQ,IACb,EAA2B1d,MAAMmU,SAASy7L,eAAgB,CAAClyL,GACpE,C,CAEH,CC1BDmyL,GAEA,IAAMX,GAAU,IAAI,GACd56I,GAAoB,GAEbw7I,GAAY,SAAiCb,EAAW3lM,GACnE,IAAIymM,EAAef,GAAUC,EAAQC,IAErC,OAAO,SAACltH,GACF+tH,EACFA,EAAa/tH,EAAQ14E,GAAQ,CAAC,GAE9BgmM,GAActtH,EAAQitH,EAE1B,CACF,EAEalB,GAAW,CACtBvlM,EAAC,aAED8rD,QAAO,GAEP46I,QAAO,GAEPY,UAAS,GAGT5+H,QAAS,SAkBTzvB,KAAI,SAAC/pC,QAAA,IAAAA,IAAAA,EAAA,IACK,IAAA00L,EAAa10L,EAAM,SACrBo3G,EAAMp3G,EAAOwoC,UACnB,IAAK4uE,IAAQs9E,EAAU,MAAM,IAAI56L,MAAM,2BACvC,IAAMw+L,EAAU,OACdC,YAAY,EACZf,QAAS,GACTgB,YAAa,CAAC,GACXx4L,GAAM,CACTq2L,SAAUtuM,KACVoU,GAAIu4L,OAAWtnM,GAAY,IAAAupF,WAAUygC,GAAOA,EAAO36G,SAASwrB,cAAcmvF,KAEtE9sC,EAAS,IAAI,GAAOguH,EAAY,CAAExnM,EAAC,eACnCm6E,EAAKX,EAAOwD,WAqBlB,OAlBAwqH,EAAWd,QAASh6L,SAAQ,SAAAi6L,GAC1B,IAAMF,EAASD,GAAUG,EAAUD,IAC7BiB,EAAaH,EAAWE,YAAaf,IAAuB,CAAC,EAE/DF,EACFA,EAAOjtH,EAAQmuH,GAEfb,GAActtH,EAAQmtH,EAE1B,IAKAxsH,EAAGwpH,cACH6D,EAAWC,aAAe7D,GAAYpqH,EAAO1uE,SAC7CghD,GAAQlwD,KAAK49E,GAENA,CACT,GA6CF,W","sources":["webpack://grapesjs/webpack/universalModuleDefinition","webpack://grapesjs/./node_modules/backbone-undo/Backbone.Undo.js","webpack://grapesjs/./node_modules/backbone/backbone.js","webpack://grapesjs/./node_modules/codemirror-formatting/formatting.js","webpack://grapesjs/./node_modules/codemirror/lib/codemirror.js","webpack://grapesjs/./node_modules/codemirror/mode/css/css.js","webpack://grapesjs/./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack://grapesjs/./node_modules/codemirror/mode/javascript/javascript.js","webpack://grapesjs/./node_modules/codemirror/mode/xml/xml.js","webpack://grapesjs/./src/commands/view/CanvasClear.ts","webpack://grapesjs/./src/commands/view/CanvasMove.ts","webpack://grapesjs/./src/commands/view/CommandAbstract.ts","webpack://grapesjs/./src/commands/view/ComponentDelete.ts","webpack://grapesjs/./src/commands/view/ComponentDrag.ts","webpack://grapesjs/./src/commands/view/ComponentEnter.ts","webpack://grapesjs/./src/commands/view/ComponentExit.ts","webpack://grapesjs/./src/commands/view/ComponentNext.ts","webpack://grapesjs/./src/commands/view/ComponentPrev.ts","webpack://grapesjs/./src/commands/view/ComponentStyleClear.ts","webpack://grapesjs/./src/commands/view/CopyComponent.ts","webpack://grapesjs/./src/commands/view/DeleteComponent.ts","webpack://grapesjs/./src/commands/view/ExportTemplate.ts","webpack://grapesjs/./src/commands/view/Fullscreen.ts","webpack://grapesjs/./src/commands/view/MoveComponent.ts","webpack://grapesjs/./src/commands/view/OpenAssets.ts","webpack://grapesjs/./src/commands/view/OpenBlocks.ts","webpack://grapesjs/./src/commands/view/OpenLayers.ts","webpack://grapesjs/./src/commands/view/OpenStyleManager.ts","webpack://grapesjs/./src/commands/view/OpenTraitManager.ts","webpack://grapesjs/./src/commands/view/PasteComponent.ts","webpack://grapesjs/./src/commands/view/Preview.ts","webpack://grapesjs/./src/commands/view/Resize.ts","webpack://grapesjs/./src/dom_components/model/ToolbarButton.ts","webpack://grapesjs/./src/dom_components/model/Toolbar.ts","webpack://grapesjs/./src/dom_components/view/ToolbarButtonView.ts","webpack://grapesjs/./src/dom_components/view/ToolbarView.ts","webpack://grapesjs/./src/commands/view/SelectComponent.ts","webpack://grapesjs/./src/commands/view/SelectPosition.ts","webpack://grapesjs/./src/commands/view/ShowOffset.ts","webpack://grapesjs/./src/commands/view/SwitchVisibility.ts","webpack://grapesjs/./src/common/index.ts","webpack://grapesjs/./src/domain_abstract/view/DomainViews.ts","webpack://grapesjs/./src/utils/Dragger.ts","webpack://grapesjs/./src/utils/cash-dom.ts","webpack://grapesjs/./src/utils/dom.ts","webpack://grapesjs/./src/utils/mixins.ts","webpack://grapesjs/./src/commands/view/ sync ^\\.\\/.*$","webpack://grapesjs/./node_modules/underscore/modules/_setup.js","webpack://grapesjs/./node_modules/underscore/modules/restArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isObject.js","webpack://grapesjs/./node_modules/underscore/modules/isNull.js","webpack://grapesjs/./node_modules/underscore/modules/isUndefined.js","webpack://grapesjs/./node_modules/underscore/modules/isBoolean.js","webpack://grapesjs/./node_modules/underscore/modules/isElement.js","webpack://grapesjs/./node_modules/underscore/modules/_tagTester.js","webpack://grapesjs/./node_modules/underscore/modules/isString.js","webpack://grapesjs/./node_modules/underscore/modules/isNumber.js","webpack://grapesjs/./node_modules/underscore/modules/isDate.js","webpack://grapesjs/./node_modules/underscore/modules/isRegExp.js","webpack://grapesjs/./node_modules/underscore/modules/isError.js","webpack://grapesjs/./node_modules/underscore/modules/isSymbol.js","webpack://grapesjs/./node_modules/underscore/modules/isArrayBuffer.js","webpack://grapesjs/./node_modules/underscore/modules/isFunction.js","webpack://grapesjs/./node_modules/underscore/modules/_hasObjectTag.js","webpack://grapesjs/./node_modules/underscore/modules/_stringTagBug.js","webpack://grapesjs/./node_modules/underscore/modules/isDataView.js","webpack://grapesjs/./node_modules/underscore/modules/isArray.js","webpack://grapesjs/./node_modules/underscore/modules/_has.js","webpack://grapesjs/./node_modules/underscore/modules/isArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isFinite.js","webpack://grapesjs/./node_modules/underscore/modules/isNaN.js","webpack://grapesjs/./node_modules/underscore/modules/constant.js","webpack://grapesjs/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://grapesjs/./node_modules/underscore/modules/_shallowProperty.js","webpack://grapesjs/./node_modules/underscore/modules/_getByteLength.js","webpack://grapesjs/./node_modules/underscore/modules/_isBufferLike.js","webpack://grapesjs/./node_modules/underscore/modules/isTypedArray.js","webpack://grapesjs/./node_modules/underscore/modules/_getLength.js","webpack://grapesjs/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://grapesjs/./node_modules/underscore/modules/keys.js","webpack://grapesjs/./node_modules/underscore/modules/isEmpty.js","webpack://grapesjs/./node_modules/underscore/modules/isMatch.js","webpack://grapesjs/./node_modules/underscore/modules/underscore.js","webpack://grapesjs/./node_modules/underscore/modules/_toBufferView.js","webpack://grapesjs/./node_modules/underscore/modules/isEqual.js","webpack://grapesjs/./node_modules/underscore/modules/allKeys.js","webpack://grapesjs/./node_modules/underscore/modules/_methodFingerprint.js","webpack://grapesjs/./node_modules/underscore/modules/isMap.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakMap.js","webpack://grapesjs/./node_modules/underscore/modules/isSet.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakSet.js","webpack://grapesjs/./node_modules/underscore/modules/values.js","webpack://grapesjs/./node_modules/underscore/modules/pairs.js","webpack://grapesjs/./node_modules/underscore/modules/invert.js","webpack://grapesjs/./node_modules/underscore/modules/functions.js","webpack://grapesjs/./node_modules/underscore/modules/_createAssigner.js","webpack://grapesjs/./node_modules/underscore/modules/extend.js","webpack://grapesjs/./node_modules/underscore/modules/extendOwn.js","webpack://grapesjs/./node_modules/underscore/modules/defaults.js","webpack://grapesjs/./node_modules/underscore/modules/_baseCreate.js","webpack://grapesjs/./node_modules/underscore/modules/create.js","webpack://grapesjs/./node_modules/underscore/modules/clone.js","webpack://grapesjs/./node_modules/underscore/modules/tap.js","webpack://grapesjs/./node_modules/underscore/modules/toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_deepGet.js","webpack://grapesjs/./node_modules/underscore/modules/get.js","webpack://grapesjs/./node_modules/underscore/modules/has.js","webpack://grapesjs/./node_modules/underscore/modules/identity.js","webpack://grapesjs/./node_modules/underscore/modules/matcher.js","webpack://grapesjs/./node_modules/underscore/modules/property.js","webpack://grapesjs/./node_modules/underscore/modules/_optimizeCb.js","webpack://grapesjs/./node_modules/underscore/modules/_baseIteratee.js","webpack://grapesjs/./node_modules/underscore/modules/iteratee.js","webpack://grapesjs/./node_modules/underscore/modules/_cb.js","webpack://grapesjs/./node_modules/underscore/modules/mapObject.js","webpack://grapesjs/./node_modules/underscore/modules/noop.js","webpack://grapesjs/./node_modules/underscore/modules/propertyOf.js","webpack://grapesjs/./node_modules/underscore/modules/times.js","webpack://grapesjs/./node_modules/underscore/modules/random.js","webpack://grapesjs/./node_modules/underscore/modules/now.js","webpack://grapesjs/./node_modules/underscore/modules/_createEscaper.js","webpack://grapesjs/./node_modules/underscore/modules/_escapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/escape.js","webpack://grapesjs/./node_modules/underscore/modules/unescape.js","webpack://grapesjs/./node_modules/underscore/modules/_unescapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/templateSettings.js","webpack://grapesjs/./node_modules/underscore/modules/template.js","webpack://grapesjs/./node_modules/underscore/modules/result.js","webpack://grapesjs/./node_modules/underscore/modules/uniqueId.js","webpack://grapesjs/./node_modules/underscore/modules/chain.js","webpack://grapesjs/./node_modules/underscore/modules/_executeBound.js","webpack://grapesjs/./node_modules/underscore/modules/partial.js","webpack://grapesjs/./node_modules/underscore/modules/bind.js","webpack://grapesjs/./node_modules/underscore/modules/_isArrayLike.js","webpack://grapesjs/./node_modules/underscore/modules/_flatten.js","webpack://grapesjs/./node_modules/underscore/modules/bindAll.js","webpack://grapesjs/./node_modules/underscore/modules/memoize.js","webpack://grapesjs/./node_modules/underscore/modules/delay.js","webpack://grapesjs/./node_modules/underscore/modules/defer.js","webpack://grapesjs/./node_modules/underscore/modules/throttle.js","webpack://grapesjs/./node_modules/underscore/modules/debounce.js","webpack://grapesjs/./node_modules/underscore/modules/wrap.js","webpack://grapesjs/./node_modules/underscore/modules/negate.js","webpack://grapesjs/./node_modules/underscore/modules/compose.js","webpack://grapesjs/./node_modules/underscore/modules/after.js","webpack://grapesjs/./node_modules/underscore/modules/before.js","webpack://grapesjs/./node_modules/underscore/modules/once.js","webpack://grapesjs/./node_modules/underscore/modules/findKey.js","webpack://grapesjs/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/findIndex.js","webpack://grapesjs/./node_modules/underscore/modules/findLastIndex.js","webpack://grapesjs/./node_modules/underscore/modules/sortedIndex.js","webpack://grapesjs/./node_modules/underscore/modules/_createIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/indexOf.js","webpack://grapesjs/./node_modules/underscore/modules/lastIndexOf.js","webpack://grapesjs/./node_modules/underscore/modules/find.js","webpack://grapesjs/./node_modules/underscore/modules/findWhere.js","webpack://grapesjs/./node_modules/underscore/modules/each.js","webpack://grapesjs/./node_modules/underscore/modules/map.js","webpack://grapesjs/./node_modules/underscore/modules/_createReduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduceRight.js","webpack://grapesjs/./node_modules/underscore/modules/filter.js","webpack://grapesjs/./node_modules/underscore/modules/reject.js","webpack://grapesjs/./node_modules/underscore/modules/every.js","webpack://grapesjs/./node_modules/underscore/modules/some.js","webpack://grapesjs/./node_modules/underscore/modules/contains.js","webpack://grapesjs/./node_modules/underscore/modules/invoke.js","webpack://grapesjs/./node_modules/underscore/modules/pluck.js","webpack://grapesjs/./node_modules/underscore/modules/where.js","webpack://grapesjs/./node_modules/underscore/modules/max.js","webpack://grapesjs/./node_modules/underscore/modules/min.js","webpack://grapesjs/./node_modules/underscore/modules/toArray.js","webpack://grapesjs/./node_modules/underscore/modules/sample.js","webpack://grapesjs/./node_modules/underscore/modules/shuffle.js","webpack://grapesjs/./node_modules/underscore/modules/sortBy.js","webpack://grapesjs/./node_modules/underscore/modules/_group.js","webpack://grapesjs/./node_modules/underscore/modules/groupBy.js","webpack://grapesjs/./node_modules/underscore/modules/indexBy.js","webpack://grapesjs/./node_modules/underscore/modules/countBy.js","webpack://grapesjs/./node_modules/underscore/modules/partition.js","webpack://grapesjs/./node_modules/underscore/modules/size.js","webpack://grapesjs/./node_modules/underscore/modules/_keyInObj.js","webpack://grapesjs/./node_modules/underscore/modules/pick.js","webpack://grapesjs/./node_modules/underscore/modules/omit.js","webpack://grapesjs/./node_modules/underscore/modules/initial.js","webpack://grapesjs/./node_modules/underscore/modules/first.js","webpack://grapesjs/./node_modules/underscore/modules/rest.js","webpack://grapesjs/./node_modules/underscore/modules/last.js","webpack://grapesjs/./node_modules/underscore/modules/compact.js","webpack://grapesjs/./node_modules/underscore/modules/flatten.js","webpack://grapesjs/./node_modules/underscore/modules/difference.js","webpack://grapesjs/./node_modules/underscore/modules/without.js","webpack://grapesjs/./node_modules/underscore/modules/uniq.js","webpack://grapesjs/./node_modules/underscore/modules/union.js","webpack://grapesjs/./node_modules/underscore/modules/intersection.js","webpack://grapesjs/./node_modules/underscore/modules/unzip.js","webpack://grapesjs/./node_modules/underscore/modules/zip.js","webpack://grapesjs/./node_modules/underscore/modules/object.js","webpack://grapesjs/./node_modules/underscore/modules/range.js","webpack://grapesjs/./node_modules/underscore/modules/chunk.js","webpack://grapesjs/./node_modules/underscore/modules/_chainResult.js","webpack://grapesjs/./node_modules/underscore/modules/mixin.js","webpack://grapesjs/./node_modules/underscore/modules/underscore-array-methods.js","webpack://grapesjs/./node_modules/underscore/modules/index-default.js","webpack://grapesjs/webpack/bootstrap","webpack://grapesjs/webpack/runtime/compat get default export","webpack://grapesjs/webpack/runtime/define property getters","webpack://grapesjs/webpack/runtime/global","webpack://grapesjs/webpack/runtime/hasOwnProperty shorthand","webpack://grapesjs/webpack/runtime/make namespace object","webpack://grapesjs/./src/utils/html.ts","webpack://grapesjs/./src/editor/config/config.ts","webpack://grapesjs/./src/editor/model/Selected.ts","webpack://grapesjs/./src/abstract/Module.ts","webpack://grapesjs/./src/canvas/config/config.ts","webpack://grapesjs/./src/abstract/ModuleModel.ts","webpack://grapesjs/./src/abstract/ModuleCollection.ts","webpack://grapesjs/./src/canvas/model/Frame.ts","webpack://grapesjs/./src/canvas/model/Frames.ts","webpack://grapesjs/./src/pages/model/Page.ts","webpack://grapesjs/./src/pages/model/Pages.ts","webpack://grapesjs/./src/pages/index.ts","webpack://grapesjs/./src/device_manager/config/config.ts","webpack://grapesjs/./src/device_manager/model/Device.ts","webpack://grapesjs/./src/device_manager/model/Devices.ts","webpack://grapesjs/./src/device_manager/view/DevicesView.ts","webpack://grapesjs/./src/device_manager/index.ts","webpack://grapesjs/./src/canvas/model/Canvas.ts","webpack://grapesjs/./src/abstract/ModuleView.ts","webpack://grapesjs/./src/abstract/ModuleDomainViews.ts","webpack://grapesjs/./src/css_composer/view/CssRuleView.ts","webpack://grapesjs/./src/css_composer/view/CssGroupRuleView.ts","webpack://grapesjs/./src/css_composer/view/CssRulesView.ts","webpack://grapesjs/./src/utils/Droppable.ts","webpack://grapesjs/./src/canvas/view/FrameView.ts","webpack://grapesjs/./src/canvas/view/FrameWrapView.ts","webpack://grapesjs/./src/canvas/view/FramesView.ts","webpack://grapesjs/./src/canvas/view/CanvasView.ts","webpack://grapesjs/./src/canvas/index.ts","webpack://grapesjs/./src/dom_components/config/config.ts","webpack://grapesjs/./src/parser/model/BrowserParserHtml.ts","webpack://grapesjs/./src/parser/model/ParserHtml.ts","webpack://grapesjs/./src/domain_abstract/model/StyleableModel.ts","webpack://grapesjs/./src/dom_components/model/Components.ts","webpack://grapesjs/./src/selector_manager/model/Selector.ts","webpack://grapesjs/./src/selector_manager/model/Selectors.ts","webpack://grapesjs/./src/trait_manager/model/Trait.ts","webpack://grapesjs/./src/trait_manager/model/TraitFactory.ts","webpack://grapesjs/./src/trait_manager/model/Traits.ts","webpack://grapesjs/./src/dom_components/model/Component.ts","webpack://grapesjs/./src/dom_components/view/ComponentsView.ts","webpack://grapesjs/./src/dom_components/view/ComponentView.ts","webpack://grapesjs/./src/dom_components/view/ComponentWrapperView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableCell.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableCellView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableRow.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableRowView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTable.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableBody.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableHead.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableHeadView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableBodyView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableFoot.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableFootView.ts","webpack://grapesjs/./src/dom_components/model/ComponentImage.ts","webpack://grapesjs/./src/dom_components/model/ComponentMap.ts","webpack://grapesjs/./src/dom_components/view/ComponentImageView.ts","webpack://grapesjs/./src/dom_components/view/ComponentMapView.ts","webpack://grapesjs/./src/dom_components/model/ComponentText.ts","webpack://grapesjs/./src/dom_components/model/ComponentLink.ts","webpack://grapesjs/./src/dom_components/view/ComponentTextView.ts","webpack://grapesjs/./src/dom_components/view/ComponentLinkView.ts","webpack://grapesjs/./src/dom_components/model/ComponentLabel.ts","webpack://grapesjs/./src/dom_components/view/ComponentLabelView.ts","webpack://grapesjs/./src/dom_components/model/ComponentVideo.ts","webpack://grapesjs/./src/dom_components/view/ComponentVideoView.ts","webpack://grapesjs/./src/dom_components/model/ComponentScript.ts","webpack://grapesjs/./src/dom_components/view/ComponentScriptView.ts","webpack://grapesjs/./src/dom_components/model/ComponentSvg.ts","webpack://grapesjs/./src/dom_components/model/ComponentSvgIn.ts","webpack://grapesjs/./src/dom_components/view/ComponentSvgView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTextNode.ts","webpack://grapesjs/./src/dom_components/model/ComponentComment.ts","webpack://grapesjs/./src/dom_components/view/ComponentTextNodeView.ts","webpack://grapesjs/./src/dom_components/view/ComponentCommentView.ts","webpack://grapesjs/./src/dom_components/model/ComponentWrapper.ts","webpack://grapesjs/./src/dom_components/model/ComponentFrame.ts","webpack://grapesjs/./src/dom_components/view/ComponentFrameView.ts","webpack://grapesjs/./src/dom_components/index.ts","webpack://grapesjs/./src/css_composer/config/config.ts","webpack://grapesjs/./src/code_manager/model/CssGenerator.ts","webpack://grapesjs/./src/css_composer/model/CssRule.ts","webpack://grapesjs/./src/css_composer/model/CssRules.ts","webpack://grapesjs/./src/css_composer/index.ts","webpack://grapesjs/./src/block_manager/config/config.ts","webpack://grapesjs/./src/block_manager/model/Block.ts","webpack://grapesjs/./src/block_manager/model/Blocks.ts","webpack://grapesjs/./src/block_manager/model/Category.ts","webpack://grapesjs/./src/block_manager/model/Categories.ts","webpack://grapesjs/./src/block_manager/view/BlockView.ts","webpack://grapesjs/./src/block_manager/view/CategoryView.ts","webpack://grapesjs/./src/block_manager/view/BlocksView.ts","webpack://grapesjs/./src/block_manager/index.ts","webpack://grapesjs/./src/selector_manager/config/config.ts","webpack://grapesjs/./src/selector_manager/model/State.ts","webpack://grapesjs/./src/selector_manager/view/ClassTagView.ts","webpack://grapesjs/./src/selector_manager/view/ClassTagsView.ts","webpack://grapesjs/./src/selector_manager/index.ts","webpack://grapesjs/./src/parser/config/config.ts","webpack://grapesjs/./src/parser/model/BrowserParserCss.ts","webpack://grapesjs/./src/parser/model/ParserCss.ts","webpack://grapesjs/./src/parser/index.ts","webpack://grapesjs/./src/storage_manager/config/config.ts","webpack://grapesjs/./src/storage_manager/model/LocalStorage.ts","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://grapesjs/./node_modules/promise-polyfill/src/finally.js","webpack://grapesjs/./node_modules/promise-polyfill/src/allSettled.js","webpack://grapesjs/./node_modules/promise-polyfill/src/any.js","webpack://grapesjs/./node_modules/promise-polyfill/src/index.js","webpack://grapesjs/./src/utils/fetch.ts","webpack://grapesjs/./src/storage_manager/model/RemoteStorage.ts","webpack://grapesjs/./src/storage_manager/index.ts","webpack://grapesjs/./src/trait_manager/config/config.ts","webpack://grapesjs/./src/trait_manager/view/TraitView.ts","webpack://grapesjs/./src/trait_manager/view/TraitsView.ts","webpack://grapesjs/./src/trait_manager/view/TraitSelectView.ts","webpack://grapesjs/./src/trait_manager/view/TraitCheckboxView.ts","webpack://grapesjs/./src/domain_abstract/ui/Input.ts","webpack://grapesjs/./src/domain_abstract/ui/InputNumber.ts","webpack://grapesjs/./src/trait_manager/view/TraitNumberView.ts","webpack://grapesjs/./src/domain_abstract/ui/InputColor.ts","webpack://grapesjs/./src/utils/ColorPicker.ts","webpack://grapesjs/./src/trait_manager/view/TraitColorView.ts","webpack://grapesjs/./src/trait_manager/view/TraitButtonView.ts","webpack://grapesjs/./src/trait_manager/index.ts","webpack://grapesjs/./src/navigator/config/config.ts","webpack://grapesjs/./src/navigator/view/ItemsView.ts","webpack://grapesjs/./src/navigator/view/ItemView.ts","webpack://grapesjs/./src/navigator/index.ts","webpack://grapesjs/./src/asset_manager/config/config.ts","webpack://grapesjs/./src/asset_manager/model/Asset.ts","webpack://grapesjs/./src/asset_manager/model/AssetImage.ts","webpack://grapesjs/./src/asset_manager/view/AssetView.ts","webpack://grapesjs/./src/asset_manager/view/AssetImageView.ts","webpack://grapesjs/./src/domain_abstract/model/TypeableCollection.ts","webpack://grapesjs/./src/asset_manager/model/Assets.ts","webpack://grapesjs/./src/asset_manager/view/AssetsView.ts","webpack://grapesjs/./src/asset_manager/view/FileUploader.ts","webpack://grapesjs/./src/asset_manager/index.ts","webpack://grapesjs/./src/i18n/locale/en.js","webpack://grapesjs/./src/i18n/config.ts","webpack://grapesjs/./src/i18n/index.ts","webpack://grapesjs/./src/utils/Sorter.ts","webpack://grapesjs/./src/utils/Resizer.ts","webpack://grapesjs/./src/utils/index.ts","webpack://grapesjs/./src/utils/keymaster.ts","webpack://grapesjs/./src/keymaps/config.ts","webpack://grapesjs/./src/keymaps/index.ts","webpack://grapesjs/./src/modal_dialog/config/config.ts","webpack://grapesjs/./src/modal_dialog/model/Modal.ts","webpack://grapesjs/./src/modal_dialog/view/ModalView.ts","webpack://grapesjs/./src/modal_dialog/index.ts","webpack://grapesjs/./src/panels/config/config.ts","webpack://grapesjs/./src/panels/model/Button.ts","webpack://grapesjs/./src/panels/model/Buttons.ts","webpack://grapesjs/./src/panels/model/Panel.ts","webpack://grapesjs/./src/panels/model/Panels.ts","webpack://grapesjs/./src/panels/view/ButtonView.ts","webpack://grapesjs/./src/panels/view/ButtonsView.ts","webpack://grapesjs/./src/panels/view/PanelView.ts","webpack://grapesjs/./src/panels/view/PanelsView.ts","webpack://grapesjs/./src/panels/index.ts","webpack://grapesjs/./src/code_manager/config/config.ts","webpack://grapesjs/./src/code_manager/model/HtmlGenerator.ts","webpack://grapesjs/./src/code_manager/model/JsonGenerator.ts","webpack://grapesjs/./src/code_manager/model/JsGenerator.ts","webpack://grapesjs/./src/code_manager/model/CodeMirrorEditor.ts","webpack://grapesjs/./src/code_manager/view/EditorView.ts","webpack://grapesjs/./src/code_manager/index.ts","webpack://grapesjs/./src/undo_manager/config.ts","webpack://grapesjs/./src/undo_manager/index.ts","webpack://grapesjs/./src/rich_text_editor/config/config.ts","webpack://grapesjs/./src/rich_text_editor/model/RichTextEditor.ts","webpack://grapesjs/./src/rich_text_editor/index.ts","webpack://grapesjs/./src/commands/config/config.ts","webpack://grapesjs/./src/commands/index.ts","webpack://grapesjs/./src/style_manager/config/config.ts","webpack://grapesjs/./src/style_manager/model/Property.ts","webpack://grapesjs/./src/style_manager/model/PropertyComposite.ts","webpack://grapesjs/./src/style_manager/model/Layer.ts","webpack://grapesjs/./src/style_manager/model/Layers.ts","webpack://grapesjs/./src/style_manager/model/PropertyStack.ts","webpack://grapesjs/./src/style_manager/view/PropertyView.ts","webpack://grapesjs/./src/style_manager/view/PropertiesView.ts","webpack://grapesjs/./src/style_manager/view/PropertyCompositeView.ts","webpack://grapesjs/./src/style_manager/view/LayerView.ts","webpack://grapesjs/./src/style_manager/view/LayersView.ts","webpack://grapesjs/./src/style_manager/view/PropertyStackView.ts","webpack://grapesjs/./src/style_manager/view/PropertyFileView.ts","webpack://grapesjs/./src/style_manager/view/PropertyNumberView.ts","webpack://grapesjs/./src/style_manager/view/PropertyColorView.ts","webpack://grapesjs/./src/style_manager/model/PropertySelect.ts","webpack://grapesjs/./src/style_manager/view/PropertySelectView.ts","webpack://grapesjs/./src/style_manager/model/PropertyRadio.ts","webpack://grapesjs/./src/style_manager/view/PropertyRadioView.ts","webpack://grapesjs/./src/style_manager/model/PropertyNumber.ts","webpack://grapesjs/./src/style_manager/model/PropertySlider.ts","webpack://grapesjs/./src/style_manager/view/PropertySliderView.ts","webpack://grapesjs/./src/style_manager/model/Properties.ts","webpack://grapesjs/./src/style_manager/model/Sector.ts","webpack://grapesjs/./src/style_manager/model/Sectors.ts","webpack://grapesjs/./src/style_manager/model/PropertyFactory.ts","webpack://grapesjs/./src/style_manager/view/SectorView.ts","webpack://grapesjs/./src/style_manager/view/SectorsView.ts","webpack://grapesjs/./src/style_manager/index.ts","webpack://grapesjs/./src/editor/model/Editor.ts","webpack://grapesjs/./src/utils/extender.ts","webpack://grapesjs/./src/editor/view/EditorView.ts","webpack://grapesjs/./src/editor/index.ts","webpack://grapesjs/./src/plugin_manager/index.ts","webpack://grapesjs/./src/utils/polyfills.ts","webpack://grapesjs/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), () => {\nreturn ","/*!\n * Backbone.Undo.js v0.2\n * \n * Copyright (c)2013 Oliver Sartun\n * Released under the MIT License\n *\n * Documentation and full license available at\n * https://github.com/osartun/Backbone.Undo.js\n */\n\n\n(function (factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\t// AMD support\n\t\tdefine([\"underscore\", \"backbone\"], factory);\n\t} else if (typeof exports !== 'undefined') {\n\t\t// CommonJS support\n\t\tmodule.exports = factory(\n\t\t\trequire(\"underscore\"),\n\t\t\trequire(\"backbone\")\n\t\t);\n\t} else {\n\t\t// Non-modular execution\n\t\tfactory(_, Backbone);\n }\n})(function (_, Backbone) {\n\n\tvar core_slice = Array.prototype.slice;\n\n\t/**\n\t * As call is faster than apply, this is a faster version of apply as it uses call.\n\t * \n\t * @param {Function} fn \tThe function to execute \n\t * @param {Object} ctx \tThe context the function should be called in\n\t * @param {Array} args \tThe array of arguments that should be applied to the function\n\t * @return Forwards whatever the called function returns\n\t */\n\tfunction apply (fn, ctx, args) {\n\t\treturn args.length <= 4 ?\n\t\t\tfn.call(ctx, args[0], args[1], args[2], args[3]) :\n\t\t\tfn.apply(ctx, args);\n\t}\n\n\t/**\n\t * Uses slice on an array or an array-like object.\n\t * \n\t * @param {Array|Object} \tarr \tThe array or array-like object.\n\t * @param {Number} \t\t[index]\tThe index from where the array should be sliced. Default is 0.\n\t * @return {Array} The sliced array\n\t */\n\tfunction slice (arr, index) {\n\t\treturn core_slice.call(arr, index);\n\t}\n\n\t/**\n\t * Checks if an object has one or more specific keys. The keys \n\t * don't have to be an owned property.\n\t * You can call this function either this way:\n\t * hasKeys(obj, [\"a\", \"b\", \"c\"])\n\t * or this way:\n\t * hasKeys(obj, \"a\", \"b\", \"c\")\n\t * \n\t * @param {Object} \tobj \tThe object to check on\n\t * @param {Array} \tkeys \tThe keys to check for\n\t * @return {Boolean} True, if the object has all those keys\n\t */\n\tfunction hasKeys (obj, keys) {\n\t\tif (obj == null) return false;\n\t\tif (!_.isArray(keys)) {\n\t\t\tkeys = slice(arguments, 1);\n\t\t}\n\t\treturn _.all(keys, function (key) {\n\t\t\treturn key in obj;\n\t\t});\n\t}\n\n\t/**\n\t * Returns a number that is unique per call stack. The number gets \n\t * changed after the call stack has been completely processed.\n\t * \n\t * @return {number} MagicFusionIndex\n\t */\n\tvar getMagicFusionIndex = (function () {\n\t\t// If you add several models to a collection or set several\n\t\t// attributes on a model all in sequence and yet all for\n\t\t// example in one function, then several Undo-Actions are\n\t\t// generated.\n\t\t// If you want to undo your last action only the last model\n\t\t// would be removed from the collection or the last set\n\t\t// attribute would be changed back to its previous value.\n\t\t// To prevent that we have to figure out a way to combine\n\t\t// all those actions that happened \"at the same time\". \n\t\t// Timestamps aren't exact enough. A complex routine could \n\t\t// run several milliseconds and in that time produce a lot \n\t\t// of actions with different timestamps.\n\t\t// Instead we take advantage of the single-threadedness of\n\t\t// JavaScript:\n\n\t\tvar callstackWasIndexed = false, magicFusionIndex = -1;\n\t\tfunction indexCycle() {\n\t\t\tmagicFusionIndex++;\n\t\t\tcallstackWasIndexed = true;\n\t\t\t_.defer(function () {\n\t\t\t\t// Here comes the magic. With a Timeout of 0 \n\t\t\t\t// milliseconds this function gets called whenever\n\t\t\t\t// the current callstack is completed\n\t\t\t\tcallstackWasIndexed = false;\n\t\t\t})\n\t\t}\n\t\treturn function () {\n\t\t\tif (!callstackWasIndexed) {\n\t\t\t\tindexCycle();\n\t\t\t}\n\t\t\treturn magicFusionIndex;\n\t\t}\n\t})();\n\n\t/**\n\t * To prevent binding a listener several times to one \n\t * object, we register the objects in an ObjectRegistry\n\t *\n\t * @constructor\n\t */\n\tfunction ObjectRegistry () {\n\t\t// This uses two different ways of storing\n\t\t// objects: In case the object has a cid\n\t\t// (which Backbone objects typically have)\n\t\t// it uses this cid as an index. That way\n\t\t// the Array's length attribute doesn't \n\t\t// change and the object isn't an item \n\t\t// in the array, but an object-property.\n\t\t// Otherwise it's added to the Array as an\n\t\t// item.\n\t\t// That way we can use the fast property-\n\t\t// lookup and only have to fall back to \n\t\t// iterating over the array in case \n\t\t// non-Backbone-objects are registered.\n\t\tthis.registeredObjects = [];\n\t\t// To return a list of all registered \n\t\t// objects in the 'get' method we have to\n\t\t// store the objects that have a cid in\n\t\t// an additional array. \n\t\tthis.cidIndexes = [];\n\t}\n\tObjectRegistry.prototype = {\n\t\t/**\n\t\t * Returns whether the object is already registered in this ObjectRegistry or not.\n\t\t * \n\t\t * @this \t{ObjectRegistry}\n\t\t * @param \t{Object} \t\t obj \tThe object to check\n\t\t * @return \t{Boolean} True if the object is already registered\n\t\t */\n\t\tisRegistered: function (obj) {\n\t\t\t// This is where we get a performance boost \n\t\t\t// by using the two different ways of storing \n\t\t\t// objects.\n\t\t\treturn obj && obj.cid ? this.registeredObjects[obj.cid] : _.contains(this.registeredObjects, obj);\n\t\t},\n\t\t/**\n\t\t * Registers an object in this ObjectRegistry.\n\t\t * \n\t\t * @this \t{ObjectRegistry}\n\t\t * @param \t{Object} \t\t obj \tThe object to register\n\t\t * @return \t{undefined}\n\t\t */\n\t\tregister: function (obj) {\n\t\t\tif (!this.isRegistered(obj)) {\n\t\t\t\tif (obj && obj.cid) {\n\t\t\t\t\tthis.registeredObjects[obj.cid] = obj;\n\t\t\t\t\tthis.cidIndexes.push(obj.cid);\n\t\t\t\t} else {\n\t\t\t\t\tthis.registeredObjects.push(obj);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t/**\n\t\t * Unregisters an object from this ObjectRegistry.\n\t\t * \n\t\t * @this {ObjectRegistry}\n\t\t * @param {Object} obj The object to unregister\n\t\t * @return {undefined}\n\t\t */\n\t\tunregister: function (obj) {\n\t\t\tif (this.isRegistered(obj)) {\n\t\t\t\tif (obj && obj.cid) {\n\t\t\t\t\tdelete this.registeredObjects[obj.cid];\n\t\t\t\t\tthis.cidIndexes.splice(_.indexOf(this.cidIndexes, obj.cid), 1);\n\t\t\t\t} else {\n\t\t\t\t\tvar i = _.indexOf(this.registeredObjects, obj);\n\t\t\t\t\tthis.registeredObjects.splice(i, 1);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t/**\n\t\t * Returns an array of all objects that are currently in this ObjectRegistry.\n\t\t * \n\t\t * @return {Array} An array of all the objects which are currently in the ObjectRegistry\n\t\t */\n\t\tget: function () {\n\t\t\treturn (_.map(this.cidIndexes, function (cid) {return this.registeredObjects[cid];}, this)).concat(this.registeredObjects);\n\t\t}\n\t}\n\n\t/**\n\t * Binds or unbinds the \"all\"-listener for one or more objects.\n\t * \n\t * @param {String} which \tEither \"on\" or \"off\"\n\t * @param {Object[]} objects \tArray of the objects on which the \"all\"-listener should be bound / unbound to\n\t * @param {Function} [fn] \t\tThe function that should be bound / unbound. Optional in case of \"off\"\n\t * @param {Object} [ctx] \tThe context the function should be called in\n\t * @return {undefined}\n\t */\n\tfunction onoff(which, objects, fn, ctx) {\n\t\tfor (var i = 0, l = objects.length, obj; i < l; i++) {\n\t\t\tobj = objects[i];\n\t\t\tif (!obj) continue;\n\t\t\tif (which === \"on\") {\n\t\t\t\tif (!ctx.objectRegistry.register(obj)) {\n\t\t\t\t\t// register returned false, so obj was already registered\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!ctx.objectRegistry.unregister(obj)) {\n\t\t\t\t\t// unregister returned false, so obj wasn't registered\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (_.isFunction(obj[which])) {\n\t\t\t\tobj[which](\"all\", fn, ctx);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls the undo/redo-function for a specific action.\n\t * \n\t * @param {String} which \tEither \"undo\" or \"redo\"\n\t * @param {Object} action \tThe Action's attributes\n\t * @return {undefined}\n\t */\n\tfunction actionUndoRedo (which, action) {\n\t\tvar type = action.type, undoTypes = action.undoTypes, fn = !undoTypes[type] || undoTypes[type][which];\n\t\tif (_.isFunction(fn)) {\n\t\t\tfn(action.object, action.before, action.after, action.options);\n\t\t}\n\t}\n\n\t/**\n\t * The main undo/redo function.\n\t *\n\t * @param {String} \t\twhich \t Either \"undo\" or \"redo\"\n\t * @param {UndoManager} \tmanager\t The UndoManager-instance on which an \"undo\"/\"redo\"-Event is triggered afterwards\n\t * @param {UndoStack} \t\tstack \t The UndoStack on which we perform\n\t * @param {Boolean} \t\tmagic \t If true, undoes / redoes all actions with the same magicFusionIndex\n\t * @param {Boolean} \t\teverything If true, undoes / redoes every action that had been tracked\n\t * @return {undefined}\n\t */\n\tfunction managerUndoRedo (which, manager, stack, magic, everything) {\n\t\tif (stack.isCurrentlyUndoRedoing || \n\t\t\t(which === \"undo\" && stack.pointer === -1) ||\n\t\t\t(which === \"redo\" && stack.pointer === stack.length - 1)) {\n\t\t\t// We're either currently in an undo- / redo-process or \n\t\t\t// we reached the end of the stack\n\t\t\treturn;\n\t\t}\n\t\tstack.isCurrentlyUndoRedoing = true;\n\t\tvar action, actions, isUndo = which === \"undo\";\n\t\tif (everything) {\n\t\t\t// Undo / Redo all steps until you reach the stack's beginning / end\n\t\t\tactions = isUndo && stack.pointer === stack.length - 1 || // If at the stack's end calling undo\n\t\t\t\t\t !isUndo && stack.pointer === -1 ? // or at the stack's beginning calling redo\n\t\t\t\t\t _.clone(stack.models) : // => Take all the models. Otherwise:\n\t\t\t\t\t core_slice.apply(stack.models, isUndo ? [0, stack.pointer] : [stack.pointer, stack.length - 1]);\n\t\t} else {\n\t\t\t// Undo / Redo only one step\n\t\t\taction = stack.at(isUndo ? stack.pointer : stack.pointer + 1);\n\t\t\tactions = magic ? stack.where({\"magicFusionIndex\": action.get(\"magicFusionIndex\")}) : [action];\n\t\t}\n\t\t\n\t\tstack.pointer += (isUndo ? -1 : 1) * actions.length;\n\t\twhile (action = isUndo ? actions.pop() : actions.shift()) {\n\t\t\t// Here we're calling the Action's undo / redo method\n\t\t\taction[which]();\n\t\t}\n\t\tstack.isCurrentlyUndoRedoing = false;\n\n\t\tmanager.trigger(which, manager);\n\t}\n\n\t/**\n\t * Checks whether an UndoAction should be created or not. Therefore it checks\n\t * whether a \"condition\" property is set in the undoTypes-object of the specific\n\t * event type. If not, it returns true. If it's set and a boolean, it returns it.\n\t * If it's a function, it returns its result, converting it into a boolean. \n\t * Otherwise it returns true.\n\t * \n\t * @param {Object} \tundoTypesType \tThe object within the UndoTypes that holds the function for this event type (i.e. \"change\")\n\t * @param {Arguments} \targs \t\tThe arguments the \"condition\" function is called with\n\t * @return {Boolean} \tTrue, if an UndoAction should be created\n\t */\n\tfunction validateUndoActionCreation (undoTypesType, args) {\n\t\tvar condition = undoTypesType.condition, type = typeof condition;\n\t\treturn type === \"function\" ? !!apply(condition, undoTypesType, args) :\n\t\t\ttype === \"boolean\" ? condition : true;\n\t}\n\n\t/**\n\t * Adds an Undo-Action to the stack.\n\t * \n\t * @param {UndoStack} \t\tstack \t\tThe undostack the action should be added to.\n\t * @param {String} \t\t\ttype \t\tThe event type (i.e. \"change\")\n\t * @param {Arguments} \t\targs \t\tThe arguments passed to the undoTypes' \"on\"-handler\n\t * @param {OwnedUndoTypes} \tundoTypes \tThe undoTypes-object which has the \"on\"-handler\n\t * @return {undefined}\n\t */\n\tfunction addToStack(stack, type, args, undoTypes) {\n\t\tif (stack.track && !stack.isCurrentlyUndoRedoing && type in undoTypes &&\n\t\t\tvalidateUndoActionCreation(undoTypes[type], args)) {\n\t\t\t// An UndoAction should be created\n\t\t\tvar res = apply(undoTypes[type][\"on\"], undoTypes[type], args), diff;\n\t\t\tif (hasKeys(res, \"object\", \"before\", \"after\")) {\n\t\t\t\tres.type = type;\n\t\t\t\tres.magicFusionIndex = getMagicFusionIndex();\n\t\t\t\tres.undoTypes = undoTypes;\n\t\t\t\tif (stack.pointer < stack.length - 1) {\n\t\t\t\t\t// New Actions must always be added to the end of the stack.\n\t\t\t\t\t// If the pointer is not pointed to the last action in the\n\t\t\t\t\t// stack, presumably because actions were undone before, then\n\t\t\t\t\t// all following actions must be discarded\n\t\t\t\t\tvar diff = stack.length - stack.pointer - 1;\n\t\t\t\t\twhile (diff--) {\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstack.pointer = stack.length;\n\t\t\t\tstack.add(res);\n\t\t\t\tif (stack.length > stack.maximumStackLength) {\n\t\t\t\t\tstack.shift();\n\t\t\t\t\tstack.pointer--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Predefined UndoTypes object with default handlers for the most common events.\n\t * @type {Object}\n\t */\n\tvar UndoTypes = {\n\t\t\"add\": {\n\t\t\t\"undo\": function (collection, ignore, model, options) {\n\t\t\t\t// Undo add = remove\n\t\t\t\tcollection.remove(model, options);\n\t\t\t},\n\t\t\t\"redo\": function (collection, ignore, model, options) {\n\t\t\t\t// Redo add = add\n\t\t\t\tif (options.index) {\n\t\t\t\t\toptions.at = options.index;\n\t\t\t\t}\n\t\t\t\tcollection.add(model, options);\n\t\t\t},\n\t\t\t\"on\": function (model, collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: undefined,\n\t\t\t\t\tafter: model,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"remove\": {\n\t\t\t\"undo\": function (collection, model, ignore, options) {\n\t\t\t\tif (\"index\" in options) {\n\t\t\t\t\toptions.at = options.index;\n\t\t\t\t}\n\t\t\t\tcollection.add(model, options);\n\t\t\t},\n\t\t\t\"redo\": function (collection, model, ignore, options) {\n\t\t\t\tcollection.remove(model, options);\n\t\t\t},\n\t\t\t\"on\": function (model, collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: model,\n\t\t\t\t\tafter: undefined,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"change\": {\n\t\t\t\"undo\": function (model, before, after, options) {\n\t\t\t\tif (_.isEmpty(before)) {\n\t\t\t\t\t_.each(_.keys(after), model.unset, model);\n\t\t\t\t} else {\n\t\t\t\t\tmodel.set(before);\n\t\t\t\t\tif (options && options.unsetData && options.unsetData.before && options.unsetData.before.length) {\n\t\t\t\t\t\t_.each(options.unsetData.before, model.unset, model);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"redo\": function (model, before, after, options) {\n\t\t\t\tif (_.isEmpty(after)) {\n\t\t\t\t\t_.each(_.keys(before), model.unset, model);\n\t\t\t\t} else {\n\t\t\t\t\tmodel.set(after);\n\t\t\t\t\tif (options && options.unsetData && options.unsetData.after && options.unsetData.after.length) {\n\t\t\t\t\t\t_.each(options.unsetData.after, model.unset, model);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"on\": function (model, options) {\n\t\t\t\tvar\n\t\t\t\tafterAttributes = model.changedAttributes(),\n\t\t\t\tkeysAfter = _.keys(afterAttributes),\n\t\t\t\tpreviousAttributes = _.pick(model.previousAttributes(), keysAfter),\n\t\t\t\tkeysPrevious = _.keys(previousAttributes),\n\t\t\t\tunsetData = (options || (options = {})).unsetData = {\n\t\t\t\t\tafter: [],\n\t\t\t\t\tbefore: []\n\t\t\t\t};\n\n\t\t\t\tif (keysAfter.length != keysPrevious.length) {\n\t\t\t\t\t// There are new attributes or old attributes have been unset\n\t\t\t\t\tif (keysAfter.length > keysPrevious.length) {\n\t\t\t\t\t\t// New attributes have been added\n\t\t\t\t\t\t_.each(keysAfter, function (val) {\n\t\t\t\t\t\t\tif (!(val in previousAttributes)) {\n\t\t\t\t\t\t\t\tunsetData.before.push(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Old attributes have been unset\n\t\t\t\t\t\t_.each(keysPrevious, function (val) {\n\t\t\t\t\t\t\tif (!(val in afterAttributes)) {\n\t\t\t\t\t\t\t\tunsetData.after.push(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tobject: model,\n\t\t\t\t\tbefore: previousAttributes,\n\t\t\t\t\tafter: afterAttributes,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"reset\": {\n\t\t\t\"undo\": function (collection, before, after) {\n\t\t\t\tcollection.reset(before);\n\t\t\t},\n\t\t\t\"redo\": function (collection, before, after) {\n\t\t\t\tcollection.reset(after);\n\t\t\t},\n\t\t\t\"on\": function (collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: options.previousModels,\n\t\t\t\t\tafter: _.clone(collection.models)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Every UndoManager instance has an own undoTypes object\n\t * which is an instance of OwnedUndoTypes. OwnedUndoTypes' \n\t * prototype is the global UndoTypes object. Changes to the \n\t * global UndoTypes object take effect on every instance of\n\t * UndoManager as the object is its prototype. And yet every \n\t * local UndoTypes object can be changed individually.\n\t *\n\t * @constructor\n\t */\n\tfunction OwnedUndoTypes () {}\n\tOwnedUndoTypes.prototype = UndoTypes;\n\n\t/**\n\t * Adds, changes or removes an undo-type from an UndoTypes-object.\n\t * You can call it this way:\n\t * manipulateUndoType (1, \"reset\", {\"on\": function () {}}, undoTypes)\n\t * or this way to perform bulk actions:\n\t * manipulateUndoType (1, {\"reset\": {\"on\": function () {}}}, undoTypes)\n\t * In case of removing undo-types you can pass an Array for performing\n\t * bulk actions:\n\t * manipulateUndoType(2, [\"reset\", \"change\"], undoTypes)\n\t * \n\t * @param {Number} \t\t\t\t manipType \t\tIndicates the kind of action to execute: 0 for add, 1 for change, 2 for remove\n\t * @param {String|Object|Array} \t undoType \t\t\tThe type of undoType that should be added/changed/removed. Can be an object / array to perform bulk actions\n\t * @param {Object} \t\t\t\t [fns] \t\t\tObject with the functions to add / change. Is optional in case you passed an object as undoType that contains these functions\n\t * @param {OwnedUndoTypes|UndoTypes} undoTypesInstance The undoTypes object to act on\n\t * @return {undefined}\n\t */\n\tfunction manipulateUndoType (manipType, undoType, fns, undoTypesInstance) {\n\t\t// manipType, passed by the calling function\n\t\t// 0: add\n\t\t// 1: change\n\t\t// 2: remove\n\t\tif (typeof undoType === \"object\") {\n\t\t\t// bulk action. Iterate over this data.\n\t\t\treturn _.each(undoType, function (val, key) {\n\t\t\t\t\tif (manipType === 2) { // remove\n\t\t\t\t\t\t// undoType is an array\n\t\t\t\t\t\tmanipulateUndoType (manipType, val, fns, undoTypesInstance);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// undoType is an object\n\t\t\t\t\t\tmanipulateUndoType (manipType, key, val, fns);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\tswitch (manipType) {\n\t\t\tcase 0: // add\n\t\t\t\tif (hasKeys(fns, \"undo\", \"redo\", \"on\") && _.all(_.pick(fns, \"undo\", \"redo\", \"on\"), _.isFunction)) {\n\t\t\t\t\tundoTypesInstance[undoType] = fns;\n\t\t\t\t} \n\t\t\tbreak;\n\t\t\tcase 1: // change\n\t\t\t\tif (undoTypesInstance[undoType] && _.isObject(fns)) {\n\t\t\t\t\t// undoTypeInstance[undoType] may be a prototype's property\n\t\t\t\t\t// So, if we did this _.extend(undoTypeInstance[undoType], fns)\n\t\t\t\t\t// we would extend the object on the prototype which means\n\t\t\t\t\t// that this change would have a global effect\n\t\t\t\t\t// Instead we just want to manipulate this instance. That's why\n\t\t\t\t\t// we're doing this:\n\t\t\t\t\tundoTypesInstance[undoType] = _.extend({}, undoTypesInstance[undoType], fns);\n\t\t\t\t} \n\t\t\tbreak;\n\t\t\tcase 2: // remove\n\t\t\t\tdelete undoTypesInstance[undoType]; \n\t\t\tbreak;\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Instantiating \"Action\" creates the UndoActions that \n\t * are collected in an UndoStack. It holds all relevant \n\t * data to undo / redo an action and has an undo / redo \n\t * method.\n\t */\n\tvar Action = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\ttype: null, // \"add\", \"change\", \"reset\", etc.\n\t\t\tobject: null, // The object on which the action occurred\n\t\t\tbefore: null, // The previous values which were changed with this action\n\t\t\tafter: null, // The values after this action\n\t\t\tmagicFusionIndex: null // The magicFusionIndex helps to combine \n\t\t\t// all actions that occurred \"at the same time\" to undo/redo them altogether\n\t\t},\n\t\t/**\n\t\t * Undoes this action.\n\t\t * @param {OwnedUndoTypes|UndoTypes} undoTypes The undoTypes object which contains the \"undo\"-handler that should be used\n\t\t * @return {undefined}\n\t\t */\n\t\tundo: function (undoTypes) {\n\t\t\tactionUndoRedo(\"undo\", this.attributes);\n\t\t},\n\t\t/**\n\t\t * Redoes this action.\n\t\t * @param {OwnedUndoTypes|UndoTypes} undoTypes The undoTypes object which contains the \"redo\"-handler that should be used\n\t\t * @return {undefined}\n\t\t */\n\t\tredo: function (undoTypes) {\n\t\t\tactionUndoRedo(\"redo\", this.attributes);\n\t\t}\n\t}),\n\t/**\n\t * An UndoStack is a collection of UndoActions in \n\t * chronological order.\n\t */\n\tUndoStack = Backbone.Collection.extend({\n\t\tmodel: Action,\n\t\tpointer: -1, // The pointer indicates the index where we are located within the stack. We start at -1\n\t\ttrack: false,\n\t\tisCurrentlyUndoRedoing: false,\n\t\tmaximumStackLength: Infinity,\n\t\tsetMaxLength: function (val) {\n\t\t\tthis.maximumStackLength = val;\n\t\t}\n\t}),\n\t/**\n\t * An instance of UndoManager can keep track of \n\t * changes to objects and helps to undo them.\n\t */\n\tUndoManager = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\tmaximumStackLength: Infinity,\n\t\t\ttrack: false\n\t\t},\n\t\t/**\n\t\t * The constructor function.\n\t\t * @param {attr} \t\t[attr] Object with parameters. The available parameters are:\n\t\t * \t - maximumStackLength {number} \tSet the undo-stack's maximum size\n\t\t * - track \t\t\t\t{boolean}\tStart tracking changes right away\n\t\t * @return {undefined}\n\t\t */\n\t\tinitialize: function (attr) {\n\t\t\tthis.stack = new UndoStack;\n\t\t\tthis.objectRegistry = new ObjectRegistry();\n\t\t\tthis.undoTypes = new OwnedUndoTypes();\n\n\t\t\t// sync the maximumStackLength attribute with our stack\n\t\t\tthis.stack.setMaxLength(this.get(\"maximumStackLength\"));\n\t\t\tthis.on(\"change:maximumStackLength\", function (model, value) {\n\t\t\t\tthis.stack.setMaxLength(value);\n\t\t\t}, this);\n\n\t\t\t// Start tracking, if attr.track == true\n\t\t\tif (attr && attr.track) {\n\t\t\t\tthis.startTracking();\n\t\t\t}\n\n\t\t\t// Register objects passed in the \"register\" attribute\n\t\t\tif (attr && attr.register) {\n\t\t\t\tif (_.isArray(attr.register) || _.isArguments(attr.register)) {\n\t\t\t\t\tapply(this.register, this, attr.register);\n\t\t\t\t} else {\n\t\t\t\t\tthis.register(attr.register);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Starts tracking. Changes of registered objects won't be processed until you've called this function\n\t\t * @return {undefined}\n\t\t */\n\t\tstartTracking: function () {\n\t\t\tthis.set(\"track\", true);\n\t\t\tthis.stack.track = true;\n\t\t},\n\t\t/**\n\t\t * Stops tracking. Afterwards changes of registered objects won't be processed.\n\t\t * @return {undefined}\n\t\t */\n\t\tstopTracking: function () {\n\t\t\tthis.set(\"track\", false);\n\t\t\tthis.stack.track = false;\n\t\t},\n\t\t/**\n\t\t * Return the state of the tracking\n\t\t * @return {boolean}\n\t\t */\n\t\tisTracking: function () {\n\t\t\treturn this.get(\"track\");\n\t\t},\n\t\t/**\n\t\t * This is the \"all\"-handler which is bound to registered \n\t\t * objects. It creates an UndoAction from the event and adds \n\t\t * it to the stack.\n\t\t * \n\t\t * @param {String} \ttype \tThe event type\n\t\t * @return {undefined}\n\t\t */\n\t\t_addToStack: function (type) {\n\t\t\taddToStack(this.stack, type, slice(arguments, 1), this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Registers one or more objects to track their changes.\n\t\t * @param {...Object} \tobj \tThe object or objects of which changes should be tracked\n\t\t * @return {undefined}\n\t\t */\n\t\tregister: function () {\n\t\t\tonoff(\"on\", arguments, this._addToStack, this);\n\t\t},\n\t\t/**\n\t\t * Unregisters one or more objects.\n\t\t * @param {...Object} \tobj \tThe object or objects of which changes shouldn't be tracked any longer\n\t\t * @return {undefined}\n\t\t */\n\t\tunregister: function () {\n\t\t\tonoff(\"off\", arguments, this._addToStack, this);\n\t\t},\n\t\t/**\n\t\t * Unregisters all previously registered objects.\n\t\t * @return {undefined}\n\t\t */\n\t\tunregisterAll: function () {\n\t\t\tapply(this.unregister, this, this.objectRegistry.get());\n\t\t},\n\t\t/**\n\t\t * Undoes the last action or the last set of actions in case 'magic' is true.\n\t\t * @param {Boolean} \t[magic] \tIf true, all actions that happened basically at the same time are undone together\n\t\t * @return {undefined}\n\t\t */\n\t\tundo: function (magic) {\n\t\t\tmanagerUndoRedo(\"undo\", this, this.stack, magic);\n\t\t},\n\n\t\t/**\n\t\t * Undoes all actions ever tracked by the undo manager\n\t\t * @return {undefined}\n\t\t */\n\t\tundoAll: function () {\n\t\t\tmanagerUndoRedo(\"undo\", this, this.stack, false, true);\n\t\t},\n\n\t\t/**\n\t\t * Redoes a previously undone action or a set of actions.\n\t\t * @param {Boolean} \t[magic] \tIf true, all actions that happened basically at the same time are redone together\n\t\t * @return {undefined}\n\t\t */\n\t\tredo: function (magic) {\n\t\t\tmanagerUndoRedo(\"redo\", this, this.stack, magic);\n\t\t},\n\n\t\t/**\n\t\t * Redoes all actions ever tracked by the undo manager\n\t\t * @return {undefined}\n\t\t */\n\t\tredoAll: function () {\n\t\t\tmanagerUndoRedo(\"redo\", this, this.stack, false, true);\n\t\t},\n\t\t/**\n\t\t * Checks if there's an action in the stack that can be undone / redone\n\t\t * @param {String} \ttype \tEither \"undo\" or \"redo\"\n\t\t * @return {Boolean} True if there is a set of actions which can be undone / redone\n\t\t */\n\t\tisAvailable: function (type) {\n\t\t\tvar s = this.stack, l = s.length;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase \"undo\": return l > 0 && s.pointer > -1;\n\t\t\t\tcase \"redo\": return l > 0 && s.pointer < l - 1;\n\t\t\t\tdefault: return false;\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Sets the stack-reference to the stack of another undoManager.\n\t\t * @param {UndoManager} \tundoManager \tThe undoManager whose stack-reference is set to this stack\n\t\t * @return {undefined}\n\t\t */\n\t\tmerge: function (undoManager) {\n\t\t\t// This sets the stack-reference to the stack of another \n\t\t\t// undoManager so that the stack of this other undoManager \n\t\t\t// is used by two different managers.\n\t\t\t// This enables to set up a main-undoManager and besides it\n\t\t\t// several others for special, exceptional cases (by using\n\t\t\t// instance-based custom UndoTypes). Models / collections \n\t\t\t// which need this special treatment are only registered at \n\t\t\t// those special undoManagers. Those special ones are then \n\t\t\t// merged into the main-undoManager to write on its stack. \n\t\t\t// That way it's easier to manage exceptional cases.\n\t\t\tvar args = _.isArray(undoManager) ? undoManager : slice(arguments), manager;\n\t\t\twhile (manager = args.pop()) {\n\t\t\t\tif (manager instanceof UndoManager &&\n\t\t\t\t\tmanager.stack instanceof UndoStack) {\n\t\t\t\t\t// set the stack reference to our stack\n\t\t\t\t\tmanager.stack = this.stack;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Add an UndoType to this specific UndoManager-instance.\n\t\t * @param {String} type The event this UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. Must have the properties \"undo\", \"redo\" and \"on\". Can have the property \"condition\".\n\t\t * @return {undefined}\n\t\t */\n\t\taddUndoType: function (type, fns) {\n\t\t\tmanipulateUndoType(0, type, fns, this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Overwrite properties of an existing UndoType for this specific UndoManager-instance.\n\t\t * @param {String} type The event the UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. It extends the existing object.\n\t\t * @return {undefined}\n\t\t */\n\t\tchangeUndoType: function (type, fns) {\n\t\t\tmanipulateUndoType(1, type, fns, this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Remove one or more UndoTypes of this specific UndoManager-instance to fall back to the global UndoTypes.\n\t\t * @param {String|Array} type The event the UndoType that should be removed is made for. You can also pass an array of events.\n\t\t * @return {undefined}\n\t\t */\n\t\tremoveUndoType: function (type) {\n\t\t\tmanipulateUndoType(2, type, undefined, this.undoTypes);\n\t\t},\n\n\t\t/**\n\t\t * Removes all actions from the stack.\n\t\t * @return {undefined}\n\t\t */\n\t\tclear: function() {\n\t\t\tthis.stack.reset();\n\t\t\tthis.stack.pointer = -1;\n\t\t}\n\t});\n\n\t_.extend(UndoManager, {\n\t\t/**\n\t\t * Change the UndoManager's default attributes\n\t\t * @param {Object} defaultAttributes An object with the new default values.\n\t\t * @return {undefined}\n\t\t */\n\t\tdefaults: function (defaultAttributes) {\n\t\t\t_.extend(UndoManager.prototype.defaults, defaultAttributes);\n\t\t},\n\t\t/**\n\t\t * Add an UndoType to the global UndoTypes-object.\n\t\t * @param {String} type The event this UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. Must have the properties \"undo\", \"redo\" and \"on\". Can have the property \"condition\".\n\t\t * @return {undefined}\n\t\t */\n\t\t\"addUndoType\": function (type, fns) {\n\t\t\tmanipulateUndoType(0, type, fns, UndoTypes);\n\t\t},\n\t\t/**\n\t\t * Overwrite properties of an existing UndoType in the global UndoTypes-object.\n\t\t * @param {String} type The event the UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. It extends the existing object.\n\t\t * @return {undefined}\n\t\t */\n\t\t\"changeUndoType\": function (type, fns) {\n\t\t\tmanipulateUndoType(1, type, fns, UndoTypes)\n\t\t},\n\t\t/**\n\t\t * Remove one or more UndoTypes of this specific UndoManager-instance to fall back to the global UndoTypes.\n\t\t * @param {String|Array} type The event the UndoType that should be removed is made for. You can also pass an array of events.\n\t\t * @return {undefined}\n\t\t */\n\t\t\"removeUndoType\": function (type) {\n\t\t\tmanipulateUndoType(2, type, undefined, UndoTypes);\n\t\t}\n\t})\n\n\treturn Backbone.UndoManager = UndoManager;\n\n});\n","// Backbone.js 1.4.1\n\n// (c) 2010-2022 Jeremy Ashkenas and DocumentCloud\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global;\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, root.jQuery || root.Zepto || root.ender || root.$);\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.4.1';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // A private global variable to share between listeners and listenees.\n var _listening;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n this._events = eventsApi(onApi, this._events || {}, name, callback, {\n context: context,\n ctx: this,\n listening: _listening\n });\n\n if (_listening) {\n var listeners = this._listeners || (this._listeners = {});\n listeners[_listening.id] = _listening;\n // Allow the listening to use a counter, instead of tracking\n // callbacks for library interop\n _listening.interop = false;\n }\n\n return this;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = _listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n this._listenId || (this._listenId = _.uniqueId('l'));\n listening = _listening = listeningTo[id] = new Listening(this, obj);\n }\n\n // Bind callbacks on obj.\n var error = tryCatchOn(obj, name, callback, this);\n _listening = void 0;\n\n if (error) throw error;\n // If the target obj is not Backbone.Events, track events manually.\n if (listening.interop) listening.on(name, callback);\n\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // An try-catch guarded #on function, to prevent poisoning the global\n // `_listening` variable.\n var tryCatchOn = function(obj, name, callback, context) {\n try {\n obj.on(name, callback, context);\n } catch (e) {\n return e;\n }\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n if (listening.interop) listening.off(name, callback);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var context = options.context, listeners = options.listeners;\n var i = 0, names;\n\n // Delete all event listeners and \"drop\" events.\n if (!name && !context && !callback) {\n for (names = _.keys(listeners); i < names.length; i++) {\n listeners[names[i]].cleanup();\n }\n return;\n }\n\n names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Find any remaining events.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n var listening = handler.listening;\n if (listening) listening.off(name, callback);\n }\n }\n\n // Replace events if there are any remaining. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.off.bind(this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.stopListening.bind(this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // A listening class that tracks and cleans up memory bindings\n // when all callbacks have been offed.\n var Listening = function(listener, obj) {\n this.id = listener._listenId;\n this.listener = listener;\n this.obj = obj;\n this.interop = true;\n this.count = 0;\n this._events = void 0;\n };\n\n Listening.prototype.on = Events.on;\n\n // Offs a callback (or several).\n // Uses an optimized counter if the listenee uses Backbone.Events.\n // Otherwise, falls back to manual tracking to support events\n // library interop.\n Listening.prototype.off = function(name, callback) {\n var cleanup;\n if (this.interop) {\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: void 0,\n listeners: void 0\n });\n cleanup = !this._events;\n } else {\n this.count--;\n cleanup = this.count === 0;\n }\n if (cleanup) this.cleanup();\n };\n\n // Cleans up memory bindings between the listener and the listenee.\n Listening.prototype.cleanup = function() {\n delete this.listener._listeningTo[this.obj._listenId];\n if (!this.interop) delete this.obj._listeners[this.id];\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Model.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) {\n var prevId = this.id;\n this.id = this.get(this.idAttribute);\n this.trigger('changeId', this, prevId, options);\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n var hasChanged;\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n hasChanged = true;\n }\n return hasChanged ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Collection.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj, obj.idAttribute)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = comparator.bind(this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) collection.add(m, callbackOpts);\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs, idAttribute) {\n return attrs[idAttribute || this.model.prototype.idAttribute || 'id'];\n },\n\n // Get an iterator of all models in this collection.\n values: function() {\n return new CollectionIterator(this, ITERATOR_VALUES);\n },\n\n // Get an iterator of all model IDs in this collection.\n keys: function() {\n return new CollectionIterator(this, ITERATOR_KEYS);\n },\n\n // Get an iterator of all [ID, model] tuples in this collection.\n entries: function() {\n return new CollectionIterator(this, ITERATOR_KEYSVALUES);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n\n var model;\n if (this.model.prototype) {\n model = new this.model(attrs, options);\n } else {\n // ES class methods didn't have prototype\n model = this.model(attrs, options);\n }\n\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'changeId') {\n var prevId = this.modelId(model.previousAttributes(), model.idAttribute);\n var id = this.modelId(model.attributes, model.idAttribute);\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Defining an @@iterator method implements JavaScript's Iterable protocol.\n // In modern ES2015 browsers, this value is found at Symbol.iterator.\n /* global Symbol */\n var $$iterator = typeof Symbol === 'function' && Symbol.iterator;\n if ($$iterator) {\n Collection.prototype[$$iterator] = Collection.prototype.values;\n }\n\n // CollectionIterator\n // ------------------\n\n // A CollectionIterator implements JavaScript's Iterator protocol, allowing the\n // use of `for of` loops in modern browsers and interoperation between\n // Backbone.Collection and other JavaScript functions and third-party libraries\n // which can operate on Iterables.\n var CollectionIterator = function(collection, kind) {\n this._collection = collection;\n this._kind = kind;\n this._index = 0;\n };\n\n // This \"enum\" defines the three possible kinds of values which can be emitted\n // by a CollectionIterator that correspond to the values(), keys() and entries()\n // methods on Collection, respectively.\n var ITERATOR_VALUES = 1;\n var ITERATOR_KEYS = 2;\n var ITERATOR_KEYSVALUES = 3;\n\n // All Iterators should themselves be Iterable.\n if ($$iterator) {\n CollectionIterator.prototype[$$iterator] = function() {\n return this;\n };\n }\n\n CollectionIterator.prototype.next = function() {\n if (this._collection) {\n\n // Only continue iterating if the iterated collection is long enough.\n if (this._index < this._collection.length) {\n var model = this._collection.at(this._index);\n this._index++;\n\n // Construct a value depending on what kind of values should be iterated.\n var value;\n if (this._kind === ITERATOR_VALUES) {\n value = model;\n } else {\n var id = this._collection.modelId(model.attributes, model.idAttribute);\n if (this._kind === ITERATOR_KEYS) {\n value = id;\n } else { // ITERATOR_KEYSVALUES\n value = [id, model];\n }\n }\n return {value: value, done: false};\n }\n\n // Once exhausted, remove the reference to the collection so future\n // calls to the next method always return done.\n this._collection = void 0;\n }\n\n return {value: void 0, done: true};\n };\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n this.preinitialize.apply(this, arguments);\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the View\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], method.bind(this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(base, length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return base[method](this[attribute]);\n };\n case 2: return function(value) {\n return base[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return base[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return base[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return base[method].apply(base, args);\n };\n }\n };\n\n var addUnderscoreMethods = function(Class, base, methods, attribute) {\n _.each(methods, function(length, method) {\n if (base[method]) Class.prototype[method] = addMethod(base, length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n\n _.each([\n [Collection, collectionMethods, 'models'],\n [Model, modelMethods, 'attributes']\n ], function(config) {\n var Base = config[0],\n methods = config[1],\n attribute = config[2];\n\n Base.mixin = function(obj) {\n var mappings = _.reduce(_.functions(obj), function(memo, name) {\n memo[name] = 0;\n return memo;\n }, {});\n addUnderscoreMethods(Base, obj, mappings, attribute);\n };\n\n addUnderscoreMethods(Base, _, methods, attribute);\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Router.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = this.checkUrl.bind(this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var rootPath = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the fragment of the query and hash for matching.\n fragment = fragment.replace(pathStripper, '');\n\n // Decode for matching.\n var decodedFragment = this.decodeFragment(fragment);\n\n if (this.fragment === decodedFragment) return;\n this.fragment = decodedFragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n});\n","(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"codemirror/lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"codemirror/lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\n CodeMirror.extendMode(\"css\", {\n commentStart: \"/*\",\n commentEnd: \"*/\",\n newlineAfterToken: function(_type, content) {\n return /^[;{}]$/.test(content);\n }\n });\n\n CodeMirror.extendMode(\"javascript\", {\n commentStart: \"/*\",\n commentEnd: \"*/\",\n // FIXME semicolons inside of for\n newlineAfterToken: function(_type, content, textAfter, state) {\n if (this.jsonMode) {\n return /^[\\[,{]$/.test(content) || /^}/.test(textAfter);\n } else {\n if (content == \";\" && state.lexical && state.lexical.type == \")\") return false;\n return /^[;{}]$/.test(content) && !/^;/.test(textAfter);\n }\n }\n });\n\n var inlineElements = /^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;\n\n CodeMirror.extendMode(\"xml\", {\n commentStart: \"\",\n newlineAfterToken: function(type, content, textAfter, state) {\n var inline = false;\n if (this.configuration == \"html\")\n inline = state.context ? inlineElements.test(state.context.tagName) : false;\n return !inline && ((type == \"tag\" && />$/.test(content) && state.context) ||\n /^ -1 && endIndex > -1 && endIndex > startIndex) {\n // Take string till comment start\n selText = selText.substr(0, startIndex) +\n // From comment start till comment end\n selText.substring(startIndex + curMode.commentStart.length, endIndex) +\n // From comment end till string end\n selText.substr(endIndex + curMode.commentEnd.length);\n }\n cm.replaceRange(selText, from, to);\n }\n });\n });\n\n // Applies automatic mode-aware indentation to the specified range\n CodeMirror.defineExtension(\"autoIndentRange\", function (from, to) {\n var cmInstance = this;\n this.operation(function () {\n for (var i = from.line; i <= to.line; i++) {\n cmInstance.indentLine(i, \"smart\");\n }\n });\n });\n\n // Applies automatic formatting to the specified range\n CodeMirror.defineExtension(\"autoFormatRange\", function (from, to) {\n var cm = this;\n var outer = cm.getMode(), text = cm.getRange(from, to).split(\"\\n\");\n var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state);\n var tabSize = cm.getOption(\"tabSize\");\n\n var out = \"\", lines = 0, atSol = from.ch === 0;\n function newline() {\n out += \"\\n\";\n atSol = true;\n ++lines;\n }\n\n for (var i = 0; i < text.length; ++i) {\n var stream = new CodeMirror.StringStream(text[i], tabSize);\n while (!stream.eol()) {\n var inner = CodeMirror.innerMode(outer, state);\n var style = outer.token(stream, state), cur = stream.current();\n stream.start = stream.pos;\n if (!atSol || /\\S/.test(cur)) {\n out += cur;\n atSol = false;\n }\n if (!atSol && inner.mode.newlineAfterToken &&\n inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || \"\", inner.state))\n newline();\n }\n if (!stream.pos && outer.blankLine) outer.blankLine(state);\n if (!atSol && i < text.length - 1) newline();\n }\n\n cm.operation(function () {\n cm.replaceRange(out, from, to);\n for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur)\n cm.indentLine(cur, \"smart\");\n cm.setSelection(from, cm.getCursor(false));\n });\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// This is CodeMirror (https://codemirror.net/5), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\/(\\d+)/.exec(userAgent);\n var chrome_version = chrome && +chrome[1];\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt() {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var activeElement;\n try {\n activeElement = document.activeElement;\n } catch(e) {\n activeElement = document.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n if (lineView.rest) {\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX() {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }\n return window.pageXOffset || (document.documentElement || document.body).scrollLeft\n }\n function pageScrollY() {\n if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }\n return window.pageYOffset || (document.documentElement || document.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var ref = visualLine(lineObj);\n var widgets = ref.widgets;\n var height = 0;\n if (widgets) { for (var i = 0; i < widgets.length; ++i) { if (widgets[i].above)\n { height += widgetHeight(widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX();\n top -= pageScrollY();\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n var customCursor = cm.options.$customCursor;\n if (customCursor) { primary = true; }\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (customCursor) {\n var head = customCursor(cm, range);\n if (head) { drawSelectionCursor(cm, head, curFragment); }\n } else if (collapsed || cm.options.showCursorWhenSelecting) {\n drawSelectionCursor(cm, range.head, curFragment);\n }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (/\\bcm-fat-cursor\\b/.test(cm.getWrapperElement().className)) {\n var charPos = charCoords(cm, head, \"div\", null, null);\n var width = charPos.right - charPos.left;\n cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + \"px\";\n }\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);\n var oldHeight = display.lineDiv.getBoundingClientRect().top;\n var mustScroll = 0;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n oldHeight += cur.line.height;\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n if (oldHeight < viewTop) { mustScroll -= diff; }\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.scrollTop = 0;\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.visibility = this.vert.style.visibility = \"hidden\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.visibility = \"\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.visibility = \"hidden\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt();\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt();\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = window.getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var sel = window.getSelection(), range = document.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n // This attribute is respected by automatic translation systems such as Google Translate,\n // and may also be respected by tools used by human translators.\n d.wrapper.setAttribute('translate', 'no');\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n // On Chrome 102, viewport updates somehow stop wheel-based\n // scrolling. Turning off pointer events during the scroll seems\n // to avoid the issue.\n if (chrome && chrome_version >= 102) {\n if (cm.display.chromeScrollHack == null) { cm.display.sizer.style.pointerEvents = \"none\"; }\n else { clearTimeout(cm.display.chromeScrollHack); }\n cm.display.chromeScrollHack = setTimeout(function () {\n cm.display.chromeScrollHack = null;\n cm.display.sizer.style.pointerEvents = \"\";\n }, 100);\n }\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n var pixelsPerUnit = wheelPixelsPerUnit;\n if (e.deltaMode === 0) {\n dx = e.deltaX;\n dy = e.deltaY;\n pixelsPerUnit = 1;\n }\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && pixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && pixelsPerUnit != null) {\n var pixels = dy * pixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20 && e.deltaMode !== 0) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = range.head == range.anchor ? newAnchor : skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n if (lineSep === '') { return lines.join('') }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt();\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n window.focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt();\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput && cm.hasFocus())\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n disableBrowserMagic(te);\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){window.focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt() },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt();\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt() == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt() != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var this$1 = this;\n\n var input = this;\n if (this.selectionInEditor())\n { setTimeout(function () { return this$1.pollSelection(); }, 20); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing) { return }\n var cm = this.cm;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { window.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt();\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.65.6\";\n\n return CodeMirror;\n\n})));\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n var inline = parserConfig.inline\n if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n var indentUnit = config.indentUnit,\n tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"variable-2\", \"variable-definition\");\n return ret(\"variable-2\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variable callee\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override += \" error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {\n override += \" error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variable-3\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n startState: function(base) {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - indentUnit);\n }\n }\n return indent;\n },\n\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: lineComment,\n fold: \"brace\"\n };\n});\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n }\n\n var documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n ], documentTypes = keySet(documentTypes_);\n\n var mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n ], mediaTypes = keySet(mediaTypes_);\n\n var mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\",\n \"dynamic-range\", \"video-dynamic-range\"\n ], mediaFeatures = keySet(mediaFeatures_);\n\n var mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\",\n \"standard\", \"high\"\n ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n var propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n ], propertyKeywords = keySet(propertyKeywords_);\n\n var nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n var fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n ], fontProperties = keySet(fontProperties_);\n\n var counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n ], counterDescriptors = keySet(counterDescriptors_);\n\n var colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n ], colorKeywords = keySet(colorKeywords_);\n\n var valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"conic-gradient\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-play-button\", \"media-slider\", \"media-sliderthumb\",\n \"media-volume-slider\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\",\n \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\", \"repeating-radial-gradient\",\n \"repeating-conic-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n ], valueKeywords = keySet(valueKeywords_);\n\n var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n CodeMirror.defineMIME(\"text/css\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\"\n });\n\n CodeMirror.defineMIME(\"text/x-scss\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n },\n name: \"css\",\n helperType: \"scss\"\n });\n\n CodeMirror.defineMIME(\"text/x-less\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n },\n name: \"css\",\n helperType: \"less\"\n });\n\n CodeMirror.defineMIME(\"text/x-gss\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\",\n helperType: \"gss\"\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var defaultTags = {\n script: [\n [\"lang\", /(javascript|babel)/i, \"javascript\"],\n [\"type\", /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, \"javascript\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"javascript\"]\n ],\n style: [\n [\"lang\", /^css$/i, \"css\"],\n [\"type\", /^(text\\/)?(x-)?(stylesheet|css)$/i, \"css\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"css\"]\n ]\n };\n\n function maybeBackup(stream, pat, style) {\n var cur = stream.current(), close = cur.search(pat);\n if (close > -1) {\n stream.backUp(cur.length - close);\n } else if (cur.match(/<\\/?$/)) {\n stream.backUp(cur.length);\n if (!stream.match(pat, false)) stream.match(cur);\n }\n return style;\n }\n\n var attrRegexpCache = {};\n function getAttrRegexp(attr) {\n var regexp = attrRegexpCache[attr];\n if (regexp) return regexp;\n return attrRegexpCache[attr] = new RegExp(\"\\\\s+\" + attr + \"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\");\n }\n\n function getAttrValue(text, attr) {\n var match = text.match(getAttrRegexp(attr))\n return match ? /^\\s*(.*?)\\s*$/.exec(match[2])[1] : \"\"\n }\n\n function getTagRegexp(tagName, anchored) {\n return new RegExp((anchored ? \"^\" : \"\") + \"<\\/\\\\s*\" + tagName + \"\\\\s*>\", \"i\");\n }\n\n function addTags(from, to) {\n for (var tag in from) {\n var dest = to[tag] || (to[tag] = []);\n var source = from[tag];\n for (var i = source.length - 1; i >= 0; i--)\n dest.unshift(source[i])\n }\n }\n\n function findMatchingMode(tagInfo, tagText) {\n for (var i = 0; i < tagInfo.length; i++) {\n var spec = tagInfo[i];\n if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];\n }\n }\n\n CodeMirror.defineMode(\"htmlmixed\", function (config, parserConfig) {\n var htmlMode = CodeMirror.getMode(config, {\n name: \"xml\",\n htmlMode: true,\n multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag,\n allowMissingTagName: parserConfig.allowMissingTagName,\n });\n\n var tags = {};\n var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;\n addTags(defaultTags, tags);\n if (configTags) addTags(configTags, tags);\n if (configScript) for (var i = configScript.length - 1; i >= 0; i--)\n tags.script.unshift([\"type\", configScript[i].matches, configScript[i].mode])\n\n function html(stream, state) {\n var style = htmlMode.token(stream, state.htmlState), tag = /\\btag\\b/.test(style), tagName\n if (tag && !/[<>\\s\\/]/.test(stream.current()) &&\n (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&\n tags.hasOwnProperty(tagName)) {\n state.inTag = tagName + \" \"\n } else if (state.inTag && tag && />$/.test(stream.current())) {\n var inTag = /^([\\S]+) (.*)/.exec(state.inTag)\n state.inTag = null\n var modeSpec = stream.current() == \">\" && findMatchingMode(tags[inTag[1]], inTag[2])\n var mode = CodeMirror.getMode(config, modeSpec)\n var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);\n state.token = function (stream, state) {\n if (stream.match(endTagA, false)) {\n state.token = html;\n state.localState = state.localMode = null;\n return null;\n }\n return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));\n };\n state.localMode = mode;\n state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, \"\", \"\"));\n } else if (state.inTag) {\n state.inTag += stream.current()\n if (stream.eol()) state.inTag += \" \"\n }\n return style;\n };\n\n return {\n startState: function () {\n var state = CodeMirror.startState(htmlMode);\n return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};\n },\n\n copyState: function (state) {\n var local;\n if (state.localState) {\n local = CodeMirror.copyState(state.localMode, state.localState);\n }\n return {token: state.token, inTag: state.inTag,\n localMode: state.localMode, localState: local,\n htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n },\n\n token: function (stream, state) {\n return state.token(stream, state);\n },\n\n indent: function (state, textAfter, line) {\n if (!state.localMode || /^\\s*<\\//.test(textAfter))\n return htmlMode.indent(state.htmlState, textAfter, line);\n else if (state.localMode.indent)\n return state.localMode.indent(state.localState, textAfter, line);\n else\n return CodeMirror.Pass;\n },\n\n innerMode: function (state) {\n return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n }\n };\n }, \"xml\", \"javascript\", \"css\");\n\n CodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n pushcontext.lex = pushblockcontext.lex = true\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(maybeexpression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n 'track': true, 'wbr': true, 'menuitem': true},\n implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n 'th': true, 'tr': true},\n contextGrabbers: {\n 'dd': {'dd': true, 'dt': true},\n 'dt': {'dd': true, 'dt': true},\n 'li': {'li': true},\n 'option': {'option': true, 'optgroup': true},\n 'optgroup': {'optgroup': true},\n 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n 'rp': {'rp': true, 'rt': true},\n 'rt': {'rp': true, 'rt': true},\n 'tbody': {'tbody': true, 'tfoot': true},\n 'td': {'td': true, 'th': true},\n 'tfoot': {'tbody': true},\n 'th': {'td': true, 'th': true},\n 'thead': {'tbody': true, 'tfoot': true},\n 'tr': {'tr': true}\n },\n doNotIndent: {\"pre\": true},\n allowUnquoted: true,\n allowMissing: true,\n caseFold: true\n}\n\nvar xmlConfig = {\n autoSelfClosers: {},\n implicitlyClosed: {},\n contextGrabbers: {},\n doNotIndent: {},\n allowUnquoted: false,\n allowMissing: false,\n allowMissingTagName: false,\n caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n var indentUnit = editorConf.indentUnit\n var config = {}\n var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n for (var prop in defaults) config[prop] = defaults[prop]\n for (var prop in config_) config[prop] = config_[prop]\n\n // Return variables for tokenizers\n var type, setStyle;\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var ch = stream.next();\n if (ch == \"<\") {\n if (stream.eat(\"!\")) {\n if (stream.eat(\"[\")) {\n if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n else return null;\n } else if (stream.match(\"--\")) {\n return chain(inBlock(\"comment\", \"-->\"));\n } else if (stream.match(\"DOCTYPE\", true, true)) {\n stream.eatWhile(/[\\w\\._\\-]/);\n return chain(doctype(1));\n } else {\n return null;\n }\n } else if (stream.eat(\"?\")) {\n stream.eatWhile(/[\\w\\._\\-]/);\n state.tokenize = inBlock(\"meta\", \"?>\");\n return \"meta\";\n } else {\n type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n state.tokenize = inTag;\n return \"tag bracket\";\n }\n } else if (ch == \"&\") {\n var ok;\n if (stream.eat(\"#\")) {\n if (stream.eat(\"x\")) {\n ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n } else {\n ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n }\n } else {\n ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n }\n return ok ? \"atom\" : \"error\";\n } else {\n stream.eatWhile(/[^&<]/);\n return null;\n }\n }\n inText.isInText = true;\n\n function inTag(stream, state) {\n var ch = stream.next();\n if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n state.tokenize = inText;\n type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n return \"tag bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n return null;\n } else if (ch == \"<\") {\n state.tokenize = inText;\n state.state = baseState;\n state.tagName = state.tagStart = null;\n var next = state.tokenize(stream, state);\n return next ? next + \" tag error\" : \"tag error\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n state.stringStartCol = stream.column();\n return state.tokenize(stream, state);\n } else {\n stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n return \"word\";\n }\n }\n\n function inAttribute(quote) {\n var closure = function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inTag;\n break;\n }\n }\n return \"string\";\n };\n closure.isInAttribute = true;\n return closure;\n }\n\n function inBlock(style, terminator) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n return style;\n }\n }\n\n function doctype(depth) {\n return function(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"<\") {\n state.tokenize = doctype(depth + 1);\n return state.tokenize(stream, state);\n } else if (ch == \">\") {\n if (depth == 1) {\n state.tokenize = inText;\n break;\n } else {\n state.tokenize = doctype(depth - 1);\n return state.tokenize(stream, state);\n }\n }\n }\n return \"meta\";\n };\n }\n\n function lower(tagName) {\n return tagName && tagName.toLowerCase();\n }\n\n function Context(state, tagName, startOfLine) {\n this.prev = state.context;\n this.tagName = tagName || \"\";\n this.indent = state.indented;\n this.startOfLine = startOfLine;\n if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n this.noIndent = true;\n }\n function popContext(state) {\n if (state.context) state.context = state.context.prev;\n }\n function maybePopContext(state, nextTagName) {\n var parentTagName;\n while (true) {\n if (!state.context) {\n return;\n }\n parentTagName = state.context.tagName;\n if (!config.contextGrabbers.hasOwnProperty(lower(parentTagName)) ||\n !config.contextGrabbers[lower(parentTagName)].hasOwnProperty(lower(nextTagName))) {\n return;\n }\n popContext(state);\n }\n }\n\n function baseState(type, stream, state) {\n if (type == \"openTag\") {\n state.tagStart = stream.column();\n return tagNameState;\n } else if (type == \"closeTag\") {\n return closeTagNameState;\n } else {\n return baseState;\n }\n }\n function tagNameState(type, stream, state) {\n if (type == \"word\") {\n state.tagName = stream.current();\n setStyle = \"tag\";\n return attrState;\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return attrState(type, stream, state);\n } else {\n setStyle = \"error\";\n return tagNameState;\n }\n }\n function closeTagNameState(type, stream, state) {\n if (type == \"word\") {\n var tagName = stream.current();\n if (state.context && state.context.tagName != tagName &&\n config.implicitlyClosed.hasOwnProperty(lower(state.context.tagName)))\n popContext(state);\n if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n setStyle = \"tag\";\n return closeState;\n } else {\n setStyle = \"tag error\";\n return closeStateErr;\n }\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return closeState(type, stream, state);\n } else {\n setStyle = \"error\";\n return closeStateErr;\n }\n }\n\n function closeState(type, _stream, state) {\n if (type != \"endTag\") {\n setStyle = \"error\";\n return closeState;\n }\n popContext(state);\n return baseState;\n }\n function closeStateErr(type, stream, state) {\n setStyle = \"error\";\n return closeState(type, stream, state);\n }\n\n function attrState(type, _stream, state) {\n if (type == \"word\") {\n setStyle = \"attribute\";\n return attrEqState;\n } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n var tagName = state.tagName, tagStart = state.tagStart;\n state.tagName = state.tagStart = null;\n if (type == \"selfcloseTag\" ||\n config.autoSelfClosers.hasOwnProperty(lower(tagName))) {\n maybePopContext(state, tagName);\n } else {\n maybePopContext(state, tagName);\n state.context = new Context(state, tagName, tagStart == state.indented);\n }\n return baseState;\n }\n setStyle = \"error\";\n return attrState;\n }\n function attrEqState(type, stream, state) {\n if (type == \"equals\") return attrValueState;\n if (!config.allowMissing) setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrValueState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrContinuedState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n return attrState(type, stream, state);\n }\n\n return {\n startState: function(baseIndent) {\n var state = {tokenize: inText,\n state: baseState,\n indented: baseIndent || 0,\n tagName: null, tagStart: null,\n context: null}\n if (baseIndent != null) state.baseIndent = baseIndent\n return state\n },\n\n token: function(stream, state) {\n if (!state.tagName && stream.sol())\n state.indented = stream.indentation();\n\n if (stream.eatSpace()) return null;\n type = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n setStyle = null;\n state.state = state.state(type || style, stream, state);\n if (setStyle)\n style = setStyle == \"error\" ? style + \" error\" : setStyle;\n }\n return style;\n },\n\n indent: function(state, textAfter, fullLine) {\n var context = state.context;\n // Indent multi-line strings (e.g. css).\n if (state.tokenize.isInAttribute) {\n if (state.tagStart == state.indented)\n return state.stringStartCol + 1;\n else\n return state.indented + indentUnit;\n }\n if (context && context.noIndent) return CodeMirror.Pass;\n if (state.tokenize != inTag && state.tokenize != inText)\n return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n // Indent the starts of attribute names.\n if (state.tagName) {\n if (config.multilineTagIndentPastTag !== false)\n return state.tagStart + state.tagName.length + 2;\n else\n return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n }\n if (config.alignCDATA && /$/,\n blockCommentStart: \"\",\n\n configuration: config.htmlMode ? \"html\" : \"xml\",\n helperType: config.htmlMode ? \"html\" : \"xml\",\n\n skipAttribute: function(state) {\n if (state.state == attrValueState)\n state.state = attrState\n },\n\n xmlCurrentTag: function(state) {\n return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n },\n\n xmlCurrentContext: function(state) {\n var context = []\n for (var cx = state.context; cx; cx = cx.prev)\n context.push(cx.tagName)\n return context.reverse()\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n ed.DomComponents.clear();\n ed.CssComposer.clear();\n },\n} as CommandObject;\n","import { bindAll } from 'underscore';\nimport { on, off, getKeyChar } from '../../utils/mixins';\nimport Dragger from '../../utils/Dragger';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n bindAll(this, 'onKeyUp', 'enableDragger', 'disableDragger');\n this.editor = ed;\n this.canvasModel = this.canvas.getCanvasView().model;\n this.toggleMove(1);\n },\n stop(ed) {\n this.toggleMove();\n this.disableDragger();\n },\n\n onKeyUp(ev: KeyboardEvent) {\n if (getKeyChar(ev) === ' ') {\n this.editor.stopCommand(this.id);\n }\n },\n\n enableDragger(ev: Event) {\n this.toggleDragger(1, ev);\n },\n\n disableDragger(ev: Event) {\n this.toggleDragger(0, ev);\n },\n\n toggleDragger(enable: boolean, ev: Event) {\n const { canvasModel, em } = this;\n let { dragger } = this;\n const methodCls = enable ? 'add' : 'remove';\n this.getCanvas().classList[methodCls](`${this.ppfx}is__grabbing`);\n\n if (!dragger) {\n dragger = new Dragger({\n getPosition() {\n return {\n x: canvasModel.get('x'),\n y: canvasModel.get('y'),\n };\n },\n setPosition({ x, y }) {\n canvasModel.set({ x, y });\n },\n onStart(ev, dragger) {\n em.trigger('canvas:move:start', dragger);\n },\n onDrag(ev, dragger) {\n em.trigger('canvas:move', dragger);\n },\n onEnd(ev, dragger) {\n em.trigger('canvas:move:end', dragger);\n },\n });\n this.dragger = dragger;\n }\n\n enable ? dragger.start(ev) : dragger.stop();\n },\n\n toggleMove(enable: boolean) {\n const { ppfx } = this;\n const methodCls = enable ? 'add' : 'remove';\n const methodEv = enable ? 'on' : 'off';\n const methodsEv = { on, off };\n const canvas = this.getCanvas();\n const classes = [`${ppfx}is__grab`];\n !enable && classes.push(`${ppfx}is__grabbing`);\n classes.forEach(cls => canvas.classList[methodCls](cls));\n methodsEv[methodEv](document, 'keyup', this.onKeyUp);\n methodsEv[methodEv](canvas, 'mousedown', this.enableDragger);\n methodsEv[methodEv](document, 'mouseup', this.disableDragger);\n },\n} as CommandObject<\n any,\n {\n [key: string]: any;\n }\n>;\n","import CanvasModule from '../../canvas';\nimport { Model, ObjectAny } from '../../common';\nimport Editor from '../../editor';\nimport EditorModel from '../../editor/model/Editor';\n\ninterface ICommand {\n run?: CommandAbstract['run'];\n stop?: CommandAbstract['stop'];\n id?: string;\n [key: string]: unknown;\n}\n\nexport type CommandFunction = CommandAbstract['run'];\n\nexport type Command = CommandObject | CommandFunction;\n\nexport type CommandOptions = Record;\n\nexport type CommandObject = ICommand &\n T &\n ThisType>;\n\nexport function defineCommand(def: CommandObject) {\n return def;\n}\n\nexport default class CommandAbstract extends Model {\n config: any;\n em: EditorModel;\n pfx: string;\n ppfx: string;\n hoverClass: string;\n badgeClass: string;\n plhClass: string;\n freezClass: string;\n canvas: CanvasModule;\n\n constructor(o: any) {\n super(0);\n this.config = o || {};\n this.em = this.config.em || {};\n const pfx = this.config.stylePrefix;\n this.pfx = pfx;\n this.ppfx = this.config.pStylePrefix;\n this.hoverClass = `${pfx}hover`;\n this.badgeClass = `${pfx}badge`;\n this.plhClass = `${pfx}placeholder`;\n this.freezClass = `${this.ppfx}freezed`;\n this.canvas = this.em.Canvas;\n this.init(this.config);\n }\n\n /**\n * On frame scroll callback\n * @param {[type]} e [description]\n * @return {[type]} [description]\n */\n onFrameScroll(e: any) {}\n\n /**\n * Returns canval element\n * @return {HTMLElement}\n */\n getCanvas() {\n return this.canvas.getElement();\n }\n\n /**\n * Get canvas body element\n * @return {HTMLElement}\n */\n getCanvasBody() {\n return this.canvas.getBody();\n }\n\n /**\n * Get canvas wrapper element\n * @return {HTMLElement}\n */\n getCanvasTools() {\n return this.canvas.getToolsEl();\n }\n\n /**\n * Get the offset of the element\n * @param {HTMLElement} el\n * @return {Object}\n */\n offset(el: HTMLElement) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + el.ownerDocument.body.scrollTop,\n left: rect.left + el.ownerDocument.body.scrollLeft,\n };\n }\n\n /**\n * Callback triggered after initialize\n * @param {Object} o Options\n * @private\n * */\n init(o: any) {}\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callRun(editor: Editor, options: any = {}) {\n const id = this.id;\n editor.trigger(`run:${id}:before`, options);\n\n if (options && options.abort) {\n editor.trigger(`abort:${id}`, options);\n return;\n }\n\n const sender = options.sender || editor;\n const result = this.run(editor, sender, options);\n editor.trigger(`run:${id}`, result, options);\n editor.trigger('run', id, result, options);\n return result;\n }\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callStop(editor: Editor, options: any = {}) {\n const id = this.id;\n const sender = options.sender || editor;\n editor.trigger(`stop:${id}:before`, options);\n const result = this.stop(editor, sender, options);\n editor.trigger(`stop:${id}`, result, options);\n editor.trigger('stop', id, result, options);\n return result;\n }\n\n /**\n * Stop current command\n */\n stopCommand(opts?: any) {\n this.em.Commands.stop(this.id as string, opts);\n }\n\n /**\n * Method that run command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n run(em: Editor, sender: any, options: O) {}\n\n /**\n * Method that stop command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n stop(em: Editor, sender: any, options: O) {}\n}\n","import { isArray } from 'underscore';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nconst command: CommandObject<{ component?: Component }> = {\n run(ed, s, opts = {}) {\n const toSelect: Component[] = [];\n let components = opts.component || ed.getSelectedAll();\n components = isArray(components) ? [...components] : [components];\n\n components.filter(Boolean).forEach(component => {\n if (!component.get('removable')) {\n toSelect.push(component);\n return this.em.logWarning('The element is not removable', {\n component,\n });\n }\n component.remove();\n });\n\n ed.select(toSelect);\n\n return components;\n },\n};\n\nexport default command;\n","import { keys, bindAll, each, isUndefined, debounce } from 'underscore';\nimport Dragger from '../../utils/Dragger';\nimport { CommandObject } from './CommandAbstract';\n\ntype Rect = { left: number; width: number; top: number; height: number };\ntype OrigRect = { left: number; width: number; top: number; height: number; rect: Rect };\n\ntype Guide = {\n type: string;\n y: number;\n x: number;\n origin: HTMLElement;\n originRect: OrigRect;\n guide: HTMLElement;\n};\n\nconst evName = 'dmode';\n\nexport default {\n run(editor, sender, opts = {}) {\n bindAll(\n this,\n 'setPosition',\n 'onStart',\n 'onDrag',\n 'onEnd',\n 'getPosition',\n 'getGuidesStatic',\n 'renderGuide',\n 'getGuidesTarget'\n );\n const { target, event, mode, dragger = {} } = opts;\n const el = target.getEl();\n const config = {\n doc: el.ownerDocument,\n onStart: this.onStart,\n onEnd: this.onEnd,\n onDrag: this.onDrag,\n getPosition: this.getPosition,\n setPosition: this.setPosition,\n guidesStatic: () => this.guidesStatic,\n guidesTarget: () => this.guidesTarget,\n ...dragger,\n };\n this.setupGuides();\n this.opts = opts;\n this.editor = editor;\n this.em = editor.getModel();\n this.target = target;\n this.isTran = mode == 'translate';\n this.guidesContainer = this.getGuidesContainer();\n this.guidesTarget = this.getGuidesTarget();\n this.guidesStatic = this.getGuidesStatic();\n let drg = this.dragger;\n\n if (!drg) {\n drg = new Dragger(config);\n this.dragger = drg;\n } else {\n drg.setOptions(config);\n }\n\n event && drg.start(event);\n this.toggleDrag(1);\n this.em.trigger(`${evName}:start`, this.getEventOpts());\n\n return drg;\n },\n\n getEventOpts() {\n return {\n mode: this.opts.mode,\n target: this.target,\n guidesTarget: this.guidesTarget,\n guidesStatic: this.guidesStatic,\n };\n },\n\n stop() {\n this.toggleDrag();\n },\n\n setupGuides() {\n (this.guides || []).forEach((item: any) => {\n const { guide } = item;\n guide && guide.parentNode.removeChild(guide);\n });\n this.guides = [];\n },\n\n getGuidesContainer() {\n let { guidesEl } = this;\n\n if (!guidesEl) {\n const { editor, em, opts } = this;\n const pfx = editor.getConfig().stylePrefix;\n const elInfoX = document.createElement('div');\n const elInfoY = document.createElement('div');\n const guideContent = ``;\n guidesEl = document.createElement('div');\n guidesEl.className = `${pfx}guides`;\n elInfoX.className = `${pfx}guide-info ${pfx}guide-info__x`;\n elInfoY.className = `${pfx}guide-info ${pfx}guide-info__y`;\n elInfoX.innerHTML = guideContent;\n elInfoY.innerHTML = guideContent;\n guidesEl.appendChild(elInfoX);\n guidesEl.appendChild(elInfoY);\n editor.Canvas.getGlobalToolsEl().appendChild(guidesEl);\n this.guidesEl = guidesEl;\n this.elGuideInfoX = elInfoX;\n this.elGuideInfoY = elInfoY;\n this.elGuideInfoContentX = elInfoX.querySelector(`.${pfx}guide-info__content`);\n this.elGuideInfoContentY = elInfoY.querySelector(`.${pfx}guide-info__content`);\n\n em.on(\n 'canvas:update frame:scroll',\n debounce(() => {\n this.updateGuides();\n opts.debug && this.guides?.forEach((item: any) => this.renderGuide(item));\n }, 200)\n );\n }\n\n return guidesEl;\n },\n\n getGuidesStatic() {\n let result: any = [];\n const el = this.target.getEl();\n const { parentNode = {} } = el;\n each(parentNode.children, item => (result = result.concat(el !== item ? this.getElementGuides(item) : [])));\n\n return result.concat(this.getElementGuides(parentNode));\n },\n\n getGuidesTarget() {\n return this.getElementGuides(this.target.getEl());\n },\n\n updateGuides(guides: any) {\n let lastEl: any;\n let lastPos: any;\n (guides || this.guides).forEach((item: any) => {\n const { origin } = item;\n const pos = lastEl === origin ? lastPos : this.getElementPos(origin);\n lastEl = origin;\n lastPos = pos;\n each(this.getGuidePosUpdate(item, pos), (val, key) => (item[key] = val));\n item.originRect = pos;\n });\n },\n\n getGuidePosUpdate(item: any, rect: any) {\n const result: { x?: number; y?: number } = {};\n const { top, height, left, width } = rect;\n\n switch (item.type) {\n case 't':\n result.y = top;\n break;\n case 'b':\n result.y = top + height;\n break;\n case 'l':\n result.x = left;\n break;\n case 'r':\n result.x = left + width;\n break;\n case 'x':\n result.x = left + width / 2;\n break;\n case 'y':\n result.y = top + height / 2;\n break;\n }\n\n return result;\n },\n\n renderGuide(item: any = {}) {\n const el = item.guide || document.createElement('div');\n const un = 'px';\n const guideSize = item.active ? 2 : 1;\n let numEl = el.children[0];\n el.style = `position: absolute; background-color: ${item.active ? 'green' : 'red'};`;\n\n if (!el.children.length) {\n numEl = document.createElement('div');\n numEl.style = 'position: absolute; color: red; padding: 5px; top: 0; left: 0;';\n el.appendChild(numEl);\n }\n\n if (item.y) {\n el.style.width = '100%';\n el.style.height = `${guideSize}${un}`;\n el.style.top = `${item.y}${un}`;\n el.style.left = 0;\n } else {\n el.style.width = `${guideSize}${un}`;\n el.style.height = '100%';\n el.style.left = `${item.x}${un}`;\n el.style.top = `0${un}`;\n }\n\n !item.guide && this.guidesContainer.appendChild(el);\n return el;\n },\n\n getElementPos(el: HTMLElement) {\n return this.editor.Canvas.getElementPos(el, { noScroll: 1 });\n },\n\n getElementGuides(el: HTMLElement) {\n const { opts } = this;\n const originRect = this.getElementPos(el);\n const { top, height, left, width } = originRect;\n // @ts-ignore\n const guides: Guide[] = [\n { type: 't', y: top }, // Top\n { type: 'b', y: top + height }, // Bottom\n { type: 'l', x: left }, // Left\n { type: 'r', x: left + width }, // Right\n { type: 'x', x: left + width / 2 }, // Mid x\n { type: 'y', y: top + height / 2 }, // Mid y\n ].map(item => ({\n ...item,\n origin: el,\n originRect,\n guide: opts.debug && this.renderGuide(item),\n }));\n guides.forEach(item => this.guides?.push(item));\n\n return guides;\n },\n\n getTranslate(transform: string, axis = 'x') {\n let result = 0;\n (transform || '').split(' ').forEach(item => {\n const itemStr = item.trim();\n const fn = `translate${axis.toUpperCase()}(`;\n if (itemStr.indexOf(fn) === 0) result = parseFloat(itemStr.replace(fn, ''));\n });\n return result;\n },\n\n setTranslate(transform: string, axis: string, value: string) {\n const fn = `translate${axis.toUpperCase()}(`;\n const val = `${fn}${value})`;\n let result = (transform || '')\n .split(' ')\n .map(item => {\n const itemStr = item.trim();\n if (itemStr.indexOf(fn) === 0) item = val;\n return item;\n })\n .join(' ');\n if (result.indexOf(fn) < 0) result += ` ${val}`;\n\n return result;\n },\n\n getPosition() {\n const { target, isTran } = this;\n const { left, top, transform } = target.getStyle();\n let x = 0;\n let y = 0;\n\n if (isTran) {\n x = this.getTranslate(transform);\n y = this.getTranslate(transform, 'y');\n } else {\n x = parseFloat(left || 0);\n y = parseFloat(top || 0);\n }\n\n return { x, y };\n },\n\n setPosition({ x, y, end, position, width, height }: any) {\n const { target, isTran, em } = this;\n const unit = 'px';\n const __p = !end; // Indicate if partial change\n const left = `${parseInt(x, 10)}${unit}`;\n const top = `${parseInt(y, 10)}${unit}`;\n let styleUp = {};\n\n if (isTran) {\n let transform = target.getStyle()['transform'] || '';\n transform = this.setTranslate(transform, 'x', left);\n transform = this.setTranslate(transform, 'y', top);\n styleUp = { transform, __p };\n target.addStyle(styleUp, { avoidStore: !end });\n } else {\n const adds: any = { position, width, height };\n const style: any = { left, top, __p };\n keys(adds).forEach(add => {\n const prop = adds[add];\n if (prop) style[add] = prop;\n });\n styleUp = style;\n target.addStyle(styleUp, { avoidStore: !end });\n }\n\n em?.Styles.__emitCmpStyleUpdate(styleUp, { components: em.getSelected() });\n },\n\n _getDragData() {\n const { target } = this;\n return {\n target,\n parent: target.parent(),\n index: target.index(),\n };\n },\n\n onStart(event: Event) {\n const { target, editor, isTran, opts } = this;\n const { center, onStart } = opts;\n const { Canvas } = editor;\n const style = target.getStyle();\n const position = 'absolute';\n const relPos = [position, 'relative'];\n onStart && onStart(this._getDragData());\n if (isTran) return;\n\n if (style.position !== position) {\n let { left, top, width, height } = Canvas.offset(target.getEl());\n let parent = target.parent();\n let parentRel;\n\n // Check for the relative parent\n do {\n const pStyle = parent.getStyle();\n parentRel = relPos.indexOf(pStyle.position) >= 0 ? parent : null;\n parent = parent.parent();\n } while (parent && !parentRel);\n\n // Center the target to the pointer position (used in Droppable for Blocks)\n if (center) {\n const { x, y } = Canvas.getMouseRelativeCanvas(event);\n left = x;\n top = y;\n } else if (parentRel) {\n const offsetP = Canvas.offset(parentRel.getEl());\n left = left - offsetP.left;\n top = top - offsetP.top;\n }\n\n this.setPosition({\n x: left,\n y: top,\n width: `${width}px`,\n height: `${height}px`,\n position,\n });\n }\n },\n\n onDrag(...args: any) {\n const { guidesTarget, opts } = this;\n const { onDrag } = opts;\n this.updateGuides(guidesTarget);\n opts.debug && guidesTarget.forEach((item: any) => this.renderGuide(item));\n opts.guidesInfo && this.renderGuideInfo(guidesTarget.filter((item: any) => item.active));\n onDrag && onDrag(this._getDragData());\n },\n\n onEnd(ev: Event, dragger: any, opt = {}) {\n const { editor, opts, id } = this;\n const { onEnd } = opts;\n onEnd && onEnd(ev, opt, { event: ev, ...opt, ...this._getDragData() });\n editor.stopCommand(id);\n this.hideGuidesInfo();\n this.em.trigger(`${evName}:end`, this.getEventOpts());\n },\n\n hideGuidesInfo() {\n ['X', 'Y'].forEach(item => {\n const guide = this[`elGuideInfo${item}`];\n if (guide) guide.style.display = 'none';\n });\n },\n\n /**\n * Render guides with spacing information\n */\n renderGuideInfo(guides: Guide[] = []) {\n const { guidesStatic } = this;\n this.hideGuidesInfo();\n guides.forEach(item => {\n const { origin, x } = item;\n const rectOrigin = this.getElementPos(origin);\n const axis = isUndefined(x) ? 'y' : 'x';\n const isY = axis === 'y';\n const origEdge1 = rectOrigin[isY ? 'left' : 'top'];\n const origEdge1Raw = rectOrigin.rect[isY ? 'left' : 'top'];\n const origEdge2 = isY ? origEdge1 + rectOrigin.width : origEdge1 + rectOrigin.height;\n const origEdge2Raw = isY ? origEdge1Raw + rectOrigin.rect.width : origEdge1Raw + rectOrigin.rect.height;\n const elGuideInfo = this[`elGuideInfo${axis.toUpperCase()}`];\n const elGuideInfoCnt = this[`elGuideInfoContent${axis.toUpperCase()}`];\n const guideInfoStyle = elGuideInfo.style;\n\n // Find the nearest element\n const res = guidesStatic\n ?.filter(stat => stat.type === item.type)\n .map(stat => {\n const { left, width, top, height } = stat.originRect;\n const statEdge1 = isY ? left : top;\n const statEdge2 = isY ? left + width : top + height;\n return {\n gap: statEdge2 < origEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2,\n guide: stat,\n };\n })\n .filter(item => item.gap > 0)\n .sort((a, b) => a.gap - b.gap)\n .map(item => item.guide)[0];\n\n if (res) {\n const { left, width, top, height, rect } = res.originRect;\n const isEdge1 = isY ? left < rectOrigin.left : top < rectOrigin.top;\n const statEdge1 = isY ? left : top;\n const statEdge1Raw = isY ? rect.left : rect.top;\n const statEdge2 = isY ? left + width : top + height;\n const statEdge2Raw = isY ? rect.left + rect.width : rect.top + rect.height;\n const posFirst = isY ? item.y : item.x;\n const posSecond = isEdge1 ? statEdge2 : origEdge2;\n const pos2 = `${posFirst}px`;\n const size = isEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2;\n const sizeRaw = isEdge1 ? origEdge1Raw - statEdge2Raw : statEdge1Raw - origEdge2Raw;\n guideInfoStyle.display = '';\n guideInfoStyle[isY ? 'top' : 'left'] = pos2;\n guideInfoStyle[isY ? 'left' : 'top'] = `${posSecond}px`;\n guideInfoStyle[isY ? 'width' : 'height'] = `${size}px`;\n elGuideInfoCnt.innerHTML = `${Math.round(sizeRaw)}px`;\n this.em.trigger(`${evName}:active`, {\n ...this.getEventOpts(),\n guide: item,\n guidesStatic,\n matched: res,\n posFirst,\n posSecond,\n size,\n sizeRaw,\n elGuideInfo,\n elGuideInfoCnt,\n });\n }\n });\n },\n\n toggleDrag(enable: boolean) {\n const { ppfx, editor } = this;\n const methodCls = enable ? 'add' : 'remove';\n const classes = [`${ppfx}is__grabbing`];\n const { Canvas } = editor;\n const body = Canvas.getBody();\n classes.forEach(cls => body.classList[methodCls](cls));\n Canvas[enable ? 'startAutoscroll' : 'stopAutoscroll']();\n },\n} as CommandObject<\n any,\n {\n guidesStatic?: Guide[];\n guides?: Guide[];\n [k: string]: any;\n }\n>;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(component => {\n const coll = component.components();\n const next = coll && coll.filter((c: any) => c.get('selectable'))[0];\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed, snd, opts = {}) {\n if (!ed.Canvas.hasFocus() && !opts.force) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(component => {\n let next = component.parent();\n\n // Recurse through the parent() chain until a selectable parent is found\n while (next && !next.get('selectable')) {\n next = next.parent();\n }\n\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n const len = parent.components().length;\n let incr = 0;\n let at = 0;\n let next: any;\n\n // Get the next selectable component\n do {\n incr++;\n at = cmp.index() + incr;\n next = at <= len ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n let incr = 0;\n let at = 0;\n let next: any;\n\n // Get the first selectable component\n do {\n incr++;\n at = cmp.index() - incr;\n next = at >= 0 ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import { flatten } from 'underscore';\nimport CssRule from '../../css_composer/model/CssRule';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed, s, opts = {}) {\n const { target } = opts;\n let toRemove: CssRule[] = [];\n\n if (!target.get('styles')) return toRemove;\n\n // Find all components in the project, of the target component type\n const type = target.get('type');\n const wrappers = ed.Pages.getAllWrappers();\n const len = flatten(wrappers.map(wrp => wrp.findType(type))).length;\n\n // Remove component related styles only if there are no more components\n // of that type in the project\n if (!len) {\n const rules = ed.CssComposer.getAll();\n toRemove = rules.filter(rule => rule.get('group') === `cmp:${type}`);\n rules.remove(toRemove);\n }\n\n return toRemove;\n },\n} as CommandObject;\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n const em = ed.getModel();\n const models = [...ed.getSelectedAll()];\n models.length && em.set('clipboard', models);\n },\n} as CommandObject;\n","import { bindAll, extend } from 'underscore';\nimport { $ } from '../../common';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\nimport SelectComponent from './SelectComponent';\n\nexport default extend({}, SelectComponent, {\n init() {\n bindAll(this, 'startDelete', 'stopDelete', 'onDelete');\n this.hoverClass = this.pfx + 'hover-delete';\n this.badgeClass = this.pfx + 'badge-red';\n },\n\n enable() {\n var that = this;\n this.$el.find('*').mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete);\n },\n\n /**\n * Start command\n * @param {Object} e\n * @private\n */\n startDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Show badge if possible\n if ($this.data('model').get('removable')) {\n $this.addClass(this.hoverClass);\n this.attachBadge($this.get(0));\n }\n },\n\n /**\n * Stop command\n * @param {Object} e\n * @private\n */\n stopDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n $this.removeClass(this.hoverClass);\n\n // Hide badge if possible\n if (this.badge) this.badge.css({ left: -1000, top: -1000 });\n },\n\n /**\n * Delete command\n * @param {Object} e\n * @private\n */\n onDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Do nothing in case can't remove\n if (!$this.data('model').get('removable')) return;\n\n $this.data('model').destroy();\n this.removeBadge();\n this.clean();\n },\n\n /**\n * Updates badge label\n * @param {Object} model\n * @private\n * */\n updateBadgeLabel(model: Component) {\n this.badge.html('Remove ' + model.getName());\n },\n} as CommandObject<{}, { [k: string]: any }>);\n","import { CommandObject } from './CommandAbstract';\nimport { EditorParam } from '../../editor';\nimport { createEl } from '../../utils/dom';\n\ninterface ExportTemplateRunOptions {\n optsHtml?: EditorParam<'getHtml', 0>;\n optsCss?: EditorParam<'getCss', 0>;\n}\n\nexport default {\n run(editor, sender, opts: ExportTemplateRunOptions = {}) {\n sender && sender.set && sender.set('active', 0);\n const config = editor.getConfig();\n const modal = editor.Modal;\n const pfx = config.stylePrefix;\n this.cm = editor.CodeManager || null;\n\n if (!this.editors) {\n const oHtmlEd = this.buildEditor('htmlmixed', 'hopscotch', 'HTML');\n const oCsslEd = this.buildEditor('css', 'hopscotch', 'CSS');\n this.htmlEditor = oHtmlEd.model;\n this.cssEditor = oCsslEd.model;\n const editors = createEl('div', { class: `${pfx}export-dl` });\n editors.appendChild(oHtmlEd.el);\n editors.appendChild(oCsslEd.el);\n this.editors = editors;\n }\n\n modal\n .open({\n title: config.textViewCode,\n content: this.editors,\n })\n .getModel()\n .once('change:open', () => editor.stopCommand(`${this.id}`));\n this.htmlEditor.setContent(editor.getHtml(opts.optsHtml));\n this.cssEditor.setContent(editor.getCss(opts.optsCss));\n },\n\n stop(editor) {\n const modal = editor.Modal;\n modal && modal.close();\n },\n\n buildEditor(codeName: string, theme: string, label: string) {\n const cm = this.em.CodeManager;\n const model = cm.createViewer({\n label,\n codeName,\n theme,\n });\n\n const el = new cm.EditorView({\n model,\n config: cm.getConfig(),\n } as any).render().el;\n\n return { model, el };\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isElement } from 'underscore';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n /**\n * Check if fullscreen mode is enabled\n * @return {Boolean}\n */\n isEnabled() {\n const d = document;\n // @ts-ignore\n if (d.fullscreenElement || d.webkitFullscreenElement || d.mozFullScreenElement) {\n return true;\n }\n return false;\n },\n\n /**\n * Enable fullscreen mode and return browser prefix\n * @param {HTMLElement} el\n * @return {string}\n */\n enable(el: any) {\n let pfx = '';\n\n if (el.requestFullscreen) {\n el.requestFullscreen();\n } else if (el.webkitRequestFullscreen) {\n pfx = 'webkit';\n el.webkitRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n pfx = 'moz';\n el.mozRequestFullScreen();\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen();\n }\n\n return pfx;\n },\n\n /**\n * Disable fullscreen mode\n */\n disable() {\n const d: any = document;\n\n if (this.isEnabled()) {\n if (d.exitFullscreen) d.exitFullscreen();\n else if (d.webkitExitFullscreen) d.webkitExitFullscreen();\n else if (d.mozCancelFullScreen) d.mozCancelFullScreen();\n else if (d.msExitFullscreen) d.msExitFullscreen();\n }\n },\n\n /**\n * Triggered when the state of the fullscreen is changed. Inside detects if\n * it's enabled\n * @param {strinf} pfx Browser prefix\n * @param {Event} e\n */\n fsChanged(pfx: string) {\n if (!this.isEnabled()) {\n this.stopCommand({ sender: this.sender });\n document.removeEventListener(`${pfx || ''}fullscreenchange`, this.fsChanged);\n }\n },\n\n run(editor, sender, opts = {}) {\n this.sender = sender;\n const { target } = opts;\n const targetEl = isElement(target) ? target : document.querySelector(target!);\n const pfx = this.enable(targetEl || editor.getContainer());\n this.fsChanged = this.fsChanged.bind(this, pfx);\n document.addEventListener(pfx + 'fullscreenchange', this.fsChanged);\n editor.trigger('change:canvasOffset');\n },\n\n stop(editor, sender) {\n if (sender && sender.set) sender.set('active', false);\n this.disable();\n if (editor) editor.trigger('change:canvasOffset');\n },\n} as CommandObject<{ target?: HTMLElement | string }, { [k: string]: any }>;\n","import { extend, bindAll } from 'underscore';\nimport { $ } from '../../common';\nimport { on, off } from '../../utils/mixins';\nimport SelectComponent from './SelectComponent';\nimport SelectPosition from './SelectPosition';\nimport { CommandObject } from './CommandAbstract';\nimport Component from '../../dom_components/model/Component';\n\nexport default extend({}, SelectPosition, SelectComponent, {\n init(o: any) {\n SelectComponent.init.apply(this, arguments);\n bindAll(this, 'initSorter', 'rollback', 'onEndMove');\n this.opt = o;\n this.hoverClass = this.ppfx + 'highlighter-warning';\n this.badgeClass = this.ppfx + 'badge-warning';\n this.noSelClass = this.ppfx + 'no-select';\n },\n\n enable(...args: any) {\n SelectComponent.enable.apply(this, args);\n this.getBadgeEl().addClass(this.badgeClass);\n this.getHighlighterEl().addClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', 'move');\n wp.on('mousedown', this.initSorter);\n\n // Avoid strange moving behavior\n wp.addClass(this.noSelClass);\n },\n\n /**\n * Overwrite for doing nothing\n * @private\n */\n toggleClipboard() {},\n\n /**\n * Delegate sorting\n * @param {Event} e\n * @private\n * */\n initSorter(e: any) {\n var el = $(e.target).data('model');\n var drag = el.get('draggable');\n if (!drag) return;\n\n // Avoid badge showing on move\n this.cacheEl = null;\n this.startSelectPosition(e.target, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMove.bind(this);\n this.stopSelectComponent();\n this.$wrapper.off('mousedown', this.initSorter);\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from model\n * @param {Object} model\n * @private\n */\n initSorterFromModel(model: Component) {\n var drag = model.get('draggable');\n if (!drag) return;\n // Avoid badge showing on move\n this.cacheEl = null;\n // @ts-ignore\n var el = model.view.el;\n this.startSelectPosition(el, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n\n /*\n this.sorter.setDragHelper(el);\n var dragHelper = this.sorter.dragHelper;\n dragHelper.className = this.ppfx + 'drag-helper';\n dragHelper.innerHTML = '';\n dragHelper.backgroundColor = 'white';\n */\n\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from models\n * @param {Object} model\n * @private\n */\n initSorterFromModels(models: Component[]) {\n // TODO: if one only check for `draggable`\n // Avoid badge showing on move\n this.cacheEl = null;\n const lastModel = models[models.length - 1];\n const frame = (this.em.get('currentFrame') || {}).model;\n const el = lastModel.getEl(frame)!;\n const doc = el.ownerDocument;\n this.startSelectPosition(el, doc, { onStart: this.onStart });\n this.sorter.draggable = lastModel.get('draggable');\n this.sorter.toMove = models;\n this.sorter.onMoveClb = this.onDrag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n onEndMoveFromModel() {\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Callback after sorting\n * @private\n */\n onEndMove() {\n this.enable();\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Say what to do after the component was selected (selectComponent)\n * @param {Event} e\n * @param {Object} Selected element\n * @private\n * */\n onSelect(e: any, el: any) {},\n\n /**\n * Used to bring the previous situation before start moving the component\n * @param {Event} e\n * @param {Boolean} Indicates if rollback in anycase\n * @private\n * */\n rollback(e: any, force: boolean) {\n var key = e.which || e.keyCode;\n if (key == 27 || force) {\n this.sorter.moved = false;\n this.sorter.endMove();\n }\n return;\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadgeEl() {\n if (!this.$badge) this.$badge = $(this.getBadge());\n return this.$badge;\n },\n\n /**\n * Returns highlighter element\n * @return {HTMLElement}\n * @private\n */\n getHighlighterEl() {\n if (!this.$hl) this.$hl = $(this.canvas.getHighlighter());\n return this.$hl;\n },\n\n stop(...args) {\n // @ts-ignore\n SelectComponent.stop.apply(this, args);\n this.getBadgeEl().removeClass(this.badgeClass);\n this.getHighlighterEl().removeClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', '').unbind().removeClass(this.noSelClass);\n },\n} as CommandObject<{}, { [k: string]: any }>);\n","import { isFunction } from 'underscore';\nimport Asset from '../../asset_manager/model/Asset';\nimport { createEl } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n open(content: string) {\n const { editor, title, config, am } = this;\n const { custom } = config;\n if (isFunction(custom.open)) {\n return custom.open(am.__customData());\n }\n const { Modal } = editor;\n Modal.open({ title, content }).onceClose(() => editor.stopCommand(this.id));\n },\n\n close() {\n const { custom } = this.config;\n if (isFunction(custom.close)) {\n return custom.close(this.am.__customData());\n }\n const { Modal } = this.editor;\n Modal && Modal.close();\n },\n\n run(editor, sender, opts = {}) {\n const am = editor.AssetManager;\n const config = am.getConfig();\n const { types = [], accept, select } = opts;\n this.title = opts.modalTitle || editor.t('assetManager.modalTitle') || '';\n this.editor = editor;\n this.config = config;\n this.am = am;\n\n am.setTarget(opts.target);\n am.onClick(opts.onClick);\n am.onDblClick(opts.onDblClick);\n am.onSelect(opts.onSelect);\n am.__behaviour({\n select,\n types,\n options: opts,\n });\n\n if (config.custom) {\n this.rendered = this.rendered || createEl('div');\n this.rendered.className = `${config.stylePrefix}custom-wrp`;\n am.__behaviour({ container: this.rendered });\n am.__trgCustom();\n } else {\n if (!this.rendered || types) {\n let assets: Asset[] = am.getAll().filter((i: Asset) => i);\n\n if (types && types.length) {\n assets = assets.filter(a => types.indexOf(a.get('type')) !== -1);\n }\n\n am.render(assets);\n this.rendered = am.getContainer();\n }\n\n if (accept) {\n const uploadEl = this.rendered.querySelector(`input#${config.stylePrefix}uploadFile`);\n uploadEl && uploadEl.setAttribute('accept', accept);\n }\n }\n\n this.open(this.rendered);\n return this;\n },\n\n stop(editor) {\n this.editor = editor;\n this.close(this.rendered);\n },\n} as CommandObject;\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n open() {\n const { container, editor, bm, config } = this;\n const { custom, appendTo } = config;\n\n if (isFunction(custom.open)) {\n return custom.open(bm.__customData());\n }\n\n if (this.firstRender && !appendTo) {\n const id = 'views-container';\n const pn = editor.Panels;\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n panels.set('appendContent', container).trigger('change:appendContent');\n if (!custom) container.appendChild(bm.render());\n }\n\n if (container) container.style.display = 'block';\n },\n\n close() {\n const { container, config } = this;\n const { custom } = config;\n\n if (isFunction(custom.close)) {\n return custom.close(this.bm.__customData());\n }\n\n if (container) container.style.display = 'none';\n },\n\n run(editor) {\n const bm = editor.Blocks;\n this.config = bm.getConfig();\n this.firstRender = !this.container;\n this.container = this.container || createEl('div');\n this.editor = editor;\n this.bm = bm;\n const { container } = this;\n bm.__behaviour({\n container,\n });\n\n if (this.config.custom) {\n bm.__trgCustom();\n }\n\n this.open();\n },\n\n stop() {\n this.close();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor) {\n const lm = editor.LayerManager;\n const pn = editor.Panels;\n const lmConfig = lm.getConfig();\n\n if (lmConfig.appendTo) return;\n\n if (!this.layers) {\n const id = 'views-container';\n const layers = document.createElement('div');\n // @ts-ignore\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n\n if (lmConfig.custom) {\n lm.__trgCustom({ container: layers });\n } else {\n layers.appendChild(lm.render());\n }\n\n panels.set('appendContent', layers).trigger('change:appendContent');\n this.layers = layers;\n }\n\n this.layers.style.display = 'block';\n },\n\n stop() {\n const { layers } = this;\n layers && (layers.style.display = 'none');\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { $ } from '../../common';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n\n if (!this.$cnt) {\n const config = editor.getConfig();\n const { Panels, DeviceManager, SelectorManager, StyleManager } = editor;\n const trgEvCnt = 'change:appendContent';\n const $cnt = $('');\n const $cntInner = $('');\n const $cntSlm = $('');\n const $cntSm = $('');\n this.$cnt = $cnt;\n this.$cntInner = $cntInner;\n $cntInner.append($cntSlm);\n $cntInner.append($cntSm);\n $cnt.append($cntInner);\n\n // Device Manager\n if (DeviceManager && config.showDevices) {\n const devicePanel = Panels.addPanel({ id: 'devices-c' });\n const dvEl = DeviceManager.render();\n devicePanel.set('appendContent', dvEl).trigger(trgEvCnt);\n }\n\n // Selector Manager container\n const slmConfig = SelectorManager.getConfig();\n if (slmConfig.custom) {\n SelectorManager.__trgCustom({ container: $cntSlm.get(0) });\n } else if (!slmConfig.appendTo) {\n $cntSlm.append(SelectorManager.render([]));\n }\n\n // Style Manager\n this.sm = StyleManager;\n const smConfig = StyleManager.getConfig();\n const pfx = smConfig.stylePrefix;\n this.$header = $(``);\n $cnt.append(this.$header);\n\n if (smConfig.custom) {\n StyleManager.__trgCustom({ container: $cntSm.get(0) });\n } else if (!smConfig.appendTo) {\n $cntSm.append(StyleManager.render());\n }\n\n // Create panel if not exists\n const pnCnt = 'views-container';\n const pnl = Panels.getPanel(pnCnt) || Panels.addPanel({ id: pnCnt });\n\n // Add all containers to the panel\n pnl.set('appendContent', $cnt).trigger(trgEvCnt);\n\n // Toggle Style Manager on target selection\n const em = editor.getModel();\n this.listenTo(em, StyleManager.events.target, this.toggleSm);\n }\n\n this.toggleSm();\n },\n\n /**\n * Toggle Style Manager visibility\n * @private\n */\n toggleSm() {\n const { sender, sm, $cntInner, $header } = this;\n if ((sender && sender.get && !sender.get('active')) || !sm) return;\n\n if (sm.getSelected()) {\n $cntInner?.show();\n $header?.hide();\n } else {\n $cntInner?.hide();\n $header?.show();\n }\n },\n\n stop() {\n this.$cntInner?.hide();\n this.$header?.hide();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { CommandObject } from './CommandAbstract';\nimport { $ } from '../../common';\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n const em = editor.getModel();\n\n const config = editor.Config;\n const pfx = config.stylePrefix;\n const tm = editor.TraitManager;\n const confTm = tm.getConfig();\n let panelC;\n\n if (confTm.appendTo) return;\n\n if (!this.$cn) {\n this.$cn = $('');\n this.$cn2 = $('');\n this.$cn.append(this.$cn2);\n this.$header = $('').append(``);\n this.$cn.append(this.$header);\n\n if (confTm.custom) {\n tm.__trgCustom({ container: this.$cn2.get(0) });\n } else {\n this.$cn2.append(`
${em.t('traitManager.label')}
`);\n this.$cn2.append(tm.render());\n }\n\n var panels = editor.Panels;\n\n if (!panels.getPanel('views-container')) {\n // @ts-ignore\n panelC = panels.addPanel({ id: 'views-container' });\n } else {\n panelC = panels.getPanel('views-container');\n }\n\n panelC?.set('appendContent', this.$cn.get(0)).trigger('change:appendContent');\n\n this.target = editor.getModel();\n this.listenTo(this.target, 'component:toggled', this.toggleTm);\n }\n\n this.toggleTm();\n },\n\n /**\n * Toggle Trait Manager visibility\n * @private\n */\n toggleTm() {\n const sender = this.sender;\n if (sender && sender.get && !sender.get('active')) return;\n\n if (this.target.getSelectedAll().length === 1) {\n this.$cn2.show();\n this.$header.hide();\n } else {\n this.$cn2.hide();\n this.$header.show();\n }\n },\n\n stop() {\n this.$cn2 && this.$cn2.hide();\n this.$header && this.$header.hide();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isArray, contains } from 'underscore';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed, s, opts = {}) {\n const em = ed.getModel();\n const clp: Component[] = em.get('clipboard');\n const lastSelected = ed.getSelected();\n\n if (clp && lastSelected) {\n ed.getSelectedAll().forEach(selected => {\n const { collection } = selected;\n if (!collection) return;\n\n let added;\n const at = selected.index() + 1;\n const addOpts = { at, action: opts.action || 'paste-component' };\n\n if (contains(clp, selected) && selected.get('copyable')) {\n // @ts-ignore\n added = collection.add(selected.clone(), addOpts);\n } else {\n const copyable = clp.filter(cop => cop.get('copyable'));\n const pasteable = copyable.filter(cop => ed.Components.canMove(selected.parent()!, cop).result);\n added = collection.add(\n // @ts-ignore\n pasteable.map(cop => cop.clone()),\n addOpts\n );\n }\n\n added = isArray(added) ? added : [added];\n added.forEach(add => ed.trigger('component:paste', add));\n });\n\n lastSelected.emitUpdate();\n }\n },\n} as CommandObject;\n","import { each } from 'underscore';\nimport Editor from '../../editor';\nimport { CommandObject } from './CommandAbstract';\n\nconst cmdOutline = 'core:component-outline';\n\nexport default {\n getPanels(editor: Editor) {\n if (!this.panels) {\n this.panels = editor.Panels.getPanels();\n }\n\n return this.panels;\n },\n\n preventDrag(opts: any) {\n opts.abort = 1;\n },\n\n tglEffects(on: boolean) {\n const { em } = this;\n const mthEv = on ? 'on' : 'off';\n if (em) {\n const canvas = em.Canvas;\n const body = canvas.getBody();\n const tlb = canvas.getToolbarEl();\n tlb && (tlb.style.display = on ? 'none' : '');\n const elP = body.querySelectorAll(`.${this.ppfx}no-pointer`);\n each(elP, item => ((item as HTMLElement).style.pointerEvents = on ? 'all' : ''));\n em[mthEv]('run:tlb-move:before', this.preventDrag);\n }\n },\n\n run(editor, sender) {\n this.sender = sender;\n this.selected = [...editor.getSelectedAll()];\n editor.select();\n\n if (!this.shouldRunSwVisibility) {\n this.shouldRunSwVisibility = editor.Commands.isActive(cmdOutline);\n }\n\n this.shouldRunSwVisibility && editor.stopCommand(cmdOutline);\n editor.getModel().stopDefault();\n\n const panels = this.getPanels(editor);\n const canvas = editor.Canvas.getElement();\n const editorEl = editor.getEl()!;\n const pfx = editor.Config.stylePrefix;\n\n if (!this.helper) {\n const helper = document.createElement('span');\n helper.className = `${pfx}off-prv fa fa-eye-slash`;\n editorEl.appendChild(helper);\n helper.onclick = () => this.stopCommand();\n this.helper = helper;\n }\n\n this.helper.style.display = 'inline-block';\n\n panels.forEach((panel: any) => panel.set('visible', false));\n\n const canvasS = canvas.style;\n canvasS.width = '100%';\n canvasS.height = '100%';\n canvasS.top = '0';\n canvasS.left = '0';\n canvasS.padding = '0';\n canvasS.margin = '0';\n editor.refresh();\n this.tglEffects(1);\n },\n\n stop(editor) {\n const { sender = {}, selected } = this;\n sender.set && sender.set('active', 0);\n const panels = this.getPanels(editor);\n\n if (this.shouldRunSwVisibility) {\n editor.runCommand(cmdOutline);\n this.shouldRunSwVisibility = false;\n }\n\n editor.getModel().runDefault();\n panels.forEach((panel: any) => panel.set('visible', true));\n\n const canvas = editor.Canvas.getElement();\n canvas.setAttribute('style', '');\n selected && editor.select(selected);\n delete this.selected;\n\n if (this.helper) {\n this.helper.style.display = 'none';\n }\n\n editor.refresh();\n this.tglEffects();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import Resizer from '../../utils/Resizer';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor, sender, opts) {\n const opt = opts || {};\n const canvas = editor.Canvas;\n const canvasView = canvas.getCanvasView();\n const options = {\n appendTo: canvas.getResizerEl(),\n prefix: editor.getConfig().stylePrefix,\n posFetcher: canvasView.getElementPos.bind(canvasView),\n mousePosFetcher: canvas.getMouseRelativePos,\n ...(opt.options || {}),\n };\n let { canvasResizer } = this;\n\n // Create the resizer for the canvas if not yet created\n if (!canvasResizer || opt.forceNew) {\n this.canvasResizer = new editor.Utils.Resizer(options);\n canvasResizer = this.canvasResizer;\n }\n\n canvasResizer.setOptions(options, true);\n canvasResizer.blur();\n canvasResizer.focus(opt.el);\n return canvasResizer;\n },\n\n stop() {\n this.canvasResizer?.blur();\n },\n} as CommandObject<{ options?: {}; forceNew?: boolean; el: HTMLElement }, { canvasResizer?: Resizer }>;\n","import { CommandFunction } from '../../commands/view/CommandAbstract';\nimport { Model, ObjectAny } from '../../common';\n\nexport interface ToolbarButtonProps {\n /**\n * Command name.\n */\n command: CommandFunction | string;\n\n /**\n * Button label.\n */\n label?: string;\n\n id?: string;\n attributes?: ObjectAny;\n events?: ObjectAny;\n}\n\nexport default class ToolbarButton extends Model
{\n defaults() {\n return {\n command: '',\n attributes: {},\n };\n }\n}\n","import { Collection } from '../../common';\nimport ToolbarButton from './ToolbarButton';\n\nexport default class Toolbar extends Collection {}\n\nToolbar.prototype.model = ToolbarButton;\n","import { isFunction, isString } from 'underscore';\nimport { View } from '../../common';\nimport EditorModel from '../../editor/model/Editor';\nimport ToolbarButton from '../model/ToolbarButton';\n\nexport type ToolbarViewProps = { em: EditorModel };\n\nexport default class ToolbarButtonView extends View {\n em: EditorModel;\n\n events() {\n return (\n this.model.get('events') || {\n mousedown: 'handleClick',\n }\n );\n }\n\n // @ts-ignore\n attributes() {\n return this.model.get('attributes');\n }\n\n constructor(props: { config: ToolbarViewProps; model: ToolbarButton }) {\n super(props);\n this.em = props.config.em;\n }\n\n handleClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n /*\n * Since the toolbar lives outside the canvas frame, the event's\n * generated on it have clientX and clientY relative to the page.\n *\n * This causes issues during events like dragging, where they depend\n * on the clientX and clientY.\n *\n * This makes sure the offsets are calculated.\n *\n * More information on\n * https://github.com/GrapesJS/grapesjs/issues/2372\n * https://github.com/GrapesJS/grapesjs/issues/2207\n */\n\n const { em } = this;\n const { left, top } = em.Canvas.getFrameEl().getBoundingClientRect();\n const ev = {\n ...event,\n clientX: event.clientX - left,\n clientY: event.clientY - top,\n };\n\n em.trigger('toolbar:run:before', { event: ev });\n this.execCommand(ev);\n }\n\n execCommand(event: MouseEvent) {\n const { em, model } = this;\n const opts = { event };\n const command = model.get('command');\n const editor = em.Editor;\n\n if (isFunction(command)) {\n command(editor, null, opts);\n }\n\n if (isString(command)) {\n editor.runCommand(command, opts);\n }\n }\n\n render() {\n const { em, $el, model } = this;\n const id = model.get('id');\n const label = model.get('label');\n const pfx = em.getConfig().stylePrefix;\n $el.addClass(`${pfx}toolbar-item`);\n id && $el.addClass(`${pfx}toolbar-item__${id}`);\n label && $el.append(label);\n return this;\n }\n}\n","import DomainViews from '../../domain_abstract/view/DomainViews';\nimport EditorModel from '../../editor/model/Editor';\nimport ToolbarButtonView, { ToolbarViewProps } from './ToolbarButtonView';\n\nexport default class ToolbarView extends DomainViews {\n em: EditorModel;\n\n constructor(opts: ToolbarViewProps) {\n super(opts);\n const { em } = opts;\n this.em = em;\n this.config = { em };\n this.listenTo(this.collection, 'reset', this.render);\n }\n\n onRender() {\n const pfx = this.em.config.stylePrefix!;\n this.el.className = `${pfx}toolbar-items`;\n }\n}\n\n// @ts-ignore\nToolbarView.prototype.itemView = ToolbarButtonView;\n","import { bindAll, debounce, isElement } from 'underscore';\nimport { $ } from '../../common';\nimport Component from '../../dom_components/model/Component';\nimport Toolbar from '../../dom_components/model/Toolbar';\nimport ToolbarView from '../../dom_components/view/ToolbarView';\nimport { isDoc, isVisible } from '../../utils/dom';\nimport { getUnitFromValue, getViewEl, hasWin, isTaggableNode, off, on } from '../../utils/mixins';\nimport { CommandObject } from './CommandAbstract';\n\nlet showOffsets: boolean;\n/**\n * This command is responsible for show selecting components and displaying\n * all the necessary tools around (component toolbar, badge, highlight box, etc.)\n *\n * The command manages different boxes to display tools and when something in\n * the canvas is updated, the command triggers the appropriate method to update\n * their position (across multiple frames/components):\n * - Global Tools (updateToolsGlobal/updateGlobalPos)\n * This box contains tools intended to be displayed only on ONE component per time,\n * like Component Toolbar (updated by updateToolbar/updateToolbarPos), this means\n * you won't be able to see more than one Component Toolbar (even with multiple\n * frames or multiple selected components)\n * - Local Tools (updateToolsLocal/updateLocalPos)\n * Each frame in the canvas has its own local box, so we're able to see more than\n * one active container at the same time. When you put a mouse over an element\n * you can see stuff like the highlight box, badge, margins/paddings offsets, etc.\n * so those elements are inside the Local Tools box\n *\n *\n */\nexport default {\n init(o: any) {\n bindAll(this, 'onHover', 'onOut', 'onClick', 'onFrameScroll', 'onFrameUpdated', 'onContainerChange');\n },\n\n enable() {\n this.frameOff = this.canvasOff = this.adjScroll = null;\n this.startSelectComponent();\n showOffsets = true;\n },\n\n /**\n * Start select component event\n * @private\n * */\n startSelectComponent() {\n this.toggleSelectComponent(1);\n this.em.getSelected() && this.onSelect();\n },\n\n /**\n * Stop select component event\n * @private\n * */\n stopSelectComponent() {\n this.toggleSelectComponent();\n },\n\n /**\n * Toggle select component event\n * @private\n * */\n toggleSelectComponent(enable: boolean) {\n const { em } = this;\n const listenToEl = em.getConfig().listenToEl!;\n const { parentNode } = em.getContainer()!;\n const method = enable ? 'on' : 'off';\n const methods = { on, off };\n !listenToEl.length && parentNode && listenToEl.push(parentNode as HTMLElement);\n const trigger = (win: Window, body: HTMLBodyElement) => {\n methods[method](body, 'mouseover', this.onHover);\n methods[method](body, 'mouseleave', this.onOut);\n methods[method](body, 'click', this.onClick);\n // @ts-ignore\n methods[method](win, 'scroll', this.onFrameScroll, true);\n };\n methods[method](window, 'resize', this.onFrameUpdated);\n methods[method](listenToEl, 'scroll', this.onContainerChange);\n em[method]('component:toggled component:update undo redo', this.onSelect, this);\n em[method]('change:componentHovered', this.onHovered, this);\n em[method](\n 'component:resize styleable:change component:input', // component:styleUpdate\n this.updateGlobalPos,\n this\n );\n em[method]('component:update:toolbar', this._upToolbar, this);\n em[method]('change:canvasOffset', this.updateAttached, this);\n em[method]('frame:updated', this.onFrameUpdated, this);\n em[method]('canvas:updateTools', this.onFrameUpdated, this);\n em.Canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const win = view?.getWindow();\n win && trigger(win, view?.getBody()!);\n });\n },\n\n /**\n * Hover command\n * @param {Object} e\n * @private\n */\n onHover(e: any) {\n e.stopPropagation();\n const { em } = this;\n const trg = e.target;\n const view = getViewEl(trg);\n const frameView = view && view._getFrame();\n const $el = $(trg);\n let model = $el.data('model');\n\n // Get first valid model\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n this.currentDoc = trg.ownerDocument;\n em.setHovered(model, { useValid: true });\n frameView && em.set('currentFrame', frameView);\n },\n\n onFrameUpdated() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n onHovered(em: any, component: Component) {\n let result = {};\n\n if (component) {\n component.views?.forEach(view => {\n const el = view.el;\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n this.updateToolsLocal(result);\n\n if (el.ownerDocument === this.currentDoc) this.elHovered = result;\n });\n } else {\n this.currentDoc = null;\n this.elHovered = 0;\n this.updateToolsLocal();\n this.canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const el = view && view.getToolsEl();\n el && this.toggleToolsEl(0, 0, { el });\n });\n }\n },\n\n /**\n * Say what to do after the component was selected\n * @param {Object} e\n * @param {Object} el\n * @private\n * */\n onSelect: debounce(function () {\n // @ts-ignore\n const { em } = this;\n const component = em.getSelected();\n const currentFrame = em.get('currentFrame') || {};\n const view = component && component.getView(currentFrame.model);\n let el = view && view.el;\n let result = {};\n\n if (el && isVisible(el)) {\n // @ts-ignore\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n }\n\n // @ts-ignore\n this.elSelected = result;\n // @ts-ignore\n this.updateToolsGlobal();\n // @ts-ignore This will hide some elements from the select component\n this.updateLocalPos(result);\n // @ts-ignore\n this.initResize(component);\n }, 0),\n\n updateGlobalPos() {\n const sel = this.getElSelected();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsGlobal();\n },\n\n updateLocalPos(data: any) {\n const sel = this.getElHovered();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsLocal(data);\n },\n\n getElHovered() {\n return this.elHovered || {};\n },\n\n getElSelected() {\n return this.elSelected || {};\n },\n\n onOut() {\n this.em.setHovered(0);\n },\n\n toggleToolsEl(on: boolean, view: any, opts: any = {}) {\n const el = opts.el || this.canvas.getToolsEl(view);\n el && (el.style.display = on ? '' : 'none');\n return el || {};\n },\n\n /**\n * Show element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showElementOffset(el: HTMLElement, pos: any, opts: any = {}) {\n if (!showOffsets) return;\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n view: opts.view,\n force: 1,\n top: 0,\n left: 0,\n });\n },\n\n /**\n * Hide element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideElementOffset(view: any) {\n this.editor.stopCommand('show-offset', {\n view,\n });\n },\n\n /**\n * Show fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showFixedElementOffset(el: HTMLElement, pos: any) {\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n state: 'Fixed',\n });\n },\n\n /**\n * Hide fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideFixedElementOffset() {\n if (this.editor) this.editor.stopCommand('show-offset', { state: 'Fixed' });\n },\n\n /**\n * Hide Highlighter element\n */\n hideHighlighter(view: any) {\n this.canvas.getHighlighter(view).style.opacity = 0;\n },\n\n /**\n * On element click\n * @param {Event} e\n * @private\n */\n onClick(ev: any) {\n ev.stopPropagation();\n ev.preventDefault();\n const { em } = this;\n if (em.get('_cmpDrag')) return em.set('_cmpDrag');\n const $el = $(ev.target);\n let model = $el.data('model');\n\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n if (model) {\n // Avoid selection of inner text components during editing\n if (em.isEditing() && !model.get('textable') && model.isChildOf('text')) {\n return;\n }\n this.select(model, ev);\n }\n },\n\n /**\n * Select component\n * @param {Component} model\n * @param {Event} event\n */\n select(model: Component, event = {}) {\n if (!model) return;\n this.editor.select(model, { event, useValid: true });\n this.initResize(model);\n },\n\n /**\n * Update badge for the component\n * @param {Object} Component\n * @param {Object} pos Position object\n * @private\n * */\n updateBadge(el: HTMLElement, pos: any, opts: any = {}) {\n const { canvas } = this;\n const model = $(el).data('model');\n if (!model || !model.get('badgable')) return;\n const badge = this.getBadge(opts);\n\n if (!opts.posOnly) {\n const config = this.canvas.getConfig();\n const icon = model.getIcon();\n const ppfx = config.pStylePrefix || '';\n const clsBadge = `${ppfx}badge`;\n const customeLabel = config.customBadgeLabel;\n const badgeLabel = `${icon ? `${icon}
` : ''}\n ${model.getName()}
`;\n badge.innerHTML = customeLabel ? customeLabel(model) : badgeLabel;\n }\n\n const un = 'px';\n const bStyle = badge.style;\n bStyle.display = 'block';\n\n const targetToElem = canvas.getTargetToElementFixed(el, badge, {\n pos: pos,\n });\n\n const top = targetToElem.top; //opts.topOff - badgeH < 0 ? -opts.topOff : posTop;\n const left = opts.leftOff < 0 ? -opts.leftOff : 0;\n\n bStyle.top = top + un;\n bStyle.left = left + un;\n },\n\n /**\n * Update highlighter element\n * @param {HTMLElement} el\n * @param {Object} pos Position object\n * @private\n */\n showHighlighter(view: any) {\n this.canvas.getHighlighter(view).style.opacity = '';\n },\n\n /**\n * Init resizer on the element if possible\n * @param {HTMLElement|Component} elem\n * @private\n */\n initResize(elem: HTMLElement) {\n const { em, canvas } = this;\n const editor = em?.Editor;\n const config = em?.config;\n const pfx = config.stylePrefix || '';\n const resizeClass = `${pfx}resizing`;\n const model = !isElement(elem) && isTaggableNode(elem) ? elem : em.getSelected();\n const resizable = model && model.get('resizable');\n let options = {};\n let modelToStyle: any;\n\n var toggleBodyClass = (method: string, e: any, opts: any) => {\n const docs = opts.docs;\n docs &&\n docs.forEach((doc: Document) => {\n const body = doc.body;\n const cls = body.className || '';\n body.className = (method == 'add' ? `${cls} ${resizeClass}` : cls.replace(resizeClass, '')).trim();\n });\n };\n\n if (editor && resizable) {\n const el = isElement(elem) ? elem : model.getEl();\n options = {\n // Here the resizer is updated with the current element height and width\n onStart(e: Event, opts: any = {}) {\n const { el, config, resizer } = opts;\n const { keyHeight, keyWidth, currentUnit, keepAutoHeight, keepAutoWidth } = config;\n toggleBodyClass('add', e, opts);\n modelToStyle = em.Styles.getModelToStyle(model);\n canvas.toggleFramesEvents(false);\n const computedStyle = getComputedStyle(el);\n const modelStyle = modelToStyle.getStyle();\n\n let currentWidth = modelStyle[keyWidth];\n config.autoWidth = keepAutoWidth && currentWidth === 'auto';\n if (isNaN(parseFloat(currentWidth))) {\n currentWidth = computedStyle[keyWidth];\n }\n\n let currentHeight = modelStyle[keyHeight];\n config.autoHeight = keepAutoHeight && currentHeight === 'auto';\n if (isNaN(parseFloat(currentHeight))) {\n currentHeight = computedStyle[keyHeight];\n }\n\n resizer.startDim.w = parseFloat(currentWidth);\n resizer.startDim.h = parseFloat(currentHeight);\n showOffsets = false;\n\n if (currentUnit) {\n config.unitHeight = getUnitFromValue(currentHeight);\n config.unitWidth = getUnitFromValue(currentWidth);\n }\n },\n\n // Update all positioned elements (eg. component toolbar)\n onMove() {\n editor.trigger('component:resize');\n },\n\n onEnd(e: Event, opts: any) {\n toggleBodyClass('remove', e, opts);\n editor.trigger('component:resize');\n canvas.toggleFramesEvents(true);\n showOffsets = true;\n },\n\n updateTarget(el: any, rect: any, options: any = {}) {\n if (!modelToStyle) {\n return;\n }\n\n const { store, selectedHandler, config } = options;\n const { keyHeight, keyWidth, autoHeight, autoWidth, unitWidth, unitHeight } = config;\n const onlyHeight = ['tc', 'bc'].indexOf(selectedHandler) >= 0;\n const onlyWidth = ['cl', 'cr'].indexOf(selectedHandler) >= 0;\n const style: any = {};\n\n if (!onlyHeight) {\n const bodyw = canvas.getBody().offsetWidth;\n const width = rect.w < bodyw ? rect.w : bodyw;\n style[keyWidth] = autoWidth ? 'auto' : `${width}${unitWidth}`;\n }\n\n if (!onlyWidth) {\n style[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;\n }\n\n if (em.getDragMode(model)) {\n style.top = `${rect.t}${unitHeight}`;\n style.left = `${rect.l}${unitWidth}`;\n }\n\n const finalStyle = {\n ...style,\n // value for the partial update\n __p: !store,\n };\n modelToStyle.addStyle(finalStyle, { avoidStore: !store });\n em.Styles.__emitCmpStyleUpdate(finalStyle, { components: em.getSelected() });\n },\n };\n\n if (typeof resizable == 'object') {\n options = { ...options, ...resizable, parent: options };\n }\n\n this.resizer = editor.runCommand('resize', { el, options, force: 1 });\n } else {\n editor.stopCommand('resize');\n this.resizer = null;\n }\n },\n\n /**\n * Update toolbar if the component has one\n * @param {Object} mod\n */\n updateToolbar(mod: Component) {\n const { em } = this.config;\n const model = mod == em ? em.getSelected() : mod;\n const toolbarEl = this.canvas.getToolbarEl()!;\n const toolbarStyle = toolbarEl.style;\n const toolbar = model.get('toolbar');\n const showToolbar = em.config.showToolbar;\n\n if (model && showToolbar && toolbar && toolbar.length) {\n toolbarStyle.display = '';\n if (!this.toolbar) {\n toolbarEl.innerHTML = '';\n this.toolbar = new Toolbar(toolbar);\n // @ts-ignore\n const toolbarView = new ToolbarView({ collection: this.toolbar, em });\n toolbarEl.appendChild(toolbarView.render().el);\n }\n\n this.toolbar.reset(toolbar);\n toolbarStyle.top = '-100px';\n toolbarStyle.left = '0';\n } else {\n toolbarStyle.display = 'none';\n }\n },\n\n /**\n * Update toolbar positions\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolbarPos(pos: any) {\n const unit = 'px';\n const { style } = this.canvas.getToolbarEl()!;\n style.top = `${pos.top}${unit}`;\n style.left = `${pos.left}${unit}`;\n style.opacity = '';\n },\n\n /**\n * Return canvas dimensions and positions\n * @return {Object}\n */\n getCanvasPosition() {\n return this.canvas.getCanvasView().getPosition();\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadge(opts: any = {}) {\n return this.canvas.getBadgeEl(opts.view);\n },\n\n /**\n * On frame scroll callback\n * @private\n */\n onFrameScroll() {\n this.updateTools();\n },\n\n updateTools() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n isCompSelected(comp: Component) {\n return comp && comp.get('status') === 'selected';\n },\n\n /**\n * Update tools visible on hover\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolsLocal(data: any) {\n const config = this.em.getConfig();\n const { el, pos, view, component } = data || this.getElHovered();\n\n if (!el) {\n this.lastHovered = 0;\n return;\n }\n\n const isHoverEn = component.get('hoverable');\n const isNewEl = this.lastHovered !== el;\n const badgeOpts = isNewEl ? {} : { posOnly: 1 };\n\n if (isNewEl && isHoverEn) {\n this.lastHovered = el;\n this.showHighlighter(view);\n this.showElementOffset(el, pos, { view });\n }\n\n if (this.isCompSelected(component)) {\n this.hideHighlighter(view);\n !config.showOffsetsSelected && this.hideElementOffset(view);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1, view);\n const { style } = toolsEl;\n const frameOff = this.canvas.canvasRectOffset(el, pos);\n const topOff = frameOff.top;\n const leftOff = frameOff.left;\n\n this.updateBadge(el, pos, {\n ...badgeOpts,\n view,\n topOff,\n leftOff,\n });\n\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this._trgToolUp('local', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n _upToolbar: debounce(function () {\n // @ts-ignore\n this.updateToolsGlobal({ force: 1 });\n }, 0),\n\n _trgToolUp(type: string, opts = {}) {\n this.em.trigger('canvas:tools:update', {\n type,\n ...opts,\n });\n },\n\n updateToolsGlobal(opts: any = {}) {\n const { el, pos, component } = this.getElSelected();\n\n if (!el) {\n this.toggleToolsEl(); // Hides toolbar\n this.lastSelected = 0;\n return;\n }\n\n const { canvas } = this;\n const isNewEl = this.lastSelected !== el;\n\n if (isNewEl || opts.force) {\n this.lastSelected = el;\n this.updateToolbar(component);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1);\n const { style } = toolsEl;\n const targetToElem = canvas.getTargetToElementFixed(el, canvas.getToolbarEl()!, { pos });\n const topOff = targetToElem.canvasOffsetTop;\n const leftOff = targetToElem.canvasOffsetLeft;\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this.updateToolbarPos({ top: targetToElem.top, left: targetToElem.left });\n this._trgToolUp('global', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n /**\n * Update attached elements, eg. component toolbar\n */\n updateAttached: debounce(function () {\n // @ts-ignore\n this.updateGlobalPos();\n }, 0),\n\n onContainerChange: debounce(function () {\n // @ts-ignore\n this.em.refreshCanvas();\n }, 150),\n\n /**\n * Returns element's data info\n * @param {HTMLElement} el\n * @return {Object}\n * @private\n */\n getElementPos(el: HTMLElement) {\n return this.canvas.getCanvasView().getElementPos(el, { noScroll: true });\n },\n\n /**\n * Hide badge\n * @private\n * */\n hideBadge() {\n this.getBadge().style.display = 'none';\n },\n\n /**\n * Clean previous model from different states\n * @param {Component} model\n * @private\n */\n cleanPrevious(model: Component) {\n model &&\n model.set({\n status: '',\n state: '',\n });\n },\n\n /**\n * Returns content window\n * @private\n */\n getContentWindow() {\n return this.canvas.getWindow();\n },\n\n run(editor) {\n if (!hasWin()) return;\n // @ts-ignore\n this.editor = editor && editor.get('Editor');\n this.enable();\n },\n\n stop(ed, sender, opts = {}) {\n if (!hasWin()) return;\n const { em, editor } = this;\n this.onHovered(); // force to hide toolbar\n this.stopSelectComponent();\n !opts.preserveSelected && em.setSelected();\n this.toggleToolsEl();\n editor && editor.stopCommand('resize');\n },\n} as CommandObject;\n","import { $ } from '../../common';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n /**\n * Start select position event\n * @param {HTMLElement} trg\n * @private\n * */\n startSelectPosition(trg: HTMLElement, doc: Document, opts: any = {}) {\n this.isPointed = false;\n const utils = this.em.Utils;\n const container = trg.ownerDocument.body;\n\n if (utils && !this.sorter)\n this.sorter = new utils.Sorter({\n // @ts-ignore\n container,\n placer: this.canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n direction: 'a',\n document: doc,\n wmargin: 1,\n nested: 1,\n em: this.em,\n canvasRelative: 1,\n scale: () => this.em.getZoomDecimal(),\n });\n\n if (opts.onStart) this.sorter.onStart = opts.onStart;\n trg && this.sorter.startSort(trg, { container });\n },\n\n /**\n * Get frame position\n * @return {Object}\n * @private\n */\n getOffsetDim() {\n var frameOff = this.offset(this.canvas.getFrameEl());\n var canvasOff = this.offset(this.canvas.getElement());\n var top = frameOff.top - canvasOff.top;\n var left = frameOff.left - canvasOff.left;\n return { top, left };\n },\n\n /**\n * Stop select position event\n * @private\n * */\n stopSelectPosition() {\n this.posTargetCollection = null;\n this.posIndex = this.posMethod == 'after' && this.cDim.length !== 0 ? this.posIndex + 1 : this.posIndex; //Normalize\n if (this.sorter) {\n this.sorter.moved = 0;\n this.sorter.endMove();\n }\n if (this.cDim) {\n this.posIsLastEl = this.cDim.length !== 0 && this.posMethod == 'after' && this.posIndex == this.cDim.length;\n this.posTargetEl =\n this.cDim.length === 0\n ? $(this.outsideElem)\n : !this.posIsLastEl && this.cDim[this.posIndex]\n ? $(this.cDim[this.posIndex][5]).parent()\n : $(this.outsideElem);\n this.posTargetModel = this.posTargetEl.data('model');\n this.posTargetCollection = this.posTargetEl.data('model-comp');\n }\n },\n\n /**\n * Enabel select position\n * @private\n */\n enable() {\n this.startSelectPosition();\n },\n\n /**\n * Check if the pointer is near to the float component\n * @param {number} index\n * @param {string} method\n * @param {Array} dims\n * @return {Boolean}\n * @private\n * */\n nearFloat(index: number, method: string, dims: any[]) {\n var i = index || 0;\n var m = method || 'before';\n var len = dims.length;\n var isLast = len !== 0 && m == 'after' && i == len;\n if (len !== 0 && ((!isLast && !dims[i][4]) || (dims[i - 1] && !dims[i - 1][4]) || (isLast && !dims[i - 1][4])))\n return 1;\n return 0;\n },\n\n run() {\n this.enable();\n },\n\n stop() {\n this.stopSelectPosition();\n this.$wrapper.css('cursor', '');\n this.$wrapper.unbind();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isUndefined } from 'underscore';\nimport { $ } from '../../common';\nimport { isTextNode } from '../../utils/mixins';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n getOffsetMethod(state: string) {\n var method = state || '';\n return 'get' + method + 'OffsetViewerEl';\n },\n\n run(editor, sender, opts) {\n var opt = opts || {};\n var state = opt.state || '';\n var config = editor.getConfig();\n const zoom = this.em.getZoomDecimal();\n const el = opt.el || '';\n\n if (!config.showOffsets || isTextNode(el) || (!config.showOffsetsSelected && state == 'Fixed')) {\n editor.stopCommand(`${this.id}`, opts);\n return;\n }\n\n var canvas = editor.Canvas;\n var pos = { ...(opt.elPos || canvas.getElementPos(el)) };\n\n if (!isUndefined(opt.top)) {\n pos.top = opt.top;\n }\n if (!isUndefined(opt.left)) {\n pos.left = opt.left;\n }\n\n var style = window.getComputedStyle(el);\n var ppfx = this.ppfx;\n var stateVar = state + 'State';\n var method = this.getOffsetMethod(state);\n // @ts-ignore\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = '';\n\n let marginT = this['marginT' + state];\n let marginB = this['marginB' + state];\n let marginL = this['marginL' + state];\n let marginR = this['marginR' + state];\n let padT = this['padT' + state];\n let padB = this['padB' + state];\n let padL = this['padL' + state];\n let padR = this['padR' + state];\n\n if (offsetViewer.childNodes.length) {\n this[stateVar] = '1';\n marginT = offsetViewer.querySelector('[data-offset-m-t]');\n marginB = offsetViewer.querySelector('[data-offset-m-b]');\n marginL = offsetViewer.querySelector('[data-offset-m-l]');\n marginR = offsetViewer.querySelector('[data-offset-m-r]');\n padT = offsetViewer.querySelector('[data-offset-p-t]');\n padB = offsetViewer.querySelector('[data-offset-p-b]');\n padL = offsetViewer.querySelector('[data-offset-p-l]');\n padR = offsetViewer.querySelector('[data-offset-p-r]');\n }\n\n if (!this[stateVar]) {\n var stateLow = state.toLowerCase();\n var marginName = stateLow + 'margin-v';\n var paddingName = stateLow + 'padding-v';\n var marginV = $(``).get(0) as HTMLElement;\n var paddingV = $(`
`).get(0) as HTMLElement;\n var marginEls = ppfx + marginName + '-el';\n var paddingEls = ppfx + paddingName + '-el';\n const fullMargName = `${marginEls} ${ppfx + marginName}`;\n const fullPadName = `${paddingEls} ${ppfx + paddingName}`;\n marginT = $(`
`).get(0);\n marginB = $(`
`).get(0);\n marginL = $(`
`).get(0);\n marginR = $(`
`).get(0);\n padT = $(`
`).get(0);\n padB = $(`
`).get(0);\n padL = $(`
`).get(0);\n padR = $(`
`).get(0);\n this['marginT' + state] = marginT;\n this['marginB' + state] = marginB;\n this['marginL' + state] = marginL;\n this['marginR' + state] = marginR;\n this['padT' + state] = padT;\n this['padB' + state] = padB;\n this['padL' + state] = padL;\n this['padR' + state] = padR;\n marginV.appendChild(marginT);\n marginV.appendChild(marginB);\n marginV.appendChild(marginL);\n marginV.appendChild(marginR);\n paddingV.appendChild(padT);\n paddingV.appendChild(padB);\n paddingV.appendChild(padL);\n paddingV.appendChild(padR);\n offsetViewer.appendChild(marginV);\n offsetViewer.appendChild(paddingV);\n this[stateVar] = '1';\n }\n\n var unit = 'px';\n var marginLeftSt = parseFloat(style.marginLeft.replace(unit, '')) * zoom;\n var marginRightSt = parseFloat(style.marginRight.replace(unit, '')) * zoom;\n var marginTopSt = parseFloat(style.marginTop.replace(unit, '')) * zoom;\n var marginBottomSt = parseFloat(style.marginBottom.replace(unit, '')) * zoom;\n var mtStyle = marginT.style;\n var mbStyle = marginB.style;\n var mlStyle = marginL.style;\n var mrStyle = marginR.style;\n var ptStyle = padT.style;\n var pbStyle = padB.style;\n var plStyle = padL.style;\n var prStyle = padR.style;\n var posLeft = parseFloat(pos.left);\n var widthEl = parseFloat(style.width) * zoom + unit;\n\n // Margin style\n mtStyle.height = marginTopSt + unit;\n mtStyle.width = widthEl;\n mtStyle.top = pos.top - marginTopSt + unit;\n mtStyle.left = posLeft + unit;\n\n mbStyle.height = marginBottomSt + unit;\n mbStyle.width = widthEl;\n mbStyle.top = pos.top + pos.height + unit;\n mbStyle.left = posLeft + unit;\n\n var marginSideH = pos.height + marginTopSt + marginBottomSt + unit;\n var marginSideT = pos.top - marginTopSt + unit;\n mlStyle.height = marginSideH;\n mlStyle.width = marginLeftSt + unit;\n mlStyle.top = marginSideT;\n mlStyle.left = posLeft - marginLeftSt + unit;\n\n mrStyle.height = marginSideH;\n mrStyle.width = marginRightSt + unit;\n mrStyle.top = marginSideT;\n mrStyle.left = posLeft + pos.width + unit;\n\n // Padding style\n var padTop = parseFloat(style.paddingTop) * zoom;\n ptStyle.height = padTop + unit;\n // ptStyle.width = widthEl;\n // ptStyle.top = pos.top + unit;\n // ptStyle.left = posLeft + unit;\n\n var padBot = parseFloat(style.paddingBottom) * zoom;\n pbStyle.height = padBot + unit;\n // pbStyle.width = widthEl;\n // pbStyle.top = pos.top + pos.height - padBot + unit;\n // pbStyle.left = posLeft + unit;\n\n var padSideH = pos.height - padBot - padTop + unit;\n var padSideT = pos.top + padTop + unit;\n plStyle.height = padSideH;\n plStyle.width = parseFloat(style.paddingLeft) * zoom + unit;\n plStyle.top = padSideT;\n // plStyle.left = pos.left + unit;\n // plStyle.right = 0;\n\n var padRight = parseFloat(style.paddingRight) * zoom;\n prStyle.height = padSideH;\n prStyle.width = padRight + unit;\n prStyle.top = padSideT;\n // prStyle.left = pos.left + pos.width - padRight + unit;\n // prStyle.left = 0;\n },\n\n stop(editor, sender, opts = {}) {\n var opt = opts || {};\n var state = opt.state || '';\n var method = this.getOffsetMethod(state);\n var canvas = editor.Canvas;\n // @ts-ignore\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = 0;\n },\n} as CommandObject
;\n","import { bindAll } from 'underscore';\nimport Frame from '../../canvas/model/Frame';\nimport Editor from '../../editor';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n init() {\n bindAll(this, '_onFramesChange');\n },\n\n run(ed) {\n this.toggleVis(ed);\n },\n\n stop(ed) {\n this.toggleVis(ed, 0);\n },\n\n toggleVis(ed: Editor, active = 1) {\n if (!ed.Commands.isActive('preview')) {\n const cv = ed.Canvas;\n const mth = active ? 'on' : 'off';\n const canvasModel = cv.getModel();\n cv.getFrames().forEach(frame => this._upFrame(frame, active));\n canvasModel[mth]('change:frames', this._onFramesChange);\n }\n },\n\n _onFramesChange(m: any, frames: Frame[]) {\n frames.forEach(frame => {\n const load = () => this._upFrame(frame, true);\n frame.view?.loaded ? load() : frame.once('loaded', load);\n });\n },\n\n _upFrame(frame: Frame, active: boolean) {\n const method = active ? 'add' : 'remove';\n const cls = `${this.ppfx}dashed`;\n frame.view?.getBody().classList[method](cls);\n },\n} as CommandObject<\n {},\n {\n [key: string]: any;\n }\n>;\n","import Backbone from 'backbone';\nexport { default as $ } from '../utils/cash-dom';\n\ninterface NOOP {}\n\nexport type Debounced = Function & { cancel(): void };\n\nexport type SetOptions = Backbone.ModelSetOptions & { avoidStore?: boolean };\n\nexport type AddOptions = Backbone.AddOptions & { temporary?: boolean };\n\nexport type RemoveOptions = Backbone.Silenceable;\n\nexport type EventHandler = Backbone.EventHandler;\n\nexport type ObjectHash = Backbone.ObjectHash;\n\nexport type ObjectAny = Record;\n\nexport type ObjectStrings = Record;\n\n// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-1483854699\nexport type LiteralUnion = T | (U & NOOP);\n\nexport type Position = {\n x: number;\n y: number;\n};\n\nexport type ElementRect = {\n top: number;\n left: number;\n width: number;\n height: number;\n};\n\nexport type CombinedModelConstructorOptions<\n E,\n M extends Model = Model\n> = Backbone.ModelConstructorOptions & E;\n\nexport interface ViewOptions\n extends Backbone.ViewOptions {}\n\nexport class Model extends Backbone.Model {}\n\nexport class Collection extends Backbone.Collection {}\n\nexport class View extends Backbone.View {}\n\nexport type PickMatching = { [K in keyof T as T[K] extends V ? K : never]: T[K] };\n\nexport type ExtractMethods = PickMatching