chunk-19529c62.c769cd50.js.map 4.1 MB

1
  1. {"version":3,"sources":["webpack:///./node_modules/tinymce/themes/silver/theme.js","webpack:///./node_modules/tinymce/plugins/table/index.js","webpack:///./node_modules/tinymce/themes/silver/index.js","webpack:///./node_modules/tinymce/plugins/lists/plugin.js","webpack:///./node_modules/tinymce/plugins/media/plugin.js","webpack:///./node_modules/tinymce/plugins/media/index.js","webpack:///./node_modules/tinymce/plugins/image/index.js","webpack:///./resources/src/views/announcements/Form.vue?7d40","webpack:///./node_modules/tinymce/plugins/lists/index.js","webpack:///./node_modules/tinymce/plugins/wordcount/index.js","webpack:///./node_modules/tinymce/plugins/table/plugin.js","webpack:///./resources/src/api/announcements.js","webpack:///./resources/src/views/announcements/Form.vue?1c11","webpack:///./resources/src/components/Tinymce/TinymceEditor.vue?b07a","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/Utils.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/ScriptLoader.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/EditorPropTypes.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/index.js","webpack:///resources/src/components/Tinymce/TinymceEditor.vue","webpack:///./resources/src/components/Tinymce/TinymceEditor.vue?1b04","webpack:///./resources/src/components/Tinymce/TinymceEditor.vue","webpack:///resources/src/views/announcements/Form.vue","webpack:///./resources/src/views/announcements/Form.vue?014c","webpack:///./resources/src/views/announcements/Form.vue","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/TinyMCE.js","webpack:///./node_modules/tinymce/plugins/image/plugin.js","webpack:///./node_modules/tinymce/tinymce.js","webpack:///./node_modules/tinymce/plugins/wordcount/plugin.js"],"names":["global","domGlobals","noop","noarg","f","compose","fa","fb","args","_i","arguments","length","apply","constant","value","identity","x","curry","fn","initialArgs","restArgs","all","concat","not","die","msg","Error","never","always","global$1","tinymce","util","Tools","resolve","__assign","Object","assign","t","s","i","n","p","prototype","hasOwnProperty","call","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__spreadArrays","il","r","Array","k","a","j","jl","SimpleResultType","none","NONE","eq","o","isNone","thunk","id","me","fold","is","isSome","getOr","getOrThunk","getOrDie","getOrNull","getOrUndefined","undefined","or","orThunk","map","each","bind","exists","forall","filter","equals","equals_","toArray","toString","freeze","some","constant_a","self","v","elementEq","b","from","Option","opt","mapError","_","onValue","toOption","isValue","isError","error","message","String","onError","fromOption","err","Result","typeOf","isPrototypeOf","constructor","name","isType","type","isString","isObject","isArray","isBoolean","isFunction","isNumber","isArrayOf","pred","len","nativeSlice","slice","nativeIndexOf","nativePush","push","rawIndexOf","ts","xs","contains","range","num","chunk","array","size","eachr","partition","pass","fail","arr","foldr","acc","foldl","find","findIndex","flatten","output","reverse","difference","a1","a2","pure","sort","comparator","copy","head","last","from$1","keys","each$1","obj","props","map$1","tupleMap","tuple","mapToArray","find$1","values","get","key","has","generate","cases","constructors","adt","acase","count","keys$1","argLength","match","branches","branchKeys","join","allReqd","reqKey","target","log","label","console","params","Adt","hasOwnProperty$1","shallow","old","nu","deep","bothObjects","deepMerge","baseMerge","merger","objects","ret","curObject","merge","cached","called","strict","defaultedThunk","asOption","asDefaultedOptionThunk","mergeWithThunk","defaulted","fallback","mergeWith","base","exclude","fields","readOpt","readOr","readOptFrom","hasKey","wrap","wrapAll","keyvalues","kv","partition$1","bothErrors","firstError","secondError","bothValues","results","errors","result","exclude$1","readOpt$1","readOr$1","readOptFrom$1","wrap$1","wrapAll$1","mergeValues","mergeErrors","consolidate","objs","partitions","hasKey$1","res","stype","serror","svalue","partition$2","val","map$2","Value","bind$1","bindError","toResult","fromResult","SimpleResult","mergeValues$1","mergeErrors$1","consolidateObj","consolidateArr","ResultCombine","typeAdt","setOf","arrOf","objOf","itemOf","choiceOf","func","fieldAdt","field","state","formatObj","input","JSON","stringify","formatErrors","es","path","getErrorInfo","missingStrict","missingKey","missingBranch","branch","unsupportedFields","unsupported","custom","adt$1","strictAccess","fallbackAccess","fallbackThunk","optionAccess","optionDefaultedAccess","cExtractOne","strength","okey","presence","prop","bundle","av","extract","bundleAsOption","optValue","outcome","ov","baseThunk","instantiator","cExtract","valueThunk","getDelegate","toDsl","value$1","validator","getSetKeys","objOfOnly","delegate","fieldNames","extra","fieldStrings","validateKeys","validatedKeys","validKeys","schema","vk","anyValue","arrOfObj","chooseFrom","ch","vp","choose","choice","chosen","_anyValue","arrOfObj$1","objFields","arrOfVal","valueThunkOf","valueOf","setOf$1","errs","asRaw","extraction","errInfo","formatError","asRawOrDie","chooseProcessor","choose$1","anyValue$1","typedValue","expectedType","actualType","number","string","boolean","functionProcessor","isPostMessageable","every","iter","callbackFn","next","done","postMessageable","validateEnum","strict$1","strictOf","strictNumber","strictString","strictStringEnum","strictBoolean","strictFunction","forbid","strictObjOf","objSchema","strictArrayOfObj","strictArrayOf","option","optionOf","optionNumber","optionString","optionFunction","optionArrayOf","optionObjOf","optionObjOfOnly","defaulted$1","defaultedOf","defaultedNumber","defaultedString","defaultedStringEnum","defaultedBoolean","defaultedFunction","defaultedPostMsg","defaultedArrayOf","defaultedObjOf","state$1","Cell","initial","set","clone","fromHtml","html","scope","doc","document","div","createElement","innerHTML","hasChildNodes","childNodes","fromDom","fromTag","tag","node","fromText","text","createTextNode","dom","fromPoint","docElm","y","elementFromPoint","Element","compareDocumentPosition","documentPositionPreceding","Node","DOCUMENT_POSITION_PRECEDING","documentPositionContainedBy","DOCUMENT_POSITION_CONTAINED_BY","firstMatch","regexes","test","find$2","agent","major","minor","group","Number","replace","nu$1","detect","versionRegexes","cleanedAgent","toLowerCase","unknown","Version","edge","chrome","ie","opera","firefox","safari","isBrowser","current","unknown$1","nu$2","version","info","isEdge","isChrome","isIE","isOpera","isFirefox","isSafari","Browser","windows","ios","android","linux","osx","solaris","freebsd","isOS","unknown$2","nu$3","isWindows","isiOS","isAndroid","isOSX","isLinux","isSolaris","isFreeBSD","OperatingSystem","DeviceType","os","browser","userAgent","mediaMatch","isiPad","isiPhone","isMobile","isTouch","isTablet","isPhone","iOSwebview","isDesktop","isWebView","detect$1","candidates","candidate","search","detectBrowser","browsers","detectOs","oses","UaString","checkRange","str","substr","start","contains$1","endsWith","suffix","trim","normalVersionRegex","checkContains","uastring","PlatformInfo","detect$2","deviceType","PlatformDetection","query","window","matchMedia","matches","platform","navigator","detect$3","DOCUMENT","ATTRIBUTE_NODE","CDATA_SECTION_NODE","COMMENT_NODE","DOCUMENT_NODE","ELEMENT","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","ELEMENT_NODE","TEXT","TEXT_NODE","ELEMENT$1","PROCESSING_INSTRUCTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","NOTATION_NODE","DOCUMENT$1","element","selector","nodeType","elem","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","bypassSelector","childElementCount","querySelectorAll","one","querySelector","e1","e2","regularContains","d1","d2","ieContains","contains$2","isSource","component","simulatedEvent","event","nu$4","parts","all$1","handlers","handler","any","read","can","abort","run","fuse","touchstart","touchmove","touchend","touchcancel","mousedown","mousemove","mouseout","mouseup","mouseover","focusin","focusout","keydown","keyup","change","click","transitionend","selectstart","alloy","tap","focus","postBlur","postPaste","receive","execute","focusItem","tapOrClick","longpress","sandboxClose","typeaheadCancel","systemInit","documentTouchmove","documentTouchend","windowScroll","windowResize","attachedToDom","detachedFromDom","dismissRequested","repositionRequested","focusShifted","slotVisibility","changeTab","dismissTab","highlight","dehighlight","emit","dispatchWith","emitWith","properties","emitExecute","dispatch","data","getSystem","triggerEvent","dispatchEvent","ClosestOrAncestor","ancestor","isRoot","Function","nodeName","isType$1","isElement","isText","inBody","parentNode","ownerDocument","body","getBody","predicate","stop","el","closest","descendant","descend","child_1","closest$1","transform","derive","configs","preventDefault","prevent","runActionExtra","action","runOnName","runOnSourceName","redirectToUid","uid","getByUid","redirectee","redirectToPart","detail","partName","partUids","runWithTarget","ev","getByDom","c","cutter","cut","stopper","runOnSource","runOnAttached","runOnDetached","runOnInit","runOnExecute","Immutable","struct","sort$1","reqMessage","required","unsuppMessage","validateStrArr","checkDupes","everything","sorted","dupe","d","MixedBag","optional","req","owner","documentElement","defaultView","parent","offsetParent","nextSibling","children","child","index","cs","firstChild","fromHtml$1","before","marker","parent$1","insertBefore","after","sibling","append","prepend","firstChild$1","appendChild","appendAt","before$1","elements","append$1","empty","textContent","rogue","remove","removeChild","unwrap","wrapper","children$1","get$1","content","owner$1","docDom","fragment","createDocumentFragment","contentElements","getOuter","container","cloneNode","rawSet","setAttribute","set$1","setAll","attrs","get$2","getAttribute","has$1","hasAttribute","remove$1","removeAttribute","original","isDeep","shallow$1","getHtml","isRecursive","originator","events","warn","DefaultEvents","unique","generate$1","prefix","date","Date","time","getTime","random","Math","floor","idAttr","prefix$1","idAttr$1","write","writeOnly","defineProperty","writable","read$1","generate$2","make","NoContextApi","getComp","debugInfo","triggerFocus","triggerEscape","build","addToWorld","removeFromWorld","addToGui","removeFromGui","broadcast","broadcastOn","broadcastEvent","isConnected","singleton","markAsBehaviourApi","apiName","apiFunction","endIndex","openBracketIndex","parameters","substring","split","toFunctionAnnotation","cleanParameters","markAsExtraApi","extraName","markAsSketchApi","premadeTag","premade","comp","getPremade","spec","makeApi","rest","getApis","NoState","init","nu$5","readState","generateFrom","validated","behaviours","list","optBlobThunk","optBlob","blob","config","getBehaviours","bData","getData","byInnerKey","indexKey","chain","nu$6","classes","attributes","styles","merge$1","defnA","mod","combine","baseMod","modsByBehaviour","behaviour","exhibit","nameAndMod","modification","byAspect","combineObjects","combinedClasses","combinedAttributes","combinedStyles","sortKeys","keyName","order","sliced","aKey","bKey","aIndex","bIndex","uncurried","purpose","curried","cHandler","curryArgs","descHandler","extraArgs","getCurried","behaviourTuple","nameToHandlers","groupByEvents","behaviourEvents","combine$1","eventOrder","byEventName","combineGroups","assemble","rawHandler","missingOrderError","eventName","tuples","fuse$1","sortedTuples","combined","assembled","toInfo","alloy.execute","alloy.focus","alloy.system.init","alloy.system.detached","toDefinition","domChildren","components","toModification","domModification","toEvents","read$2","attr","add","remove$2","supports","classList","get$3","add$1","clazz","remove$3","add$2","cleanClass","remove$4","has$2","add$3","remove$5","isSupported","style","getPropertyValue","internalSet","property","setProperty","internalRemove","removeProperty","set$2","setAll$1","css","setOptions","get$4","getComputedStyle","getUnsafeProperty","getRaw","raw","isValidValue","remove$6","reflow","offsetWidth","get$5","set$3","renderToDom","definition","subject","innerHtml","getBehaviours$1","generateFrom$1","generate$3","getDomDefinition","bList","infoModification","baseModification","alloy.base.modification","getEvents","baseEvents","alloy.base.behaviour","getMe","systemApi","bBlob","modDefinition","item","subcomponents","connect","newApi","disconnect","syncComponents","subs","hasConfigured","apis","behaviourName","buildSubcomponents","build$1","buildFromSpec","userSpec","_a","specEvents","completeSpec","external","extSpec","uids","userSpecWithUid","prebuilt","premade$1","Dimension","getOffset","h","parseFloat","aggregate","parseInt","isNaN","max","cumulativeInclusions","absoluteMax","EventConfiguration","api","getBoundingClientRect","height","offsetHeight","get$6","getOuter$1","setMax","inclusions","absMax","left","top","translate","Position","boxPosition","box","firstDefinedOrZero","absolute","win","offsetLeft","offsetTop","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","viewport","api$1","set$4","get$7","getOuter$2","setMax$1","get$8","_DOC","bounds","width","right","bottom","getBounds","_win","scroll","visualViewport","pageLeft","pageTop","clientWidth","clientHeight","walkUp","navigation","frame","view","pathTo","paths","frameElement","Navigation","find$3","frames","offset","loc","pointed","rect","bounds$1","xy","w","absolute$1","position","closest$2","ancestor$1","descendant$1","closest$3","find$4","queryElem","dependent","dep","manager","ariaId","link","unlink","isAriaPartOf","isPartOf","cat","sequence","findMap","lift2","oa","ob","lift3","oc","unknown$3","eventConfig","makeEventLogger","initialTarget","startTime","logEventCut","logEventStopped","logNoParent","logEventNoHandlers","logEventResponse","finishTime","processEvent","status","patterns","NORMAL","noLogger","LOGGING","logger","STOP","getTrace","stack","lines","line","ignoreEvent","monitorEvent","menuFields","itemFields","itemSchema","_initSize","itemMarkers","tieredMenuMarkers","markers","onPresenceHandler","fieldName","onHandler","onKeyboardHandler","onStrictHandler","onStrictKeyboardHandler","snapshot","initSize","nu$7","adt$2","southeast","southwest","northeast","northwest","south","north","east","west","cata","cataVertical","middle","cataHorizontal","eastX","anchor","middleX","westX","northY","southY","centreY","eastEdgeX","westEdgeX","southeast$1","bubbles","southwest$1","northeast$1","northwest$1","north$1","south$1","east$1","west$1","all$2","allRtl","belowOrAbove","belowOrAboveRtl","executeEvent","bConfig","bState","executor","loadEvent","create","active","configSchema","schemaSchema","doCreate","createModes","modes","wrapApi","bName","revokeBehaviour","getConfig","wrappedApis","apiF","wrappedExtra","extraF","revoke","prepared","configAsRaw","initialConfig","behaviourInfo","exhibitor","derive$1","capabilities","simpleSchema","create$1","modeSchema","createModes$1","branchKey","chooseChannels","channels","universal","events$1","receiveConfig","channelMap","targetChannels","channelInfo","channelSchema","onReceive","ActiveReceiving","ReceivingSchema","Receiving","posConfig","useFixed","ActivePosition","focus$1","blur","hasFocus","activeElement","_doc","preserve","ownerDoc","refocus","focused","oldFocus","newFocus","allAlignments","nu$8","yoffset","getClasses","xDelta","yDelta","alignmentsOn","alignmentsOff","classesOn","classesOff","innerNorthwest","innerNortheast","innerNorth","innerSouthwest","innerSoutheast","innerSouth","innerWest","innerEast","decision","adt$3","relative","fixed","positionWithDirection","posName","decisionX","decisionY","decisionWidth","decisionHeight","decisionRight","decisionBottom","direction","reposition","origin","toBox","rel","viewport$1","pos","removeScroll","outerScroll","cata$1","onNone","onRelative","onFixed","nu$9","onDirection","isLtr","isRtl","getDirection","schema$1","get$9","defaultLtr","defaultRtl","ltr","layouts","ls","onLtr","rtl","onRtl","placement","anchorInfo","hotspot","anchorBox","bubble","overrides","placer","HotspotAnchor","placement$1","MakeshiftAnchor","zeroWidth","create$2","SimRange","adt$4","on","cata$2","onBefore","onOn","onAfter","getStart","situ","before$2","after$1","Situ","adt$5","domRange","exact","exactFromRange","simRange","soffset","finish","foffset","getStart$1","selection","rng","startContainer","startSitu","finishSitu","relative$1","getWin","range$1","Selection","setStart","setStartBefore","setStartAfter","setFinish","setEndBefore","setEnd","setEndAfter","relativeToNative","createRange","exactToNative","toRect","getFirstRect","rects","getClientRects","adt$6","fromRange","startOffset","endContainer","endOffset","getRanges","doDiagnose","ranges","collapsed","reversed","rev","diagnose","asLtrRange","diagnosis","searchForPoint","rectForOffset","maxX","curDeltaX","abs","inRect","NodeValue","getOption","nodeValue","api$2","get$a","locateOffset","textnode","rangeForOffset","collapse","locate","selectNode","foundRect","searchInChildren","nodes","locateNode","locate$1","boundedX","min","boundedY","getEnd","NBSP","isTextNodeWithCursorPosition","elementsWithCursorPosition","isCursorPosition","hasCursorPosition","first","last$1","descendantRtl","COLLAPSE_TO_LEFT","COLLAPSE_TO_RIGHT","getCollapseDirection","createCollapsedNode","collapseDirection","locateInElement","cursorRange","locateInEmpty","search$1","caretPositionFromPoint","offsetNode","caretRangeFromPoint","searchTextNodes","searchFromPoint","descendants","makeRange","after$2","same","readRange","rangeCount","firstRng","getRangeAt","lastRng","doGetExact","anchorNode","focusNode","anchorOffset","focusOffset","getExact","getSelection","sel","getFirstRect$1","point","descendOnce","adt$7","screen","toFixed","toAbsolute","sum","points","sumAsFixed","positions","sumAsAbsolute","absolute$2","root","hasSameOwner","frameOwner","compOwner","getRootPoint","capRect","newLeft","newTop","newWidth","newHeight","calcNewAnchor","optBox","rootPoint","topLeft","layoutsLtr","showAbove","layoutsRtl","ContentAnchorCommon","point$1","descendOnce$1","getAnchorSelection","modStart","modFinish","placement$2","selectionBox","optRect","rawRect","targetElement","SelectionAnchor","placement$3","nodeBox","NodeAnchor","eastX$1","westX$1","northY$1","southY$1","southeast$2","southwest$2","northeast$2","northwest$2","all$3","allRtl$1","placement$4","submenuInfo","SubmenuAnchor","AnchorSchema","submenu","makeshift","box$1","cycleBy","delta","cap","adt$8","fit","nofit","calcReposition","newX","newY","boundsX","boundsY","boundsWidth","boundsHeight","xInBounds","yInBounds","originInBounds","xFit","yFit","sizeInBounds","deltaW","deltaH","limitX","limitY","attempt","candidateX","candidateY","bubbleLeft","bubbleTop","boundsBottom","boundsRight","upAvailable","downAvailable","maxHeight","westAvailable","eastAvailable","maxWidth","off","candidateYforTest","attempts","elementBox","panelWidth","panelHeight","attemptBestFit","layout","attemptLayout","newReposition","newDeltaW","newDeltaH","improved","abc","bestNext","elementSize","options","preference","setClasses","classInfo","setHeight","maxHeightFunction","setWidth","maxWidthFunction","addPx","newPosition","setMaxHeight","anchored","available","overflow-x","overflow-y","expandable","reparteeOptions","defaultOr","dephault","simple","overrideOptions","go","getFixedOrigin","getRelativeOrigin","place","anchoring","placee","position$1","posState","positionWithin","boxElement","boundsBox","positionWithinBounds","anchorage","oldVisibility","doPlace","vis","getMode","pConfig","pState","PositionApis","PositionSchema","Positioning","fireDetaching","fireAttaching","attach","detachChildren","childComp","replaceChildren","newChildren","deleted","attach$1","attachWith","insertion","doDetach","detach","detachChildren$1","attachSystem","guiSystem","attachSystemWith","attachSystemAfter","inserter","detachSystem","rebuild","sandbox","sConfig","sState","getAttachPoint","built","open","newState","onOpen","setContent","openWhileCloaked","transaction","cloak","decloak","close","onClose","clear","isOpen","isPartOf$1","getState","store","cssKey","newValue","restore","oldValue","sink","cloakVisibilityAttr","hasPosition","SandboxApis","events$2","sandboxConfig","sandboxState","ActiveSandbox","SandboxSchema","contents","SandboxState","Sandboxing","dismissPopups","repositionPopups","mouseReleased","schema$2","receivingChannel","rawSpec","isPart","isExtraPart","fireEventInstead","fe","schema$3","receivingChannel$1","doReposition","onLoad","repConfig","repState","onUnload","setValue","getValue","getState$1","RepresentApis","events$3","resetOnDom","se","ActiveRepresenting","memory","mode","isNotSet","manual","dataset","dataByValue","dataByText","lookup","itemString","update","items","currentDataByValue","currentDataByText","newDataByValue","newDataByText","meta","init$1","RepresentState","setValue$1","onSetValue","getValue$1","getDataKey","getFallbackEntry","onLoad$1","initialValue","onUnload$1","DatasetStore","getValue$2","setValue$2","onLoad$2","ManualStore","setValue$3","getValue$3","onLoad$3","initVal","onUnload$2","MemoryStore","RepresentSchema","Representing","setValueFrom","source","field$1","forbidden","get$b","dump","augment","SketchBehaviours","_placeholder","adt$9","single","multiple","subPlaceholder","compSpec","placeholders","newSpec","scan","uiType","substitute","childSpecs","substituted","valuesThunk","preprocessor","preprocess","substituteAll","oneReplace","replacements","used","substitutePlaces","ps","ph","placeholder","adt$a","fFactory","sketch","fSchema","fName","fPname","typeSpec","fGroupSchema","fDefaults","fOverrides","requiredSpec","externalSpec","optionalSpec","groupSpec","asNamedPart","part","name$1","asCommon","convert","adtConstructor","partSchema","external$1","PartType","combine$2","partSpec","partValidated","defaults","internals","externals","pname","factory","_partSpec","_partValidated","units","u","generate$4","np","g","doGenerateOne","generateOne","schemas","names","substitutes","getPart","partKey","getPartOrDie","getParts","partKeys","system","pk","getAllParts","pUid","getAllPartNames","getPartsOrDie","defaultUids","baseUid","partTypes","partNames","pn","defaultUidsSchema","AlloyParts","partSchemas","partUidsSchemas","asRawOrDie$1","baseS","single$1","specWithUid","supplyUid","composite","partUidsSchema","components$1","isSketchSpec","FocusInsideModes","singleSchema","compositeSchema","single$2","rawConfig","configFields","extraApis","partFields","composite$1","inside","getCurrent","composeConfig","composeState","ComposeApis","ComposeSchema","Composing","dehighlightAllExcept","hConfig","hState","skip","highlighted","highlightClass","skipComp","onDehighlight","dehighlightAll","dehighlight$1","isHighlighted","highlight$1","onHighlight","highlightFirst","getFirst","firstComp","highlightLast","getLast","lastComp","highlightAt","getByIndex","highlightBy","getCandidates","targetComp","queryTarget","getHighlighted","itemClass","getDelta","selected","dest","getPrevious","getNext","HighlightApis","HighlightSchema","Highlighting","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","cyclePrev","tryPrev","cycleNext","tryNext","inSet","which","and","preds","isShift","shiftKey","isControl","ctrlKey","isNotShift","rule","classification","choose$2","transitions","transition","reportFocusShifting","prevFocus","noChange","focusee","highlights","typical","infoSchema","stateInit","getKeydownRules","getKeyupRules","optFocusIn","processKey","getRules","keyingConfig","keyingState","rules","onFocusHandler","focusInside","OnFocusMode","focusIn","tryGoInsideComponent","isEnterOrSpace","OnEnterOrSpaceMode","create$3","cyclicField","isVisible","tabbingConfig","visibilitySelector","findInitial","tabstops","visibles","firstTabstop","findCurrent","focusManager","isTabstop","useTabstopAt","goFromTabstop","stopIndex","cycle","cyclic","tabstop","optStopIndex","goBackwards","tabbingState","navigate","goForwards","onEnter","exit","onEscape","AcyclicType","CyclicType","doDefaultExecute","defaultExecute","stopEventForFirefox","schema$4","execute$1","executeConfig","executeState","spaceExec","useSpace","enterExec","useEnter","downExec","useDown","execKeys","useControlEnter","ExecutionType","flatgrid","dimensions","setGridSize","numRows","numColumns","getNumRows","getNumColumns","init$2","KeyingState","useH","movement","move","use","west$2","moveLeft","moveRight","east$2","useV","north$2","south$2","isHidden","indexInfo","locate$2","locateVisible","visible","findIndex$1","withGrid","numCols","oldRow","oldColumn","address","newIndex","row","column","cycleHorizontal","onLastRow","colsInRow","newColumn","cycleVertical","newRow","newCol","cycleRight","cycleLeft","cycleUp","cycleDown","schema$5","gridConfig","gridState","execute$2","doMove","identified","handleTab","captureTab","doEscape","moveNorth","moveSouth","getKeydownRules$1","getKeyupRules$1","FlatgridType","horizontal","isDisabledButton","tryCycle","schema$6","findCurrent$1","flowConfig","execute$3","focusIn$1","getInitial","moveLeft$1","moveRight$1","doMove$1","executeOnMove","doEscape$1","_flowState","getKeydownRules$2","_component","_se","westMovers","allowVertical","eastMovers","getKeyupRules$2","FlowType","toCell","matrix","rowIndex","columnIndex","cell","cycleHorizontal$1","startCol","deltaCol","newColIndex","cycleVertical$1","colIndex","startRow","deltaRow","nextRowIndex","colsInNextRow","nextColIndex","moveHorizontal","moveVertical","cycleRight$1","cycleLeft$1","cycleUp$1","cycleDown$1","moveLeft$2","moveRight$2","moveUp","moveDown","schema$7","focusIn$2","matrixConfig","previousSelector","selectors","execute$4","toMatrix","rows","doMove$2","ifCycle","ifMove","cycles","inRow","cellsInRow","allRows","moveLeft$3","moveRight$3","moveNorth$1","moveSouth$1","getKeydownRules$3","getKeyupRules$3","MatrixType","schema$8","execute$5","menuConfig","focusIn$3","moveUp$1","moveDown$1","fireShiftTab","moveOnTab","fireTab","getKeydownRules$4","getKeyupRules$4","MenuType","schema$9","getKeydownRules$5","specialInfo","onSpace","onShiftEnter","onShiftTab","onTab","onUp","onDown","onLeft","onRight","getKeyupRules$5","stopSpaceKeyup","SpecialType","acyclic","flow","flatgrid$1","execution","menu","special","KeyboardBranches","Keying","keyConfig","keyState","sendFocusIn","set$5","replaceConfig","replaceState","insert","childSpec","append$2","appendee","prepend$1","prependee","remove$7","removee","foundChild","replaceAt","replaceeIndex","replacer","replacee","replaceBy","replaceePred","ReplaceApis","Replacing","events$4","eventHandlers","focus$2","focusConfig","ignore","onFocus","blur$1","isFocused","FocusApis","exhibit$1","tabindex","events$5","stopMousedown","ActiveFocus","FocusSchema","Focusing","updateAriaState","toggleConfig","toggleState","ariaInfo","aria","updateClass","toggleClass","toggle","set$6","on$1","isOn","onLoad$4","ToggleApis","exhibit$2","events$6","load","toggleOnExecute","ActiveToggle","SetupBehaviourCellState","initialState","updatePressed","syncWithExpanded","updateExpanded","updateSelected","updateChecked","ToggleSchema","pressed","checked","expanded","Toggling","pointerEvents","events$7","optAction","executeHandler","hoverEvent","focusEvent","onHover","hover","focus$3","builder","role","toggling","aria-haspopup","hasSubmenu","aria-expanded","itemBehaviours","tConfig","ignoreFocus","schema$a","builder$1","schema$b","owner$2","builder$2","focusWidget","widget","onHorizontalArrow","autofocus","setSource","widgetBehaviours","schema$c","itemSchema$1","separator","configureGrid","movementInfo","configureMatrix","rowSelector","configureMenu","parts$1","itemInfo","unit","fakeFocus","schema$d","grid","focus$4","make$1","menuBehaviours","selectedItem","Menu","transpose","trace","byItem","byMenu","triggerItem","triggerMenu","generate$5","menus","expansions","menuItems","menuPaths","_triggerItem","init$3","primary","directory","isClear","setMenuBuilt","menuName","setContents","sPrimary","sMenus","sExpansions","dir","sPaths","getTriggeringItem","menuValue","getTriggerData","getItemByValue","getPreparedMenu","triggeringItemValue","triggeredItem","triggeredMenu","triggeringItem","triggeringPath","getTriggeringPath","itemValue","extraPath","lookupItem","revPath","triggers","menuIndex","expand","refresh","lookupMenu","extractPreparedMenu","otherMenus","menuValues","getPrimary","getMenus","prep","LayeredState","make$2","rawUiSpec","ExpandHighlightDecision","submenuParentItems","buildMenus","primaryName","makeSketch","nbMenu","layeredState","setup","componentMap","toDirectory","getItemValue","setActiveMenu","mv","closeOthers","others","backgroundMenu","stayInDom","getSubmenuParents","parentItems","itemComp","updateAriaExpansions","updateMenuPath","latestMenuName","menuPrep","activeMenu","buildIfRequired","expandRight","HighlightSubmenu","activeMenuPrep","onOpenSubmenu","collapseLeft","onCollapseMenu","updateView","keyOnItem","getSource","onExecute","onOpenMenu","highlightImmediately","navigateOnHover","HighlightParent","getActiveItem","collapseMenuApi","currentItem","highlightPrimary","extractMenuFromContainer","repositionMenus","maybeActivePrimary","allMenus","preparedMenus","primaryMenu","onRepositionMenu","collapseMenu","tmenuBehaviours","keyInfo","selectedMenu","collapseItem","tieredData","singleData","collapseItem$1","tieredMenu","tmenu","makeMenu","menuSandbox","menuSpec","lazySink","isFirstTierSubmenu","triggeringPaths","getSubmenuLayouts","submenuTriggers","st","submenuLayouts","isPartOfRelated","related","getRelated","thing","showAt","showWithin","showWithinBounds","showMenuAt","showMenuWithinBounds","hide","getContent","inlineBehaviours","onShow","onHide","fireDismissalEventInstead","fireRepositionEventInstead","InlineView","westEdgeX$1","middleX$1","eastEdgeX$1","northY$2","southY$2","southeast$3","southwest$3","northeast$3","northwest$3","north$3","south$3","factory$1","lookupAttr","getModAttributes","roleAttrs","buttonBehaviours","Button","record","anyInSystem","getOpt","asSpec","defaultIcon","icons","get$c","getFirst$1","notificationIconMap","success","warning","factory$2","memBannerText","translationProvider","renderPercentBar","percent","renderPercentText","memBannerProgress","progress","updateProgress","updateText","text$1","banner","iconChoices","icon","level","iconProvider","aria-label","onAction","Notification","global$2","NotificationManagerImpl","editor","extras","uiMothership","backstage","getLayoutDirection","prePositionNotifications","notifications","notification","moveTo","positionNotifications","firstItem","moveRel","getEl","settings","closeCallback","notificationWrapper","progressBar","shared","providers","getSink","timeout","setTimeout","layoutDirection_1","nodeAnchor","anchors","nuText","getArgs","ItemResponse","first$1","rate","timer","cancel","clearTimeout","throttle","last$2","global$3","isText$1","isBoundary","isBlock","getContentEditable","outcome$1","aborted","phase","kontinue","repeat","process","walker","recent","terminate","recurse","repeatLeft","rootNode","getRoot","prev","autocompleteSelector","create$4","detect$4","getNode","getDoc","extractContents","insertNode","elm","normalize","setCursorLocation","isValidTextRange","whiteSpace","parse","minChars","char","charAt","getText","findStart","initRange","findTriggerCh","optOffset","newText","cloneRange","triggerChar","getContext","createRng","onKeypress","redirectKeyToItem","getItem","getView","isActive","cancelIfNecessary","isMenuOpen","stopImmediatePropagation","isProcessingAction","AutocompleterEditorEvents","global$4","point$2","isText$2","isElement$1","toLast","toLeaf","isStartOfWord","leaf","getTriggerContext","database","triggerChars","getDatabase","getRng","context","lookupWithContext","fetchOptions","startText","autocompleters","lookupByChar","autocompleter","lookupData","ac","fetchResult","fetch","maxResults","then","matchText","columns","separatorMenuItemSchema","createSeparatorMenuItem","autocompleterItemSchema","autocompleterSchema","createSeparatorItem","createAutocompleterItem","createAutocompleter","stringArray","register","popups","ui","registry","getAll","popup","datasetValues","dv","commonMenuItemFields","menuItemSchema","createMenuItem","nestedMenuItemSchema","createNestedMenuItem","toggleMenuItemSchema","createToggleMenuItem","choiceMenuItemSchema","createChoiceMenuItem","fancyTypes","fancyMenuItemSchema","createFancyMenuItem","detectSize","margin","selectorClass","descendants$1","columnLength","thisTop","cTop","ceil","namedEvents","unnamedEvents","SimpleBehaviours","TooltippingSchema","init$4","getTooltip","setTooltip","clearTooltip","clearTimer","resetTimer","delay","isShowing","TooltippingState","ExclusivityChannel","ShowTooltipEvent","HideTooltipEvent","hideAllExclusive","tState","setComponents","specs","tooltip","TooltippingApis","events$8","tooltipConfig","show","tooltipDom","tooltipComponents","receivingData","ActiveTooltipping","Tooltipping","getAttrs","fromHtml$2","global$5","navClass","selectableClass","colorClass","presetClasses","normal","color","tickedClass","groupHeadingClass","iconClass","textClass","accessoryClass","caretClass","checkmarkClass","activeClass","iconClassRtl","classForPreset","presets","global$6","convertText","mac","alt","ctrl","shift","access","other","shortcut","updated","segment","ConvertShortcut","renderIcon","iconHtml","renderText","renderHtml","renderStyledText","styleAttr","renderShortcut","renderCheckmark","renderSubmenuCaret","renderDownwardsCaret","renderColorStructure","itemText","iconSvg","providerBackstage","colorPickerCommand","removeColorCommand","getDom","common","title","optComponents","renderNormalItemStructure","renderIcons","textRender","rtlClass","leftIcon","checkMark","domTitle","ariaLabel","htmlContent","menuItem","shortcutContent","caret","rtlIcon","rtlTransform","renderItemStructure","providersBackstage","fallbackIcon","getIconName","iconName","needRtlClass","iconContent","nativeDisabled","onLoad$5","disableConfig","disableState","disabled","disable","hasNative","useNative","nativeIsDisabled","nativeDisable","nativeEnable","ariaIsDisabled","ariaDisable","ariaEnable","disableClass","onDisabled","enable","onEnabled","isDisabled","set$7","DisableApis","exhibit$3","events$9","ActiveDisable","DisableSchema","Disabling","button","splitButton","toolbarButton","DisablingConfigs","runWithApi","getApi","onControlAttached","editorOffCell","onDestroy","onSetup","onControlDetached","ItemResponse$1","onMenuItemExecute","itemResponse","triggersSubmenu","CLOSE_ON_EXECUTE","menuItemEventOrder","componentRenderPipeline","renderCommonItem","structure","buildData","global$7","tooltipBehaviour","sharedBackstage","tooltipWorker","_tooltip","escapeRegExp","encodeText","DOM","encode","replaceText","translated","encoded","escapedMatchRegex","RegExp","renderAutocompleteItem","useText","onItemValueHandler","_api","renderChoiceItem","isSelected","setActive","setDisabled","parts$2","cellOverEvent","cellExecuteEvent","makeCell","col","labelId","emitCellOver","makeCells","cells","selectCells","selectedRow","selectedColumn","makeComponents","cellRow","makeLabelText","renderInsertTableMenuItem","sizeLabelId","memLabel","hexColour","hexString","shorthandRegex","longformRegex","isHexString","hex","getLongForm","m","extractValues","longForm","splitForm","exec","toHex","fromRgba","rgbaColour","red","green","blue","round","rgbRegex","rgbaRegex","alpha","isRgbaComponent","fromHsv","hsv","hue","saturation","brightness","side","chroma","fromHex","fromStringValues","fromString","rgbaString","rgbMatch","rgbaMatch","rgba","redColour","global$8","storageName","ColorCache","storageString","localstorage","prune","diff","cache","unshift","pop","setItem","idx","splice","choiceItem","defaultColors","colorCache","mapColors","colorMap","colors","canvas","ctx","byteAsHex","colorByte","alphaByte","bg","colorByteWithWhiteBg","toUpperCase","asHexColor","clearRect","fillStyle","fillRect","getImageData","getColorCols","defaultCols","getParam","hasCustomColors","getColorMap","getColors","unmapped","getCurrentColors","addColor","Settings","fireSkinLoaded","fire","fireResizeEditor","fireBeforeRenderUI","fireResizeContent","fireScrollContent","fireTextColorChange","Events","getCurrentColor","format","getParents","applyFormat","undoManager","transact","formatter","nodeChanged","removeFormat","registerCommands","addCommand","calcCols","sqrt","getColorCols$1","getAdditionalColors","hasCustom","applyColor","onChoice","dialog","colorPickerDialog","colorOpt","execCommand","getMenuColors","getFetch","callback","setIconColor","splitButtonApi","newColor","setIconFillAndStroke","pathId","setIconFill","setIconStroke","registerTextColorButton","lastColor","addSplitButton","select","optCurrentRgb","currentRgb","currentHex","onItemAction","registerTextColorMenuItem","addNestedMenuItem","getSubmenuItems","fancytype","getOnSubmit","colorpicker","details","initialData","submit","windowManager","buttons","onSubmit","onCancel","register$1","lastForeColor","lastBackColor","ColorSwatch","chunk$1","rowDom","chunks","forSwatch","forToolbar","preprocessCollection","isSeparator","allSplits","currentSplit","forCollection","initItems","_hasIcons","_item","forHorizontalCollection","forMenu","hasIcons","markers$1","menuClasses","dom$1","hasIcon","menuHasIcons","handleError","createHorizontalPartialMenuWithAlloyItems","_columns","_presets","createPartialMenuWithAlloyItems","createPartialChoiceMenu","presetItemTypes","alloyItems","createChoiceItems","itemPresets","deriveMenuMovement","menuMarkers","rowClass","deriveCollectionMovement","renderColorSwatchItem","colorinput","widgetSpec","FocusMode","fancyMenuItems","inserttable","colorswatch","valueOpt","renderFancyMenuItem","render","renderNormalItem","renderNestedItem","downwardsCaret","renderSeparatorItem","renderToggleMenuItem","autocomplete","nested","toggle$1","fancy","hasIcon$1","menuHasIcons$1","createMenuItemFromBridge","isHorizontalMenu","parseForHorizontalMenu","menuitem","createAutocompleteItems","createPartialMenu","itemHasIcon","createItem","createPartial","createTieredDataFrom","partialMenu","createMenuFrom","focusMode","ContentFocus","register$2","activeAutocompleter","processingAction","hideIfNecessary","lastElement","getAutocompleters","getCombinedItems","choices","itemMeta","nr","autocompleterApi","reload","BUBBLE_TO_SANDBOX","commenceIfNecessary","matchLength","display","ld","doLookup","newContext","lookupInfo","combinedItems","autocompleterUiApi","Autocompleter","mkEvent","kill","fromRawEvent","rawEvent","stopPropagation","clientX","clientY","handle","binder","useCapture","wrapped","addEventListener","unbind","bind$2","capture","removeEventListener","filter$1","bind$3","capture$1","fromRawEvent$1","closest$4","DelayedFunction","fun","ref","schedule","SIGNIFICANT_MOVE","LONGPRESS_DELAY","getTouch","touches","isFarEnough","touch","distX","distY","monitor","startData","longpressFired","longpress$1","handleTouchstart","handleTouchmove","handleTouchend","isSame","fireIfReady","isDangerous","keyEv","settingsSchema","bindFocus","bindBlur","setup$1","rawSettings","tapEvent","simpleEvents","tapStopped","stopped","pasteTimeout","onPaste","onKeydown","stopBackspace","onFocusIn","focusoutTimeout","onFocusOut","derive$2","rawTarget","getTarget","fromSource","isStopped","isCut","fromExternal","adt$b","resume","complete","doTriggerHandler","eventType","handlerInfo","eventHandler","doTriggerOnUntilStopped","triggerHandler","listeners","listener","triggerUntilStopped","triggerOnUntilStopped","broadcastHandler","EventRegistry","registerId","findHandler","reader","filterByType","isAboveRoot","readType","unregisterId","handlersById","Registry","readOrTag","failOnDuplicate","tagId","conflict","unregister","getById","ToolbarDrawer","factory$3","domWithoutAttributes","containerBehaviours","Container","takeover","domEvents","_alloyId","broadcast$1","destroy","broadcastData","receivers","receiver","global$9","getSkinUrl","skin","skinUrl","skin_url","skinName","documentBaseURI","baseURL","isReadOnly","isSkinDisabled","getHeightSetting","getElement","getWidthSetting","getStyle","getMinWidthSetting","min_width","getMinHeightSetting","min_height","getMaxWidthSetting","getMaxHeightSetting","getUserStyleFormats","isMergeStyleFormats","getRemovedMenuItems","isMenubarEnabled","isToolbarEnabled","toolbar","isToolbarTrue","isToolbarString","isToolbarObjectArray","isMultipleToolbars","getMultipleToolbarsSetting","toolbarKeys","toolbars","toolbarArray","getToolbarDrawer","fixedContainerSelector","fixedContainerElement","inline","useFixedContainer","getUiContainer","fixedContainer","isDistractionFree","isStickyToolbar","isDraggableModal","SIGNIFICANT_MOVE$1","LONGPRESS_DELAY$1","getTouch$1","isFarEnough$1","setup$2","debounceLongpress","isEqualNode","isDefaultPrevented","TouchEvents","formChangeEvent","formCloseEvent","formCancelEvent","formActionEvent","formSubmitEvent","formBlockEvent","formUnblockEvent","formTabChangeEvent","formResizeEvent","renderAlertBanner","iconTooltip","url","renderBar","interpreter","schema$e","parts$3","aria-hidden","excludeFactory","factory$4","fieldBehaviours","descriptor","descriptorId","getField","getLabel","FormField","schema$f","focusBehaviours","selectOnFocus","setSelectionRange","inputBehaviours","dom$2","inputAttributes","inputStyles","inputClasses","factory$5","Input","exports$1","module","exports","define","require","amd","EphoxContactWrapper","code","1","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","runClearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","nextTick","env","argv","versions","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","2","setImmediate","setTimeoutFunc","thisArg","Promise","TypeError","_state","_handled","_value","_deferreds","doResolve","deferred","_immediateFn","cb","onFulfilled","onRejected","reject","promise","finale","_unhandledRejectionFn","Handler","reason","ex","prom","remaining","race","_setImmediateFn","_setUnhandledRejectionFn","timers","3","clearImmediate","immediateIds","nextImmediateId","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","process/browser.js","4","promisePolyfill","Global","boltExport","promise-polyfill","HighlightOnOpen","nu$a","baseFn","callbacks","nCallback","isReady","cbs","pure$1","LazyValue","errorReporter","make$3","fab","aFutureB","toPromise","anonBind","futureB","toLazy","toCached","nu$b","pure$2","Future","ariaElements","isAriaElement","markValid","invalidConfig","invalidClass","notify","notifyInfo","getContainer","validHtml","onValid","markInvalid","invalidState","onInvalid","validatorInfo","validate","run$1","onValidate","valid","isInvalid","InvalidateApis","events$a","onEvent","validateOnLoad","ActiveInvalidate","InvalidateSchema","Invalidating","validation","exhibit$4","tabConfig","tabAttr","ActiveTabstopping","TabstopSchema","Tabstopping","renderFormFieldWith","pLabel","pField","extraClasses","extraBehaviours","renderFormFieldSpecWith","renderFormField","renderFormFieldDomWith","renderFormFieldDom","renderLabel","getCoupled","coupleConfig","coupleState","getOrCreate","CouplingApis","CouplingSchema","init$5","coupled","CouplingState","Coupling","partType","getAnchor","getHotspot","getAnchorOverrides","mapFetch","fetcher","openF","highlightOnOpen","futureData","getLazySink","tdata","HighlightFirst","open$1","onOpenSync","processed","close$1","_externals","_onOpenSync","_highlightOnOpen","togglePopup","showing","matchWidth","useMinWidth","buttonWidth","sinkDetail","internalSink","lazySinkFn","doRepositionMenus","makeSandbox","ariaOwner","sandboxClasses","sandboxBehaviours","sandboxFields","schema$g","parts$4","factory$6","_spec","switchToMenu","HighlightNone","triggerExecute","dropdownBehaviours","Dropdown","exhibit$5","unselectConfig","-webkit-user-select","user-select","-ms-user-select","-moz-user-select","unselectable","events$b","ActiveUnselecting","Unselecting","renderPanelButton","colorInputChangeEvent","colorSwatchChangeEvent","colorPickerCancelEvent","renderColorInput","colorInputBackstage","inputValue","span","emitSwatchChange","colorBit","memColorButton","colorPicker","colorButton","hsvColour","fromRgb","minRGB","maxRGB","calcHex","rgb","fieldsUpdate","sliderUpdate","paletteUpdate","platform$1","labelPart","edgePart","model","edgeActions","touchEvents","mouseEvents","l","det","mouseIsDown","tlEdgePart","tedgePart","trEdgePart","redgePart","brEdgePart","bedgePart","blEdgePart","ledgePart","thumbPart","spectrumPart","modelDetail","getValueFromEvent","spectrum","SliderParts","isTouch$1","_sliderChangeEvent","sliderChangeEvent","getEventSource","evt","touchEvent","mouseEvent","r$1","minX","minY","min1X","min1Y","maxY","max1X","max1Y","range$2","xRange","yRange","halfX","halfY","step","stepSize","snap","snapToGrid","snapStart","rounded","hasEdge","edgeName","hasLEdge","hasREdge","hasTEdge","hasBEdge","currentValue","xValue","yValue","xyValue","fireSliderChange","setToTLEdgeXY","setToTEdge","setToTEdgeXY","setToTREdgeXY","setToREdge","setToREdgeXY","setToBREdgeXY","setToBEdge","setToBEdgeXY","setToBLEdgeXY","setToLEdge","setToLEdgeXY","reduceBy","increaseBy","capValue","snapValueOf","initValue","extraValue","remainder","adjustment","rawSteps","maxSteps","numSteps","findOffsetOf","findValueOf","hasMinEdge","hasMaxEdge","minBound","maxBound","screenRange","capMin","capMax","findOffsetOfValue","maxOffset","centerMinEdge","centerMaxEdge","getBounds$1","getBoundsProperty","getMinXBounds","getMaxXBounds","getMinYBounds","getMaxYBounds","getXScreenRange","getYScreenRange","getCenterOffsetOf","componentMinEdge","componentMaxEdge","spectrumMinEdge","getXCenterOffSetOf","componentBounds","spectrumBounds","getYCenterOffSetOf","fireSliderChange$1","sliderValue","findValueOfOffset","sliderVal","setToMin","setToMax","moveBy","handleMovement","findOffsetOfValue$1","minEdge","maxEdge","minOffset","findPositionOfValue","slider","setPositionFromValue","thumb","edges","getSpectrum","getLeftEdge","getRightEdge","thumbRadius","top-left","top-right","bottom-right","bottom-left","HorizontalModel","fireSliderChange$2","sliderValue$1","findValueOfOffset$1","setValueFrom$1","setToMin$1","setToMax$1","moveBy$1","handleMovement$1","getValueFromEvent$1","findOffsetOfValue$2","findPositionOfValue$1","setPositionFromValue$1","getTopEdge","getBottomEdge","onLeft$1","onRight$1","onUp$1","onDown$1","edgeActions$1","VerticalModel","fireSliderChange$3","sliderValue$2","setValueFrom$2","moveBy$2","isVerticalMovement","handleMovement$2","setToMin$2","mX","mY","setToMax$2","getValueFromEvent$2","setPositionFromValue$2","xPos","yPos","thumbXRadius","thumbYRadius","onLeft$2","onRight$2","onUp$2","onDown$2","edgeActions$2","TwoDModel","isTouch$2","SliderSchema","isTouch$3","getThumb","changeValue","onChange","resetToMin","resetToMax","_simulatedEvent","onDragStart","onDragEnd","uiEventsArr","sliderBehaviours","mouse.released","fireOnChoose","onChoose","wasDown","getInitialValue","onInit","Slider","sliderFactory","getClass","_thumb","HueSlider","owner$3","schema$h","getPartName","sketch$1","fSpec","fieldParts","make$4","toResult$1","formBehaviours","form","resPs","resPThunk","pName","Form","validInput","invalidInput","validatingInput","translatePrefix","rgbFormFactory","onValidHexx","onInvalidHexx","invalidation","isValid","renderTextField","description","helptext","aria-live","comps","concats","copyRgbToHex","hexField","copyRgbToForm","memPreview","background-color","updatePreview","preview","copyHexToRgb","setValueRgb","getValueRgb","onInvalidInput","onValidHex","onValidRgb","isHexInputEvent","onValidInput","formPartStrings","redStrings","greenStrings","blueStrings","hexStrings","updateHex","rgbFormSketcher","RgbForm","paletteFactory","_translate","setColour","grdWhite","createLinearGradient","addColorStop","grdBlack","setSliderColour","_detail","_slider","saturationBrightnessPaletteSketcher","setRgba","_apis","SaturationBrightnessPalette","makeFactory","rgbForm","onInvalidHex","sbPalette","paletteRgba","memPalette","memRgb","updatePalette","palette","updateFields","runUpdates","updates","paletteUpdates","oldRgb","hsvColour$1","newHsvColour","nuHex","sliderUpdates","colourPickerSketcher","ColourPicker","self$1","memento","mem","childAt","ComposingConfigs","english","colorcustom.rgb.red.label","colorcustom.rgb.red.description","colorcustom.rgb.green.label","colorcustom.rgb.green.description","colorcustom.rgb.blue.label","colorcustom.rgb.blue.description","colorcustom.rgb.hex.label","colorcustom.rgb.hex.description","colorcustom.rgb.range","colorcustom.sb.saturation","colorcustom.sb.brightness","colorcustom.sb.picker","colorcustom.sb.palette","colorcustom.sb.instructions","colorcustom.hue.hue","colorcustom.hue.slider","colorcustom.hue.palette","colorcustom.hue.instructions","aria.color.picker","aria.input.invalid","getEnglishText","translate$1","renderColorPicker","colourPickerFactory","memPicker","picker","optRgbForm","optHex","formValues","pattern","global$a","isOldCustomEditor","renderCustomEditor","editorApi","memReplaced","ta","scriptId","scriptUrl","ea","cvalue","ed","processors","memento$1","rawProcessors","rawValue","postprocess","withComp","optInitialValue","getter","setter","withElement","domValue","domHtml","memory$1","RepresentingConfigs","extensionsAccepted","filterByExtension","files","re","file","renderDropZone","actions","onDrop","transferEvent","handleFiles","dataTransfer","onSelect","memInput","accept","renderField","inputComp","renderGrid","beforeObject","afterObject","craftWithClasses","outline","craft","triggerTab","onFocus$1","isPseudoStop","NavigableObject","platformNeedsSandboxing","getDynamicSource","isSandbox","cachedValue","frameComponent","contentWindow","renderIFrame","sandboxed","sourcing","create$5","resize","clone$1","tCanvas","get2dContext","drawImage","getWidth","image","naturalWidth","getHeight","naturalHeight","asap","immediateFn","catch","values_1","Promise$1","blobToImage","blobUrl","URL","createObjectURL","Image","removeListeners","loaded","src","dataUriToBlobSync","uri","mimetype","base64","sliceSize","byteCharacters","atob","bytesLength","slicesCount","byteArrays","sliceIndex","begin","end","bytes","charCodeAt","Uint8Array","Blob","dataUriToBlob","canvasToBlob","quality","HTMLCanvasElement","toBlob","toDataURL","canvasToDataURL","blobToCanvas","revokeImageUrl","blobToDataUri","FileReader","onloadend","readAsDataURL","revokeObjectURL","create$6","getCanvas","initialType","getType","toBase64","toAdjustedBlob","toAdjustedDataURL","toAdjustedBase64","dataurl","toCanvas","fromBlob","fromCanvas","blobToImageResult","clamp","parsedValue","identity$1","DELTA_INDEX","multiply","matrix1","matrix2","out","adjustContrast","adjustBrightness","adjustColors","adjustR","adjustG","adjustB","colorFilter","ir","applyColorFilter","applyMatrix","pixelsData","m0","m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","pixels","putImageData","convoluteFilter","applyConvoluteFilter","pIn","pOut","aMatrix","halfSide","drgba","cy","cx","scx","scy","innerOffset","wt","pixelsIn","pixelsOut","functionColorFilter","colorFn","filterImpl","applyLookup","complexAdjustableColorFilter","matrixAdjustFn","adjust","basicColorFilter","basicConvolutionFilter","kernel","invert","contrast","colorize","sharpen","gamma","pow","scale","dW","dH","sW","sH","wRatio","hRatio","scaleCapped","scaled","_scale","rotate","angle","applyRotate","translateX","translateY","PI","flip","axis","applyFlip","crop","applyCrop","resize$1","newCanvas","invert$1","sharpen$1","gamma$1","colorize$1","brightness$1","contrast$1","flip$1","crop$1","resize$2","rotate$1","renderIcon$1","renderIconFromPack","iconsProvider","renderReplacableIconFromPack","renderLabel$1","internalToolbarButtonExecute","onToolbarButtonExecute","itemApi","buttonApi","toolbarButtonEventOrder","updateMenuText","updateMenuIcon","renderCommonDropdown","optMemDisplayText","optMemDisplayIcon","onLeftOrRightInMenu","dropdown","tooltipAttributes","translatedTooltip","memDropdown","displayText","displayIcon","isMenuItemReference","isExpandingMenuItem","separator$1","unwrapReferences","realItems","getFromExpandingItem","submenuItems","newMenus","newExpansions","getFromItem","generateValueIfRequired","itemWithValue","newData","build$2","mainMenu","submenus","getMenuButtonApi","renderMenuButton","getFetch$1","getButton","getMenuItemAction","storage","orig","getMenuItemSetup","renderCommonSpec","actionOpt","domFinal","renderIconButtonSpec","renderIconButton","iconButtonSpec","renderButtonSpec","translatedText","borderless","renderButton","buttonSpec","getAction","buttonType","isMenuFooterButtonSpec","isNormalFooterButtonSpec","renderFooterButton","memButton_1","menuButtonSpec","fixedSpec","renderDialogButton","schema$i","coupledPart","selfName","otherName","lock","onLockedChange","parts$5","locked","lockClass","factory$7","coupledFieldBehaviours","field1Name","field1","field2Name","field2","getField1","getField2","getLock","FormCoupledInputs","formatSize","unitDec","","px","pt","mm","pc","em","rem","cm","in","%","maxDecimal","numText","parseSize","sizeText","numPattern","convertUnit","inInch","supported","noSizeConversion","ratioSizeConversion","makeRatioConverter","currentFieldText","otherFieldText","cValue","oValue","cSize","oSize","renderSizeInput","converter","ratioEvent","pLock","formGroup","getFieldPart","isField1","widthField","heightField","newSize","optCurrent","optOther","value1","value2","undo","redo","zoom","back","swap","tempTransform","transformApply","internal","saveState","disable$1","enable$1","external$2","renderEditPanel","imagePanel","createButton","createIconButton","disableAllComponents","eventcomp","enableAllComponents","panelDom","noop$1","emit$1","emitDisable","emitEnable","emitTransform","emitTempTransform","getBackSwap","memContainer","ButtonPanel","emitTransformApply","createBackButton","createSpacer","createApplyButton","makeCropTransform","getRect","cropPanelComponents","hideCrop","CropPanel","memSize","constrain","makeResizeTransform","resizePanelComponents","sizeInput","ResizePanel","makeValueTransform","horizontalFlip","verticalFlip","counterclockwiseRotate","clockwiseRotate","flipRotateOnAction","operation","flipRotateComponents","FlipRotatePanel","makeSlider","makeVariableSlider","valTransform","variableFilterPanelComponents","createVariableFilterPanel","filterPanelComponents","FilterPanel","BrightnessPanel","ContrastPanel","GammaPanel","makeColorTransform","makeColorSlider","redOpt","memRed","blueOpt","memBlue","greenOpt","memGreen","colorizePanelComponents","ColorizePanel","getTransformPanelEvent","panel","cropPanelUpdate","_anyInSystem","showCrop","resizePanelUpdate","measurements","getMeasurements","sharpenTransform","invertTransform","buttonPanelComponents","getApplyButton","global$b","global$c","global$d","global$e","global$f","getDocumentSize","scrollWidth","scrollHeight","updateWithTouchData","changedTouches","DragHelper","$eventOverlay","downButton","drag","startX","startY","handleElement","getElementById","handleElm","cursor","docSize","screenX","screenY","runtimeStyle","zIndex","opacity","appendTo","deltaX","deltaY","create$7","currentRect","viewPortRect","clampRect","containerElm","instance","dragHelpers","blockers","handles","xMul","yMul","getAbsoluteRect","outerRect","relativeRect","getRelativeRect","innerRect","getInnerRect","moveRect","startRect","setInnerRect","createDragHelper","blocker","repaint","activeHandle","moveAndBlock","keyCode","SPACEBAR","toggleVisibility","updateElementRect","setRect","setViewPortRect","setClampRect","helper","extend","CropRect","loadImage","renderImagePanel","initialUrl","memBg","zoomState","cropRect","rectState","viewRectState","repaintImg","img","panelW","panelH","cRect","zoomFit","updateSrc","aImg","lastViewRect","viewRect","inflate","currentZoom","newZoom","newRect","setButtonEnabled","enabled","renderSideBar","updateButtonUndoStates","undoEnabled","redoEnabled","memUndo","memRedo","UndoStack","removed","canUndo","canRedo","Delimiter","makeState","blobState","tempState","undoStack","getBlobState","setBlobState","getTempState","temp","updateTempState","newTempState","createState","destroyTempState","destroyState","destroyStates","states","addBlobState","addTempState","applyTempState","postApply","currentState","getHistoryStates","renderImageTools","historyStates","sideBar","disableUndoRedo","oImg","unblock","imageResultToBlob","block","editPanel","applyButton","blobManipulate","manipulate","tempManipulate","manipulateApply","currentUrl","factory$8","initialValues","selectClasses","selectAttributes","selectBehaviours","found","HtmlSelect","renderSelectBox","translatedOptions","chevron","selectWrap","baseInputBehaviours","multiline","validatingBehaviours","vl","inputMode","inputmode","classname","flex","extraClasses2","maximized","renderInput","renderTextarea","events$c","streamConfig","streamState","streams","stream","processor","cancelEvent","ActiveStreaming","_config","setTimer","init$6","StreamingState","setup$3","streamInfo","sInfo","throttler","onStream","stopEvent","StreamingSchema","Streaming","setValueFromItem","itemData","setCursorAtEnd","setSelectionOn","setSelectionToEnd","attemptSelectOver","selectsOver","inputDisplay_1","getDisplayText","itemDisplay","itemExecute","make$5","navigateList","highlighter","previewing","focusBehaviours$1","responseTime","focusInInput","previousValue_1","_sandbox","pv","sandboxIsOpen","openClass","onItemExecute","dismissOnBlur","typeahead","aria-autocomplete","typeaheadBehaviours","schema$j","parts$6","populateFromBrowse","Typeahead","wrap$2","bindFuture","resA","bindResult","mapResult","foldResult","whenError","whenValue","withTimeout","errorThunk","timedOut","nu$c","worker","value$2","error$1","fromResult$1","fromFuture","future","fromPromise","completer","FutureResult","separator$2","toMenuItem","staticMenuItem","toMenuItems","targets","filterLinkTargets","filteredTargets","headerTargets","linkInfo","anchorTargets","anchorTargetTop","anchorTop","anchorTargetBottom","anchorBottom","historyTargets","history","joinMenuLists","bothEmpty","filterByQuery","term","lowerCaseTerm","getItems","fileType","urlBackstage","urlInputValue","getLinkInformation","getHistory","errorId","renderUrlInput","updateHistory","urlEntry","addToHistory","filetype","aria-errormessage","memUrlBox","getValidationHandler","memInvalidIcon","invalidComp","_menu","_entry","makeIcon","errId","memStatus","optUrlPicker","getUrlPicker","browseUrlEvent","memUrlPickerButton","controlHWrapper","openUrlPicker","urlData","chosenData","renderCheckbox","repBehaviour","toggleCheckboxHandler","className","memIcons","renderHtmlPanel","renderLabel$2","backstageShared","renderCollection","runOnItem","escapeAttribute","htmlLines","mapItemName"," - ","-","collectionEvents","tgt","currentActive","renderTable","renderTh","renderHeader","header","renderTd","renderTr","renderRows","renderPanel","make$6","makeIframe","iframeSpec","factories","bar","collection","alertbanner","textarea","iframe","checkbox","dropzone","selectbox","sizeinput","urlinput","customeditor","htmlpanel","imagetools","table","noFormParts","_name","interpretInForm","oldBackstage","newBackstage","interpretParts","interpretWithoutForm","expandable$1","bubbleAlignments","valignCentre","alignCentre","alignLeft","alignRight","getToolbarAnchor","bodyElement","lazyAnchorbar","useFixedToolbarContainer","fixedToolbarAnchor","standardAnchor","getBannerAnchor","getToolbarOverflowAnchor","lazyMoreButton","getCursorAnchor","getNodeAnchor","getAnchors","toolbarOverflow","Anchors","hasCustomColors$1","getColors$1","getColorCols$2","ColorInputBackstage","isDraggableModal$1","DialogBackstage","defaultStyleFormats","isNestedFormat","isBlockFormat","isInlineFormat","isSelectorFormat","mapFormats","userFormats","fmt","customFormats","formats","formatName","registerCustomFormats","registerFormats","getStyleFormats","registeredUserFormats","processBasic","isSelectedFor","getPreviewFor","formatterSpec","getStylePreview","register$3","enrichSupported","enrichMenu","submenuSpec","enrichCustom","customSpec","newItem","doEnrich","newItems_1","getStyleItems","init$7","getCssText","settingsFormats","settingsFlattenedFormats","eventsFormats","eventsFlattenedFormats","replaceSettings","enriched","modifications","fromSettings","fromEvents","getFlattenedKeys","trim$1","hasContentEditableState","contentEditable","isContentEditableTrue","isContentEditableFalse","create$8","isChildOfContentEditableTrue","getElementText","innerText","getOrGenerateId","isAnchor","isValidAnchor","isEditable","isHeader","isValidHeader","getLevel","headerTarget","headerId","anchorTarget","anchorId","anchorText","getHeaderTargets","elms","getAnchorTargets","getTargetElements","hasTitle","find$5","LinkTargets","STORAGE_KEY","HISTORY_LENGTH","isHttpUrl","isArrayOfUrl","isRecordOfUrlArray","getAllHistory","unparsedHistory","localStorage","SyntaxError","setAllHistory","itemsWithoutUrl","hasOwnProperty$2","isTruthy","makeMap","getTextSetting","defaultValue","getPicker","file_picker_callback","getPickerTypes","optFileTypes","file_picker_types","optLegacyTypes","file_browser_callback_types","optTypes","_picker","types","getPickerSetting","pickerTypes","entry","typeahead_urls","optValidator","file_picker_validator_handler","filepicker_validator_handler","UrlInputBackstage","init$8","contextMenuState","styleselect","isContextMenuOpen","setContextMenuState","showContextToolbarEvent","hideContextToolbarEvent","schema$k","enhanceGroups","parts$7","factory$9","setGroups","groups","getGroupContainer","shell","toolbarBehaviours","Toolbar","generate$6","output$1","apportion","total","parray","within","withinWidth","toUnit","fitLast","fits","overflow","overflower","fitAll","tryFit","divide","partition$3","setStoredGroups","storedGroups","bGroups","findFocusedComp","overflowButton","overf","focusedElm","overflowGroup","focusedComp","builtGroups","overflows","schema$l","parts$8","factory$a","tgroupBehaviours","itemSelector","ToolbarGroup","schema$m","toolbarToggleEvent","doSetGroups","getMoreButton","splitToolbarBehaviours","coupling","_button","schema$n","parts$9","overflowToggledClass","toggleToolbar","isOpen$1","over","position$2","getOverflowBounds","bounder","refresh$1","reposition$1","makeSandbox$1","factory$b","spec$1","getOverflow","SplitFloatingToolbar","getAnimationRoot","slideConfig","getDimensionProperty","dimension","getDimension","disableTransitions","shrinkingClass","growingClass","setShrunk","closedClass","setGrown","doImmediateShrink","slideState","_calculatedSize","setCollapsed","onStartShrink","onShrunk","doStartShrink","calculatedSize","doStartSmartShrink","shrinker","doStartGrow","wasShrinking","beforeSize","fullSize","startPartialGrow","startCompleteGrow","setStartSize","setExpanded","onStartGrow","refresh$2","isExpanded","grow","shrink","immediateShrink","hasGrown","hasShrunk","isCollapsed","isGrowing","isShrinking","isTransitioning","toggleGrow","SlidingApis","exhibit$6","events$d","propertyName","onGrown","ActiveSliding","SlidingSchema","init$9","SlidingState","Sliding","schema$o","parts$a","onClosed","onOpened","toggleToolbar$1","refresh$3","isOpen$2","factory$c","SplitSlidingToolbar","toolbarHeightChange","ReadOnlyChannel","ReadOnlyDataSchema","setDisabledAll","forEach","broadcastReadonly","uiComponents","readonly","outerContainer","mothership","toggleToReadOnly","setupReadonlyModeSwitch","setMode","createReadonlyReceivingForOverflow","renderToolbarGroupCommon","toolbarGroup","renderToolbarGroup","getToolbarbehaviours","toolbarSpec","modeName","onAttached","initGroups","renderMoreToolbarCommon","cyclicKeying","overflow-group","overflow-button","renderFloatingMoreToolbar","baseSpec","overflowXOffset","headerElem","moreDrawerData","lazyHeader","headerBounds","docElem","docBounds","renderSlidingMoreToolbar","renderToolbar","scrolling","baseToolbarButtonFields","toolbarButtonSchema","createToolbarButton","baseMenuButtonFields","MenuButtonSchema","createMenuButton","splitButtonSchema","createSplitButton","baseToolbarToggleButtonFields","toggleButtonSchema","createToggleButton","contextBarFields","contextButtonFields","contextToggleButtonFields","launchButtonFields","launchToggleButtonFields","toggleOrNormal","contextformbutton","contextformtogglebutton","contextFormSchema","contextToolbarSchema","createContextToolbar","createContextForm","getState$2","reflectState","ReflectingApis","events$e","reflectingConfig","reflectingState","updateState","renderComponents","newComponents","channel","rawData","ActiveReflecting","init$a","optS","ReflectingState","ReflectingSchema","Reflecting","schema$p","arrowPart","arrow","buttonPart","btn","splitDropdown","parts$b","factory$d","openMenu","executeOnButton","buttonEvents","ariaDescriptor","splitDropdownBehaviours","SplitDropdown","getButtonApi","getToggleApi","getTooltipAttributes","focusButtonEvent","rtlIcon$1","rtlTransform$1","renderCommonStructure","needsRtlClass","renderCommonToolbarButton","specialisation","toolbarButtonBehaviours","renderToolbarButton","renderToolbarButtonWith","bonusEvents","renderToolbarToggleButton","renderToolbarToggleButtonWith","fetchChoices","renderSplitButton","displayChannel","underlinePath","buttonComp","aria-pressed","getFormApi","runOnExecute$1","formApi","renderContextButton","bridged","renderContextToggleButton","generateOne$1","generate$7","mementos","asSpecs","findPrimary","compInSystem","renderContextForm","toolbarType","commands","ContextForm","getHorizontalBounds","contentAreaBox","viewportBounds","contentBoxWidth","maxViewportWidth","getIframeBounds","containerBox","headerBox","contentBoxHeight","maxViewportHeight","getInlineBounds","vpHeight","vpTop","getDistractionFreeBounds","_editor","getContextToolbarBounds","toolbarOrMenubarEnabled","getContentAreaContainer","ancestor$2","transformed","matchTargetWith","toolbarApi","lookup$1","scopes","startNode","inNodeScope","inEditorScope","ToolbarLookup","categorise","contextToolbars","forms","formNavigators","lookupTable","registerForm","contextForm","launch","registerToolbar","contextToolbar","ToolbarScopes","forwardSlideEvent","backSlideEvent","changeSlideEvent","resizingClass","renderContextToolbar","currentWidth","newContents","oldContents","forwardContents","onSetupFormatToggle","unbindCell","formatChanged","initialized","onActionToggleFormat","rawItem","generateSelectItems","generateItem","response","si","invalid","validateItems","preItems","getCurrentValue","shouldHide","createMenuItems","createSelectButton","getComponent","setInitialValue","nodeChangeHandler","rawFormats","buildBasicStaticDataset","ResizeTypes","delimiter","SemiColon","buildBasicSettingsDataset","settingName","alignMenuItems","getSpec","getMatchingValue","_format","updateSelectMenuIcon","alignment","canApply","createAlignSelect","alignSelectMenu","defaultFontsFormats","systemStackFonts","splitFonts","fontFamily","fonts","font","isSystemFontStack","matchesSystemStack","getSpec$1","getFirstFont","queryCommandValue","matchOpt","updateSelectMenuText","createFontSelect","fontSelectMenu","defaultFontsizeFormats","legacyFontSizes","8pt","10pt","12pt","14pt","18pt","24pt","36pt","round$1","precision","factor","toPt","fontSize","toLegacy","getSpec$2","_loop_1","legacy","Space","createFontsizeSelect","fontsizeSelectMenu","findNearest","getStyles","parents","matchNode","getCurrentSelectionParents","currentNode","defaultBlocks","getSpec$3","nodeChangeEvent","detectedFormat","createFormatSelect","formatSelectMenu","getSpec$4","getFormatItems","flattenedItems","createStyleSelect","styleSelectMenu","defaultToolbar","renderFromBridge","bridgeBuilder","togglebutton","menubutton","splitbutton","styleSelectButton","fontsizeSelectButton","fontSelectButton","formatButton","alignMenuButton","extractFrom","bespokeButtons","fontsizeselect","fontselect","formatselect","align","removeUnusedDefaults","filteredItemGroups","subItem","convertStringToolbar","strToolbar","groupsStrings","isToolbarGroupSettingArray","createToolbar","toolbarConfig","lookupButton","toolbarItem","prefixes","identifyButtons","toolbarGroups","bubbleSize","bubbleAlignments$1","anchorOverrides","desktopAnchorSpecLayouts","mobileAnchorSpecLayouts","getAnchorLayout","register$4","registryContextToolbars","contextbar","isRangeOverlapping","aTop","aBottom","bTop","bBottom","getLastElementVerticalBound","nodeBounds","ele","diffTop","shouldContextToolbarHide","lastElementBounds","contextToolbarBounds","forceHide","hideOrRepositionIfNecessary","lastAnchor","contextBarEle","wrapInPopDialog","shortcuts","getScopes","alloySpec","buildToolbar","default","allButtons","toolbarKey","launchContext","sElem","launchContextToolbar","setEditorTimeout","ContextToolbar","setup$4","ship","fireDismissPopups","onTouchstart","onTouchmove","onTouchend","onMousedown","onMouseup","onContentClick","onContentMouseup","onWindowScroll","onWindowResize","onEditorResize","Events$1","parts$c","partType$1","schema$q","customListDetail","itemsPart","parts$d","name$2","factory$e","setItems","getListContainer","itemComps","numListsRequired","numListsToAdd","itemsToAdd","makeItem","itemsToRemove","builtLists","setupItem","listBehaviours","CustomList","getOrigin","isFixed","offsetParent$1","adt$c","subtract","add$4","transform$1","changes","asFixed","coord","asAbsolute","asOffset","withinRange","coord1","coord2","getDeltas","toStyles","translate$2","absorb","partialCoord","originalCoord","absorbOne","stencil","optX","optY","absolute$3","fixed$1","morphAdt","static","appear","contextualInfo","transitionClass","fadeOutClass","fadeInClass","disappear","isPartiallyVisible","isTopCompletelyVisible","isBottomCompletelyVisible","isVisibleForModes","getAttr","getPrior","dockInfo","leftAttr","topAttr","setPrior","absLeft","absTop","positionAttr","clearPrior","revertToOriginal","morphToOriginal","morphToFixed","lazyOrigin","asFixed$1","viewportPt","fixedViewport","fixedY","getMorph","isDocked","getMorphToOriginal","morphToStatic","onUndocked","morphToCoord","morph","method","onDocked","updateVisibility","morphToDocked","contextual","contextInfo","lazyContext","setVisible","refreshInternal","lazyViewport","setDocked","resetInternal","refresh$4","reset","DockingApis","events$f","dockState","onShown","onHidden","ActiveDocking","DockingSchema","init$b","docked","DockingState","Docking","visibility","editorStickyOnClass","editorStickyOffClass","updateIframeContentFlow","parentElem","parentWidth","headerHeight","updateSinkVisibility","sinkElem","updateEditorClasses","editorContainer","restoreFocus","focusedElem","activeElm","findFocusedElem","rootElm","setup$5","isDocked$1","getIframeBehaviours","getBehaviours$2","runOnSinkElement","onDockingSwitch","additionalBehaviours","boxHeight","StickyHeader","setup$6","isDocked$2","getBehaviours$3","StaticHeader","sticky","factory$f","setMenus","activeButton","hoveredButton","activeComp","hoveredComp","SilverMenubar","owner$4","schema$r","getPartName$1","sketch$2","sSpec","slot","make$7","getSlotNames","getSlot","onSlot","def","onSlots","doShowing","doShow","doHide","hideSlot","hideSlots","hideAllSlots","showSlot","slotBehaviours","slotApis","SlotContainer","sidebarSchema","createSidebar","setup$7","sidebars","addToggleButton","handleToggle","makePanels","panelConfigs","sidepanel","optSidePanelSpec","sidePanelSpec","makeSidebar","slotContainer","setSidebar","sidebar","optSlider","toggleSidebar","optSlotContainer","whichSidebar","sidebarOpen","fixSize","autoSize","renderSidebar","renderSpinner","toggleThrobber","renderThrobber","setup$8","lazyThrobber","throbberState","timerId","factory$g","getSocket","getHeader","getToolbar","setToolbar","setToolbars","mToolbar","refreshToolbar","getThrobber","focusToolbar","optToolbar","setMenubar","menubar","focusMenubar","partMenubar","toolbarFactory","sliding","floating","partMultipleToolbar","tc","partToolbar","renderer","lazyToolbar","partHeader","partSocket","partSidebar","partThrobber","OuterContainer","grps","grp","renderedToolbars","defaultMenubar","defaultMenus","edit","tools","help","make$8","removedMenuItems","itemName","removedMenuItem","parseItemsString","identifyMenus","rawMenuData","userDefinedMenus","validMenus","menuData","isNotSeparator","fireSkinLoaded$1","_skinLoaded","SkinLoaded","loadSkin","isInline","skinUiCss","contentCSS","styleSheetLoader","rawUiConfig","toolbarButtonsConfig","detection","isiOS12","setupEvents","initialDocEle","lastWindowDimensions","innerWidth","innerHeight","lastDocumentDimensions","docEle","outer","inner","elementLoad","lastToolbarWidth","targetNode","socket","-webkit-overflow-scrolling","limit","addQueryValueHandler","drawer","refreshDrawer","iframeContainer","Iframe","parseToInt","numToPx","calcCappedSize","minSize","maxSize","minOverride","maxOverride","Utils","getHeight$1","baseHeight","minHeight","getHeightWithFallback","getWidth$1","baseWidth","minWidth","getWidthWithFallback","render$1","floatContainer","isSticky","targetElm","editorMaxWidthOpt","splitSetting","updateChromePosition","tbar","location","bodyMargin","updateChromeUi","resetDocking","addClass","removeClass","uiContainer","hidden","Inline","register$5","alignToolbarButtons","cmd","alignNoneToolbarButton","addButton","AlignmentButtons","toggleFormat","registerFormatButtons","registerCommandButtons","registerCommandToggleButtons","registerButtons","registerMenuItems","addMenuItem","register$6","SimpleControls","toggleUndoRedoState","checkState","onUndoStateChange","registerMenuItems$1","registerButtons$1","register$7","UndoRedo","toggleVisualAidState","hasVisual","onVisualAid","registerMenuItems$2","addToggleMenuItem","registerToolbarButton","register$8","VisualAid","toggleOutdentState","queryCommandState","onNodeChange","registerButtons$2","register$9","IndentOutdent","register$a","ComplexControls","setup$9","FormatControls","nu$d","transpose$1","dx","dy","isTouchEvent","fromPageXY","pageX","pageY","fromClientXY","transposeContentAreaContainer","containerPos","getPos","getPointAnchor","getSelectionAnchor","getNodeAnchor$1","getAnchorSpec","isTriggeredByKeyboardEvent","initAndShow","buildMenu","contextmenu","anchorSpec","bubbleSize$1","bubbleAlignments$2","isTouchWithinSelection","touch_1","rngRectOpt","rngRect","getAnchorSpec$1","setupiOSOverrides","originalSelection","selectionReset","setRng","unbindEventListeners","preventMousedown","clearSelectionReset","initAndShow$1","openiOS_1","patchPipeConfig","shouldNeverUseNative","contextmenu_never_use_native","getMenuItems","defaultItems","contextMenus","isContextMenuDisabled","getContextMenu","Settings$1","isSeparator$1","separator$3","makeContextItem","addContextMenuGroup","groupItems","lastMenuItem","generateContextMenu","selectedElement","sections","allItems","isNativeOverrideKeyEvent","setup$a","hideContextMenu","_e","showContextMenu","isLongpress","initAndShow$2","hideEvents","initialAttribute","resetZIndex","initZIndex","changeZIndex","zindex","instigate","anyComponent","discard","createComponent","blockerClass","blockerEvents","z-index","get$d","snapsInfo","set$8","getCoords","snapInfo","moveOrSnap","newCoord","mustSnap","findClosestSnap","findSnap","fixedCoord","spanned","stopDrag","findMatchingSnap","snaps","sensor","inRange","getSnapPoints","matchSnap","bestSnap","deltas","bestDeltas","currAvg","bestAvg","snapTo","getCurrentCoord","clampCoords","coords","absoluteCoord","newCoords","offset$1","calcNewCoord","optSnaps","currentCoord","snapping","onSensor","dragBy","dragConfig","repositionTarget","onDrag","calcStartData","move$1","dragState","dragMode","dragStartData","getStartData","dlt","SnapSchema","init$c","dragApi","forceDrop","drop","delayDrop","getData$1","getDelta$1","MouseData","updateStartState","setStartData","stop$1","schema$s","init$d","getDataFrom","getData$2","getDelta$2","TouchData","handlers$1","blockerCell","schema$t","mouse","DraggingBranches","init$e","previous","calculateDelta","dragEvent","nuData","DragState","snapTo$1","snapPin","DraggingApis","Dragging","dragger","platform$2","snapWidth","snapOffset","calcSnap","selectorOpt","td","selectorHandle","sensorLeft","sensorTop","sensorWidth","sensorHeight","getSnapsConfig","isSameCell","cellOpt","currentTd","createSelector","setup$b","tlTds","brTds","startCell","finishCell","getTopLeftSnap","memTopLeft","getTopLeftSnaps","getBottomRightSnap","memBottomRight","getBottomRightSnaps","topLeftSnaps","bottomRightSnaps","bottomRight","showOrHideHandle","isAbove","isBelow","cellRect","viewportHeight","aboveViewport","belowViewport","getSnapConfig","snapTopLeft","snapLastTopLeft","snapBottomRight","snapLastBottomRight","otherCells","upOrLeftCells","downOrRightCells","TableSelectorHandles","getDimensions","resizeType","originalHeight","originalWidth","Both","resize$3","dim","isHidden$1","renderElementPath","getDataPath","newPathElements","data-index","tab-index","aria-level","divider","newAcc","updatePath","newPath","isPropagationStopped","ElementPath","renderWordCount","replaceCountText","words","characters","currentVal","newMode","wordCount","renderStatusbar","renderResizeHandlerIcon","renderBranding","linkHtml","getResizeType","plugins","None","Vertical","getTextComponents","getComponents","setup$c","lazyOuterContainer","platformClasses","touchPlatformClass","deviceClasses","dirAttributes","memAnchorBar","lazyAnchorBar","toolbarDrawer","throbber","sb","statusbar","socketSidebarContainer","hasMultipleToolbar","hasToolbar","hasMenubar","getPartToolbar","editorComponents","containerComponents","border","getUi","broadcastAll","setEditorSize","parsedHeight","parsedWidth","renderUI","toolbarOpt","Render","describedBy","describedElement","describeElement","describeId","AriaLabel","labelledBy","labelledElement","labelElement","schema$u","basic","parts$e","dragBlockClass","getDragBounds","factory$h","dialogBusyEvent","dialogIdleEvent","busyBehaviours","showDialog","busyComp","externalBlocker","bc","getBusySpec","busySpec","busy","hideDialog","blockerDom","getDialogBody","getDialogFooter","setBusy","setIdle","modalEventsId","alloy.system.attached","getFooter","aria-modal","modalBehaviours","ModalDialog","alertBannerFields","alertBannerSchema","createBarFields","itemsField","buttonFields","buttonSchema","checkboxFields","checkboxSchema","checkboxDataProcessor","formComponentFields","formComponentWithLabelFields","colorInputFields","colorInputSchema","colorInputDataProcessor","colorPickerFields","colorPickerSchema","colorPickerDataProcessor","dropZoneFields","dropZoneSchema","dropZoneDataProcessor","createGridFields","iframeFields","iframeSchema","iframeDataProcessor","inputFields","inputSchema","inputDataProcessor","selectBoxFields","selectBoxSchema","selectBoxDataProcessor","sizeInputFields","sizeInputSchema","sizeInputDataProcessor","textAreaFields","textAreaSchema","textAreaDataProcessor","urlInputFields","urlInputSchema","urlInputDataProcessor","customEditorFields","customEditorFieldsOld","customEditorSchema","customEditorDataProcessor","htmlPanelFields","htmlPanelSchema","imageToolsFields","imageToolsSchema","collectionFields","collectionSchema","collectionDataProcessor","createLabelFields","tableFields","tableSchema","createItemsField","itemSchema$2","sErr","passValue","panelSchema","panelFields","tabFields","tabPanelFields","tabPanelSchema","dialogToggleMenuItemSchema","dialogToggleMenuItemDataProcessor","baseButtonFields","dialogButtonFields","normalButtonFields","menuButtonFields","dialogButtonSchema","dialogButtonFields$1","dialogButtonSchema$1","dialogSchema","tabpanel","createDialog","getAllObjects","isNamedItem","dataProcessors","togglemenuitem","getDataProcessor","getNamedItems","createDataValidator","namedItems","urlDialogButtonSchema","urlDialogSchema","createUrlDialog","extract$1","internalDialog","dataValidator","DialogManager","openUrl","redial","value$3","isSet","toValidValues","renderBodyPanel","memForm","formValue","vals","factory$i","tabButtonBehaviours","TabButton","aria-selected","schema$v","tabsPart","barDetail","tabSpec","dismissTab$1","tabbar","changeTab$1","clickToDismiss","tabClass","parts$f","factory$j","debug.sketcher","tabbarBehaviours","selectedClass","tab","Tabbar","factory$k","tabviewBehaviours","Tabview","schema$w","barPart","tabs","viewPart","parts$g","factory$l","tabValue","tabview","tabWithValue","tabData","onChangeTab","changeTabBy","section","byPred","tabSectionBehaviours","selectFirst","onDismissTab","getViewItems","showTab","tabKey","getTabIfNotActive","optTab","TabSection","measureHeights","allTabs","tabviewComp","getMaxHeight","heights","getMaxTabviewHeight","tablist","documentElement$1","tabviewHeight","isTabListBeside","currentTabHeight","dialogTopMargin","dialogBottomMargin","dialogHeight","chromeHeight","setTabviewHeight","updateTabviewHeight","dialogBody","maxTabHeight","getTabview","smartTabHeight","extraEvents","maxTabHeightOpt","requestAnimationFrame","oldHeight","naiveTabHeight","SendDataToSectionChannel","SendDataToViewChannel","renderTabPanel","storedValue","updateDataWithForm","formData","validData","currentData","setDataOnForm","oldTab","tabMode","_viewItems","oldName","tsection","dialogChannel","titleChannel","bodyChannel","footerChannel","bodySendMessageChannel","renderBody","ariaAttrs","incoming","_comp","isTabPanel","ariaAttributes","renderInlineBody","contentId","renderModalBody","bodySpec","renderIframeBody","initCommonEvents","fireApiEvent","_event","onUnblock","onBlock","initUrlDialog","getInstanceApi","withSpec","_c","currentDialog","initDialog","currentDialogInit","onTabChange","newTabName","oldTabName","SilverDialogEvents","makeButton","lookup$2","footerButtons","buttonName","memButton","_data","buttonGroups","makeGroup","startButtons","endButtons","renderFooter","initSpec","lookupByName","renderInlineFooter","renderModalFooter","footer","getCompByName","form_1","getFormWrapper","footerState","validateData","dialogState","getDialogApi","doRedial","menuItemStates","withRoot","valueComp","representedValues","menuItemCurrentState","setData","prevData","instanceApi","mergedData","newInternalData","bodyState","tabSection","dialogInit","isTouch$4","hiddenHeader","pClose","pUntitled","pBodyMessage","pFooter","pFooterGroup","renderDialog","dialogClass","blockerBackdropClass","scrollLockClass","extraStyles","dialogEvents","renderClose","renderTitle","renderDragHandle","renderInlineHeader","titleId","renderModalHeader","pTitle","pHandle","draghandle","draggable","getEventExtras","lazyDialog","closeWindow","blockEvent","bs","renderModalDialog","mapMenuButtons","mapItems","extractCellsToObject","menuButton","innerAcc","renderDialog$1","storagedMenuButtons","objOfCells","dialogSize","modalAccess","getForm","outerForm","renderInlineDialog","_b","dialogLabelId","dialogContentId","memHeader","memBody","memFooter","global$g","getUrlDialogApi","sendMessage","SUPPORTED_MESSAGE_ACTIONS","isSupportedMessage","mceAction","isCustomMessage","handleMessage","insertContent","renderUrlDialog","max-height","max-width","iframeUri","base_uri","href","iframeDomain","protocol","host","port","messageHandlerUnbinder","isSameOrigin","onMessage","unbinder","iframeEle","iframeWin","postMessage","setup$d","closeDialog","alertDialog","memFooterClose","titleSpec","closeSpec","footerCloseButton","setup$e","confirmDialog","memFooterYes","footerNo","footerYesButton","validateData$1","inlineAdditionalBehaviours","setup$f","isStickyToolbar$1","openInlineDialog","openModalDialog","openModalUrlDialog","internalInitialData","config$1","inlineDialog","refreshDocking","dialogUi","inlineDialogComp","confirm","alert","WindowManager","Theme","windowMgr","getWindowManagerImpl","getNotificationManagerImpl","__webpack_require__","groupBy","wasType","is$1","fromElements","lastChild","fireListEvent","unsafe","actual","Global$1","htmlElement","HTMLElement","isTextNode","isListNode","isOlUlNode","isListItemNode","isDlItemNode","isTableCellNode","isBr","isFirstChild","isLastChild","isTextBlock","getTextBlockElements","blockElements","isBogusBr","previousSibling","isEmpty","keepBookmarks","isChildOfBody","isChildOf","NodeType","getParentList","selectionStart","getParent","getClosestListRootElm","isParentListSelected","parentList","selectedBlocks","findSubLists","grep","getSelectedSubLists","getSelectedBlocks","findParentListItemsNodes","listItemsElms","parentLi","getSelectedListItems","getSelectedDlItems","parentTableCell","findLastParentListNode","parentLists","getSelectedLists","firstList","subsequentLists","getSelectedListRoots","selectedLists","getUniqueListRoots","lists","listRoots","isList","createTextBlock","contentNode","textBlock","blockName","hasContentNode","getBlockElements","createFragment","forced_root_block","tagName","setAttribs","forced_root_block_attrs","data-mce-bogus","shallowAs","mutate","joinSegment","joinSegments","segments","appendSegments","head$1","tail","createSegment","listType","createSegments","populateSegments","listAttributes","itemAttributes","normalizeSegment","appendItem","writeShallow","cast","newCast","depth","writeDeep","composeList","entries","isList$1","hasFirstChildList","hasLastChildList","isIndented","cloneItemContent","li","createEntry","indentEntry","indentation","cloneListProperties","previousSiblingEntry","normalizeEntries","matchingEntry","parseItem","itemSelection","selectionState","currentItemEntry","childListEntries","parseList","parser","newDepth","parseLists","initialDepth","sourceList","outdentedComposer","indentedComposer","contentDocument","composeEntries","groupIsIndented","indentSelectedEntries","getItemSelection","selectedListItems","listIndentation","entrySets","entrySet","composedLists","composedList","splitList","ul","tmpRng","bookmarks","newBlock","removeAndKeepBookmarks","insertAfter","SplitList","outdentDlItem","dl","indentDlItem","dlIndentation","dlItems","getNormalizedPoint","normalizeRange","outRng","rangeStart","rangeEnd","Range","selectionIndentation","isHandled","bookmark","getBookmark","moveToBookmark","indentListSelection","outdentListSelection","flattenListSelection","DOM$1","createBookmark","setupEndPoint","data-mce-type","resolveBookmark","restoreEndPoint","nodeIndex","Bookmark","isCustomList","listToggleActionFromListName","listName","updateListStyle","setStyle","updateListAttrs","updateListWithDetails","removeStyles","getEndPointNode","getSelectedTextBlocks","textBlocks","endNode","siblings","isBookmarkNode","hasCompatibleStyle","sib","sibStyle","detailStyle","applyList","listItemName","listBlock","rename","mergeWithAdjacentLists","isValidLists","list1","list2","hasSameListStyle","targetStyle","hasSameClasses","elm1","elm2","shouldMerge","updateList","newList","toggleMultipleLists","hasListStyleDetail","toggleSingleList","toggleList","selectedSubLists","ToggleList","DOM$2","normalizeList","normalizeLists","NormalizeLists","findNextCaretContainer","isForward","nonEmptyBlocks","getNonEmptyElements","hasOnlyOneBlockChild","unwrapSingleBlockChild","moveChildren","fromElm","toElm","mergeLiElements","listNode","$","nestedLists","mergeIntoEmptyLi","fromLi","toLi","mergeForward","mergeBackward","resolvedBookmark","backspaceDeleteFromListToListCaret","selectionStartElm","rng_1","otherLi_1","removeBlock","parentBlock","backspaceDeleteIntoListCaret","otherLi_2","backspaceDeleteCaret","backspaceDeleteRange","startListParent","backspaceDelete","DELETE","Delete","Api","queryListCommandState","command","addQueryStateHandler","Commands","shouldIndentOnTab","setupTabKey","metaKeyPressed","Keyboard","listState","tableCellIndex","hasPlugin","plugin","inArray","Buttons","Plugin","getScripts","getAudioTemplateCallback","getVideoTemplateCallback","hasLiveEmbeds","shouldFilterHtml","getUrlResolver","hasAltSource","hasPoster","hasDimensions","trimPx","getSize","setSize","Size","getMaxWidth","setMaxWidth","getVideoScriptMatch","getEphoxEmbedIri","getAttrib","isEphoxEmbed","htmlToDataSax","allow_conditional_comments","source1","movie","videoScript","source2","poster","ephoxEmbedHtmlToData","htmlToData","guess","mimes","mp3","m4a","wav","mp4","webm","ogg","swf","fileEnd","mime","Mime","setAttributes","updatedAttrs","normalizeHtml","writer","updateHtmlSax","updateAll","hasImage","sourceCount","comment","cdata","imgAttrs","isEphoxEmbed$1","updateEphoxEmbed","outerHTML","updateHtml","UpdateHtml","urlPatterns","regex","allowFullscreen","getUrl","newUrl","matchPattern","getIframeHtml","getFlashHtml","getAudioHtml","audioTemplateCallback","source2mime","getVideoHtml","videoTemplateCallback","source1mime","getScriptHtml","dataToHtml","dataIn","embed","convertURL","embedPromise","rej","wrappedResolve","defaultPromise","loadedData","getEmbedHtml","embedHandler","isCached","Service","unwrapped","errorMessage","notificationManager","snippetToData","embedSnippet","isMediaElement","getEditorData","snippet","serializer","serialize","addEmbedHtml","snippetData","selectPlaceholder","beforeObjects","afterObjects","handleInsert","submitForm","editorData","getSourceData","handleSource1","serviceData","handleEmbed","dataFromEmbed","handleUpdate","mediaInput","generalTab","embedTextarea","embedTab","advancedFormItems","advancedTab","Dialog","sanitize","blocked","serializeStyle","parseStyle","Sanitize","createPlaceholderNode","placeHolder","shortEnded","retainAttributesAndInnerHtml","transparentSrc","data-mce-object","class","createPreviewIframeNode","previewWrapper","previewNode","shimNode","allowfullscreen","frameborder","sourceNode","attrName","attrValue","attribs","ai","escape","isPageEmbedWrapper","nodeClass","isWithinEmbedWrapper","placeHolderConverter","ceFalse","Nodes","specialElements","getSpecialElements","boolAttrs","getBoolAttrs","addNodeFilter","addAttributeFilter","realElm","innerNode","realElmName","unescape","$elm","FilterContent","ResolveName","selectedNode","hasClass","objectType","stateSelectorAdapter","selectorChangedWithUnbind","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Form_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Form_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","invalidTypeMessage","incorrect","COMMENT","isComment","startsWith","sourceDom","targetDom","cssText","rawParent","prevSibling","detailnew","extended","rowdata","elementnew","rowdatanew","rowcells","rowdetails","ancestors","ancestors$1","children$2","child$1","child$2","firstLayer","filterFirstLayer","LayerSelector","tags","isRootOrUpperTable","notCell","neighbours","neighbourCells","neighbourRows","firstCell","grid$1","rowProp","colProp","rowsCount","cols","TableLookup","fromTable","parentSection","parentName","rowspan","colspan","fromPastedRows","example","DetailsList","getAt","warehouse","findItem","filtered","filterItems","maxRows","maxColumns","currentRow","cr","cc","newpos","justCells","Warehouse","statsStruct","findSelectedStats","house","totalColumns","totalRows","minRow","minCol","maxRow","maxCol","endRow","endCol","seenSelected","fillInGaps","stats","needCell","clean","emptyRows","selectedSelector","unselectedCells","CopySelected","copy$1","cloneChildren","createCell","replica","pasteReplace","cloneFormats","oldCell","newCell","firstText","formatSelector","clonedFormat","cellOperations","formatsToClone","docu","lastNode","gap","paste","TableFill","inSelection","leftEdge","rightEdge","topEdge","bottomEdge","finishCol","finishRow","isWithin","isRectangular","isRect","detailIsWithin","CellBounds","detailA","detailB","getAnyBox","startCoords","finishCoords","sc","fc","getBox","CellGroup","intercepts","parentCell","innerCell","isContainedBy","c1","c2","CellFinder","deltaColumn","getWarehouse","intercepts$1","nestedIntercepts","firstTable","lastTable","optStartCell","optLastCell","lastCell","getBox$1","TablePositions","TagBoundaries","DomUniverse","isEmptyTag","comparePosition","copyAttributesTo","destination","as","up","down","copyTo","afterAll","appendAll","setText","leftRight","brokenPath","bisect","universe","ind","breakToRight","second","breakToLeft","prior","breakPath","isTop","breaker","splits","breakage","nextChild","look","oneAll","unsafeOne","commonElement","eq$1","unsafeSubset","ps1","ps2","finder","topDown","startIndex","sIndex","eIndex","ancestors$2","pruned1","pruned2","firstpath","secondpath","subset","ancs","SubsetFn","sharedOne","subset$1","ancestors$3","breakToLeft$1","breakToRight$1","breakPath$1","Parent","sharedOne$1","_universe","subset$2","ancestors$4","breakToLeft$2","breakToRight$2","breakPath$2","DomParent","Identified","identify","getIsRoot","rootTable","boxes","startTable","finishTable","ancestorCells","lca","lcaTable","finishAncestorCells","startAncestorCells","retrieve","sels","lastSelectedSelector","getEdges","firstSelectedSelector","tbl","expandTo","shiftSelection","CellSelection","retrieve$1","retrieveBox","firstAncestor","lastAncestor","fA","lA","TableSelection","attributeSelector","firstSelected","lastSelected","Ephemera","type$1","onMultiple","onSingle","SelectionTypes","selections","unmergable","hasSpan","mergable","_env","CellOperations","noMenu","notCell$1","paste$1","pasteRows","clipboard","generators","TableTargets","extractSelected","serializeElements","getTextContent","registerEvents","cellSelection","multiCellContext","domCell","pasteCells","Clipboard","needManualCalc","toNumber","getProp","getCalculatedHeight","paddingTop","paddingBottom","borderTop","borderBottom","boxSizing","borders","RuntimeSize","genericSizeRegex","percentageBasedSizeRegex","pixelBasedSizeRegex","setPixelWidth","amount","setPercentageWidth","getHeightValue","normalizePixelSize","getTotalHeight","getSpan","getRawWidth","cssWidth","normalizePercentageWidth","cellWidth","tableSize","pixelWidth","choosePercentageSize","percentMatch","intWidth","getPercentageWidth","normalizePixelWidth","choosePixelSize","pixelMatch","floatWidth","getPixelWidth","getGenericWidth","setGenericWidth","Sizes","halve","main","CellMutations","rowInfo","colInfo","rtlEdge","ltrEdge","getTop","findPositions","getInnerEdge","getOuterEdge","cellOption","lastLine","negate","optElements","BarPositions","ResizeDirection","TableDirection","directionAt","auto","getGridSize","TableGridSize","setIfNot","newRows","newCells","renderSection","gridSection","sectionName","tb","isNew","tr","removeSection","renderOrRemoveSection","headSection","bodySection","footSection","copy$2","clonedCell","Redraw","repititions","deduce","aa","rowsArr","getBlock","isSingle","getFallback","decide","inBlock","singleInBlock","detailOption","rows$1","Blocks","namespace","dashNamespace","Styles","data-column","row$1","data-row","Bar","resizeBar","resizeRowBar","resizeColBar","BAR_THICKNESS","wire","drawBar","cpOption","cp","refreshCol","colPositions","tableHeight","colBar","refreshRow","rowPositions","tableWidth","rowBar","refreshGrid","hdirection","vdirection","each$2","bars","isRowBar","isColBar","Bars","addCell","gridRow","setCells","mutateCell","mapCells","getCell","getCellElement","cellLength","GridRow","getColumn","getRow","findDiff","subgrid","restOfRow","endColIndex","restOfColumn","endRowIndex","TableGrid","toDetails","seen","ri","ci","updateSeen","toGrid","rowCells","Transitions","fromWarehouse","deriveRows","rendered","findRow","rowOfCells","toDetailList","findInWarehouse","postAction","genWrappers","newElements","onCell","onPasteRows","lc","onMergable","_warehouse","onUnmergable","onCells","measure","startAddress","gridA","gridB","rowRemainder","colRemainder","colRequired","rowRequired","rowDelta","colDelta","measureWidth","colLengthA","colLengthB","fill","generator","rowFill","_row","colFill","tailor","fillCols","fillRows","modifiedCols","tailoredGrid","Fitment","substitution","unmerge","isToReplace","uniqueCells","currentCell","splitRows","rowPrevCells","replacement","_loop_2","sub","MergingOperations","isSpanning","matching","mergeTables","mergeHeight","mergeWidth","fittedGrid","fittedNewGrid","secondDelta","fittedOldGrid","TableMerge","insertRowAt","between","withinSpan","insertColumnAt","splitCellIntoColumns","exampleRow","exampleCol","isTargetCell","splitCellIntoRows","deleteColumnsAt","deleteRowsAt","ModificationOperations","replaceIn","isTarget","notStartRow","notStartColumn","replaceColumn","alreadyAdded","replaceRow","targetRow","TransformOperations","only","ColumnContext","neighbours$1","determine","zero","onOnly","singleColumnWidth","newNext","minCellWidth","newThis","diffx","onMiddle","_prev","Deltas","getSpan$1","hasColspan","hasRowspan","getInt","CellUtils","getRaw$1","getRawW","getRawH","getWidthFrom","backups","columnCell","deduced","getDeduced","getRawWidths","getPercentageWidths","getPixelWidths","getHeightFrom","rowCell","getPixelHeights","getRawHeights","ColumnSizes","measures","recalculateWidth","widths","recalculateHeight","matchRowHeight","Recalculations","percentageSize","getCellDelta","_delta","setTableWidth","_newWidths","ratio","getWidths","setElementWidth","pixelSize","newWidths","chooseSize","fallbackWidth","getTableSize","TableSize","getWarehouse$1","sumUp","getTableWarehouse","adjustWidth","newSizes","adjustHeight","newHeights","newCellSizes","newRowSizes","adjustWidthTo","Adjustments","handleUnsupported","baseWith","invalidKeys","handleExact","exactly","verifyGenerators","elementToData","toData","nuFrom","getOrInit","makeNew","replaceOrInit","merging","Generators","blockList","isFormatting","isHeading","isContainer","isFrame","Structure","universe$1","isBlock$1","isFormatting$1","isHeading$1","isContainer$1","isEmptyTag$1","isFrame$1","isInline$1","DomStructure","merge$2","advancedBr","isListItem","siblingIsBlock","rightSibling","markCell","rightSiblingIsBlock","markContent","TableContent","elementFromGrid","findIn","uniqueRows","currentDetail","uniqueColumns","insertRowBefore","targetIndex","newGrid","insertRowsBefore","newG","insertRowAfter","insertRowsAfter","insertColumnBefore","insertColumnsBefore","insertColumnAfter","insertColumnsAfter","makeRowHeader","makeColumnHeader","unmakeRowHeader","unmakeColumnHeader","splitCellIntoColumns$1","splitCellIntoRows$1","eraseColumns","_comparator","_genWrappers","eraseRows","mergeCells","unmergeCells","pasteDetails","gridify","wh","mergedGrid","nuGrid","gridifyRows","pasteRowsBefore","pasteRowsAfter","TableOperations","getBody$1","getPixelWidth$1","getPixelHeight","removePxSuffix","addSizeSuffix","removeDataStyle","dataStyleCells","ltr$1","rtl$1","Direction","defaultTableToolbar","defaultStyles","border-collapse","defaultAttributes","getDefaultAttributes","getDefaultStyles","hasTableResizeBars","hasTabNavigation","hasAdvancedCellTab","hasAdvancedRowTab","hasAdvancedTableTab","hasAppearanceOptions","hasTableGrid","shouldStyleWithCss","getCellClassList","getRowClassList","getTableClassList","isPercentagesForced","isPixelsForced","getCloneElements","cloneElements","hasObjectResizing","objectResizing","fireNewRow","fireNewCell","fireObjectResizeStart","fireObjectResized","fireTableSelectionChange","fireTableSelectionClear","TableActions","lazyWire","isTableBody","lastRowGuard","lastColumnGuard","guard","deleteRow","deleteColumn","copyRows","selectedCells","slicedGrid","slicedDetails","CopyRows","getTDTHOverallStyle","firstChildStyle","checkChildren","currentStyle","applyAlign","applyVAlign","unApplyAlign","unApplyVAlign","Styles$1","buildListItems","inputList","itemCallback","startItems","appendItems","extractAdvancedStyles","rgbToHex","borderWidth","borderStyle","borderColor","bgColor","borderwidth","borderstyle","bordercolor","backgroundcolor","getSharedValues","baseData","comparisonData","itemKey","comparisonValue","getAdvancedTab","dialogName","advTabItems","getAlignment","alignments","dataName","alignmentData","getHAlignment","getVAlignment","extractDataFromSettings","hasAdvTableTab","extractAdvancedStyleData","defaultData","cellspacing","cellpadding","caption","getBorder","advStyle","getCellPaddingCellSpacing","spacing","padding","extractDataFromTableElement","optBorderWidth","extractDataFromRowElement","extractDataFromCellElement","celltype","Helpers","getClassList","rowClassList","textStyle","children$3","classlist","CellDialogGeneralTab","setAttrib","ifTruthy","DomModifier","updateSimpleProps","modifiers","updateAdvancedProps","applyToSingle","cellElm","halign","valign","applyToMultiple","onSubmitCellForm","applicator","cellsData","dialogTabPanel","dialogPanel","CellDialog","getClassList$1","formChildren","getItems$1","RowDialogGeneralTab","switchRowType","rowElm","toType","tableElm","oldParentElm","parentElm","updateAdvancedProps$1","modifier","onSubmitRowForm","oldData","createModifier","rowsData","RowDialog","merge$3","DefaultRenderOptions","percentages","makeTable","tableBody","tableRow","tableHeaderCell","tableCell","rowHeaders","columnHeaders","renderOpts","tbody","trs","placeCaretInCell","selectFirstCellInTable","fireEvents","isPercentage","insert$1","InsertTable","getItems$2","hasClasses","insertNewTable","rowColCountItems","alwaysItems","appearanceItems","alignmentItem","classListItem","TableDialogGeneralTab","styleTDTH","applyDataToElement","border-width","border-color","onSubmitTableForm","captionElm","addVisual","open$2","generalPanel","nonAdvancedForm","advancedForm","TableDialog","getSelectionStartFromSelector","getSelectionStartCell","getSelectionStartCellOrCaption","each$3","clipboardRows","eraseTable","cellOrCaption","tableOpt","getTableFromCell","resizeChange","oldSize","actOnSelection","copyRowSelection","pasteOnSelection","clonedRows","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutRow","mceTableCopyRow","mceTablePasteRowBefore","mceTablePasteRowAfter","mceTableDelete","mceInsertTable","mceTableProps","mceTableRowProps","mceTableCellProps","detached","editable","body$1","ResizeWire","Event","trigger","typeDefs","styles$1","Styles$2","Blocker","layerClass","DragMode","DragSink","DragApi","compare","mutation","mdown","mup","mmove","mout","MouseDrag","InDrag","dataOption","NoDrag","Movement","noDragState","inDragState","throttledDrop","runIfActive","Dragger","Mutation","BarMutation","findClosestContentEditable","resizeBarDragging","BarManager","resizing","hoverTable","getResizer","_dataRow","_dataCol","currentCol","oldX","startAdjust","findClosestEditableTable","hideBars","showBars","beforeResize","afterResize","startDrag","TableResize","createContainer","TableWire","calculatePercentageWidth","enforcePercentage","rawTable","tablePercentage","enforcePixels","getResizeHandler","startW","startRawW","selectionRng","isTable","lazyResize","sz","rawWire","tableHasPercentage","percentW","targetPercentW","newCellSizes_1","newCellSize","none$1","CellLocation","CellNavigation","selectNodeContents","selectNodeContentsUsing","availableSearch","fromPoint$1","beforeSpecial","preprocessRelative","preprocessExact","after$3","doSetNativeRange","removeAllRanges","addRange","doSetRange","setLegacyRtlRange","setRangeFromRelative","setBaseAndExtent","setExact","setRelative","toNative","getDomRange","setToElement","getAtPoint","forward","backward","getCellFirstCursorPosition","getNewRowCursorPosition","rootElements","handle$1","body_1","isRoot_1","TabContext","Response","Situs","convertToRange","makeSitus","Util","sync","selectRange","detect$5","cellSel","annotations","updateSelection","newSels","clearBeforeUpdate","KeySelection","traverse","backtrack","_direction","sidestep","advance","successors","go$1","ruleOpt","succ","Walkers","hone","left$1","right$1","isLeaf","before$3","seekLeft","after$4","seekRight","universe$2","before$4","after$5","seekLeft$1","seekRight$1","failedUp","failedDown","isOverlapping","bridge","beforeBounds","afterBounds","isRow","verify","beforeOffset","afterOffset","failure","afterCell","beforeCell","_sharedRow","onSuccess","onFailedUp","onFailedDown","BeforeAfter","inParent","indexInParent","gatherer","cand","gather","handleBr","findBr","handleParent","br","adjacent","tryBr","analysis","BrTags","moveBottomTo","moveTopTo","getTop$1","getBottom","Carets","getPartialBox","getRangedRect","toCaret","getElemBox","getBoxAt","getEntireBox","Rectangles","JUMP_SIZE","NUM_RETRIES","retry","isOutside","inOutsideBlock","adjustDown","guessBox","lowerCaret","adjustUp","higherCaret","upMovement","adjuster","downMovement","isAtTable","adjustForTable","numRetries","adjustTil","situsFromPoint","newCaret","ieTryDown","ieTryUp","checkScroll","adjusted","getInnerHeight","moved","scrollBy","Retries","tryUp","tryDown","getJumpSize","MAX_RETRIES","findSpot","brNeighbour","fromSitus","tryCursor","situs","tryAgain","tryAt","otherRetry","ieRetry","handle$2","spot","TableKeys","inSameTable","simulate","precheck","firstUpCheck","lastOffset","lastDownCheck","VerticalMovement","findCell","MouseSelection","clearState","selectContents","KeyDirection","isKey","keycode","isUp","isDown","isNavigation","SelectionKeys","isBackward","toRaw","sr","Rect","by","WindowBridge","exactAdt","clearSelection","collapseSelection","toStart","setSelection","setRelativeSelection","getScrollY","rc","keyboard","clearToNavigate","realEvent","InputHandlers","removeClasses","byClass","ephemera","addSelectionClass","removeSelectionClasses","byAttr","onSelection","onClear","removeSelectionAttributes","addSelectionAttribute","SelectionAnnotation","getUpOrLeftCells","upGrid","upDetails","slicedCells","getDownOrRightCells","downGrid","downDetails","getOtherCells","OtherCells","hasInternalTarget","CellSelection$1","selectionTargets","handlerStruct","syncSelection","mouseHandlers","keyHandlers","hasShiftKey","handleResponse","ns","wrappedEvent","wrapEvent","isMouseEvent","isLeftMouse","isLeftButtonPressed","mouseDown","mouseOver","mouseUp","getDoubleTap","lastTarget","lastTimeStamp","touchEnd","lT","lTS","timeStamp","doubleTap","Selections","getSelectionTargets","changeHandlers","findTargets","resetTargets","onSetupTable","onSetupCellOrRow","onSetupMergeable","onSetupUnmergeable","addButtons","addMenuButton","addToolbars","addContextToolbar","addMenuItems","insertTableAction","tableProperties","deleteTable","rowItems","columnItems","cellItems","addContextMenu","MenuItems","getClipboardRows","setClipboardRows","sugarRows","resizeHandler","insertTable","addTempAttr","Plugin$1","__webpack_exports__","getAnnouncements","editAnnouncement","storeAnnouncement","updateAnnouncement","_plugins_axios__WEBPACK_IMPORTED_MODULE_0__","axios","post","put","_vm","_h","$createElement","_self","scopedSlots","_u","proxy","get-data","edit-mode","editMode","update:form","$event","update:errors","$$v","$set","expression","clearable","_l","onClick","_v","staticRenderFns","TinymceEditorvue_type_template_id_2a57f782_render","staticClass","myValue","TinymceEditorvue_type_template_id_2a57f782_staticRenderFns","validEvents","isValidKey","bindHandlers","initEvent","bindModelHandlers","currentContent","modelEvents","$props","normalizedEvents","$watch","prevVal","$emit","initEditor","$listeners","uuid","now","isTextarea","normalizePluginArray","mergePlugins","initPlugins","inputPlugins","injectScriptTag","scriptTag","referrerPolicy","scriptLoaded","editorProps","apiKey","cloudChannel","Boolean","scriptState","renderInline","renderIframe","initialise","finalInit","elementId","inlineEditor","TinyMCE","Editor_Editor","created","watch","mounted","$el","beforeDestroy","TinymceEditorvue_type_script_lang_js_","Editor","baseUrl","language","language_url","content_css","branding","images_upload_handler","blobInfo","xhr","token","libs_token","XMLHttpRequest","withCredentials","setRequestHeader","onload","json","responseText","FormData","filename","send","tinymce_default","methods","Tinymce_TinymceEditorvue_type_script_lang_js_","componentNormalizer","TinymceEditor","Formvue_type_script_lang_js_","LzForm","mixins","FormHelper","area_id","expiration_time","areas","showDetail","_getData","asyncToGenerator","regeneratorRuntime","mark","_callee","_ref","_ref2","_ref3","_this","_context","api_area","sent","slicedToArray","announcements","resourceId","fillForm","_onSubmit","_callee2","_context2","handelIncrease","announcements_Formvue_type_script_lang_js_","Form_component","getTinymce","getGlobal","makeItems","imageUrl","imageList","imageDescription","imageTitle","imageDimensions","hasDescription","hasImageTitle","hasImageCaption","makeTab","MainTab","hasAdvTab","hasUploadTab","getPrependUrl","getImageList","hasUploadUrl","getUploadUrl","hasUploadHandler","getUploadHandler","getUploadBasePath","getUploadCredentials","parseIntAndGetMax","val1","val2","getImageSize","onerror","removePixelSuffix","addPixelSuffix","mergeMargins","splitMargin","createImageList","waitLoadImage","imgElm","selectImage","isPlaceholderImage","getHspace","marginLeft","marginRight","getVspace","marginTop","marginBottom","hasCaption","wrapInFigure","figureElm","removeFigure","toggleCaption","normalizeStyle","normalizeCss","setHspace","pxValue","setVspace","setBorder","setBorderStyle","getBorderStyle","isFigure","isImage","hspace","vspace","getStyleValue","figure","updateProp","normalized","mergedCss","compressed","getSelectedImage","splitTextBlock","readImageDataFromSelection","insertImageAtCaret","insertedElm","syncSrcAttr","deleteImage","writeImageDataToSelection","insertOrUpdateImage","sanitizeList","extractValue","sanitizer","extracter","isGroup","findEntryDelegate","findEntry","optList","ListUtils","pathJoin","path1","path2","Uploader","defaultHandler","credentials","upload","onprogress","basePath","uploadBlob","isDefaultHandler","makeTab$1","AdvTab","collect","urlListSanitizer","futureImageList","prependURL","preUrl","makeTab$2","UploadTab","prevImage","prevAlt","fromImageData","images","fileinput","toImageData","addPrependUrl2","srcURL","prependUrl","addPrependUrl","formFillFromMeta2","formFillFromMeta","calculateImageSize","helpers","imageSize","updateImagesDropdown","changeSrc","changeImages","updateAlt","calcVSpace","matchingTopBottom","calcHSpace","matchingLeftRight","calcBorderWidth","calcBorderStyle","calcStyle","changeStyle2","dataCopy","changeStyle","changeAStyle","changeFileInput","blobUri","uploader","finalize","dataUrl","createBlobCache","alertErr","changeHandler","closeHandler","makeDialogBody","tabPanel","makeDialog","submitHandler","editorUpload","uploadImagesAuto","blobCache","normalizeCss$1","stylesArg","hasImageClass","toggleContentEditableState","toggleContentEditable","isNull","mapToObject","isNodeType","isRestrictedNode","getPrototypeOf","matchNodeNames","lowercasedNames","matchStyleValues","cssValue","computed","hasPropValue","propName","propValue","hasAttributeValue","isBogus","isBogusAll","isTextareaOrInput","isDocument","isDocumentFragment","lTrim","rTrim","bifilter","cur","Recurse","prevSiblings","nextSiblings","childNodesCount","browser$1","firstElement","getTableCaptionDeltaY","bodyTop","captionTop","captionHeight","hasChild","module$1","requestAnimationFramePromise","par","asyncValues","asyncValue","par$1","futures","promiseObj","requestAnimationFrameFunc","vendors","featurefill","wrappedSetTimeout","wrappedSetInterval","wrappedClearTimeout","wrappedClearInterval","debounce","Delay","setEditorInterval","browser$2","webkit","fileApi","windowsPhone","Env","gecko","iOS","caretAfter","documentMode","cacheSuffix","experimentalShadowDom","canHaveCSP","desktop","isArray$1","toArray$1","indexOf$1","reduce","iteratee","accumulator","ArrUtils","whiteSpaceRegExp","delim","sp","cn","scn","de","createNS","onCreate","ext","walk","explode","_addCacheSuffix","hasOwn","StyleSheetLoader","maxLoadTime","idCount","loadedStates","_setReferrerPolicy","appendToHead","getElementsByTagName","loadedCallback","errorCallback","passed","failed","isOldWebKit","webKitChunks","wait","testCallback","waitCallback","waitForWebKitLinkLoaded","styleSheet","styleSheets","ownerNode","owningElement","waitForGeckoLinkLoaded","cssRules","sheet","async","defer","contentCssCors","crossOrigin","loadF","unbox","loadAll","urls","namedEntities","baseEntities","reverseEntities","blocks","voids","tableCells","tableSections","headings","listItems","wsElements","lazyLookup","isTable$1","isBr$1","isVoid","isTableSection","isTableCell","isWsPreserveElement","surroundedBySpans","previousIsSpan","nextIsSpan","trimNode","trimmedLength","TrimNode","makeMap$1","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap","128","130","131","132","133","134","135","136","137","138","139","140","142","145","146","147","148","149","150","151","152","153","154","155","156","158","159","\"","'","<",">","&","`","&lt;","&gt;","&amp;","&quot;","&apos;","nativeDecode","buildEntitiesLookup","radix","chr","entity","fromCharCode","encodeRaw","encodeAllRaw","encodeNumeric","encodeNamed","entities","getEncodeFunc","entitiesMap","encodeNamedAndNumeric","encodeCustomNamed","nameMap","named","numeric","decode","Entities","mapCache","dummyObj","makeMap$2","extend$1","explode$1","compileSchema","globalAttributes","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","ni","attributesOrder","arrayToMap","addAttrs","schemaItem","script","compileElementMap","*","Schema","validStyles","invalidStyles","schemaItems","whiteSpaceElementsMap","selfClosingElementsMap","shortEndedElementsMap","boolAttrMap","validClasses","blockElementsMap","nonEmptyElementsMap","moveCaretBeforeOnEnterElementsMap","textBlockElementsMap","textInlineElementsMap","patternElements","customElementsMap","createLookupTable","extendWith","verify_html","valid_elements","valid_styles","invalid_styles","valid_classes","patternToRegExp","addValidElements","validElements","ei","al","attrData","elementName","attrType","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","attributesDefault","attributesForced","forcedValue","validValues","attributePatterns","setValidElements","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","cloneName","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","#comment","getElementRule","custom_elements","valid_children","extended_valid_elements","dd","dt","th","thead","tfoot","legend","area","param","parentsRequired","invalid_elements","getValidStyles","getInvalidStyles","getValidClasses","getTextInlineElements","getShortEndedElements","getSelfClosingElements","getMoveCaretBeforeOnEnterElements","getWhiteSpaceElements","isValidChild","attrPatterns","getCustomElements","support","Expr","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","documentIsHTML","rbuggyQSA","rbuggyMatches","contains$3","encodingItems","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","isEncoded","urlConverter","url_converter","urlConverterScope","url_converter_scope","compress","noJoin","canCompress","compress2","keepSlashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","url2","url3","str2","allow_script_urls","allow_svg_data_urls","lastIndex","serializeStyles","styleList","styleMap","eventExpandoPrefix","mouseEventRe","deprecated","keyLocation","layerX","layerY","returnValue","webkitMovementX","webkitMovementY","keyIdentifier","mozPressure","hasIsDefaultPrevented","returnTrue","returnFalse","addEvent","attachEvent","removeEvent","detachEvent","getTargetFromShadowDom","defaultTarget","composedPath","fix","originalEvent","srcElement","eventDoc","cancelBubble","isImmediatePropagationStopped","metaKey","bindOnReady","eventUtils","domLoaded","isDocReady","readyState","readyHandler","EventUtils","expando","hasMouseEnterLeave","hasFocusIn","callbackList","fakeName","nativeHandler","defaultNativeHandler","executeHandlers","namesList","mouseEnterLeave","currentTarget","relatedTarget","eventMap","parentWindow","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","sortOrder","strundefined","MAX_NEGATIVE","push_native","indexOf$2","booleans","whitespace","identifier","pseudos","rtrim","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","escaped","escapedWhitespace","high","els","Sizzle","seed","nid","newSelector","getElementsByClassName","qsa","toSelector","testContext","qsaError","cacheLength","markFunction","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","hasCompare","attrId","tmp","disconnectedMatch","adown","bup","sortDetached","aup","ap","bp","expr","matchesSelector","attrHandle","getAttributeNode","specified","uniqueSort","duplicates","detectDuplicates","sortStable","createPseudo"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","operator","check","what","ofType","xml","outerCache","useCache","pseudo","setFilters","matched","matcher","unmatched","lang","elemLang","hash","tabIndex","selectedIndex","even","odd","lt","gt","nth","radio","password","tokens","addCombinator","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","elems","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","compiled","push$1","slice$1","rquickExpr$1","skipUniques","isDefined","isString$1","isWindow","fragDoc","frag","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","makeArray","lastParent","newWrapper","numericCssMap","booleanMap","propFix","for","cssFix","float","attrHooks","cssHooks","DomQueryConstructor","inArray$1","whiteSpaceRegExp$1","trim$2","each$4","hook","removeAttr","camel","dashed","prependTo","replaceWith","wrapInner","existingClassName","classState","object","until","siblingName","firstSibling","wrappedResult","parentsUntil","nextUntil","prevUntil","overrideDefaults","TreeWalker","prev2","findSibling","findPreviousNode","startName","Position$1","to","scrollTo","intoView","alignToTop","scrollIntoViewIfNeeded","scrollIntoView","each$5","grep$1","simpleSelectorRe","whiteSpaceRegExp$2","setupAttrHooks","keepValues","keep_values","keepUrlHook","updateInternalStyleAttr","findNodeIndex","lastNodeType","DOMUtils","addedStyles","counter","stdMode","boxModel","boundEvents","ownEvents","getElementsByName","$$","defaultVal","getAttribs","originalValue","onSetAttrib","attrElm","clone_1","root_element","getViewPort","argWin","update_styles","setStyles","selectorVal","_findSib","getPrev","setHTML","canHaveHTML","newElm","createHTML","outHtml","keepChildren","$node","removeAllAttribs","removeAttributeNode","addStyle","styleElm","loadCSS","cls","uniqueId","getOuterHTML","setOuterHTML","reference","referenceNode","oldElm","replaceChild","attrNode","findCommonAncestor","pe","rgbVal","brCount","bogusVal","splitElm","replacementElm","bef","aft","pa","rv","getContentEditableParent","dumpRng","DOMUtils$1","each$6","grep$2","QUEUED","LOADING","LOADED","FAILED","ScriptLoader","scriptLoadedCallbacks","queueLoadedCallbacks","loading","loadScript","onreadystatechange","isDone","markDone","loadQueue","loadScripts","scripts","failures","execCallbacks","loadingScripts","notifyCallbacks","isRaw","isTokenised","currentCode","setCode","newCode","getCode","langData","getLangData","textstr","lowercaseTextstr","removeContext","substitued","$1","$2","hasCode","I18n","each$7","AddOnManager","_listeners","dependencies","requireLangPack","languages","languageLoad","addOn","createUrl","resource","addComponents","pluginName","pluginUrl","loadDependencies","addOnUrl","deps","urlString","lastIndexOf","waitFor","PluginManager","ThemeManager","AddOnManager$1","annotation","dataAnnotation","dataAnnotationId","annotationName","an","newStart","findMarkers","isAnnotation","findAll","nodesAlready","changeCallbacks","initData","withCallbacks","updateCallbacks","callbackMap","outputData","fireCallbacks","fireNoAnnotation","identifyParserNode","spans","persistent","ZWSP","isZwsp","trim$3","Zwsp","isElement$2","isCaretContainerBlock","isCaretContainerInline","isCaretContainer","hasContent","insertInline","textNode","endsWithCaretContainer","splitText","startsWithCaretContainer","isBeforeInline","isAtStart","isAfterInline","isAtEnd","createBogusBr","insertBlock","blockNode","trimBogusBr","brs","lastBr","showCaretContainerBlock","caretContainer","isRangeInCaretContainerBlock","isContentEditableTrue$1","isContentEditableFalse$1","isBr$2","isText$3","isInvalidTextElement","isAtomicInline","isTable$2","isCaretContainer$1","isCaretCandidate","isNonUiContentEditableFalse","isUnselectable","isInEditable","isAtomicContentEditableFalse","isAtomic","isEditableCaretCandidate","isEqual","rect1","rect2","isValidOverflow","overflowY","containsXY","getSelectedNode","extendingChars","isExtendingChar","someIf","slice$2","Predicate","isElement$3","isCaretCandidate$1","isFloated","isValidElementCaretCandidate","isNotPre","isText$4","isBr$3","resolveIndex","isWhiteSpace","isRange","isHiddenWhiteSpaceRange","getBrClientRect","brNode","clientRect","nbsp","getBoundingClientRectWebKitText","ec","so","eo","newRng","isZeroRect","clientRects","collapseAndInflateWidth","newClientRect","getCaretPositionClientRects","caretPosition","beforeNode","addUniqueAndValidRect","addCharacterOffset","CaretPosition","toRange","fromRangeStart","fromRangeEnd","pos1","pos2","isTextPosition","isElementPosition","HDirection","CaretPosition$1","isText$5","isBogus$1","nodeIndex$1","normalizedParent","getChildNodes","normalizedTextOffset","equal","normalizedNodeIndex","numTextFragments","createPathItem","outputOffset","resolvePathItem","findTextPosition","dataLen","targetOffset","resolve$1","trimEmptyTextNode","insertFragment","rangeInsertNode","isContentEditableFalse$2","getNormalizedTextOffset","trimmedOffset","getPoint","getLocation","findIndex$2","moveEndPoint","normalizeTableCellSelection","findAdjacentContentEditableFalseElm","getOffsetBookmark","getCaretBookmark","getRangeBookmark","createBookmarkSpan","filled","getPersistentBookmark","rng2","endBookmarkNode","startBookmarkNode","keep","GetBookmark","getUndoBookmark","CARET_ID","isCaretNode","getParentCaretContainer","isElement$4","isText$6","removeNode","getNodeValue","setNodeValue","trimCount","trimmedText","removeUnchanged","removeTextAndReposition","removeElementAndReposition","removeTextCaretContainer","removeElementCaretContainer","removeAndReposition","caretContainerNode","CaretContainerRemove","browser$3","isContentEditableFalse$3","isTableCell$1","getAbsoluteClientRect","scrollX","scrollY","rootRect","trimInlineCaretContainers","contentEditableFalseNodes","deleteData","FakeCaret","cursorInterval","lastVisualCaret","caretState","startBlink","getCss","isFakeCaretTableBrowser","isFakeCaretTarget","isContentEditableFalse$4","isBlockLike","isCaretContainer$2","isCaretContainerBlock$1","isElement$5","isCaretCandidate$2","isForwards","isBackwards","skipCaretContainers","findNode","predicateFn","getParentBlock","isInSameBlock","caretPosition1","caretPosition2","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","isNodesInSameBlock","node1","node2","lean","leanLeft","leanRight","getRelativeCefElm","getNormalizedRangeEndPoint","normalizedRange","getElementFromPosition","getElementFromPrevPosition","getVisualCaretPosition","walkFn","isMoveInsideSameBlock","inSameBlock","isContentEditableFalse$5","isText$7","isElement$6","isBr$4","isCaretCandidate$3","isAtomic$1","isEditableCaretCandidate$1","nodeAtIndex","getCaretCandidatePosition","moveForwardFromBr","nextNode","findCaretPosition","Forwards","startPos","rootContentEditableFalseElm","CaretWalker","Backwards","walkToPositionIn","fromPosition","afterElement","isBeforeOrStart","isAfterOrEnd","isBeforeAfterSameElement","isAtBr","shouldSkipPosition","navigateIgnore","ignoreFilter","positionIn","nextPosition","prevPosition","CaretFinder","firstPositionIn","lastPositionIn","isStringPathBookmark","isRangeBookmark","isIdBookmark","isIndexBookmark","isPathBookmark","addBogus","resolveCaretPositionBookmark","insertZwsp","tryFindRangePosition","padEmptyCaretContainer","setEndPoint","isValidTextNode","appendData","resolvePaths","resolveId","endPos","spos","epos","resolveIndex$1","resolve$2","ResolveBookmark","getBookmark$1","isBookmarkNode$1","Bookmarks","isInlineBlock","moveStart","isWhiteSpaceNode","getNonWhiteSpaceSibling","inc","isTextBlock$1","replaceVars","vars","isEq","str1","normalizeStyleValue","getTextDecoration","decoration","getParents$1","FormatUtils","isBookmarkNode$2","getParents$2","isWhiteSpaceNode$1","isTextBlock$2","findLeaf","excludeTrailingWhitespace","findParentContentEditable","findSpace","findWordEndPoint","lastTextNode","findSelectorEndPoint","curFormat","findBlockEndPoint","scopeRoot","findParentContainer","block_expand","expandRng","endPoint","ExpandRange","each$8","getEndChild","walk$1","startPoint","collectSiblings","findEndPoint","walkBoundary","RangeWalk","isZeroWidth","wrapName","shouldApplyToTrailingSpaces","applyWordGrab","makeAnnotation","eDoc","decorate","master","_d","annotate","newWrappers","finishWrapper","getOrOpenWrapper","processElements","processElement","processNodes","annotateWithBookmark","initialRng","Annotator","annotationChanged","whiteSpaceRegExp$3","typeLookup","#text","#cdata","#pi","#doctype","#document-fragment","walk$2","Node$1","selfAttrs","cloneAttrs","selfAttr","refNode","isValidPrefixAttrName","trimComments","isInvalidUri","allow_html_data_urls","findEndTagIndex","tokenRegExp","shortEndedElements","checkBogusAttribute","regExp","attrString","SaxParser","fix_self_closing","pi","doctype","endRegExp","attrList","textData","isInternalElement","removeInternalElements","fillAttrsMap","isShortEnded","elementRule","isValidElement","attribsValue","validAttributesMap","validAttributePatterns","processHtml","anyAttributesRequired","selfClosing","attrRegExp","fixSelfClosing","filteredUrlAttrs","scriptUriRegExp","processEndTag","parseAttribute","val3","attrRule","trimRegExp","decodeURIComponent","self_closing_elements","remove_internals","bogusValue","findEndTag","documentFocusInHandler","SaxParser$1","trimHtml","tempAttrs","trimContentRegExp","trimInternal","endTagIndex","bogusAllRegExp","getTempAttrs","trimExternal","TrimHtml","getBodySetting","bodyObj","getIframeAttrs","getDocType","getDocumentBaseUrl","getBodyId","getBodyClass","getContentSecurityPolicy","shouldPutBrInPre","getForcedRootBlock","getForcedRootBlockAttrs","getBrNewLineSelector","getNoNewLineSelector","shouldKeepStyles","shouldEndContainerOnEmptyBlock","getFontStyleValues","getFontSizeClasses","getImagesDataImgFilter","isAutomaticUploadsEnabled","shouldReuseFileName","shouldReplaceBlobUris","getIconPackName","getIconsUrl","getImageUploadUrl","getImageUploadBasePath","getImagesUploadCredentials","getImagesUploadHandler","shouldUseContentCssCors","getReferrerPolicy","getLanguageCode","getLanguageUrl","shouldIndentUseMargin","getIndentation","getContentCss","contentCss","getDirectionality","getInlineBoundarySelector","defaultFormat","trimEmptyContents","emptyRegExp","getContentFromBody","getInner","no_events","makeMap$3","Writer","indent","indentBefore","indentAfter","htmlOutput","indent_before","indent_after","entity_encoding","element_format","Serializer","8","7","10","11","sortedAttrs","findMatchingNodes","nodeFilters","attributeFilters","nodeMatches","attrMatches","filter$2","browser$4","normalizeRng","isOrContains","isRngInRoot","shouldStore","nativeRangeToSelectionRange","getBookmark$2","bookmarkToNativeRng","newBookmark","storeNative","SelectionBookmark","isEditorUIElement","FocusManager","isManualNodeChange","selectionChange","registerPageMouseUp","throttledStore","mouseUpPage","registerFocusOut","registerMouseUp","registerEditorEvents","SelectionRestore","isEditorUIElement$1","isEditorContentAreaElement","isUIElement","customSelector","custom_ui_selector","getActiveElement","editorManager","focusedEditor","blurredEditor","activeEditor","unregisterDocumentEvents","FocusController","getContentEditableHost","getCollapsedNode","getFocusInElement","normalizeSelection","caretPos","focusBody","hasElementFocus","hasIframeFocus","iframeElement","hasInlineFocus","rawBody","hasUiFocus","hasFocus$1","hasEditorOrUiFocus","focusEditor","quirks","refreshContentEditable","bookmarkRng","contentEditableHost","activateEditor","skipFocus","EditorFocus","defaultFormat$1","isTreeNode","moveSelection","setEditorHtml","setContentString","forcedRootBlockName","padd","isRootContent","setContentTree","getNodeFilters","getAttributeFilters","firePreProcess","firePostProcess","fireRemove","fireDetach","fireSwitchMode","restoreOriginalStyles","orgDisplay","safeDestroy","clearDomReferences","contentAreaContainer","formElement","restoreForm","_mceOldSubmit","formEventDelegate","_selectionOverrides","save","is_removing","unbindAllNativeEvents","hasHiddenInput","automatic","destroyed","_beforeUnload","theme","deep$1","sectionResult","deviceDetection","legacyMobilePlugins","defaultTouchSettings","table_grid","object_resizing","normalizePlugins","pluginNames","trimmedPlugins","filterLegacyMobilePlugins","extractSections","getSection","sectionSettings","hasSection","isSectionTheme","getSectionConfig","getDefaultSettings","documentBaseUrl","baseDefaults","toolbar_drawer","document_base_url","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","relative_urls","remove_script_host","visual","font_size_legacy_values","hidden_input","inline_styles","convert_fonts_to_spans","getDefaultMobileSettings","defaultMobileSettings","toolbar_sticky","defaultPhoneSettings","getExternalPlugins","overrideSettings","userDefinedExternalPlugins","external_plugins","combinePlugins","forcedPlugins","processPlugins","isMobileDevice","defaultOverrideSettings","forced_plugins","desktopPlugins","mobileConfig","mobilePlugins","platformPlugins","combinedPlugins","isOnMobile","combineSettings","defaultSettings","defaultDeviceSettings","mobile","extendedSettings","getEditorSettings","getFiltered","getParamObject","rawElm","getComputedSizeProp","getClientWidth","getClientHeight","getMarginTop","getMarginLeft","getBoundingClientRect$1","isInsideElementContentArea","bodyElm","isXYInContentArea","transposedPoint","fromDomSafe","isEditorAttachedToDom","rawContainer","EditorView","unimplemented","NotificationManager","getImplementation","getTopNotification","addNotification","closeNotification","otherNotification","getNotifications","serviceMessage","service_message","WindowManagerImpl","getParams","setParams","dialogs","funcBind","fireOpenEvent","fireCloseEvent","addDialog","otherDialog","getTopDialog","storeSelectionAndOpenDialog","openDialog","displayNotification","displayError","uploadError","logError","createLoadError","pluginLoadError","iconsLoadError","languageLoadError","pluginInitError","initError","ErrorReporter","accessibility-check","action-next","action-prev","align-center","align-justify","align-left","align-none","align-right","arrow-left","arrow-right","bold","browse","change-case","character-count","checklist-rtl","checklist","checkmark","chevron-down","chevron-left","chevron-right","chevron-up","code-sample","color-levels","color-picker","color-swatch-remove-color","color-swatch","comment-add","document-properties","duplicate","edit-block","edit-image","embed-page","emoji","flip-horizontally","flip-vertically","format-painter","fullscreen","gallery","highlight-bg-color","home","horizontal-rule","image-options","insert-character","insert-time","italic","list-bull-circle","list-bull-default","list-bull-square","list-num-default-rtl","list-num-default","list-num-lower-alpha-rtl","list-num-lower-alpha","list-num-lower-greek-rtl","list-num-lower-greek","list-num-lower-roman-rtl","list-num-lower-roman","list-num-upper-alpha-rtl","list-num-upper-alpha","list-num-upper-roman-rtl","list-num-upper-roman","more-drawer","new-document","new-tab","non-breaking","notice","ordered-list-rtl","ordered-list","orientation","outdent","page-break","paste-text","permanent-pen","plus","preferences","print","quote","remove-formatting","resize-handle","restore-draft","rotate-left","rotate-right","select-all","sourcecode","spell-check","strike-through","subscript","superscript","table-cell-properties","table-cell-select-all","table-cell-select-inner","table-delete-column","table-delete-row","table-delete-table","table-insert-column-after","table-insert-column-before","table-insert-row-above","table-insert-row-after","table-left-header","table-merge-cells","table-row-properties","table-split-cells","table-top-header","template","temporary-placeholder","text-color","toc","underline","unlock","unordered-list","unselected","user","visualblocks","visualchars","zoom-in","zoom-out","CreateIconManager","iconPack","IconManager","uploadStatus","pendingPromises","noUpload","handlerSuccess","handlerFailure","resolvePending","uploadBlobInfo","openNotification","markPending","closeNotification_1","markUploaded","removeFailed","pendingUploadBlobInfo","uploadBlobs","blobInfos","isUploaded","isPending","blobUriToBlob","rejectWithError","responseType","parseDataUri","uriParts","uriToBlob","Conversions","imageToBlobInfo","getByUri","dataUri","findFirst","cachedBlobInfo","getAllImages","ImageScanner","cachedPromises","promises","imageInfo","newPromise","count$1","rnd","Uuid","BlobCache","mimeToExt","image/jpeg","image/jpg","image/gif","image/png","toBlobInfo","removeByUri","UploadStatus","PENDING","UPLOADED","blobUriStatuses","createStatus","resultUri","hasBlobUri","getResultUri","VDirection","EditorUpload","imageScanner","urlFilters","aliveGuard","cacheInvalidator","replaceString","replaceImageUrl","targetUrl","replacementUrl","replaceUrlInUndoStack","fragments","replaceImageUri","data-mce-src","uploadImages","scanForImages","imageInfos","filteredResult","uploadInfo","isValidDataUriImage","dataImgFilter","addFilter","resultItem","replaceBlobUris","source_view","dropLast","parentsUntil$1","parents$1","parentsAndSelf","Parents","isBlockElement","isValidTarget","hasBlockParent","shouldRemoveTextNode","addRootBlocks","rootBlockNode","tempNode","restoreSelection","rootNodeName","forcedRootBlock","ForceBlocks","isEq$1","rng1","RangeCompare","getStartNode","getEndNode","getFirstChildren","getLastChildren","hasAllContentsSelected","moveEndPoint$1","hasAnyRanges","getSel","NodeChange","lastPath","nativeRng","fakeRng","startElm","isSameElementPath","disable_nodechange","currentPath","VK","END","HOME","modifierPressed","altKey","is$2","expected","isNbsp","isWhiteSpace$1","isContent","isChar","isBeforeSpace","isAfterSpace","isEmptyText","matchesElementPosition","isImageBlock","isCefNode","isBeforeImageBlock","isAfterImageBlock","isBeforeTable","isAfterTable","isBeforeContentEditableFalse","isAfterContentEditableFalse","getNodeClientRects","toArrayWithNode","findUntil","walkUntil","isAboveFn","isBeflowFn","targetClientRect","aboveLineNumber","lineNumber","isLineNumber","upUntil","Up","downUntil","Down","positionsUntil","isBelowFn","caretWalker","getClientRect","isAboveLine","isLine","isContentEditableFalse$6","findNode$1","distanceToRectLeft","distanceToRectRight","isInside","findClosestClientRect","oldClientRect","oldDistance","newDistance","walkUntil$1","findLineNodeRects","targetNodeRect","checkPosFn","lineRects","getFakeCaretTargets","caretInfo","closestCaret","closestNodeRect","contentEditableFalseNodeRects","targetNodeRects","isXYWithinRange","RangePoint","getAbsolutePosition","getBodyPosition","getScrollPosition","getBodyScroll","inlineScroll","iframeScroll","getMousePosition","iframePosition","scrollPosition","calculatePosition","bodyPosition","mousePosition","calc","MousePosition","isContentEditableFalse$7","isContentEditableTrue$2","isDraggable","isValidDropTarget","dragElement","cloneElement","cloneElm","createGhost","clonedElm","ghostElm","contenteditable","appendGhostToBody","moveGhost","overflowX","removeElement","isLeftMouseButtonPressed","hasDraggableElement","applyRelPos","relX","ceElm","elmPos","relY","ghost","throttledPlaceCaretAt","hideFakeCaret","placeCaretAt","dragging","targetPos","getRawTarget","targetClone_1","targetClone","removeDragState","bindFakeDragEvents","pageDom","dragStartHandler","dragHandler","dropHandler","dragEndHandler","rootDocument","blockIeDrop","realTarget","DragDropOverrides","isContentEditableTrue$3","isContentEditableFalse$8","showCaret","getNodeRange","renderCaretAtRange","caretPositionNode","caretPositionBeforeNode","ceRoot","renderRangeCaret","caretRange","renderFocusCaret","CefFocus","isContentEditableTrue$4","isContentEditableFalse$9","getContentEditableRoot","SelectionOverrides","selectedContentEditableNode","fakeCaret","realSelectionId","isFakeSelectionElement","getRealSelectionElement","setRange","getRange","showBlockCaretContainer","blockCaretContainer","contentEditableRoot","removeContentEditableSelection","handleTouchSelect","setContentEditableSelection","hasNormalCaretPosition","newPos","block1","block2","hasBetterMouseTarget","caretNode","targetBlock","caretBlock","normalizeShortEndedElementSelection","isPasteBin","isRangeInCaretContainer","clipboardData","realSelectionElement","clearData","outerText","isWithinCaretContainer","$realSelectionContainer","origTargetClone","nodeElm","KEEP","INSERT","vDown","vUp","snake","diag","buildScript","start1","end1","start2","end2","getMiddleSnake","i2","buildSnake","Diff","getOuterHtml","createFragment$1","insertAt","removeAt","applyDiff","currentFragments","Fragments","undoLevelDocument","lazyTempDocument","implementation","createHTMLDocument","hasIframes","createFragmentedLevel","beforeBookmark","createCompleteLevel","createFromEditor","trimmedFragments","trimmed","applyToEditor","getLevelContent","getCleanLevelContent","hasEqualContent","level1","level2","hasEqualCleanedContent","isEq$2","Levels","isUnlocked","locks","setTyping","typing","endTyping","endTypingLevelIgnoreLocks","beforeChange","addUndoLevel","currentLevel","lastLevel","bm","custom_undo_redo_levels","setDirty","callback1","callback2","hasUndo","hasRedo","registerEvents$1","isFirstTypedCharacter","addNonTypingUndoLevel","isDirty","modKey","isInsertReplacementText","inputType","isInsertTextDataNull","addKeyboardShortcuts","addShortcut","UndoManager","getLastChildren$1","rawNode","removeTrailingBr","allBrs","fillWithPaddingBr","isPaddingContents","isPaddedElement","trimBlockTrailingBr","lastChildPrevSibling","PaddingBr","isEq$3","matchesUnInheritedFormatSelector","formatList","inherit","matchParents","matchName","matchItems","similar","onmatch","matchAll","startElement","matchedFormatNames","checkedMap","defaultBlock","MatchFormat","split$1","isCollapsibleWhitespace","normalizeContent","isStartOfContent","isEndOfContent","previousCharIsSpace","replaceData","normalizeWhitespaceAfter","whitespaceCount","normalizeWhitespaceBefore","mergeTextNodes","prevNode","normalizeWhitespace","whitespaceOffset","hasWhitespacePreserveParent","rootElement","isWhitespace","isNamedAnchor","isContent$1","isBookmark","isBogus$2","isBogusAll$1","isEmptyNode","isEmpty$1","Empty","needsReposition","beforeOrStartOf","afterOrEndOf","getPreviousSiblingCaretPosition","getNextSiblingCaretPosition","findCaretPositionBackwardsFromElm","startPosition","findCaretPositionForwardsFromElm","findCaretPositionBackwards","findCaretPositionForward","findCaretPosition$1","findCaretPosOutsideElmAfterDelete","eqRawNode","isBlock$2","paddEmptyBlock","deleteNormalized","afterDeletePosOpt","prevTextOpt","nextTextOpt","isInlineElement","deleteElement","moveCaret","afterDeletePos","normalizedAfterDeletePos","paddPos","DeleteElement","ZWSP$1","CARET_ID$1","importNode","getEmptyCaretContainers","isCaretContainerEmpty","findFirstTextNode","createCaretContainer","trimZwspFromCaretContainer","removeCaretContainerNode","removeCaretContainer","insertCaretContainerNode","formatNode","appendNode","insertFormatNodesIntoCaretContainer","formatNodes","innerMostFormatNode","applyCaretFormat","wordcharRegex","removeCaretFormat","hasContentAfter","expandedRng","newCaretContainer","disableCaretContainer","replaceWithCaretFormat","innerMost","isFormatElement","inlineElements","isEmptyCaretFormatElement","postProcessHooks","filter$3","each$9","addPostProcessHook","hooks","postProcess","isPre","hasPreSibling","pre","joinPre","pre1","pre2","Hooks","each$a","ElementUtils","compareObjects","obj1","obj2","MCE_ATTR_RE","each$b","isEq$4","isTableCell$2","isChildOfInlineParent","lastIdx","wrapWithSiblings","matchName$1","isColorFormatAndAnchor","links","removeNode$1","rootBlockElm","list_block","compareNode","stylesModified","remove_similar","valueOut","findFormatRoot","formatRoot","wrapAndSplit","lastClone","firstClone","formatRootParent","mixed","splitToFormatRoot","isRemoveBookmarkNode","lastContentEditable","removeRngStyle","commonAncestorContainer","textDecoration","ceFalseOverride","RemoveFormat","each$c","isElementNode","findElementSibling","mergeSiblingsNodes","tmpSibling","elementUtils","processChildElements","hasStyle","applyStyle","unwrapEmptySpan","processUnderlineAndColor","mergeUnderlineAndColor","mergeBackgroundColorAndFontSize","backgroundColor","mergeSubSup","mergeSiblings","merge_siblings","clearChildStyles","clear_child_styles","mergeWithChildren","mergeWithParents","merge_with_parents","MergeFormats","createRange$1","normalizeBlockSelectionRange","newEndPos","normalize$1","RangeNormalizer","each$d","isElementNode$1","setElementFormat","onformat","styleVal","applyNodeStyle","applyRngStyle","nodeSpecific","wrapElm","currentWrapElm","childCount","getChildCount","getChildElementNode","mergeStyles","curSelNode","ApplyFormat","registeredFormatListeners","currentFormats","updateAndFireChangeCallbacks","formatChangeData","formatsList","newFormats","matchedFormats","remainingFormats","filterRemainingFormats","addListeners","formatChangeItems","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","textAlign","aligncenter","alignright","alignjustify","fontWeight","fontStyle","strikethrough","forecolor","hilitecolor","fontname","fontsize","fontsize_class","blockquote","removeformat","DefaultFormats","FormatRegistry","each$e","parsedSelectorToHtml","ancestry","sItem","getRequiredParent","elmRule","wrapInHtml","parentCandidate","parentRequired","ancestorName","siblingElm","selectorToHtml","parseSelector","parseSelectorItem","$0","$3","$4","previewFrag","previewElm","parentFontSize","previewStyles","previewCss","preview_styles","removeVars","numValue","Preview","ToggleFormat","FormatShortcuts","Formatter","formatChangeState","htmlParser","internalName","cleanup","hasChildren","trimTrailingBr","brNode1","brNode2","DomSerializerFilters","preProcess","impl","oldDoc","shouldFireEvent","hasEventListeners","DomSerializerPreProcess","removeAttrs","addFontToSpansFilter","domParser","fontSizes","face","addStrikeToSpanFilter","addFilters","LegacyFilter","paddEmptyNode","brPreferred","padd_empty_with_br","isPaddedWithNbsp","hasOnlyChild","isPadded","isEmpty$2","nonEmptyElements","whitespaceElements","isLineBreakNode","remove_trailing_brs","prevName","whiteSpaceElements","appendRel","addNoOpener","newRel","allow_unsafe_link_target","allow_html_in_named_anchor","fix_list_elements","classValue","validClassesMap","makeMap$4","each$f","explode$2","extend$2","DomParser","matchedNodes","matchedAttributes","root_name","fixInvalidChildren","newParent","childNode","nonSplitableElements","textBlockElements","filterNode","fi","fl","isInWhiteSpacePreservedElement","invalidChildren","getRootBlockName","rootBlockName","startWhiteSpaceRegExp","endWhiteSpaceRegExp","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","createNode","removeWhitespaceBefore","textNodeNext","textVal","cloneAndExcludeBlocks","newNode","attrFiltersLen","postProcess$1","outArgs","getHtmlFromNode","parseHtml","parserArgs","serializeNode","htmlSerializer","toHtml","DomSerializer","addRules","setRules","Serializer$1","domSerializer","BookmarkManager","BookmarkManager$1","isContentEditableFalse$a","isContentEditableTrue$5","getContentEditableRoot$1","ControlSelection","selectedElm","selectedElmGhost","resizeHelper","resizeHandles","selectedHandle","selectedElmX","selectedElmY","startH","resizeStarted","startScrollWidth","startScrollHeight","editableDoc","nw","ne","sw","isEventOnImageOutsideRange","contextMenuSelectImage","getResizeTarget","isResizable","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","resize_img_proportional","endGhostResize","setSizeProp","showResizeRect","targetWidth","targetHeight","hideResizeRect","unbindResizeHandleEvents","unSelectabe","updateResizeRect","controlElm","isChildOrEqual","disableGeckoResize","isWithinContentEditableFalse","delayedSelect","throttledUpdateResizeRect","composing","excludeFromDescend","markerInfo","cleanupFun","createMarker","elementMarker","withMarker","preserveWith","_s","applyWithMarker","endElement","fireScrollIntoViewEvent","scrollEvent","viewHeight","intoWindowIfNeeded","intoWindow","intoFrame","frameViewHeight","op","rangeIntoWindow","elementIntoWindow","rangeIntoFrame","elementIntoFrame","elementIntoView","scroller","rangeIntoView","ScrollIntoView","scrollElementIntoView","scrollRangeIntoView","hasCeProperty","findParent","findClosestIeRange","createTextRange","moveToElementText","moveToPoint","moveOutOfContentEditableFalse","parentElement","pointDoc","CaretRangeFromPoint","processRanges","EventProcessRanges","tableModel","cellPosition","fillout","y2","x2","cellExists","skipCellsX","findElementPos","extractRows","sx","sy","ey","subTable","createDomTable","tableElement","modelRowsToDomRows","fromDom$1","toDom","subsection","SimpleTableModel","getSelectedNodes","hasMultipleRanges","MultiRange","getCellsFromRanges","getCellsFromElement","getCellsFromElementOrRanges","rangeCells","getCellsFromEditor","TableCellSelection","findParentListContainer","getFullySelectedListWrappers","listCont","wrap$3","innerElm","directListWrappers","commonAnchorContainer","listElm","getWrapElements","wrapElements","listWrappers","allWrappers","emptyFragment","getFragmentFromRange","cloneContents","getParentTable","getTableFragment","selectedTableCells","fullTableModel","sectionedTableModel","getSelectionFragment","FragmentReader","bin","getHtmlContent","tmpElm","getContent$1","GetSelectionContent","findParent$1","hasParent","hasParentWithName","isTable$3","isTableCell$3","isCeFalseCaretContainer","hasBrBeforeAfter","isPrevNode","hasContentEditableFalseParent","findTextNodeRelative","isAfterNode","lastInlineElement","parentBlockContainer","normalizeEndPoint","directionLeft","normalize$2","normRng","NormalizeRange","prependData","insertData","rngSetContent","deleteContents","prevText","nextText","oldLength","setupArgs","setContent$1","createContextualFragment","SetSelectionContent","getEndpointElement","real","getStart$2","skipEmptyTextNodes","forwards","getNode$1","endElm","select$1","deleteFromCallbackMap","newCallbacks","SelectorChanged","selectorChangedData","currentSelectors","matchedSelectors","BreakType","isNativeIeSelection","isAttachedToDom","isValidRange","Selection$1","bookmarkManager","controlSelection","selectedRange","explicitRange","getEnd$1","compareEndPoints","tryCompareBoundaryPoints","how","sourceRange","destinationRange","compareBoundaryPoints","START_TO_START","END_TO_END","ieRange","setNode","getSelectedBlocks$1","anchorRange","focusRange","selectorChanged","getScrollContainer","scrollContainer","isText$8","startsWithCaretContainer$1","endsWithCaretContainer$1","createZwsp","insertInline$1","insertInlineBefore","insertInlineAfter","insertInlinePos","isPosCaretContainer","renderCaret","BoundaryCaret","strongRtl","hasStrongRtl","isInlineTarget","isRtl$1","findInlineParents","findRootInline","hasSameParentBlock","isAtZwsp","normalizePosition","normalizeForwards","normalizeBackwards","InlineUtils","evaluateUntil","fns","LazyEvaluator","Location","rescope","nPos","isNotInsideFormatCaretContainer","findInsideRootInline","start$1","prevPos","nextPos","isValidLocation","readLocation","getName","outside","isEq$5","location1","location2","betweenInlines","fromInline","toInline","skipNoMovement","fromLocation","toLocation","findLocationTraverse","findLocationSimple","findLocation","BoundaryLocation","prevLocation","nextLocation","hasSelectionModifyApi","modify","moveByWord","WordSelection","setCaretPosition","isFeatureEnabled","inline_boundaries","setSelected","renderCaretLocation","findLocation$1","toggleInlines","selectedInlines","targetInlines","safeRemoveCaretContainer","renderInsideInlineCaret","inlines","moveWord","setupSelectedState","moveNextWord","movePrevWord","BoundarySelection","customEventRootDelegates","beforeUnloadDelegate","walk$3","getBreakType","currentPos","Br","Block","Wrap","getPositionsUntil","breakType","breakAt","Eol","getAdjacentLinePositions","getPositionsUntilBreak","findClosestHorizontalPositionFromPoint","lastPos","lastRect","lastDist","newDist","findClosestHorizontalPosition","targetRect","getPositionsUntilPreviousLine","getPositionsUntilNextLine","isAtFirstLine","isAtLastLine","getPositionsAbove","getPositionsBelow","getFirstLinePositions","getLastLinePositions","isContentEditableFalse$b","getSelectedNode$1","moveToCeFalseHorizontally","getNextPosFn","isBeforeContentEditableFalseFn","rangeIsInContainerBlock","nextCaretPosition","peekCaretPosition","moveToCeFalseVertically","walkerFn","linePositions","nextLinePositions","closestNextLineRect","caretClientRect","dist1","dist2","contentEditableFalseNode","caretPositions","exitPreBlock","getNextVisualCaretPosition","getPrevVisualCaretPosition","getHorizontalRange","newRange","getVerticalRange","moveH","moveV","isCefPosition","moveToLineEndPoint","deflate","getCorners","getYAxisValue","tds","findClosestCorner","corners","newCorner","oldCorner","oldDist","getClosestCell","isTargetCorner","corner","getBottomValue","getTopValue","isAbove$1","isBelow$1","getClosestCellAbove","getClosestCellBelow","findClosestPositionInAboveCell","findClosestPositionInBelowCell","moveToRange","hasNextBreak","lineInfo","breakPos","startsWithWrapBreak","startsWithBrBreak","isAtTableCellLine","isAtFirstTableCellLine","isAtLastTableCellLine","isCaretAtStartOrEndOfTable","navigateHorizontally","getClosestAbovePosition","getClosestBelowPosition","getTable","renderBlock","navigateVertically","moveH$1","moveV$1","rangeBefore","insertElement","insertBr","insertBlock$1","insertEmptyLine","getClosestTargetBlock","isAtFirstOrLastLine","moveCaretToNewEmptyLine","rootBlock","rootBlockAttrs","moveV$2","defaultPatterns","matchesEvent","match$1","MatchKeys","executeKeydownOverride","ArrowKeys","isBeforeRoot","getParentBlock$1","placeCaretInEmptyBody","paddEmptyBody","willDeleteLastPositionInElement","fromPos","firstPos","normalizedFirstPos","normalizedLastPos","normalizedFromPos","DeleteUtils","blockPosition","blockBoundary","getBlockPosition","isDifferentBlocks","hasSameParent","parent1","parent2","skipLastBr","lastPositionInBlock","readFromRange","fromBlockPos","toBlockPos","blockPos","read$3","BlockMergeBoundary","getChildrenUntilBlockBoundary","extractChildren","removeEmptyRoot","isEmptyBefore","nestedBlockMerge","fromBlock","toBlock","insertionPoint","sidelongBlockMerge","findInsertionPoint","getInsertionPoint","trimBr","mergeBlockInto","mergeBlocks","MergeBlocks","BlockBoundaryDelete","deleteRangeMergeBlocks","isRawNodeInTable","isSelectionInTable","isEverythingSelected","noPrevious","noNext","emptyEditor","deleteRange","backspaceDelete$1","BlockRangeDelete","isBr$5","parentBlocks","isBeforeBr","isAfterBr","findPreviousBr","findNextBr","isCompoundElement","DeleteAction","moveToElement","moveToPosition","isAtContentEditableBlockCaret","caretLocation","isDeleteFromCefDifferentBlocks","deleteEmptyBlockOrMoveToCef","toCefElm","blockElm","findCefPosition","getContentEditableBlockAction","skipMoveToActionFromInlineCefToContent","deleteAction","getContentEditableAction","read$4","deleteElement$1","getAncestorCe","getContentEditableRoot$2","deleteOffscreenSelection","hasCefAncestor","paddEmptyElement","backspaceDelete$2","CefDelete","trimEmptyTextNode$1","deleteContentAndShowCaret","deleteCefBoundaryText","backspaceDelete$3","CefBoundaryDelete","isFeatureEnabled$1","rangeFromPositions","hasOnlyTwoOrLessPositionsLeft","setCaretLocation","deleteFromTo","rescope$1","backspaceDeleteCollapsed","toPosition","backspaceDelete$4","BoundaryDelete","getParentInlines","hasOnlyOneChild","deleteLastPosition","parentInlines","isFormatElement$1","deleteCaret","backspaceDelete$5","InlineFormatDelete","tableCellRng","tableSelection","removeTable","emptyCells","isRootFromElement","getClosestCell$1","getClosestTable","isExpandedCellRng","cellRng","getTableFromCellRng","startParentTable","endParentTable","getTableCells","getCellRangeFromStartTable","endCell","partialSelection","isWithinSameTable","getCellRng","getTableSelectionFromCellRng","getTableSelectionFromRng","getCellIndex","getSelectedCells","getActionFromRange","deleteTableElement","deleteCellRange","deleteCaptionRange","emptyElement","deleteTableRange","getParentCaption","deleteRange$1","getParentCell","deleteBetweenCells","fromCell","isDeleteOfLastCharPos","fromCaption","emptyCaretCaption","validateCaretCaption","toCaption","deleteCaretInsideCaption","deleteCaretCells","deleteCaretCaption","isNearTable","isBeforeOrAfterTable","deleteCaret$1","backspaceDelete$6","TableDelete","deleteCaret$2","backspaceDelete$7","PageBreakDelete","isEditable$1","parseIndentValue","getIndentStyleName","useMargin","indentStyleName","indentElement","styleValue","validateBlocks","intentValue","canOutdent","getBlocksToIndent","isListComponent","parentIsListComponent","indentUnit","indentValue","navigateIgnoreEmptyTextNodes","getClosestBlock","isAtBeforeAfterBlockBoundary","isAtBlockBoundary","isAtStartOfBlock","isAtEndOfBlock","isBeforeBlock","isAfterBlock","backspaceDelete$8","_caret","_forward","Outdent","executeKeydownOverride$1","executeKeyupOverride","DeleteBackspaceKeys","firstNonWhiteSpaceNodeSibling","moveToCaretPosition","getEditableRoot","editableRoot","getParentBlock$2","getParentBlockName","isListItemParentBlock","NewLineUtils","hasFirstChild","hasParent$1","isListBlock","isNestedList","getContainerBlock","containerBlock","containerBlockParent","isFirstOrLastLi","createNewBlock","newBlockName","InsertLi","trimZwsp","isEmptyAnchor","isTableCell$4","emptyBlock","containerAndSiblingName","canSplitBlock","trimInlineElementsOnLeftSideOfBlock","firstChilds","normalizeZwspOffset","includeZwspInRange","trimLeadingLineBreaks","getEditableRoot$1","setForcedBlockAttrs","wrapSelfAndSiblingsInDefaultBlock","addBrToBlockIfNeeded","parentBlockName","containerBlockName","isAfterLastNodeInContainer","clonedNode","textInlineElements","isCaretAtStartOrEndOfBlock","normalizedOffset","insertNewBlockAfter","InsertBlock","hasRightSideContent","scrollToBr","brElm","moveSelectionToBr","extraBr","insertBrAtCaret","isControlKey","insertBrBefore","insertBrAfter","hasBrAfter","isBeforeBr$1","isAnchorLink","isInsideAnchor","readInlineAnchorLocation","insertBrOutsideAnchor","insert$2","anchorLocation","InsertBr","shouldInsertBr","shouldBlockNewLine","ContextSelectors","newLineAction","shouldBlockNewLine$1","isBrMode","requiredState","brMode","inListBlock","inPreBlock","inSummaryBlock","shouldPutBrInPre$1","inBrContext","canInsertIntoEditableRoot","rootEditable","match$2","predicates","isMatch","getAction$1","NewLineAction","insert$3","InsertNewLine","handleEnterKeyEvent","EnterKey","insertTextAtPosition","insertNbspAtPosition","insertSpaceAtPosition","isInMiddleOfText","getClosestBlock$1","hasSpaceBefore","hasSpaceAfter","isPreValue","isInPre","isAtBeginningOfBody","isAtEndOfBody","isAtLineBoundary","needsToHaveNbsp","needsToBeNbspLeft","needsToBeNbspRight","afterPos","needsToBeNbsp","isNbspAt","hasNbsp","normalizeNbspMiddle","chars","normalizeNbspAtStart","normalizeNbspInMiddleOfTextNode","normalizeNbspAtEnd","normalizeNbsps","normalizeNbspsInEditor","locationToCaretPosition","insertInlineBoundarySpaceOrNbsp","checkPos","setSelection$1","insertSpaceOrNbspAtSelection","executeKeydownOverride$2","SpaceKey","findBlockCaretContainer","removeIeControlRect","handleBlockContainer","CaretContainerInput","browser$5","setupIeInput","keypressThrotter","isComposing","executeKeydownOverride$3","HomeEndKeys","KeyboardOverrides","Quirks","isGecko","isWebKit","mceInternalUrlPrefix","mceInternalDataType","setEditorCommandState","setMceInternalContent","selectionHtml","internalContent","getMceInternalContent","insertClipboardContents","queryCommandSupported","emptyEditorWhenDeleting","serializeRng","allContentsSelected","allRng","allSelection","selectAll","inputMethodFocus","removeHrOnBackspace","selectControlElements","removeStylesWhenDeletingAcrossBlockElements","getAttributeApplyFunction","setAttributeNode","isSelectionAcrossElements","applyAttributes","disableBackspaceIntoATable","removeBlockQuoteOnBackSpace","setGeckoEditingOptions","setOpts","addBrAfterLastLinks","fixLinks","setDefaultBlockType","showBrokenImageIcon","contentStyles","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","selection_1","disableAutoUrlDetect","tapLinksAndImages","blockFormSubmitInsideEditor","removeAppleInterchangeBrs","ieInternalDragAndDrop","isTextBlockNode","normalizeSelection$1","setup$g","preventSummaryToggle","filterDetails","setup$h","DOM$3","appendStyle","createParser","autoFocus","auto_focus","bindPendingEventDelegates","execCallback","getStyleSheetLoader","initContentBody","skipWrite","contentCssText","orgVisibility","iframeHTML","bodyEl","hex_colors","force_hex_style_colors","annotator","_nodeChangeDispatcher","browser_spellcheck","gecko_spellcheck","spellcheck","directionality","protect","startContent","content_style","InitContentBody","DOM$4","relaxDomain","ifr","domain","hostname","bodyUuid","domainRelaxUrl","createIframeElement","customAttrs","frameBorder","allowTransparency","bodyId","bodyClass","getURI","createIframe","isDomainRelaxed","boxInfo","InitIframe","isContentCssSkinName","getContentCssUrls","contentCssFile","appendContentCssFromSettings","DOM$5","initPlugin","initializedPlugins","pluginInstance","trimLegacyPrefix","initIcons","iconPackName","currentIcons","defaultIcons","loadIcons","svgData","addIcon","initTheme","renderFromLoadedTheme","renderFromThemeFunc","iframeHeight","createThemeFalseResult","renderThemeFalseIframe","renderThemeFalse","renderThemeUi","Init","DOM$6","hasSkipLoadPrefix","loadLanguage","scriptLoader","languageCode","languageUrl","url_1","loadTheme","themeUrl","theme_url","getIconsUrlMetaFromUrl","getIconsUrlMetaFromName","urlMeta","loadPlugins","url_2","resetContent","triggerSave","encoding","set_dirty","internalContentEditableAttr","setContentEditable","switchOffContentEditableTrue","switchOnContentEditableTrue","removeFakeSelection","restoreFakeSelection","toggleReadOnly","registerFilters","registerReadOnlyContentFilters","isClickEvent","preventReadOnlyEvents","registerReadOnlySelectionBlockers","defaultModes","switchToMode","activeMode","availableModes","oldMode","activate","deactivate","editorReadOnly","registerMode","design","hasOnlyOneChild$1","isPaddingNode","isPaddedEmptyBlock","isEmptyFragmentElement","isListFragment","cleanupDomFragment","domFragment","toDomFragment","listItems$1","isPadding","isListItemPadded","isEmptyOrPadded","trimListItems","getParentLi","isParentBlockLi","getSplit","beforeRng","afterRng","findFirstIn","newCaretPos","findLastOf","insertMiddle","insertBefore$1","insertAfter$1","insertAtCaret","liTarget","liElms","BEGINNING","isAt","InsertList","isAfterNbsp","trimOrPadLeftRight","hasSiblingText","trimNbspAfterDeleteAndPadValue","isTableCell$5","selectionSetContent","validInsertion","trimBrsFromTableCell","reduceInlineTextElements","root_1","elementUtils_1","testNode","markFragmentElements","umarkFragmentElements","isPartOfFragment","canHaveChildren","moveSelectionToMarker","parentEditableFalseElm","nextRng","getContentEditableFalseParent","findNextCaretRng","insertHtmlAtCaret","bookmarkHtml","caretElement","processValue","insertAtCaret$1","InsertContent","nativeCommand","deleteCommand","forwardDeleteCommand","DeleteCommands","getSpecifiedFontProp","getProperty","normalizeFontFamily","getComputedFontProp","getFontProp","FontInfo","getFontSize","getFontFamily","findFirstCaretElement","isRangeAtStartOfNode","getCaretElement","fromFontSizeNumber","fontSizeNumber","fontClasses","normalizeFontNames","fontNameAction","fontNameQuery","fontSizeAction","fontSizeQuery","each$g","map$3","inArray$2","EditorCommands","setupCommands","customCommand","skip_focus","addCommands","commandList","hasCustomCommand","execNativeCommand","isFormatMatch","storeSelection","selectionBookmark","mceResetDesignMode,mceBeginUndoLevel","mceEndUndoLevel,mceAddUndoLevel","Cut,Copy,Paste","queryCommandEnabled","JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone","InsertUnorderedList,InsertOrderedList","listParent","Bold,Italic,Underline,Strikethrough,Superscript,Subscript","ForeColor,HiliteColor","FontName","FontSize","mceBlockQuote","FormatBlock","mceCleanup","mceRemoveNode","mceSelectNodeDepth","mceSelectNode","mceInsertContent","mceInsertRawHTML","mceInsertNewLine","mceToggleFormat","mceSetContent","Indent,Outdent","mceRepaint","InsertHorizontalRule","mceToggleVisualAid","mceReplaceContent","mceInsertLink","editingHost","delete","forwardDelete","mceNewDocument","InsertLineBreak","alignStates","JustifyLeft","JustifyCenter","JustifyRight","JustifyFull","Undo","Redo","nativeEvents","EventDispatcher","bindings","toggleEvent","isNative","beforeFire","wrappedCallback","bindingName","hi","getEventDispatcher","_eventDispatcher","toggleNativeEvent","Observable","dispatcherArgs","DOM$7","getEventTarget","event_root","eventRoot","isListening","fireEvent","bindEventDelegate","eventRootElm","delegates","editors","EditorObservable","_pendingNativeEvents","each$h","explode$3","keyCodeLookup","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","modifierNames","Shortcuts","pendingPatterns","hasModifier","isFunctionKey","matchShortcut","subpatterns","executeShortcutAction","desc","cmdFunc","createShortcut","parseShortcut","charCode","each$i","trim$4","queryParts","DEFAULT_PORTS","ftp","http","https","mailto","URI","baseUri","isProtocolRelative","toAbsPath","urlMatch","userInfo","uriComponents","pathname","setPath","pathMatch","toRelative","relativeUri","tu","uu","toRelPath","noHost","absoluteUri","defaultPort","breakPoint","normalizedBase","outPath","nb","normalizedPath","noProtoHost","addAutocompleter","addContextForm","addSidebar","DOM$8","extend$3","each$j","resolve$3","ie$1","loadedCSS","isNotDirty","documentBaseURL","base_url","_setBaseUrl","baseURI","referrer_policy","language_load","editorCommands","cache_suffix","modeInstance","callbackLookup","setProgressState","initialContent","oldState","urlconverter_callback","visual_table_class","visual_anchor_class","_scanForImages","DOM$9","explode$4","each$k","extend$4","instanceCounter","boundGlobalEvents","legacyEditors","isValidLegacyKey","globalEventDelegate","EditorManager","toggleGlobalEvents","removeEditorFromList","targetEditor","oldEditors","purgeDestroyedEditor","isQuirksMode","compatMode","majorVersion","minorVersion","releaseDate","i18n","preInit","tinyMCEPreInit","srcScript","currentScript","pluginBaseUrls","plugin_base_urls","invalidInlineTargets","isInvalidInlineTarget","createId","editor_deselector","editor_selector","provideResults","initEditors","initCount","createEditor","existingEditor","addI18n","RangeUtils","normalizedRng","compareRanges","getCaretRangeFromPoint","extendClass","initializing","RangeUtils$1","awaiter","resolveCb","rejectCb","tasks","resultFns","loadErrMsg","runErrMsg","task","waiter","Resource","round$2","relativePosition","targetW","targetH","findBestRelativePosition","constrainRect","rels","intersect","x1","y1","clamp$1","fixedSize","underflowX1","underflowY1","overflowX2","overflowY2","cx2","cy2","fromClientRect","each$l","extend$5","Class","member","_super","mixin","Mixins","dummy","createMethod","name_1","Methods","Properties","Statics","Defaults","min$1","max$1","round$3","Color","rgb2hsv","hsvToRgb","toRgb","toHsv","hexCode","JSONUtils","JSONP","XHR","ready","success_scope","error_scope","overrideMimeType","content_type","crossDomain","requestheaders","extend$6","JSONRequest","sendRPC","ecb","scb","xhrArgs","ty","removeItem","configurable","enumerable","LocalStorage","publicApi","geom","isMac","exportToModuleLoaders","exportToWindowGlobal","tinyMCE","regExps","aletter","midnumlet","midletter","midnum","lf","newline","katakana","extendnumlet","punctuation","characterIndices","ALETTER","MIDNUMLET","MIDLETTER","MIDNUM","NUMERIC","CR","LF","NEWLINE","EXTEND","FORMAT","KATAKANA","EXTENDNUMLET","AT","OTHER","SETS","EMPTY_STRING","PUNCTUATION","WHITESPACE","SETS$1","setsLength","memoize","classify","memoized","isWordBoundary","prevType","nextNextType","nextType","EMPTY_STRING$1","WHITESPACE$1","PUNCTUATION$1","isProtocol","findWordEnd","findUrlEnd","peakedWord","findWords","sChars","characterMap","word","includeWhitespace","includePunctuation","startOfWord","endOfWord","endOfUrl","getDefaultOptions","getWords","filteredChars","extractedChars","getWords$1","isNewline","txt","treeWalker","strLen","countWords","countCharacters","countCharactersWithoutSpaces","createBodyCounter","createSelectionCounter","createBodyWordCounter","getWordCount","getCharacterCount","getCharacterCountWithoutSpaces","getCount","fireWordCountUpdate","charactersWithoutSpaces","updateCount","debouncedUpdate"],"mappings":"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IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,EACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,IACA,IACA,IACA,EACA,IACA,IACA,EACA,IACA,IACA,IACA,IAEA,SAAAC,GAAAC,EAAAC,GAIA,IAHA,IAEAjjH,EAFAo7E,EAAA,GACA8nC,EAAA,IAAA5vH,MAAA,IAEAf,EAAA,EAAqBA,EAAA,EAAOA,IAAA,CAC5B,QAAAkB,EAAA,EAAuBA,EAAA,EAAOA,IAC9B2nF,EAAA3nF,GAAAwvH,EAAAxvH,EAAA,EAAAlB,GAEA,IAAAkB,EAAA,EAAuBA,EAAA,EAAOA,IAAA,CAC9BuM,EAAA,EACA,QAAAzM,EAAA,EAAyBA,EAAA,EAAOA,IAChCyM,GAAAgjH,EAAAvvH,EAAA,EAAAF,GAAA6nF,EAAA7nF,GAEA2vH,EAAAzvH,EAAA,EAAAlB,GAAAyN,GAGA,OAAAkjH,EAEA,SAAAC,GAAA70D,EAAAx9D,GACA,IAAAE,EAcA,OAbAF,EAAA6xH,GAAA7xH,GAAA,KACAA,GAAA,IACAA,EAAA,EACAE,EAAA,IAAAF,EAAA,SAEAE,EAAAF,EAAA,EAEAE,EADA,IAAAA,EACA8xH,GAAAhyH,GAEAgyH,GAAAviG,KAAAC,MAAA1vB,KAAA,EAAAE,GAAA8xH,GAAAviG,KAAAC,MAAA1vB,GAAA,GAAAE,EAEAA,EAAA,IAAAA,EAAA,KAEA+xH,GAAAz0D,EAAA,CACAt9D,EAAA,IACA,EACA,EACA,EACA,QAAAA,GACA,EACAA,EAAA,IACA,EACA,EACA,QAAAA,GACA,EACA,EACAA,EAAA,IACA,EACA,QAAAA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAGA,SAAAoyH,GAAA90D,EAAAx9D,GAEA,OADAA,EAAA6xH,GAAA,IAAA7xH,GAAA,SACAiyH,GAAAz0D,EAAA,CACA,EACA,EACA,EACA,EACAx9D,EACA,EACA,EACA,EACA,EACAA,EACA,EACA,EACA,EACA,EACAA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAGA,SAAAuyH,GAAA/0D,EAAAg1D,EAAAC,EAAAC,GAIA,OAHAF,EAAAX,GAAAW,EAAA,KACAC,EAAAZ,GAAAY,EAAA,KACAC,EAAAb,GAAAa,EAAA,KACAT,GAAAz0D,EAAA,CACAg1D,EACA,EACA,EACA,EACA,EACA,EACAC,EACA,EACA,EACA,EACA,EACA,EACAC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAIA,SAAAC,GAAAC,EAAAp1D,GACA,OAAAo1D,EAAAnB,WAAA10C,KAAA,SAAA8R,GACA,OAAAgkC,GAAAhkC,EAAA+jC,EAAAzB,UAAA3zD,KAGA,SAAAq1D,GAAAhkC,EAAAtoF,EAAAi3D,GACA,IAAA2e,EAAA0xC,GAAAh/B,GACA,SAAAikC,EAAAC,EAAApnC,GAGA,IAFA,IAAAppF,EAAA0qD,EAAAhoD,EAAAvC,EACAkkB,EAAAmsG,EAAAnsG,KAAAosG,EAAArnC,EAAA,GAAAsnC,EAAAtnC,EAAA,GAAAunC,EAAAvnC,EAAA,GAAAwnC,EAAAxnC,EAAA,GAAAynC,EAAAznC,EAAA,GAAA0nC,EAAA1nC,EAAA,GAAA2nC,EAAA3nC,EAAA,GAAA4nC,EAAA5nC,EAAA,GAAA6nC,EAAA7nC,EAAA,GAAA8nC,EAAA9nC,EAAA,GAAA+nC,EAAA/nC,EAAA,IAAAgoC,EAAAhoC,EAAA,IAAAioC,EAAAjoC,EAAA,IAAAkoC,EAAAloC,EAAA,IAAAmoC,EAAAnoC,EAAA,IAAAooC,EAAApoC,EAAA,IAAAqoC,EAAAroC,EAAA,IAAAsoC,EAAAtoC,EAAA,IAAAuoC,EAAAvoC,EAAA,IAAAwoC,EAAAxoC,EAAA,IACAlqF,EAAA,EAAuBA,EAAAmlB,EAAA/mB,OAAiB4B,GAAA,EACxCc,EAAAqkB,EAAAnlB,GACAwrD,EAAArmC,EAAAnlB,EAAA,GACAwD,EAAA2hB,EAAAnlB,EAAA,GACAiB,EAAAkkB,EAAAnlB,EAAA,GACAmlB,EAAAnlB,GAAAc,EAAAywH,EAAA/lE,EAAAgmE,EAAAhuH,EAAAiuH,EAAAxwH,EAAAywH,EAAAC,EACAxsG,EAAAnlB,EAAA,GAAAc,EAAA8wH,EAAApmE,EAAAqmE,EAAAruH,EAAAsuH,EAAA7wH,EAAA8wH,EAAAC,EACA7sG,EAAAnlB,EAAA,GAAAc,EAAAmxH,EAAAzmE,EAAA0mE,EAAA1uH,EAAA2uH,EAAAlxH,EAAAmxH,EAAAC,EACAltG,EAAAnlB,EAAA,GAAAc,EAAAwxH,EAAA9mE,EAAA+mE,EAAA/uH,EAAAgvH,EAAAvxH,EAAAwxH,EAAAC,EAEA,OAAApB,EAEA,IAAAqB,EAAAtB,EAAA32C,EAAAsT,aAAA,IAAAZ,EAAApvD,MAAAovD,EAAArxD,QAAAggC,GAEA,OADA2e,EAAAk4C,aAAAD,EAAA,KACAzC,GAAA9iC,EAAAtoF,GAEA,SAAA+tH,GAAA1B,EAAAp1D,GACA,OAAAo1D,EAAAnB,WAAA10C,KAAA,SAAA8R,GACA,OAAA0lC,GAAA1lC,EAAA+jC,EAAAzB,UAAA3zD,KAGA,SAAA+2D,GAAA1lC,EAAAtoF,EAAAi3D,GACA,IAAA2e,EAAA0xC,GAAAh/B,GACA,SAAAikC,EAAA0B,EAAAC,EAAAC,GACA,SAAA7C,EAAA7xH,EAAA40C,EAAA1X,GAMA,OALAl9B,EAAAk9B,EACAl9B,EAAAk9B,EACWl9B,EAAA40C,IACX50C,EAAA40C,GAEA50C,EAQA,IANA,IAAAgtF,EAAAv9D,KAAA68D,MAAA78D,KAAA+hE,KAAAkjC,EAAA70H,SACA80H,EAAAllG,KAAAC,MAAAs9D,EAAA,GACAQ,EAAAgnC,EAAA5tG,KACAguG,EAAAH,EAAA7tG,KACAwa,EAAAozF,EAAA/0F,MACA5C,EAAA23F,EAAAh3F,OACA7jB,EAAA,EAAuBA,EAAAkjB,EAAOljB,IAC9B,QAAAzZ,EAAA,EAAyBA,EAAAkhC,EAAOlhC,IAAA,CAIhC,IAHA,IAAAqC,EAAA,EACA0qD,EAAA,EACAhoD,EAAA,EACA4vH,EAAA,EAA4BA,EAAA7nC,EAAW6nC,IACvC,QAAAC,EAAA,EAA8BA,EAAA9nC,EAAW8nC,IAAA,CACzC,IAAAC,EAAAlD,EAAA3xH,EAAA40H,EAAAH,EAAA,EAAAvzF,EAAA,GACA4zF,EAAAnD,EAAAl4G,EAAAk7G,EAAAF,EAAA,EAAA93F,EAAA,GACAo4F,EAAA,GAAAD,EAAA5zF,EAAA2zF,GACAG,EAAAR,EAAAG,EAAA7nC,EAAA8nC,GACAvyH,GAAAirF,EAAAynC,GAAAC,EACAjoE,GAAAugC,EAAAynC,EAAA,GAAAC,EACAjwH,GAAAuoF,EAAAynC,EAAA,GAAAC,EAGA,IAAAp0F,EAAA,GAAAnnB,EAAAynB,EAAAlhC,GACA00H,EAAA9zF,GAAA+wF,EAAAtvH,EAAA,OACAqyH,EAAA9zF,EAAA,GAAA+wF,EAAA5kE,EAAA,OACA2nE,EAAA9zF,EAAA,GAAA+wF,EAAA5sH,EAAA,OAGA,OAAAwvH,EAEA,IAAAU,EAAAh5C,EAAAsT,aAAA,IAAAZ,EAAApvD,MAAAovD,EAAArxD,QACA43F,EAAAj5C,EAAAsT,aAAA,IAAAZ,EAAApvD,MAAAovD,EAAArxD,QAGA,OAFA43F,EAAAtC,EAAAqC,EAAAC,EAAA53D,GACA2e,EAAAk4C,aAAAe,EAAA,KACAzD,GAAA9iC,EAAAtoF,GAEA,SAAA8uH,GAAAC,GACA,IAAAC,EAAA,SAAA1mC,EAAAtoF,EAAAvG,GACA,IAAAm8E,EAAA0xC,GAAAh/B,GACAjoC,EAAA,IAAApkD,MAAA,KACA,SAAAgzH,EAAAzC,EAAAr2C,GAEA,IADA,IAAA91D,EAAAmsG,EAAAnsG,KACAnlB,EAAA,EAAyBA,EAAAmlB,EAAA/mB,OAAiB4B,GAAA,EAC1CmlB,EAAAnlB,GAAAi7E,EAAA91D,EAAAnlB,IACAmlB,EAAAnlB,EAAA,GAAAi7E,EAAA91D,EAAAnlB,EAAA,IACAmlB,EAAAnlB,EAAA,GAAAi7E,EAAA91D,EAAAnlB,EAAA,IAEA,OAAAsxH,EAEA,QAAAtxH,EAAA,EAAuBA,EAAAmlD,EAAA/mD,OAAmB4B,IAC1CmlD,EAAAnlD,GAAA6zH,EAAA7zH,EAAAzB,GAEA,IAAAo0H,EAAAoB,EAAAr5C,EAAAsT,aAAA,IAAAZ,EAAApvD,MAAAovD,EAAArxD,QAAAopB,GAEA,OADAu1B,EAAAk4C,aAAAD,EAAA,KACAzC,GAAA9iC,EAAAtoF,IAEA,gBAAAqsH,EAAA5yH,GACA,OAAA4yH,EAAAnB,WAAA10C,KAAA,SAAA8R,GACA,OAAA0mC,EAAA1mC,EAAA+jC,EAAAzB,UAAAnxH,MAIA,SAAAy1H,GAAAC,GACA,gBAAA9C,EAAA+C,GACA,OAAAhD,GAAAC,EAAA8C,EAAA3D,KAAA4D,KAGA,SAAAC,GAAAp4D,GACA,gBAAAo1D,GACA,OAAAD,GAAAC,EAAAp1D,IAGA,SAAAq4D,GAAAC,GACA,gBAAAlD,GACA,OAAA0B,GAAA1B,EAAAkD,IAGA,IAAAC,GAAAH,GAAA,EACA,EACA,EACA,EACA,EACA,IACA,GACA,EACA,EACA,EACA,IACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEA7oC,GAAA0oC,GAAAnD,IACA0D,GAAAP,GAAApD,IACA4D,GAAA,SAAArD,EAAAJ,EAAAC,EAAAC,GACA,OAAAC,GAAAC,EAAAL,GAAAR,KAAAS,EAAAC,EAAAC,KAEAwD,GAAAL,GAAA,CACA,GACA,EACA,GACA,EACA,GACA,EACA,GACA,EACA,IAEAM,GAAAd,GAAA,SAAAzzC,EAAA5hF,GACA,WAAAyvB,KAAA2mG,IAAAx0C,EAAA,MAAA5hF,KAGA,SAAAq2H,GAAArI,EAAAsI,EAAAC,GACA,IAAAC,EAAAzI,GAAAC,GACAyI,EAAAvI,GAAAF,GACA0I,EAAAJ,EAAAE,EACAG,EAAAJ,EAAAE,EACAG,GAAA,GACAF,EAAA,IAAAA,EAAA,KACAA,IAAA,QACAE,GAAA,IAEAD,EAAA,IAAAA,EAAA,KACAA,IAAA,QACAC,GAAA,GAEA,IAAAC,EAAAC,GAAA9I,EAAA0I,EAAAC,GACA,OAAAC,EAAAC,EAAA95C,KAAA,SAAA6wC,GACA,OAAAyI,GAAAzI,EAAA0I,EAAAC,KADAM,EAIA,SAAAC,GAAA9I,EAAA0I,EAAAC,GACA,WAAAnI,GAAA,SAAArtH,GACA,IAAAq1H,EAAAzI,GAAAC,GACAyI,EAAAvI,GAAAF,GACAsI,EAAA7mG,KAAAC,MAAA8mG,EAAAE,GACAH,EAAA9mG,KAAAC,MAAA+mG,EAAAE,GACA9nC,EAAA4+B,GAAA6I,EAAAC,GACAp6C,EAAA0xC,GAAAh/B,GACA1S,EAAA2xC,UAAAE,EAAA,IAAAwI,EAAAC,EAAA,IAAAH,EAAAC,GACAp1H,EAAA0tF,KAIA,SAAAkoC,GAAAnE,EAAAoE,GACA,OAAApE,EAAAnB,WAAA10C,KAAA,SAAA8R,GACA,OAAAooC,GAAApoC,EAAA+jC,EAAAzB,UAAA6F,KAGA,SAAAC,GAAAjJ,EAAAznH,EAAAywH,GACA,IAAAnoC,EAAA4+B,GAAAO,EAAAvuF,MAAAuuF,EAAAxwF,QACA2+C,EAAA0xC,GAAAh/B,GACAqoC,EAAA,EACAC,EAAA,EAcA,OAbAH,IAAA,MAAAA,IACA,KAAAA,GAAA,MAAAA,GACAtJ,GAAA7+B,IAAArxD,OAAAqxD,EAAApvD,OAEA,KAAAu3F,GAAA,MAAAA,IACAE,EAAAroC,EAAApvD,OAEA,MAAAu3F,GAAA,MAAAA,IACAG,EAAAtoC,EAAArxD,QAEA2+C,EAAAl+C,UAAAi5F,EAAAC,GACAh7C,EAAA46C,OAAAC,EAAAvnG,KAAA2nG,GAAA,KACAj7C,EAAA2xC,UAAAE,EAAA,KACA2D,GAAA9iC,EAAAtoF,GAEA,SAAA8wH,GAAAzE,EAAA0E,GACA,OAAA1E,EAAAnB,WAAA10C,KAAA,SAAA8R,GACA,OAAA0oC,GAAA1oC,EAAA+jC,EAAAzB,UAAAmG,KAGA,SAAAC,GAAAvJ,EAAAznH,EAAA+wH,GACA,IAAAzoC,EAAA4+B,GAAAO,EAAAvuF,MAAAuuF,EAAAxwF,QACA2+C,EAAA0xC,GAAAh/B,GAQA,MAPA,MAAAyoC,GACAn7C,EAAAk6C,MAAA,MACAl6C,EAAA2xC,UAAAE,EAAA,GAAAn/B,EAAArxD,UAEA2+C,EAAAk6C,OAAA,KACAl6C,EAAA2xC,UAAAE,GAAAn/B,EAAApvD,MAAA,IAEAkyF,GAAA9iC,EAAAtoF,GAEA,SAAAixH,GAAA5E,EAAA1yH,EAAAyZ,EAAAynB,EAAAvE,GACA,OAAA+1F,EAAAnB,WAAA10C,KAAA,SAAA8R,GACA,OAAA4oC,GAAA5oC,EAAA+jC,EAAAzB,UAAAjxH,EAAAyZ,EAAAynB,EAAAvE,KAGA,SAAA46F,GAAAzJ,EAAAznH,EAAArG,EAAAyZ,EAAAynB,EAAAvE,GACA,IAAAgyD,EAAA4+B,GAAArsF,EAAAvE,GACAs/C,EAAA0xC,GAAAh/B,GAEA,OADA1S,EAAA2xC,UAAAE,GAAA9tH,GAAAyZ,GACAg4G,GAAA9iC,EAAAtoF,GAEA,SAAAmxH,GAAA9E,EAAAxxF,EAAAvE,GACA,OAAA+1F,EAAAnB,WAAA10C,KAAA,SAAA8R,GACA,OAAAwnC,GAAAxnC,EAAAztD,EAAAvE,GAAAkgD,KAAA,SAAA46C,GACA,OAAAhG,GAAAgG,EAAA/E,EAAAzB,eAKA,IAAAyG,GAAA,SAAAhF,GACA,OAAAmD,GAAAnD,IAEAiF,GAAA,SAAAjF,GACA,OAAAsD,GAAAtD,IAEAkF,GAAA,SAAAlF,EAAA5yH,GACA,OAAAm2H,GAAAvD,EAAA5yH,IAEA+3H,GAAA,SAAAnF,EAAAJ,EAAAC,EAAAC,GACA,OAAAuD,GAAArD,EAAAJ,EAAAC,EAAAC,IAEAsF,GAAA,SAAApF,EAAA+C,GACA,OAAA5oC,GAAA6lC,EAAA+C,IAEAsC,GAAA,SAAArF,EAAA+C,GACA,OAAAK,GAAApD,EAAA+C,IAEAuC,GAAA,SAAAtF,EAAA0E,GACA,OAAAD,GAAAzE,EAAA0E,IAEAa,GAAA,SAAAvF,EAAA1yH,EAAAyZ,EAAAynB,EAAAvE,GACA,OAAA26F,GAAA5E,EAAA1yH,EAAAyZ,EAAAynB,EAAAvE,IAEAu7F,GAAA,SAAAxF,EAAAxxF,EAAAvE,GACA,OAAA66F,GAAA9E,EAAAxxF,EAAAvE,IAEAw7F,GAAA,SAAAzF,EAAAoE,GACA,OAAAD,GAAAnE,EAAAoE,IAGAsB,GAAA,SAAAj1C,EAAAtwD,GACA,OAAA3xB,EAAA,CACAoY,IAAA,CACAL,IAAA,OACAihB,UAAAipD,EACAzvD,QAAA,CACA,WACA,yBAGOb,IAEPwlG,GAAA,SAAA7yC,EAAA8yC,GACA,OAAAF,GAAApkD,GAAAwR,EAAA8yC,GAAA,KAEAC,GAAA,SAAA/yC,EAAA8yC,GACA,OAAAF,GAAApkD,GAAAwR,EAAA8yC,GAAA,CAA2DzlG,WAAAoW,GAAA,CAAA46B,GAAA3wC,OAAA,SAE3DslG,GAAA,SAAAp/G,EAAA6V,EAAAo2D,GACA,OACA/rE,IAAA,CACAL,IAAA,OACAihB,UAAAmrD,EAAAtnD,UAAA3kB,GACAsa,QAAA,CAAAzE,EAAA,mBAEA4D,WAAAoW,GAAA,CAAA46B,GAAA3wC,OAAA,QAIAulG,GAAAzpG,GAAA,0BACA0pG,GAAA,SAAA58G,GACA,OAAAiO,GAAA,SAAAkI,EAAAtP,GACA8kE,GAAA3rE,EAAAmW,EAAAw1D,CAAA,SAAAkxC,GACAryG,GAAA2L,EAAAwmG,GAAA,CAAwDG,UAAAD,IACxD78G,EAAAw5D,SAAAqjD,QAIAE,GAAA,CACA/hG,gBAAA,CACA,YACA,uBACA,WACA,0BAIAgiG,GAAA9pG,GAAA,oBACA+pG,GAAA/pG,GAAA,oBACAgqG,GAAA,SAAA7mG,EAAAlD,EAAA25D,GACA,IAAAhB,EAAA3vE,GAAA/Y,GACA+5H,EAAA9mG,EAAA/Y,KAAArV,IAAA,SAAAqV,GACA,OAAAs6D,GAAA8kD,GAAAp/G,EAAA6V,EAAA25D,EAAAhS,cAEAsiD,EAAA/mG,EAAA+iD,KAAAnxE,IAAA,SAAAyhF,GACA,OAAA9R,GAAA6kD,GAAA/yC,EAAAoD,EAAAhS,UAAA7C,UAEAolD,EAAA,SAAAlnG,EAAAg0B,GACA,IAAAmzE,EAAA3wE,GAAA7C,SAAA3zB,GAIA,OAHA4yC,GAAAlgD,MAAAy0G,GACA9yG,GAAA8yG,EAAA,WAAuC5/F,IAAAysB,EAAArjC,QAAA4W,QACvC25E,GAAAhwD,MAAAi2E,GACAn0H,EAAAP,MAAA,IAEA4iE,EAAAn1C,EAAAm1C,KAAAlkE,KAAA,WACA,UACO,SAAAkkE,GACP,OAAgBA,UAEhB+xD,EAAAlnG,EAAAquD,QAAAp9E,KAAA,WACA,UACO,SAAAo9E,GACP,IAAA84C,EAAA1wC,EAAAhS,UAAA74C,UAAAyiD,GACA,OACA4D,MAAAk1C,EACAjkD,aAAAikD,KAGAC,EAAA7lD,GAAAy/B,GAAAvoD,OAAA1pD,IAAA,GAAmEomE,GAAA,CACnEhuD,IAAA,CACAL,IAAA,SACAya,QAAA,CACAzE,EACAA,EAAA,YACA3uB,OAAAyD,EAAAouB,EAAAuB,QAAA,SAAAnK,GACA,OAAA0F,EAAA,KAAA1F,KAEAoK,WAAAzyB,EAAA,GAAiCm4H,IAEjCjiG,WAAAkxD,GAAA,CACA4wC,EAAAn1H,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,WAEAolD,EAAAl1H,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,WAEA5uE,EAAAP,KAAA,CACA4U,IAAA,CACAL,IAAA,MACAya,QAAA,CAAAzE,EAAA,oBACAiL,UAAA85C,GAAA,eAAA4U,EAAAhS,UAAA7C,YAIAg+B,YAAA,EACAC,aAAA,EACAkB,mBAAAjqE,GAAA9mC,EAAAgwB,EAAA+gF,mBAAA,CACA1rB,GAAAH,OAAAl1D,EAAA4zD,UACA8tB,GAAA3gF,OAAA,IACA2wC,GAAA3wC,OAAA,IACAA,GAAA,mBACAy0D,GAAAx1D,EAAAy1D,GACAG,GAAA51D,EAAAy1D,KAEA10D,GAAA,kCACA5P,GAAAw1G,GAAA,SAAA7mG,EAAAg0B,GACAgzE,EAAAh1H,KAAA,SAAAwjH,GACA,OAAAA,EAAA7zC,OAAA3hD,KACejuB,KAAA,SAAAw1H,GACf31D,GAAA1rD,IAAAqhH,EAAA,CAAApgH,GAAAwvE,EAAAhS,UAAA74C,UAAAkoB,EAAArjC,QAAAxJ,eAGAkK,GAAAy1G,GAAA,SAAA9mG,EAAAg0B,GACAizE,EAAAj1H,KAAA,SAAAwjH,GACA,OAAAA,EAAA7zC,OAAA3hD,KACejuB,KAAA,SAAAy1H,GACf51D,GAAA1rD,IAAAshH,EAAA,CAAAlB,GAAAtyE,EAAArjC,QAAAsyD,OAAA0T,EAAAhS,UAAA7C,kBAKA99C,WAAAtqB,GAAAktH,GAAA,CACAj1G,UAAA,CACA,WACA,uBACA,mBACA,4BAGA6uF,kBAAAxpE,GAAA,CAAAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACAsb,OAAAy3D,EACAx3D,QAAAw3D,MAEAloD,SAAA2X,EAAA/R,QACAzR,YAAAn2C,EAAA,WACAnM,MAAA,CAAgBq/C,KAAA1W,IAAA,EAAAt5B,EAAA4qD,QAAA5qD,EAAAkwD,UAChB1F,MAAA,WACA,OAAAywB,GAAA5hG,GAAA2mB,EAAAwqD,YAGA,OAAA48C,EAAA1lD,UAGA6lD,GAAA,SAAAx+F,GACA,OAAA50B,EAAA40B,IAEAu5D,GAAA,SAAAv5D,GACA,oBAAAA,EAAA70B,MAEAszH,GAAA,SAAAz+F,GACA,OAAAlxB,GAAAkxB,EAAA,oBAEA0+F,GAAA,CAAuBvzH,KAAA,aACvBwzH,GAAA,SAAAhzE,EAAAwjB,GACA,IAAAyvD,EAAA1xH,EAAAy+C,EAAA,SAAA1+C,EAAA+yB,GACA,OAAAw+F,GAAAx+F,GACA,KAAAA,EACA/yB,EACW,MAAA+yB,EACX/yB,EAAAxI,OAAA,IAAA80F,GAAAtsF,IAAAxI,OAAA,IAAAwI,EAAA7H,OAAA,CAAAs5H,KAAAzxH,EACW6B,GAAAqgE,EAAAnvC,EAAAlgB,eACX7S,EAAA7H,OAAA,CAAA+pE,EAAAnvC,EAAAlgB,iBAEA7S,EAGAA,EAAA7H,OAAA,CAAA46B,KAEO,IAIP,OAHA4+F,EAAAn6H,OAAA,GAAA80F,GAAAqlC,IAAAn6H,OAAA,KACAm6H,EAAA7rC,MAEA6rC,GAEAC,GAAA,SAAA7+F,EAAAmvC,GACA,IAAA2vD,EAAA9+F,EAAAk4D,kBACA/gE,EAAAg6C,GAAA2tD,EAAA3vD,GACA4vD,EAAAtuH,GAAA0mB,EAAA83C,MAAAh8D,GAAA+sB,EAAAp7B,MAAAuyB,EAAAw0B,QACAqzE,EAAAvuH,GAAA0mB,EAAA+3C,WAAAj8D,GAAA+sB,EAAAp7B,MAAAo7B,EAAAp7B,QACA,OACAo7B,OACAivC,MAAA8vD,EACA7vD,WAAA8vD,IAGAC,GAAA,SAAAj/F,EAAAmvC,GACA,OAAAsvD,GAAAz+F,GAAA6+F,GAAA7+F,EAAAmvC,GAAA,CACAnvC,OACAivC,MAAA,GACAC,WAAA,KAGAgwD,GAAA,SAAAl/F,GACA,GAAAu5D,GAAAv5D,GACA,OAAAA,EAEA,IAAA6wC,EAAA79D,GAAAgtB,EAAA,SAAA13B,WAAA,WACA,OAAAwrB,GAAA,yBAEA,OAAArjB,GAAA,CAA0B7L,MAAAisE,GAAmB7wC,IAG7CmxC,GAAA,SAAAxlB,EAAAwjB,GACA,IAAAyvD,EAAAD,GAAAvzH,EAAAugD,KAAAp1B,MAAA,KAAAo1B,EAAAwjB,GACA,OAAAniE,EAAA4xH,EAAA,SAAA3xH,EAAA+yB,GACA,IAAAm/F,EAAAD,GAAAl/F,GACAo/F,EAAAH,GAAAE,EAAAhwD,GACA,OACAF,MAAAx+D,GAAAxD,EAAAgiE,MAAAmwD,EAAAnwD,OACAtjB,MAAA,CAAAyzE,EAAAp/F,MAAA56B,OAAA6H,EAAA0+C,OACAujB,WAAAz+D,GAAAxD,EAAAiiE,WAAAkwD,EAAAlwD,cAEO,CACPD,MAAA,GACAC,WAAA,GACAvjB,MAAA,MAIA0zE,GAAA,SAAA1zE,EAAAqhC,EAAArS,EAAA+hB,GACA,IAAAntB,EAAAz7C,GAAA,gBACAtI,EAAA2lD,GAAAxlB,EAAAgvB,EAAAc,OAAAC,UAAAvM,aACA,OAAA3jD,EAAAmgC,MAAAlnD,OACA,OAAAsF,EAAArC,OAEA,IAAA43H,EAAAxiC,GAAAvtB,EAAA/jD,EAAAmgC,MAAAqhC,EAAArS,EAAA+hB,GACA6iC,EAAAjxH,GAAAkd,EAAAyjD,MAAA,SAAAE,EAAAQ,GACA,OAAAmtB,GAAAntB,EAAAR,EAAA6d,EAAArS,GAAA,KAEA1L,EAAAx+D,GAAA8uH,EAAAtsH,GAAAs8D,EAAA+vD,IACA,OAAAv1H,EAAAD,KAAA4rE,GAAAH,WAAAhG,EAAAN,EAAAzjD,EAAA0jD,cAGAswD,GAAA,SAAAh4G,GACA,OACAmkE,WAAA,WACA,OAAAO,GAAAP,WAAAnkE,IAEAqnE,YAAA,SAAAz5E,GACA,OAAA82E,GAAAjvE,IAAAuK,EAAApS,IAEAw5E,UAAA,SAAAx5E,GACA,IAAAipE,EAAA72D,EAAApB,UACAhR,GACA4nB,GAAAqhD,EAAA,qBACA1rD,GAAA0rD,EAAA,qBAEAnhD,GAAAmhD,EAAA,qBACAnrD,GAAAmrD,EAAA,kBAGAuB,SAAA,WACA,OAAAziD,GAAA3V,EAAApB,UAAA,wBAIAq5G,GAAA,SAAAxoG,EAAAlD,EAAA4mD,EAAAvO,GACA,OAAA0xD,GAAA,CACA5/G,KAAA+Y,EAAA/Y,KACA87D,KAAA/iD,EAAA+iD,KACAsL,QAAAruD,EAAAquD,QACAlZ,OACAqV,MAAA,SAAAuV,GACA//D,EAAAwqD,MAAA,SAAA91B,GACAqrC,EAAAqoC,GAAA1zE,EAAAmhC,GAAAI,iBAAAvS,GAAA,OAGAiS,QAAA31D,EAAA21D,QACAJ,OAAAgzC,GACA39C,QAAA,EACAsF,QAAA,SACA3uD,QAAA,GACAw/E,mBAAA,CAAA7D,GAAAn8E,OAAA,MACOjE,EAAA4mD,EAAAc,SAEPikD,GAAA,SAAA/zE,EAAAg0E,EAAAhlD,GACA,IAAAilD,EAAA,SAAA5/F,GACA,gBAAAkC,GACA,IAAAumB,GAAAvmB,EAAA09C,WACA19C,EAAA0sD,UAAAnmC,GACAzoB,EAAA6/F,QAAA5iH,IAAAwrC,GACAkyB,EAAAc,OAAAE,UAAA7yE,KAAA,SAAA8/C,GACA+2E,IAAAjnD,OAAA9vB,GAAA9/C,KAAA,SAAAg3H,GACAxwF,GAAAwwF,EAAA15G,WACAgF,GAAA00G,EAAA12B,GAAA,CACAn+F,KAAA+0B,EAAA/0B,KACArG,MAAAo7B,EAAA6/F,QAAAjxH,cAMAmxH,EAAA,SAAA//F,GACA,gBAAAkC,GACAA,EAAA0sD,UAAA5uD,EAAA6/F,QAAAjxH,SAGA,gBAAAqqE,GACAA,EAAApwE,EAAA8iD,EAAA,SAAA3rB,GACA,IAAA9hB,EAAA8hB,EAAA9hB,KAAAhW,KAAA,WACA,UACW,SAAAgW,GACX,OAAoBA,UAEpB,OAAAlY,IAAA,CAAoCmF,KAAA60B,EAAA70B,MAAkB+S,GAAA,CACtDk8D,SAAAwlD,EAAA5/F,GACA4sD,QAAAmzC,EAAA//F,UAMAggG,GAAA,SAAA/oG,EAAAgpG,EAAAzrB,EAAAp2F,EAAA8d,QACA,IAAAs4E,IACAA,EAAA,IAEA,IAAAjnF,EAAA0yG,EAAA/3H,KAAA,WACA,UACO,SAAAqlB,GACP,OAAgBA,YAEhB07D,EAAAjjF,EAAA,CACAsyE,iBAAAvqC,GAAA,CACAu+C,GAAAH,OAAAl1D,EAAA4zD,UACAspB,GAAAn8E,OAAA,IACAA,GAAA,gBACA5K,GAAA,SACAA,GAAA,gBAEAhoB,OAAAovG,IACAz5E,WAAA,CACA3R,MAAA,CACA,eACA,wBAEAV,UAAA,CACA,eACA,0BAGO6E,GACP2yG,EAAAzvH,GAAAw4E,EAAA,CAAwC7qE,QACxC,OAAA3N,GAAAyvH,EAAA,CAAkChkG,gBAElCikG,GAAA,SAAAlpG,EAAA1J,EAAA48D,EAAAqqB,QACA,IAAAA,IACAA,EAAA,IAEA,IAAA2pB,EAAAlnG,EAAAquD,QAAAz8E,IAAA,SAAAy8E,GACA,OACAnL,aAAAgQ,EAAAtnD,UAAAyiD,GACA4D,MAAAiB,EAAAtnD,UAAAyiD,MAEOj9E,MAAA,IACP+V,EAAA,CACAL,IAAA,SACAya,QAAA,aACAC,WAAA0lG,GAEAnkD,EAAA/iD,EAAA+iD,KAAAnxE,IAAA,SAAAyhF,GACA,OAAA6yC,GAAA7yC,EAAAH,EAAAtR,SAEA38C,EAAAkxD,GAAA,CAAApT,IACA,OAAAgmD,GAAA/oG,EAAA1J,EAAAinF,EAAAp2F,EAAA8d,IAEAkkG,GAAA,SAAAnpG,EAAA1J,EAAA48D,EAAAqqB,QACA,IAAAA,IACAA,EAAA,IAEA,IAAA6rB,EAAAF,GAAAlpG,EAAAltB,EAAAP,KAAA+jB,GAAA48D,EAAAqqB,GACA,OAAAj8B,GAAA7oB,OAAA2wE,IAEAC,GAAA,SAAArpG,EAAA1J,EAAA48D,EAAAqqB,EAAAD,QACA,IAAAC,IACAA,EAAA,SAEA,IAAAD,IACAA,EAAA,IAEA,IAAAgsB,EAAAp2C,EAAAtnD,UAAA5L,EAAA/Y,MACA87D,EAAA/iD,EAAA+iD,KAAA/iD,EAAA+iD,KAAAnxE,IAAA,SAAAyhF,GACA,OAAA6yC,GAAA7yC,EAAAH,EAAAtR,SACO9uE,EAAArC,OACPw0B,EAAA89C,EAAA5xE,SAAAglF,GAAA,CAAApT,IAAA,GACAh7C,EAAAg7C,EAAA5xE,SAAA,GAAwC,CAAI42B,UAAAuhG,GAC5C/nG,EAAAvxB,EAAAgwB,EAAAs4C,SAAAt4C,EAAAupG,WAGA,eAHA,CACA,aACA,yBACAxmD,EAAA5xE,SAAA,wBAAA6uB,EAAAupG,WAAA,yBAAAjsB,GACAn2F,EAAApY,IAAA,CACA+X,IAAA,SACAya,WACOwG,GAAA,CAAevG,WAAA,CAAcywD,MAAAq3C,KACpC,OAAAP,GAAA/oG,EAAA1J,EAAAinF,EAAAp2F,EAAA8d,IAEAukG,GAAA,SAAAxpG,EAAA1J,EAAA48D,EAAAqqB,EAAAD,QACA,IAAAC,IACAA,EAAA,SAEA,IAAAD,IACAA,EAAA,IAEA,IAAAmsB,EAAAJ,GAAArpG,EAAAltB,EAAAP,KAAA+jB,GAAA48D,EAAAqqB,EAAAD,GACA,OAAAh8B,GAAA7oB,OAAAgxE,IAEAC,GAAA,SAAA11H,EAAA21H,GACA,gBAAA7pG,GACA,WAAA6pG,EACAx1G,GAAA2L,EAAAqyE,GAAA,CACAn+F,OACArG,MAAA,KAES,WAAAg8H,EACT11G,GAAA6L,EAAAsyE,IACS,WAAAu3B,EACT11G,GAAA6L,EAAAoyE,IAEAplG,EAAAiM,QAAAzF,MAAA,wBAAAq2H,KAIAC,GAAA,SAAA5pG,EAAA2pG,GACA,eAAAA,GAEAE,GAAA,SAAA7pG,EAAA2pG,GACA,iBAAAA,GAAA,WAAAA,GAAA,WAAAA,GAEAG,GAAA,SAAA9pG,EAAA2pG,EAAAjmD,GACA,GAAAkmD,GAAA5pG,EAAA2pG,GAAA,CACA,IAAAjB,EAAA,WACA,OAAAqB,GAEAC,EAAAhqG,EACAiqG,EAAAl7H,IAAA,GAA4CixB,GAAA,CAAUwqD,MAAAi+C,GAAAuB,EAAAt1E,MAAAg0E,EAAAhlD,KACtDqmD,EAAAxoD,GAAAinD,GAAAyB,EAAA,WAAAvmD,EAAA5wE,EAAArC,SACA,OAAAs5H,EAAAroD,SACO,GAAAmoD,GAAA7pG,EAAA2pG,GAAA,CACP,IAAArzG,EAAAozG,GAAA1pG,EAAAhsB,KAAA21H,GACAF,EAAA16H,IAAA,GAA6CixB,GAAA,CAAUupG,YAAA,IACvD,OAAAC,GAAAC,EAAAnzG,EAAAotD,EAAAc,OAAAC,UAAA,IAEA33E,EAAAiM,QAAAzF,MAAA,+BAAAq2H,IAGAO,GAAA,SAAAlqG,EAAAkzD,GACA,IAAA58D,EAAAozG,GAAA1pG,EAAAhsB,KAAA,UACA,OAAAypG,GAAA3qG,EAAArC,OAAA+iG,GAAA7iF,QAAAzS,MAAAnP,EAAA,CAA8EsrD,QAAAinB,IAAkB+nD,GAAArpG,EAAAltB,EAAAP,KAAA+jB,GAAA48D,EAAA,CAChG8lC,GAAAhlE,OAAA,IACAwhE,GAAA/iH,aAIA03H,GAAAz8H,EAAA,CACAyX,GAAA,uBACAA,GAAA,uBACAytB,GAAA,kBACAL,GAAA,eACAptB,GAAA,aACA2xC,GAAA54C,MAAA,0BACA4/C,GACAxH,OAGAg9C,GAAA,SAAAxzE,EAAAhJ,EAAAC,GACA,OAAAmkC,GAAAp7B,EAAAhJ,EAAAC,GAAAjlB,KAAAgsD,GAAAL,aAEA2sE,GAAA,SAAAC,EAAAC,GACA,OAAAryG,GAAA,CACAoiC,QAAAm5C,GACAx/F,KAAAq2H,EACAttF,UAAA,SAAAjmB,GACA,OACAq8E,gBAAAr8D,GAAA,CAAA/V,GAAA,2BAAA5P,GAAA9S,KAAA,SAAArN,GACAsiG,GAAAtiG,EAAA8lB,EAAAwzG,GAAAz4H,KAAA,SAAA6+E,GACAx1B,GAAAlqD,EAAA8lB,EAAA,QAAAjlB,KAAA,SAAA04H,GACA/1D,GAAAnB,KAAAk3D,IACAzzG,EAAA0zG,eAAAx5H,EAAA0/E,EAAA65C,kBASAE,GAAA/8H,EAAA,CACA08H,GAAA,mBACAA,GAAA,mBACAnyG,GAAA,CACAoiC,QAAAinB,GACAhgE,OAAA,CAAAyC,GAAA,QACA/P,KAAA,OACA+oC,UAAA,SAAAjmB,GACA,OACAuqD,iBAAAvqC,GAAA,CAAA09B,GAAAzzC,OAAA,CACA4+B,SAAA7oC,EAAA4zG,OACAz3D,YAAAn8C,EAAAyb,QAAAo4F,UACA53D,KAAA,CAAuB9e,KAAA,qBAOvB22E,GAAA,SAAA9zG,EAAAmO,EAAAjF,EAAAm6B,GACA,OACAzjC,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAvE,WAAAo2B,GAAAD,QAAA//B,EAAA+zG,uBAAA,CACA/sE,GAAA/8B,OAAA,CAA4B7qB,KAAApD,EAAAP,OAC5B+jD,GAAAv1B,OAAA,CACAuwB,MAAA,CACA2C,KAAA,SACAR,SAAA,SAAA3zB,GACA,IAAA+J,EACAlZ,EAAAirC,GAAA97B,EAAAhJ,EAAA,CACA,SACA,WAEA,OAAA+S,EAAA,GAA8BA,EAAA/S,EAAAg0G,YAAAx0E,GAAA7C,SAAA9iC,EAAAo6G,UAAAlhG,EAAA/S,EAAAk0G,YAAA10E,GAAA7C,SAAA9iC,EAAAs6G,UAAAphG,GAE9B2pB,SAAA,SAAA1zB,EAAAnyB,GACA,IAAAgjB,EAAAirC,GAAA97B,EAAAhJ,EAAA,CACA,SACA,WAEAva,GAAA5O,EAAAmpB,EAAAg0G,aACAx0E,GAAA9C,SAAA7iC,EAAAo6G,SAAAp9H,EAAAmpB,EAAAg0G,aAEAvuH,GAAA5O,EAAAmpB,EAAAk0G,aACA10E,GAAA9C,SAAA7iC,EAAAs6G,SAAAt9H,EAAAmpB,EAAAk0G,mBAMAzhG,KAAA,CACA2hG,UAAA,SAAA36G,GACA,OAAA2qC,GAAA3qC,EAAAuG,EAAA,WAEAq0G,UAAA,SAAA56G,GACA,OAAA2qC,GAAA3qC,EAAAuG,EAAA,WAEAs0G,QAAA,SAAA76G,GACA,OAAA2qC,GAAA3qC,EAAAuG,EAAA,YAKAu0G,GAAA9tE,GAAA,CACAvpD,KAAA,oBACAopD,aAAA+sE,KACA7sE,WAAAmtE,KACApwE,QAAAuwE,GACArhG,KAAA,CACA2hG,UAAA,SAAA3hG,EAAAhZ,GACA,OAAAgZ,EAAA2hG,UAAA36G,IAEA46G,UAAA,SAAA5hG,EAAAhZ,GACA,OAAAgZ,EAAA4hG,UAAA56G,IAEA66G,QAAA,SAAA7hG,EAAAhZ,GACA,OAAAgZ,EAAA6hG,QAAA76G,OAKA+6G,GAAA,SAAA71H,GACA,IAAA81H,EAAA,CACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACA9zB,GAAA,EACA+zB,GAAA,EACAlqH,GAAA,EACAmqH,IAAA,EACAC,GAAA,EACAC,GAAA,EACAC,IAAA,GAEAC,EAAA,SAAAl1D,GACA,OAAAA,KAAAu0D,IAAAv0D,GAAA,GAEAm1D,EAAA12H,EAAA9H,MAAA23C,QAAA4mF,EAAAz2H,EAAAuhE,OAIA,OAHA,IAAAm1D,EAAAt8H,QAAA,OACAs8H,IAAA3jH,QAAA,cAEA2jH,EAAA12H,EAAAuhE,MAEAo1D,GAAA,SAAAC,GACA,IAAAC,EAAA,gFACAh0H,EAAAg0H,EAAA5yC,KAAA2yC,GACA,UAAA/zH,EAAA,CACA,IAAA3K,EAAA88B,WAAAnyB,EAAA,IACA0+D,EAAA1+D,EAAA,GACA,OAAA1E,EAAAjG,MAAA,CACAA,QACAqpE,SAGA,OAAApjE,EAAAN,MAAA+4H,IAGAE,GAAA,SAAA92H,EAAAuhE,GACA,IAAAw1D,EAAA,CACAhB,GAAA,GACAC,GAAA,GACAC,GAAA,GACAK,GAAA,KACAH,GAAA,GACAD,GAAA,KACAK,GAAA,GAEAS,EAAA,SAAAhyE,GACA,OAAAzrD,OAAAO,UAAAC,eAAAC,KAAA+8H,EAAA/xE,IAEA,OAAAhlD,EAAAuhE,SACAlkE,EAAAP,KAAAkD,EAAA9H,OACO8+H,EAAAh3H,EAAAuhE,OAAAy1D,EAAAz1D,GACPw1D,EAAA/2H,EAAAuhE,QAAAw1D,EAAAx1D,GACAlkE,EAAAP,KAAAkD,EAAA9H,OAEAmF,EAAAP,KAAAkD,EAAA9H,MAAA6+H,EAAA/2H,EAAAuhE,MAAAw1D,EAAAx1D,IAGAlkE,EAAArC,QAGAi8H,GAAA,SAAAruH,GACA,OAAAvL,EAAArC,QAEAk8H,GAAA,SAAA3I,EAAAhtD,GACA,gBAAAvhE,GACA,OAAA82H,GAAA92H,EAAAuhE,GAAAplE,IAAA,SAAAjE,GACA,OACAA,QAAAq2H,EACAhtD,YAKA41D,GAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAX,GAAAS,GAAA15H,WACA65H,EAAAZ,GAAAU,GAAA35H,WACA,OAAAg9B,GAAA48F,EAAAC,EAAA,SAAAC,EAAAC,GACA,OAAAX,GAAAU,EAAAC,EAAAl2D,MAAAplE,IAAA,SAAAiL,GACA,OAAAqwH,EAAAv/H,MAAAkP,IACSjL,IAAA,SAAA1B,GACT,OAAAy8H,GAAAz8H,EAAAg9H,EAAAl2D,QACS5lE,MAAAs7H,MACFt7H,MAAAs7H,KAGPS,GAAA,SAAAntG,EAAAkzD,GACA,IAAAk6C,EAAAV,GACAW,EAAAxwG,GAAA,eACAywG,EAAAjC,GAAA16G,QAAA45G,KAAA,CACApjH,IAAA,CACAL,IAAA,SACAya,QAAA,CACA,WACA,aACA,oBACA,oBAEAC,WAAA,CAAuBywD,MAAAiB,EAAAtnD,UAAA5L,EAAAlnB,MAAA1H,MAAA,4BAEvB6zB,WAAA,CACA,CACA9d,IAAA,CACAL,IAAA,OACAya,QAAA,CACA,WACA,uBAEAwG,UAAA85C,GAAA,OAAAqR,EAAAtR,SAGA,CACAz6D,IAAA,CACAL,IAAA,OACAya,QAAA,CACA,WACA,yBAEAwG,UAAA85C,GAAA,SAAAqR,EAAAtR,UAIAP,iBAAAvqC,GAAA,CACAu+C,GAAAH,OAAAl1D,EAAA4zD,UACAspB,GAAAn8E,OAAA,QAGAwsG,EAAA,SAAAtoG,GACA,OACA9d,IAAA,CACAL,IAAA,MACAya,QAAA,qBAEA0D,eAGAuoG,EAAA,SAAAC,GACA,OAAAj6B,GAAA7iF,QAAAzS,MAAA,CACAm8C,QAAA85C,GACAF,aAAA,kBACAJ,gBAAA/8D,GAAA,CACAm+C,GAAAl0D,OAAA,CAA8B6yD,SAAA5zD,EAAA4zD,WAC9BspB,GAAAn8E,OAAA,IACAA,GAAA,qBACA5P,GAAAW,KAAA,SAAAvB,EAAAC,GACA2D,GAAA5D,EAAA88G,EAAA,CAAiDI,eAEjDt8G,GAAAe,KAAA,SAAA3B,EAAAC,GACA2D,GAAA5D,EAAAyhF,GAAA,CAAsDh+F,KAAAgsB,EAAAhsB,aAItD2/F,eAAA,KAGAJ,EAAA,SAAAz6F,GACA,OACAqO,IAAA,CACAL,IAAA,QACAya,QAAA,cACAwG,UAAAmrD,EAAAtnD,UAAA9yB,MAIA40H,EAAArC,GAAA16G,QAAAo6G,OAAAwC,EAAA,CACA/5B,GAAA7iF,QAAA7X,MAAAy6F,EAAA,UACAi6B,GAAA,MAEAG,EAAAtC,GAAA16G,QAAAs6G,OAAAsC,EAAA,CACA/5B,GAAA7iF,QAAA7X,MAAAy6F,EAAA,WACAi6B,GAAA,MAEA,OAAAnC,GAAA5yE,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,qBAEA0D,WAAA,EACA9d,IAAA,CACAL,IAAA,MACAya,QAAA,gCAEA0D,WAAA,CACAyoG,EACAC,EACAJ,EAAA,CACAh6B,EAAA,UACA+5B,OAIAxC,WAAA,QACAE,WAAA,SACAN,QAAA,EACAn4F,QAAA,CAAkBo4F,UAAA,cAClBH,eAAA,SAAAjhH,EAAAmnE,EAAA65C,GACA6B,GAAA91E,GAAA7C,SAAAlqC,IAAA1X,KAAA,SAAA4D,GACA23H,EAAA33H,GAAA5D,KAAA,SAAA+7H,GACAt3E,GAAA9C,SAAAk9B,EAAA46C,GAAAsC,SAIA/C,uBAAA/zF,GAAA,CACAm+C,GAAAl0D,OAAA,CACA6yD,SAAA5zD,EAAA4zD,SACAW,WAAA,SAAAz0D,GACAurG,GAAAH,UAAAprG,GAAAhuB,KAAA0hG,GAAAF,UAAAzhG,KAAAojF,GAAApB,SACAw3C,GAAAF,UAAArrG,GAAAhuB,KAAA0hG,GAAAF,UAAAzhG,KAAAojF,GAAApB,SACAw3C,GAAAD,QAAAtrG,GAAAjuB,KAAAojF,GAAApB,UAEAY,UAAA,SAAA30D,GACAurG,GAAAH,UAAAprG,GAAAhuB,KAAA0hG,GAAAF,UAAAzhG,KAAAojF,GAAAT,QACA62C,GAAAF,UAAArrG,GAAAhuB,KAAA0hG,GAAAF,UAAAzhG,KAAAojF,GAAAT,QACA62C,GAAAD,QAAAtrG,GAAAjuB,KAAAojF,GAAAT,WAGAzzD,GAAA,sBAAA5P,GAAAk8G,EAAA,SAAA98G,EAAAC,GACA,IAAAi9G,EAAAj9G,EAAAC,QAAAg9G,WACAI,EAAAJ,EAAApC,GAAAH,UAAA36G,GAAA86G,GAAAF,UAAA56G,GACAu9G,EAAAL,EAAApC,GAAAF,UAAA56G,GAAA86G,GAAAH,UAAA36G,GACAw9G,EAAAF,EAAAj8H,IAAA0kD,GAAA7C,UAAAriD,MAAA,IACA48H,EAAAF,EAAAl8H,IAAA0kD,GAAA7C,UAAAriD,MAAA,IACAg8H,EAAAR,GAAAmB,EAAAC,YAMAC,GAAAvgI,EAAAmvB,GAAA,SACAqxG,GAAAxgI,EAAAmvB,GAAA,SACAsxG,GAAAzgI,EAAAmvB,GAAA,SACAuxG,GAAA1gI,EAAAmvB,GAAA,SACApvB,GAAAC,EAAAmvB,GAAA,UACAwxG,GAAA3gI,EAAAmvB,GAAA,SACA7G,GAAAtoB,EAAAmvB,GAAA,cACAyxG,GAAA5gI,EAAAmvB,GAAA,mBACA0xG,GAAA7gI,EAAAmvB,GAAA,oBACA2xG,GAAA,CACAP,QACAC,QACAC,QACAC,QACA3gI,SACA4gI,QACAr4G,aACAs4G,iBACAC,mBAEAE,GAAA/gI,EAAA,cACAghI,GAAAhhI,EAAA,WACAihI,GAAAjhI,EAAA,UACAkhI,GAAA,CACAz8B,mBACAs8B,aACA56C,QAAA66C,GACAl6C,OAAAm6C,IAGAE,GAAA,SAAAC,EAAA57C,GACA,IAAA67C,EAAA,SAAA9nH,EAAAqP,EAAAs9D,EAAAtb,GACA,OAAAiJ,GAAAioD,GAAA,CACAx1H,KAAAiT,EACAA,OACA2sE,WACAtb,UACAyK,KAAAjwE,EAAArC,OACA84H,YAAA,GACSjzG,EAAA48D,KAET87C,EAAA,SAAAjsD,EAAAsL,EAAA/3D,EAAAs9D,GACA,OAAArS,GAAA4nD,GAAA,CACAn1H,KAAA+uE,EACAA,KAAAjwE,EAAAP,KAAAwwE,GACAsL,QAAAv7E,EAAAP,KAAA87E,GACAuF,WACAtb,SAAA,EACAixD,YAAA,GACSjzG,EAAA48D,KAET+7C,EAAA,SAAAxd,EAAAyd,GACAzd,EAAA7/G,IAAA,SAAA0jH,GACA,IAAA/kG,EAAA+kG,EAAA39G,IAAAu3H,GACA3+G,EAAA+Y,cAAA2rD,KACAA,GAAApB,QAAAtjE,MAIA4+G,EAAA,SAAA1d,EAAAyd,GACAzd,EAAA7/G,IAAA,SAAA0jH,GACA,IAAA/kG,EAAA+kG,EAAA39G,IAAAu3H,GACA3+G,EAAA+Y,cAAA2rD,KACAA,GAAAT,OAAAjkE,MAIA6+G,EAAA,CACAtoH,IAAA,MACAya,QAAA,CACA,2BACA,+BAGA8tG,EAAAtiI,EACAuiI,EAAA,SAAAxvG,EAAArP,EAAA8D,GACAJ,GAAA2L,EAAArP,EAAA8D,IAEAg7G,EAAA,SAAAh/G,GACA,OAAA0D,GAAA1D,EAAAq+G,GAAA/6C,YAEA27C,EAAA,SAAAj/G,GACA,OAAA0D,GAAA1D,EAAAq+G,GAAAp6C,WAEAi7C,EAAA,SAAA3vG,EAAA9J,GACAu5G,EAAAzvG,GACAwvG,EAAAxvG,EAAA0uG,GAAAx4G,YAAA,CAA4CA,cAC5Cw5G,EAAA1vG,IAEA4vG,EAAA,SAAA5vG,EAAA9J,GACAu5G,EAAAzvG,GACAwvG,EAAAxvG,EAAA0uG,GAAAF,gBAAA,CAAgDt4G,cAChDw5G,EAAA1vG,IAEA6vG,EAAA,SAAAnuD,GACA,kBACAouD,GAAAnuD,OAAAD,GAAA3vE,KAAA,SAAAypB,GACAo2C,GAAA1rD,IAAAsV,EAAA,CAAAu0G,SAIAC,EAAA,SAAAhwG,EAAA9J,GACAu5G,EAAAzvG,GACAwvG,EAAAxvG,EAAA0uG,GAAAD,iBAAA,CACAv4G,YACAq4G,KAAAsB,EAAA7vG,KAEA0vG,EAAA1vG,IAEAiwG,EAAA,WACA,OAAAhB,EAAA,gBAAA75C,GACA,OAAAo6C,EAAAp6C,EAAAs5C,GAAAJ,OAAA,CAAkDC,KAAAsB,EAAAz6C,OACzC,OAET86C,EAAA,WACA,OAAAzuD,GAAA,CACAp6D,IAAA,CACAL,IAAA,MACAya,QAAA,gBAEAb,WAAAoW,GAAA,CAAAm+C,GAAAl0D,OAAA,SAGAkvG,EAAA,WACA,OAAAlB,EAAA,iBAAA75C,GACA,OAAAo6C,EAAAp6C,EAAAs5C,GAAA/gI,QAAA,CAAmD4gI,KAAAsB,EAAAz6C,OAC1C,OAETg7C,EAAA,WACA,gBAAA3P,GACA,IAAA3xF,EAAAkgG,EAAAqB,UACA,OAAArK,GAAAvF,EAAA3xF,EAAA/gC,EAAA+gC,EAAAtnB,EAAAsnB,EAAAG,EAAAH,EAAApE,KAGA4lG,EAAA,CACAL,IACAC,IACAjB,EAAA,iBAAA75C,GACA,IAAAl/D,EAAAk6G,IACAJ,EAAA56C,EAAAl/D,GACA84G,EAAAuB,aACS,OAETC,EAAApiC,GAAAz1C,OAAA,CACAtxC,IAAAioH,EACAnqG,WAAAmrG,EAAAx+H,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,WAEAusB,oBAAAn3D,GAAA,CAAA/V,GAAA,mCACA5P,GAAAy9G,GAAA/6C,UAAA,SAAA/zD,EAAAg0B,GACAm7E,EAAAmB,EAAAtwG,KAEA3O,GAAAy9G,GAAAp6C,SAAA,SAAA10D,EAAAg0B,GACAq7E,EAAAiB,EAAAtwG,WAIAywG,EAAAhvD,GAAA4rD,GAAA,CACAn5H,KAAA,OACA8E,MAAAhG,EAAArC,OACA+/H,WAAA,EACA58C,UAAA,GACOV,IACPu9C,EAAA,SAAArjG,EAAAjC,GACA,gBAAAo1F,GACA,OAAAwF,GAAAxF,EAAAnzF,EAAAjC,KAGAulG,EAAA,CACAX,IACAC,IACAO,EACAP,IACAjB,EAAA,iBAAA75C,GACAq7C,EAAA9uD,OAAAyT,GAAArjF,KAAA,SAAA8+H,GACA,IAAAhjI,EAAA2oD,GAAA7C,SAAAk9E,GACAvjG,EAAAzC,SAAAh9B,EAAAy/B,MAAA,IACAjC,EAAAR,SAAAh9B,EAAAw9B,OAAA,IACAnV,EAAAy6G,EAAArjG,EAAAjC,GACA2kG,EAAA56C,EAAAl/D,OAES,OAET46G,EAAA1iC,GAAAz1C,OAAA,CACAtxC,IAAAioH,EACAnqG,WAAAyrG,EAAA9+H,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,WAEAusB,oBAAAn3D,GAAA,CAAA/V,GAAA,qCACA5P,GAAAy9G,GAAA/6C,UAAA,SAAA/zD,EAAAg0B,GACAm7E,EAAAyB,EAAA5wG,KAEA3O,GAAAy9G,GAAAp6C,SAAA,SAAA10D,EAAAg0B,GACAq7E,EAAAuB,EAAA5wG,WAIA+wG,EAAA,SAAA76G,EAAAroB,GACA,gBAAA4yH,GACA,OAAAvqG,EAAAuqG,EAAA5yH,KAGAmjI,EAAAD,EAAAhL,GAAA,KACAkL,EAAAF,EAAAhL,GAAA,KACAmL,EAAAH,EAAA7K,IAAA,IACAiL,EAAAJ,EAAA7K,GAAA,IACAkL,EAAA,SAAApxG,EAAAqxG,GACAzB,EAAA5vG,EAAAqxG,IAEAC,EAAA,CACArB,IACAC,IACAhB,EAAA,iDAAA95C,GACAg8C,EAAAh8C,EAAA47C,KACS,GACT9B,EAAA,6CAAA95C,GACAg8C,EAAAh8C,EAAA67C,KACS,GACT/B,EAAA,iDAAA95C,GACAg8C,EAAAh8C,EAAA87C,KACS,GACThC,EAAA,2CAAA95C,GACAg8C,EAAAh8C,EAAA+7C,KACS,GACTjB,IACAC,KAEAoB,EAAAnjC,GAAAz1C,OAAA,CACAtxC,IAAAioH,EACAnqG,WAAAmsG,EAAAx/H,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,WAEAusB,oBAAAn3D,GAAA,CAAA/V,GAAA,yCACA5P,GAAAy9G,GAAA/6C,UAAA,SAAA/zD,EAAAg0B,GACAm7E,EAAAmC,EAAAtxG,KAEA3O,GAAAy9G,GAAAp6C,SAAA,SAAA10D,EAAAg0B,GACAq7E,EAAAiC,EAAAtxG,WAIAwxG,EAAA,SAAAx4H,EAAAu2G,EAAA9sE,EAAA50C,EAAAk9B,GACA,IAAAq4E,EAAAuM,GAAA9+F,QAAA7X,MAAA,CACAqO,IAAA,CACAL,IAAA,QACAya,QAAA,cACAwG,UAAAmrD,EAAAtnD,UAAA9yB,MAGAyrG,EAAAkL,GAAA9+F,QAAA4zF,SAAA,CACAp9F,IAAA,CACAL,IAAA,MACAya,QAAA,qBACAC,WAAA,CAAyB2zC,KAAA,mBAGzB81C,EAAAwE,GAAA9+F,QAAAs6F,MAAA,CACA9jG,IAAA,CACAL,IAAA,MACAya,QAAA,uBACAC,WAAA,CAAyB2zC,KAAA,mBAGzB,OAAAoM,GAAAkuC,GAAAh3D,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,eACAC,WAAA,CAAyB2zC,KAAA,iBAEzBiuC,MAAA,CACAnvD,KAAA,IACAgxD,KAAA1iE,EACArB,KAAArW,EACA0kF,gBAAA7hH,EAAA,CAAuCG,EAAAH,EAAAC,MAEvCs3B,WAAA,CACAi+E,EACAqB,EACA0G,GAEAiE,iBAAAp4E,GAAA,CAAA47B,GAAA3xC,OAAA,MACAsuF,eAGAkiB,EAAA,SAAAz4H,EAAAkd,EAAAusB,EAAA50C,EAAAk9B,GACA,IAAAwkF,EAAA,SAAAtE,EAAAE,EAAAt9G,GACA,IAAA6jI,EAAAX,EAAA76G,EAAAroB,EAAAE,IAAA,KACA4hI,EAAA1kB,EAAAymB,IAEA,OAAAF,EAAAx4H,EAAAu2G,EAAA9sE,EAAA50C,EAAAk9B,IAEA4mG,EAAA,SAAA34H,EAAAkd,EAAAusB,EAAA50C,EAAAk9B,GACA,OACAklG,IACAwB,EAAAz4H,EAAAkd,EAAAusB,EAAA50C,EAAAk9B,GACAolG,MAGAyB,EAAA,SAAA54H,EAAAkd,EAAAusB,EAAA50C,EAAAk9B,GACA,IAAA8mG,EAAAF,EAAA34H,EAAAkd,EAAAusB,EAAA50C,EAAAk9B,GACA,OAAAqjE,GAAAz1C,OAAA,CACAtxC,IAAAioH,EACAnqG,WAAA0sG,EAAA//H,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,WAEAusB,oBAAAn3D,GAAA,CAAA/V,GAAA,2CACA5P,GAAAy9G,GAAA/6C,UAAA,SAAA/zD,EAAAg0B,GACAm7E,EAAA0C,EAAA7xG,KAEA3O,GAAAy9G,GAAAp6C,SAAA,SAAA10D,EAAAg0B,GACAq7E,EAAAwC,EAAA7xG,YAKA6xG,EAAA,CACA5B,IACAC,IACAC,KAEA2B,EAAA1jC,GAAAz1C,OAAA,CACAtxC,IAAAioH,EACAnqG,WAAA0sG,EAAA//H,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,aAGAmwD,EAAAH,EAAA,aAAA/L,IAAA,WACAmM,EAAAJ,EAAA,WAAA9L,IAAA,WACAmM,EAAAL,EAAA,QAAAjM,IAAA,WACAuM,EAAA,SAAAl4C,EAAAC,EAAAC,GACA,gBAAAumC,GACA,OAAAmF,GAAAnF,EAAAzmC,EAAAC,EAAAC,KAGAi4C,EAAA,SAAAn5H,GACA,IAAAu2G,EAAA,SAAAtE,EAAAE,EAAAt9G,GACA,IAAAukI,EAAAC,EAAA1wD,OAAAspC,GACAqnB,EAAAC,EAAA5wD,OAAAspC,GACAunB,EAAAC,EAAA9wD,OAAAspC,GACAmnB,EAAArgI,KAAA,SAAAioF,GACAs4C,EAAAvgI,KAAA,SAAAmoF,GACAs4C,EAAAzgI,KAAA,SAAAkoF,GACA,IAAA7pF,EAAAomD,GAAA7C,SAAAqmC,GAAAjsF,IAAA,IACA+sD,EAAAtE,GAAA7C,SAAAsmC,GAAAlsF,IAAA,IACA+E,EAAA0jD,GAAA7C,SAAAumC,GAAAnsF,IAAA,IACAmoB,EAAAg8G,EAAA9hI,EAAA0qD,EAAAhoD,GACA68H,EAAA1kB,EAAA/0F,UAKA,OAAAs7G,EAAAx4H,EAAAu2G,EAAA,YAEA8iB,EAAAF,EAAA,KACAM,EAAAN,EAAA,KACAI,EAAAJ,EAAA,KACAO,EAAA,CACAzC,IACAoC,EACAI,EACAF,EACApC,KAEAwC,EAAAvkC,GAAAz1C,OAAA,CACAtxC,IAAAioH,EACAnqG,WAAAutG,EAAA5gI,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,aAGAgxD,EAAA,SAAAC,EAAA38G,EAAAy+B,GACA,gBAAAygC,GACA,IAAAm5C,EAAA,WACAuB,GAAAnuD,OAAAyT,GAAArjF,KAAA,SAAAypB,GACAo2C,GAAA1rD,IAAAsV,EAAA,CAAAq3G,IACAl+E,EAAAn5B,MAGAg0G,EAAAp6C,EAAAs5C,GAAAH,OAAA,CACAr4G,YACAq4G,WAIAuE,EAAA,SAAAC,GACA/D,EAAAgE,YAEAC,GAAA,SAAAvxD,GACA+uD,EAAA9uD,OAAAD,GAAA3vE,KAAA,SAAA8+H,GACA,IAAAqC,EAAAlE,EAAAmE,kBACA7lG,EAAA4lG,EAAA5lG,MACAjC,EAAA6nG,EAAA7nG,OACAmrB,GAAA9C,SAAAm9E,EAAA,CACAvjG,QACAjC,cAIA+nG,GAAApgI,EAAAP,KAAAizH,IACA2N,GAAArgI,EAAAP,KAAAgzH,IACA6N,GAAA,CACApE,EAAA,cAAA0D,EAAApC,EAAAx9H,EAAArC,OAAAmiI,IAAA,GACA5D,EAAA,kBAAA0D,EAAA9B,EAAA99H,EAAArC,OAAAsiI,KAAA,GACA/D,EAAA,4BAAA0D,EAAArB,EAAAv+H,EAAArC,OAAA4+H,IAAA,GACAL,EAAA,0BAAA0D,EAAAb,EAAA/+H,EAAArC,OAAA4+H,IAAA,GACAL,EAAA,oBAAA0D,EAAAd,EAAAsB,GAAA7D,IAAA,GACAL,EAAA,sBAAA0D,EAAAZ,EAAAh/H,EAAArC,OAAA4+H,IAAA,GACAL,EAAA,8BAAA0D,EAAAD,EAAA3/H,EAAArC,OAAA4+H,IAAA,GACAL,EAAA,gBAAA0D,EAAAX,EAAAj/H,EAAArC,OAAA4+H,IAAA,GACAL,EAAA,kBAAA0D,EAAAd,EAAAuB,GAAA9D,IAAA,IAEAQ,GAAA3hC,GAAAz1C,OAAA,CACAtxC,IAAAioH,EACAnqG,WAAAmuG,GAAAxhI,IAAA,SAAA0jH,GACA,OAAAA,EAAA5zC,aAGApmD,GAAA4yE,GAAAz1C,OAAA,CACAtxC,IAAA,CAAcL,IAAA,OACdme,WAAA,CAAA4qG,IACA5hC,oBAAAn3D,GAAA,CAAA46B,GAAA3wC,OAAA,QAEA6uG,GAAAruD,GAAAjmD,IACA+3G,GAAA,SAAA7xD,GACA,OAAAouD,GAAAnuD,OAAAD,GAAA5vE,IAAA,SAAA0pB,GACA,IAAAq3G,EAAAr3G,EAAA2J,aAAA,GACA,OAAA0tG,EAAA1tG,aAAA0tG,EAAA1tG,aAAAz3B,OAAA,MAGA,OACAoiI,gBACAyD,oBAIAC,GAAA3kI,QAAAC,KAAAC,MAAAC,QAAA,wBAEAykI,GAAA5kI,QAAAC,KAAAC,MAAAC,QAAA,qBAEA0kI,GAAA7kI,QAAAC,KAAAC,MAAAC,QAAA,2BAEA2kI,GAAA9kI,QAAAC,KAAAC,MAAAC,QAAA,sBAEA4kI,GAAA/kI,QAAAC,KAAAC,MAAAC,QAAA,mBAEA,SAAA6kI,GAAAttH,GACA,IAAAwS,EAAAvD,EAAAs+G,EAAA/lG,EACApG,EAAAosG,EAAA/lG,EAAA1C,EACAP,EAAAzN,KAAAyN,IASA,OARAhS,EAAAxS,EAAAwS,gBACAvD,EAAAjP,EAAAiP,KACAs+G,EAAA/oG,EAAAhS,EAAA+6G,YAAAt+G,EAAAs+G,aACA/lG,EAAAhD,EAAAhS,EAAAgV,YAAAvY,EAAAuY,aACApG,EAAAoD,EAAAhS,EAAA4O,YAAAnS,EAAAmS,aACAosG,EAAAhpG,EAAAhS,EAAAg7G,aAAAv+G,EAAAu+G,cACA/lG,EAAAjD,EAAAhS,EAAAiV,aAAAxY,EAAAwY,cACA1C,EAAAP,EAAAhS,EAAAuS,aAAA9V,EAAA8V,cACA,CACAgC,MAAAwmG,EAAAnsG,EAAAoG,EAAA+lG,EACAzoG,OAAA0oG,EAAAzoG,EAAA0C,EAAA+lG,GAGA,SAAAC,GAAAlkI,GACA,IAAAqH,EAAA7H,EACA,GAAAQ,EAAAmkI,eAEA,IADA98H,EAAA,8CAAAqoB,MAAA,KACAlwB,EAAA,EAAmBA,EAAA6H,EAAAzJ,OAAiB4B,IACpCQ,EAAAqH,EAAA7H,IAAAQ,EAAAmkI,eAAA,GAAA98H,EAAA7H,IAIA,SAAA4kI,GAAAjjI,EAAAqzE,GACA,IAAA6vD,EAEAC,EACAnnH,EAAA0I,EAAA0+G,EAAAC,EAAAC,EAFAhuH,EAAA+9D,EAAA99D,UAAAxZ,EAAAwZ,SAGA89D,KAAA,GACA,IAAAkwD,EAAAjuH,EAAAkuH,eAAAnwD,EAAAgkB,QAAAr3F,GACAgc,EAAA,SAAAnd,GACA,IACA4kI,EAAAC,EADAC,EAAAf,GAAAttH,GAEAytH,GAAAlkI,GACAA,EAAAumB,iBACA+9G,EAAAtkI,EAAAslF,OACAs/C,EAAAF,EACAF,EAAAxkI,EAAA+kI,QACAN,EAAAzkI,EAAAglI,QAEAH,EADA3nI,EAAA8gB,OAAAsZ,iBACAp6B,EAAA8gB,OAAAsZ,iBAAAstG,EAAA,MAAAjuG,iBAAA,UAEAiuG,EAAAK,aAAAJ,OAEAR,EAAAX,GAAA,eAAAvsG,IAAA,CACAkI,SAAA,WACAtD,IAAA,EACAD,KAAA,EACA0B,MAAAsnG,EAAAtnG,MACAjC,OAAAupG,EAAAvpG,OACA2pG,OAAA,WACAC,QAAA,KACAN,WACSO,SAAA3uH,EAAAiP,MACTg+G,GAAAjtH,GAAAm3B,GAAA,sBAAA22F,GAAA32F,GAAA,mBAAA/nB,GACA2uD,EAAAr3D,MAAAnd,IAEAukI,EAAA,SAAAvkI,GAEA,GADAkkI,GAAAlkI,GACAA,EAAAslF,SAAAg/C,EACA,OAAAz+G,EAAA7lB,GAEAA,EAAAqlI,OAAArlI,EAAA+kI,QAAAP,EACAxkI,EAAAslI,OAAAtlI,EAAAglI,QAAAP,EACAzkI,EAAAumB,iBACAiuD,EAAA+vD,KAAAvkI,IAEA6lB,EAAA,SAAA7lB,GACAkkI,GAAAlkI,GACA0jI,GAAAjtH,GAAA8kC,IAAA,sBAAAgpF,GAAAhpF,IAAA,mBAAA11B,GACAw+G,EAAAx5G,SACA2pD,EAAA3uD,MACA2uD,EAAA3uD,KAAA7lB,IAGAF,KAAA6+F,QAAA,WACA+kC,GAAAgB,GAAAnpF,OAEAmoF,GAAAgB,GAAA92F,GAAA,uBAAAzwB,GAGA,IAAA5U,GAAA,EACAg9H,GAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAj/G,GACA,IAAAk/G,EACAC,EACAC,EACA54G,EAAA,OACA/rB,EAAA+rB,EAAA,QAAA3kB,KACAw9H,EAAA,CACA,CACA3hI,KAAA,OACA4hI,KAAA,EACAC,KAAA,EACAZ,OAAA,EACAC,OAAA,EACAhrF,OAAA,EACAC,OAAA,EACArxC,MAAA,aAEA,CACA9E,KAAA,KACA4hI,KAAA,EACAC,KAAA,EACAZ,OAAA,EACAC,OAAA,EACAhrF,QAAA,EACAC,QAAA,EACArxC,MAAA,wBAEA,CACA9E,KAAA,KACA4hI,KAAA,EACAC,KAAA,EACAZ,OAAA,EACAC,OAAA,EACAhrF,OAAA,EACAC,QAAA,EACArxC,MAAA,yBAEA,CACA9E,KAAA,KACA4hI,KAAA,EACAC,KAAA,EACAZ,OAAA,EACAC,OAAA,EACAhrF,QAAA,EACAC,OAAA,EACArxC,MAAA,2BAEA,CACA9E,KAAA,KACA4hI,KAAA,EACAC,KAAA,EACAZ,OAAA,EACAC,OAAA,EACAhrF,OAAA,EACAC,OAAA,EACArxC,MAAA,6BAGA48H,EAAA,CACA,MACA,QACA,SACA,QAEA,IAAAI,EAAA,SAAAC,EAAAC,GACA,OACAnoI,EAAAmoI,EAAAnoI,EAAAkoI,EAAAloI,EACAyZ,EAAA0uH,EAAA1uH,EAAAyuH,EAAAzuH,EACAynB,EAAAinG,EAAAjnG,EACAvE,EAAAwrG,EAAAxrG,IAGAyrG,EAAA,SAAAF,EAAAG,GACA,OACAroI,EAAAqoI,EAAAroI,EAAAkoI,EAAAloI,EACAyZ,EAAA4uH,EAAA5uH,EAAAyuH,EAAAzuH,EACAynB,EAAAmnG,EAAAnnG,EACAvE,EAAA0rG,EAAA1rG,IAGA2rG,EAAA,WACA,OAAAF,EAAAX,EAAAF,IAEA,SAAAgB,EAAAhuC,EAAAiuC,EAAApB,EAAAC,GACA,IAAArnI,EAAAyZ,EAAAynB,EAAAvE,EAAAoE,EACA/gC,EAAAwoI,EAAAxoI,EACAyZ,EAAA+uH,EAAA/uH,EACAynB,EAAAsnG,EAAAtnG,EACAvE,EAAA6rG,EAAA7rG,EACA38B,GAAAonI,EAAA7sC,EAAA6sC,OACA3tH,GAAA4tH,EAAA9sC,EAAA8sC,OACAnmG,GAAAkmG,EAAA7sC,EAAAl+C,OACA1f,GAAA0qG,EAAA9sC,EAAAj+C,OACApb,EAAA,KACAA,EAAA,IAEAvE,EAAA,KACAA,EAAA,IAEAoE,EAAAwmG,EAAA7B,GAAA/T,MAAA,CACA3xH,IACAyZ,IACAynB,IACAvE,KACS8qG,EAAA,SAAAltC,EAAAp0F,MACT46B,EAAAqnG,EAAAX,EAAA1mG,GACA4mG,EAAAx3C,KAAA,cAAqCpvD,SACrC0nG,EAAA1nG,GAEA,SAAAg2D,IACA,SAAA2xC,EAAAnuC,GACA,IAAAiuC,EACA,WAAArC,GAAAjjI,EAAA,CACAuV,SAAAivH,EAAAlgH,cACA+yE,OAAAr3F,EAAA,IAAAq3F,EAAAp0F,KACA+Y,MAAA,WACAspH,EAAAjB,GAEAjB,KAAA,SAAAvkI,GACAwmI,EAAAhuC,EAAAiuC,EAAAzmI,EAAAqlI,OAAArlI,EAAAslI,WAIA5B,GAAA,YAAAviI,EAAA,YAAA+rB,EAAA,8DAAAk4G,SAAAO,GACA9B,GAAA5hI,KAAA6jI,EAAA,SAAAc,GACAlD,GAAA,IAAAviI,EAAAwkI,GAAAz7G,OAAA,YAAA/oB,EAAA,IAAAylI,EAAA,WAAA15G,EAAA,iEAEA22G,GAAA5hI,KAAA8jI,EAAA,SAAAvtC,GACAkrC,GAAA,IAAAviI,EAAAwkI,GAAAz7G,OAAA,YAAA/oB,EAAA,IAAAq3F,EAAAp0F,KAAA,YAAA8oB,EAAA,mBAAAA,EAAA,mBAAAsrE,EAAAp0F,KAAA,yFAAAo0F,EAAAtvF,MAAA,iCAAAsvF,EAAAtvF,MAAA,QAEA28H,EAAAhC,GAAA7hI,IAAA+jI,EAAAY,GACAE,EAAArB,GACA9B,GAAAiC,GAAA/3F,GAAA,4BAAA5tC,GACA0jI,GAAA1jI,EAAAgJ,QAAA0sB,KAAA,yBAAA11B,EAAAsE,KAAA,kBAEAo/H,GAAAiC,GAAA/3F,GAAA,mBAAA5tC,GACA,IAAA8mI,EAOA,SAAAC,EAAA9xB,EAAAzc,EAAAiuC,EAAApB,EAAAC,GACArwB,EAAA5c,kBACA4c,EAAA1uF,iBACAigH,EAAAM,EAAAL,EAAApB,EAAAC,GAEA,OAXAzB,GAAA5hI,KAAA8jI,EAAA,SAAAvtC,GACA,GAAAx4F,EAAAgJ,OAAA7H,OAAA,IAAAq3F,EAAAp0F,KAEA,OADA0iI,EAAAtuC,GACA,IAQAx4F,EAAAgnI,SACA,KAAAlD,GAAAnzE,KACAo2E,EAAA/mI,EAAA8mI,EAAAtB,GAAA,MACA,MACA,KAAA1B,GAAAjzE,MACAk2E,EAAA/mI,EAAA8mI,EAAAtB,EAAA,MACA,MACA,KAAA1B,GAAAlzE,GACAm2E,EAAA/mI,EAAA8mI,EAAAtB,EAAA,OACA,MACA,KAAA1B,GAAAhzE,KACAi2E,EAAA/mI,EAAA8mI,EAAAtB,EAAA,MACA,MACA,KAAA1B,GAAAtzE,MACA,KAAAszE,GAAAmD,SACAjnI,EAAAumB,iBACAG,IACA,SAIA,SAAAwgH,EAAA34H,GACA,IAAA6uD,EACAA,EAAAymE,GAAA7hI,IAAA+jI,EAAA,SAAAvtC,GACA,UAAAr3F,EAAA,IAAAq3F,EAAAp0F,OACS7F,OAAAslI,GAAA7hI,IAAA8jI,EAAA,SAAAc,GACT,UAAAzlI,EAAA,IAAAylI,KACS/9H,KAAA,KACT0F,EACAm1H,GAAAtmE,EAAAuoE,GAAA9mD,OAEA6kD,GAAAtmE,EAAAuoE,GAAAz1D,OAGA,SAAA22D,EAAA7nG,GACA,SAAAmoG,EAAA/iI,EAAA46B,GACAA,EAAApE,EAAA,IACAoE,EAAApE,EAAA,GAEAoE,EAAAG,EAAA,IACAH,EAAAG,EAAA,GAEAukG,GAAA,IAAAviI,EAAA,IAAAiD,EAAAuhI,GAAAxuG,IAAA,CACA2E,KAAAkD,EAAA/gC,EACA89B,IAAAiD,EAAAtnB,EACA8lB,MAAAwB,EAAAG,EACA5D,OAAAyD,EAAApE,IAGAipG,GAAA5hI,KAAA8jI,EAAA,SAAAvtC,GACAkrC,GAAA,IAAAviI,EAAA,IAAAq3F,EAAAp0F,KAAAuhI,GAAAxuG,IAAA,CACA2E,KAAAkD,EAAAG,EAAAq5D,EAAAwtC,KAAAhnG,EAAA/gC,EACA89B,IAAAiD,EAAApE,EAAA49D,EAAAytC,KAAAjnG,EAAAtnB,MAGAyvH,EAAA,OACAlpI,EAAAwnI,EAAAxnI,EACAyZ,EAAA+tH,EAAA/tH,EACAynB,EAAAsmG,EAAAtmG,EACAvE,EAAAoE,EAAAtnB,EAAA+tH,EAAA/tH,IAEAyvH,EAAA,SACAlpI,EAAA+gC,EAAA/gC,EAAA+gC,EAAAG,EACAznB,EAAAsnB,EAAAtnB,EACAynB,EAAAsmG,EAAAtmG,EAAAH,EAAA/gC,EAAA+gC,EAAAG,EAAAsmG,EAAAxnI,EACA28B,EAAAoE,EAAApE,IAEAusG,EAAA,UACAlpI,EAAAwnI,EAAAxnI,EACAyZ,EAAAsnB,EAAAtnB,EAAAsnB,EAAApE,EACAuE,EAAAsmG,EAAAtmG,EACAvE,EAAA6qG,EAAA7qG,EAAAoE,EAAAtnB,EAAAsnB,EAAApE,EAAA6qG,EAAA/tH,IAEAyvH,EAAA,QACAlpI,EAAAwnI,EAAAxnI,EACAyZ,EAAAsnB,EAAAtnB,EACAynB,EAAAH,EAAA/gC,EAAAwnI,EAAAxnI,EACA28B,EAAAoE,EAAApE,IAEAusG,EAAA,OAAAnoG,GAEA,SAAAooG,EAAApoG,GACAwmG,EAAAxmG,EACA6nG,EAAArB,GAEA,SAAA6B,EAAAroG,GACAymG,EAAAzmG,EACA6nG,EAAArB,GAEA,SAAAkB,EAAA1nG,GACAooG,EAAAlB,EAAAR,EAAA1mG,IAEA,SAAAsoG,EAAAtoG,GACA0mG,EAAA1mG,EACA6nG,EAAArB,GAEA,SAAA7mC,IACAklC,GAAA5hI,KAAA4jI,EAAA,SAAA0B,GACAA,EAAA5oC,YAEAknC,EAAA,GAYA,OAVA7wC,IACA4wC,EAAA/B,GAAA2D,OAAA,CACAN,mBACAI,eACAF,UACAb,eACAG,eACAW,kBACA1oC,WACOilC,IACPgC,GAEA6B,GAAA,CAAoB5hG,OAAA0/F,IAEpBmC,GAAA,SAAA3b,GACA,WAAA1yC,GAAA,SAAAn6E,GACA,IAAA4tH,EAAA,WACAf,EAAA/yB,oBAAA,OAAA8zB,GACA5tH,EAAA6sH,IAEAA,EAAAzvB,SACAp9F,EAAA6sH,GAEAA,EAAAnzB,iBAAA,OAAAk0B,MAIA6a,GAAA,SAAAC,GACA,IAAAC,EAAAl2D,GAAA,CACAp6D,IAAA,CACAL,IAAA,MACAya,QAAA,8BACAC,WAAA,CAAuB2zC,KAAA,mBAGvBuiE,EAAA5xH,GAAA,GACA6xH,EAAA7xH,GAAAhT,EAAArC,QACAmnI,EAAA9xH,GAAA,CACAjY,EAAA,EACAyZ,EAAA,EACAynB,EAAA,EACAvE,EAAA,IAEAqtG,EAAA/xH,GAAA,CACAjY,EAAA,EACAyZ,EAAA,EACAynB,EAAA,EACAvE,EAAA,IAEAstG,EAAA,SAAAt2D,EAAAu2D,GACAnI,EAAAnuD,OAAAD,GAAA3vE,KAAA,SAAA8gI,GACA,IAAAxE,EAAAuJ,EAAA//H,MACAqgI,EAAAlrG,GAAA6lG,EAAAxjH,WACA8oH,EAAA5sG,GAAAsnG,EAAAxjH,WACAie,EAAA2qG,EAAA5wH,MAAAy0G,aAAAuS,EACAhjG,EAAA4sG,EAAA5wH,MAAA20G,cAAAqS,EACAziG,EAAAtO,KAAAyN,IAAA,EAAAmtG,EAAA,EAAA5qG,EAAA,GACAzB,EAAAvO,KAAAyN,IAAA,EAAAotG,EAAA,EAAA9sG,EAAA,GACApE,EAAA,CACA2E,OAAAr5B,WAAA,KACAs5B,MAAAt5B,WAAA,KACA+6B,QAAA/6B,WAAA,KACA84B,SAAA94B,WAAA,KACA48B,SAAA,YAEAnI,GAAAixG,EAAAhxG,GACA0wG,EAAAh2D,OAAAkxD,GAAA9gI,KAAA,SAAAgrF,GACA/1D,GAAA+1D,EAAA1tE,UAAA4X,KAEA4wG,EAAAhgI,MAAA9F,KAAA,SAAAqmI,GACA,IAAAtpG,EAAAgpG,EAAAjgI,MACAugI,EAAAlB,QAAA,CACAnpI,EAAA+gC,EAAA/gC,EAAAsgI,EAAAziG,EACApkB,EAAAsnB,EAAAtnB,EAAA6mH,EAAAxiG,EACAoD,EAAAH,EAAAG,EAAAo/F,EACA3jG,EAAAoE,EAAApE,EAAA2jG,IAEA+J,EAAAhB,aAAA,CACArpI,EAAA69B,EACApkB,EAAAqkB,EACAoD,EAAA3B,EACA5C,EAAAW,IAEA+sG,EAAAjB,gBAAA,CACAppI,EAAA,EACAyZ,EAAA,EACAynB,EAAAipG,EACAxtG,EAAAytG,SAKAE,EAAA,SAAA32D,EAAAu2D,GACAnI,EAAAnuD,OAAAD,GAAA3vE,KAAA,SAAA8gI,GACA,IAAAqF,EAAAlrG,GAAA6lG,EAAAxjH,WACA8oH,EAAA5sG,GAAAsnG,EAAAxjH,WACAie,EAAA2qG,EAAA5wH,MAAAy0G,aACAzwF,EAAA4sG,EAAA5wH,MAAA20G,cACAqS,EAAA/wG,KAAAmlB,IAAAy1F,EAAA5qG,EAAA6qG,EAAA9sG,GACAgjG,GAAA,EACAuJ,EAAA1xH,IAAA,GAEA0xH,EAAA1xH,IAAAmoH,MAIAiK,EAAA,SAAA52D,EAAAmxB,GACA,IAAAolC,EAAAvwH,GAAAX,QAAA,OAEA,OADA6U,GAAAq8G,EAAA,MAAAplC,GACA2kC,GAAAS,EAAA5wH,OAAAujE,KAAA,WACA,OAAAklD,EAAAnuD,OAAAD,GAAA5vE,IAAA,SAAA+gI,GACA,IAAA0F,EAAAruG,GAAA,CAAiC7a,QAAA4oH,IACjCrmE,GAAAP,UAAAwhE,EAAA,EAAA7/H,EAAAP,KAAA8lI,IACA,IAAAC,EAAAT,EAAAlgI,MACA4gI,EAAA,CACA1qI,EAAA,EACAyZ,EAAA,EACAynB,EAAAgpG,EAAA5wH,MAAAy0G,aACApxF,EAAAutG,EAAA5wH,MAAA20G,eAEA+b,EAAA7xH,IAAAuyH,GACA,IAAA3pG,EAAA2kG,GAAAiF,QAAAD,GAAA,QAMA,OALAX,EAAA5xH,IAAA4oB,GACA0pG,EAAAvpG,IAAAwpG,EAAAxpG,GAAAupG,EAAA9tG,IAAA+tG,EAAA/tG,GACA2tG,EAAAxF,EAAAoF,GAEAD,EAAAnF,EAAAoF,GACAA,OAIA5J,EAAA,SAAA3sD,EAAA1mC,GACA,IAAA29F,EAAAf,EAAA//H,MACA+gI,EAAA59F,EAAA,EAAA1d,KAAAmlB,IAAA,EAAAk2F,EAAA,IAAAr7G,KAAAyN,IAAA,GAAA4tG,EAAA,IACAf,EAAA1xH,IAAA0yH,GACA9I,EAAAnuD,OAAAD,GAAA3vE,KAAA,SAAA8gI,GACA,IAAAoF,EAAApF,EAAA1tG,aAAA,GAAA9V,UACA2oH,EAAAnF,EAAAoF,MAGAjF,EAAA,WACA6E,EAAAhgI,MAAA9F,KAAA,SAAAqmI,GACAA,EAAApB,kBAAA,MAGAzG,EAAA,WACAsH,EAAAhgI,MAAA9F,KAAA,SAAAqmI,GACAA,EAAApB,kBAAA,MAGA3G,EAAA,WACA,OAAAyH,EAAAjgI,OAEA2jB,EAAA4yE,GAAAz1C,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,4BAEA0D,WAAA,CACAwyG,EAAA/1D,SACA,CACAv6D,IAAA,CACAL,IAAA,MACA0a,WAAA,CAA2Bm7F,IAAA6a,KAG3B,CACArwH,IAAA,CAAkBL,IAAA,OAClB4Z,WAAAoW,GAAA,CAAA/V,GAAA,2BAAAtJ,GAAA,SAAAqI,GACA8vG,EAAAnuD,OAAA3hD,GAAAjuB,KAAA,SAAAypB,GACA,IAAA5F,EAAA4F,EAAAnM,UAAAhI,MACA+wH,EAAAb,GAAA5hG,OAAA,CACA5nC,EAAA,GACAyZ,EAAA,GACAynB,EAAA,IACAvE,EAAA,KACqB,CACrB38B,EAAA,EACAyZ,EAAA,EACAynB,EAAA,IACAvE,EAAA,KACqB,CACrB38B,EAAA,EACAyZ,EAAA,EACAynB,EAAA,IACAvE,EAAA,KACqB9U,EAAA,cAErBwiH,EAAApB,kBAAA,GACAoB,EAAA16F,GAAA,sBAAA5tC,GACA,IAAAg/B,EAAAh/B,EAAAg/B,KACAu/F,EAAAuJ,EAAA//H,MACAghI,EAAA,CACA9qI,EAAAuvB,KAAA68D,MAAArrD,EAAA/gC,EAAAsgI,GACA7mH,EAAA8V,KAAA68D,MAAArrD,EAAAtnB,EAAA6mH,GACAp/F,EAAA3R,KAAA68D,MAAArrD,EAAAG,EAAAo/F,GACA3jG,EAAApN,KAAA68D,MAAArrD,EAAApE,EAAA2jG,IAEAyJ,EAAA5xH,IAAA2yH,KAEAhB,EAAA3xH,IAAAlT,EAAAP,KAAA2lI,cAKAjqC,oBAAAn3D,GAAA,CACA46B,GAAA3wC,OAAA,IACAA,GAAA,sBAAAtJ,GAAA,SAAAqI,GACAs4G,EAAAt4G,EAAA03G,WAIA5H,EAAAruD,GAAAjmD,GACA23G,EAAA,WACA,IAAAsF,EAAAV,EAAAlgI,MACA,OACAy1B,MAAAmrG,EAAAxpG,EACA5D,OAAAotG,EAAA/tG,IAGA,OACAolG,eACAwI,YACAjK,OACA2E,WACAzC,WACAF,UACA8C,oBAIAlE,GAAA,SAAAhnG,EAAAg7C,EAAA6Q,EAAAt9D,EAAA48D,GACA,OAAAi2C,GAAA,CACAn1H,KAAA+zB,EACAg7C,KAAAjwE,EAAAP,KAAAwwE,GACA6Q,WACAvF,QAAAv7E,EAAAP,KAAAw1B,GACAuwC,SAAA,EACAixD,YAAA,GACOjzG,EAAA48D,IAEP0lD,GAAA,SAAA1jD,EAAA2jD,GACAA,EACA5jD,GAAAT,OAAAU,GAEAD,GAAApB,QAAAqB,IAGA4jD,GAAA,SAAA5lD,GACA,IAAA6lD,EAAA,SAAAv3D,EAAAw3D,EAAAC,GACAC,EAAAz3D,OAAAD,GAAA3vE,KAAA,SAAAo8H,GACA2K,GAAA3K,EAAA+K,KAEAG,EAAA13D,OAAAD,GAAA3vE,KAAA,SAAAq8H,GACA0K,GAAA1K,EAAA+K,MAGAC,EAAA33D,GAAAwtD,GAAA,0BAAA75C,GACA/gE,GAAA+gE,EAAAs5C,GAAAP,OAAA,CAA2CnzF,UAAA,KACpCo4C,IACPimD,EAAA53D,GAAAwtD,GAAA,0BAAA75C,GACA/gE,GAAA+gE,EAAAs5C,GAAAN,OAAA,CAA2CpzF,UAAA,KACpCo4C,IACP53D,EAAA4yE,GAAAz1C,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,CACA,2BACA,6BAGA0D,WAAA,CACAi0G,EAAAx3D,SACAy3D,EAAAz3D,SACAqtD,GAAA,gCAAA75C,GACA/gE,GAAA+gE,EAAAs5C,GAAAL,OAAA,CAA+CrzF,UAAA,KACpCo4C,GACX67C,GAAA,kCAAA75C,GACA/gE,GAAA+gE,EAAAs5C,GAAAL,OAAA,CAA+CrzF,WAAA,KACpCo4C,MAGX,OACA53D,YACAy9G,2BAIA,SAAAK,KACA,IAAA7kH,EAAA,GACA6E,GAAA,EACA,SAAAmM,EAAApnB,GACA,IAAAk7H,EAGA,OAFAA,EAAA9kH,EAAA0nE,SAAA7iE,GACA7E,EAAAvf,KAAAmJ,GACA,CACAA,QACAk7H,WAGA,SAAApL,IACA,GAAAqL,IACA,OAAA/kH,IAAA6E,GAGA,SAAA80G,IACA,GAAAqL,IACA,OAAAhlH,IAAA6E,GAGA,SAAAkgH,IACA,OAAAlgH,EAAA,EAEA,SAAAmgH,IACA,WAAAngH,KAAA7E,EAAA/mB,OAAA,EAEA,OACA+mB,OACAgR,MACA0oG,OACAC,OACAoL,UACAC,WAIA,IAghJAC,GAhhJAC,GAAA,SAAA3lE,GACA,IAAA4lE,EAAA5zH,GAAAguD,GACA6lE,EAAA7zH,GAAAhT,EAAArC,QACAmpI,EAAAR,KACAQ,EAAAr0G,IAAAuuC,GACA,IAAA+lE,EAAA,WACA,OAAAH,EAAA/hI,OAEAmiI,EAAA,SAAA37H,GACAu7H,EAAA1zH,IAAA7H,IAEA47H,EAAA,WACA,OAAAJ,EAAAhiI,MAAA1G,KAAA,WACA,OAAAyoI,EAAA/hI,OACS,SAAAqiI,GACT,OAAAA,KAGAC,EAAA,SAAAn5G,GACA,IAAAo5G,EAAAC,EAAAr5G,GAGA,OAFAs5G,IACAT,EAAA3zH,IAAAlT,EAAAP,KAAA2nI,IACAA,EAAAvnC,KAEAwnC,EAAA,SAAAr5G,GACA,OACAA,OACA6xE,IAAA7lG,EAAAwvH,IAAAC,gBAAAz7F,KAGAu5G,EAAA,SAAAl8H,GACArR,EAAAwvH,IAAAoC,gBAAAvgH,EAAAw0F,MAEA2nC,EAAA,SAAAC,GACA9G,GAAA5hI,KAAA0oI,EAAAF,IAEAD,EAAA,WACAT,EAAAhiI,MAAA9F,KAAAwoI,GACAV,EAAA3zH,IAAAlT,EAAArC,SAEA+pI,EAAA,SAAA15G,GACA,IAAA2vB,EAAA0pF,EAAAr5G,GACAg5G,EAAArpF,GACA,IAAA4oF,EAAAO,EAAAr0G,IAAAkrB,GAAA4oF,QAEA,OADAiB,EAAAjB,GACA5oF,EAAAkiD,KAEA8nC,EAAA,SAAA35G,GACA,IAAA2vB,EAAA0pF,EAAAr5G,GAEA,OADA64G,EAAA3zH,IAAAlT,EAAAP,KAAAk+C,IACAA,EAAAkiD,KAEA+nC,EAAA,SAAAC,GACA,OAAAhB,EAAAhiI,MAAA1G,KAAA,aACS,SAAA+oI,GACTQ,EAAAR,EAAAl5G,MACA65G,OAGA1M,EAAA,WACA,IAAA2M,EAAAhB,EAAA3L,OAEA,OADA6L,EAAAc,GACAA,EAAAjoC,KAEAu7B,EAAA,WACA,IAAA0M,EAAAhB,EAAA1L,OAEA,OADA4L,EAAAc,GACAA,EAAAjoC,KAEAkoC,EAAA,WACA,IAAA7B,EAAAY,EAAAN,UACAL,EAAAW,EAAAL,UACA,OACAP,cACAC,gBAGA,OACAY,eACAC,eACAU,eACAT,eACAE,kBACAQ,eACAC,iBACAN,mBACAnM,OACAC,OACA2M,qBAIAC,GAAA,SAAAhkH,EAAAo8D,GACA,IAAA/0E,EAAAs7H,GAAA3iH,EAAA8jH,cACAzM,EAAA,SAAA3sD,EAAAhxD,GACA,IAAAsqB,EAAAtqB,EAAAC,QAAAqqB,YACAg0F,EAAAX,KAAA3sD,EAAA1mC,IAEAi+F,EAAA,SAAAv3D,GACA,IAAAu5D,EAAA58H,EAAA08H,mBACAG,EAAAjC,uBAAAv3D,EAAAu5D,EAAA/B,YAAA+B,EAAA9B,aACA9kH,GAAAqtD,EAAAotD,GAAAz8B,gBAAA,CACAn+F,KAAA46H,GAAAH,YACA9gI,MAAAotI,EAAA/B,eAGAiC,EAAA,SAAAz5D,GACAw5D,EAAAjC,uBAAAv3D,GAAA,OAEAysD,EAAA,SAAAzsD,EAAAstC,GACA,IAAAnc,EAAAx0F,EAAA8vH,OACAmK,EAAA52D,EAAAmxB,GAAAjoB,KAAA,SAAAwwD,GACAC,EAAA35D,GACAu3D,EAAAv3D,MAGA0sD,EAAA,SAAA1sD,EAAAstC,GACA,IAAAnc,EAAAx0F,EAAA+vH,OACAkK,EAAA52D,EAAAmxB,GAAAjoB,KAAA,SAAAwwD,GACAC,EAAA35D,GACAu3D,EAAAv3D,MAGA45D,EAAA,SAAA7a,GACA,OAAAA,EAAAtC,UAEAod,EAAA,SAAA75D,GACArtD,GAAAqtD,EAAAotD,GAAAz8B,gBAAA,CACAn+F,KAAA46H,GAAA/6C,UACAlmF,MAAA,MAGAwtI,EAAA,SAAA35D,GACA85D,EAAAjI,eAAA7xD,GAAA3vE,KAAA,SAAA0pI,GACAtmD,GAAAT,OAAA+mD,KAEApnH,GAAAqtD,EAAAotD,GAAAz8B,gBAAA,CACAn+F,KAAA46H,GAAAp6C,SACA7mF,MAAA,MAGAyqI,EAAA,SAAA52D,EAAAm7C,GAEA,OADA0e,EAAA75D,GACAstD,EAAAsJ,UAAA52D,EAAAm7C,IAEA6e,EAAA,SAAAh6D,EAAA1gD,EAAA7uB,EAAAqkB,EAAA+3G,GAEA,OADAgN,EAAA75D,GACA+9C,GAAAz+F,GAAA4pD,KAAAz4E,GAAAy4E,KAAA0wD,GAAA1wD,KAAAp0D,GAAAo0D,KAAA,SAAAioB,GACA,OAAAylC,EAAA52D,EAAAmxB,GAAAjoB,KAAA,SAAAwwD,GAIA,OAHAnC,EAAAv3D,GACA6sD,IACA8M,EAAA35D,GACA05D,MAESjf,MAAA,SAAAtoH,GAGT,OAFA7G,EAAAiM,QAAAF,IAAAlF,GACAwnI,EAAA35D,GACA7tE,KAGA8nI,EAAA,SAAAj6D,EAAAvvE,EAAAo8H,GACA,IAAAvtG,EAAA3iB,EAAA07H,eAAA/4G,KACAxK,EAAA,SAAAwK,GACA,OAAA3iB,EAAA87H,gBAAAn5G,IAEA06G,EAAAh6D,EAAA1gD,EAAA7uB,EAAAqkB,EAAA+3G,IAEAqN,EAAA,SAAAl6D,EAAAvvE,GACA,IAAA6uB,EAAA3iB,EAAA47H,eAAAj5G,KACAxK,EAAA,SAAAwK,GACA,OAAA3iB,EAAAs8H,aAAA35G,IAEA06G,EAAAh6D,EAAA1gD,EAAA7uB,EAAAqkB,EAAAvpB,IAEA4uI,EAAA,SAAAn6D,EAAAvvE,EAAAo8H,GACA,IAAAvtG,EAAA3iB,EAAA07H,eAAA/4G,KACAxK,EAAA,SAAAwK,GACA,IAAA6xE,EAAAx0F,EAAAq8H,aAAA15G,GAEA,OADAs5G,EAAA54D,GACAmxB,GAEA6oC,EAAAh6D,EAAA1gD,EAAA7uB,EAAAqkB,EAAA+3G,IAEA5gI,EAAA,SAAA+zE,EAAAhxD,GACA,IAAAmqH,EAAA,WACAP,EAAA54D,GACA,IAAA6sD,EAAA79G,EAAAC,QAAA49G,OACAA,KAEAlwH,EAAAu8H,eAAAC,IAEAP,EAAA,SAAA54D,GACA,IAAAo6D,EAAAz9H,EAAA07H,eAAAlnC,IAGA,OAFAx0F,EAAAi8H,mBACArB,EAAAv3D,GACAo6D,GAEAt2D,EAAA,SAAA9D,GACA,IAAAo6D,EAAAxB,EAAA54D,GACA42D,EAAA52D,EAAAo6D,GAAAlxD,KAAA,SAAAwwD,GACAC,EAAA35D,MAGA4sD,EAAA,SAAA5sD,EAAAhxD,GACA80D,EAAA9D,GACA,IAAA6sD,EAAA79G,EAAAC,QAAA49G,OACAA,IACAS,EAAAuB,YAEAr6G,EAAA,SAAAwrD,EAAAhxD,GACA,OAAAirH,EAAAj6D,EAAAhxD,EAAAC,QAAAuF,YAAAjpB,IAEAuhI,EAAA,SAAA9sD,EAAAhxD,GACA,OAAAkrH,EAAAl6D,EAAAhxD,EAAAC,QAAAuF,cAEAu4G,EAAA,SAAA/sD,EAAAhxD,GACA,OAAAmrH,EAAAn6D,EAAAhxD,EAAAC,QAAAuF,YAAAxF,EAAAC,QAAA49G,SAEAS,EAAAyI,GAAAzgH,EAAA8jH,aAAAjoC,KACAqoC,EAAAlC,GAAA5lD,GACAooD,EAAAzM,GAAAC,EAAA57C,GACAm7C,EAAA,SAAA7sD,EAAAhxD,GACAyqH,EAAAz5D,GACA,IAAAxrD,EAAAxF,EAAAC,QAAAuF,YACAq4G,EAAA79G,EAAAC,QAAA49G,OACAr4G,EAAA/kB,KAAA,WACAo9H,KACS,SAAAr4G,GACTylH,EAAAj6D,EAAAxrD,EAAAq4G,MAGA,OACAlnH,IAAA,CACAL,IAAA,MACA0a,WAAA,CAAuB2zC,KAAA,iBAEvBlwC,WAAA,CACAq2G,EAAA1L,aAAAluD,SACAotD,EAAAc,aAAAluD,SACAs5D,EAAA1/G,WAEAoF,WAAAoW,GAAA,CACAwf,GAAAv1B,OAAA,CACAuwB,MAAA,CACA2C,KAAA,SACAR,SAAA,WACA,OAAAt1C,EAAA07H,mBAIA94G,GAAA,sBACA5P,GAAAq9G,GAAAP,UACA98G,GAAAq9G,GAAAN,UACA/8G,GAAAq9G,GAAAL,UACAh9G,GAAAq9G,GAAAJ,UACAj9G,GAAAq9G,GAAA/gI,WACA0jB,GAAAq9G,GAAAx4G,eACA7E,GAAAq9G,GAAAF,mBACAn9G,GAAAq9G,GAAAD,oBACAp9G,GAAAq9G,GAAAH,YAEA7Y,GAAA/iH,WAKAopI,GAAA,SAAA/kH,EAAAkJ,GACA,IAAAmsB,EAAAv6C,EAAAklB,EAAAq1B,QAAA,SAAAxnC,GACA,OACAwC,IAAA,CACAL,IAAA,SACAnZ,MAAAgX,EAAAhX,MACAo6B,UAAApjB,EAAAsC,SAIA60H,EAAAhlH,EAAAvC,KAAA3iB,IAAA,SAAAc,GACA,OAAAsJ,GAAA,eAAAtJ,KACOtB,MAAA,IACP,OACAslB,IAAAI,EAAAJ,IACAvP,IAAA,CACAL,IAAA,SACAya,QAAAzK,EAAAilH,cACAv6G,WAAA1K,EAAAklH,kBAEA/2G,WAAAknB,EACAzrB,WAAAm2B,GAAA//B,EAAAmlH,iBAAA,CACAvpE,GAAA3xC,OAAA,IACAu1B,GAAAv1B,OAAA,CACAuwB,MAAAviD,EAAA,CACAklD,KAAA,SACAR,SAAA,SAAAitC,GACA,OAAAh5D,GAAAg5D,EAAAvxE,YAEAqkC,SAAA,SAAAktC,EAAAlvC,GACA,IAAA0qF,EAAAhmI,EAAA4gB,EAAAq1B,QAAA,SAAAp5C,GACA,OAAAA,EAAApF,QAAA6jD,IAEA0qF,EAAA/qI,UACAw2B,GAAA+4D,EAAAvxE,UAAAqiC,KAGasqF,SAKbK,GAAAj/E,GAAA,CACAlpD,KAAA,aACAopD,aAAA,CACAr5C,GAAA,WACA0yC,GAAA,oBACAic,GACApc,KAEAnxC,GAAA,oBACAA,GAAA,uBACAR,GAAA,SAEA01C,QAAAwhF,KAGAO,GAAA,SAAAp8G,EAAAkzD,GACA,IAAAmpD,EAAAzqI,EAAAouB,EAAA00B,MAAA,SAAA3rB,GACA,OACA9hB,KAAAisE,EAAAtnD,UAAA7C,EAAA9hB,MACAtZ,MAAAo7B,EAAAp7B,SAGAyvG,EAAAp9E,EAAAlnB,MAAAlH,IAAA,SAAAkH,GACA,OAAA8kG,GAAA9kG,EAAAo6E,KAEAmqB,EAAA7J,GAAA7iF,QAAAzS,MAAA,CACAiJ,IAAA,GACA60H,iBAAA,CAA2BvmI,KAAAuqB,EAAAvqB,MAC3B02C,QAAAkwF,EACAhiF,QAAA8hF,GACAF,iBAAAnlG,GAAA,CACAm+C,GAAAl0D,OAAA,CAA4B6yD,SAAA5zD,EAAA4zD,WAC5BspB,GAAAn8E,OAAA,IACAA,GAAA,oBAAA5P,GAAAe,KAAA,SAAA3B,EAAAtd,GACAkhB,GAAA5D,EAAAyhF,GAAA,CAAoDh+F,KAAAgsB,EAAAhsB,eAIpDsoI,EAAAt8G,EAAAvqB,KAAA,EAAA3C,EAAArC,OAAAqC,EAAAP,KAAA,CACA4U,IAAA,CACAL,IAAA,MACAya,QAAA,6BACAwG,UAAA85C,GAAA,eAAAqR,EAAAtR,UAGA26D,EAAA,CACAp1H,IAAA,CACAL,IAAA,MACAya,QAAA,qBAEA0D,WAAA7uB,EAAA,CACA,CAAAinG,GACAi/B,EAAAlqI,aAGA,OAAAohG,GAAA/6C,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,qBAEA0D,WAAA7uB,EAAA,CACAgnG,EAAAhrG,UACA,CAAAmqI,KAEAppC,gBAAAr8D,GAAA,CAAAm+C,GAAAl0D,OAAA,CACA6yD,SAAA5zD,EAAA4zD,SACAW,WAAA,SAAAz0D,GACA0zE,GAAAF,SAAAxzE,GAAAjuB,KAAAojF,GAAApB,UAEAY,UAAA,SAAA30D,GACA0zE,GAAAF,SAAAxzE,GAAAjuB,KAAAojF,GAAAT,gBAMA68B,GAAA,SAAArxF,EAAAkzD,GACA,IAAAkqB,EAAAp9E,EAAAlnB,MAAAlH,IAAA,SAAAkH,GACA,OAAA8kG,GAAA9kG,EAAAo6E,KAEAspD,EAAA,CACAvnD,GAAAl0D,OAAA,CAA0B6yD,SAAA5zD,EAAA4zD,WAC1BzjB,GAAApvC,OAAA,CACAkzB,KAAA,YACAyR,UAAA,IAAA1lC,EAAAy8G,UACA32E,iBAAA,IAAA9lC,EAAAy8G,UACA7pH,QAAA,SAAAkN,GAEA,OADA7L,GAAA6L,EAAAsyE,IACAt/F,EAAAP,MAAA,MAGAwuB,GAAA,oBACA5P,GAAA9S,KAAA,SAAAkS,EAAAtd,GACAkhB,GAAA5D,EAAAyhF,GAAA,CAAkDh+F,KAAAgsB,EAAAhsB,SAElDmd,GAAAuB,KAAA,SAAAnC,EAAAtd,GACAkhB,GAAA5D,EAAAyhF,GAAA,CAAkDh+F,KAAAgsB,EAAAhsB,WAGlDkpG,GAAAn8E,OAAA,KAEA27G,EAAA18G,EAAA48E,WAAAhrG,IAAA,SAAA+qI,GACA,OAAAhgC,GAAA57E,OAAA,CACA4lD,QAAA,SAAAtoE,GACA,OAAA0a,GAAA1a,EAAA8Q,YAEAmsF,aAAA,cACA16F,UAAA,CACAo7F,SAAA,SAAA39F,GACA,IAAA3L,EAAA4jD,GAAA7C,SAAAp1C,GACA1C,EAAAghI,EAAA/7H,UAAAlO,GACA,OAAAuoG,GAAAvkG,MAAA,IAAAiF,EAAA/H,EAAAjG,MAAA+E,GAAAkB,EAAAN,MAAAqI,KAEA6gG,eAAAmgC,EAAAngC,oBAGOpqG,UACPkmD,EAAAt4B,EAAAs4B,YAAArnD,KAAAvD,EAAA,IAAyD,SAAA4B,GACzD,OAAgBgpD,YAAA46B,EAAAtnD,UAAAt8B,MAEhBstI,EAAA58G,EAAA48G,UAAA3rI,KAAAvD,EAAA,IAAqD,SAAAumD,GACrD,OAAgB4oF,UAAA5oF,KAEhB8/C,EAAAhlG,IAAA,GAAgDupD,GAAAskF,GAChDv/B,EAAA7J,GAAA7iF,QAAAzS,MAAA,CACA4I,KAAA,IAAAkZ,EAAAy8G,UAAA,mBACA1oC,kBACAE,aAAA,CAAAj0E,EAAA88G,WACAjpC,gBAAA/8D,GAAA1gC,EAAA,CACAomI,EACAE,KAEA/oC,eAAA,EACAt5C,QAAA85C,KAEAmJ,EAAAt9E,EAAA+8G,KAAA,kCACAC,EAAA1/B,EAAAnvG,OAAA6xB,EAAAi9G,UAAA,iCACA1/B,EAAA,CAAAtoB,GAAAl0D,OAAA,CACA6yD,SAAA5zD,EAAA4zD,SACAW,WAAA,SAAAz0D,GACA0zE,GAAAF,SAAAxzE,GAAAjuB,KAAAojF,GAAApB,UAEAY,UAAA,SAAA30D,GACA0zE,GAAAF,SAAAxzE,GAAAjuB,KAAAojF,GAAAT,YAGA,OAAA2oB,GAAAC,EAAAC,EAAA2/B,EAAAz/B,IAEA2/B,GAAA,SAAAl9G,EAAAkzD,GACA,OAAAm+B,GAAA,CACAr9G,KAAAgsB,EAAAhsB,KACAyoI,WAAA,EACA3jI,MAAAknB,EAAAlnB,MACA8jI,UAAA58G,EAAA48G,UACAtkF,YAAAt4B,EAAAs4B,YACAykF,MAAA,EACAnpD,SAAA5zD,EAAA4zD,SACAkpD,UAAA,gBACAlgC,WAAA9pG,EAAArC,OACAwsI,UAAAj9G,EAAAi9G,WACO/pD,IAEPiqD,GAAA,SAAAn9G,EAAAkzD,GACA,OAAAm+B,GAAA,CACAr9G,KAAAgsB,EAAAhsB,KACAyoI,WAAA,EACA3jI,MAAAknB,EAAAlnB,MACA8jI,UAAA9pI,EAAArC,OACA6nD,YAAAt4B,EAAAs4B,YACAykF,MAAA,EACAnpD,SAAA5zD,EAAA4zD,SACAkpD,UAAA,eACAlgC,WAAA9pG,EAAArC,OACAwsI,UAAAj9G,EAAAi9G,WACO/pD,IAGPkqD,GAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAF,EAAAG,OAAAD,QACAE,EAAAF,EAAAliE,MAAAgiE,EAAAC,GACA,OAAArnH,GAAA,CACA9E,GAAAksH,EAAA5sH,MAAAgtH,GACA/lH,GAAA,WACA,OAAA4lH,EAAAh4D,YAEAn3E,OAAAkvI,EAAAK,YAAA9rI,IAAA,SAAAhC,GACA,OAAAuhB,GAAAvhB,EAAA,WACA,OAAA0tI,EAAAh4D,cAEOl0E,MAAA,OAGPusI,GAAA3uI,OAAAsD,OAAA,CACAmqB,OAAA2gH,KAGA53D,GAAA,SAAAo4D,GACA,IAAAz/H,EAAA2H,GAAA,MACAya,EAAA,WACA,OAAgB8kD,MAAA,OAAAlnE,EAAAxG,MAAA,gBAEhBkmI,EAAA,SAAA3uI,GACAiP,EAAA6H,IAAA9W,IAEAo2E,EAAA,WACA,IAAAp2E,EAAAiP,EAAAxG,MACA,OAAAzI,GACAA,EAAAo2E,UAGA,OAAAhlD,GAAA,CACAC,YACAs9G,WACAv4D,YAGAw4D,GAAA,SAAA99G,GACA,OAAAA,EAAAw9G,OAAAD,QAAAp/H,MAAA6hB,IAGA+9G,GAAA/uI,OAAAsD,OAAA,CACAkzE,YACAnlD,KAAAy9G,KAGAE,GAAA,SAAAC,EAAAX,GACA,IAAAY,EAAAD,EAAAT,OACAW,EAAA14D,GAAAw4D,EAAAG,SAAAF,EAAAvwD,OAEA,OADA2vD,EAAAO,SAAAM,GACA,SAAA5tH,EAAAC,GACA2tH,EAAA34D,SAAAj1D,EAAAC,GACA0tH,EAAAG,WACA7tH,EAAAiF,SAIA6oH,GAAA,CACAt6H,GAAA,SAAAlB,GAAA,QACA0iE,SAAA,CACAzhE,GAAA,SACAoB,GAAA,gBACA9O,GAAA,WACAglE,MAAA2iE,GACA7/H,MAAAqnE,SAIArgE,GAAA,iBACAR,GAAA,eACAiuB,GAAA,aAGA2rG,GAAAtnG,GAAA,CACAt8B,OAAA2jI,GACAtqI,KAAA,YACA0hC,OAAAioG,GACAx/H,MAAA4/H,KAGAS,GAAA,SAAAp7B,EAAA/kG,EAAA0qB,GACA,IAAA01G,EAAAnoF,GAAA7C,SAAA1qB,GACAutB,GAAA9C,SAAAn1C,EAAAogI,GACAC,GAAArgI,IAEAsgI,GAAA,SAAAtgI,EAAApR,GACA,IAAAyoB,EAAArX,EAAA8Q,UACAxhB,EAAA+5B,GAAAhS,GACA3O,EAAA2O,EAAAvO,MACA,WAAA0U,GAAAnG,EAAA,SACAzoB,EAAA8Z,EAAApZ,IAGA+wI,GAAA,SAAArgI,GACAsgI,GAAAtgI,EAAA,SAAA0I,EAAApZ,GACA,OAAAoZ,EAAA6sF,kBAAAjmG,EAAAH,OAAAG,EAAAH,WAGAoxI,GAAA,SAAAvgI,EAAA+hC,GACAu+F,GAAAtgI,EAAA,SAAA0I,EAAApZ,GACA,OAAAoZ,EAAA6sF,kBAAAxzD,EAAAzyC,EAAAH,WAGAqxI,GAAA,SAAAz7B,EAAA/kG,EAAA0qB,GACA,GAAAq6E,EAAA07B,YAEO,CACP,IAAAr4B,EAAAnwD,GAAA7C,SAAAp1C,GACA0gI,EAAA37B,EAAA47B,eAAAv4B,GACA7sC,EAAAtjB,GAAA7C,SAAA1qB,GACAk2G,EAAA77B,EAAA47B,eAAAplE,GACA,WAAAqlE,EAAApvI,QAAAkvI,GAAAjsI,EAAAP,KAAA,WACAisI,GAAAp7B,EAAA/kG,EAAA0qB,GACA61G,GAAAvgI,EAAA0gI,EAAAvxI,UACSsF,EAAArC,OATT,OAAAqC,EAAArC,QAaAyuI,GAAAxxI,EAAA,+BAEAyxI,GAAA,SAAAroH,EAAAmO,EAAAjF,EAAAm6B,GACA,IAAAilF,EAAA,SAAAt/G,EAAAtP,EAAA6uH,GACAvoH,EAAAwoH,WAAAt5H,KAAA,GACA,IAAAmqC,EAAAmuD,GAAAT,WAAA/9E,EAAA,WACA,GAAAwyB,GAAAnB,OAAAhB,GACA2N,GAAAL,WAAAtN,GAAAt+C,KAAA,SAAAm+D,GACA/P,GAAAT,eAAAwQ,GAAA/+D,KAAA,WACAouI,EAAArvE,IACa,WACbt7C,GAAAy7B,EAAA6f,EAAA7gD,UAAA,UAAAqB,WAGS,CACT,IAAA4uF,EAAA,SAAAjvD,GACA2N,GAAAL,WAAAtN,GAAAt+C,KAAAwtI,IAEAlgC,GAAAroF,EAAA6nF,EAAA7+E,KAAAqwB,EAAAgK,EAAAilD,EAAAvF,GAAAqF,gBAAAvnG,IAAA5K,KAGAwyI,EAAA7rC,GAAA58E,GACA6nF,EAAA,SAAA7+E,GACA,gBAAAm/E,GACA,OAAAA,EAAArtG,IAAA,SAAA2iB,GACA,IAAAyjD,EAAAtgE,GAAA6c,EAAAyjD,OACAtjB,EAAA5iD,GAAAkmE,EAAA,SAAAhI,GACA,OAAA/9D,EAAA+9D,EAAAtb,MAAA,SAAA3rB,GACA,eAAAA,EAAA70B,SAGAo/C,EAAAgD,GAAAjF,SAAAvxB,GAIA,OAHAwzB,EAAAmB,OAAA7iD,EAAA8iD,EAAA,SAAA3rB,GACA,OAAAA,EAAAxU,QAEAA,MAIAmM,EAAA,CACAgyC,GAAA3xC,OAAA,IACAu1B,GAAAv1B,OAAA,CACAo0B,WAAAr+B,EAAAq+B,WACA7D,MAAAviD,EAAA,CACAklD,KAAA,UACAoB,WAAA,SAAAv1B,GACA,OAAA4H,GAAA5H,EAAA3Q,YAEAmmC,iBAAA,SAAAd,GACA,OACA7mD,MAAA6mD,EACAO,KAAA,KAGAvB,SAAA,SAAA1zB,EAAAvL,GACAoT,GAAA7H,EAAA3Q,UAAA2H,EAAAssF,MAAA47B,eAAAzqH,MAEWuC,EAAAwqE,YAAA1vF,IAAA,SAAA4mB,GACX,OAAAxc,GAAA,eAAAwc,KACWpnB,MAAA,OAEXmtI,GAAAx9G,OAAA,CACAy8G,OAAA,CACAvpF,KAAA,WACA05B,MAAA72D,EAAA0oH,aACAnB,WAAA,GAEAD,SAAA,SAAA7tH,EAAAC,GACA,IAAA2/B,EAAAmuD,GAAAT,WAAAttF,EAAA,WACAkvH,EAAA/sE,GAAAR,UAAA3hD,GACA,GAAAkvH,GACA/3G,GAAAnX,EAAApB,WAAA3hB,QAAAspB,EAAA4wD,SAAA,CACA,IAAAg4D,EAAA5hF,GAAAL,WAAAtN,GAAAr+C,KAAA,SAAAk+D,GACA,OAAA/P,GAAAT,eAAAwQ,GAAAp+D,IAAA0kD,GAAA7C,YAEA38B,EAAAwoH,WAAAt5H,KAAA,GACA,IAAAo5F,EAAA,SAAAugC,GACA7hF,GAAAL,WAAAtN,GAAAt+C,KAAA,SAAAm+D,GACA0vE,EAAAzuI,KAAA,WACA6lB,EAAAssF,MAAA07B,aACA7+E,GAAArB,eAAAoR,IAEqB,SAAA4vE,GACrB3/E,GAAAb,YAAA4Q,EAAA,SAAAjnC,GACA,IAAA01G,EAAAnoF,GAAA7C,SAAA1qB,GACA,OAAA01G,EAAA9wI,QAAAiyI,EAAAjyI,QAEAsyD,GAAAT,eAAAwQ,GAAAr+D,QAAA,WAEA,OADAsuD,GAAArB,eAAAoR,GACAl9D,EAAArC,cAKA0uG,GAAAroF,EAAA6nF,EAAApuF,KAAA4/B,EAAAgK,EAAAilD,EAAAvF,GAAAqF,gBAAAvnG,IAAA5K,KAIA2wI,YAAAzqH,OAEAk9C,GAAApvC,OAAA,CACAkzB,KAAA,UACAqb,OAAA,SAAAxvC,EAAAtP,GAEA,OADA4uH,EAAAt/G,EAAAtP,EAAAyvC,GAAArB,gBACA9rD,EAAAP,MAAA,IAEAsyD,SAAA,SAAA/kC,GACA,IAAAqwB,EAAAmuD,GAAAT,WAAA/9E,EAAA,WACA,OAAAwyB,GAAAnB,OAAAhB,IACAmC,GAAAtB,MAAAb,GACAr9C,EAAAP,MAAA,IAEAO,EAAArC,QAEA4+D,KAAA,SAAAvvC,EAAAtP,GAEA,OADA4uH,EAAAt/G,EAAAtP,EAAAyvC,GAAAlB,eACAjsD,EAAAP,MAAA,IAEAoyD,QAAA,SAAA7kC,GACA,IAAAqwB,EAAAmuD,GAAAT,WAAA/9E,EAAA,WACA+/G,EAAAvtF,GAAAnB,OAAAhB,GACA,GAAA0vF,IAAA/oH,EAAAwoH,WAAA3nI,MACA,OAAAmmD,GAAAL,WAAAtN,GAAAr+C,KAAA,SAAAk+D,GACA,OAAA/P,GAAAT,eAAAwQ,KACep+D,IAAA,SAAAm3B,GAEf,OADA5U,GAAA2L,EAAAo/G,KAAA,CAA+Cn2G,UAC/C,IAGA,IAAA09E,EAAAnwD,GAAA7C,SAAA3zB,GAMA,OALA7L,GAAA6L,EAAA7M,MACA6D,EAAAmmD,UAAA9sB,EAAArwB,EAAA2mF,GACAo5B,GACAvtF,GAAAtB,MAAAb,GAEAr9C,EAAAP,MAAA,MAIAiiE,GAAAzzC,OAAA,CACAkyC,YAAAn8C,EAAAyb,QAAAutG,UACA/sE,KAAA,CAAiB9e,KAAA,cAEjBqqD,GAAAv9E,OAAA,CACA66C,OAAA,CACAzrB,QAAA,SAAAvT,GACA,OAAAujE,GAAArpF,EAAA8lB,EAAA,CACA8T,OAAA,WACA,OAAA8jB,GAAAh3B,GAAAZ,IAEAqU,QAAA,WACA,OAAAujB,GAAArpB,IAAAvO,UAMA7b,GAAA,mBACAnJ,GAAA,SAAAkI,GACA,IAAAs/E,EAAAryG,EACA2yG,GAAA5oF,EAAA6nF,EAAA7+E,KAAAq6B,EAAAilD,EAAAvF,GAAAqF,gBAAAvnG,IAAA5K,KAEAokB,GAAA+tH,KAAA,SAAAp/G,EAAAg0B,GACA,IAAA3D,EAAAmuD,GAAAT,WAAA/9E,EAAA,WACA0+G,GAAA1nH,EAAAssF,MAAAtjF,EAAAg0B,EAAArjC,QAAAsY,QACA9U,GAAA6L,EAAA7M,MACA6D,EAAAipH,cAAAjgH,EAAAqwB,EAAA2D,EAAArjC,QAAAsY,OAAAutB,GAAA7C,SAAA3zB,IACAwyB,GAAAtB,MAAAb,GACAuuF,GAAA5+G,MAEA3xB,OAAA2oB,EAAAkpH,cAAA,CAAA7uH,GAAAsB,KAAA,SAAAwtH,GACA,IAAA9vF,EAAAmuD,GAAAT,WAAAoiC,EAAA,WACA3zH,GAAA6jC,EAAAhhC,WAAAte,UACAyhD,GAAAtB,MAAAb,MAEW,MAEX,OACAz5B,IAAAI,EAAAJ,IACAvP,IAAA2sF,GAAAt6F,GAAAsd,EAAA,CACAi9E,gBAAA,CACA5+B,KAAA,WACA+qE,oBAAA,OACA7qE,gBAAA,WAGA30C,WAAA3xB,IAAA,GAAwCwwI,GAAA1oF,GAAA//B,EAAAqpH,oBAAAz/G,IACxCoD,WAAAhN,EAAAgN,aAIAs8G,GAAA1yI,EAAA,CACAiX,GAAA,YACAZ,GAAA,SACAoB,GAAA,cACAA,GAAA,oBACAutB,GAAA,UACAvtB,GAAA,aAAArS,EAAAP,MACA4S,GAAA,qBAAAzX,EAAA,KACAyX,GAAA,UAAArS,EAAArC,QACA0U,GAAA,iBACAS,GAAA,WAAgC,CAChCT,GAAA,0BAAAs5H,GACA,YAAAhtI,IAAAgtI,EAAA1pF,WAAAtjD,IAAAgtI,EAAA1pF,KAAA9tC,KAAAw3H,EAAA1pF,KAAA9tC,KAAAw3H,EAAA9wI,QAEAwX,GAAA,kBACAA,GAAA,2BAEAutB,GAAA,cACAC,GAAA,aACAD,GAAA,iBACAvtB,GAAA,mBACAA,GAAA,sBACAA,GAAA,kBACAA,GAAA,iBACAA,GAAA,kBACAA,GAAA,oBACAotB,GAAA,eACA5tB,GAAA,eACA8xC,GAAA,uBACAic,GACApc,GACAioF,GACApuE,GACAqE,GACA8pC,KAEAz4F,GAAA,wBACA,OAAAC,IAAA,MAEA3X,OAAAslG,MAAAtlG,OAAAoyG,OACA8/B,GAAA3yI,EAAA,CAAAksD,GAAA,CACAt4C,OAAA,CAAAgxB,MACAt+B,KAAA,OACA+oC,UAAA,SAAAjmB,GACA,OACAmgD,WAAA,EACAtY,YAAA,SAAAqR,EAAAjnC,GACAjS,EAAAwoH,WAAA3nI,MAOAq4D,EAAAx7C,YAAAmC,SAAAG,EAAAJ,KAAA7kB,KAAA,SAAAwM,GACAwgI,GAAA/nH,EAAAssF,MAAA/kG,EAAA0qB,GAAA93B,KAAA,WACA,OAAAgvD,GAAAjsC,YAAAg8C,EAAAjnC,IACmB,SAAAh7B,GACnB,OAAAA,QAVAiiE,EAAAx7C,YAAAmC,SAAAG,EAAAJ,KAAA7kB,KAAA,SAAAwM,GACAyY,EAAAssF,MAAAk9B,oBACA9B,GAAA1nH,EAAAssF,MAAA/kG,EAAA0qB,KAYAjS,EAAAwoH,WAAAt5H,KAAA,IAEAi3D,UAAA,SAAAjN,EAAAjnC,GACA,OAAAinC,EAAAx7C,YAAAmC,SAAAG,EAAAJ,KAAAvjB,WAAAvB,IAAA,SAAAquI,GAEA,OADA9rH,GAAA8rH,EAAAf,KAAA,CAAoDn2G,UACpD,KAGAgsC,QAAA,SAAA/E,EAAAjnC,GACAjS,EAAAwoH,WAAAt5H,KAAA,GACAgqD,EAAAx7C,YAAAmC,SAAAG,EAAAJ,KAAA7kB,KAAA,SAAAwM,GACAyY,EAAAssF,MAAAk9B,oBACA9B,GAAA1nH,EAAAssF,MAAA/kG,EAAA0qB,YAQAw3G,GAAAhjF,GAAA,CACAvpD,KAAA,YACAopD,aAAAgjF,KACA9iF,WAAA+iF,KACAhmF,QAAA8kF,KAGAqB,GAAA,SAAAz/H,GACA,IAAA+5F,EAAA,WACA,OAAA0lC,GAAAz/H,EAAA+5F,aAEA2lC,EAAA,SAAAxzI,GACA,OAAAuzI,GAAAz/H,EAAAjP,KAAA,SAAA4uI,GACA,OAAAA,EAAAzvI,KAAA,SAAA0C,GACA,OAAAsnG,GAAAvkG,KAAA9C,EAAAN,MAAAK,KACW,SAAAtD,GACX,OAAApD,EAAAoD,SAIAswI,EAAA,SAAA1zI,GACA,OAAAuzI,GAAAz/H,EAAAnP,IAAA,SAAA8uI,GACA,OAAAA,EAAA5uI,KAAA7E,OAGA2zI,EAAA,SAAA3zI,GACA,OAAAuzI,GAAAz/H,EAAAnP,IAAA,SAAA8uI,GACA,OAAAA,EAAA9uI,IAAA3E,OAGA+F,EAAA,SAAA/F,GACA,OAAAuzI,GAAAz/H,EAAAnP,IAAA,SAAA8uI,GACA,OAAAA,EAAA1tI,SAAA/F,OAGA4zI,EAAA,SAAAC,EAAAC,GACA,OAAAhgI,EAAAnP,IAAA,SAAA4K,GACA,OAAAA,EAAAvL,KAAA6vI,EAAAC,MAGAC,EAAA,SAAAr8D,EAAAs8D,GACA,OAAAT,GAAAvlC,GAAA5hG,GAAA,SAAA0mF,GACA,IAAAmhD,GAAA,EACA77D,EAAAv4E,EAAA83E,WAAA,WACAs8D,GAAA,EACAnhD,EAAAnsF,EAAAN,MAAA2tI,OACWt8D,GACX5jE,EAAApJ,IAAA,SAAAgE,GACAulI,IACAp0I,EAAAy4E,aAAAF,GACA0a,EAAApkF,UAKA,OAAA5M,IAAA,GAAiCgS,GAAA,CACjC+5F,WACA2lC,aACAE,aACAC,YACA5tI,WACA6tI,aACAG,iBAGAG,GAAA,SAAAC,GACA,OAAAZ,GAAAvlC,GAAA5hG,GAAA+nI,KAEAC,GAAA,SAAA1zI,GACA,OAAA6yI,GAAAvlC,GAAAvkG,KAAA9C,EAAAjG,YAEA2zI,GAAA,SAAAhuI,GACA,OAAAktI,GAAAvlC,GAAAvkG,KAAA9C,EAAAN,YAEAiuI,GAAA,SAAA5lI,GACA,OAAA6kI,GAAAvlC,GAAAvkG,KAAAiF,KAEA6lI,GAAA,SAAAC,GACA,OAAAjB,GAAAiB,EAAA7vI,IAAAgC,EAAAjG,SAEA+zI,GAAA,SAAAjqC,GACA,OAAA0pC,GAAA,SAAAQ,GACAlqC,EAAA/sB,KAAA,SAAA/8E,GACAg0I,EAAA/tI,EAAAjG,WACS,SAAA2F,GACTquI,EAAA/tI,EAAAN,eAIAsuI,GAAA,CACAvoI,GAAA8nI,GACAnmI,KAAAwlI,GACA9pI,KAAA2qI,GACA1zI,MAAA0zI,GACA/tI,MAAAguI,GACAnkI,WAAAokI,GACAC,cACAE,gBAGAG,GAAA,CAAuB3tI,KAAA,aACvB4tI,GAAA,SAAAlpI,GACA,OACA1E,KAAA,WACAvG,MAAAiL,EAAA+5F,IACA1rF,KAAArO,EAAAq5E,MACAl9B,KAAA,CAAe/F,OAAAp2C,EAAAo2C,QACfm0B,SAAA,eAIA4+D,GAAA,SAAA9vD,EAAA0gB,GACA,OACAz+F,KAAA,WACAvG,MAAAglG,EACA1rF,KAAAgrE,EACAl9B,KAAA,CAAe/F,YAAAv9C,GACf0xE,SAAA,eAIA6+D,GAAA,SAAAC,GACA,OAAArwI,EAAAqwI,EAAAH,KAEAI,GAAA,SAAAhuI,EAAA+tI,GACA,OAAAhwI,EAAAgwI,EAAA,SAAArpI,GACA,OAAAA,EAAA1E,YAGAiuI,GAAA,SAAAjuI,EAAA+tI,GACA,OAAAD,GAAAE,GAAAhuI,EAAA+tI,KAEAG,GAAA,SAAAC,GACA,OAAAF,GAAA,SAAAE,EAAAJ,UAEAK,GAAA,SAAAD,GACA,OAAAF,GAAA,SAAAE,EAAAJ,UAEAM,GAAA,SAAAF,GACA,OAAAvvI,EAAAD,KAAAwvI,EAAAG,WAAA5wI,IAAA,SAAA+gG,GACA,OAAAovC,GAAA,QAAApvC,KACOvgG,WAEPqwI,GAAA,SAAAJ,GACA,OAAAvvI,EAAAD,KAAAwvI,EAAAK,cAAA9wI,IAAA,SAAA+gG,GACA,OAAAovC,GAAA,WAAApvC,KACOvgG,WAEPuwI,GAAA,SAAAC,GACA,OAAAhxI,EAAAgxI,EAAA,SAAAjwC,GACA,OAAAovC,GAAApvC,QAGAkwC,GAAA,SAAAnuF,GACA,OAAAz+C,EAAAy+C,EAAA,SAAArkD,EAAAuC,GACA,IAAAkwI,EAAA,IAAAzyI,EAAA7C,QAAA,IAAAoF,EAAApF,OACA,OAAAs1I,EAAAzyI,EAAAlC,OAAAyE,GAAAvC,EAAAlC,OAAA0zI,GAAAjvI,IACO,KAEPmwI,GAAA,SAAAC,EAAA9qE,GACA,IAAA+qE,EAAAD,EAAAn6H,cACA,OAAA5W,EAAAimE,EAAA,SAAAnvC,GACA,IAAA9hB,OAAAxV,IAAAs3B,EAAAgsB,WAAAtjD,IAAAs3B,EAAAgsB,KAAA9tC,KAAA8hB,EAAAgsB,KAAA9tC,KAAA8hB,EAAA9hB,KACA,OAAA+F,GAAA/F,EAAA4B,cAAAo6H,IAAAj2H,GAAA+b,EAAAp7B,MAAAkb,cAAAo6H,MAIAC,GAAA,SAAAC,EAAA9kI,EAAA+kI,GACA,IAAAC,EAAA/sF,GAAA7C,SAAAp1C,GACA2kI,OAAAvxI,IAAA4xI,EAAAtuF,KAAA9tC,KAAAo8H,EAAAtuF,KAAA9tC,KAAAo8H,EAAA11I,MACAgc,EAAAy5H,EAAAE,qBACA,OAAA35H,EAAA1Y,KAAA,WACA,UACO,SAAAoxI,GACP,IAAAO,EAAAG,GAAAC,EAAAL,GAAAS,EAAAG,WAAAJ,KACA,eAAAA,EAAAN,GAAA,CACAD,EACAG,GAAAC,EAAAZ,GAAAC,IACAU,GAAAC,EAAA5sI,EAAA,CACAmsI,GAAAF,GACAC,GAAAD,GACAI,GAAAJ,QAEAO,KAGAY,GAAA3mH,GAAA,gBACA4mH,GAAA,SAAAzjH,EAAA0jD,EAAA0/D,GACA,IAAAv5G,EACAqpD,EAAAxP,EAAAc,OAAAC,UACAi/D,EAAA,SAAAnzH,GACA,IAAAozH,EAAArtF,GAAA7C,SAAAljC,GACA6yH,EAAAQ,aAAAD,EAAAh2I,MAAAqyB,EAAA6jH,WAEAxmC,EAAA7J,GAAA7iF,QAAAzS,MAAA,CACAm8C,QAAAkmF,GACAP,eAAA,EACA/rC,aAAA,kBACAoM,eAAA,uBACAtM,gBAAA,CACA+vC,oBAAAN,GACAtvI,KAAA,OAEAwzE,SAAA,EACA83D,aAAA,EACAh1D,MAAA,SAAAnsE,GACA,IAAAq2C,EAAAwuF,GAAAljH,EAAA6jH,SAAAxlI,EAAA+kI,GACAnkC,EAAAmpB,GAAA1zE,EAAAmhC,GAAAqR,kBAAAxjB,GAAA,GACA,OAAAu3B,GAAAvkG,KAAAuoG,IAEAR,WAAA,SAAA3+E,GACA,OAAAikH,EAAAtiE,OAAA3hD,IAEAq1B,WAAA,SAAAr1B,EAAA0xB,GACA1xB,EAAAwJ,cAAAqzE,KACAA,GAAAxrF,IAAA2O,GAAAnoB,IAAA5K,IAGAozI,oBAAArpG,GAAA1gC,EAAA,CACAgtI,EAAAY,uBAAApyI,IAAA,SAAAkf,GACA,OAAA6rF,GAAA57E,OAAA,CACA4lD,QAAA,SAAA7mD,GACA,OAAA/G,GAAA+G,EAAA3Q,YAEAmsF,aAAA,mCACAC,OAAA,CACAO,UAAA,SAAAh8E,EAAAnsB,GACAswI,EAAAxiE,OAAA3hD,GAAAjuB,KAAA,SAAAqyI,GACAxoH,GAAAwoH,EAAA/0H,UAAA,QAAA+jE,EAAAtnD,UAAAj4B,QAIAiN,UAAA,CACAo7F,SAAA,SAAA39F,GACA,IAAAslI,EAAArtF,GAAA7C,SAAAp1C,GACA,OAAAujI,GAAAvoI,GAAA,SAAAsoI,GACA7wH,EAAA,CACA5c,KAAA8rB,EAAA6jH,SACAlxC,IAAAgxC,EAAAh2I,OACqB,SAAAivG,GACrB,eAAAA,EAAAxrE,OAAA,CACA,IAAAz9B,EAAAC,EAAAN,MAAAspG,EAAArpG,SACAouI,EAAAhuI,OACuB,CACvB,IAAAkJ,EAAAjJ,EAAAjG,MAAAivG,EAAArpG,SACAouI,EAAA9kI,SAKA2/F,gBAAA,OAGWpqG,UACX,CACA6iF,GAAAl0D,OAAA,CAA8B6yD,SAAA5zD,EAAA4zD,WAC9BspB,GAAAn8E,OAAA,IACAA,GAAA,kBAAA3qB,EAAA,CACA,SAAA4pB,EAAA6jH,SAAA,CAAA1yH,GAAA9S,KAAA,SAAAyhB,GACA3L,GAAA2L,EAAAkyE,GAAA,CAAmDh+F,KAAAgsB,EAAAhsB,UAClC,GACjB,CACAmd,GAAAe,KAAA,SAAA4N,GACA3L,GAAA2L,EAAAkyE,GAAA,CAAmDh+F,KAAAgsB,EAAAhsB,OACnD0vI,EAAA5jH,KAEA3O,GAAAuB,KAAA,SAAAoN,GACA3L,GAAA2L,EAAAkyE,GAAA,CAAmDh+F,KAAAgsB,EAAAhsB,OACnD0vI,EAAA5jH,aAMAgE,YAAA+F,EAAA,GAA4BA,EAAAxrB,MAAA,CAC5B,YACA,kBACA,gBACAwrB,GACAu5E,MAAA,CACA47B,eAAA,SAAAP,GACA,OAAAA,EAAA9wI,OAEAmxI,aAAA,EACAwB,oBAAA,GAEA/tG,QAAA,CAAkButG,UAAA,6BAClBhhE,SAAA4E,EAAAc,OAAAE,QACA/zD,MAAA,CAAgBq/C,KAAA1W,IAAA,eAChB2jB,UAAA,SAAAknE,EAAA5zH,EAAA6zH,GACAjwH,GAAA5D,EAAA6hF,GAAA,KAEA2tC,cAAA,SAAAE,EAAAN,EAAA/8C,EAAAoU,GACA0sC,EAAAzD,GACA9rH,GAAA8rH,EAAAjuC,GAAA,CAAgDh+F,KAAAgsB,EAAAhsB,UAGhDopG,EAAAp9E,EAAAlnB,MAAAlH,IAAA,SAAAkH,GACA,OAAA8kG,GAAA9kG,EAAAo6E,KAEAmxD,EAAA,SAAArwI,EAAAswI,EAAAvhE,EAAAjqE,GAOA,YANA,IAAAiqE,IACAA,EAAA/uE,QAEA,IAAA8E,IACAA,EAAA9E,GAEA,CACAmT,IAAA,CACAL,IAAA,MACAya,QAAA,CACA,WACA,iCAAAvtB,GAEA+zB,UAAA85C,GAAAkB,EAAAmQ,EAAAtR,OACApgD,WAAAzyB,EAAA,CACAkjF,MAAAiB,EAAAtnD,UAAA9yB,GACA04G,YAAA,UACa8yB,EAAArzI,KAAA,WACb,UACa,SAAAF,GACb,OAAsBA,YAKtBkzI,EAAA1iE,GAAA8iE,EAAA,UAAAvxI,EAAAP,KAAAixI,IAAA,YACAe,EAAAhjE,GAAA,CACAp6D,IAAA,CACAL,IAAA,MACAya,QAAA,wCAEA0D,WAAA,CAAAg/G,EAAAviE,YAEA8iE,EAAApB,EAAAqB,aAAAzkH,EAAA6jH,UACAa,EAAA7nH,GAAA,qBACAknH,EAAAxiE,GAAA,CACAp6D,IAAA,CACAL,IAAA,MACAya,QAAA,sBAEA0D,WAAA,CACAo4E,EACAknC,EAAA7iE,UAEAhhD,WAAAoW,GAAA,CAAAm+C,GAAAl0D,OAAA,CAAgD6yD,SAAA5zD,EAAA4zD,eAEhD+wD,EAAApjE,GAAAioD,GAAA,CACAx1H,KAAAgsB,EAAAhsB,KACA+uE,KAAAjwE,EAAAP,KAAA,UACA0U,KAAA+Y,EAAAlnB,MAAA1H,MAAA,IACAwiF,SAAA5zD,EAAA4zD,SACAtb,SAAA,EACAixD,YAAA,GACO,SAAAh5G,GACP,OAAA0D,GAAA1D,EAAAm0H,IACOxxD,EAAA,wBACP0xD,EAAA,WACA,OACAz9H,IAAA,CACAL,IAAA,MACAya,QAAA,gCAEA0D,WAAA7uB,EAAA,CACA,CAAA2tI,EAAAriE,UACA8iE,EAAA5yI,IAAA,WACA,OAAA+yI,EAAAjjE,WACatvE,cAIbyyI,EAAA,SAAA/kH,GACAg+B,GAAAL,WAAA39B,GAAAjuB,KAAA,SAAAqM,GACA,IAAA4mI,EAAAxuF,GAAA7C,SAAAv1C,GACAsmI,EAAA3yI,KAAA,SAAAslH,GACAA,EAAA2tB,GAAAntI,IAAA,SAAAotI,GACAzuF,GAAA9C,SAAAt1C,EAAA6mI,GACA5wH,GAAA2L,EAAAkyE,GAAA,CAA+Ch+F,KAAAgsB,EAAAhsB,cAK/C,OAAAw/F,GAAA/6C,OAAA,CACAtxC,IAAAw2F,KACA14E,WAAAm4E,EAAAhrG,UAAAjE,OAAA,CAAAy2I,MACAzxC,gBAAAr8D,GAAA,CACAm+C,GAAAl0D,OAAA,CACA6yD,SAAA5zD,EAAA4zD,SACAW,WAAA,SAAAz0D,GACA0zE,GAAAF,SAAAxzE,GAAAjuB,KAAAojF,GAAApB,SACA8wD,EAAAljE,OAAA3hD,GAAAjuB,KAAAojF,GAAApB,UAEAY,UAAA,SAAA30D,GACA0zE,GAAAF,SAAAxzE,GAAAjuB,KAAAojF,GAAAT,QACAmwD,EAAAljE,OAAA3hD,GAAAjuB,KAAAojF,GAAAT,WAGAzzD,GAAA,oBAAA5P,GAAAuzH,EAAAG,UAKAG,GAAA,SAAAhlH,EAAA4xD,GACA,IAAAqzD,EAAA3uF,GAAAv1B,OAAA,CACAuwB,MAAA,CACA2C,KAAA,SACAR,SAAA,SAAA3zB,GACA,IAAApK,EAAAoK,EAAA3Q,UAAAhI,MACA,OAAAuO,EAAA4+C,SAEA9gB,SAAA,SAAA1zB,EAAAnyB,GACA,IAAA+nB,EAAAoK,EAAA3Q,UAAAhI,MACAuO,EAAA4+C,QAAA3mE,MAIAu3I,EAAA,SAAAplH,GAEA,OADAA,EAAA3Q,UAAAhI,MAAAgL,QACArf,EAAAP,MAAA,IAEA8qG,EAAA7J,GAAA7iF,QAAAzS,MAAA,CACAm8C,QAAA,CAAkB5B,OAAA7qD,GAClBuZ,IAAA,CACAL,IAAA,QACAya,QAAA,wBACAC,WAAA,CAAuBttB,KAAA,aAEvBwsB,WAAAoW,GAAA,CACA0+E,GAAA/iH,OACAwiF,GAAAl0D,OAAA,CAA4B6yD,SAAA5zD,EAAA4zD,WAC5BspB,GAAAn8E,OAAA,IACA2xC,GAAA3xC,OAAA,IACAkkH,EACA90E,GAAApvC,OAAA,CACAkzB,KAAA,UACA0Q,QAAAugF,EACAj2E,QAAAi2E,EACAx1E,gBAAA,IAEA3uC,GAAA,mBAAA5P,GAAAe,KAAA,SAAA3B,EAAAtd,GACAkhB,GAAA5D,EAAAyhF,GAAA,CAAoDh+F,KAAAgsB,EAAAhsB,eAIpDopG,EAAA5J,GAAA7iF,QAAA7X,MAAA,CACAqO,IAAA,CACAL,IAAA,OACAya,QAAA,wBACAwG,UAAA6pD,EAAAhmD,UAAA5L,EAAAlnB,QAEA4nB,WAAAoW,GAAA,CAAA4qE,GAAA3gF,OAAA,QAEAsjH,EAAA,SAAAc,GACA,IAAA9xD,EAAA,YAAA8xD,EAAA,wBACA,OACAh+H,IAAA,CACAL,IAAA,OACAya,QAAA,CACA,WACA,sBAAA4jH,GAEAp9G,UAAA85C,GAAAwR,EAAAzB,EAAAhQ,UAIAwjE,EAAA7jE,GAAA,CACAp6D,IAAA,CACAL,IAAA,MACAya,QAAA,yBAEA0D,WAAA,CACAo/G,EAAA,WACAA,EAAA,gBAGA,OAAA7wC,GAAA/6C,OAAA,CACAtxC,IAAA,CACAL,IAAA,QACAya,QAAA,kBAEA0D,WAAA,CACAo4E,EACA+nC,EAAA1jE,SACA07B,GAEAjK,gBAAAr8D,GAAA,CAAAm+C,GAAAl0D,OAAA,CACA6yD,SAAA5zD,EAAA4zD,SACAU,aAAA,yBACAC,WAAA,SAAAz0D,GACA0zE,GAAAF,SAAAxzE,GAAAjuB,KAAAojF,GAAApB,UAEAY,UAAA,SAAA30D,GACA0zE,GAAAF,SAAAxzE,GAAAjuB,KAAAojF,GAAAT,gBAMA6wD,GAAA,SAAArlH,GACA,uBAAAA,EAAAkwD,QACAge,GAAAz1C,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,oBACAwG,UAAA/H,EAAA7Z,QAIA+nF,GAAAz1C,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,oBACAwG,UAAA/H,EAAA7Z,KACAqb,WAAA,CAAyB2zC,KAAA,aAEzB84B,oBAAAn3D,GAAA,CACAomE,GAAAn8E,OAAA,IACA2xC,GAAA3xC,OAAA,SAMAukH,GAAA,SAAAtlH,EAAAulH,GACA,IAAAzsI,EAAA,CACAqO,IAAA,CACAL,IAAA,QACAihB,UAAAw9G,EAAA9gE,UAAA74C,UAAA5L,EAAAlnB,OACAyoB,QAAA,gBAGAkwF,EAAA7/G,EAAAouB,EAAA00B,MAAA6wF,EAAA1yC,aACA,OACA1rF,IAAA,CACAL,IAAA,MACAya,QAAA,qBAEA0D,WAAA,CAAAnsB,GAAA3K,OAAAsjH,GACA/wF,WAAAoW,GAAA,CACA0+E,GAAA/iH,OACAi/D,GAAA3wC,OAAA,IACAi4F,GAAAF,QAAAhmH,EAAArC,QACA0/D,GAAApvC,OAAA,CAAyBkzB,KAAA,gBAKzBuxF,GAAA,SAAAxlH,EAAAkzD,GACA,IAAAkqB,EAAAp9E,EAAAlnB,MAAAlH,IAAA,SAAAkH,GACA,OAAA8kG,GAAA9kG,EAAAo6E,KAEAuyD,EAAA,SAAAx4I,GACA,gBAAA6yB,EAAAg0B,GACAzkB,GAAAykB,EAAArjC,QAAA7X,SAAA,gCAAA/G,KAAA,SAAA+G,GACA3L,EAAA6yB,EAAAg0B,EAAAl7C,EAAAijB,GAAAjjB,EAAA,mCAIA8sI,EAAA,SAAA/jI,GACA,YAAAA,EACA,SAEAA,GAEAg3D,EAAA,SAAA74C,EAAA40B,GACA,IAAAixF,EAAA/zI,EAAA8iD,EAAA,SAAA3rB,GACA,IAAA2oD,EAAAzC,GAAArjD,UAAA7C,EAAA9hB,MACAsT,EAAA,IAAAyF,EAAA4qD,QAAA,2CAAA8G,EAAA,YACA6B,EAAA,0CAAAxqD,EAAAg6C,KAAA,SACA6iE,EAAA,CACA3yI,EAAA,IACA4yI,MAAA,IACAC,IAAA,KAEApzD,EAAAhB,EAAAlpE,QAAA,uBAAAlQ,GACA,OAAAstI,EAAAttI,KAEA,qFAAAotI,EAAA38G,EAAAp7B,OAAA,YAAA+kF,EAAA,iBAAAA,EAAA,KAAAa,EAAAh5D,EAAA,WAEA2nE,EAAAliE,EAAA4qD,QAAA,YAAA5qD,EAAA4qD,QAAAr1E,EAAAowI,EAAA3lH,EAAA4qD,SAAA,CAAA+6D,GACAx/H,EAAAvU,EAAAswF,EAAA,SAAAvgF,GACA,4CAAAA,EAAAlJ,KAAA,eAEAuN,GAAA8Z,EAAA3Q,UAAAhJ,EAAA1N,KAAA,MAEAstI,EAAA,CACA50H,GAAAU,KAAA4zH,EAAA,SAAA3lH,EAAAg0B,EAAAkyF,GACA3tG,GAAA2tG,MAEA70H,GAAA2B,KAAA2yH,EAAA,SAAA3lH,EAAAg0B,EAAAkyF,EAAApsE,GACA9lB,EAAAr+B,OACAtB,GAAA2L,EAAAqyE,GAAA,CACAn+F,KAAAgsB,EAAAhsB,KACArG,MAAAisE,OAGAzoD,GAAAW,KAAA2zH,EAAA,SAAA3lH,EAAAg0B,EAAAkyF,GACA52G,GAAAtP,EAAA3Q,UAAA,IAAA4gE,IAAAl+E,KAAA,SAAAo0I,GACAhgH,GAAAggH,EAAAl2D,MAEAhqD,GAAAigH,EAAAj2D,OAEA5+D,GAAAY,KAAA0zH,EAAA,SAAA3lH,GACAsP,GAAAtP,EAAA3Q,UAAA,IAAA4gE,IAAAl+E,KAAA,SAAAo0I,GACAhgH,GAAAggH,EAAAl2D,SAGAn4D,GAAA6tH,EAAA,SAAA3lH,EAAAg0B,EAAAkyF,EAAApsE,GACAzlD,GAAA2L,EAAAqyE,GAAA,CACAn+F,KAAAgsB,EAAAhsB,KACArG,MAAAisE,QAIAyjC,EAAA7J,GAAA7iF,QAAAzS,MAAA,CACAiJ,IAAA,CACAL,IAAA,MACAya,QAAA,mBAAApzB,OAAA,IAAA6xB,EAAA4qD,QAAA,oDAEA3lD,WAAA,GACAo1B,QAAA,CAAkB5B,OAAA7qD,GAClB8yB,WAAAoW,GAAA,CACA46B,GAAA3wC,OAAA,IACAu1B,GAAAv1B,OAAA,CACAuwB,MAAA,CACA2C,KAAA,SACAuB,aAAA,IAEAL,WAAA,SAAAr1B,EAAA40B,GACAikB,EAAA74C,EAAA40B,GACA,SAAA10B,EAAA4qD,SACA6B,GAAA3sD,EAAA,0BAAAjuB,KAAA,SAAAg4B,GACA,IAAAs8B,EAAAt8B,EAAAs8B,QAAAC,EAAAv8B,EAAAu8B,WACA+J,GAAAjK,YAAApmC,EAAAqmC,EAAAC,KAGAnyC,GAAA6L,EAAA0yE,OAGA0K,GAAAn8E,OAAA,IACAovC,GAAApvC,OAAAmjE,GAAAlkE,EAAA4qD,QAAA,WACA7pD,GAAA,oBAAAglH,OAGAzoC,EAAA,gCACA,OAAAH,GAAAC,EAAAC,EAAAC,EAAA,KAGA4oC,GAAA,SAAAlmH,EAAAkzD,GACA,IAAAizD,EAAA,SAAAl/H,GACA,OACAE,IAAA,CACAL,IAAA,KACAihB,UAAAmrD,EAAAtnD,UAAA3kB,MAIAm/H,EAAA,SAAAC,GACA,OACAl/H,IAAA,CAAgBL,IAAA,SAChBme,WAAA,EACA9d,IAAA,CAAoBL,IAAA,MACpBme,WAAArzB,EAAAy0I,EAAAF,OAIAG,EAAA,SAAAr/H,GACA,OACAE,IAAA,CACAL,IAAA,KACAihB,UAAAmrD,EAAAtnD,UAAA3kB,MAIAs/H,EAAA,SAAAv+E,GACA,OACA7gD,IAAA,CAAgBL,IAAA,MAChBme,WAAArzB,EAAAo2D,EAAAs+E,KAGAE,EAAA,SAAAr5E,GACA,OACAhmD,IAAA,CAAgBL,IAAA,SAChBme,WAAArzB,EAAAu7D,EAAAo5E,KAGA,OACAp/H,IAAA,CACAL,IAAA,QACAya,QAAA,uBAEA0D,WAAA,CACAmhH,EAAApmH,EAAAqmH,QACAG,EAAAxmH,EAAAq4D,QAEA33D,WAAAoW,GAAA,CACAomE,GAAAn8E,OAAA,IACA2xC,GAAA3xC,OAAA,QAKA0lH,GAAA,SAAAzmH,EAAA0jD,GACA,OACAv8D,IAAA,CACAL,IAAA,MACAya,QAAAvB,EAAAuB,SAEA0D,WAAArzB,EAAAouB,EAAA00B,MAAAgvB,EAAAc,OAAAquB,eAIA6zC,GAAA,SAAA9hD,GACA,gBAAAj0E,EAAAqP,EAAA0jD,GACA,OAAA3nE,GAAAikB,EAAA,QAAA/uB,KAAA,WACA,OAAA2zF,EAAA5kE,EAAA0jD,IACS,SAAAjxC,GACT,OAAA9hB,EAAAzS,MAAAu0B,EAAAmyD,EAAA5kE,EAAA0jD,QAIAijE,GAAA,SAAA/hD,GACA,gBAAAj0E,EAAAqP,EAAA0jD,GACA,IAAAkjE,EAAAptI,GAAAwmB,EAAA,CAA0Cw2B,OAAA,YAC1C,OAAAkwF,GAAA9hD,EAAA8hD,CAAA/1H,EAAAi2H,EAAAljE,KAGAmjE,GAAA,CACAC,IAAAJ,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAkvB,GAAA5yE,EAAA0jD,EAAAc,UAEAuiE,WAAAL,GAAA,SAAA1mH,EAAA0jD,GACA,OAAA8hE,GAAAxlH,EAAA0jD,EAAAc,OAAAC,aAEAuiE,YAAAN,GAAA,SAAA1mH,EAAA0jD,GACA,OAAA+uB,GAAAzyE,EAAA0jD,EAAAc,OAAAC,aAEApmE,MAAAqoI,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAw5D,GAAAl9G,EAAA0jD,EAAAc,OAAAC,aAEAwiE,SAAAP,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAy5D,GAAAn9G,EAAA0jD,EAAAc,OAAAC,aAEA3rE,MAAA4tI,GAAA,SAAA1mH,EAAA0jD,GACA,OAAA4hE,GAAAtlH,EAAA0jD,EAAAc,UAEA0iE,OAAAP,GAAA,SAAA3mH,EAAA0jD,GACA,OAAAu3C,GAAAj7F,EAAA0jD,EAAAc,OAAAC,aAEAyQ,OAAAwxD,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAwmD,GAAAlqG,EAAA0jD,EAAAc,OAAAC,aAEA0iE,SAAAT,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAshE,GAAAhlH,EAAA0jD,EAAAc,OAAAC,aAEA2f,WAAAsiD,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAq+B,GAAA/hF,EAAA0jD,EAAAc,OAAAd,EAAA0gB,cAEAhD,YAAAslD,GAAA1vB,IACAowB,SAAAV,GAAA,SAAA1mH,EAAA0jD,GACA,OAAA41C,GAAAt5F,EAAA0jD,EAAAc,OAAAC,aAEAtN,KAAAuvE,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAu2C,GAAAj6F,EAAA0jD,EAAAc,UAEA6iE,UAAAX,GAAA,SAAA1mH,EAAA0jD,GACA,OAAA04D,GAAAp8G,EAAA0jD,EAAAc,OAAAC,aAEA6iE,UAAAZ,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAypD,GAAAntG,EAAA0jD,EAAAc,OAAAC,aAEA8iE,SAAAb,GAAA,SAAA1mH,EAAA0jD,GACA,OAAA+/D,GAAAzjH,EAAA0jD,IAAA6jE,YAEAC,aAAAd,GAAAhvB,IACA+vB,UAAAf,GAAArB,IACAqC,WAAAhB,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAo3D,GAAA96G,EAAA0jD,EAAAc,OAAAC,aAEAkjE,MAAAjB,GAAA,SAAA1mH,EAAA0jD,GACA,OAAAwiE,GAAAlmH,EAAA0jD,EAAAc,OAAAC,aAEAkuD,MAAA+T,GAAA,SAAA1mH,EAAA0jD,GACA,OAAA+iE,GAAAzmH,EAAA0jD,MAGAkkE,GAAA,CACA1pI,MAAA,SAAA2pI,EAAA7nH,GACA,OAAAA,IAGA8nH,GAAA,SAAAn3H,EAAAqP,EAAA+nH,GACA,IAAAC,EAAAxuI,GAAAuuI,EAAA,CACAvjE,OAAA,CACAquB,YAAA,SAAAliC,GACA,OAAAs3E,GAAAt3H,EAAAggD,EAAAq3E,OAIA,OAAAC,GAAAt3H,EAAAqP,EAAAgoH,IAEAC,GAAA,SAAAt3H,EAAAqP,EAAA0jD,GACA,OAAA3nE,GAAA8qI,GAAA7mH,EAAA9rB,MAAAjD,KAAA,WAEA,OADAnE,EAAAiM,QAAAzF,MAAA,yBAAA0sB,EAAA9rB,KAAA,+BAAA8rB,GACAA,GACO,SAAAq6B,GACP,OAAAA,EAAA1pC,EAAAqP,EAAA0jD,MAGAwkE,GAAA,SAAAloH,EAAA0jD,GACA,IAAA/yD,EAAAi3H,GACA,OAAAK,GAAAt3H,EAAAqP,EAAA0jD,IAGAykE,GAAAz6I,EAAA,SAAAyhB,EAAA49B,GACA/f,GAAA7d,EAAAiO,KAAAC,MAAA0vB,MAGAq7F,GAAA,CACAC,aAAA,GACAC,YAAA,GACAC,UAAA,GACAC,WAAA,GACAn7G,MAAA,GACA3B,KAAA,GACA4B,OAAA,GACA3B,IAAA,IAEA88G,GAAA,SAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAA,WACA,OACA90G,OAAA,OACA+R,KAAA4iG,IACA3hI,KAAAjU,EAAAD,KAAA61I,KACA5rG,OAAA7D,IAAA,OAAAmvG,IACA/rG,QAAA,CACAI,MAAA,WACA,OAAAokC,KAEAtkC,MAAA,WACA,OAAAukC,MAGA/jC,UAAA,CAAsByP,kBAAAU,QAGtB47F,EAAA,WACA,OACA/0G,OAAA,UACA6I,QAAA+rG,IACA7rG,OAAA7D,IAAA,MAAAmvG,IACA/rG,QAAA,CACAI,MAAA,WACA,OAAAlI,KAEAgI,MAAA,WACA,OAAA9H,MAGAsI,UAAA,CAAsByP,kBAAAU,QAGtB,OAAA07F,EAAAC,EAAAC,GAEAC,GAAA,SAAAL,EAAAC,EAAAC,GACA,IAAAC,EAAA,WACA,OACA90G,OAAA,OACA+R,KAAA4iG,IACA3hI,KAAAjU,EAAAD,KAAA61I,KACArsG,QAAA,CACAI,MAAA,WACA,OAAAskC,KAEAxkC,MAAA,WACA,OAAAwkC,QAKA+nE,EAAA,WACA,OACA/0G,OAAA,UACA6I,QAAA+rG,IACAtsG,QAAA,CACAI,MAAA,WACA,OAAA5H,KAEA0H,MAAA,WACA,OAAA1H,QAKA,OAAA+zG,EAAAC,EAAAC,GAEAE,GAAA,SAAAC,GACA,kBACA,OACAl1G,OAAA,UACA6I,QAAAqsG,IACAlsG,UAAA,CAAsB2P,iBAAAy7F,MACtB9rG,QAAA,CACAI,MAAA,WACA,OACAlI,GACAE,KAGA8H,MAAA,WACA,OACA9H,GACAF,SAOA20G,GAAA,SAAA3lE,EAAAmlE,GACA,kBACA,OACA30G,OAAA,YACA+R,KAAA4iG,IACA3jG,aAAA,WACA,IAAAnG,EAAA2kC,EAAA5kC,UAAAkrC,SACA,OAAA/2E,EAAAP,KAAA4sC,GAAA9pC,MAAAmS,GAAAZ,QAAAg4B,EAAAC,gBAAAD,EAAAwB,YAAA54B,GAAAZ,QAAAg4B,EAAAyB,cAAAzB,EAAA0B,gBAKA6oG,GAAA,SAAAT,GACA,gBAAAv5H,GACA,OACA4kB,OAAA,OACA+R,KAAA4iG,IACA3hI,KAAAoI,KAIAi6H,GAAA,SAAA7lE,EAAAolE,EAAAM,GACA,IAAAL,EAAA33C,GAAA1tB,GACAmlE,EAAA,WACA,OAAAlhI,GAAAZ,QAAA28D,EAAAhuD,YAEA,OACA66E,QAAAq4C,GAAAC,EAAAC,EAAAC,GACAS,gBAAAL,GAAAC,GACApmE,OAAAkmE,GAAAL,EAAAC,EAAAC,GACAnU,OAAAyU,GAAA3lE,EAAAmlE,GACA3hI,KAAAoiI,GAAAT,KAGAY,GAAA,CAAmBF,eAEnB9mC,GAAA,SAAA/+B,GACA,gBAAAwc,EAAApyF,GACA,IAAA8xF,EAAAsC,GAAArC,kBAAAnc,GACAkc,EAAAM,EAAApyF,KAGA47I,GAAA,SAAAhmE,GACA,kBACA,OAAAua,GAAAN,gBAAAja,KAGAimE,GAAA,SAAAjmE,GACA,kBACA,OAAAua,GAAAJ,UAAAna,KAGAkmE,GAAA,SAAAlmE,GACA,kBACA,OAAAwe,GAAA1E,aAAA9Z,KAGAmmE,GAAA,SAAAnmE,GACA,OACA++B,eAAA/+B,GACAia,gBAAA+rD,GAAAhmE,GACAma,UAAA8rD,GAAAjmE,GACA8Z,aAAAosD,GAAAlmE,KAIAomE,GAAA,SAAApmE,GACA,kBACA,OAAA+tB,GAAA/tB,KAGAqmE,GAAA,SAAArmE,GACA,OAAc+tB,iBAAAq4C,GAAApmE,KAGdsmE,GAAA,CACA,CACA53D,MAAA,WACAv9B,MAAA,CACA,CACAu9B,MAAA,YACAuM,OAAA,MAEA,CACAvM,MAAA,YACAuM,OAAA,MAEA,CACAvM,MAAA,YACAuM,OAAA,MAEA,CACAvM,MAAA,YACAuM,OAAA,MAEA,CACAvM,MAAA,YACAuM,OAAA,MAEA,CACAvM,MAAA,YACAuM,OAAA,QAIA,CACAvM,MAAA,SACAv9B,MAAA,CACA,CACAu9B,MAAA,OACAlP,KAAA,OACAyb,OAAA,QAEA,CACAvM,MAAA,SACAlP,KAAA,SACAyb,OAAA,UAEA,CACAvM,MAAA,YACAlP,KAAA,YACAyb,OAAA,aAEA,CACAvM,MAAA,gBACAlP,KAAA,iBACAyb,OAAA,iBAEA,CACAvM,MAAA,cACAlP,KAAA,cACAyb,OAAA,eAEA,CACAvM,MAAA,YACAlP,KAAA,YACAyb,OAAA,aAEA,CACAvM,MAAA,OACAlP,KAAA,OACAyb,OAAA,UAIA,CACAvM,MAAA,SACAv9B,MAAA,CACA,CACAu9B,MAAA,YACAuM,OAAA,KAEA,CACAvM,MAAA,aACAuM,OAAA,cAEA,CACAvM,MAAA,MACAuM,OAAA,OAEA,CACAvM,MAAA,MACAuM,OAAA,SAIA,CACAvM,MAAA,QACAv9B,MAAA,CACA,CACAu9B,MAAA,OACAlP,KAAA,aACAyb,OAAA,aAEA,CACAvM,MAAA,SACAlP,KAAA,eACAyb,OAAA,eAEA,CACAvM,MAAA,QACAlP,KAAA,cACAyb,OAAA,cAEA,CACAvM,MAAA,UACAlP,KAAA,gBACAyb,OAAA,mBAKAsrD,GAAA,SAAAtrD,GACA,OAAA3mF,GAAA2mF,EAAA,UAEAurD,GAAA,SAAAvrD,GACA,OAAA3mF,GAAA2mF,EAAA,UAEAwrD,GAAA,SAAAxrD,GACA,OAAA3mF,GAAA2mF,EAAA,WAEAyrD,GAAA,SAAAzrD,GACA,OAAA3mF,GAAA2mF,EAAA,aAEA0rD,GAAA,SAAAC,GACA,OAAAl0I,EAAAk0I,EAAA,SAAAn0I,EAAAo0I,GACA,GAAAN,GAAAM,GAAA,CACA,IAAAzuI,EAAAuuI,GAAAE,EAAA11F,OACA,OACA21F,cAAAr0I,EAAAq0I,cAAAl8I,OAAAwN,EAAA0uI,eACAC,QAAAt0I,EAAAs0I,QAAAn8I,OAAA,EACA8jF,MAAAm4D,EAAAn4D,MACAv9B,MAAA/4C,EAAA2uI,YAGS,GAAAN,GAAAI,IAAAL,GAAAK,IAAAH,GAAAG,GAAA,CACT,IAAAG,EAAA,UAAAH,EAAAn4D,MAAAppE,cACA,OACAwhI,cAAAr0I,EAAAq0I,cAAAl8I,OAAA,EACA6F,KAAAu2I,EACA/rD,OAAA4rD,KAEAE,QAAAt0I,EAAAs0I,QAAAn8I,OAAA,EACA8jF,MAAAm4D,EAAAn4D,MACAuM,OAAA+rD,EACAxnE,KAAAqnE,EAAArnE,SAIA,OAAAh0E,IAAA,GAAqCiH,GAAA,CAASs0I,QAAAt0I,EAAAs0I,QAAAn8I,OAAAi8I,MAEvC,CACPC,cAAA,GACAC,QAAA,MAGAE,GAAA,SAAAjnE,EAAA4mE,GACA,IAAAxuI,EAAAuuI,GAAAC,GACAM,EAAA,SAAAJ,GACAx4I,EAAAw4I,EAAA,SAAAD,GACA7mE,EAAAsb,UAAAhnF,IAAAuyI,EAAAp2I,OACAuvE,EAAAsb,UAAAxT,SAAA++D,EAAAp2I,KAAAo2I,EAAA5rD,WAWA,OAPAjb,EAAAsb,UACA4rD,EAAA9uI,EAAA0uI,eAEA9mE,EAAA/lC,GAAA,kBACAitG,EAAA9uI,EAAA0uI,iBAGA1uI,EAAA2uI,SAEAI,GAAA,SAAAnnE,GACA,OAAAwsB,GAAAxsB,GAAA3xE,IAAA,SAAAu4I,GACA,IAAAQ,EAAAH,GAAAjnE,EAAA4mE,GACA,OAAAn6C,GAAAzsB,GAAAsmE,GAAA17I,OAAAw8I,OACOv5I,MAAAy4I,KAGPe,GAAA,SAAA7hH,EAAA8hH,EAAAC,GACA,IAAAC,EAAA,CACA72I,KAAA,YACAwjF,WAAAmzD,EAAA9hH,EAAAy1D,QACAwsD,gBAAAF,EAAA/hH,EAAAy1D,SAEA,OAAAhlF,GAAAuvB,EAAAgiH,IAEAE,GAAA,SAAA1nE,EAAA+mE,EAAAO,EAAAC,GACA,IAAAI,EAAA,SAAAniH,GACA,OAAA6hH,GAAA7hH,EAAA8hH,EAAAC,IAEAK,EAAA,SAAApiH,GACA,IAAAqiH,EAAA,CACAl3I,KAAA,UACAwjF,WAAAhqF,GAAA,GACAs9I,gBAAA,WACA,OAAAl4I,EAAArC,SAGA,OAAA+I,GAAAuvB,EAAAqiH,IAEAC,EAAA,SAAAtiH,GACA,IAAAwhH,EAAA1tH,GAAAkM,EAAAkpD,OACAq5D,EAAA,CACAp3I,KAAA,YACAsqF,OAAA+rD,EACA7yD,WAAAmzD,EAAAN,GACAS,gBAAAF,EAAAP,IAEAgB,EAAA/xI,GAAAuvB,EAAAuiH,GAEA,OADA/nE,EAAAsb,UAAAxT,SAAAk/D,EAAAgB,GACAA,GAEAC,EAAA,SAAA92F,GACA,OAAA9iD,EAAA8iD,EAAA,SAAA3rB,GACA,IAAA3wB,EAAAnB,GAAA8xB,GACA,GAAAxsB,GAAAwsB,EAAA,UACA,IAAA0iH,EAAAD,EAAAziH,EAAA2rB,OACA,OAAAl7C,GAAA2xI,EAAApiH,GAAA,CACA2iH,cAAA,WACA,OAAAD,KAGW,OAAAlvI,GAAAwsB,EAAA,UACXmiH,EAAAniH,GACW,IAAA3wB,EAAA5K,QAAA4H,EAAAgD,EAAA,SACXoB,GAAAuvB,EAAA,CAAoC70B,KAAA,cAEpCm3I,EAAAtiH,MAIA,OAAAyiH,EAAAlB,IAGAqB,GAAA,SAAApoE,GACA,IAAAsnE,EAAA,SAAArsD,GACA,kBACA,OAAAjb,EAAAsb,UAAAvmF,MAAAkmF,KAGAssD,EAAA,SAAAtsD,GACA,kBACA,IAAA4rD,EAAA7mE,EAAAsb,UAAAlnF,IAAA6mF,GACA,YAAA/sF,IAAA24I,EAAAt3I,EAAAP,KAAA,CACAuU,IAAAsjI,EAAA58I,OAAA,IAAA48I,EAAA,GAAAp5C,QAAAo5C,EAAA,GAAA/O,QAAA,MACAjqD,UAAA7N,EAAAsb,UAAA+sD,WAAAptD,KACW1rF,EAAArC,SAGX2F,EAAA,SAAAg0I,GACA,IAAA/gH,EAAA+gH,EAAA11F,MACA,YAAAjjD,IAAA43B,KAAA77B,OAAA,EAAAsE,GAAAu3B,EAAAjzB,GAAA,CAAAg0I,EAAA5rD,SAEAqtD,EAAA/lI,GAAA,IACAgmI,EAAAhmI,GAAA,IACAimI,EAAAjmI,GAAA,IACAkmI,EAAAlmI,GAAA,IACAmmI,EAAAnmI,IAAA,GACAy9D,EAAA/lC,GAAA,kBACA,IAAA8sG,EAAAI,GAAAnnE,GACA2oE,EAAAjB,GAAA1nE,EAAA+mE,EAAAO,EAAAC,GACAe,EAAA7lI,IAAAkmI,GACAJ,EAAA9lI,IAAAlU,GAAAo6I,EAAA91I,MAEAmtE,EAAA/lC,GAAA,iCAAA5tC,GACA,IAAAu8I,EAAAlB,GAAA1nE,EAAA3zE,EAAA8kD,MAAAm2F,EAAAC,GACAiB,EAAA/lI,IAAAmmI,GACAF,EAAAjmI,IAAApW,EAAA4Y,SACAwjI,EAAAhmI,IAAAlU,GAAAq6I,EAAA/1I,MAEA,IAAA8qB,EAAA,WACA,IAAAkrH,EAAAH,EAAAt0I,MAAA,GAAAk0I,EAAAl0I,MACA00I,EAAAN,EAAAp0I,MACA,OAAAy0I,EAAAj+I,OAAAk+I,IAEAC,EAAA,WACA,IAAAF,EAAAH,EAAAt0I,MAAA,GAAAm0I,EAAAn0I,MACA00I,EAAAL,EAAAr0I,MACA,OAAAy0I,EAAAj+I,OAAAk+I,IAEA,OACAnrH,UACAorH,qBAIAC,GAAA9Y,GAAAtmH,KACAq/H,GAAA,SAAA7+I,GACA,gBAAAoZ,GACA,GAAAA,GAAA,IAAAA,EAAAsI,SAAA,CACA,GAAAtI,EAAA0lI,kBAAA9+I,EACA,SAEA,GAAAoZ,EAAA+U,aAAA,8BAAAnuB,EACA,SAGA,WAGA++I,GAAAF,GAAA,QACAG,GAAAH,GAAA,SACAI,GAAA,SAAA14I,EAAA+9E,EAAA0gB,EAAA3vB,EAAAh0B,GACA,OACA96C,OACA+9E,QACA0gB,MACA3vB,QACAh0B,WAGA69F,GAAA,SAAA9lI,GACA,MAAAA,IAAAqO,WAAA,CACA,IAAAznB,EAAAoZ,EAAA0lI,gBACA,GAAA9+I,GAAA,YAAAA,EACA,OAAA++I,GAAA3lI,GAGA,UAEA25E,GAAA,SAAAtxE,EAAA02B,GACA,OAAAl0C,EAAAoyC,GAAAx8B,GAAAZ,QAAAk/B,GAAA12B,GAAA,SAAAD,GACA,OAAAA,EAAAhI,SAGA2lI,GAAA,SAAA1lE,GACA,OAAAA,EAAA2lE,WAAA3lE,EAAA7sD,aAEAyyH,GAAA,SAAA5lE,GACA,OAAAA,EAAAr2E,GAAAq2E,EAAAr2E,GAAA8rB,GAAA,MAEAowH,GAAA,SAAA7lE,GACA,OAAAA,GAAA,MAAAA,EAAAryD,eAAAtjB,KAAA21E,EAAAr2E,IAAAq2E,EAAApzE,OAEAk5I,GAAA,SAAA9lE,GACA,OAAA6lE,GAAA7lE,IAAA+lE,GAAA/lE,IAEAgmE,GAAA,SAAAhmE,GACA,OAAAA,GAAA,aAAAn/D,KAAAm/D,EAAAryD,WAEAo4H,GAAA,SAAA/lE,GACA,OAAAylE,GAAAzlE,KAAAulE,GAAAvlE,IAEAimE,GAAA,SAAAjmE,GACA,OAAAgmE,GAAAhmE,IAAA+lE,GAAA/lE,IAEAkmE,GAAA,SAAAlmE,GACA,OAAAgmE,GAAAhmE,GAAAz8C,SAAAy8C,EAAAryD,SAAAjI,OAAA,UAEAygI,GAAA,SAAAnmE,GACA,IAAAomE,EAAAR,GAAA5lE,GACAp4B,EAAA,WACAo4B,EAAAr2E,GAAAy8I,GAEA,OAAAZ,GAAA,SAAAE,GAAA1lE,GAAA,IAAAomE,EAAAF,GAAAlmE,GAAAp4B,IAEAy+F,GAAA,SAAArmE,GACA,IAAAsmE,EAAAtmE,EAAAr2E,IAAAq2E,EAAApzE,KACA25I,EAAAb,GAAA1lE,GACA,OAAAwlE,GAAA,SAAAe,GAAA,IAAAD,EAAA,IAAAA,EAAA,EAAA3gJ,IAEA6gJ,GAAA,SAAAC,GACA,OAAAj8I,EAAAK,EAAA47I,EAAAR,IAAAE,KAEAO,GAAA,SAAAD,GACA,OAAAj8I,EAAAK,EAAA47I,EAAAX,IAAAO,KAEAM,GAAA,SAAA3mE,GACA,IAAAymE,EAAAntD,GAAA,kCAAAtZ,GACA,OAAAymE,GAEAG,GAAA,SAAAp1I,GACA,OAAA2zI,GAAA3zI,EAAAq5E,OAAAzkF,OAAA,GAEAygJ,GAAA,SAAA7mE,GACA,IAAAymE,EAAAE,GAAA3mE,GACA,OAAAn1E,EAAA27I,GAAAC,GAAA1/I,OAAA2/I,GAAAD,IAAAG,KAEAE,GAAA,CAAuBh4I,KAAA+3I,IAEvBE,GAAA,sBACAC,GAAA,EACAC,GAAA,SAAA17C,GACA,OAAAx+F,EAAAw+F,IAAA,UAAA1qF,KAAA0qF,IAEA27C,GAAA,SAAAj+I,GACA,OAAAgE,EAAAhE,MAAA7C,QAAA4gJ,IAAAp8I,GAAA3B,EAAAg+I,KAEAE,GAAA,SAAAr+I,GACA,OAAAkE,EAAAlE,IAAAuH,GAAAvH,EAAA,SAAAvC,GACA,OAAA2gJ,GAAA3gJ,KACOkD,UAEP29I,GAAA,WACA,IAIA5L,EAJA6L,EAAA3hJ,EAAA4hJ,aAAAjmE,QAAA0lE,IACA,UAAAM,EACA,SAGA,IACA7L,EAAAtkI,KAAAmpE,MAAAgnE,GACO,MAAA7+I,GACP,GAAAA,aAAA++I,YAEA,OADA7hJ,EAAAiM,QAAAF,IAAA,iBAAAs1I,GAAA,sBAAAv+I,GACA,GAEA,MAAAA,EAEA,OAAA2+I,GAAA3L,GAIAA,GAHA91I,EAAAiM,QAAAF,IAAA,iBAAAs1I,GAAA,wBAAAvL,GACA,KAIAgM,GAAA,SAAAhM,GACA,IAAA2L,GAAA3L,GACA,UAAAr0I,MAAA,4BAAA+P,KAAAC,UAAAqkI,IAEA91I,EAAA4hJ,aAAA3yD,QAAAoyD,GAAA7vI,KAAAC,UAAAqkI,KAEAW,GAAA,SAAAJ,GACA,IAAAP,EAAA4L,KACA,OAAAx/I,OAAAO,UAAAC,eAAAC,KAAAmzI,EAAAO,GAAAP,EAAAO,GAAA,IAEAS,GAAA,SAAAjxC,EAAAwwC,GACA,GAAAkL,GAAA17C,GAAA,CAGA,IAAAiwC,EAAA4L,KACA95F,EAAA1lD,OAAAO,UAAAC,eAAAC,KAAAmzI,EAAAO,GAAAP,EAAAO,GAAA,GACA0L,EAAA58I,EAAAyiD,EAAA,SAAA3rB,GACA,OAAAA,IAAA4pE,IAEAiwC,EAAAO,GAAA,CAAAxwC,GAAAxkG,OAAA0gJ,GAAAh6I,MAAA,EAAAu5I,IACAQ,GAAAhM,KAGAkM,GAAA9/I,OAAAO,UAAAC,eACAu/I,GAAA,SAAAphJ,GACA,QAAAA,GAEAqhJ,GAAA,SAAArhJ,GACA,OAAA0J,GAAAo8H,GAAAub,QAAArhJ,EAAA,QAAAohJ,KAEAttE,GAAA,SAAAtqE,EAAAS,GACA,OAAAk3I,GAAAr/I,KAAA0H,EAAAS,GAAA9E,EAAAP,KAAA4E,EAAAS,IAAA9E,EAAArC,QAEAw+I,GAAA,SAAA7qE,EAAApwE,EAAAk7I,GACA,IAAAvhJ,EAAA8zE,GAAA2C,EAAApwE,GAAA5C,MAAA89I,GACA,OAAA/6I,EAAAxG,GAAAmF,EAAAP,KAAA5E,GAAAmF,EAAArC,QAEA0+I,GAAA,SAAA/qE,GACA,OAAAtxE,EAAAP,KAAA6xE,EAAAgrE,sBAAAn9I,OAAAsC,IAEA86I,GAAA,SAAAjrE,GACA,IAAAkrE,EAAAx8I,EAAAP,KAAA6xE,EAAAmrE,mBAAAt9I,OAAA88I,IACAS,EAAA18I,EAAAP,KAAA6xE,EAAAqrE,6BAAAx9I,OAAA88I,IACAW,EAAAJ,EAAA59I,GAAA89I,GAAA59I,IAAAo9I,IACA,OAAAG,GAAA/qE,GAAAnzE,KAAA,WACA,UACO,SAAA0+I,GACP,OAAAD,EAAAz+I,KAAA,WACA,UACS,SAAA2+I,GACT,OAAA34I,GAAA24I,GAAApiJ,OAAA,GAAAoiJ,OAIAC,GAAA,SAAAzrE,EAAAy/D,GACA,IAAAiM,EAAAT,GAAAjrE,GACA,OAAA9vE,EAAAw7I,GACAA,EAAAX,GAAA/qE,GAAAtxE,EAAArC,OAEAq/I,EAAAjM,GAAAsL,GAAA/qE,GAAAtxE,EAAArC,QAGAg0I,GAAA,SAAAlhE,EAAAsgE,GACA,OAAAgM,GAAAtsE,EAAAa,SAAAy/D,GAAAjyI,IAAA,SAAAulH,GACA,gBAAA44B,GACA,OAAA90C,GAAA5hG,GAAA,SAAAsoI,GACA,IAAA7wH,EAAA,SAAAnjB,EAAAonD,GACA,IAAA5gD,EAAAxG,GACA,UAAAY,MAAA,+BAEA,QAAAkD,IAAAsjD,IAAA3gD,EAAA2gD,GACA,UAAAxmD,MAAA,gCAEA,IAAA2B,EAAA,CACAvC,QACAonD,QAEA4sF,EAAAzxI,IAEA6kD,EAAA0+E,GAAA2D,OAAA,CAAwCyM,YAAqB/wI,EAAAD,KAAAk9I,EAAAh7F,MAAA3jD,MAAA,KAC7D+lH,EAAA1nH,KAAA8zE,EAAAzyD,EAAAi/H,EAAApiJ,MAAAonD,SAKAuuF,GAAA,SAAA//D,GACA,WAAAA,EAAAa,SAAA4rE,eACAl9I,EAAArC,OAEAqC,EAAAP,KAAA,CACA0vI,QAAAiM,GAAAh4I,KAAAqtE,EAAAhuD,WACAitH,UAAAyM,GAAA1rE,EAAAa,SAAA,qBAAA5yE,iBACAkxI,aAAAuM,GAAA1rE,EAAAa,SAAA,2BAAA5yE,oBAGAwyI,GAAA,SAAAzgE,GACA,IAAA0sE,EAAAn9I,EAAAD,KAAA0wE,EAAAa,SAAA8rE,+BAAAj+I,OAAAsC,GACA,OAAA07I,EAAAt+I,QAAA,WACA,OAAAmB,EAAAD,KAAA0wE,EAAAa,SAAA+rE,8BAAAl+I,OAAAsC,MAGA67I,GAAA,SAAA7sE,GACA,OACAggE,cACAK,gBACAN,mBAAA,WACA,OAAAA,GAAA//D,IAEAygE,qBAAA,WACA,OAAAA,GAAAzgE,IAEAkhE,aAAA,SAAAZ,GACA,OAAAY,GAAAlhE,EAAAsgE,MAKAwM,GAAA,SAAA1+F,EAAA4xB,EAAAolE,EAAAM,GACA,IAAAqH,EAAAxqI,IAAA,GACA49D,EAAA,CACAc,OAAA,CACAC,UAAA,CACA7C,MAAA,WACA,OAAA2B,EAAAgI,GAAAC,SAAAC,SAAA7J,OAEA1J,UAAA,WACA,OAAAqL,EAAAgI,GAAAC,SAAAC,SAAAvT,WAEAtsC,UAAAqjD,GAAArjD,WAEAinE,YAAA,SAAA1jG,GACA,OAAA+4I,GAAA/4I,EAAAu0E,IAEAqB,QAAAukE,GAAAF,WAAA7lE,EAAAolE,EAAAM,GACAvkE,QAAA,WACA,OAAA9wE,EAAAjG,MAAAgkD,KAGA41F,SAAA6I,GAAA7sE,GACAgtE,YAAA5E,GAAApoE,GACA6gB,WAAAslD,GAAAnmE,GACAkc,OAAAmqD,GAAArmE,GACAitE,kBAAA,WACA,OAAAF,EAAA34I,OAEA84I,oBAAA,SAAAtyI,GACA,OAAAmyI,EAAAtqI,IAAA7H,KAGA,OAAAulE,GAGAgtE,GAAA,sBACAC,GAAA,sBAEAC,GAAAljJ,EAAA,CACAqW,GAAA,OACAoB,GAAA,YACAsxC,GAAA,qBAAAib,OAEAm/E,GAAA,SAAA/5H,GACA,OAAc4J,WAAAoW,GAAA,CAAA46B,GAAA3wC,OAAA,QAEd+vH,GAAApjJ,EAAA,CAAAgrB,GAAA,CACA1kB,KAAA,SACA+oC,UAAA8zG,OAGAE,GAAA,SAAAj6H,EAAAmO,EAAAjF,EAAAu/E,GACA,IAAAyxC,EAAA,SAAA5gD,EAAA6gD,GACAC,EAAA9gD,GAAAn/F,KAAA,WAEA,MADAnE,EAAAiM,QAAAzF,MAAA,8FACA,IAAA/E,MAAA,+FACS,SAAA+sB,GACTo2C,GAAA1rD,IAAAsV,EAAA21H,MAGAC,EAAA,SAAA3gI,GACA,OAAAuG,EAAAq6H,MAAAr+I,EAAAP,KAAAge,GAAA2qC,GAAA3qC,EAAAuG,EAAA,WAEA7V,EAAA6V,EAAAq6H,MAAA,CACAzwH,WAAA,CAAAgxC,GAAA3wC,OAAA,KACAkE,WAAA,IACO,CACPvE,WAAA,GACAuE,cAEA,OACAvO,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,WAAAhkB,EAAAgkB,WACAvE,WAAAm2B,GAAA//B,EAAAs6H,kBAAAnwI,EAAAyf,YACA6I,KAAA,CAAeynH,aACf7rH,gBAAA,CAA0B3D,WAAA,CAAc2zC,KAAA,YAGxCk8E,GAAA9zF,GAAA,CACAvpD,KAAA,UACAopD,aAAAwzF,KACAtzF,WAAAwzF,KACAz2F,QAAA02F,GACAxnH,KAAA,CACAynH,UAAA,SAAAznH,EAAA6mE,EAAA6gD,GACA1nH,EAAAynH,UAAA5gD,EAAA6gD,OAKAK,GAAA,SAAAn8I,EAAAlI,GACA,IAAAozB,EAAA,CACA1rB,IAAA,EACAgsB,KAAA,IAEAzwB,EAAA+F,EAAAd,EAAA,SAAAvC,EAAAvC,GACA,IAAA1C,EAAAV,EAAAoD,EAAAuC,EAAA+B,KACA,OAAAhH,EAAAsD,KAAAvD,EAAAkF,GAAA,SAAAF,GACA,OACAiC,IAAAjC,EAAA8rC,SACA7d,KAAA/tB,EAAA+tB,KAAAxyB,OAAA,CAAAuE,QAGO2tB,GACP,OAAAnwB,EAAAywB,MAGA4wH,GAAA15H,GAAA,gCACA25H,GAAA,SAAAh3F,EAAAi3F,EAAA98I,GACA,IAAA+8I,EAAAJ,GAAA92F,EAAA,SAAAwc,EAAAztD,GACA,IAAA6jB,EAAAz4B,EAAAqiE,GACA,OAAAlkE,EAAAP,KAAA,CACA4c,QAAAzhB,EAAAspE,GACAjqD,MAAArf,EAAA6b,GACAi1B,OAAA9wC,EAAA6b,EAAA6jB,GACAA,MAAA1/B,EAAA0/B,OAGAukH,EAAA1/I,EAAAy/I,EAAA,SAAA16E,GACA,OAAAA,EAAAx4B,UAAAizG,IAEAG,EAAA77I,EAAA47I,EAAA,SAAA37I,EAAA0f,GACA,OAAA1f,EAAA0f,EAAA0X,SACO,GACPnsB,EAAAywI,EAAA78I,MAAA88I,EAAAnkJ,QACA,OACAmkJ,OAAAjkJ,EAAAikJ,GACA1wI,MAAAvT,EAAAuT,GACA2wI,YAAAlkJ,EAAAkkJ,KAGAC,GAAA,SAAAH,GACA,OAAA9/I,EAAA8/I,EAAA,SAAA16E,GACA,OAAAA,EAAA7nD,aAGA2iI,GAAA,SAAAH,EAAA1wI,EAAA2wI,GACA,IAAAG,EAAAF,GAAAF,EAAAxjJ,OAAA8S,IACA,OAAAswI,GAAAQ,EAAA,GAAAH,IAEAI,GAAA,SAAAL,EAAA1wI,EAAAgxI,EAAAL,GACA,IAAAG,EAAAF,GAAAF,GAAAxjJ,OAAA,CAAA8jJ,IACA,OAAAV,GAAAQ,EAAAF,GAAA5wI,GAAA2wI,IAEAM,GAAA,SAAAP,EAAA1wI,EAAA2wI,GACA,OAAAL,GAAAM,GAAAF,GAAA,GAAAC,IAEAO,GAAA,SAAAV,EAAAj3F,EAAA7lD,GACA,IAAAy9I,EAAAZ,GAAAh3F,EAAAi3F,EAAA98I,GACA,WAAAy9I,EAAAnxI,QAAAzT,OAAAsF,EAAAP,KAAA6/I,GAAAt/I,EAAArC,QAEA4hJ,GAAA,SAAAZ,EAAAj3F,EAAA7lD,EAAAs9I,GACA,IAAAG,EAAAD,GAAAV,EAAAj3F,EAAA7lD,GAAAtD,WAAA,WACA,OAAAmgJ,GAAAh3F,EAAAi3F,EAAA98I,EAAAs9I,GAAAt9I,KAEAg9I,EAAAS,EAAAT,SACA1wI,EAAAmxI,EAAAnxI,QACA2wI,EAAAQ,EAAAR,cACA,WAAA3wI,EAAAzT,QAAAyT,EAAA,GAAAmsB,SAAAz4B,EAAAs9I,GACAH,GAAAH,EAAA1wI,EAAA2wI,GACO3wI,EAAAzT,QAAA,EACPwkJ,GAAAL,EAAA1wI,EAAAgxI,EAAAL,GAEAM,GAAAP,EAAA1wI,EAAA2wI,IAIAU,GAAA,SAAAliD,EAAAmiD,GACA,IAAAC,EAAA5gJ,EAAA2gJ,EAAA,SAAA33F,GACA,OAAAvwB,GAAAuwB,KAEAy2F,GAAAL,UAAA5gD,EAAAoiD,IAEAC,GAAA,SAAAT,EAAAU,GACA,OAAAV,EAAAlgJ,KAAA,SAAA6gJ,GACA,OAAArmI,GAAAqmI,EAAAxjI,WAAArd,KAAA,SAAA8gJ,GACA,OAAAD,EAAAn+H,YAAA2C,SAAAy7H,GAAAz/I,eAEOxB,QAAA,WACP,OAAA+gJ,EAAAzgJ,OAAAygE,GAAAR,cAGAiI,GAAA,SAAAi2B,EAAAt5E,EAAAk7H,EAAA7gG,GACA,IAAAmnB,EAAAld,GAAAg1C,EAAAt5E,EAAA,WACA47H,EAAAx3F,GAAAk1C,EAAAt5E,EAAA,mBACA+7H,EAAAv0C,GAAAT,WAAAzN,EAAA,iBACAvpE,GAAAyxC,EAAAnpD,UAAA,uBACA,IAAA2jI,EAAAL,GAAAT,EAAAU,GACAV,EAAAngJ,KAAA,SAAA8gJ,GACAtB,GAAAL,UAAA2B,EAAA,MAEA,IAAA1B,EAAAn6H,EAAAi8H,YAAAp7I,MACA26I,GAAAh6E,EAAA24E,EAAA9iJ,OAAA,CAAA0kJ,KACA,IAAApB,EAAA3kH,GAAAwrC,EAAAnpD,WACA6jI,EAAAX,GAAAZ,EAAAR,EAAA,SAAAnxH,GACA,OAAAgN,GAAAhN,EAAA3Q,YACO0jI,GACP,IAAAG,EAAA/xI,QAAAzT,QACAkkE,GAAAj3C,OAAA69C,EAAAu6E,GACAb,EAAAngJ,KAAA,SAAA8gJ,GACAtB,GAAAL,UAAA2B,EAAA,QAGAL,GAAAh6E,EAAA06E,EAAArB,UACAK,EAAAngJ,KAAA,SAAA8gJ,GACAL,GAAAK,EAAAK,EAAA/xI,YAGAsmB,GAAA+wC,EAAAnpD,UAAA,cACAqY,GAAA8wC,EAAAnpD,WACA6iI,EAAAngJ,KAAA,SAAA8gJ,GACAD,EAAA7gJ,KAAA,SAAAqjF,GACA,OAAA1gB,GAAAxuD,IAAAkvE,EAAA/jC,EAAAwhG,MAEAG,EAAAjhJ,KAAA6gE,GAAAlgD,UAIAygI,GAAAvlJ,EAAA,CACAqW,GAAA,SACAwuB,GAAA,kBACAkkB,GAAA,oBAAA0Z,OAEA+iF,GAAAxlJ,EAAA,CAAA4a,GAAA,CACAtU,KAAA,QACAgjE,KAAA,WAGAm8E,GAAA,SAAAr8H,EAAAmO,EAAAjF,EAAAu/E,GACA,OACA7oF,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAvE,WAAAm2B,GAAA//B,EAAAs8H,iBAAA,CAAAjjF,GAAApvC,OAAA,CACAkzB,KAAA,OACA7kC,SAAA0H,EAAAyb,QAAA8gH,iBAEAluH,gBAAA,CAA0B3D,WAAA,CAAc2zC,KAAA,cAGxCm+E,GAAA/1F,GAAA,CACAvpD,KAAA,eACAopD,aAAA61F,KACA31F,WAAA41F,KACA74F,QAAA84F,KAGAI,GAAA7lJ,EAAA,CACA+oD,GAAA,0BAAA6nD,KACAz4F,GAAA,yBACA,OAAAC,GAAA,QAGAka,GAAA,SAAAlJ,EAAAmO,EAAAjF,EAAAm6B,EAAAqpB,GACA,IAAAgwE,EAAA,uBACAC,EAAA,SAAArjD,EAAA6gD,GACA,IAAA1gG,EAAA3+C,EAAAq/I,EAAA7gD,EAAA57E,YAAA6J,OACAvH,EAAAi8H,YAAA/sI,IAAAuqC,IAEAygG,EAAA,SAAA5gD,EAAA6gD,GACAwC,EAAArjD,EAAA6gD,GACAztE,EAAAj6C,KAAA4wC,QAAAi2B,IAEAsjD,EAAA,SAAAtjD,GACA,OAAAl1C,GAAAk1C,EAAAt5E,EAAA,oBAEA,OACAJ,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAvE,WAAAm2B,GAAA//B,EAAA68H,uBAAA,CACAr1C,GAAAv9E,OAAA,CACA66C,OAAA7sE,IAAA,GAAwCy0E,EAAAowE,UAAA,CACxCf,cAAA,SAAAziD,GACA,OAAAkjD,GAAA76F,OAAA1pD,IAAA,GAA+DorD,EAAA,sBAC/DzF,MAAA,CAAA4sB,GAAA7oB,OAAA1pD,IAAA,GAA4DorD,EAAA,uBAC5D7jC,OAAA,SAAAu9H,GACA5/H,GAAAm8E,EAAAojD,gBAOAzyH,GAAA,yBAAA5P,GAAAqiI,EAAA,SAAApjD,GACA5sB,EAAAj6C,KAAA2pC,OAAAk9B,SAGA7mE,KAAAx6B,EAAA,CACAiiJ,YACA0C,cAAA,SAAAtjD,GACA,OAAAsjD,EAAAtjD,KAES5sB,EAAAj6C,MACTpE,gBAAA,CAA0B3D,WAAA,CAAc2zC,KAAA,YAIxC2+E,GAAApmJ,EAAA,CACA6kC,GAAA,0BACAxuB,GAAA,aACAgB,GAAA,qBACAhB,GAAA,aACA5V,OAAAolJ,OACAQ,GAAArmJ,EAAA,CACAuqB,GAAA,CACAoiC,QAAAg3F,GACA/vI,OAAAsvI,KACA58I,KAAA,YAEA4lD,GAAA,CACAS,QAAAg3F,GACA/vI,OAAAsvI,KACA58I,KAAA,WACA+oC,UAAA,SAAAjmB,GACA,OACAs6H,kBAAAt6G,GAAA,CAAAq5B,GAAApvC,OAAA,CACAkzB,KAAA,SACA4Q,SAAA,SAAA/kC,GAEA,OADAo7B,GAAAp7B,EAAAhJ,EAAA,mBAAAjlB,KAAA6gE,GAAAlgD,OACA1f,EAAArC,gBAMAmpD,GAAA,CACA5lD,KAAA,kBACA+oC,UAAA,SAAAjmB,GACA,OACA3P,IAAA,CAAkBqa,WAAA,CAAc6zC,gBAAA,SAChCgM,iBAAAvqC,GAAA,CAAA09B,GAAAzzC,OAAA,CACAkyC,YAAAn8C,EAAAyb,QAAAyhH,qBACAjhF,KAAA,CAAuB9e,KAAA,YACvB0f,iBAAA,UAKA/Z,GAAA,CAAkB5lD,KAAA,qBAGlBigJ,GAAA,SAAA7jD,EAAAt5E,EAAAqjC,GACA,IAAAhK,EAAAmuD,GAAAT,WAAAzN,EAAA,WACA99C,GAAAnB,OAAAhB,GACAmC,GAAAtB,MAAAb,GAEAmC,GAAA9B,KAAAL,EAAAgK,EAAA63F,aAGAkC,GAAA,SAAAC,GACA,OAAAA,EAAA3/H,YAAAqK,eAEAu1H,GAAA,SAAAhkD,EAAAt5E,EAAA67H,GACA,IAAAhhG,EAAA76B,EAAAgoD,SAAAsxB,GAAA9+F,WACAyiC,EAAAjd,EAAA0nF,UAAApO,GACAjjE,EAAArW,EAAAu9H,kBAAAziJ,IAAA,SAAA0iJ,GACA,OAAAA,MAEAzlG,GAAAV,qBAAAwD,EAAA5d,EAAA4+G,EAAAxlH,IAEAonH,GAAA,SAAAnkD,EAAAt5E,GACA,IAAAk7H,EAAA1/F,GAAAjB,SAAAitD,GAAAT,WAAAzN,EAAA,YACAj2B,GAAAi2B,EAAAt5E,EAAAk7H,EAAAkC,IACAlC,EAAAngJ,KAAA,SAAA8gJ,GACA,OAAAyB,GAAAhkD,EAAAt5E,EAAA67H,MAGA6B,GAAA,SAAApkD,EAAAt5E,GACA,IAAAk7H,EAAA1/F,GAAAjB,SAAAitD,GAAAT,WAAAzN,EAAA,YACA4hD,EAAAngJ,KAAA,SAAA8gJ,GACA,OAAAyB,GAAAhkD,EAAAt5E,EAAA67H,MAGA8B,GAAA,SAAArkD,EAAAt5E,GACA,IAAAspF,EAAA1wE,KACAghB,EAAA,SAAAP,EAAAwiG,GACA4B,GAAAnkD,EAAAt5E,GACAokC,GAAAk1C,EAAAt5E,EAAA,mBAAAjlB,KAAA,SAAAqjF,GACA1gB,GAAAh3B,GAAA03C,GACAkrB,EAAAxwE,KAAAslD,EAAA/lE,aAEAghD,GAAAnN,QAAA2vF,IAEA1hG,EAAA,WACAiK,GAAAk1C,EAAAt5E,EAAA,mBAAAjlB,KAAA,SAAAqjF,GACA1gB,GAAArpB,IAAA+pC,GACAxiB,GAAAlgD,MAAA0iE,GACAkrB,EAAAvwE,OAAAqlD,EAAA/lE,cAGA,OACAhI,IAAA,CACAL,IAAA,MACA0a,WAAA,CAAuBzwB,GAAAqvG,EAAArvG,OAEvB2vB,WAAAoW,GAAA,CACAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACA4Q,SAAA,SAAA/kC,GAEA,OADAwyB,GAAAtB,MAAAlxB,GACAhtB,EAAAP,MAAA,MAGA+/C,GAAAvxB,OAAA,CACA2vB,SACAO,UACAlhB,SAAA,SAAAzU,EAAA/G,EAAAgb,GACA,OAAAQ,GAAAxb,EAAAgb,IAAAQ,GAAAqgE,EAAA7gE,IAEA+gB,eAAA,WACA,OAAAx5B,EAAAgoD,SAAAsxB,GAAA9+F,cAGA2mC,GAAAlX,OAAA,CACAuW,SAAAvoC,EAAA,GAAiCmkD,GAAA,CACjCJ,YAAAplD,GAAA,GACAylD,aAAA,WACA,OAAAqhG,GAAApkD,EAAAt5E,aAOA49H,GAAA,SAAA59H,EAAAmO,EAAA0vH,EAAAx6F,GACA,OAAAn6B,GAAAlJ,EAAAmO,EAAA0vH,EAAAx6F,EAAA,CACAy5F,SAAA,CACAzjG,QAAA,SAAAigD,GACA,OAAAqkD,GAAArkD,EAAAt5E,KAGAyS,KAAA,CACA4wC,QAAA,SAAAi2B,GACA,OAAAmkD,GAAAnkD,EAAAt5E,IAEAo8C,OAAA,SAAAk9B,GACA,OAAA6jD,GAAA7jD,EAAAt5E,EAAAqjC,IAEAy6F,YAAA,SAAAxkD,GACA,OAAA99C,GAAAjB,SAAAitD,GAAAT,WAAAzN,EAAA,aAEAr1D,WAAA,SAAAq1D,GACA,OAAAokD,GAAApkD,EAAAt5E,QAKA+9H,GAAAt3F,GAAA,CACAvpD,KAAA,uBACAopD,aAAA02F,KACAx2F,WAAAy2F,KACA15F,QAAAq6F,GACAnrH,KAAA,CACAynH,UAAA,SAAAznH,EAAA6mE,EAAA6gD,GACA1nH,EAAAynH,UAAA5gD,EAAA6gD,IAEA92E,QAAA,SAAA5wC,EAAA6mE,GACA7mE,EAAA4wC,QAAAi2B,IAEAr1D,WAAA,SAAAxR,EAAA6mE,GACA7mE,EAAAwR,WAAAq1D,IAEAsjD,cAAA,SAAAnqH,EAAA6mE,GACA,OAAA7mE,EAAAmqH,cAAAtjD,IAEAwkD,YAAA,SAAArrH,EAAA6mE,GACA,OAAA7mE,EAAAqrH,YAAAxkD,IAEAl9B,OAAA,SAAA3pC,EAAA6mE,GACA7mE,EAAA2pC,OAAAk9B,OAKA0kD,GAAA,SAAAvkI,EAAAwkI,GACA,OAAAA,EAAAD,iBAAA7jJ,KAAA,WACA,OAAAsf,EAAApB,WACO,SAAAxX,GACP,OAAAA,EAAA4Y,MAIAykI,GAAA,SAAAD,GACA,OAAAA,EAAAE,UAAAxuH,UAEAyuH,GAAA,SAAAH,EAAAzlI,GACA,OAAAylI,EAAAE,UAAAC,aAAA5lI,IAEA6lI,GAAA,SAAA5kI,EAAAwkI,GACA,IAAAjvG,EAAAgvG,GAAAvkI,EAAAwkI,GACA3uH,GAAA0f,EAAA,CACAivG,EAAAK,eACAL,EAAAM,gBAGAC,GAAA,SAAA/kI,EAAAwkI,GACA9uH,GAAA1V,EAAApB,UAAA4lI,EAAAjV,WACA/5G,GAAAxV,EAAApB,UAAA4lI,EAAAQ,aACA1uH,GAAAtW,EAAApB,UAAA6lI,GAAAD,GAAA,OACAvtH,GAAAjX,EAAApB,YAEAqmI,GAAA,SAAAjlI,EAAAwkI,GACA9uH,GAAA1V,EAAApB,UAAA4lI,EAAAQ,aACAxvH,GAAAxV,EAAApB,UAAA4lI,EAAAjV,WACAv4G,GAAAhX,EAAApB,UAAA6lI,GAAAD,KAEAU,GAAA,SAAAllI,EAAAwkI,EAAAW,EAAAC,GACAD,EAAAE,eACA/uH,GAAAtW,EAAApB,UAAA6lI,GAAAD,GAAAG,GAAAH,EAAAxkI,EAAApB,YACAqY,GAAAjX,EAAApB,WACAgmI,GAAA5kI,EAAAwkI,GACAO,GAAA/kI,EAAAwkI,GACAA,EAAAc,cAAAtlI,GACAwkI,EAAAe,SAAAvlI,IAEAwlI,GAAA,SAAAxlI,EAAAwkI,EAAAW,EAAAM,GACA,IAAAvgJ,EAAAugJ,EAAA3kJ,WAAA,WACA,OAAA6jJ,GAAAH,EAAAxkI,EAAApB,aAEAumI,EAAAE,eACA/uH,GAAAtW,EAAApB,UAAA6lI,GAAAD,GAAAt/I,GACA+xB,GAAAjX,EAAApB,WACA,IAAA22B,EAAAgvG,GAAAvkI,EAAAwkI,GACA9uH,GAAA6f,EAAAivG,EAAAM,cACAtvH,GAAA+f,EAAAivG,EAAAK,gBACAE,GAAA/kI,EAAAwkI,GACAA,EAAAc,cAAAtlI,IAEA0lI,GAAA,SAAA1lI,EAAAwkI,EAAAW,GACA,IAAAjgJ,EAAAy/I,GAAAH,EAAAxkI,EAAApB,WACA+mI,EAAA,QAAAzgJ,EAAAggJ,GAAAM,GACAG,EAAA3lI,EAAAwkI,EAAAW,EAAA5iJ,EAAAP,KAAAkD,KAEA0gJ,GAAA,SAAA5lI,EAAAwkI,EAAAW,GACA,IAAA5vG,EAAAgvG,GAAAvkI,EAAAwkI,GACAqB,EAAAlwH,GAAA4f,EAAAivG,EAAAK,gBACAiB,EAAAnB,GAAAH,EAAAxkI,EAAApB,WACAqmI,GAAAjlI,EAAAwkI,GACA,IAAAuB,EAAApB,GAAAH,EAAAxkI,EAAApB,WACAonI,EAAA,WACA1vH,GAAAtW,EAAApB,UAAA6lI,GAAAD,GAAAsB,GACA7uH,GAAAjX,EAAApB,YAEAqnI,EAAA,WACAlB,GAAA/kI,EAAAwkI,IAEA0B,EAAAL,EAAAG,EAAAC,EACAC,IACAxwH,GAAA6f,EAAAivG,EAAAK,gBACArvH,GAAA+f,EAAAivG,EAAAM,cACAG,GAAAjlI,EAAAwkI,GACAluH,GAAAtW,EAAApB,UAAA6lI,GAAAD,GAAAuB,GACAZ,EAAAgB,cACA3B,EAAA4B,YAAApmI,IAEAqmI,GAAA,SAAArmI,EAAAwkI,EAAAW,GACA,GAAAA,EAAAmB,aAAA,CACAtvH,GAAAhX,EAAApB,UAAA6lI,GAAAD,IACA,IAAAuB,EAAApB,GAAAH,EAAAxkI,EAAApB,WACA0X,GAAAtW,EAAApB,UAAA6lI,GAAAD,GAAAuB,KAGAQ,GAAA,SAAAvmI,EAAAwkI,EAAAW,GACAA,EAAAmB,cACAV,GAAA5lI,EAAAwkI,EAAAW,IAGAqB,GAAA,SAAAxmI,EAAAwkI,EAAAW,GACAA,EAAAmB,cACAZ,GAAA1lI,EAAAwkI,EAAAW,IAGAsB,GAAA,SAAAzmI,EAAAwkI,EAAAW,GACAA,EAAAmB,cACApB,GAAAllI,EAAAwkI,EAAAW,IAGAuB,GAAA,SAAA1mI,EAAAwkI,EAAAW,GACA,OAAAA,EAAAmB,cAEAK,GAAA,SAAA3mI,EAAAwkI,EAAAW,GACA,OAAAA,EAAAyB,eAEAC,GAAA,SAAA7mI,EAAAwkI,EAAAW,GACA,IAAA5vG,EAAAgvG,GAAAvkI,EAAAwkI,GACA,WAAA7uH,GAAA4f,EAAAivG,EAAAM,eAEAgC,GAAA,SAAA9mI,EAAAwkI,EAAAW,GACA,IAAA5vG,EAAAgvG,GAAAvkI,EAAAwkI,GACA,WAAA7uH,GAAA4f,EAAAivG,EAAAK,iBAEAkC,GAAA,SAAA/mI,EAAAwkI,EAAAW,GACA,WAAA0B,GAAA7mI,EAAAwkI,KAAA,IAAAsC,GAAA9mI,EAAAwkI,IAEAwC,GAAA,SAAAhnI,EAAAwkI,EAAAW,GACA,IAAAzoJ,EAAAyoJ,EAAAmB,aAAAZ,GAAAE,GACAlpJ,EAAAsjB,EAAAwkI,EAAAW,IAGA8B,GAAAxoJ,OAAAsD,OAAA,CACA6nE,QAAAy8E,GACAE,QACAC,UACAC,mBACAC,YACAC,aACAE,aACAC,eACAC,mBACAC,cACApC,wBAGAsC,GAAA,SAAAh9I,EAAAs6I,GACA,IAAAxgF,EAAAwgF,EAAAxgF,SACA,OAAAjzC,GAAAizC,EAAA,CACAhzC,QAAA,CAAAwzH,EAAAjV,WACAr+G,OAAA,IACO,CACPF,QAAA,CAAAwzH,EAAAQ,aACA9zH,OAAAzlB,GAAA+4I,EAAAE,UAAAxuH,SAAA,UAGAixH,GAAA,SAAA3C,EAAAW,GACA,OAAAz/H,GAAA,CAAAuB,GAAApF,KAAA,SAAA7B,EAAAC,GACA,IAAA6W,EAAA7W,EAAAC,QAAA4W,MACA,GAAAA,EAAAswH,eAAA5C,EAAAE,UAAAxuH,SAAA,CACA0uH,GAAA5kI,EAAAwkI,GACAW,EAAAmB,cACAtvH,GAAAhX,EAAApB,UAAA4lI,EAAAE,UAAAxuH,UAEA,IAAA80E,EAAAm6C,EAAAmB,aAAA9B,EAAA6C,QAAA7C,EAAAe,SACAv6C,EAAAhrF,SAKAsnI,GAAA7oJ,OAAAsD,OAAA,CACA2vB,QAAAw1H,GACAh7H,OAAAi7H,KAGAI,GAAA,CACA/zI,GAAA,eACAA,GAAA,aACAA,GAAA,kBACAA,GAAA,gBACAY,GAAA,oBACA+tB,GAAA,YACAA,GAAA,iBACAA,GAAA,WACAA,GAAA,eACAvtB,GAAA,eACAnB,GAAA,YAAAlB,GAAA,YACAsqB,MAAA,CACA/2B,GAAA,oBACAA,GAAA,wBAAAiZ,GACA,OAAAwd,GAAAxd,GAAA,QAGA6b,OAAA,CACA90B,GAAA,qBACAA,GAAA,wBAAAiZ,GACA,OAAA+b,GAAA/b,GAAA,YAMAyoI,GAAA,SAAA/3H,GACA,IAAA7hB,EAAA2H,GAAAka,EAAAu0C,UACAh0C,EAAA,WACA,mBAAApiB,EAAAxG,OAEA,OAAA2oB,GAAA,CACAu2H,WAAA,WACA,WAAA14I,EAAAxG,OAEAw/I,YAAA,WACA,WAAAh5I,EAAAxG,OAEAi+I,aAAA9nJ,EAAAqQ,EAAA6H,KAAA,GACA0wI,YAAA5oJ,EAAAqQ,EAAA6H,KAAA,GACAua,eAIAy3H,GAAAhpJ,OAAAsD,OAAA,CACA+tB,KAAA03H,KAGAE,GAAAhhH,GAAA,CACAt8B,OAAAm9I,GACA9jJ,KAAA,UACA0hC,OAAAmiH,GACAtuH,KAAAiuH,GACAr5I,MAAA65I,KAGAE,GAAAxqJ,EAAA,CACA6kC,GAAA,CACA,cACA,YACA,iBACA,eACA,yBAEAG,GAAA,YACAA,GAAA,aACAvkC,OAAAolJ,OACA4E,GAAAzqJ,EAAA,CACAuqB,GAAA,CACAoiC,QAAAg3F,GACA/vI,OAAAsvI,KACA58I,KAAA,YAEAikB,GAAA,CACAoiC,QAAAg3F,GACA/vI,OAAAsvI,KACA58I,KAAA,WACA+oC,UAAA,SAAAjmB,GACA,OACAs6H,kBAAAt6G,GAAA,CACAmhH,GAAAl3H,OAAA,CACAk0H,UAAA,CAA4BxuH,SAAA,UAC5B8uH,YAAAz+H,EAAAyb,QAAAgjH,YACAzV,UAAAhpH,EAAAyb,QAAAutG,UACAsV,eAAAt+H,EAAAyb,QAAA6iH,eACAC,aAAAv+H,EAAAyb,QAAA8iH,aACAS,SAAA,SAAAh2H,GACAo7B,GAAAp7B,EAAAhJ,EAAA,mBAAAjlB,KAAA,SAAAqjF,GACA1gB,GAAArpB,IAAA+pC,GACAxiB,GAAAlgD,MAAA0iE,KAEAp+D,EAAAshI,SAAAt4H,IAEA83H,QAAA,SAAA93H,GACAqwC,GAAAnN,QAAAljC,GACAhJ,EAAAuhI,SAAAv4H,IAEA62H,YAAA,SAAA72H,GACAo7B,GAAAp7B,EAAAhJ,EAAA,mBAAAjlB,KAAA2iE,GAAAh3B,OAGA2yB,GAAApvC,OAAA,CACAkzB,KAAA,UACA4Q,SAAA,SAAA/kC,GAEA,OADAo7B,GAAAp7B,EAAAhJ,EAAA,mBAAAjlB,KAAA6gE,GAAAlgD,OACA1f,EAAAP,MAAA,YAOAqnD,GAAA,CACA5lD,KAAA,kBACA+oC,UAAA,SAAAjmB,GACA,OACAuqD,iBAAAvqC,GAAA,CAAA09B,GAAAzzC,OAAA,CACAkyC,YAAAn8C,EAAAyb,QAAAyhH,qBACAjhF,KAAA,CAAuB9e,KAAA,WACvB0f,iBAAA,UAKA/Z,GAAA,CAAkB5lD,KAAA,qBAGlBskJ,GAAA,SAAAloD,EAAAt5E,GACAokC,GAAAk1C,EAAAt5E,EAAA,YAAAjlB,KAAA,SAAA8gJ,GACA4F,GAAAnoD,EAAAt5E,GACAmhI,GAAAV,WAAA5E,MAGA6F,GAAA,SAAA7F,GACA,OAAAsF,GAAAhB,SAAAtE,IAEA4F,GAAA,SAAAnoD,EAAAt5E,GACA,IAAAk7H,EAAA92F,GAAAk1C,EAAAt5E,EAAA,YACAqjD,GAAAi2B,EAAAt5E,EAAAk7H,EAAAwG,IACAxG,EAAAngJ,KAAAomJ,GAAA99E,UAEAs+E,GAAA,SAAA3hI,EAAAmO,EAAA0vH,EAAAx6F,GACA,OAAAn6B,GAAAlJ,EAAAmO,EAAA0vH,EAAAx6F,EAAA,CACAy5F,SAAA,GACArqH,KAAA,CACA4wC,QAAA,SAAAi2B,GACA,OAAAmoD,GAAAnoD,EAAAt5E,IAEAo8C,OAAA,SAAAk9B,GACA,OAAAkoD,GAAAloD,EAAAt5E,IAEA89H,YAAA,SAAAxkD,GACA,OAAAl1C,GAAAk1C,EAAAt5E,EAAA,iBAKA4hI,GAAAn7F,GAAA,CACAvpD,KAAA,sBACAopD,aAAA86F,KACA56F,WAAA66F,KACA99F,QAAAo+F,GACAlvH,KAAA,CACAynH,UAAA,SAAAznH,EAAA6mE,EAAA6gD,GACA1nH,EAAAynH,UAAA5gD,EAAA6gD,IAEA92E,QAAA,SAAA5wC,EAAA6mE,GACA7mE,EAAA4wC,QAAAi2B,IAEAsjD,cAAA,SAAAnqH,EAAA6mE,GACA,OAAA7mE,EAAAmqH,cAAAtjD,IAEAwkD,YAAA,SAAArrH,EAAA6mE,GACA,OAAA7mE,EAAAqrH,YAAAxkD,IAEAl9B,OAAA,SAAA3pC,EAAA6mE,GACA7mE,EAAA2pC,OAAAk9B,OAKAuoD,GAAAjrJ,EAAAmvB,GAAA,0BAEA+7H,GAAA,kBACAC,GAAAh7I,GAAA,CAAAuG,GAAA,cACA00I,GAAA,SAAA3pI,EAAAhR,GACAjQ,GAAA,IAAAihB,aAAA4pI,QAAA,SAAA3xE,GACAj4D,EAAAqF,YAAA2C,SAAAiwD,GAAAv1E,KAAA,SAAAiuB,GACAA,EAAAwJ,cAAA2rD,KACAA,GAAAjvE,IAAA8Z,EAAA3hB,QAKA66I,GAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAF,EAAAE,eACAvgJ,EAAAugJ,EAAAhqI,UACA+pI,IACAD,EAAAG,WAAAz6H,YAAA,CAAA4zB,MAAA,CAAgE35C,WAChEqgJ,EAAAx1E,aAAA9kD,YAAA,CAAA4zB,MAAA,CAAkE35C,YAElEqgJ,EAAAG,WAAAz6H,YAAA,CAAAi6H,IAAA,CAA8DM,aAC9DD,EAAAx1E,aAAA9kD,YAAA,CAAAi6H,IAAA,CAAgEM,cAEhEG,GAAA,SAAAJ,EAAAC,GACA,IAAAC,EAAAF,EAAAE,eACAH,GAAAC,EAAAC,GACAhrJ,GAAA,IAAAirJ,EAAAhqI,WAAA4pI,QAAA,SAAA3xE,GACA+xE,EAAA3kI,YAAA2C,SAAAiwD,GAAAv1E,KAAA,SAAAiuB,GACAA,EAAAwJ,cAAA2rD,KACAA,GAAAjvE,IAAA8Z,EAAAo5H,QAKAI,GAAA,SAAA/1E,EAAA01E,GACA11E,EAAA/lC,GAAA,kBACA+lC,EAAA21E,UACAG,GAAAJ,GAAA,KAGA11E,EAAA/lC,GAAA,wBACA,OAAA67G,GAAAJ,EAAA11E,EAAA21E,YAEA/pD,GAAA5rB,IACAA,EAAAg2E,QAAA,aAGAC,GAAA,SAAA5E,GACA,IAAA/qH,EACA,OAAAoO,GAAAlX,OAAA,CACAuW,UAAAzN,EAAA,GAA0BA,EAAA+uH,IAAA,CAC1Bt3I,OAAAu3I,GACA/gH,UAAA,SAAAhY,EAAAvL,GACAqgI,EAAA90H,GAAAjuB,KAAA,SAAAu+F,GACA0oD,GAAA1oD,EAAA77E,EAAA2kI,cAGSrvH,MAIT4vH,GAAA,SAAAC,GACA,IAAAl4H,EAAAk4H,EAAAznE,MAAAhhF,KAAA,WACA,UACO,SAAAghF,GACP,OAAgBzwD,WAAA,CAAcywD,YAE9B,OACA9qE,IAAApY,EAAA,CACA+X,IAAA,MACAya,QAAA,wBACSC,GACTyD,WAAA,CAAAquH,GAAA3iI,QAAA+jC,MAAA,KACAA,MAAAglG,EAAAhlG,MACAniB,QAAA,CAAkB8gH,aAAA,gIAClBD,iBAAAt8G,GAAA,CACAomE,GAAAn8E,OAAA,IACA2xC,GAAA3xC,OAAA,QAIA44H,GAAA,SAAAD,GACA,OAAApG,GAAA76F,OAAAghG,GAAAC,KAEAE,GAAA,SAAAC,EAAAC,EAAAlF,GACA,IAAAmF,EAAAtiI,GAAA,SAAAlH,GACA,IAAA0gI,EAAAr/I,EAAAioJ,EAAAG,WAAAL,IACAtI,GAAAL,UAAAzgI,EAAA0gI,KAEA,OAAAn6G,GAAA,CACAq5B,GAAApvC,OAAA,CACAkzB,KAAA6lG,EACAj1F,SAAAg1F,EAAAh1F,SACAz1C,SAAA,wBAEA2R,GAAA,kBAAAg5H,IACAP,GAAA5E,MAGAqF,GAAA,SAAAJ,EAAAjF,GACA,IAAAkF,EAAAD,EAAAK,aAAA,mBACA,OACAxjI,IAAAmjI,EAAAnjI,IACAvP,IAAA,CACAL,IAAA,MACAya,QAAA,0BAEA5Q,MAAA,CACAwpI,iBAAAV,GAAA,CACAxnE,MAAAn/E,EAAArC,OACAikD,MAAA,KAEA0lG,kBAAAlxB,GAAA,CACAl1H,KAAA,OACA+uE,KAAAjwE,EAAAP,KAAA,eACAqhF,UAAA,EACAvF,QAAAv7E,EAAAP,KAAA,WACA+lE,SAAA,EACAixD,YAAA,GACWz2H,EAAArC,OAAAopJ,EAAAn2E,UAAAc,OAAAC,YAEXkvE,uBAAAiG,GAAAC,EAAAC,EAAAlF,KAGAyF,GAAA,SAAAR,GACA,IAAAS,EAAAL,GAAAJ,EAAAhF,GAAAD,aACA2F,EAAA,EACAjiF,EAAAu8E,GAAAlkI,QAAA2nD,QAAA,CACAnxD,IAAA,CACAL,IAAA,MACAya,QAAA,4BAGA,OAAAszH,GAAAp8F,OAAA1pD,IAAA,GAA6DurJ,GAAA,CAC7Dx7E,SAAA+6E,EAAAn1E,QACA85B,UAAA,WACA,OAAAq7C,EAAAn2E,UAAAc,OAAAO,QAAAskE,mBAEAgL,kBAAA,WACA,IAAAmG,EAAAX,EAAAY,eAAAC,aAAAvrI,UACAwrI,EAAA3rH,GAAAwrH,GACAI,EAAA/hI,GAAA2hI,GACAK,EAAA7rH,GAAA4rH,GACA,OAAA/rH,GAAA8rH,EAAA9sJ,IAAA0sJ,EAAAM,EAAAvzI,IAAAqzI,EAAAvtH,QAAA,EAAAmtH,EAAAM,EAAA1vH,WAEAxa,MAAA5hB,IAAA,GAAmCurJ,EAAA3pI,OAAA,CACnCqhI,SAAA,CACA7qI,IAAA,CACAL,IAAA,MACAya,QAAA,8BAIA0D,WAAA,CAAAqzC,GACA/lC,QAAA,CAAkByhH,qBAAA,yBAGlB8G,GAAA,SAAAjB,GACA,IAAAvhF,EAAAogF,GAAA/nI,QAAA2nD,QAAA,CACAnxD,IAAA,CACAL,IAAA,MACAya,QAAA,4BAGAywH,EAAA0G,GAAA/nI,QAAAqhI,SAAA,CACA7qI,IAAA,CACAL,IAAA,MACAya,QAAA,6BAGA+4H,EAAAL,GAAAJ,EAAAnB,GAAA9D,aACA,OAAA8D,GAAAjgG,OAAA1pD,IAAA,GAA4DurJ,GAAA,CAC5Dr1H,WAAA,CACAqzC,EACA05E,GAEAz/G,QAAA,CACAutG,UAAA,8BACAyV,YAAA,gCACAF,aAAA,iCACAD,eAAA,mCACApB,qBAAA,qBAEAqE,SAAA,SAAAv4H,GACAA,EAAAtL,YAAAmK,YAAA,CAAAg6H,MAAA,CAAiEzkJ,KAAA,YAEjEkkJ,SAAA,SAAAt4H,GACAA,EAAAtL,YAAAmK,YAAA,CAAAg6H,MAAA,CAAiEzkJ,KAAA,gBAIjE6mJ,GAAA,SAAAlB,GACA,IAAAC,EAAAD,EAAAK,aAAA,mBACA,OAAA7I,GAAA54F,OAAA,CACA/hC,IAAAmjI,EAAAnjI,IACAvP,IAAA,CACAL,IAAA,MACAya,QAAA,gBAAApzB,OAAA0rJ,EAAA3lJ,OAAA45F,GAAAktD,UAAA,gCAEA/1H,WAAA,CAAAosH,GAAA1gI,QAAAsgI,OAAA,KACAG,kBAAAwI,GAAAC,EAAAC,EAAApsJ,EAAAoF,EAAArC,YAIAwqJ,GAAA,CACAz1I,GAAA,eACAV,GAAA,WACAA,GAAA,QACAA,GAAA,QACAW,GAAA,qBACA,OAAA1Y,KAGAmuJ,GAAAr9I,GAAA,CACAqG,GAAA,QACAG,GAAA,aACAlW,OAAA8sJ,KACAE,GAAA,SAAAn7H,GACA,OAAAxd,GAAA,gBAAA04I,GAAAl7H,IAGAo7H,GAAA,CACAt2I,GAAA,QACAA,GAAA,WACAA,GAAA,QACAT,GAAA,SACAoB,GAAA,qBACA,OAAA1Y,KAIAsuJ,GAAAx9I,GAAA7N,EAAA,CAAAkU,GAAA,SAAAk3I,KACAE,GAAA,SAAAt7H,GACA,OAAAxd,GAAA,aAAA64I,GAAAr7H,IAGAu7H,GAAA19I,GAAA,CACAqG,GAAA,QACAY,GAAA,WACAA,GAAA,QACAA,GAAA,QACAC,GAAA,UACAV,GAAA,SACAoB,GAAA,qBACA,OAAA1Y,IAEAwY,GAAA,oBACA,SACA,QACA,gBAEAJ,GAAA,aACAd,GAAA,YACAA,GAAA,kBAEAm3I,GAAA,SAAAx7H,GACA,OAAAxd,GAAA,cAAA+4I,GAAAv7H,IAGAy7H,GAAA,CAAAj2I,GAAA,cAAArX,OAAA8sJ,IACAS,GAAA79I,GAAA49I,GAAAttJ,OAAA,CACA+V,GAAA,QACAG,GAAA,eAEAs3I,GAAA,SAAA37H,GACA,OAAAxd,GAAA,eAAAk5I,GAAA17H,IAGA47H,GAAA,CACAn2I,GAAA,uBACA,WAEAF,GAAA,gBACA,OACA,WAEAA,GAAA,wBACA,OACA,YACA,UAGAs2I,GAAAZ,GAAA9sJ,OAAA,CACAgX,GAAA,4BACAA,GAAA,cACAd,GAAA,YACAwB,GAAA,WAAAjY,KAEAkuJ,GAAAL,GAAAttJ,OAAA,CACAgX,GAAA,4BACAA,GAAA,cACAd,GAAA,YACAwB,GAAA,WAAAjY,KAEAmuJ,GAAAd,GAAA9sJ,OAAA,CAAAgX,GAAA,8BACA62I,GAAAP,GAAAttJ,OAAA,CAAAgX,GAAA,oCACA82I,GAAAn5I,GAAA,QACAo5I,kBAAAL,GACAM,wBAAAL,KAEAM,GAAAv+I,GAAA,CACAsH,GAAA,sBACAM,GAAA,uBACA,WAEAX,GAAA,SACAJ,GAAA,WAAAu3I,IACAr3I,GAAA,SAAA9B,GAAA,QACAo5I,kBAAAH,GACAI,wBAAAH,OAEA7tJ,OAAAytJ,KACAS,GAAAx+I,GAAA,CACAsH,GAAA,yBACAjB,GAAA,UACA/V,OAAAytJ,KACAU,GAAA,SAAAt8H,GACA,OAAAxd,GAAA,iBAAA65I,GAAAr8H,IAEAu8H,GAAA,SAAAv8H,GACA,OAAAxd,GAAA,cAAA45I,GAAAp8H,IAGAw8H,GAAA,SAAAjsI,EAAAigD,EAAAisF,GACA,OAAAA,GAGAC,GAAA1tJ,OAAAsD,OAAA,CACA++C,SAAAmrG,KAGAG,GAAA,SAAAC,EAAAC,GACA,IAAApoG,EAAA,SAAAlkC,EAAAgE,GACAqoI,EAAAE,YAAAjrJ,KAAA,SAAAirJ,GACA,IAAArsG,EAAAqsG,EAAAvsI,EAAAgE,GACAsoI,EAAA72I,IAAAyqC,KAEAmsG,EAAAG,iBAAAlrJ,KAAA,SAAAkrJ,GACA,IAAAC,EAAAD,EAAAxoI,EAAAsoI,EAAAllJ,OACAy3C,EAAAx9C,EAAAorJ,EAAAzsI,EAAAiE,YAAA6J,OACA8wB,GAAA5+B,EAAA6+B,MAGA,OAAAn5B,GAAA,CACA9E,GAAAwB,KAAA,SAAApC,EAAAhd,GACA,IAAA0pJ,EAAAL,EAAAK,QACA7nJ,EAAA7B,EAAA+jC,WAAA2lH,IACAxoG,EAAAlkC,EAAAhd,EAAAghB,UAGAkD,GAAA,SAAAqI,EAAAg0B,GACA8oG,EAAAt7D,YAAAzvF,KAAA,SAAAqrJ,GACAzoG,EAAA30B,EAAAo9H,UAMAC,GAAAnuJ,OAAAsD,OAAA,CACAmqB,OAAAkgI,KAGAS,GAAA,SAAAp9H,GACA,IAAAsrC,EAAAxlD,GAAAhT,EAAArC,QACAuV,EAAA,SAAAq3I,GACA,OAAA/xF,EAAAtlD,IAAAq3I,IAEAnsG,EAAA,WACA,OAAAoa,EAAAtlD,IAAAlT,EAAArC,SAEAkH,EAAA,WACA,OAAA2zD,EAAA3zD,OAEA4oB,EAAA,WACA,OAAA+qC,EAAA3zD,MAAA1G,KAAA,WACA,cACS,SAAApD,GACT,OAAAA,KAGA,OACA0yB,YACA5oB,MACAqO,MACAkrC,UAIAosG,GAAAtuJ,OAAAsD,OAAA,CACA+tB,KAAA+8H,KAGAG,GAAA,CACAx5I,GAAA,WACAY,GAAA,oBACAA,GAAA,eACAA,GAAA,gBAGA64I,GAAAvmH,GAAA,CACAt8B,OAAA4iJ,GACAvpJ,KAAA,aACA0hC,OAAAynH,GACA5zH,KAAAmzH,GACAv+I,MAAAm/I,KAGAG,GAAA/vJ,EAAA,CACAqW,GAAA,eACAA,GAAA,SACA6uB,GAAA,aACAztB,GAAA,aAAArS,EAAAP,MACA4S,GAAA,qBAAAzX,EAAA,KACAyX,GAAA,UAAArS,EAAArC,QACAmiC,GAAA,iBACAjuB,GAAA,YACAZ,GAAA,OACA2uB,GAAA,UACA+jB,GAAA,2BACA6nD,GACAnuC,GACAuC,KAEAvtD,GAAA,iBACAA,GAAA,kBACAA,GAAA,iBACAR,GAAA,SACAxW,OAAAoyG,OACAm9C,GAAAzlI,GAAA,CACAoiC,QAAAinB,GACAhgE,OAAA,CAAAyC,GAAA,QACA/P,KAAA,QACAimD,SAAA,SAAAnjC,GACA,OAAgBuqD,iBAAAvqC,GAAA,CAAA47B,GAAAl8B,aAEhBuG,UAAA,SAAAjmB,GACA,OACA3P,IAAA,CACAL,IAAA,OACA0a,WAAA,CAAyB2zC,KAAA,iBAEzB7+C,OAAA,SAAAqnI,GACAA,EAAAnpI,YAAAmC,SAAAG,EAAAJ,KAAA7kB,KAAAwiB,KAEAgtD,iBAAAvqC,GAAA,CAAA09B,GAAAzzC,OAAA,CACA4yC,iBAAA,EACAV,YAAAn8C,EAAAm8C,oBAKA2qF,GAAA3lI,GAAA,CACAoiC,QAAAinB,GACAhgE,OAAA,CAAAyC,GAAA,QACA/P,KAAA,SACAimD,SAAA,SAAAnjC,GACA,OAAgBuqD,iBAAAvqC,GAAA,CAAA47B,GAAAl8B,aAEhBuG,UAAA,SAAAjmB,GACA,OACA3P,IAAA,CACAL,IAAA,OACA0a,WAAA,CAAyB2zC,KAAA,iBAEzB7+C,OAAA,SAAAunI,GACAA,EAAArpI,YAAAmC,SAAAG,EAAAJ,KAAA7kB,KAAA,SAAAisJ,GACAhnI,EAAAmmD,UAAA6gF,EAAAD,UAMAE,GAAArwJ,EAAA,CACAgwJ,GACAE,GACAllI,GAAA,CACA2hC,QAAA,CACA5B,OAAA,SAAAz4B,GACA,OACAtJ,IAAAsJ,EAAAtJ,IACAvP,IAAA,CACAL,IAAA,OACA2a,OAAA,CAAyB4lE,QAAA,QACzB7lE,WAAA,CAA6BwxE,cAAA,QAC7BjrE,UAAA/H,EAAA/Y,SAKA3F,OAAA,CAAAyC,GAAA,SACA/P,KAAA,oBAEA4lD,GAAA,CACAt4C,OAAA,CAAAgxB,MACAt+B,KAAA,OACAimD,SAAA,SAAAnjC,GACA,OACAmmD,UAAA,SAAAyB,EAAA31C,GACA21C,EAAAlqD,YAAAmC,SAAAG,EAAAJ,KAAA7kB,KAAA,SAAAisJ,GACAhnI,EAAAipH,cAAA+d,EAAAp/E,EAAA31C,UAMAw1E,OAGAy/C,GAAA,SAAAlnI,EAAAmO,EAAAjF,EAAAm6B,GACA,IAAAymD,EAAA,SAAAzwD,GACA2N,GAAAL,WAAAtN,GAAAt+C,KAAA,SAAA0X,GACA02C,GAAArB,eAAAr1C,GACA4mD,GAAAnN,QAAAz5C,MAGA+M,EAAA,SAAA/F,GACA,IAAA6uF,EAAAwB,EACAlB,GAAA5oF,EAAA,SAAAjpB,GACA,OAAAA,GACS0iB,EAAA4pC,EAAAilD,EAAAvF,GAAAqF,gBAAAvnG,IAAA5K,IAETkxJ,EAAA,SAAAn+H,GAEA,OADAxJ,EAAAwJ,GACAhtB,EAAAP,MAAA,IAEA2rJ,EAAA,SAAAp+H,GACA,IAAAo1D,EAAA95B,GAAAt7B,EAAAhJ,EAAA,UAEA,OADAzC,GAAA6gE,GACApiF,EAAAP,MAAA,IAEA4rJ,EAAArkJ,GAAAmc,GAAA,CAAAwB,GAAA,SAAAlH,EAAAC,GACA,IAAA4tI,EAAAljG,GAAA3qC,EAAAuG,EAAA,mBACAsnI,EAAAvsJ,KAAA,SAAAuhG,GACA,IAAAC,EAAAx2E,GAAA,QACAnB,GAAA03E,EAAAjkF,UAAA,KAAAkkF,GACA33E,GAAAnL,EAAApB,UAAA,mBAAAkkF,SAES3+B,GAAA5hE,EAAAP,KAAA+jB,KACTiT,EAAA,CACAo0C,gBAAA,SAAA79C,GACA00C,GAAAnB,KAAAvzC,IACA69C,GAAA79C,KAIA,OACApJ,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAsE,OACAzF,WAAA/0B,IAAA,GAAwC+nB,EAAAgN,YAAA,CACxCa,gBAAA,CACA,YACA,WACA,0BAGAlI,OAAA0hI,EACAz9H,WAAAm2B,GAAA//B,EAAAunI,wBAAA,CACA//C,GAAAv9E,OAAA,CACA66C,OAAA,CACAzrB,QAAA,SAAAvT,GACA,IAAA+gH,EAAAviG,GAAAxe,EAAA9lB,EAAA,SACA0sD,EAAA,CACA9yB,OAAA,WACA8jB,GAAAh3B,GAAAmgH,GACAnpF,GAAAh3B,GAAAZ,IAEAqU,QAAA,WACAujB,GAAArpB,IAAAwyG,GACAnpF,GAAArpB,IAAAvO,KAGA,OAAAujE,GAAArpF,EAAA8lB,EAAA4mC,OAIArT,GAAApvC,OAAA,CACAkzB,KAAA,UACAgb,QAAAivF,EACAv5F,QAAAu5F,EACA5uF,OAAA2uF,IAEAvrF,GAAA3xC,OAAA,IACAyzC,GAAAzzC,OAAA,CACA4yC,iBAAA,EACAZ,KAAA,CAAmB9e,KAAA,gBAGnB9uB,gBAAA,CACA3D,WAAA,CACA2zC,KAAAr+C,EAAAq+C,KAAA/jE,MAAA,UACAikE,iBAAA,MAKAipF,GAAA/gG,GAAA,CACAvpD,KAAA,gBACAopD,aAAAqgG,KACAngG,WAAAygG,KACA1jG,QAAA2jG,GACAz0H,KAAA,CACAo0C,gBAAA,SAAAp0C,EAAAzJ,GACA,OAAAyJ,EAAAo0C,gBAAA79C,OAKAy+H,GAAA,SAAAhuI,GACA,OACAmkE,WAAA,WACA,OAAAO,GAAAP,WAAAnkE,IAEAqnE,YAAA,SAAAz5E,GACA,OAAA82E,GAAAjvE,IAAAuK,EAAApS,MAIAqgJ,GAAA,SAAAjuI,GACA,OACAonE,UAAA,SAAAx5E,GACAq2D,GAAAxuD,IAAAuK,EAAApS,IAEAwqE,SAAA,WACA,OAAAnU,GAAAnB,KAAA9iD,IAEAmkE,WAAA,WACA,OAAAO,GAAAP,WAAAnkE,IAEAqnE,YAAA,SAAAz5E,GACA,OAAA82E,GAAAjvE,IAAAuK,EAAApS,MAIAsgJ,GAAA,SAAApwE,EAAA6E,GACA,OAAA7E,EAAAz8E,IAAA,SAAAy8E,GACA,OACAnL,aAAAgQ,EAAAtnD,UAAAyiD,GACA4D,MAAAiB,EAAAtnD,UAAAyiD,MAEOj9E,MAAA,KAEPstJ,GAAA7hI,GAAA,gBACA8hI,GAAA,CACA,YACA,gBAEAC,GAAA,CACA,SACA,UACA,4BACA,6BACA,kBAEAC,GAAA,SAAA97E,EAAA97D,EAAAonE,EAAAqgB,EAAAhuE,EAAAwyD,GACA,IAAArpD,EACAupD,EAAA,SAAAC,GACA,OAAApE,GAAAnzC,SAAA1mC,EAAAupJ,GAAAtrE,KAAA,OAAAA,GAEAyrE,EAAA7vE,GAAAnzC,SAAAinC,EAAAhxE,OAAA,SAAAiC,GACA,OAAAoB,EAAAwpJ,GAAA5qJ,KAEA,OACAmT,IAAA,CACAL,IAAA,SACAya,QAAA,aAAApzB,OAAA8Y,EAAA9V,SAAA,yBAAAhD,OAAA2wJ,EAAA,2BACAt9H,WAAAi9H,GAAApwE,EAAA6E,IAEAjuD,WAAAkxD,GAAA,CACApT,EAAAnxE,IAAA,SAAAyhF,GACA,OAAA6yC,GAAA9yC,EAAAC,GAAAH,EAAAtR,SAEA36D,EAAArV,IAAA,SAAAqV,GACA,OAAAo/G,GAAAp/G,EAAA,WAAAisE,OAGApvD,YAAA+F,EAAA,GAA4BA,EAAApY,MAAA,CAC5B,WACA,uBACA,gCACAoY,GACAw3C,iBAAAvqC,GAAA,CAAA/V,GAAA,gCAAA5P,GAAAM,KAAA,SAAAyjE,EAAAphC,GACAA,EAAArjC,QAAA2F,UACAnC,GAAAihE,EAAAwpE,SACavwJ,OAAAugG,EAAA98F,IAAA,SAAA1B,GACb,OAAAstJ,GAAAz8H,OAAA,CACAk8H,QAAA/sJ,EACAoxF,YAAA,CACAve,OACA97D,QAEA81I,iBAAA,SAAAxoI,EAAAuiF,GACA,OAAA3gB,GAAA,CACA5hE,EAAAwuD,KAAAnxE,IAAA,SAAAyhF,GACA,OAAA6yC,GAAA9yC,EAAAC,GAAAH,EAAAtR,SAEArtD,EAAAtN,KAAArV,IAAA,SAAAqV,GACA,OAAAo/G,GAAAp/G,EAAA,WAAAisE,YAKS9gF,WAAAjE,OAAAuyB,EAAAtvB,MAAA,QAGT2tJ,GAAA,SAAA/+H,EAAAg/H,EAAA9rE,GACA,IAAAuC,EAAA3vE,GAAA/Y,GACAspF,EAAAwoE,GAAA7+H,EAAA+iD,KAAA/iD,EAAA/Y,KAAA+Y,EAAAquD,QAAAv7E,EAAArC,OAAAqC,EAAArC,OAAAyiF,GACA,OAAA5R,GAAA7oB,OAAA,CACAtxC,IAAAkvE,EAAAlvE,IACA8d,WAAAoxD,EAAApxD,WACAnB,WAAA4iG,GACArlD,iBAAAvqC,GAAA,CACA/V,GAAA,yBACAwlG,GAAA,CACApjD,SAAAnjD,EAAAmjD,SACAoS,OAAAypE,EAAAzpE,SAEAC,GAAAwpE,EAAAvpE,GACAG,GAAAopE,EAAAvpE,KAEAJ,GAAAD,cAAAp1D,EAAA4zD,WACAzlF,OAAA6wJ,EAAAC,6BAGAC,GAAA,SAAAl/H,EAAAkzD,GACA,OAAAisE,GAAAn/H,EAAAkzD,EAAA,KAEAisE,GAAA,SAAAn/H,EAAAkzD,EAAAksE,GACA,OAAAL,GAAA/+H,EAAA,CACAi/H,wBAAA,GAAA9wJ,OAAAixJ,EAAA5xJ,OAAA,GAAAuzB,GAAA,oBAAAq+H,IAAA,IACA7pE,OAAAgpE,GACA5oE,QAAA31D,EAAA21D,SACOzC,IAEPmsE,GAAA,SAAAr/H,EAAAkzD,GACA,OAAAosE,GAAAt/H,EAAAkzD,EAAA,KAEAosE,GAAA,SAAAt/H,EAAAkzD,EAAAksE,GACA,OAAA5lJ,GAAAulJ,GAAA/+H,EAAA,CACAi/H,wBAAA,CACAvtF,GAAA3wC,OAAA,IACAyzC,GAAAzzC,OAAA,CACAkyC,YAAA,oBACAF,KAAA,CAAmB9e,KAAA,WACnB0f,iBAAA,KAEAxlE,OAAAixJ,EAAA5xJ,OAAA,GAAAuzB,GAAA,0BAAAq+H,IAAA,IACA7pE,OAAAipE,GACA7oE,QAAA31D,EAAA21D,SACOzC,KAEPqsE,GAAA,SAAAhqE,EAAAv1D,EAAAkzD,GACA,gBAAApzD,GACA,OAAAm7E,GAAA5hG,GAAA,SAAA0mF,GACA,OAAA//D,EAAAwqD,MAAAuV,KACSnuF,IAAA,SAAA8iD,GACT,OAAA5hD,EAAAD,KAAAozF,GAAAzsF,GAAAkqF,GAAA7mE,GAAA,cAAA63B,EAAA,SAAA/mD,GACAqyB,EAAA8gE,aAAAvL,EAAAz1D,GAAAnyB,IACWqyB,EAAA4qD,QAAA5qD,EAAAkwD,QAAA2F,GAAAI,iBAAAj2D,EAAA0gE,OAAAtvF,MAAA,WACX,WACW8hF,GAAA,CACXxsB,SAAAq9B,GAAA/jE,EAAA4qD,QAAA5qD,EAAAkwD,SACA5Y,eAAA6V,GAAAD,cAAA,SAAAltD,EAAA4qD,QAAA,IAAAnzD,GAAA,SAAAqI,EAAAg0B,GACA24B,GAAA3sD,EAAA,EAAAmwD,GAAAjwD,EAAAkwD,UAAAr+E,KAAA,SAAAg4B,GACA,IAAAs8B,EAAAt8B,EAAAs8B,QAAAC,EAAAv8B,EAAAu8B,WACA+J,GAAAjK,YAAApmC,EAAAqmC,EAAAC,iBAOAo5F,GAAA,SAAAx/H,EAAAy2D,GACA,IAAA5sD,EACA41H,EAAA5iI,GAAA,yCACA04D,EAAA,SAAAz1D,GACA,OACA40D,WAAA,WACA,OAAAO,GAAAP,WAAA50D,IAEA83D,YAAA,SAAAz5E,GACA,OAAA82E,GAAAjvE,IAAA8Z,EAAA3hB,IAEAkiF,YAAA,SAAAtvF,EAAApD,GACAyhC,GAAAtP,EAAA3Q,UAAA,gBAAApe,EAAA,gBAAAA,EAAA,MAAAc,KAAA,SAAA6tJ,GACAhkI,GAAAgkI,EAAA,OAAA/xJ,MAGA2yF,cAAA,SAAAvvF,EAAApD,GACAyhC,GAAAtP,EAAA3Q,UAAA,gBAAApe,EAAA,gBAAAA,EAAA,MAAAc,KAAA,SAAA6tJ,GACAhkI,GAAAgkI,EAAA,SAAA/xJ,MAGAgqF,UAAA,SAAAx5E,GACAud,GAAAoE,EAAA3Q,UAAA,eAAAhR,GACAixB,GAAAtP,EAAA3Q,UAAA,QAAAtd,KAAA,SAAAqjF,GACAp1D,EAAAtL,YAAA2C,SAAA+9D,GAAArjF,KAAA,SAAA8tJ,GACA,OAAAnrF,GAAAxuD,IAAA25I,EAAAxhJ,QAIAwqE,SAAA,WACA,OAAAv5C,GAAAtP,EAAA3Q,UAAA,QAAApd,OAAA,SAAAmjF,GACA,OAAAp1D,EAAAtL,YAAA2C,SAAA+9D,GAAAnjF,OAAAyiE,GAAAnB,WAKAoiB,EAAA3vE,GAAA/Y,GACAiyJ,EAAA,CACAzpE,SACAI,QAAA31D,EAAA21D,SAEA,OAAA2oE,GAAA7lG,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,qBACAC,WAAA1nB,GAAA,CAA6B8lJ,gBAAA,GAAwBnB,GAAAz+H,EAAAquD,QAAAoI,EAAAhS,aAErDxH,UAAA,SAAAiY,GACAl1D,EAAAmjD,SAAAoS,EAAAL,KAEA6qD,cAAA,SAAA1vI,EAAAuC,EAAAwkB,KAEAinI,wBAAAvnH,GAAA,CACAu+C,GAAAF,aAAA,GACAp0D,GAAA,yBACA5P,GAAAutI,GAAAhsF,GAAAlgD,OACAgjE,GAAAwpE,EAAAvpE,GACAG,GAAAopE,EAAAvpE,KAEAisB,GAAA3gF,OAAA,MAEA+C,YAAA+F,EAAA,GAA4BA,EAAAtW,MAAA,CAC5B,uBACA,yBACAsW,GACAopC,YAAA,oBACA6L,SAAA2X,EAAA/R,QACA8F,MAAA+0E,GAAAhqE,EAAAv1D,EAAAy2D,EAAAhS,WACA9zD,MAAA,CAAgBq/C,KAAA1W,IAAA,EAAAt5B,EAAA4qD,QAAA5qD,EAAAkwD,UAChBjrD,WAAA,CACAq5H,GAAA3tI,QAAAukE,OAAA2pE,GAAA7+H,EAAA+iD,KAAA/iD,EAAA/Y,KAAAnU,EAAArC,OAAAqC,EAAAP,KAAAktJ,GAAA3sJ,EAAAP,KAAA,CAAAiiE,GAAAzzC,OAAA,CACAkyC,YAAA,oBACAU,iBAAA,MACa8iB,EAAAhS,YACb65E,GAAA3tI,QAAAgtI,MAAA,CACAx2I,IAAA,CACAL,IAAA,SACAya,QAAA,CACA,WACA,6BAEAwG,UAAA85C,GAAA,eAAA4U,EAAAhS,UAAA7C,UAGA08E,GAAA3tI,QAAA,oBAAoD1J,KAAAwvE,EAAAhS,UAAA74C,UAAA,8CAKpDi0H,GAAA,SAAAxhJ,GACA,OACAyhE,KAAA,WACA,OAAA7rD,GAAA5V,EAAA2U,OAEAygC,SAAA,WACA,OAAA6C,GAAA7C,SAAAp1C,MAIAyhJ,GAAA,SAAAjmC,EAAA19F,GACA,OAAAhL,GAAAm1G,GAAA,SAAAxmG,EAAAg0B,GACA,IAAAz1C,EAAAw7G,EAAAliH,IAAAmoB,GACAigI,EAAAF,GAAAxhJ,GACA8d,EAAAgnD,SAAA48E,EAAAjsG,EAAArjC,QAAAg2G,gBAGAu5B,GAAA,SAAAnmC,EAAA3kC,EAAA1R,GACA,IAAA35C,EAAAqrD,EAAA/4D,SAAA+D,GAAA2J,EAAAyuC,QAAA3oE,EAAAk6B,EAAA,cACAo2H,EAAA3uJ,GAAA6pJ,GAAApsJ,IAAA,GAAqEmxB,GAAA,CACrEhsB,KAAA,SACAivE,SAAA,iBAGA,OAAAg8E,GAAAc,EAAAz8E,EAAAE,UAAAc,OAAAC,UAAA,CAAAq7E,GAAAjmC,EAAA3kC,MAEAgrE,GAAA,SAAArmC,EAAA3kC,EAAA1R,GACA,IAAA35C,EAAAqrD,EAAA/4D,SAAA+D,GAAA2J,EAAAyuC,QAAA3oE,EAAAk6B,EAAA,cACAo2H,EAAA3uJ,GAAAqqJ,GAAA5sJ,IAAA,GAAoEmxB,GAAA,CACpEhsB,KAAA,eACAivE,SAAA,iBAGA,OAAAm8E,GAAAW,EAAAz8E,EAAAE,UAAAc,OAAAC,UAAA,CAAAq7E,GAAAjmC,EAAA3kC,MAEAirE,GAAA,SAAAtmC,EAAA3kC,EAAAhC,GACA,IAAA1P,EAAA,CAAoBE,UAAA,CAAac,OAAA,CAAUC,UAAAyO,KAC3C,kCAAAgC,EAAAhhF,KACAgsJ,GAAArmC,EAAA3kC,EAAA1R,GAEAw8E,GAAAnmC,EAAA3kC,EAAA1R,IAGA48E,GAAA,SAAAvmC,EAAAp4B,EAAAvO,GACA,IAAAmtE,EAAAzuJ,EAAA6vF,EAAA,SAAAvM,GACA,OAAA3T,GAAA4+E,GAAAtmC,EAAA3kC,EAAAhC,MAEAotE,EAAA,WACA,OAAA1uJ,EAAAyuJ,EAAA,SAAA/qC,GACA,OAAAA,EAAA5zC,YAGA6+E,EAAA,SAAAC,GACA,OAAAtwH,GAAAuxD,EAAA,SAAAvM,EAAA9lF,GACA,OAAA8lF,EAAA5c,QACAxlE,EAAAD,KAAAwtJ,EAAAjxJ,IAAA0C,KAAA,SAAAwjH,GACA,OAAAA,EAAA7zC,OAAA++E,KACavuJ,OAAA7D,EAAA6mF,GAAAP,aAEb5hF,EAAArC,UAIA,OACA6vJ,UACAC,gBAIAE,GAAA,SAAAC,EAAAjkE,EAAA/Y,GACA,IAAAqwB,EAAAtX,EAAA3jF,MAAA7H,KAAA,WACA,UACO,SAAA6H,GACP,OAAgBoqE,aAAApqE,KAEhB+gH,EAAAt4C,GAAA4yB,GAAA17C,OAAA,CACAw7C,aAAA,CACA,wBACA,sBAEA1/E,KAAAkoE,EAAAqrB,YACA/T,kBACAJ,eAAA,EACAE,gBAAA/8D,GAAA,CAAAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACA0Q,QAAA,SAAAtmD,GACA,OAAAsiJ,EAAAJ,YAAAliJ,GAAAzM,IAAA,SAAA0mE,GAEA,OADAjkD,GAAAikD,IACA,KAGA/I,OAAA,SAAAzvC,EAAAg0B,GAEA,OADAA,EAAAx8B,MACAxkB,EAAArC,QAEA++D,QAAA,SAAA1vC,EAAAg0B,GAEA,OADAA,EAAAx8B,MACAxkB,EAAArC,eAIAkwJ,EAAAP,GAAAvmC,EAAAp9B,EAAAkkE,SAAAj9E,EAAAc,OAAAC,WACA,OAAAs2E,GAAA,CACA7mJ,KAAAwsJ,EACAhqI,IAAAmG,GAAA,mBACAm9H,WAAA,CACA,CACA/nE,MAAAn/E,EAAArC,OACAikD,MAAA,CAAAmlE,EAAAn4C,WAEA,CACAuQ,MAAAn/E,EAAArC,OACAikD,MAAAisG,EAAAL,YAGAz7F,SAAA/xD,EAAArC,KACAypJ,cAAA,EACAx2E,YACAgB,QAAA,WACA,OAAA9wE,EAAAN,MAAA,QAIAstJ,GAAA,CAAuBH,sBAEvBI,GAAA,SAAAC,EAAAC,GACA,IAAAlzJ,EAAAuvB,KAAAyN,IAAAk2H,EAAAlzJ,IAAAizJ,EAAAjzJ,KACAmzJ,EAAAF,EAAAzzH,QAAAx/B,EACAozJ,EAAAF,EAAA3zH,SAAAv/B,EAAAkzJ,EAAAlzJ,KACAu/B,EAAAhQ,KAAAmlB,IAAAy+G,EAAAC,GACA,OACApzJ,IACAu/B,UAGA8zH,GAAA,SAAA39E,EAAAu9E,EAAAC,GACA,IAAAl3H,EAAAg3H,GAAAC,EAAAC,GAAAlzJ,EAAAg8B,EAAAh8B,EAAAu/B,EAAAvD,EAAAuD,MACA9R,EAAA9T,GAAAZ,QAAA28D,EAAAk4B,gBACA4qC,EAAAj3G,GAAA9T,EAAA,sBAAAlqB,MAAAkqB,GACA6lI,EAAAp1H,GAAAzQ,GACA8lI,EAAAr1H,GAAAs6G,GACA/+H,EAAA8V,KAAAyN,IAAAk2H,EAAAz5I,IAAAw5I,EAAAx5I,IAAA85I,EAAA9zH,UACA+zH,EAAAF,EAAA7zH,SAAAhmB,EACAg6I,EAAAP,EAAA51H,UAAA7jB,EAAAy5I,EAAAz5I,KACA6jB,EAAA/N,KAAAmlB,IAAA8+G,EAAAC,GACA,OAAAzyH,GAAAhhC,EAAAyZ,EAAA8lB,EAAAjC,IAEAo2H,GAAA,SAAAh+E,EAAAu9E,EAAAC,GACA,IAAAl3H,EAAAg3H,GAAAC,EAAAC,GAAAlzJ,EAAAg8B,EAAAh8B,EAAAu/B,EAAAvD,EAAAuD,MACA9R,EAAA9T,GAAAZ,QAAA28D,EAAAk4B,gBACA4qC,EAAAj3G,GAAA9T,EAAA,sBAAAlqB,MAAAkqB,GACA8lI,EAAAr1H,GAAAs6G,GACAmb,EAAAT,EAAA51H,SACAs2H,EAAAV,EAAAz5I,IACA,GAAA85I,EAAA95I,KAAAw5I,EAAAxzH,SAAA,CACA,IAAAA,EAAAlQ,KAAAmlB,IAAAi/G,EAAAC,EAAAL,EAAA95I,KACA6jB,EAAAmC,EAAAm0H,EACA,OAAA5yH,GAAAhhC,EAAA4zJ,EAAAr0H,EAAAjC,GAEA,IAAA7jB,EAAA8V,KAAAyN,IAAA42H,EAAAL,EAAA9zH,UACAnC,EAAAq2H,GAAAl6I,EAAAm6I,GACA,OAAA5yH,GAAAhhC,EAAAyZ,EAAA8lB,EAAAjC,IAGAu2H,GAAA,SAAAC,EAAAb,EAAAC,GACA,IAAAl3H,EAAAg3H,GAAAC,EAAAC,GAAAlzJ,EAAAg8B,EAAAh8B,EAAAu/B,EAAAvD,EAAAuD,MACA,OAAAyB,GAAAhhC,EAAAkzJ,EAAAz5I,IAAA8lB,EAAA2zH,EAAA51H,WAEAy2H,GAAA,SAAAr+E,GACA,IAAAs+E,EAAA3xD,GAAA3sB,IAAA4sB,GAAA5sB,IAAAitB,GAAAjtB,GACAw9E,EAAAxzH,GAAAzgC,EAAA8gB,QACAkzI,EAAA/0H,GAAAvkB,GAAAZ,QAAA28D,EAAAu+E,4BACA,OAAAv+E,EAAAytB,SAAA6wD,EACAH,GAAAn+E,EAAAu9E,EAAAC,GACOx9E,EAAAytB,OACPuwD,GAAAh+E,EAAAu9E,EAAAC,GAEAG,GAAA39E,EAAAu9E,EAAAC,IAIAgB,GAAA,SAAA37I,EAAA4P,EAAAnB,GACA,IAAA1F,EAAA/I,EAAAe,MACAsO,EAAAlhB,EAAAsgB,KAAAnnB,GAAA,GACA,MAAAyhB,EAAAiG,WAAA,CACAjG,IAAAiG,WACA,IAAAM,EAAAlO,GAAAZ,QAAAuI,GACA6yI,EAAAhsI,EAAAN,GACA,GAAAssI,EAAA7wJ,SACA,OAAA6wJ,EACS,GAAAvsI,EAAAC,GACT,MAGA,OAAA5iB,EAAArC,QAGAwxJ,GAAA,SAAA3yI,EAAAqhF,GACA,OAAAzgE,GAAAygE,EAAA,SAAAuxD,GACA,OAAAA,EAAA1sI,UAAAlG,EAAAnI,OAAArU,EAAAP,KAAA,CACA2vJ,aACA5yI,SACSxc,EAAArC,UAGT0xJ,GAAA,SAAAC,EAAA7+E,GACA,IAAA1uD,EAAA,SAAAvF,GACA,OAAAA,EAAAnI,QAAAo8D,EAAAhuD,WAEA8sI,EAAA76I,GAAAZ,QAAA28D,EAAA5kC,UAAAqoC,WACA,OAAAi7E,GAAAI,EAAAD,EAAAE,aAAA3wJ,QAAA,WACA,OAAAswJ,GAAAI,EAAAD,EAAAG,eAAA5wJ,QAAA,WACA,OAAAowJ,GAAAM,EAAA,SAAA/yI,GACA,OAAA2yI,GAAA3yI,EAAA8yI,EAAAE,cACWztI,QAIX2tI,GAAA,CAAyBjuG,OAAA4tG,IAEzBM,GAAA,SAAAC,EAAAj+F,GACA,IAAAk+F,EAAA,GACAL,EAAA,GACAC,EAAA,GACAK,EAAA,GACAC,EAAA,GACAC,EAAA,SAAAlrJ,EAAAsqJ,GACA,IAAAa,EAAAzxJ,GAAAirJ,GAAA2F,IACAS,EAAA/qJ,GAAAmrJ,EACAA,EAAAC,OAAApxJ,IAAA,SAAAoxJ,GACAJ,EAAA,QAAAhrJ,GAAA7I,IAAA,GAAmEmzJ,EAAAc,QAAA,CACnE9uJ,KAAA,4BAAA8uJ,EAAA9uJ,KAAA,wBACAivE,SAAA,WACA1e,EAAAs+F,QAIA,WAAAA,EAAA38I,MACAm8I,EAAAvtJ,KAAA+tJ,GAEAT,EAAAttJ,KAAA+tJ,GAEAF,EAAAjrJ,GAAAmrJ,GAEAE,EAAA,SAAArrJ,EAAAsqJ,GACA5F,GAAA4F,GAAArwJ,KAAA,SAAAqxJ,GACA,WAAAhB,EAAA97I,MACAm8I,EAAAvtJ,KAAAkuJ,GAEAZ,EAAAttJ,KAAAkuJ,GAEAL,EAAAjrJ,GAAAsrJ,KAGA9qJ,EAAAnB,GAAAyrJ,GASA,OARA7wJ,EAAAuG,EAAA,SAAAR,GACA,IAAAsqJ,EAAAQ,EAAA9qJ,GACA,gBAAAsqJ,EAAAhuJ,KACA4uJ,EAAAlrJ,EAAAsqJ,GACS,mBAAAA,EAAAhuJ,MACT+uJ,EAAArrJ,EAAAsqJ,KAGA,CACAS,QACAL,cACAC,gBACAM,cACAD,mBAGAO,GAAA,CAAyBV,eAEzBW,GAAAvmI,GAAA,iBACAwmI,GAAAxmI,GAAA,kBACAymI,GAAAzmI,GAAA,sBACA0mI,GAAA,oBACAC,GAAA,SAAAxjI,GACA,IAAA4R,EAAA9rB,GAAA,IACA,OAAAu6D,GAAA5nB,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,aAEA4+C,0BAAA,CAAoC1vD,MAAA,mBACpCwvD,OAAA,SAAAngD,GACA8R,EAAA5rB,IAAA,IACAq6D,GAAAN,WAAAjgD,GAAAjuB,KAAA,SAAAulB,GACAmQ,GAAAnQ,EAAAjI,UAAA,gBAEA8W,GAAAnG,EAAA3Q,UAAAo0I,IACAh8H,GAAAzH,EAAA3Q,UAAA,UAEA6wD,iBAAAlpC,GAAA,CACA/V,GAAA,0BACAvJ,GAAApF,KAAA,SAAA0N,EAAAg0B,GACAusB,GAAAN,WAAAjgD,GAAAjuB,KAAA,SAAAulB,MAEA6O,GAAAnG,EAAA3Q,UAAAo0I,IACAh8H,GAAAzH,EAAA3Q,UAAA,WAEAgC,GAAAmyI,GAAA,SAAAxjI,EAAAg0B,GACAvsB,GAAAzH,EAAA3Q,UAAA,SACA,IAAAs0I,EAAA32H,GAAAhN,EAAA3Q,WACAkxD,GAAA1vB,WAAA7wB,EAAAg0B,EAAArjC,QAAA2hC,YACArsB,GAAAjG,EAAA3Q,UAAAo0I,IACA,IAAAj9G,EAAAxZ,GAAAhN,EAAA3Q,WACA0X,GAAA/G,EAAA3Q,UAAA,QAAAs0I,EAAA,MACApjF,GAAAN,WAAAjgD,GAAAjuB,KAAA,SAAA6xJ,GACA5vG,EAAArjC,QAAA+B,QAAA1gB,KAAA,SAAA7E,GAEA,OADAorC,GAAAprC,GACAqf,GAAAwT,EAAA3Q,aACiBxd,QAAA,WAEjB,OADAw+D,GAAAnN,QAAA0gG,GACAhuH,SAGA2tC,GAAAuB,WAAA,WACA/9C,GAAA/G,EAAA3Q,UAAA,QAAAm3B,EAAA,OACe,KAEfn1B,GAAAiyI,GAAA,SAAAtjI,EAAAg0B,GACAusB,GAAAN,WAAAjgD,GAAAjuB,KAAA,SAAA8xJ,GACA/xH,EAAA5rB,IAAA4rB,EAAAj6B,MAAAxJ,OAAA,EACA24I,IAAA6c,EACAnxI,MAAAkjB,WAGAvhB,GAAA2L,EAAAwjI,GAAA,CACAlxG,SAAA0B,EAAArjC,QAAAmzI,kBACApxI,MAAA1f,EAAArC,WAGA0gB,GAAAkyI,GAAA,SAAAvjI,EAAAg0B,GACA/8C,GAAA66B,EAAAj6B,OAAA9F,KAAA,SAAAkF,GACA66B,EAAA5rB,IAAA4rB,EAAAj6B,MAAA9C,MAAA,EAAA+8B,EAAAj6B,MAAAnK,OAAA,IACA2mB,GAAA2L,EAAAwjI,GAAA,CACAlxG,SAAA/nB,GAAAtzB,EAAA+vI,KACAt0H,MAAAzb,EAAAyb,cAKA29C,GAAApvC,OAAA,CACAkzB,KAAA,UACA4Q,SAAA,SAAA/kC,GACA,OAAA/oB,GAAA66B,EAAAj6B,OAAA1G,KAAA,WACA,OAAA+uB,EAAA6kC,YACe,SAAA5xD,GAEf,OADAghB,GAAA6L,EAAAujI,IACAvwJ,EAAAP,MAAA,UAKAusE,SAAA,WACA,OAAAlrE,EAAAjG,MAAAqyB,EAAA2xB,UAKAkyG,GAAA,SAAAtgF,EAAAvvE,GACA,gBAAAi3B,GACA,IAAA64H,EAAAh+I,GAAAhT,EAAArC,QACA4vB,EAAA,WACA4K,EAAA0sD,UAAApU,EAAAsb,UAAAvmF,MAAAtE,IACA,IAAAy0F,EAAAllB,EAAAsb,UAAAklE,cAAA/vJ,EAAAi3B,EAAA0sD,WAAA8Q,OACAq7D,EAAA99I,IAAAlT,EAAAP,KAAAk2F,KAGA,OADAllB,EAAAygF,YAAA3jI,IAAAkjD,EAAA/lC,GAAA,OAAAnd,GACA,WACA,OAAAyjI,EAAAnsJ,MAAA9F,KAAA,SAAA42F,GACA,OAAAA,SAKAw7D,GAAA,SAAA1gF,GACA,gBAAA2gF,GACA,kBACA3gF,EAAAob,YAAAC,SAAA,WACArb,EAAA/wD,QACA+wD,EAAAqc,YAAA,qBAAAskE,EAAA1lE,aAMA2lE,GAAA,SAAAxC,EAAAj+E,EAAA1jD,GACA,IAAAokI,EAAA,SAAAF,EAAAG,EAAAzwE,EAAAjmF,GACA,IAAA27H,EAAA5lD,EAAAc,OAAAC,UAAA74C,UAAAs4H,EAAAjyE,OACA,iBAAAiyE,EAAAhwJ,KACA,OAAApB,EAAAP,KAAA,CACA2B,KAAA,YACA+S,KAAAqiH,IAES,eAAA46B,EAAAhwJ,KAAA,CACT,IAAAwgD,EAAA5iD,GAAAoyJ,EAAAxY,gBAAA,SAAA4Y,GACA,OAAAtoD,EAAAsoD,EAAAD,EAAA12J,KAEA,WAAA02J,GAAA3vG,EAAAlnD,QAAA,EACAsF,EAAArC,OAEAqC,EAAAP,KAAA,CACA2B,KAAA,iBACA+S,KAAAqiH,EACA11C,SAAAl/B,EAAAlnD,QAAA,EACAyzF,gBAAA,WACA,OAAAnvF,GAAAoyJ,EAAAxY,gBAAA,SAAA4Y,GACA,OAAAtoD,EAAAsoD,EAAAD,EAAA12J,QAMA,OAAAmF,EAAAP,KAAAxD,EAAA,CACAmF,KAAA,iBACA+S,KAAAqiH,EACA5zF,OAAAwuH,EAAAxsE,WAAA/pF,GACAimF,WACAzQ,SAAAnjD,EAAAmjD,SAAA+gF,IACWA,EAAAlZ,kBAAA/5I,KAAA,WACX,UACW,SAAAghH,GACX,OAAoBl9D,KAAA,CAAQzuB,MAAA2rF,SAI5BjW,EAAA,SAAAjzE,EAAAs7H,EAAA12J,GACA,IAAA42J,EAAA,cAAAx7H,EAAA70B,MAAA8rB,EAAAo8E,UAAArzE,GACA,WAAAs7H,EACAE,EAAA,GAAAH,EAAAr7H,EAAAs7H,GAAA,EAAA12J,GAAAyE,UAEAgyJ,EAAAr7H,EAAAs7H,EAAAE,EAAA52J,GAAAyE,WAGAoyJ,EAAA,SAAAC,GACA,IAAA92J,EAAAqyB,EAAA0kI,kBACAL,EAAArkI,EAAA2kI,WAAA,IACA,OAAA7yJ,GAAA2yJ,EAAA,SAAA17H,GACA,OAAAizE,EAAAjzE,EAAAs7H,EAAA12J,MAGAmyF,EAAA,SAAApc,EAAAgoE,GACA,gBAAA3rD,GACA,IAAA0kE,EAAA/Y,IACAh3F,EAAA8vG,EAAAC,GACAz0F,EAAAo4D,GAAA1zE,EAAAmhC,GAAAI,iBAAAvS,GAAA,GACAqc,EAAA/vB,KAGA,OACAw0F,gBACA1kE,aAGA8kE,GAAA,SAAArhF,EAAAG,EAAA1jD,GACA,IAAAo0B,EAAAp0B,EAAAo0B,QACAs3F,EAAA,UAAAt3F,EAAAlgD,KAAA,WACA,OAAAtC,EAAAwiD,EAAA7/B,KAAA,SAAAiE,GACA,OAAAoyH,GAAApyH,EAAAwH,EAAA6qH,cAAA7qH,EAAA8qH,kBAEO12F,EAAAlzB,QACP,OACAwzB,MAAAyvG,GAAA5gF,EAAAG,EAAA1jD,GACA0rH,kBAGAmZ,GAAA,SAAAthF,EAAAG,EAAA1jD,GACA,IAAA6J,EAAA+6H,GAAArhF,EAAAG,EAAA1jD,GAAA00B,EAAA7qB,EAAA6qB,MAAAg3F,EAAA7hH,EAAA6hH,cACAn2D,EAAA,SAAAz1D,GACA,OACAglI,aAAA,WACA,OAAAhlI,KAIA61D,EAAA,SAAA1qD,GAIA,OAHAjL,EAAA+kI,gBAAAlzJ,KAAA,SAAA5E,GACA,OAAAA,EAAAg+B,EAAA65H,kBAEA9kI,EAAAglI,kBAAApzJ,IAAA,SAAA3E,GACA,IAAA6jB,EAAA7jB,EAAAg+B,EAAA65H,gBAEA,OADAvhF,EAAA/lC,GAAA,aAAA1sB,GACA,WACAyyD,EAAAp4B,IAAA,aAAAr6B,MAES1f,MAAArE,IAET,OAAA85H,GAAA,CACA5/G,KAAA+Y,EAAA+iD,KAAA5xE,SAAA2B,EAAArC,OAAAqC,EAAAP,KAAA,IACAwwE,KAAA/iD,EAAA+iD,KACAsL,QAAAv7E,EAAAD,KAAAmtB,EAAAquD,SACAlZ,KAAAriE,EAAArC,OACA+5E,MAAA91B,EAAAorC,SAAApc,EAAAgoE,GACA/1D,UACAJ,SACA3K,QAAA,EACAsF,QAAA,SACA3uD,QAAAvB,EAAA+iD,KAAA5xE,SAAA,eACA4vG,mBAAA,IACO,WAAAr9B,EAAAc,SAGP4B,GAAA,SAAA6+E,GACA,OAAArzJ,EAAAqzJ,EAAA,SAAAl8H,GACA,IAAAkpD,EAAAlpD,EAAAy1D,EAAAz1D,EACArxB,EAAAqxB,EAAAzJ,MAAA,KAKA,OAJA5nB,EAAAlK,OAAA,IACAykF,EAAAv6E,EAAA,GACA8mF,EAAA9mF,EAAA,IAEA,CACAu6E,QACAuM,aAIA0mE,GAAA,SAAA3wI,GACA,OACArgB,KAAA,QACAqgB,UAIA,SAAAilH,GACAA,IAAA,4BACAA,IAAA,qBAFA,CAGKA,QAAA,KACL,IAksIA2rB,GAlsIA7lI,GAAA,SAAA2lI,EAAAG,GACA,OAAAA,IAAA5rB,GAAA6rB,UACAJ,EAAAz8I,QAAA,KAAoC,IAAA8W,MAAA,KAEpC2lI,EAAA3lI,MAAA,MAGAgmI,GAAA,SAAA/hF,EAAAgiF,EAAAtrG,EAAAmrG,GACA,IAAAH,EAAAlpJ,GAAAwnE,EAAAa,SAAAmhF,GAAAn0J,MAAA6oD,GACA1lC,EAAA6xD,GAAA9mD,GAAA2lI,EAAAG,IACA,OACAlxJ,KAAA,QACAqgB,SAIAixI,GAAA,CACA,CACAvzE,MAAA,OACAlP,KAAA,aACAyb,OAAA,aAEA,CACAvM,MAAA,SACAlP,KAAA,eACAyb,OAAA,eAEA,CACAvM,MAAA,QACAlP,KAAA,cACAyb,OAAA,cAEA,CACAvM,MAAA,UACAlP,KAAA,gBACAyb,OAAA,iBAGAinE,GAAA,SAAAliF,GACA,IAAAmiF,EAAA,WACA,OAAAxvJ,EAAAsvJ,GAAA,SAAAz8H,GACA,OAAAw6C,EAAAsb,UAAAvmF,MAAAywB,EAAAy1D,WAGAqsD,EAAA,SAAArsD,GACA,kBACA,OAAAjb,EAAAsb,UAAAvmF,MAAAkmF,KAGAssD,EAAA,SAAA6a,GACA,kBACA,OAAA7yJ,EAAArC,SAGAm1J,EAAA,SAAA9lI,GACA,IAAAxnB,EAAAotJ,IACAG,EAAAvtJ,EAAArH,KAAA,WACA,cACS,SAAA83B,GACT,OAAAA,EAAAkpD,MAAAppE,gBAEAsL,GAAA2L,EAAA8mG,GAAA,CAAwC7jD,KAAA,SAAA8iF,KAExCb,EAAAlyJ,EAAAP,KAAA,SAAAutB,GACA,kBACA,OAAA8lI,EAAA9lI,MAGAilI,EAAAjyJ,EAAAP,KAAA,SAAAutB,GACA,OAAA8lI,EAAA9lI,KAEAs0B,EAAA8wG,GAAAM,IACA,OACAn3E,QAAA,QACAtL,KAAAjwE,EAAAP,KAAA,cACAs4I,gBACA6Z,gBAAAh3J,EAAAoF,EAAArC,QACAq6I,gBACA3nE,SAAA8gF,GAAA1gF,GACAwhF,kBACAC,oBACA5wG,UACAuwG,YAAA,EACAvoD,UAAA,SAAArzE,GACA,OAAAw6C,EAAAsb,UAAAinE,SAAA/8H,EAAAy1D,WAIAunE,GAAA,SAAAxiF,EAAAG,GACA,OAAAmhF,GAAAthF,EAAAG,EAAA+hF,GAAAliF,KAEAyiF,GAAA,SAAAziF,EAAAG,GACA,IAAAxL,EAAA0sF,GAAArhF,EAAAG,EAAA+hF,GAAAliF,IACAA,EAAAgI,GAAAC,SAAAwV,kBAAA,SACA/5E,KAAAy8D,EAAAc,OAAAC,UAAA74C,UAAA,SACAq1D,gBAAA,WACA,OAAA/oB,EAAAxjB,MAAA8vG,cAAAtsF,EAAAwzE,qBAKAua,GAAA,ukBACAC,GAAA,CACA,gBACA,WACA,SACA,iBACA,cAEAC,GAAA,SAAAC,GACA,IAAAC,EAAAD,EAAA9mI,MAAA,WACA,OAAA1tB,EAAAy0J,EAAA,SAAAC,GACA,OAAAA,EAAA99I,QAAA,wBAGA+9I,GAAA,SAAAH,GACA,IAAAI,EAAA,WACA,IAAAH,EAAAF,GAAAC,EAAAv9I,eACA,OAAA7W,GAAAk0J,GAAA,SAAAI,GACA,OAAAD,EAAAx2J,QAAAy2J,EAAAz9I,gBAAA,KAGA,WAAAu9I,EAAAv2J,QAAA,kBAAA22J,KAEAC,GAAA,SAAAljF,GACA,IAAAmiF,EAAA,WACA,IAAAgB,EAAA,SAAAN,GACA,OAAAA,EAAAD,GAAAC,GAAA,OAEAA,EAAA7iF,EAAAojF,kBAAA,YACAjyG,EAAAN,EAAA7/B,KACA+xI,EAAAF,IAAAv9I,cAAA,GACA+9I,EAAA1wJ,EAAAw+C,EAAA,SAAA3rB,GACA,IAAAy1D,EAAAz1D,EAAAy1D,OACA,OAAAA,EAAA31E,gBAAAy9I,GAAAI,EAAAloE,GAAA31E,gBAAA69I,EAAAJ,GAAAz9I,gBACSlX,QAAA,WACT,OAAA40J,GAAAD,GACAxzJ,EAAAD,KAAA,CACAo/E,MAAA,cACAuM,OAAA8nE,IAGAxzJ,EAAArC,SAGA,OACAm2J,WACAN,KAAAF,IAGAvb,EAAA,SAAA9hH,GACA,gBAAA27D,GACA,OAAAA,EAAA3yF,OAAA,SAAApE,GACA,OAAAA,EAAA6wF,SAAAz1D,MAIA27H,EAAA,WACA,IAAAkC,EAAAlB,IAAAkB,SACA,OAAAA,GAEA9b,EAAA,SAAA/hH,GACA,kBACA,OAAAj2B,EAAAP,KAAA,CACAuU,IAAA,MACAsqE,WAAA,IAAAroD,EAAAl5B,QAAA,wBAAAk5B,EAAA,OAIAo6C,EAAA,SAAA+gF,GACA,kBACA3gF,EAAAob,YAAAC,SAAA,WACArb,EAAA/wD,QACA+wD,EAAAqc,YAAA,cAAAskE,EAAA1lE,YAIAqoE,EAAA,SAAA/mI,GACA,IAAA+J,EAAA67H,IAAAkB,EAAA/8H,EAAA+8H,SAAAN,EAAAz8H,EAAAy8H,KACAr/I,EAAA2/I,EAAA31J,KAAA,WACA,OAAAq1J,GACS,SAAAv9H,GACT,OAAAA,EAAAkpD,QAEA99D,GAAA2L,EAAA6mG,GAAA,CAAwC1/G,UAExC+9I,EAAAlyJ,EAAAP,KAAA,SAAAutB,GACA,kBACA,OAAA+mI,EAAA/mI,MAGAilI,EAAAjyJ,EAAAP,KAAA,SAAAutB,GACA,OAAA+mI,EAAA/mI,KAEAs0B,EAAAkxG,GAAA/hF,EAAA,eAAA0iF,GAAAzsB,GAAA6rB,WACA,OACAh3E,QAAA,QACAtL,KAAAjwE,EAAArC,OACAo6I,gBACA6Z,kBACA5Z,gBACA3nE,WACA4hF,kBACAC,oBACA5wG,UACAuwG,YAAA,EACAvoD,UAAA,WACA,YAIA0qD,GAAA,SAAAvjF,EAAAG,GACA,OAAAmhF,GAAAthF,EAAAG,EAAA+iF,GAAAljF,KAEAwjF,GAAA,SAAAxjF,EAAAG,GACA,IAAAxL,EAAA0sF,GAAArhF,EAAAG,EAAA+iF,GAAAljF,IACAA,EAAAgI,GAAAC,SAAAwV,kBAAA,eACA/5E,KAAAy8D,EAAAc,OAAAC,UAAA74C,UAAA,SACAq1D,gBAAA,WACA,OAAA/oB,EAAAxjB,MAAA8vG,cAAAtsF,EAAAwzE,qBAKAsb,GAAA,oCACAC,GAAA,CACAC,MAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,KAEAC,GAAA,SAAAtkJ,EAAAukJ,GACA,IAAAC,EAAAvqI,KAAA2mG,IAAA,GAAA2jC,GACA,OAAAtqI,KAAA68D,MAAA92E,EAAAwkJ,MAEAC,GAAA,SAAAC,EAAAH,GACA,mBAAAz/I,KAAA4/I,GACAJ,GAAA,GAAA98H,SAAAk9H,EAAA,OAAAH,GAAA,QAEAG,GAEAC,GAAA,SAAAD,GACA,OAAAlwJ,GAAAsvJ,GAAAY,GAAAz2J,MAAA,KAEA22J,GAAA,SAAAxkF,GACA,IAAAmiF,EAAA,WACA,IAAAkB,EAAA9zJ,EAAArC,OACAikD,EAAAN,EAAA7/B,KACAk3G,EAAAloD,EAAAojF,kBAAA,YACA,GAAAl7B,EAQA,IAPA,IAAAu8B,EAAA,SAAAN,GACA,IAAAh8B,EAAAk8B,GAAAn8B,EAAAi8B,GACAO,EAAAH,GAAAp8B,GACAk7B,EAAA1wJ,EAAAw+C,EAAA,SAAA3rB,GACA,OAAAA,EAAAy1D,SAAAitC,GAAA1iG,EAAAy1D,SAAAktC,GAAA3iG,EAAAy1D,SAAAypE,KAGAP,EAAA,EAAiCd,EAAA/1J,UAAA62J,GAAA,EAAqCA,IACtEM,EAAAN,GAGA,OACAd,WACAn7B,OAGAof,EAAA,SAAA9hH,GACA,gBAAA27D,GACA,OAAAA,EAAA3yF,OAAA,SAAApE,GACA,OAAAA,EAAA6wF,SAAAz1D,MAIA27H,EAAA,WACA,IAAAkC,EAAAlB,IAAAkB,SACA,OAAAA,GAEA9b,EAAAp9I,IAAAoF,EAAArC,SACA0yE,EAAA,SAAA+gF,GACA,kBACA3gF,EAAAob,YAAAC,SAAA,WACArb,EAAA/wD,QACA+wD,EAAAqc,YAAA,cAAAskE,EAAA1lE,YAIAqoE,EAAA,SAAA/mI,GACA,IAAA+J,EAAA67H,IAAAkB,EAAA/8H,EAAA+8H,SAAAn7B,EAAA5hG,EAAA4hG,GACAxkH,EAAA2/I,EAAA31J,KAAA,WACA,OAAAw6H,GACS,SAAAnzH,GACT,OAAAA,EAAA25E,QAEA99D,GAAA2L,EAAA6mG,GAAA,CAAwC1/G,UAExC+9I,EAAAlyJ,EAAAP,KAAA,SAAAutB,GACA,kBACA,OAAA+mI,EAAA/mI,MAGAilI,EAAAjyJ,EAAAP,KAAA,SAAAutB,GACA,OAAA+mI,EAAA/mI,KAEAs0B,EAAAkxG,GAAA/hF,EAAA,mBAAAyjF,GAAAxtB,GAAA0uB,OACA,OACA75E,QAAA,aACAtL,KAAAjwE,EAAArC,OACAo6I,gBACAC,gBACA4Z,kBACAvhF,WACA4hF,kBACAC,oBACA5wG,UACAuwG,YAAA,EACAvoD,UAAA,WACA,YAIA+rD,GAAA,SAAA5kF,EAAAG,GACA,OAAAmhF,GAAAthF,EAAAG,EAAAqkF,GAAAxkF,KAEA6kF,GAAA,SAAA7kF,EAAAG,GACA,IAAAxL,EAAA0sF,GAAArhF,EAAAG,EAAAqkF,GAAAxkF,IACAA,EAAAgI,GAAAC,SAAAwV,kBAAA,aACA/5E,KAAA,aACAg6E,gBAAA,WACA,OAAA/oB,EAAAxjB,MAAA8vG,cAAAtsF,EAAAwzE,qBAKA2c,GAAA,SAAA9kF,EAAA+kF,EAAAC,GACA,IAAA9mI,EAAA6mI,IACA,OAAAp4H,GAAAq4H,EAAA,SAAAxvI,GACA,OAAA7iB,EAAAurB,EAAA,SAAA2oH,GACA,OAAA7mE,EAAAsb,UAAA2pE,UAAAzvI,EAAAqxH,EAAA5rD,YAEO7sF,QAAA,WACP,OAAA4xE,EAAAsb,UAAAvmF,MAAA,KACAxF,EAAAP,KAAA,CACA0/E,MAAA,YACAuM,OAAA,MAGA1rF,EAAArC,UAGAg4J,GAAA,SAAAllF,GACA,IAAAmlF,EAAAnlF,EAAA5kC,UAAAd,UAAA,IAAA0lC,EAAAhuD,UACA,OAAAguD,EAAAp8D,IAAAs3E,WAAAiqE,EAAA,WACA,UACOnlF,EAAAhuD,YAGPozI,GAAA,6GACAC,GAAA,SAAArlF,GACA,IAAAmiF,EAAA,SAAAmD,GACA,OAAAR,GAAA9kF,EAAA,WACA,OAAAnvB,EAAA7/B,MACSs0I,IAEThe,EAAA,SAAArsD,GACA,kBACA,OAAAjb,EAAAsb,UAAAvmF,MAAAkmF,KAGAssD,EAAA,SAAAtsD,GACA,kBACA,IAAA4rD,EAAA7mE,EAAAsb,UAAAlnF,IAAA6mF,GACA,OAAA1rF,EAAAP,KAAA,CACAuU,IAAAsjI,EAAA58I,OAAA,IAAA48I,EAAA,GAAAp5C,QAAAo5C,EAAA,GAAA/O,QAAA,MACAjqD,UAAA7N,EAAAsb,UAAA+sD,WAAAptD,OAIAqoE,EAAA,SAAA0B,EAAAzoI,GACA,IAAAgpI,EAAApD,EAAA6C,GACAthJ,EAAA6hJ,EAAA73J,KAAA,WACA,mBACS,SAAAm5I,GACT,OAAAA,EAAAn4D,QAEA99D,GAAA2L,EAAA6mG,GAAA,CAAwC1/G,UAExC+9I,EAAAlyJ,EAAAP,KAAA,SAAAutB,GACA,gBAAAlwB,GACA,OAAAi3J,EAAAj3J,EAAA24J,QAAAzoI,MAGAilI,EAAAjyJ,EAAAP,KAAA,SAAAutB,GACA,IAAAyoI,EAAAE,GAAAllF,GACAsjF,EAAA0B,EAAAzoI,KAEAs0B,EAAAkxG,GAAA/hF,EAAA,gBAAAolF,GAAAnvB,GAAA6rB,WACA,OACAh3E,QAAA,SACAtL,KAAAjwE,EAAArC,OACAo6I,gBACA6Z,gBAAAh3J,EAAAoF,EAAArC,QACAq6I,gBACA3nE,SAAA8gF,GAAA1gF,GACAwhF,kBACAC,oBACA5wG,UACAuwG,YAAA,EACAvoD,UAAA,SAAArzE,GACA,OAAAw6C,EAAAsb,UAAAinE,SAAA/8H,EAAAy1D,WAIAuqE,GAAA,SAAAxlF,EAAAG,GACA,OAAAmhF,GAAAthF,EAAAG,EAAAklF,GAAArlF,KAEAylF,GAAA,SAAAzlF,EAAAG,GACA,IAAAxL,EAAA0sF,GAAArhF,EAAAG,EAAAklF,GAAArlF,IACAA,EAAAgI,GAAAC,SAAAwV,kBAAA,gBACA/5E,KAAA,SACAg6E,gBAAA,WACA,OAAA/oB,EAAAxjB,MAAA8vG,cAAAtsF,EAAAwzE,qBAKAud,GAAA,SAAA1lF,EAAAnvB,GACA,IAAAy2F,EAAA,SAAArsD,GACA,kBACA,OAAAjb,EAAAsb,UAAAvmF,MAAAkmF,KAGAssD,EAAA,SAAAtsD,GACA,kBACA,IAAA4rD,EAAA7mE,EAAAsb,UAAAlnF,IAAA6mF,GACA,YAAA/sF,IAAA24I,EAAAt3I,EAAAP,KAAA,CACAuU,IAAAsjI,EAAA58I,OAAA,IAAA48I,EAAA,GAAAp5C,QAAAo5C,EAAA,GAAA/O,QAAA,MACAjqD,UAAA7N,EAAAsb,UAAA+sD,WAAAptD,KACW1rF,EAAArC,SAGXo2J,EAAA,SAAA0B,EAAAzoI,GACA,IAAAopI,EAAA,SAAA9e,GACA,IAAA/gH,EAAA+gH,EAAA11F,MACA,YAAAjjD,IAAA43B,KAAA77B,OAAA,EAAAsE,GAAAu3B,EAAA6/H,GAAA,EACAj3E,MAAAm4D,EAAAn4D,MACAuM,OAAA4rD,EAAA5rD,UAGA2qE,EAAAr3J,GAAA44I,GAAAnnE,GAAA2lF,GACAJ,EAAAT,GAAA9kF,EAAA,WACA,OAAA4lF,GACSZ,GACTthJ,EAAA6hJ,EAAA73J,KAAA,WACA,mBACS,SAAAm5I,GACT,OAAAA,EAAAn4D,QAEA99D,GAAA2L,EAAA6mG,GAAA,CAAwC1/G,UAExC+9I,EAAAlyJ,EAAAP,KAAA,SAAAutB,GACA,gBAAAlwB,GACA,OAAAi3J,EAAAj3J,EAAA24J,QAAAzoI,MAGAilI,EAAAjyJ,EAAAP,KAAA,SAAAutB,GACA,IAAAyoI,EAAAE,GAAAllF,GACAsjF,EAAA0B,EAAAzoI,KAEA,OACAuuD,QAAA,UACAtL,KAAAjwE,EAAArC,OACAo6I,gBACA6Z,gBAAAh3J,EAAAoF,EAAArC,QACAq6I,gBACA3nE,SAAA8gF,GAAA1gF,GACAwhF,kBACAC,oBACAL,WAAAphF,EAAAga,SAAA,uCACA6e,UAAA,SAAArzE,GACA,OAAAw6C,EAAAsb,UAAAinE,SAAA/8H,EAAAy1D,SAEApqC,YAGAg1G,GAAA,SAAA7lF,EAAAG,GACA,IAAAtvB,EAAArlD,EAAA,CAA8BmF,KAAA,YAAmBwvE,EAAA6sE,aACjD,OAAAsU,GAAAthF,EAAAG,EAAAulF,GAAA1lF,EAAAnvB,KAEAi1G,GAAA,SAAA9lF,EAAAG,GACA,IAAAtvB,EAAArlD,EAAA,CAA8BmF,KAAA,YAAmBwvE,EAAA6sE,aACjDr4E,EAAA0sF,GAAArhF,EAAAG,EAAAulF,GAAA1lF,EAAAnvB,IACAmvB,EAAAgI,GAAAC,SAAAwV,kBAAA,WACA/5E,KAAA,UACAg6E,gBAAA,WACA,OAAA/oB,EAAAxjB,MAAA8vG,cAAAtsF,EAAAwzE,qBAKA4d,GAAA,CACA,CACAt1J,KAAA,UACA0gD,MAAA,CACA,OACA,SAGA,CACA1gD,KAAA,SACA0gD,MAAA,iBAEA,CACA1gD,KAAA,aACA0gD,MAAA,CACA,OACA,WAGA,CACA1gD,KAAA,YACA0gD,MAAA,CACA,YACA,cACA,aACA,iBAGA,CACA1gD,KAAA,cACA0gD,MAAA,CACA,UACA,WAGA,CACA1gD,KAAA,gBACA0gD,MAAA,kBAEA,CACA1gD,KAAA,WACA0gD,MAAA,iBAGA60G,GAAA,SAAAC,EAAA5kE,GACA,gBAAA5kE,EAAAwjD,GACA,IAAAgrD,EAAAg7B,EAAAxpI,GAAAhtB,SAAA,SAAA0P,GACA,OAAAC,GAAAD,KACSpR,WACT,OAAAszF,EAAA4pC,EAAAhrD,KAGAosE,GAAA,CACA16D,OAAAq0E,GAAApO,GAAA,SAAAhsJ,EAAAq0E,GACA,OAAA07E,GAAA/vJ,EAAAq0E,EAAAE,UAAAc,OAAAC,aAEAglF,aAAAF,GAAA5N,GAAA,SAAAxsJ,EAAAq0E,GACA,OAAA67E,GAAAlwJ,EAAAq0E,EAAAE,UAAAc,OAAAC,aAEAilF,WAAAH,GAAAjO,GAAA,SAAAnsJ,EAAAq0E,GACA,OAAAglD,GAAAr5H,EAAA,WAAAq0E,EAAAE,UAAA5wE,EAAArC,UAEAk5J,YAAAJ,GAAA/N,GAAA,SAAArsJ,EAAAq0E,GACA,OAAAg8E,GAAArwJ,EAAAq0E,EAAAE,UAAAc,UAEAolF,kBAAA,SAAArmF,EAAAC,GACA,OAAA4lF,GAAA7lF,EAAAC,EAAAE,YAEAmmF,qBAAA,SAAAtmF,EAAAC,GACA,OAAA2kF,GAAA5kF,EAAAC,EAAAE,YAEAomF,iBAAA,SAAAvmF,EAAAC,GACA,OAAAsjF,GAAAvjF,EAAAC,EAAAE,YAEAqmF,aAAA,SAAAxmF,EAAAC,GACA,OAAAulF,GAAAxlF,EAAAC,EAAAE,YAEAsmF,gBAAA,SAAAzmF,EAAAC,GACA,OAAAuiF,GAAAxiF,EAAAC,EAAAE,aAGAumF,GAAA,SAAAjqI,EAAAwjD,GACA,OAAA7rE,GAAAi4I,GAAA5vH,EAAA9rB,MAAAjD,KAAA,WAEA,OADAnE,EAAAiM,QAAAzF,MAAA,6BAAA0sB,GACAltB,EAAArC,QACO,SAAAm0F,GACP,OAAA9xF,EAAAP,KAAAqyF,EAAA5kE,EAAAwjD,OAGA0mF,GAAA,CACA3Z,YAAAX,GAAAga,kBACAO,eAAAva,GAAAia,qBACAO,WAAAxa,GAAAka,iBACAO,aAAAza,GAAAma,aACAO,MAAA1a,GAAAoa,iBAEAO,GAAA,SAAA9oE,GACA,IAAA+oE,EAAA54J,EAAA03J,GAAA,SAAAhhJ,GACA,IAAAosC,EAAAziD,EAAAqW,EAAAosC,MAAA,SAAA+1G,GACA,OAAA5yJ,GAAA4pF,EAAAgpE,IAAA5yJ,GAAAqyJ,GAAAO,KAEA,OACAz2J,KAAAsU,EAAAtU,KACA0gD,WAGA,OAAAziD,EAAAu4J,EAAA,SAAAliJ,GACA,OAAAA,EAAAosC,MAAAlnD,OAAA,KAGAk9J,GAAA,SAAAC,GACA,IAAAC,EAAAD,EAAArrI,MAAA,KACA,OAAA1tB,EAAAg5J,EAAA,SAAAhwG,GACA,OAAgBlG,MAAAkG,EAAAztC,OAAAmS,MAAA,SAGhBurI,GAAA,SAAAz6D,GACA,OAAA37F,EAAA27F,EAAA,SAAAlhG,GACA,OAAA2I,GAAA3I,EAAA,SAAA2I,GAAA3I,EAAA,YAGA47J,GAAA,SAAAC,GACA,IAAA36D,EAAA26D,EAAA36D,QACA3O,EAAAspE,EAAAtpE,QACA,WAAA2O,EACA,QACO3+F,IAAA2+F,IAAA,IAAAA,EACPm6D,GAAA9oE,GACOttF,EAAAi8F,GACPs6D,GAAAt6D,GACOy6D,GAAAz6D,GACPA,GAEAtjG,EAAAiM,QAAAzF,MAAA,sEACA,KAGA03J,GAAA,SAAAznF,EAAAke,EAAAwpE,EAAAznF,EAAA0nF,GACA,OAAAvzJ,GAAA8pF,EAAAwpE,EAAApiJ,eAAAlX,QAAA,WACA,OAAAu5J,EAAAp5J,KAAA,SAAAsmD,GACA,OAAAloB,GAAAkoB,EAAA,SAAAt7B,GACA,OAAAnlB,GAAA8pF,EAAA3kE,EAAAmuI,EAAApiJ,qBAGO5X,KAAA,WACP,OAAA0G,GAAAuyJ,GAAAe,EAAApiJ,eAAAjX,IAAA,SAAA1B,GACA,OAAAA,EAAAqzE,EAAAC,KACS7xE,QAAA,WACT,OAAAmB,EAAArC,UAEO,SAAAuvB,GACP,OAAAiqI,GAAAjqI,EAAAwjD,MAGA2nF,GAAA,SAAA5nF,EAAAwnF,EAAAvnF,EAAA0nF,GACA,IAAAE,EAAAN,GAAAC,GACA9Z,EAAAr/I,EAAAw5J,EAAA,SAAA9iJ,GACA,IAAAosC,EAAA5iD,GAAAwW,EAAAosC,MAAA,SAAAu2G,GACA,WAAAA,EAAA99I,OAAA3f,OAAA,GAAAw9J,GAAAznF,EAAAwnF,EAAAtpE,QAAAwpE,EAAAznF,EAAA0nF,GAAA94J,YAEA,OACA6/E,MAAAn/E,EAAAD,KAAA0wE,EAAA33C,UAAAtjB,EAAAtU,OACA0gD,WAGA,OAAAziD,EAAAg/I,EAAA,SAAA3oI,GACA,OAAAA,EAAAosC,MAAAlnD,OAAA,KAIA69J,GAAA,GACAC,GAAA,CACAjjB,aAAA,GACAC,YAAA,GACAC,UAAA,wBACAC,WAAA,yBACAn7G,MAAA,mBACA3B,KAAA,kBACA4B,OAAA,oBACA3B,IAAA,kBAEA4/H,GAAA,CACA/+G,kBAAAU,KACAR,iBAAAy7F,MAEAqjB,GAAA,CACAjvH,MAAA,WACA,OACA3H,GACAC,GACAH,GACAH,GACAI,GACAF,GACAssC,GACAC,GACAH,GACAF,GACAG,GACAF,KAGAnkC,MAAA,WACA,OACA7H,GACAC,GACAF,GACAF,GACAC,GACAH,GACAwsC,GACAC,GACAF,GACAF,GACAC,GACAF,MAIA8qF,GAAA,CACAlvH,MAAA,WACA,OACA1H,GACAN,GACAE,GACAC,GACAC,GACAC,GACAmsC,GACAC,GACAH,GACAF,GACAG,GACAF,KAGAnkC,MAAA,WACA,OACA5H,GACAJ,GACAF,GACAI,GACAD,GACAE,GACAmsC,GACAC,GACAF,GACAF,GACAC,GACAF,MAIA+qF,GAAA,SAAAz8H,EAAApjB,GACA,eAAAojB,EACA,CACA6N,OAAA7D,GAAAoyH,GAAA,EAAAC,IACAjvH,QAAA,CACAE,MAAA,WACA,OAAAzH,KAEA2H,MAAA,WACA,OAAA1H,MAGAgI,UAAAwuH,IAGA,CACAzuH,OAAA7D,GAAA,EAAAoyH,GAAAC,IACAjvH,QAAAxwB,EAAA4/I,GAAAD,GACAzuH,UAAAwuH,KAIAI,GAAA,SAAApoF,EAAAqoF,EAAAj6G,EAAA6xB,GACA,IAAA33D,EAAAoC,KAAAR,WAAA5B,QACAggJ,EAAAniI,GAAA85H,GAAA,CACA7xG,OACAkT,SAAA,WAEA,OADA0e,EAAA/wD,QACA1f,EAAAP,MAAA,OAGAg7B,EAAA,WACA,OAAAq0H,GAAAr+E,IAEAuoF,EAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,OAAA9uI,KAAAyN,IAAAkhI,EAAAE,IAAA7uI,KAAAmlB,IAAAypH,EAAAE,IAEAC,EAAA,WACA,IAAAC,EAAA1lE,EAAA/uF,MAAA/F,IAAA,SAAAy6J,GACA,OAAAA,EAAAnhI,0BACS75B,WAAA,WACT,OAAAkyE,EAAA5kC,UAAAkrC,SAAA3+C,0BAEAohI,EAAA/oF,EAAAytB,OAAA/jE,KAAAtB,MAAAqD,GAAAxnB,GAAAZ,QAAA28D,EAAAhuD,YAAAjO,IACA,OACAA,EAAA8kJ,EAAAzgI,IAAA2gI,EACAh/H,OAAA8+H,EAAA9+H,OAAAg/H,IAGAC,EAAA,WACA,GAAA1gJ,KAAA23D,EAAAE,UAAA8sE,oBACA,SAEA,IAAAgc,EAAAL,IACAM,EAAAl/H,IACA,OAAAu+H,EAAAU,EAAAllJ,EAAAklJ,EAAAl/H,OAAAm/H,EAAAnlJ,IAAAmlJ,EAAAn/H,WAEAo/H,EAAA,WACArsF,GAAAP,KAAA+rF,IAEAc,EAAA,WACAC,EAAAj1J,MAAA9F,KAAA,SAAAkiC,GACA,IAAA84H,EAAAhB,EAAA18I,UACAoY,GAAAslI,EAAA,WACAN,IACA1lI,GAAAgmI,EAAA,kBAEAh+G,GAAAV,qBAAAwD,EAAA5d,EAAA83H,EAAA/4J,EAAAP,KAAAg7B,SAIAq/H,EAAA9mJ,GAAAhT,EAAArC,QACAi2F,EAAA5gF,GAAAhT,EAAArC,QACA40E,EAAAv/D,GAAA,MACAgnJ,EAAA,SAAAjT,GACA,OACA1yI,IAAA,CACAL,IAAA,MACAya,QAAA,qBAEA0D,WAAA,CAAA40H,GACAn5H,WAAAoW,GAAA,CACAq5B,GAAApvC,OAAA,CAA2BkzB,KAAA,YAC3BlzB,GAAA,0BACAtJ,GAAA,SAAAqI,GACAyjD,EAAAwpF,UAAAxnI,IAAA,uCACA,OAAA4qC,GAAAnN,QAAAljC,OAGApI,GAAA,SAAAoI,GACAyjD,EAAAwpF,UAAAtyI,OAAA,mBAMAuyI,EAAAjzJ,GAAA,WACA,OAAAopJ,GAAAV,WAAAmJ,EAAA,SAAA1J,GACA,IAAA+K,EAAAC,EAAAhL,GACA/tI,GAAA03I,EAAAzI,GAAA,CAAmDQ,gBAAAkJ,EAAAG,SAGnDC,EAAA,SAAAzwE,GACA,IAAAgF,EAAAle,EAAAgI,GAAAC,SAAAC,SAAAgW,QACAi/D,EAAA7vD,GAAAttB,KAAAuqB,GAAAktD,UAAAltD,GAAAktD,UAAAltD,GAAAq/D,QACA/K,EAAA4K,IACA,yBAAAvwE,EAAAvoF,KAAA,WACA,IAAAk5J,EAAAtzJ,GAAA2nF,EAAA2gE,EAAAQ,gBACA5I,EAAAmR,GAAA5nF,EAAA,CACAke,QAAA2rE,EACAh9D,QAAA3T,EAAA/nC,OACW8uB,EAAA1wE,EAAAP,KAAA,YACX,OAAAwoJ,GAAA,CACA7mJ,KAAAwsJ,EACAhqI,IAAAmG,GAAA,mBACAm9H,aACAn1F,SAAA/xD,EAAArC,KACAypJ,cAAA,EACAx2E,UAAAF,EAAAE,UACAgB,QAAA,WACA,OAAA9wE,EAAAN,MAAA,OAdA,GAiBS,WACT,OAAAstJ,GAAAH,kBAAAC,EAAAjkE,EAAAjZ,EAAAE,WADS,IAITH,EAAA/lC,GAAAkzG,GAAA,SAAA9gJ,GACA,IAAAwyJ,EAAA4K,IACAjxJ,GAAAqmJ,EAAAS,YAAAjzJ,EAAAy9J,YAAAx7J,KAAA,SAAA4qF,GACA6wE,EAAA7wE,EAAA7sF,EAAAgJ,SAAA2qE,EAAAzwE,EAAArC,OAAAqC,EAAAP,KAAA3C,IACAywE,GAAAN,WAAA8rF,GAAAh6J,KAAAs+D,GAAAnN,aAGA,IAAAw7C,EAAA,SAAAvvE,EAAA9f,GACA,IAAAi/B,EAAA,SAAAnf,EAAAu0C,EAAAE,UAAAc,OAAAO,QAAAh+D,KAAAoI,GAAAq0D,EAAAE,UAAAc,OAAAO,QAAA0vD,SACA,OAAAj7H,GAAA40C,EAAAs9G,GAAAz8H,EAAApjB,OAEAyhJ,EAAA,SAAApL,EAAA5yI,GAEA,GADAm+D,KACA5hE,MAAA23D,EAAAE,UAAA8sE,oBAAA,CAGA,IAAAqJ,EAAAqT,EAAAhL,GACAqL,EAAAj+I,EAAA1d,IAAA4V,GAAAZ,SACAmtB,EAAAyqE,EAAA0jD,EAAAjzH,SAAAs+H,GACAX,EAAA5mJ,IAAAlT,EAAAP,KAAAwhC,IACA2yD,EAAA1gF,IAAAsJ,GACA,IAAAu9I,EAAAhB,EAAA18I,UACAoY,GAAAslI,EAAA,WACAxsF,GAAAV,iBAAAksF,EAAA93H,EAAA+4H,EAAAjT,GAAA,WACA,OAAA/mJ,EAAAP,KAAAg7B,OAEAg/H,KACA1lI,GAAAgmI,EAAA,oBAGAW,EAAA,WACA,IAAApL,EAAA4K,IACAxK,GAAAjuG,OAAA6tG,EAAA7+E,GAAAtyE,KAAA,WACA27J,EAAA5mJ,IAAAlT,EAAArC,QACA4vE,GAAAP,KAAA+rF,IACS,SAAAliJ,GACT2jJ,EAAA3jJ,EAAAu4I,WAAApvJ,EAAAP,KAAAoX,EAAA2F,KAAAnI,WAGAsmE,EAAA,WACA,IAAAlkE,EAAA87D,EAAA1tE,MACA,OAAA4R,IACA85D,GAAAkC,aAAAh8D,GACA87D,EAAAr/D,IAAA,QAGA0nE,EAAA,SAAAx+E,GACAu+E,IACApI,EAAAr/D,IAAA9W,IAEAq0E,EAAA/lC,GAAA,kBACA+lC,EAAA/lC,GAAAmzG,GAAA+b,GACAnpF,EAAA/lC,GAAA,uCAAAmvH,GACAppF,EAAA/lC,GAAA,6DAAA5tC,GACA89E,EAAArK,GAAAoqF,iBAAAlqF,EAAAiqF,EAAA,MAEAjqF,EAAA/lC,GAAA,oBAAA5tC,GACAyzE,GAAAoqF,iBAAAlqF,EAAA,WACAj3D,GAAAqlC,EAAAxiC,WAAAte,UAAAyb,GAAAu/I,EAAA18I,WAAAte,WACA+7J,EAAA5mJ,IAAAlT,EAAArC,QACA4vE,GAAAP,KAAA+rF,KAEW,KAEXtoF,EAAA/lC,GAAA,wBACA+lC,EAAA21E,WACA0T,EAAA5mJ,IAAAlT,EAAArC,QACA4vE,GAAAP,KAAA+rF,MAGAtoF,EAAA/lC,GAAA,sBAAA5tC,GACA0c,GAAAu/I,EAAA18I,WAAAle,KAAA,WACAy8E,EAAArK,GAAAoqF,iBAAAlqF,EAAAiqF,EAAA,KACW,SAAAv6J,WAKXy6J,GAAA,CAA0BriF,SAAAsgF,IAE1BgC,GAAA,SAAApqF,EAAA61E,EAAA31E,GACA,IAAA7kD,EAAA,SAAA5qB,EAAA6wG,GACAhzG,EAAA,CACAunJ,EACA31E,GACA,SAAAmqF,GACAA,EAAAhvI,eAAA5qB,EAAA6wG,MAGAlmF,EAAA,SAAAs+H,EAAA1pJ,GACA1B,EAAA,CACAunJ,EACA31E,GACA,SAAAmqF,GACAA,EAAAjvI,YAAA,CAAAs+H,GAAA1pJ,MAGAs6J,EAAA,SAAAhpD,GACA,OAAAlmF,EAAA4zB,KAAA,CAA6C35C,OAAAisG,EAAAjsG,YAE7Ck1J,EAAAhlE,GAAAthF,GAAAZ,QAAA9Z,EAAAwZ,UAAA,aAAAunJ,GACAE,EAAAjlE,GAAAthF,GAAAZ,QAAA9Z,EAAAwZ,UAAA,qBAAAu+F,GACA,OAAAjmF,EAAAzL,KAAA0xF,KAEAmpD,EAAAllE,GAAAthF,GAAAZ,QAAA9Z,EAAAwZ,UAAA,oBAAAu+F,GACA,OAAAjmF,EAAAxL,KAAAyxF,KAEAopD,EAAAnlE,GAAAthF,GAAAZ,QAAA9Z,EAAAwZ,UAAA,YAAAunJ,GACAK,EAAAplE,GAAAthF,GAAAZ,QAAA9Z,EAAAwZ,UAAA,mBAAAu+F,GACA,IAAAA,EAAAx9E,MAAA6tD,QACAv2D,EAAA8zB,KAAA,CAAwC75C,OAAAisG,EAAAjsG,aAGxCu1J,EAAA,SAAA9mI,GACA,OAAA1I,EAAA4zB,KAAA,CAA6C35C,OAAA4O,GAAAZ,QAAAygB,EAAAzuB,WAE7Cw1J,EAAA,SAAA/mI,GACA,IAAAA,EAAA6tD,QACAv2D,EAAA8zB,KAAA,CAAwC75C,OAAA4O,GAAAZ,QAAAygB,EAAAzuB,WAGxCy1J,EAAA,SAAAxpD,GACA,OAAAjmF,EAAAvL,KAAA21E,GAAA6b,KAEAypD,EAAA,SAAAzpD,GACAlmF,EAAA6zB,KAAA,IACA5zB,EAAAtL,KAAA01E,GAAA6b,KAEA0pD,EAAA,WACA,OAAA5vI,EAAA6zB,KAAA,KAEA+wB,EAAA/lC,GAAA,wBACA+lC,EAAA/lC,GAAA,QAAA2wH,GACA5qF,EAAA/lC,GAAA,MAAA2wH,GACA5qF,EAAA/lC,GAAA,UAAA4wH,GACA7qF,EAAA/lC,GAAA,eAAA6wH,GACA9qF,EAAA/lC,GAAA,eAAA8wH,GACA/qF,EAAA/lC,GAAA,eAAA+wH,KAEAhrF,EAAA/lC,GAAA,oBACA+lC,EAAAp4B,IAAA,QAAAgjH,GACA5qF,EAAAp4B,IAAA,MAAAgjH,GACA5qF,EAAAp4B,IAAA,UAAAijH,GACA7qF,EAAAp4B,IAAA,eAAAkjH,GACA9qF,EAAAp4B,IAAA,eAAAmjH,GACA/qF,EAAAp4B,IAAA,eAAAojH,GACAN,EAAAxlE,SACAqlE,EAAArlE,SACAslE,EAAAtlE,SACAulE,EAAAvlE,SACAylE,EAAAzlE,WAEAllB,EAAA/lC,GAAA,oBACAyS,GAAAmpG,GACAnpG,GAAAwzB,GACA21E,EAAA7qD,UACA9qB,EAAA8qB,aAGAigE,GAAA,CAAoBnzF,MAAAsyF,IAEpBc,GAAAtyG,GACAuyG,GAAA70G,GAEA80G,GAAAjhK,EAAA,CACAyX,GAAA,YACApB,GAAA,YACAoB,GAAA,YAAApY,GACA+pD,GAAA54C,MAAA,kBAAAwzD,OAEAk9F,GAAA,SAAA93I,GACA,OAAc4J,WAAAoW,GAAA,CAAA46B,GAAA3wC,OAAA,QAEd8tI,GAAAn2I,GAAA,CACA1kB,KAAA,QACA+oC,UAAA6xH,KAEAE,GAAAphK,EAAA,CAAAmhK,KACAE,GAAArhK,EAAA,cAEAshK,GAAA,SAAAl4I,EAAAmO,EAAAjF,EAAAgK,GACA,IAAAilI,EAAA,SAAAtuI,EAAA+zB,GACAw6G,EAAAvuI,GAAA1vB,KAAA,WAEA,MADAnE,EAAAiM,QAAAzF,MAAA,gGACA,IAAA/E,MAAA,iGACS,SAAA+sB,GACT,IAAA6zI,EAAAz9F,GAAAtf,SAAA92B,GACA8zI,EAAA16G,EAAAlnD,OACA6hK,EAAAD,EAAAD,EAAA3hK,OACA8hK,EAAAD,EAAA,EAAAh6J,EAAAg6J,EAAA,WACA,OAAAv4I,EAAAy4I,aACW,GACXC,EAAAL,EAAAt6J,MAAAu6J,GACAv9J,EAAA29J,EAAA,SAAAzmI,GACA,OAAA2oC,GAAAj3C,OAAAa,EAAAyN,KAEAl3B,EAAAy9J,EAAA,SAAAvmI,GACA,OAAA2oC,GAAA53C,OAAAwB,EAAAyN,KAEA,IAAA0mI,EAAA/9F,GAAAtf,SAAA92B,GACAzpB,EAAA49J,EAAA,SAAA1mI,EAAA35B,GACA0nB,EAAA44I,UAAA/uI,EAAAoI,EAAA2rB,EAAAtlD,WAIA6R,EAAA6V,EAAAq6H,MAAA,CACAzwH,WAAA,CAAAgxC,GAAA3wC,OAAA,KACAkE,WAAA,IACO,CACPvE,WAAA,GACAuE,cAEAiqI,EAAA,SAAA3+I,GACA,OAAAuG,EAAAq6H,MAAAr+I,EAAAP,KAAAge,GAAA2qC,GAAA3qC,EAAAuG,EAAA,UAEA,OACAJ,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,WAAAhkB,EAAAgkB,WACAvE,WAAAm2B,GAAA//B,EAAA64I,eAAA1uJ,EAAAyf,YACA6I,KAAA,CAAe0lI,cAGfW,GAAAryG,GAAA,CACAvpD,KAAA+6J,KACA3xG,aAAAuxG,KACArxG,WAAAwxG,KACAz0G,QAAA20G,GACAzlI,KAAA,CACA0lI,SAAA,SAAA1lI,EAAA5I,EAAA+zB,GACAnrB,EAAA0lI,SAAAtuI,EAAA+zB,OAKAm7G,GAAA,SAAA1gJ,GACA,IAAA2gJ,EAAA1oI,GAAAjY,EAAA,YAAAje,GAAA,SACA6+J,EAAAD,EAAAh9J,EAAArC,OAAAuoB,GAAA7J,GACA,OAAA4gJ,EAAAp+J,QAAA,WACA,IAAA8nB,EAAAjS,GAAAX,QAAA,QACA2S,GAAArK,EAAAsK,GACA,IAAAs2I,EAAA/2I,GAAAS,GAEA,OADAgB,GAAAhB,GACAs2I,IACOn+J,IAAAq6B,IAAA56B,WAAA,WACP,OAAAw6B,GAAA,QAIAmkI,GAAA/2J,GAAAnB,SAAA,CACA,CACA22B,OAAA,CACA,IACA,MAGA,CACAxC,SAAA,CACA,IACA,MAGA,CACAoO,MAAA,CACA,IACA,QAIA41H,GAAA,SAAA/9I,GACA,gBAAAgzB,GACA,OAAAA,EAAAtZ,WAAA1Z,EAAAwZ,QAAAxZ,EAAAyZ,SAGAukI,GAAA,SAAAh+I,GACA,gBAAAgzB,GACA,OAAAA,EAAAtZ,UAAA1Z,EAAAwZ,OAAAxZ,EAAAyZ,SAGAwkI,GAAA,SAAAC,GACA,gBAAAviK,EAAAyZ,GACA,OAAArR,EAAAm6J,EAAA,SAAAlwI,EAAAjzB,GACA,OAAAA,EAAAizB,IACS2L,GAAAh+B,EAAAyZ,MAGT+oJ,GAAA,SAAAC,EAAA7iI,EAAAuN,GACA,OAAAs1H,EAAAr/J,KAAAk/J,GAAA,CACAD,GAAAl1H,GACAi1H,GAAAxiI,KACA0iI,GAAA,CAAAF,GAAAxiI,KAAA0iI,GAAA,MAEAI,GAAA,SAAAD,EAAA7iI,EAAAuN,GACA,OAAAs1H,EAAAr/J,KAAAk/J,GAAA,CAAAD,GAAAl1H,KAAAm1H,GAAA,IAAAA,GAAA,CAAAD,GAAAziI,OAEA+iI,GAAA,SAAAF,EAAA7iI,EAAAuN,GACA,OAAAs1H,EAAAr/J,KAAAk/J,GAAA,IAAAA,GAAA,CAAAF,GAAAj1H,KAAAm1H,GAAA,CACAD,GAAAziI,GACAwiI,GAAAj1H,OAGAy1H,GAAA,SAAAC,EAAAC,EAAAlrD,EAAAC,EAAAj4E,EAAAuN,GACA,IAAAxkC,EAAA+5J,GAAAG,EAAAjjI,EAAAuN,GACAvkC,EAAA85J,GAAAI,EAAAljI,EAAAuN,GACA,OAAA5d,KAAAgkB,IAAA5qC,EAAAk1B,OAAAj1B,EAAAi1B,SAAA+5E,GAAAroF,KAAAgkB,IAAA5qC,EAAAm1B,MAAAl1B,EAAAk1B,QAAA+5E,GAEAkrD,GAAA,SAAAF,EAAAC,EAAAlrD,EAAAC,EAAAj4E,EAAAuN,GACA,IAAAxkC,EAAA+5J,GAAAG,EAAAjjI,EAAAuN,GACAvkC,EAAA85J,GAAAI,EAAAljI,EAAAuN,GACAtP,EAAAtO,KAAAgkB,IAAA5qC,EAAAk1B,OAAAj1B,EAAAi1B,QACAC,EAAAvO,KAAAgkB,IAAA5qC,EAAAm1B,MAAAl1B,EAAAk1B,OACA,OAAAE,GAAAH,EAAAC,IAEAklI,GAAA,SAAAP,EAAA7iI,EAAAuN,GACA,OAAAs1H,EAAAr/J,KAAA,SAAApD,EAAAyZ,GACA,OACA2nB,SAAA,WACAvD,KAAA79B,EAAA,KACA89B,IAAArkB,EAAA,OAEO,SAAAzZ,EAAAyZ,GACP,OACA2nB,SAAA,WACAvD,KAAA79B,EAAAmtC,EAAAtP,OAAA,KACAC,IAAArkB,EAAA0zB,EAAArP,MAAA,OAEO,SAAA99B,EAAAyZ,GACP,OACA2nB,SAAA,QACAvD,KAAA79B,EAAA,KACA89B,IAAArkB,EAAA,SAIAwpJ,GAAA,SAAAR,EAAAr7B,EAAAC,GACA,OAAAo7B,EAAAr/J,KAAA,SAAApD,EAAAyZ,GACA,OAAA0oJ,GAAAvhI,OAAA5gC,EAAAonI,EAAA3tH,EAAA4tH,IACO,SAAArnI,EAAAyZ,GACP,OAAA0oJ,GAAA/jI,SAAAp+B,EAAAonI,EAAA3tH,EAAA4tH,IACO,SAAArnI,EAAAyZ,GACP,OAAA0oJ,GAAA31H,MAAAxsC,EAAAonI,EAAA3tH,EAAA4tH,MAGA67B,GAAA,SAAAC,EAAAC,EAAAxjI,EAAAuN,GACA,IAAAk2H,EAAA,SAAAC,EAAA93J,GACA,gBAAA+3J,EAAAC,GACA,IAAAl1I,EAAAg1I,EAAAF,EAAAxjI,EAAAuN,GACA,OAAA3hC,EAAA+3J,EAAAhgK,MAAA+qB,EAAAuP,QAAA2lI,EAAAjgK,MAAA+qB,EAAAwP,UAGA,OAAAqlI,EAAA//J,KAAAigK,EAAAV,GAAAR,GAAAvhI,QAAAyiI,EAAAX,GAAAP,GAAA/jI,UAAAilI,EAAAb,GAAAL,GAAA31H,SAEA5L,GAAAuhI,GAAAvhI,OACA6iI,GAAAtB,GAAA/jI,SACAslI,GAAAvB,GAAA31H,MAEAm3H,GAAAv4J,GAAAnB,SAAA,CACA,CAAO25J,OAAA,IACP,CACAxlI,SAAA,CACA,IACA,MAGA,CACAoO,MAAA,CACA,IACA,QAIAq3H,GAAA,SAAAnhJ,EAAAohJ,GACA,IAAAriJ,EAAAiB,EAAApB,UACA4W,GAAAzW,EAAAqiJ,EAAAC,iBACA3rI,GAAA3W,EAAAqiJ,EAAAE,cACA9rI,GAAAzW,EAAAqiJ,EAAAG,aACAH,EAAA1xF,OAAA1vD,IAEAwhJ,GAAA,SAAAxhJ,EAAAohJ,GACA,IAAAriJ,EAAAiB,EAAApB,UACA4W,GAAAzW,EAAAqiJ,EAAAC,iBACA3rI,GAAA3W,EAAAqiJ,EAAAG,aACA/rI,GAAAzW,EAAAqiJ,EAAAE,cACAF,EAAAzxF,OAAA3vD,IAEAyhJ,GAAA,SAAAjmI,EAAAY,GACA,OAAAZ,EAAAzkB,IAAAqlB,EAAAW,UAAAvB,EAAAuB,SAAAX,EAAArlB,KAEA2qJ,GAAA,SAAAlmI,EAAAY,GACA,OAAAZ,EAAAzkB,KAAAqlB,EAAArlB,KAEA4qJ,GAAA,SAAAnmI,EAAAY,GACA,OAAAZ,EAAAuB,UAAAX,EAAAW,UAEA6kI,GAAA,SAAAp8H,EAAAhK,EAAAY,GACA,OAAA36B,GAAA+jC,EAAA,SAAAke,GACA,OAAAA,GACA,aACA,OAAAi+G,GAAAnmI,EAAAY,GACA,UACA,OAAAslI,GAAAlmI,EAAAY,OAIAylI,GAAA,SAAA9iJ,EAAAgW,GACA,OAAAvJ,GAAAzM,EAAAgW,GAAAxyB,EAAAP,KAAAo4B,SAAA9O,GAAAvM,EAAAgW,GAAA,KAAAxyB,EAAArC,QAEA4hK,GAAA,SAAA/iJ,EAAAgjJ,GACA,OAAAF,GAAA9iJ,EAAAgjJ,EAAAC,UAAAzgK,KAAA,SAAA45B,GACA,OAAA0mI,GAAA9iJ,EAAAgjJ,EAAAE,SAAA5gK,IAAA,SAAA+5B,GACA,IAAAoD,EAAAjC,GAAAxd,GACAkb,EAAAa,GAAA/b,GACA,OAAAuf,GAAAnD,EAAAC,EAAAoD,EAAAvE,QAIAioI,GAAA,SAAAnjJ,EAAAgjJ,EAAAI,EAAAC,EAAA1jI,GACAvT,GAAApM,EAAAgjJ,EAAAC,SAAAG,GACAh3I,GAAApM,EAAAgjJ,EAAAE,QAAAG,GACAj3I,GAAApM,EAAAgjJ,EAAAM,aAAA3jI,IAEA4jI,GAAA,SAAAvjJ,EAAAgjJ,GACAr2I,GAAA3M,EAAAgjJ,EAAAC,UACAt2I,GAAA3M,EAAAgjJ,EAAAE,SACAv2I,GAAA3M,EAAAgjJ,EAAAM,eAEAE,GAAA,SAAAxjJ,EAAAgjJ,EAAAvmI,GACA,IAAAkD,EAAApT,GAAAvM,EAAAgjJ,EAAAM,cAEA,OADAC,GAAAvjJ,EAAAgjJ,GACArjI,GACA,aACA,OAAAn8B,EAAAP,KAAAi/J,GAAAC,UACA,eACA,OAAA3+J,EAAAP,KAAAi/J,GAAAvlI,SAAAF,EAAAl+B,IAAAk+B,EAAAzkB,MACA,QACA,OAAAxU,EAAArC,SAGAsiK,GAAA,SAAAzjJ,EAAAgjJ,EAAA3lI,GACA,OAAA0lI,GAAA/iJ,EAAAgjJ,GAAArgK,OAAA,SAAA85B,GACA,OAAAomI,GAAAG,EAAAv8H,MAAAhK,EAAAY,KACO76B,KAAA,SAAAi6B,GACP,OAAA+mI,GAAAxjJ,EAAAgjJ,EAAAvmI,MAGAinI,GAAA,SAAA1jJ,EAAAgjJ,EAAA3lI,EAAAc,EAAAwlI,GACA,IAAAnqH,EAAA/c,GAAAzc,GACA,GAAA6iJ,GAAAG,EAAAv8H,MAAA+S,EAAAnc,GAWA,OAAA75B,EAAArC,OAVA,IAAAuqC,EAAAi4H,IACAhkI,EAAAhI,GAAA3X,EAAA,YACAmjJ,GAAAnjJ,EAAAgjJ,EAAAxpH,EAAAj7C,IAAAi7C,EAAAxhC,IAAA2nB,GACA,IAAAqhI,EAAAgB,GAAAxoH,EAAAj7C,IAAAi7C,EAAAxhC,KACA4rJ,EAAA7C,GAAAC,EAAA7iI,EAAAuN,GACAm4H,EAAA7B,GAAA3kI,EAAA9+B,IAAA8+B,EAAArlB,KACA8rJ,EAAA/C,GAAA8C,EAAA1lI,EAAAuN,GACAq4H,EAAAvqH,EAAAxhC,KAAAqlB,EAAArlB,IAAA8rJ,EAAAznI,MAAAynI,EAAAznI,MAAAgB,EAAAxB,SAAA2d,EAAA3d,SACA,OAAAr4B,EAAAP,KAAAi/J,GAAAn3H,MAAA64H,EAAAxnI,OAAA2nI,KAKAC,GAAA,SAAA/iJ,EAAA+hJ,EAAA3lI,EAAAc,EAAAwlI,GACA,IAAA3jJ,EAAAiB,EAAApB,UACAokJ,EAAAnsI,GAAA9X,EAAA,YAAApe,GAAA,SACA,OAAAqiK,EAAAR,GAAAzjJ,EAAAgjJ,EAAA3lI,GAAAqmI,GAAA1jJ,EAAAgjJ,EAAA3lI,EAAAc,EAAAwlI,IAEAO,GAAA,SAAAjjJ,EAAA+hJ,GACA,IAAAhjJ,EAAAiB,EAAApB,UACA,OAAAkjJ,GAAA/iJ,EAAAgjJ,GAAAxgK,KAAA,SAAAi6B,GACA,OAAA+mI,GAAAxjJ,EAAAgjJ,EAAAvmI,MAIA0nI,GAAA,SAAAljJ,EAAAwQ,GACAlvB,EAAA,CACA,OACA,MACA,YACA,SAAAgO,GACA,OAAA0nB,GAAAhX,EAAApB,UAAAtP,KAEAkhB,EAAA2yI,WAAAnjJ,IAEAojJ,GAAA,SAAApjJ,EAAAwQ,EAAA0M,EAAAuN,EAAA44H,GACA,IAAAnyI,EAAAovI,GAAA+C,EAAAnmI,EAAAuN,GACAlU,GAAAvW,EAAApB,UAAAsS,GACA,IAAAoyI,EAAA,UAAApyI,EAAAwN,SAAAlO,EAAA+yI,SAAA/yI,EAAA2yI,WACAG,EAAAtjJ,IAEAwjJ,GAAA,SAAAxjJ,EAAAwQ,EAAA5iB,EAAAwuB,EAAAqnI,QACA,IAAAA,IACAA,GAAA,GAEAjzI,EAAAkzI,WAAApiK,KAAA,SAAAqiK,GACAA,EAAAC,YAAA5jJ,GAAA1e,KAAA,SAAAk6B,GACA,IAAAu3B,EAAA0uG,GAAAjmI,EAAAY,GACA,GAAA22B,IAAAnlD,EAAAmlD,YAEA,GADAnlD,EAAAi2J,WAAA9wG,GACA0wG,IAAA1wG,EACAn9B,GAAA5V,EAAApB,UAAA,CAAA+kJ,EAAArC,eACAqC,EAAAh0F,OAAA3vD,OACa,CACb,IAAAsjJ,EAAAvwG,EAAAouG,GAAAK,GACA8B,EAAAtjJ,EAAA2jJ,SAMAG,GAAA,SAAA9jJ,EAAAwQ,EAAA5iB,GACA,IAAAwuB,EAAA5L,EAAAuzI,aAAA/jJ,GACAjB,EAAAiB,EAAApB,UACA9I,EAAAuS,GAAAtJ,GACAme,EAAAR,GAAA5mB,GACA4sJ,EAAAl5J,GAAA,WACA,OAAA81J,GAAAvgJ,KAEAikJ,EAAAp1J,EAAAo1J,WACAA,GACAQ,GAAAxjJ,EAAAwQ,EAAA5iB,EAAAwuB,GAEA2mI,GAAA/iJ,EAAAwQ,EAAA4L,EAAAc,EAAAwlI,GAAAphK,KAAA,SAAA+hK,GACAz1J,EAAAo2J,WAAAhB,GACAK,EAAA3iK,KAAA,WACA,OAAAwiK,GAAAljJ,EAAAwQ,IACS,SAAAlzB,EAAAyZ,GACT,OAAAqsJ,GAAApjJ,EAAAwQ,EAAA0M,EAAAwlI,IAAA3B,GAAAzjK,EAAAyZ,KACS,SAAAzZ,EAAAyZ,GACTysJ,GAAAxjJ,EAAAwQ,EAAA5iB,EAAAwuB,GAAA,GACAgnI,GAAApjJ,EAAAwQ,EAAA0M,EAAAwlI,IAAA1B,GAAA1jK,EAAAyZ,SAIAktJ,GAAA,SAAAjkJ,EAAAwQ,EAAA5iB,GACA,IAAAmR,EAAAiB,EAAApB,UACAhR,EAAAo2J,WAAA,GACAf,GAAAjjJ,EAAAwQ,GAAAlvB,KAAA,SAAA+hK,GACAA,EAAA3iK,KAAA,WACA,OAAAwiK,GAAAljJ,EAAAwQ,IACS,SAAAlzB,EAAAyZ,GACT,IAAAjB,EAAAuS,GAAAtJ,GACAme,EAAAR,GAAA5mB,GACA20B,EAAA60H,GAAAvgJ,GACAqkJ,GAAApjJ,EAAAwQ,EAAA0M,EAAAuN,EAAAs2H,GAAAzjK,EAAAyZ,KACSva,KAEToR,EAAAi2J,YAAA,GACArzI,EAAAkzI,WAAApiK,KAAA,SAAAqiK,GACA9tI,GAAA9W,EAAA,CACA4kJ,EAAApC,YACAoC,EAAArC,aACAqC,EAAAtC,kBAEAsC,EAAAj0F,OAAA1vD,KAEAkkJ,GAAAlkJ,EAAAwQ,EAAA5iB,IAEAs2J,GAAA,SAAAlkJ,EAAAwQ,EAAA5iB,GACAoS,EAAAiE,YAAAqK,eACAw1I,GAAA9jJ,EAAAwQ,EAAA5iB,IAGAu2J,GAAA,SAAAnkJ,EAAAwQ,EAAA5iB,GACAA,EAAAo1J,YACAiB,GAAAjkJ,EAAAwQ,EAAA5iB,IAGAo1J,GAAA,SAAAhjJ,EAAAwQ,EAAA5iB,GACA,OAAAA,EAAAo1J,YAGAoB,GAAA3lK,OAAAsD,OAAA,CACA6nE,QAAAs6F,GACAC,SACAnB,cAGAqB,GAAA,SAAAtC,EAAAuC,GACA,OAAA5+I,GAAA,CACAuB,GAAApF,KAAA,SAAA7B,EAAAC,GACA8hJ,EAAA2B,WAAApiK,KAAA,SAAAqiK,GACA,GAAAhuI,GAAA3V,EAAApB,UAAA+kJ,EAAAtC,iBAAA,CACAxrI,GAAA7V,EAAApB,UAAA,CACA+kJ,EAAAtC,gBACAsC,EAAApC,cAEA,IAAAv2D,EAAAs5D,EAAAvxG,YAAA4wG,EAAAY,QAAAZ,EAAAa,SACAx5D,EAAAhrF,GAEAC,EAAAiF,WAGAtE,GAAAkC,KAAA,SAAA9C,EAAAtd,GACAwhK,GAAAlkJ,EAAA+hJ,EAAAuC,KAEA1jJ,GAAAmC,KAAA,SAAA/C,EAAAtd,GACAyhK,GAAAnkJ,EAAA+hJ,EAAAuC,QAKAG,GAAAhmK,OAAAsD,OAAA,CACAmqB,OAAAm4I,KAGAK,GAAA,CACAhwJ,GAAA,cACAf,GAAA,eACAA,GAAA,gBACAA,GAAA,mBACAG,GAAA,eACAquB,GAAA,UACAA,GAAA,WACAA,GAAA,UACAA,GAAA,cAEAjtB,GAAA,eAAAymB,IACAhoB,GAAA,YACAA,GAAA,WACAA,GAAA,gBACAyB,GAAA,SACA,MACA,UACAvC,IACAsvB,GAAA,YACAA,GAAA,eAGAwiI,GAAA,WACA,IAAAC,EAAArvJ,IAAA,GACA0hD,EAAA1hD,IAAA,GACAya,EAAA,WACA,kBAAA40I,EAAAx9J,MAAA,cAAA6vD,EAAA7vD,OAEA,OAAA2oB,GAAA,CACAizI,SAAA,WACA,OAAA4B,EAAAx9J,OAEA48J,UAAA,SAAAp2J,GACA,OAAAg3J,EAAAnvJ,IAAA7H,IAEAmlD,UAAA,WACA,OAAAkE,EAAA7vD,OAEAy8J,WAAA,SAAAj2J,GACA,OAAAqpD,EAAAxhD,IAAA7H,IAEAoiB,eAIA60I,GAAApmK,OAAAsD,OAAA,CACA+tB,KAAA60I,KAGAG,GAAAp+H,GAAA,CACAt8B,OAAAs6J,GACAjhK,KAAA,UACA0hC,OAAAs/H,GACAzrI,KAAAorI,GACAx2J,MAAAi3J,KAGAE,GAAA,CACAxD,YAAA,yBACAD,aAAA,0BACAD,gBAAA,8BAEA2D,GAAA,iCACAC,GAAA,kCACAC,GAAA,SAAApvB,GACA,IAAAj/D,EAAAi/D,EAAAl3H,UACA4J,GAAAquD,GAAAv1E,KAAA,SAAA6jK,GACA,GAAAL,GAAA9B,SAAAltB,GAAA,CACA,IAAAsvB,EAAA7oI,GAAA4oI,GACA7uI,GAAAugD,EAAA,QAAAuuF,EAAA,MACA,IAAAC,EAAAtqI,GAAA87C,GACAvgD,GAAA6uI,EAAA,cAAAE,EAAA,WAEAruI,GAAA6/C,EAAA,SACA7/C,GAAAmuI,EAAA,kBAIAG,GAAA,SAAAC,EAAAtuG,GACAA,GACAvhC,GAAA6vI,EAAAR,GAAAzD,cACA1rI,GAAA2vI,EAAA,CACAR,GAAA1D,gBACA0D,GAAAxD,gBAGA7rI,GAAA6vI,EAAAR,GAAAxD,aACA3rI,GAAA2vI,EAAA,CACAR,GAAAzD,aACAyD,GAAA1D,oBAIAmE,GAAA,SAAAxyF,EAAA4xF,GACA,IAAAa,EAAAxuJ,GAAAZ,QAAA28D,EAAAk4B,gBACA05D,GACApvI,GAAAiwI,EAAAT,IACAtvI,GAAA+vI,EAAAR,MAEAzvI,GAAAiwI,EAAAR,IACAvvI,GAAA+vI,EAAAT,MAGAU,GAAA,SAAAzb,EAAA0b,GACA,IAAAv9H,EAAA/f,GAAAs9I,GACAxgI,GAAAiD,GAAA1mC,OAAA,SAAAkkK,GACA,OAAAxlK,GAAAulK,EAAAC,KACOlkK,OAAA,SAAAkkK,GACP,OAAAxlK,GAAAwlK,EAAA3uJ,GAAAZ,QAAA+xB,EAAAxxB,MAAAmO,QAAAjF,GAAAmqI,EAAA2b,KACOtkK,KAAA,WACP,OAAAwmC,GAAA69H,MAGAE,GAAA,SAAAC,EAAAv3F,GACA,OAAAxyD,GAAA+pJ,GAAA1kK,QAAA,WACA,OAAAmtE,IAAA3rE,WAAArB,KAAA,SAAA6/C,GACA,OAAArlC,GAAAqlC,EAAAxiC,gBAIAmnJ,GAAA,SAAA/yF,EAAAm3E,GACAn3E,EAAAytB,SACAztB,EAAA/lC,GAAA,qDACAk9G,IAAA7oJ,KAAA4jK,MAEAlyF,EAAA/lC,GAAA,wBACAk9G,IAAA7oJ,KAAAwjK,GAAAX,SAEAnxF,EAAA/lC,GAAA,oCACAk9G,IAAA7oJ,KAAAwjK,GAAAl7F,YAGAoJ,EAAA/lC,GAAA,wBACAu4H,GAAAxyF,GAAA,MAGAgzF,GAAA,SAAA7b,GACA,OAAAA,IAAA9oJ,IAAAyjK,GAAA9B,UAAAniK,OAAA,IAEAolK,GAAA,WACA,IAAA3sI,EACA,OAAAoO,GAAAlX,OAAA,CAAgCuW,UAAAzN,EAAA,GAAmBA,EAAA8uH,MAAA,CAA+B7gH,UAAA29H,IAAqC5rI,OAEvH4sI,GAAA,SAAAlzF,EAAAzE,GACA,IAAA8zE,EAAA9sI,GAAAhT,EAAArC,QACAimK,EAAA,SAAAzpK,GACA6xE,IAAAjtE,KAAA,SAAA8/C,GACA,OAAA1kD,EAAA0kD,EAAAxiC,cAGAwnJ,EAAA,SAAA72I,GACAyjD,EAAAytB,QACAykE,GAAA31I,GAEAi2I,GAAAxyF,EAAA8xF,GAAA9B,SAAAzzI,IACAA,EAAAtL,YAAAmK,YAAA,CAAA6zB,MAAA,IACAssB,IAAAjtE,KAAA,SAAA8/C,GACA,OAAAA,EAAAn9B,YAAAmK,YAAA,CAAA6zB,MAAA,OAGAokH,EAAArzF,EAAAytB,OAAA,GAAAwlE,KACA,OAAAxmK,EAAA,CACA0iE,GAAA3xC,OAAA,IACAs0I,GAAAt0I,OAAA,CACAwxI,SAAA,iBACAC,QAAA,gBACAI,aAAA,gBACAqB,WAAAllK,EAAA,CACAolK,YAAA,SAAAr0I,GACA,IAAA81I,EAAAtqI,GAAAxL,EAAA3Q,WACAmM,EAAAioD,EAAAytB,OAAAztB,EAAAu+E,0BAAAv+E,EAAAk4B,eACA3yD,EAAA/c,GAAAvkB,GAAAZ,QAAA0U,IACAu7I,EAAA/tH,EAAA3d,SAAAyqI,EACA,OAAA9iK,EAAAP,KAAAs8B,GAAAia,EAAAj7C,IAAAi7C,EAAAxhC,IAAAwhC,EAAA1b,QAAAypI,KAEA52F,OAAA,WACAy2F,EAAA,SAAApnJ,GACA,OAAAumJ,GAAAvmJ,GAAA,MAGAwlJ,QAAA,SAAAh1I,GACA42I,EAAA,SAAApnJ,GACA,OAAA8W,GAAA9W,EAAA,CACAgmJ,GAAA1D,gBACA0D,GAAAxD,gBAGAlf,EAAAj7I,MAAA9F,KAAA,SAAAyd,GACA2mJ,GAAAn2I,EAAA3Q,UAAAG,GACAsjI,EAAA5sI,IAAAlT,EAAArC,WAGAyvE,OAAA,SAAApgD,GACA8yH,EAAA5sI,IAAAowJ,GAAAt2I,EAAA3Q,UAAA2vD,IACA43F,EAAA,SAAApnJ,GACA,OAAAumJ,GAAAvmJ,GAAA,MAGAylJ,SAAA,WACA2B,EAAA,SAAApnJ,GACA,OAAA8W,GAAA9W,EAAA,CAAAgmJ,GAAA1D,sBAGW0D,IACXv/H,MAAA,QACA+9H,SAAA6C,EACAjD,WAAAiD,KAEAC,IAGAE,GAAA9nK,OAAAsD,OAAA,CACA+oE,MAAAi7F,GACA/C,SAAAgD,GACAv1I,cAAAy1I,KAGAM,GAAAhqK,EACAiqK,GAAAxoK,EACAyoK,GAAAvpK,EAAA,IAEAwpK,GAAAloK,OAAAsD,OAAA,CACA+oE,MAAA07F,GACAxD,SAAAyD,GACAh2I,cAAAi2I,KAGA7wB,GAAA,SAAApmH,GACA,IAAAujD,EAAAvjD,EAAAujD,OACAviD,EAAAhB,EAAAm3I,OAAAV,GAAAQ,GACA,OACAvgJ,IAAAsJ,EAAAtJ,IACAvP,IAAA6Y,EAAA7Y,IACA8d,WAAAjF,EAAAiF,WACAvE,WAAAoW,GAAA9V,EAAAuiD,EAAAvjD,EAAA0kD,YAIA0yF,GAAA,SAAAtgJ,EAAAkJ,GACA,IAAAq3I,EAAA,SAAAv3I,EAAAk4C,GACA,IAAA8vD,EAAAl2H,EAAAomE,EAAA,SAAAshB,GACA,IAAAmwC,EAAA,CACAv1H,KAAA,aACA+S,KAAAqyE,EAAAryE,KACAujE,MAAA,SAAAuV,GACAA,EAAAzG,EAAA4pD,cAGA1U,EAAA8sB,GAAA7xB,GAAAz2H,SAAA,SAAA0P,GACA,OAAAC,GAAAD,KACWpR,WACX,OAAAk3H,GAAAgG,EAAA,WAAAxuG,EAAA0jD,UAAA5wE,EAAAP,KAAA,eAEAm/D,GAAA1rD,IAAA8Z,EAAAgoG,IAEAv+F,EAAA,CACA/W,MAAA29C,GAAAnN,QACAq0G,YAEA,OACA3gJ,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,WAAA,GACAvE,WAAAoW,GAAA,CACA46B,GAAA3wC,OAAA,IACAA,GAAA,kBACAtJ,GAAA,SAAAlH,GACAuG,EAAA6+D,QAAAplE,KAEAY,GAAAU,KAAA,SAAAiO,EAAAg0B,GACA1kB,GAAAtP,EAAA3Q,UAAA,qBAAAtd,KAAA,SAAAylK,GACAjoI,GAAAykB,EAAArjC,QAAA7X,SAAA,aAAA/G,KAAA,SAAA0lK,GACA5mK,GAAA2mK,EAAAC,IACAz3I,EAAAtL,YAAA2C,SAAAmgJ,GAAAzlK,KAAA,SAAA2lK,GACA13I,EAAAtL,YAAA2C,SAAAogJ,GAAA1lK,KAAA,SAAA4lK,GACAz2D,GAAA9mC,OAAAu9F,GACAz2D,GAAAhwD,MAAAwmH,GACA9kG,GAAAlgD,MAAAilJ,aAOAtmJ,GAAAwC,KAAA,SAAAmM,EAAAg0B,GACAA,EAAArjC,QAAAqxC,YAAAhwD,KAAA,SAAA80E,GACA,OAAA9mD,EAAAtL,YAAA2C,SAAAyvD,GAAAzzE,aACetB,KAAA,SAAA+0E,GACf9yB,EAAArjC,QAAAsoB,WAAAjnC,KAAA,SAAAuH,GACA,OAAAymB,EAAAtL,YAAA2C,SAAA9d,GAAAlG,aACiBtB,KAAA,SAAAwH,GACjB2nG,GAAA7vD,OAAAy1B,KACAo6B,GAAA9mC,OAAA7gE,GACA2nG,GAAAhwD,MAAA41B,YAMAzW,GAAApvC,OAAA,CACAkzB,KAAA,OACA7kC,SAAA,YACAy1C,SAAA,SAAA/kC,GAEA,OADAhJ,EAAA+tC,SAAA/kC,GACAhtB,EAAAP,MAAA,MAGA2qG,GAAAn8E,OAAA,MAEAwI,OACApE,gBAAA,CAA0B3D,WAAA,CAAc2zC,KAAA,cAGxCuiG,GAAAx6G,GAAA,CACA7C,QAAA+8G,GACApjK,KAAA,iBACAopD,aAAA,CACAr5C,GAAA,OACAA,GAAA,OACAA,GAAA,YACAA,GAAA,aACAoB,GAAA,UAAApY,IAEAw8B,KAAA,CACA/W,MAAA,SAAA+W,EAAAzJ,GACAyJ,EAAA/W,MAAAsN,IAEAu3I,SAAA,SAAA9tI,EAAAzJ,EAAAk4C,GACAzuC,EAAA8tI,SAAAv3I,EAAAk4C,OAKA2/F,GAAA,YACAC,GAAA,CAAAnhH,GAAA,sBACAohH,GAAA,SAAA7jK,GACA,sBAAAA,EAAA,KAEA8jK,GAAA,SAAAC,GACA,IAAApnJ,EAAA,WACA,IAAA4wD,EAAA,GACAy2F,EAAA,SAAAhkK,EAAA+sB,GAEA,OADAwgD,EAAAvsE,KAAAhB,GACA8mD,GAAA68G,GAAAE,GAAA7jK,GAAA+sB,IAEA,OACAi3I,OACAz2F,OAAA,WACA,OAAAA,IATA,GAaAvhD,EAAA+3I,EAAApnJ,GACAqrC,EAAArrC,EAAA4wD,SACA4uC,EAAAv+G,EAAAoqD,EAAA,SAAA3sD,GACA,OAAA4oB,GAAA,CACAjkB,KAAA3E,EACA+qD,MAAAy9G,GAAAxoK,OAGA,OAAAstD,GAAAg7G,GAAAC,GAAAznD,EAAA8nD,GAAAj4I,IAEAi4I,GAAA,SAAAnhJ,EAAAmO,EAAAjF,GACA,IAAAk4I,EAAA,SAAAjlK,GACA,OAAA0oD,GAAA7kC,IAEAqhJ,EAAA,SAAA78I,EAAA1jB,GACA,OAAAsjD,GAAA5/B,EAAAxE,EAAAlf,IAEAwgK,EAAA,SAAAnrK,EAAAorK,GAIA,YAHA,IAAAA,IACAA,OAAA5mK,GAEA,SAAA6pB,EAAA1jB,GACA,OAAAsjD,GAAA5/B,EAAAxE,EAAAlf,GAAAhG,IAAA,SAAAomK,GACA,OAAA/qK,EAAA+qK,EAAApgK,KACWxG,MAAAinK,KAGXC,EAAA,SAAArrK,GACA,gBAAAquB,EAAArkB,GACApF,EAAAoF,EAAA,SAAAW,GACA,OAAA3K,EAAAquB,EAAA1jB,OAIA2gK,EAAA,SAAAz4I,EAAAloB,GACA,eAAAikB,GAAAiE,EAAA3Q,UAAA,gBAEAqpJ,EAAA,SAAA14I,EAAAloB,GACA,IAAA2gK,EAAAz4I,GAAA,CACA,IAAA3Q,EAAA2Q,EAAA3Q,UACAoY,GAAApY,EAAA,WACA8M,GAAA9M,EAAA,eACAgF,GAAA2L,EAAAlM,KAAA,CACA5f,KAAA4D,EACA4vD,SAAA,MAIAixG,EAAA,SAAA34I,EAAAloB,GACA,GAAA2gK,EAAAz4I,GAAA,CACA,IAAA3Q,EAAA2Q,EAAA3Q,UACA0X,GAAA1X,EAAA,kBACAuM,GAAAvM,EAAA,sBACAgF,GAAA2L,EAAAlM,KAAA,CACA5f,KAAA4D,EACA4vD,SAAA,MAIAomB,EAAAwqF,EAAAG,GAAA,GACAG,EAAAN,EAAAK,GACAE,EAAAL,EAAAI,GACAE,EAAA,SAAAt9I,GACA,OAAAq9I,EAAAr9I,EAAA48I,MAEAW,EAAAT,EAAAI,GACAjvI,EAAA,CACA2uI,eACAC,UACAvqF,YACA8qF,WACAE,eACAC,YAEA,OACAniJ,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAvE,WAAAi2B,GAAA7/B,EAAAgiJ,gBACAvvI,SAGAwvI,GAAA1hK,GAAA,CACA6gK,aAAA,SAAA3uI,EAAAnS,GACA,OAAAmS,EAAA2uI,aAAA9gJ,IAEA+gJ,QAAA,SAAA5uI,EAAAnS,EAAAxf,GACA,OAAA2xB,EAAA4uI,QAAA/gJ,EAAAxf,IAEAg2E,UAAA,SAAArkD,EAAAnS,EAAAxf,GACA,OAAA2xB,EAAAqkD,UAAAx2D,EAAAxf,IAEA8gK,SAAA,SAAAnvI,EAAAnS,EAAAxf,GACA,OAAA2xB,EAAAmvI,SAAAthJ,EAAAxf,IAEAghK,aAAA,SAAArvI,EAAAnS,GACA,OAAAmS,EAAAqvI,aAAAxhJ,IAEAyhJ,SAAA,SAAAtvI,EAAAnS,EAAAxf,GACA,OAAA2xB,EAAAsvI,SAAAzhJ,EAAAxf,KAEKqoB,IACL+4I,GAAAjqK,IAAA,GAA4CgqK,IAAA,CAActgH,OAAAq/G,KAE1DmB,GAAAp7J,GAAA,CACAiH,GAAA,QACAA,GAAA,WACAW,GAAA,SAAA1Y,GACA0Y,GAAA,SAAA1Y,GACA0Y,GAAA,qBACA,OAAA1Y,MAGAmsK,GAAA,SAAAl5I,GACA,OAAAxd,GAAA,UAAAy2J,GAAAj5I,IAGAm5I,GAAA,SAAA51F,GACA,IAAA61F,EAAA71F,EAAAgI,GAAAC,SAAAC,SAAA2tF,SACAvnK,EAAAoF,GAAAmiK,GAAA,SAAAplK,GACA,IAAAgsB,EAAAo5I,EAAAplK,GACA20E,EAAA,WACA,OAAA71E,EAAAD,KAAA0wE,EAAAojF,kBAAA,kBAAAz1J,GAAA8C,IAEAuvE,EAAAgI,GAAAC,SAAA6tF,gBAAArlK,EAAA,CACA+uE,KAAA/iD,EAAA+iD,KACAsL,QAAAruD,EAAAquD,QACAlL,SAAA,SAAAsjD,GACAljD,EAAAqc,YAAA,mBAAA5rF,GACAyyH,EAAA9uC,UAAAhP,MAEAgN,QAAA,SAAA8wC,GACA,IAAA6yC,EAAA,WACA,OAAA7yC,EAAA9uC,UAAAhP,MAGA,OADApF,EAAA/lC,GAAA,gBAAA87H,GACA,WACA/1F,EAAAp4B,IAAA,gBAAAmuH,UAMA/jF,GAAA,SAAAz1D,GACA,OACA3Q,QAAA,WACA,OAAA2Q,EAAA3Q,UAAAhI,SAIAoyJ,GAAA,SAAA5oJ,EAAA6oJ,GACA,IAAAprF,EAAAx8E,EAAAqF,GAAAuiK,GAAA,SAAAxlK,GACA,IAAAgsB,EAAAw5I,EAAAxlK,GACAisJ,EAAA3uJ,GAAA4nK,GAAAl5I,IACA,OACAhsB,OACAuhF,UACAI,QAAAsqE,EAAAtqE,QACA1V,OAAAggF,EAAAhgF,OACAC,OAAA+/E,EAAA//E,UAGA,OAAAtuE,EAAAw8E,EAAA,SAAApuD,GACA,IAAAy1D,EAAA3vE,GAAA/Y,GACA,OAAA4jB,EAAAqnJ,KAAAh4I,EAAAhsB,KAAA,CACAmT,IAAA,CACAL,IAAA,MACAya,QAAA,uBAEAb,WAAAysD,GAAAD,cAAA,CACAsI,GAAAx1D,EAAAy1D,GACAG,GAAA51D,EAAAy1D,GACAtkE,GAAAyC,KAAA,SAAA6lJ,EAAA3lH,GACA,IAAAv/B,EAAAu/B,EAAArjC,QACAipJ,EAAAxjK,EAAAk4E,EAAA,SAAArtD,GACA,OAAAA,EAAA/sB,OAAAugB,EAAAvgB,SAEA0lK,EAAA7nK,KAAA,SAAA8nK,GACA,IAAA7oJ,EAAAyD,EAAAizC,UAAAmyG,EAAA15F,OAAA05F,EAAAz5F,OACApvD,EAAA6oJ,EAAApkF,OAAAkkF,eAOAG,GAAA,SAAAJ,GACA,OAAAR,GAAAvgH,OAAA,SAAA9nC,GACA,OACAxJ,IAAA,CACAL,IAAA,MACAya,QAAA,iCAEA0D,WAAAs0I,GAAA5oJ,EAAA6oJ,GACAV,eAAA3rF,GAAAD,cAAA,CAAAz1D,GAAA,SAAAoiJ,GACA,OAAAb,GAAAJ,aAAAiB,WAKAC,GAAA,SAAAC,EAAAP,GACA,IAAAQ,EAAAl8G,GAAAL,WAAAs8G,GACAC,EAAAnoK,KAAA,SAAAk5G,GACA,OAAAr5C,GAAA1rD,IAAA+kG,EAAA,CAAA6uD,GAAAJ,QAGAS,GAAA,SAAAF,EAAA/lK,GACA,IAAAgmK,EAAAl8G,GAAAL,WAAAs8G,GACAC,EAAAnoK,KAAA,SAAAk5G,GACA,IAAAmvD,EAAAp8G,GAAAL,WAAAstD,GACAmvD,EAAAroK,KAAA,SAAAgoK,GACA5hB,GAAAhB,SAAAlsC,GACAiuD,GAAAprF,UAAAisF,EAAA7lK,GACAikJ,GAAAlB,OAAAhsC,IAEAiuD,GAAAJ,aAAAiB,GACAb,GAAAH,SAAAgB,EAAA7lK,KAGAglK,GAAAJ,aAAAiB,GACAb,GAAAH,SAAAgB,EAAA7lK,GACAikJ,GAAAnB,KAAA/rC,SAKAovD,GAAA,SAAAJ,GACA,IAAAC,EAAAl8G,GAAAL,WAAAs8G,GACA,OAAAC,EAAAloK,KAAA,SAAAi5G,GACA,IAAAqvD,EAAAniB,GAAAb,UAAArsC,IAAAktC,GAAAhB,SAAAlsC,GACA,GAAAqvD,EAAA,CACA,IAAAF,EAAAp8G,GAAAL,WAAAstD,GACA,OAAAmvD,EAAApoK,KAAA,SAAA+nK,GACA,OAAA3jK,EAAA8iK,GAAAd,aAAA2B,GAAA,SAAA7lK,GACA,OAAAglK,GAAAprF,UAAAisF,EAAA7lK,OAIA,OAAAlB,EAAArC,UAIA4pK,GAAAx9I,GAAA,gBACAy9I,GAAAz9I,GAAA,iBACA09I,GAAA,SAAAv6I,GACA,OACAtJ,IAAAsJ,EAAAtJ,IACAvP,IAAA,CACAL,IAAA,MACAya,QAAA,gBACAC,WAAA,CAAuB2zC,KAAA,kBAEvBlwC,WAAA,EACA9d,IAAA,CACAL,IAAA,MACAya,QAAA,yBAEA0D,WAAA,GACAvE,WAAAoW,GAAA,CACAomE,GAAAn8E,OAAA,IACA2xC,GAAA3xC,OAAA,IACAk3H,GAAAl3H,OAAA,CACAk0H,UAAA,CAA4BxuH,SAAA,SAC5B8uH,YAAA,8BACAzV,UAAA,4BACAsV,eAAA,iCACAC,aAAA,+BACAS,SAAA,SAAA/qC,GACA,IAAAmvD,EAAAp8G,GAAAL,WAAAstD,GACAmvD,EAAAroK,KAAAmnK,GAAAJ,cACA3kJ,GAAA82F,EAAAuvD,KAEA1iB,QAAA,SAAA7sC,GACA92F,GAAA82F,EAAAuvD,KAEA3jB,YAAA,SAAA5rC,GACA52F,GAAA42F,EAAAsvD,GAAA,CAA6CjtI,MAAAhG,GAAA2jF,EAAA57F,UAAA,SAAA/d,MAAA,OAE7CykJ,cAAA,SAAA9qC,GACA52F,GAAA42F,EAAAsvD,GAAA,CAA6CjtI,MAAAN,GAAAi+E,EAAA57F,WAAA,UAG7CuiD,GAAA3wC,OAAA,IACA+8B,GAAA/8B,OAAA,CACA7qB,KAAA,SAAA4pB,GACA,IAAA5G,EAAAw4C,GAAAtf,SAAAtyB,GACA,OAAAhpB,GAAAoiB,UAKAwH,WAAAoW,GAAA,CACA0+E,GAAAD,QAAA,GACAx0F,GAAA,0BACA5P,GAAAkpJ,GAAA,SAAAv6I,EAAAg0B,GACAjtB,GAAA/G,EAAA3Q,UAAA,QAAA2kC,EAAArjC,QAAA2c,WAEAjc,GAAAmpJ,GAAA,SAAAx6I,EAAAg0B,GACAvsB,GAAAzH,EAAA3Q,UAAA,iBAOAqrJ,GAAA,SAAA5oF,GACA,OACAzqE,IAAA,CACAL,IAAA,MACA0a,WAAA,CAAuB0hD,aAAA0O,EAAAhmD,UAAA,eACvBrK,QAAA,gCAEA0D,WAAA,EAAsB9d,IAAA6nE,GAAA,sEACtBtuD,WAAAoW,GAAA,CACAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACAmb,MAAA,WACA,OAAAt8D,EAAAP,MAAA,IAEA48D,WAAA,WACA,OAAAr8D,EAAAP,MAAA,MAGAmgE,GAAA3xC,OAAA,QAIA05I,GAAA,SAAA36I,EAAA3hB,EAAAyzE,GACA,IAAAziE,EAAA2Q,EAAA3Q,WACA,IAAAhR,GACAuzD,GAAA1rD,IAAA8Z,EAAA,CAAA06I,GAAA5oF,KACArqD,GAAApY,EAAA,WACA8M,GAAA9M,EAAA,iBAEAuiD,GAAA1rD,IAAA8Z,EAAA,IACA+G,GAAA1X,EAAA,kBACAuM,GAAAvM,EAAA,wBAGAurJ,GAAA,SAAA16I,GACA,OACAtJ,IAAAsJ,EAAAtJ,IACAvP,IAAA,CACAL,IAAA,MACA0a,WAAA,CAAuBwxE,cAAA,QACvBzxE,QAAA,iBACAE,OAAA,CAAmB4lE,QAAA,SAEnB3mE,WAAAoW,GAAA,CAAA46B,GAAA3wC,OAAA,MACAkE,WAAA,KAGA01I,GAAA,SAAAp3F,EAAAq3F,EAAAnkF,GACA,IAAAokF,EAAA/0J,IAAA,GACAu/D,EAAAv/D,GAAAhT,EAAArC,QACAyiE,EAAA,SAAA/0D,GACAA,IAAA08J,EAAAljK,QACA8iK,GAAAG,IAAAz8J,EAAAs4E,EAAAhS,WACAo2F,EAAA70J,IAAA7H,KAGAolE,EAAA/lC,GAAA,yBAAA5tC,GAEA,GADAy1E,EAAA1tE,MAAA9F,KAAAwxE,GAAAkC,cACA/wE,EAAA5E,EAAAqtB,MAAA,CACA,IAAA69I,EAAAz3F,GAAAoqF,iBAAAlqF,EAAA,WACA,OAAArQ,EAAAtjE,EAAAuO,QACWvO,EAAAqtB,MACXooD,EAAAr/D,IAAAlT,EAAAP,KAAAuoK,SAEA5nG,EAAAtjE,EAAAuO,OACAknE,EAAAr/D,IAAAlT,EAAArC,WAKAsqK,GAAA,SAAAjkJ,EAAAmO,EAAAjF,GACA,IAAAuJ,EAAA,CACAyxI,UAAA,SAAAl7I,GACA,OAAA2uI,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAEAgjJ,WAAA,SAAAh6I,EAAA05I,GACA/K,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAAAjlB,KAAA,SAAAkoK,GACA,OAAAD,GAAAC,EAAAP,MAGAS,cAAA,SAAAn6I,EAAA9rB,GACAy6J,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAAAjlB,KAAA,SAAAkoK,GACA,OAAAE,GAAAF,EAAA/lK,MAGAmmK,aAAA,SAAAr6I,GACA,OAAA2uI,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAAAhlB,KAAAqoK,IAAA5oK,aAEA0pK,UAAA,SAAAn7I,GACA,OAAA2uI,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAEAokJ,WAAA,SAAAp7I,GACA,OAAA2uI,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,YAEAqkJ,WAAA,SAAAr7I,EAAAmxH,GACAwd,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAAAjlB,KAAA,SAAAu+F,GACAA,EAAAjwE,UAAA6wH,UAAA5gD,EAAA6gD,MAGAmqB,YAAA,SAAAt7I,EAAA6wE,GACA89D,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,oBAAAjlB,KAAA,SAAAwpK,GACAzL,GAAAX,SAAAoM,EAAA1qE,MAGA2qE,eAAA,SAAAx7I,GACA,IAAAswE,EAAAq+D,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WACAs5E,EAAAv+F,KAAA,SAAAu+F,GACA,OAAAA,EAAAjwE,UAAAg6C,QAAAi2B,MAGAsjD,cAAA,SAAA5zH,GACA,IAAAswE,EAAAq+D,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WACA,OAAAs5E,EAAAt+F,KAAA,SAAAs+F,GACA,OAAAA,EAAAjwE,UAAAuzH,cAAAtjD,MAGAmrE,YAAA,SAAAz7I,GACA,OAAA2uI,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,aAEA0kJ,aAAA,SAAA17I,GACA,IAAA27I,EAAAhN,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAAAnlB,QAAA,WACA,OAAA88J,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,sBAEA2kJ,EAAA5pK,KAAA,SAAAu+F,GACAjgC,GAAAnN,QAAAotC,MAGAsrE,WAAA,SAAA57I,EAAAk4C,GACAy2F,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAAAjlB,KAAA,SAAA8pK,GACAjE,GAAAL,SAAAsE,EAAA3jG,MAGA4jG,aAAA,SAAA97I,GACA2uI,GAAAvzG,QAAAp7B,EAAAhJ,EAAA,WAAAjlB,KAAA,SAAA8pK,GACAjE,GAAAllJ,MAAAmpJ,OAIA,OACAjlJ,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAsE,OACA7I,WAAA5J,EAAA4J,aAGAm7I,GAAAnN,GAAAh2I,SAAA,CACA2hC,QAAAq9G,GACA1jK,KAAA,UACAsN,OAAA,CAAAyC,GAAA,gBAEA+3J,GAAA,SAAA97I,GACA,OAAAA,EAAAV,QAAAwuE,GAAAiuE,QACAjhB,GACO96H,EAAAV,QAAAwuE,GAAAkuE,SACP3hB,GAEAU,IAGAkhB,GAAAvN,GAAAh2I,SAAA,CACA2hC,QAAA,CACA5B,OAAA,SAAAz4B,GACA,OAAA4vI,GAAAn3G,OAAA,CACA/hC,IAAAsJ,EAAAtJ,IACAvP,IAAA6Y,EAAA7Y,IACAwoJ,eAAA74H,GAAA,CAAAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACA7kC,SAAA,mBAEAmgJ,SAAA,WACA,OAAAxU,GAAA,CACA7mJ,KAAA8rB,EAAAV,MACA5I,IAAAmG,GAAA,yBACA6mD,UAAA1jD,EAAA0jD,UACAw2E,cAAA,EACAx1E,QAAA1kD,EAAA0kD,QACAs1E,WAAA,GACAn1F,SAAA,WACA,OAAA/xD,EAAArC,WAIAi/J,UAAA,SAAA2L,EAAAa,EAAA3nJ,EAAA6E,GACAi4H,GAAAL,UAAAkrB,EAAA3nJ,IAEA48H,OAAA,MAIAn9I,KAAA,mBACAsN,OAAA,CACAyC,GAAA,OACAA,GAAA,eAGAo4J,GAAAzN,GAAAh2I,SAAA,CACA2hC,QAAA,CACA5B,OAAA,SAAAz4B,GACA,IAAAo8I,EAAAN,GAAA97I,GACA65H,EAAA,CACA3lJ,KAAA8rB,EAAAV,MACA5I,IAAAsJ,EAAAtJ,IACAmuC,SAAA,WAEA,OADA7kC,EAAA6kC,WACA/xD,EAAAP,MAAA,IAEA2nJ,cAAA,EACAF,WAAA,GACAt1E,QAAA1kD,EAAA0kD,QACAhB,UAAA1jD,EAAA0jD,UACA+2E,eAAA,CACA4hB,YAAAr8I,EAAAq8I,YACApzB,eAAAjpH,EAAAipH,eACAyR,WAAA16H,EAAA06H,aAGA,OAAA0hB,EAAAviB,KAGA7lJ,KAAA,UACAsN,OAAA,CACAyC,GAAA,OACAA,GAAA,YACAA,GAAA,cAGAu4J,GAAA5N,GAAAh2I,SAAA,CACA2hC,QAAA,CAAgB5B,OAAA2tF,IAChBpyI,KAAA,SACAsN,OAAA,CAAAyC,GAAA,UAEAw4J,GAAA7N,GAAAh2I,SAAA,CACA1kB,KAAA,SACAsN,OAAA,CAAAyC,GAAA,UAEAy4J,GAAA9N,GAAAh2I,SAAA,CACA2hC,QAAA,CAAgB5B,OAAA8hH,IAChBvmK,KAAA,UACAsN,OAAA,CAAAyC,GAAA,UAEA04J,GAAA/N,GAAAh2I,SAAA,CACA2hC,QAAA,CAAgB5B,OAAAiiH,IAChB1mK,KAAA,WACAsN,OAAA,CAAAyC,GAAA,UAEA24J,GAAAn/G,GAAA,CACAvpD,KAAA,iBACAqmD,QAAA0gH,GACA39G,aAAA,CACAr5C,GAAA,OACAA,GAAA,eAEAu5C,WAAA,CACAg/G,GACAT,GACAM,GACAF,GACAM,GACAC,GACAC,IAEAlzI,KAAA,CACAyxI,UAAA,SAAAzxI,EAAAzJ,GACA,OAAAyJ,EAAAyxI,UAAAl7I,IAEAg6I,WAAA,SAAAvwI,EAAAzJ,EAAA05I,GACAjwI,EAAAuwI,WAAAh6I,EAAA05I,IAEAS,cAAA,SAAA1wI,EAAAzJ,EAAA9rB,GACAu1B,EAAA0wI,cAAAn6I,EAAA9rB,IAEAmmK,aAAA,SAAA5wI,EAAAzJ,GACA,OAAAyJ,EAAA4wI,aAAAr6I,IAEAm7I,UAAA,SAAA1xI,EAAAzJ,GACA,OAAAyJ,EAAA0xI,UAAAn7I,IAEAo7I,WAAA,SAAA3xI,EAAAzJ,GACA,OAAAyJ,EAAA2xI,WAAAp7I,IAEAq7I,WAAA,SAAA5xI,EAAAzJ,EAAA68I,GACA,IAAA1rB,EAAAr/I,EAAA+qK,EAAA,SAAAC,GACA,OAAAjjB,GAAAijB,KAEArzI,EAAA4xI,WAAAr7I,EAAAmxH,IAEAmqB,YAAA,SAAA7xI,EAAAzJ,EAAA5qB,GACA,IAAA2nK,EAAAjrK,EAAAsD,EAAA,SAAA0lD,GACA,OAAAhpD,EAAAgpD,EAAA++F,MAEApwH,EAAA6xI,YAAAt7I,EAAA+8I,IAEAnpB,cAAA,SAAAnqH,EAAAzJ,GACA,OAAAyJ,EAAAmqH,cAAA5zH,IAEAw7I,eAAA,SAAA/xI,EAAAzJ,GACA,OAAAyJ,EAAA+xI,eAAAx7I,IAEAy7I,YAAA,SAAAhyI,EAAAzJ,GACA,OAAAyJ,EAAAgyI,YAAAz7I,IAEA47I,WAAA,SAAAnyI,EAAAzJ,EAAAk4C,GACAzuC,EAAAmyI,WAAA57I,EAAAk4C,IAEA4jG,aAAA,SAAAryI,EAAAzJ,GACAyJ,EAAAqyI,aAAA97I,IAEA07I,aAAA,SAAAjyI,EAAAzJ,GACAyJ,EAAAiyI,aAAA17I,OAKAg9I,GAAA,gDACAC,GAAA,CACA1jD,KAAA,CACApnC,MAAA,OACAv9B,MAAA,uEAEAsoH,KAAA,CACA/qF,MAAA,OACAv9B,MAAA,oEAEAxmB,KAAA,CACA+jD,MAAA,OACAv9B,MAAA,gGAEAgc,OAAA,CACAuhB,MAAA,SACAv9B,MAAA,oJAEA8pC,OAAA,CACAvM,MAAA,SACAv9B,MAAA,gKAEAuoH,MAAA,CACAhrF,MAAA,QACAv9B,MAAA,gEAEAizF,MAAA,CACA11D,MAAA,QACAv9B,MAAA,yEAEAwoH,KAAA,CACAjrF,MAAA,OACAv9B,MAAA,SAGAyoH,GAAA,SAAAntG,EAAAwb,EAAAjI,GACA,IAAA65F,EAAAntE,GAAA1sB,GAAAjkD,MAAA,QACA,OACArY,KAAA+oD,EAAAiiB,MACAixD,SAAA,WACA,OAAApxI,GAAAk+D,EAAAtb,MAAA,SAAAtlD,GACA,IAAAiuK,EAAAjuK,EAAAyZ,cACA,WAAAw0J,EAAAlwJ,OAAA3f,OACA,GACauE,EAAAqrK,EAAA,SAAAE,GACb,OAAAA,IAAAD,IAEA,GACa,cAAAA,GAAA,MAAAA,EACb,EAAuBnpK,KAAA,cACVs3E,EAAAtT,UAAAmlG,GACb,CAAA7xF,EAAAtT,UAAAmlG,IAEA,QAMAE,GAAA,SAAA7oH,GACA,wBAAAA,EACAA,EAAAp1B,MAAA,KAEAo1B,GAEA8oH,GAAA,SAAAj6F,EAAAiI,GACA,IAAAiyF,EAAA3jK,GAAAijK,GAAAvxF,EAAAxT,OACA0lG,EAAAzmK,GAAAu0E,EAAAxT,OAAAxqE,OAAA,EACAmuK,OAAAlqK,IAAA+5E,EAAAmwF,UAAA,IAAAnwF,EAAAmwF,QAAA4B,GAAAT,IAAAS,IAAA,IAAA/xF,EAAAmwF,QAAA,GAAAnwF,EAAAmwF,SACAgC,EAAA1rK,EAAA0pK,EAAA,SAAAjjG,GACA,OAAAglG,GAAAlyF,EAAAxT,MAAAxoE,eAAAkpE,IAAA8S,EAAAxT,MAAAU,GAAAlpE,eAAA,UAAAutK,GAAAvtK,eAAAkpE,KAEAV,EAAApmE,EAAA+rK,EAAA,SAAAjlG,GACA,IAAAklG,EAAAH,EAAA/kG,GACA,OAAAykG,GAAA,CACAlrF,MAAA2rF,EAAA3rF,MACAv9B,MAAA6oH,GAAAK,EAAAlpH,QACS82B,EAAAjI,KAET,OAAAtxE,EAAA+lE,EAAA,SAAAhI,GACA,IAAA6tG,EAAA,SAAA90I,GACA,oBAAAA,EAAA70B,MAEA,OAAA87D,EAAAkzE,WAAA11I,OAAA,GAAAuE,EAAAi+D,EAAAkzE,WAAA26B,MAIAC,GAAA,SAAAv6F,GACA,IAAA3/D,EAAA,WACA2/D,EAAAw6F,aAAA,EACAz/E,GAAAP,eAAAxa,IAEA,kBACAA,EAAAygF,YACApgJ,IAEA2/D,EAAA/lC,GAAA,OAAA55B,KAIAo6J,GAAA,CAAsBjgF,eAAA+/E,IAEtBG,GAAA,SAAAC,EAAA36F,GACA,IACA46F,EADArvE,EAAAF,GAAArrB,GAEAurB,IACAqvE,EAAArvE,EAAA,gBACAvrB,EAAA66F,WAAAppK,KAAA85F,GAAAovE,EAAA,4CAEA,IAAA9uE,GAAA7rB,IAAA46F,EACA5nF,GAAAO,IAAAunF,iBAAA3qG,KAAAyqG,EAAAH,GAAAjgF,eAAAxa,IAEAy6F,GAAAjgF,eAAAxa,EAAAy6F,IAGA92B,GAAAp5I,EAAAmwK,IAAA,GACAjtE,GAAAljG,EAAAmwK,IAAA,GAEA9C,GAAA,SAAA53F,EAAA01E,EAAAqlB,EAAA56F,GACA,IAAA5jD,EAAAm5H,EAAAE,eACA4R,EAAAuT,EAAAluE,QACAmuE,EAAAD,EAAA78E,QACA,GAAAhtF,EAAAs2J,EAAA52J,GAAA,CACA,IAAAw8F,EAAAo6D,EAAAn5J,IAAA,SAAA1C,GACA,IAAA6xB,EAAA,CACAqvE,QAAAlhG,EACAuyF,QAAA88E,GAEA,OAAApT,GAAA5nF,EAAAxiD,EAAA,CAAkD2iD,aAAuB5wE,EAAArC,UAEzEisK,GAAAtB,YAAAt7I,EAAA6wE,QAEA+rE,GAAAvB,WAAAr7I,EAAAqrI,GAAA5nF,EAAA+6F,EAAA,CAA8E56F,aAAuB5wE,EAAArC,UAIrGqmF,GAAAP,GAAAO,IACA0nF,GAAAvwJ,KACAwwJ,GAAAD,GAAAlzJ,GAAAR,SAAA0zJ,GAAAlzJ,GAAA5B,QAAAtB,OAAA,GACAs2J,GAAA,SAAAn7F,GACA,IAAAy3C,EAAAz3C,EAAAtkC,SACA0/H,EAAAp7F,EAAA0D,SAAApuD,gBACA+lJ,EAAA94J,GAAA+lB,GAAAmvF,EAAA6jD,WAAA7jD,EAAA8jD,cACAC,EAAAj5J,GAAA+lB,GAAA8yI,EAAAl3I,YAAAk3I,EAAAvzI,eACAiwF,EAAA,SAAAzrH,GACA,IAAAovK,EAAAz7F,EAAA0D,SAAApuD,gBACAomJ,EAAAL,EAAAjnK,MACAunK,EAAAH,EAAApnK,MACAsnK,EAAAvzI,SAAAsvF,EAAA6jD,YAAAI,EAAAtzI,QAAAqvF,EAAA8jD,aACAF,EAAA54J,IAAA6lB,GAAAmvF,EAAA6jD,WAAA7jD,EAAA8jD,cACAxgF,GAAAH,kBAAA5a,EAAA3zE,IACSsvK,EAAAxzI,SAAAszI,EAAAv3I,aAAAy3I,EAAAvzI,QAAAqzI,EAAA5zI,eACT2zI,EAAA/4J,IAAA6lB,GAAAmzI,EAAAv3I,YAAAu3I,EAAA5zI,eACAkzD,GAAAH,kBAAA5a,EAAA3zE,KAGA69B,EAAA,SAAA79B,GACA,OAAA0uF,GAAAF,kBAAA7a,EAAA3zE,IAEAknF,GAAAhlF,KAAAkpH,EAAA,SAAAK,GACAvkC,GAAAhlF,KAAAkpH,EAAA,SAAAvtF,GACA,IAAA0xI,EAAAp2E,GAAAvhF,GAAAZ,QAAA28D,EAAAhuD,WAAA,OAAA8lG,GACA93C,EAAA/lC,GAAA,oBACA2hI,EAAA12E,SACA3R,GAAA2R,OAAAuyB,EAAA,SAAAK,GACAvkC,GAAA2R,OAAAuyB,EAAA,SAAAvtF,MAGAm3D,GAAA,SAAArhB,EAAA01E,EAAAqlB,EAAA56F,EAAAr2E,GACA,IAAA+xK,EAAAt5J,GAAA,GACAohI,GAAA3jE,GACAxzB,GAAAvoC,GAAAZ,QAAAvZ,EAAAgyK,YAAApmB,EAAAG,YACAxpG,GAAAt6B,KAAA2jI,EAAAx1E,cACAF,EAAA/lC,GAAA,wBACA29H,GAAA53F,EAAA01E,EAAAqlB,EAAA56F,GACA07F,EAAAp5J,IAAAu9D,EAAAtkC,SAAA4/H,YACAnC,GAAAhB,WAAAziB,EAAAE,eAAAqkB,GAAAj6F,EAAA+6F,IACA5B,GAAA5C,WAAA7gB,EAAAE,eAAAmlB,EAAAvE,SACA2E,GAAAn7F,KAEA,IAAA+7F,EAAA5C,GAAA1B,UAAA/hB,EAAAE,gBAAA7nJ,SAAA,0CACA,QAAAmtK,GAAA,CACA33I,GAAAw4I,EAAAnwJ,UAAA,CACA6iI,SAAA,SACAutB,6BAAA,UAEA,IAAAC,EAAAr6F,GAAA,WACA5B,EAAAya,KAAA,kBACS,IACT8K,GAAAw2E,EAAAnwJ,UAAA,SAAAqwJ,EAAAh6F,UAEA8zE,GAAA/1E,EAAA01E,GACA11E,EAAA0b,WAAA,yBAAA1T,EAAA59E,GACA+uK,GAAAzC,cAAAhhB,EAAAE,eAAAxrJ,GACA41E,EAAAya,KAAA,mBAEAza,EAAAk8F,qBAAA,2BACA,OAAA/C,GAAAvC,aAAAlhB,EAAAE,kBAEA,IAAAumB,EAAA7uE,GAAAttB,GACAo8F,EAAA,WACAjD,GAAApB,eAAAriB,EAAAE,iBAWA,OATAumB,IAAA5xE,GAAAiuE,SAAA2D,IAAA5xE,GAAAkuE,UACAz4F,EAAA/lC,GAAA,qDACA,IAAApQ,EAAAm2C,EAAAtkC,SAAA4/H,WACAzxI,IAAAgyI,EAAAznK,QACAgoK,IACAP,EAAAp5J,IAAAonB,MAIA,CACAwyI,gBAAAN,EAAAnwJ,UAAAhI,MACA6uJ,gBAAA/c,EAAAE,eAAAhqI,UAAAhI,QAGA04J,GAAA,CAAkBj7E,WAElBk7E,GAAA,SAAAjjK,GACA,IAAAu8G,EAAA,mBACA,OAAAA,EAAAnxG,KAAA,GAAApL,GACA/J,EAAAP,KAAAo4B,SAAA,GAAA9tB,EAAA,KAEA/J,EAAArC,QAEAsvK,GAAA,SAAAljK,GACA,OAAArI,EAAAqI,KAAA,KAAAA,GAEAmjK,GAAA,SAAAvqK,EAAAwqK,EAAAC,GACA,IAAAC,EAAAF,EAAAhuK,OAAA,SAAAswC,GACA,OAAA9sC,EAAA8sC,IAEA69H,EAAAF,EAAAjuK,OAAA,SAAA44B,GACA,OAAAp1B,EAAAo1B,IAEA,OAAAs1I,EAAAzuK,GAAA0uK,GAAAhvK,MAAAqE,IAEA4qK,GAAA,CACAL,kBACAF,cACAC,YAGAO,GAAA,SAAA/8F,GACA,IAAAg9F,EAAAlxE,GAAA9rB,GACAi9F,EAAA7wE,GAAApsB,GACAx4B,EAAA+kD,GAAAvsB,GACA,OAAA88F,GAAAP,WAAAS,GAAA3uK,IAAA,SAAAu5B,GACA,OAAAk1I,GAAAL,eAAA70I,EAAAq1I,EAAAz1H,MAGA01H,GAAA,SAAAl9F,GACA,IAAAp4C,EAAAm1I,GAAA/8F,GACA,OAAAp4C,EAAA/5B,MAAAi+F,GAAA9rB,KAEAm9F,GAAA,SAAAn9F,GACA,IAAAo9F,EAAApxE,GAAAhsB,GACAq9F,EAAAnxE,GAAAlsB,GACAr4B,EAAA2kD,GAAAtsB,GACA,OAAA88F,GAAAP,WAAAa,GAAA/uK,IAAA,SAAAw7B,GACA,OAAAizI,GAAAL,eAAA5yI,EAAAwzI,EAAA11H,MAGA21H,GAAA,SAAAt9F,GACA,IAAAn2C,EAAAszI,GAAAn9F,GACA,OAAAn2C,EAAAh8B,MAAAm+F,GAAAhsB,KAGAu9F,GAAA,SAAAv9F,EAAA01E,EAAAqlB,EAAA56F,EAAAr2E,GACA,IAAA0zK,EACAjqF,EAAAP,GAAAO,IACA8xD,EAAA33C,GAAA1tB,GACAy9F,EAAA3vE,GAAA9tB,GACA09F,EAAAz5J,GAAAZ,QAAAvZ,EAAAgyK,YACA6B,EAAArxE,GAAAtsB,GAAA7xE,GAAAgvK,GAAAn9F,IACA49F,EAAAtwE,GAAAttB,GACAjkD,EAAA6hJ,IAAArzE,GAAAiuE,SAAAoF,IAAArzE,GAAAkuE,SACAhrE,GAAAztB,GACA,IAAA69F,EAAA,SAAAhxE,GACA,IAAA3hE,EAAAnP,EAAA8wE,EAAAn/F,KAAA,WACA,UACS,SAAAowK,GACT,OAAAA,EAAAp8I,aAAAz3B,OAAA,EAAA69B,GAAAg2I,EAAAp8I,aAAA,GAAA9V,WAAA,IACS,EACTmyJ,EAAAr1I,GAAAg1I,GACAt1I,EAAA21I,EAAA31I,MAAAN,GAAA01I,EAAA5xJ,WAAAsf,EACA3H,GAAAmyH,EAAAE,eAAAhqI,UAAA,CACA8f,SAAA,WACAtD,IAAAvO,KAAA68D,MAAAtuD,GAAA,KACAD,KAAAtO,KAAA68D,MAAAqnF,EAAA51I,QAAA,OAEA,IAAAwf,EAAAg2H,EAAA7vK,WAAA,WACA,IAAAkwK,EAAAlB,GAAAP,WAAA74I,GAAA3R,KAAA,gBAAAlkB,MAAA,GACA,OAAA07B,GAAAxX,MAAAgsJ,EAAA51I,OAAA61I,IAEA16I,GAAAk6I,EAAA5xJ,UAAA,YAAA+7B,EAAA,OAEAs2H,EAAA,SAAAC,GAOA,QANA,IAAAA,IACAA,GAAA,GAEAniJ,GACAo9I,GAAApB,eAAAriB,EAAAE,iBAEAvQ,EAAA,CACA,IAAAx4C,EAAAssE,GAAAxB,WAAAjiB,EAAAE,gBACAioB,EAAAhxE,GAEA4wE,IACAS,EAAApM,GAAAX,MAAAqM,GAAA1L,GAAAl7F,QAAA4mG,KAGAtyF,EAAA,WACA5nD,GAAAoyH,EAAAE,eAAAhqI,UAAA,kBACA2nE,EAAA4qF,SAAAn+F,EAAAhuD,UAAA,kBACAgS,GAAA0xH,EAAAx1E,aAAAt0D,UAAA,WACAqyJ,KAEA1hG,EAAA,WACAm5E,EAAAE,iBACAtyH,GAAAoyH,EAAAE,eAAAhqI,UAAA,kBACA2nE,EAAA6qF,YAAAp+F,EAAAhuD,UAAA,mBAEAsR,GAAAoyH,EAAAx1E,aAAAt0D,UAAA,mBAEAy1E,EAAA,WACA,GAAAm8E,EACAtyF,QADA,CAIAsyF,EAAArE,GAAAzB,UAAAhiB,EAAAE,gBAAA7nJ,WACA,IAAAswK,EAAA1wE,GAAA3tB,GACA3zB,GAAAgyH,EAAA3oB,EAAAG,YACAxpG,GAAAgyH,EAAA3oB,EAAAx1E,cACA03F,GAAA53F,EAAA01E,EAAAqlB,EAAA56F,GACAg5F,GAAAhB,WAAAziB,EAAAE,eAAAqkB,GAAAj6F,EAAA+6F,IACA7vF,IACAlL,EAAA/lC,GAAA,WAAAixC,GACAlL,EAAA/lC,GAAA,aAAAsiC,GACAyD,EAAA/lC,GAAA,gDACA+lC,EAAAs+F,QACAL,GAAA,KAGAj+F,EAAAub,gBAUA,OARAvb,EAAA/lC,GAAA,QAAAonD,GACArhB,EAAA/lC,GAAA,YAAAsiC,GACAyD,EAAA/lC,GAAA,kBACA+lC,EAAAhrC,YACAqsD,MAGA00D,GAAA/1E,EAAA01E,GACA,CAAc+c,gBAAA/c,EAAAE,eAAAhqI,UAAAhI,QAEd26J,GAAA,CAAkBl9E,OAAAk8E,IAElBiB,GAAA,SAAAx+F,GACA,IAAAy+F,EAAA,CACA,CACAhuK,KAAA,YACAiT,KAAA,aACAg7J,IAAA,cACAl/F,KAAA,cAEA,CACA/uE,KAAA,cACAiT,KAAA,eACAg7J,IAAA,gBACAl/F,KAAA,gBAEA,CACA/uE,KAAA,aACAiT,KAAA,cACAg7J,IAAA,eACAl/F,KAAA,eAEA,CACA/uE,KAAA,eACAiT,KAAA,UACAg7J,IAAA,cACAl/F,KAAA,kBAGA0wD,GAAA5hI,KAAAmwK,EAAA,SAAAj5I,GACAw6C,EAAAgI,GAAAC,SAAA6tF,gBAAAtwI,EAAA/0B,KAAA,CACAq6E,QAAAtlD,EAAA9hB,KACAk8D,SAAA,WACA,OAAAI,EAAAqc,YAAA72D,EAAAk5I,MAEAl/F,KAAAh6C,EAAAg6C,KACA4S,QAAAkuE,GAAAtgF,EAAAx6C,EAAA/0B,UAGA,IAAAkuK,EAAA,CACAluK,KAAA,YACAiT,KAAA,eACAg7J,IAAA,cACAl/F,KAAA,cAEAQ,EAAAgI,GAAAC,SAAA22F,UAAAD,EAAAluK,KAAA,CACAq6E,QAAA6zF,EAAAj7J,KACAk8D,SAAA,WACA,OAAAI,EAAAqc,YAAAsiF,EAAAD,MAEAl/F,KAAAm/F,EAAAn/F,QAGAq/F,GAAA,CAA4B/2F,SAAA02F,IAE5BM,GAAA,SAAA9+F,EAAA6mE,GACA,kBACA7mE,EAAAqc,YAAA,qBAAAwqD,KAGAk4B,GAAA,SAAA/+F,GACAkwD,GAAA5hI,KAAA,CACA,CACAmC,KAAA,OACAiT,KAAA,OACA87D,KAAA,QAEA,CACA/uE,KAAA,SACAiT,KAAA,SACA87D,KAAA,UAEA,CACA/uE,KAAA,YACAiT,KAAA,YACA87D,KAAA,aAEA,CACA/uE,KAAA,gBACAiT,KAAA,gBACA87D,KAAA,kBAEA,CACA/uE,KAAA,YACAiT,KAAA,YACA87D,KAAA,aAEA,CACA/uE,KAAA,cACAiT,KAAA,cACA87D,KAAA,gBAEA,SAAA86E,EAAA7hE,GACAzY,EAAAgI,GAAAC,SAAA6tF,gBAAAxb,EAAA7pJ,KAAA,CACAq6E,QAAAwvE,EAAA52I,KACA87D,KAAA86E,EAAA96E,KACA4S,QAAAkuE,GAAAtgF,EAAAs6E,EAAA7pJ,MACAmvE,SAAAk/F,GAAA9+F,EAAAs6E,EAAA7pJ,UAGA,QAAA5E,EAAA,EAAqBA,GAAA,EAAQA,IAAA,CAC7B,IAAA4E,EAAA,IAAA5E,EACAm0E,EAAAgI,GAAAC,SAAA6tF,gBAAArlK,EAAA,CACAiT,KAAAjT,EAAA+oF,cACA1O,QAAA,WAAAj/E,EACAumF,QAAAkuE,GAAAtgF,EAAAvvE,GACAmvE,SAAAk/F,GAAA9+F,EAAAvvE,OAIAuuK,GAAA,SAAAh/F,GACAkwD,GAAA5hI,KAAA,CACA,CACAmC,KAAA,MACAiT,KAAA,MACAqP,OAAA,MACAysD,KAAA,OAEA,CACA/uE,KAAA,OACAiT,KAAA,OACAqP,OAAA,OACAysD,KAAA,QAEA,CACA/uE,KAAA,QACAiT,KAAA,QACAqP,OAAA,QACAysD,KAAA,SAEA,CACA/uE,KAAA,OACAiT,KAAA,OACAqP,OAAA,UACAysD,KAAA,QAEA,CACA/uE,KAAA,YACAiT,KAAA,aACAqP,OAAA,YACAysD,KAAA,cAEA,CACA/uE,KAAA,cACAiT,KAAA,eACAqP,OAAA,iBACAysD,KAAA,gBAEA,CACA/uE,KAAA,eACAiT,KAAA,mBACAqP,OAAA,eACAysD,KAAA,qBAEA,CACA/uE,KAAA,SACAiT,KAAA,SACAqP,OAAA,SACAysD,KAAA,WAEA,SAAA86E,GACAt6E,EAAAgI,GAAAC,SAAA22F,UAAAtkB,EAAA7pJ,KAAA,CACAq6E,QAAAwvE,EAAA52I,KACA87D,KAAA86E,EAAA96E,KACAI,SAAA,WACA,OAAAI,EAAAqc,YAAAi+D,EAAAvnI,cAKAksJ,GAAA,SAAAj/F,GACAkwD,GAAA5hI,KAAA,EACAmC,KAAA,aACAiT,KAAA,aACAqP,OAAA,gBACAysD,KAAA,UACS,SAAA86E,GACTt6E,EAAAgI,GAAAC,SAAA6tF,gBAAAxb,EAAA7pJ,KAAA,CACAq6E,QAAAwvE,EAAA52I,KACA87D,KAAA86E,EAAA96E,KACAI,SAAA,WACA,OAAAI,EAAAqc,YAAAi+D,EAAAvnI,SAEAq/D,QAAAkuE,GAAAtgF,EAAAs6E,EAAA7pJ,WAIAyuK,GAAA,SAAAl/F,GACA++F,GAAA/+F,GACAg/F,GAAAh/F,GACAi/F,GAAAj/F,IAEAm/F,GAAA,SAAAn/F,GACAkwD,GAAA5hI,KAAA,CACA,CACAmC,KAAA,OACAiT,KAAA,OACAqP,OAAA,OACAysD,KAAA,OACA4N,SAAA,UAEA,CACA38E,KAAA,SACAiT,KAAA,SACAqP,OAAA,SACAysD,KAAA,SACA4N,SAAA,UAEA,CACA38E,KAAA,YACAiT,KAAA,YACAqP,OAAA,YACAysD,KAAA,YACA4N,SAAA,UAEA,CACA38E,KAAA,gBACAiT,KAAA,gBACAqP,OAAA,gBACAysD,KAAA,iBACA4N,SAAA,IAEA,CACA38E,KAAA,YACAiT,KAAA,YACAqP,OAAA,YACAysD,KAAA,YACA4N,SAAA,IAEA,CACA38E,KAAA,cACAiT,KAAA,cACAqP,OAAA,cACAysD,KAAA,cACA4N,SAAA,IAEA,CACA38E,KAAA,eACAiT,KAAA,mBACAqP,OAAA,eACAysD,KAAA,oBACA4N,SAAA,IAEA,CACA38E,KAAA,cACAiT,KAAA,eACAqP,OAAA,iBACAysD,KAAA,eACA4N,SAAA,IAEA,CACA38E,KAAA,MACAiT,KAAA,MACAqP,OAAA,MACAysD,KAAA,MACA4N,SAAA,UAEA,CACA38E,KAAA,OACAiT,KAAA,OACAqP,OAAA,OACAysD,KAAA,OACA4N,SAAA,UAEA,CACA38E,KAAA,QACAiT,KAAA,QACAqP,OAAA,QACAysD,KAAA,QACA4N,SAAA,UAEA,CACA38E,KAAA,YACAiT,KAAA,aACAqP,OAAA,YACAysD,KAAA,aACA4N,SAAA,WAEA,SAAAktE,GACAt6E,EAAAgI,GAAAC,SAAAm3F,YAAA9kB,EAAA7pJ,KAAA,CACAiT,KAAA42I,EAAA52I,KACA87D,KAAA86E,EAAA96E,KACA4N,SAAAktE,EAAAltE,SACAxN,SAAA,WACA,OAAAI,EAAAqc,YAAAi+D,EAAAvnI,aAIAitD,EAAAgI,GAAAC,SAAAm3F,YAAA,cACA17J,KAAA,OACA87D,KAAA,aACAI,SAAAk/F,GAAA9+F,EAAA,WAGAq/F,GAAA,SAAAr/F,GACAk/F,GAAAl/F,GACAm/F,GAAAn/F,IAEAs/F,GAAA,CAA0Bx3F,SAAAu3F,IAE1BE,GAAA,SAAA73I,EAAAs4C,EAAArvE,GACA,IAAA6uK,EAAA,WACA,QAAAx/F,EAAAob,aAAApb,EAAAob,YAAAzqF,MAEA8uK,EAAA,WACA/3I,EAAA2sD,YAAArU,EAAA21E,WAAA6pB,MAIA,OAFA93I,EAAA2sD,aAAAmrF,KACAx/F,EAAA/lC,GAAA,qDAAAwlI,GACA,WACA,OAAAz/F,EAAAp4B,IAAA,qDAAA63H,KAGAC,GAAA,SAAA1/F,GACAA,EAAAgI,GAAAC,SAAAm3F,YAAA,QACA17J,KAAA,OACA87D,KAAA,OACA4N,SAAA,SACAgF,QAAA,SAAA1qD,GACA,OAAA63I,GAAA73I,EAAAs4C,EAAA,YAEAJ,SAAA,WACA,OAAAI,EAAAqc,YAAA,WAGArc,EAAAgI,GAAAC,SAAAm3F,YAAA,QACA17J,KAAA,OACA87D,KAAA,OACA4N,SAAA,SACAgF,QAAA,SAAA1qD,GACA,OAAA63I,GAAA73I,EAAAs4C,EAAA,YAEAJ,SAAA,WACA,OAAAI,EAAAqc,YAAA,YAIAsjF,GAAA,SAAA3/F,GACAA,EAAAgI,GAAAC,SAAA22F,UAAA,QACA9zF,QAAA,OACAtL,KAAA,OACA4S,QAAA,SAAA1qD,GACA,OAAA63I,GAAA73I,EAAAs4C,EAAA,YAEAJ,SAAA,WACA,OAAAI,EAAAqc,YAAA,WAGArc,EAAAgI,GAAAC,SAAA22F,UAAA,QACA9zF,QAAA,OACAtL,KAAA,OACA4S,QAAA,SAAA1qD,GACA,OAAA63I,GAAA73I,EAAAs4C,EAAA,YAEAJ,SAAA,WACA,OAAAI,EAAAqc,YAAA,YAIAujF,GAAA,SAAA5/F,GACA0/F,GAAA1/F,GACA2/F,GAAA3/F,IAEA6/F,GAAA,CAAoB/3F,SAAA83F,IAEpBE,GAAA,SAAAp4I,EAAAs4C,GACAt4C,EAAA0sD,UAAApU,EAAA+/F,WACA,IAAAC,EAAA,SAAA3zK,GACAq7B,EAAA0sD,UAAA/nF,EAAA0zK,YAGA,OADA//F,EAAA/lC,GAAA,YAAA+lI,GACA,WACA,OAAAhgG,EAAAp4B,IAAA,YAAAo4H,KAGAC,GAAA,SAAAjgG,GACAA,EAAAgI,GAAAC,SAAAi4F,kBAAA,aACAx8J,KAAA,cACA0uE,QAAA,SAAA1qD,GACA,OAAAo4I,GAAAp4I,EAAAs4C,IAEAJ,SAAA,WACAI,EAAAqc,YAAA,0BAIA8jF,GAAA,SAAAngG,GACAA,EAAAgI,GAAAC,SAAA22F,UAAA,aACA9zF,QAAA,cACApnE,KAAA,cACAk8D,SAAA,WACA,OAAAI,EAAAqc,YAAA,0BAIA+jF,GAAA,SAAApgG,GACAmgG,GAAAngG,GACAigG,GAAAjgG,IAEAqgG,GAAA,CAAqBv4F,SAAAs4F,IAErBE,GAAA,SAAA54I,EAAAs4C,GACAt4C,EAAA2sD,aAAArU,EAAAugG,kBAAA,YACA,IAAAC,EAAA,WACA94I,EAAA2sD,aAAArU,EAAAugG,kBAAA,aAGA,OADAvgG,EAAA/lC,GAAA,aAAAumI,GACA,WACA,OAAAxgG,EAAAp4B,IAAA,aAAA44H,KAGAC,GAAA,SAAAzgG,GACAA,EAAAgI,GAAAC,SAAA22F,UAAA,WACA9zF,QAAA,kBACAtL,KAAA,UACA4S,QAAA,SAAA1qD,GACA,OAAA44I,GAAA54I,EAAAs4C,IAEAJ,SAAA,WACA,OAAAI,EAAAqc,YAAA,cAGArc,EAAAgI,GAAAC,SAAA22F,UAAA,UACA9zF,QAAA,kBACAtL,KAAA,SACAI,SAAA,WACA,OAAAI,EAAAqc,YAAA,cAIAqkF,GAAA,SAAA1gG,GACAygG,GAAAzgG,IAEA2gG,GAAA,CAAyB74F,SAAA44F,IAEzBE,GAAA,SAAA5gG,EAAAG,GACAsiF,GAAAziF,EAAAG,GACAqjF,GAAAxjF,EAAAG,GACA2lF,GAAA9lF,EAAAG,GACAslF,GAAAzlF,EAAAG,GACA0kF,GAAA7kF,EAAAG,IAEA0gG,GAAA,CAA2B/4F,SAAA84F,IAE3BE,GAAA,SAAA9gG,EAAAG,GACA0+F,GAAA/2F,SAAA9H,GACAs/F,GAAAx3F,SAAA9H,GACA6gG,GAAA/4F,SAAA9H,EAAAG,GACA0/F,GAAA/3F,SAAA9H,GACAwe,GAAA1W,SAAA9H,GACAqgG,GAAAv4F,SAAA9H,GACA2gG,GAAA74F,SAAA9H,IAEA+gG,GAAA,CAA0BjpG,MAAAgpG,IAE1BE,GAAA,SAAA12K,EAAAyZ,GACA,OACAysB,OAAA,YACAlmC,IACAyZ,MAGAk9J,GAAA,SAAAppI,EAAAqpI,EAAAC,GACA,OAAAH,GAAAnpI,EAAAvtC,EAAA42K,EAAArpI,EAAA9zB,EAAAo9J,IAEAC,GAAA,SAAA/0K,GACA,oBAAAA,EAAAsE,MAAA,IAAAtE,EAAAsE,KAAArE,QAAA,UAEA+0K,GAAA,SAAAh1K,GACA,GAAA+0K,GAAA/0K,GAAA,CACA,IAAA+5F,EAAA/5F,EAAA65F,QAAA,GACA,OAAA86E,GAAA56E,EAAAk7E,MAAAl7E,EAAAm7E,OAEA,OAAAP,GAAA30K,EAAAi1K,MAAAj1K,EAAAk1K,QAGAC,GAAA,SAAAn1K,GACA,GAAA+0K,GAAA/0K,GAAA,CACA,IAAA+5F,EAAA/5F,EAAA65F,QAAA,GACA,OAAA86E,GAAA56E,EAAAzB,QAAAyB,EAAAxB,SAEA,OAAAo8E,GAAA30K,EAAAs4F,QAAAt4F,EAAAu4F,UAGA68E,GAAA,SAAA71J,EAAAisB,GACA,IAAA6pI,EAAA1uF,GAAAO,IAAAouF,OAAA/1J,GACA,OAAAq1J,GAAAppI,EAAA6pI,EAAAp3K,EAAAo3K,EAAA39J,IAEA69J,GAAA,SAAA5hG,EAAA3zE,GACA,sBAAAA,EAAAsE,KACAqvE,EAAAytB,OACA4zE,GAAAh1K,GAEAo1K,GAAAzhG,EAAAu+E,0BAAAijB,GAAAn1K,IAGAw1K,GAAA7hG,IAGA6hG,GAAA,SAAA7hG,GACA,OACAxvC,OAAA,YACA+R,KAAAt+B,GAAAZ,QAAA28D,EAAA5kC,UAAAqoC,aAGAq+F,GAAA,SAAA9hG,GACA,OACAxvC,OAAA,OACAhtB,KAAAjU,EAAAP,KAAAiV,GAAAZ,QAAA28D,EAAA5kC,UAAAqoC,YACAlhC,KAAAt+B,GAAAZ,QAAA28D,EAAAhuD,aAIA+vJ,GAAA,SAAA/hG,EAAA3zE,EAAA21K,GACA,OAAAA,EAAAF,GAAA9hG,GAAA4hG,GAAA5hG,EAAA3zE,IAEA41K,GAAA,SAAAjiG,EAAA3zE,EAAA61K,EAAA/hG,EAAAgiG,EAAAH,GACA,IAAA7wH,EAAA+wH,IACAE,EAAAL,GAAA/hG,EAAA3zE,EAAA21K,GACAn9C,GAAA1zE,EAAAmhC,GAAAI,iBAAAvS,GAAA,GAAA9xE,IAAA,SAAAgsK,GACAhuK,EAAAumB,iBACAkqD,GAAAT,WAAA8lG,EAAAC,EAAA,CACA31G,KAAA,CAAiBz9B,QAAAywD,GAAA,WACjBzuE,KAAAqpJ,OAKAvhI,GAAA,CACAE,MAAA,WACA,OACA1H,GACAN,GACAE,GACAC,GACAC,GACAC,GACAmsC,GACAC,GACAH,GACAF,GACAG,GACAF,KAGAnkC,MAAA,WACA,OACA5H,GACAJ,GACAF,GACAI,GACAD,GACAE,GACAmsC,GACAC,GACAF,GACAF,GACAC,GACAF,MAIAilG,GAAA,GACAC,GAAA,CACAx9B,aAAA,GACAC,YAAA,GACAC,UAAA,wBACAC,WAAA,yBACAn7G,MAAA,mBACA3B,KAAA,kBACA4B,OAAA,oBACA3B,IAAA,kBAEAm6I,GAAA,SAAAviG,EAAA3zE,GACA,IAAA+uC,EAAA4kC,EAAA5kC,UACA,GAAAA,EAAAw4G,eAAAvnJ,EAAA65F,QAAAj8F,OAAA,EACA,SAEA,IAAAu4K,EAAAn2K,EAAA65F,QAAA,GACA7qD,EAAAD,EAAAkrC,SACAm8F,EAAA/gI,GAAAs+B,EAAAtkC,SAAAE,GAAAhB,SAAAS,IACA,OAAAonI,EAAAj0K,OAAA,SAAAk0K,GACA,OAAAA,EAAAv6I,QAAAq6I,EAAA79E,SAAA+9E,EAAA54I,SAAA04I,EAAA79E,SAAA+9E,EAAAt6I,OAAAo6I,EAAA59E,SAAA89E,EAAA34I,UAAAy4I,EAAA59E,WAIA+9E,GAAA,SAAA3iG,EAAAgiG,GACA,IAAAI,EAAAJ,EAAAF,GAAA9hG,GAAA6hG,GAAA7hG,GACA,OAAAx0E,EAAA,CACA+tC,OAAA7D,GAAA,EAAA2sI,GAAAC,IACAxpI,WACAU,UAAA,CACA2P,iBAAAy7F,KACA37F,kBAAAU,OAEOy4H,IAEPQ,GAAA,SAAA5iG,GACA,IAAA6iG,EAAA7iG,EAAA5kC,UAAAkrC,SACAw8F,EAAA,WACAhjG,GAAAoqF,iBAAAlqF,EAAA,WACAA,EAAA5kC,UAAA2nI,OAAAF,IACS,IACTG,KAEAhjG,EAAAwyB,KAAA,WAAAswE,GACA,IAAAG,EAAA,SAAA52K,GACAA,EAAAumB,iBACAvmB,EAAAk5E,4BAEAvF,EAAA/lC,GAAA,YAAAgpI,GAAA,GACA,IAAAC,EAAA,WACA,OAAAF,KAEAhjG,EAAAwyB,KAAA,kBAAA0wE,GACA,IAAAF,EAAA,WACAhjG,EAAAp4B,IAAA,WAAAk7H,GACA9iG,EAAAp4B,IAAA,kBAAAs7H,GACAljG,EAAAp4B,IAAA,YAAAq7H,KAGA/3F,GAAA,SAAAlL,EAAA3zE,EAAA8kD,EAAAgvB,EAAAgiG,EAAAH,GACA,IAAAI,EAAAO,GAAA3iG,EAAAgiG,GACAn9C,GAAA1zE,EAAAmhC,GAAAI,iBAAAvS,GAAA,GAAA9xE,IAAA,SAAAgsK,GACAhuK,EAAAumB,iBACAkqD,GAAAR,qBAAA6lG,EAAAC,EAAA,CACA31G,KAAA,CAAiBz9B,QAAAywD,GAAA,WACjBzuE,KAAAqpJ,EACA1pK,KAAA,cACS,WACT,OAAApB,EAAAP,KAAAqvJ,GAAAr+E,MAEAA,EAAAya,KAAA2yD,OAGA+1B,GAAA,SAAAnjG,EAAA3zE,EAAA61K,EAAA/hG,EAAAgiG,EAAAH,GACA,IAAA/G,EAAAvwJ,KACAnD,EAAA0zJ,EAAAlzJ,GAAAR,QACAE,EAAAwzJ,EAAAlzJ,GAAAN,QACAD,EAAAyzJ,EAAAlzJ,GAAAP,YACAylC,EAAA,WACA,IAAAkE,EAAA+wH,IACAh3F,GAAAlL,EAAA3zE,EAAA8kD,EAAAgvB,EAAAgiG,EAAAH,IAEA,IAAAv6J,IAAAF,GAAAy6J,EAcAx6J,IAAAw6J,GACAhiG,EAAA5kC,UAAA2oC,kBAAA13E,EAAAgJ,OAAA,GAEA43C,QAjBA,CACA,IAAAm2H,EAAA,WACAR,GAAA5iG,GACA/yB,KAEAs1H,GAAAviG,EAAA3zE,GACA+2K,KAEApjG,EAAAwyB,KAAA,kBAAA4wE,GACApjG,EAAAwyB,KAAA,sBACA,OAAAxyB,EAAAp4B,IAAA,kBAAAw7H,QAWAC,GAAA,SAAA7lJ,GACA,wBAAAA,IAAAzB,MAAA,QAAAyB,GAEA8lJ,GAAA,SAAAtjG,GACA,OAAAA,EAAAa,SAAA0iG,+BAAA,GAEAC,GAAA,SAAAxjG,EAAAvvE,EAAAgzK,GACA,IAAAC,EAAA1jG,EAAAgI,GAAAC,SAAAC,SAAAw7F,aACA,OAAAtvK,GAAA4rE,EAAAa,SAAApwE,GAAApC,IAAAg1K,IAAAv1K,WAAA,WACA,OAAAY,EAAA20K,GAAAI,GAAA,SAAAj+I,GACA,OAAAlxB,GAAAovK,EAAAl+I,QAIAm+I,GAAA,SAAA3jG,GACA,WAAAA,EAAAga,SAAA,gBAEA4pF,GAAA,SAAA5jG,GACA,OAAAwjG,GAAAxjG,EAAA,6FAEA6jG,GAAA,CACAP,wBACAM,kBACAD,0BAGAG,GAAA,SAAAt+I,GACA,OAAA50B,EAAA40B,GAAA,MAAAA,EAAA,cAAAA,EAAA70B,MAEAozK,GAAA,CAAuBpzK,KAAA,aACvBqzK,GAAA,SAAAx+I,GACA,GAAA50B,EAAA40B,GACA,OAAAA,EAEA,OAAAA,EAAA70B,MACA,gBACA,OAAAozK,GACA,cACA,OACApzK,KAAA,iBACA+S,KAAA8hB,EAAA9hB,KACA87D,KAAAh6C,EAAAg6C,KACAke,gBAAA,WACA,IAAAvsC,EAAA3rB,EAAAk4D,kBACA,OAAA9sF,EAAAugD,GACAA,EAEA9iD,EAAA8iD,EAAA6yH,MAIA,QACA,OACArzK,KAAA,WACA+S,KAAA8hB,EAAA9hB,KACA87D,KAAAh6C,EAAAg6C,KACAI,SAAAn2E,EAAA+7B,EAAAo6C,aAKAqkG,GAAA,SAAAryK,EAAAsyK,GACA,OAAAA,EAAAj6K,OACA,OAAA2H,EAEA,IAAAuyK,EAAA3wK,GAAA5B,GAAAlD,OAAA,SAAA82B,GACA,OAAAs+I,GAAAt+I,KAEAvP,EAAAkuJ,EAAAz2K,KAAA,WACA,UACO,SAAAgC,GACP,OAAAq0K,MAEA,OAAAnyK,EAAAhH,OAAAqrB,GAAArrB,OAAAs5K,GAAAt5K,OAAA,CAAAm5K,MAEAK,GAAA,SAAAV,EAAA74G,EAAAw5G,GACA,IAAAC,EAAA5xK,EAAAm4D,EAAA,SAAAp4D,EAAAhC,GACA,GAAA6D,GAAAovK,EAAAjzK,GAAA,CACA,IAAA0gD,EAAAuyH,EAAAjzK,GAAAygD,OAAAmzH,GACA,GAAAzzK,EAAAugD,GACA,OAAA8yH,GAAAxxK,EAAA0+C,EAAAp1B,MAAA,MACW,GAAAo1B,EAAAlnD,OAAA,GACX,IAAAs6K,EAAAl2K,EAAA8iD,EAAA6yH,IACA,OAAAC,GAAAxxK,EAAA8xK,GAEA,OAAA9xK,EAGA,OAAAA,EAAA7H,OAAA,CAAA6F,KAEO,IAIP,OAHA6zK,EAAAr6K,OAAA,GAAA65K,GAAAQ,IAAAr6K,OAAA,KACAq6K,EAAA/rF,MAEA+rF,GAEAE,GAAA,SAAAxkG,EAAA3zE,GACA,OAAAA,EAAA0xD,UAAA8lH,GAAAP,qBAAAtjG,IAEAykG,GAAA,SAAAzkG,EAAAzE,EAAA4E,GACA,IAAA86F,EAAAvwJ,KACApC,EAAA2yJ,EAAA/wJ,WAAA5B,QACA65J,EAAAh8I,GAAA22C,GAAA5nB,OAAA,CACAtxC,IAAA,CAAcL,IAAA,OACdg4D,WACAja,SAAA,WACA,OAAA0e,EAAA/wD,SAEAytD,OAAA,WACA,OAAAyD,EAAA+sE,qBAAA,IAEAvwE,OAAA,WACA,OAAAwD,EAAA+sE,qBAAA,IAEAtwE,0BAAA,GACAH,iBAAAlpC,GAAA,CAAA/V,GAAA,sBAAA5P,GAAAsC,KAAA,SAAAqM,EAAAg0B,GACAxB,GAAAtB,MAAAlxB,GACAyjD,EAAA/wD,iBAGAy1J,EAAA,SAAAC,GACA,OAAA7nG,GAAAP,KAAA4lG,IAEAyC,EAAA,SAAAv4K,GACA,IAAAw4K,EAAA,cAAAx4K,EAAAsE,KAIA,GAHAkzK,GAAAP,qBAAAtjG,IACA3zE,EAAAumB,kBAEA4xJ,GAAAxkG,EAAA3zE,KAAAw3K,GAAAF,sBAAA3jG,GAAA,CAGA,IAAAgiG,GAAA6C,IAAA,IAAAx4K,EAAAslF,QAAAtlF,EAAAgJ,SAAA2qE,EAAAhuD,WACAkwJ,EAAA,WACA,IAAAmC,EAAArC,EAAAhiG,EAAA5kC,UAAAd,UAAA,GAAAjuC,EAAAgJ,OACA4yE,EAAAjI,EAAAgI,GAAAC,SAAAC,SACArd,EAAAg5G,GAAAD,eAAA5jG,GACA,OAAAokG,GAAAn8F,EAAAy7F,aAAA74G,EAAAw5G,IAEAS,EAAAx8J,IAAA66J,GAAAlB,GACA6C,EAAA9kG,EAAA3zE,EAAA61K,EAAA/hG,EAAAgiG,EAAAH,KAEAhiG,EAAA/lC,GAAA,kBACA,IAAA8qI,EAAA,2DAAAz8J,IAAA,oBACA03D,EAAA/lC,GAAA8qI,EAAAL,GACA1kG,EAAA/lC,GAAA3xB,IAAA,oCAAAs8J,MAIAI,GAAA,uBACAC,GAAA,SAAAhyC,GACAz9G,GAAAy9G,EAAArnH,WAAAld,OAAAgjB,IAAApjB,KAAA,SAAAi0C,GACA,IAAA2iI,EAAA5sJ,GAAAiqB,EAAAyiI,IACAxsJ,GAAA+pB,EAAAyiI,IACA1hJ,GAAAif,EAAA,UAAA2iI,GAEAlhJ,GAAAue,EAAA,WAEA7pB,GAAA6pB,EAAAyiI,OAGAG,GAAA,SAAAlyC,GACAz9G,GAAAy9G,EAAArnH,WAAAld,OAAAgjB,IAAApjB,KAAA,SAAAi0C,GACA1e,GAAA0e,EAAA,WAAAj0C,KAAA,SAAA82K,GACAjtJ,GAAAoqB,EAAAyiI,GAAAI,KAEA9hJ,GAAAif,EAAA,UAAA7e,GAAAuvG,EAAArnH,UAAA,eAGAy5J,GAAA,SAAAC,EAAAryC,GACAqyC,EAAAr0J,YAAAgK,SAAAg4G,GACAkyC,GAAAlyC,IAEAsyC,GAAA,SAAAtyC,GACAgyC,GAAAhyC,GACAA,EAAAhiH,YAAAiK,cAAA+3G,IAEAuyC,GAAA,SAAAx4J,EAAAy4J,EAAAC,GACA,OAAA14J,EAAAiE,YAAA6J,MAAA6vE,GAAAz1C,OAAA,CACAtxC,IAAA,CACAsa,OAAA,CACAiK,KAAA,MACAC,IAAA,MACAyB,MAAA,OACAjC,OAAA,OACA8D,SAAA,QACAi6I,UAAA,oBAEA3nJ,QAAA,CAAAynJ,IAEAvsJ,OAAAwsJ,MAIAE,GAAA,SAAA54J,EAAA64J,GACA,IAAAj6J,EAAAoB,EAAApB,UACAthB,EAAA88B,SAAA9O,GAAA1M,EAAAi6J,EAAA7W,UAAA,IACAjrJ,EAAAqjB,SAAA9O,GAAA1M,EAAAi6J,EAAA5W,SAAA,IACA,OAAA5nI,MAAA/8B,IAAA+8B,MAAAtjB,GAAAxU,EAAArC,OAAAqC,EAAAP,KAAAs5B,GAAAh+B,EAAAyZ,KAEA+hK,GAAA,SAAA94J,EAAA64J,EAAA19C,GACA,IAAAv8G,EAAAoB,EAAApB,UACAuM,GAAAvM,EAAAi6J,EAAA7W,SAAA7mC,EAAAhgG,OAAA,MACAhQ,GAAAvM,EAAAi6J,EAAA5W,QAAA9mC,EAAA//F,MAAA,OAEAulB,GAAA,SAAA3gC,EAAA64J,GACA,IAAAj6J,EAAAoB,EAAApB,UACA8M,GAAA9M,EAAAi6J,EAAA7W,UACAt2I,GAAA9M,EAAAi6J,EAAA5W,UAGA8W,GAAA,SAAA/4J,EAAAg5J,EAAAjZ,EAAAtnH,GACA,OAAAmgI,GAAA54J,EAAAg5J,GAAAt4K,KAAA,WACA,OAAAq/J,GACO,SAAAj2H,GACP,OAAAk3H,GAAAl3H,EAAA3O,OAAAsd,EAAAtd,OAAA2O,EAAA1O,MAAAqd,EAAArd,UAGA69I,GAAA,SAAAj5J,EAAAg5J,EAAAjZ,EAAAtnH,EAAAvb,EAAAuN,GACA,IAAAyuI,EAAAH,GAAA/4J,EAAAg5J,EAAAjZ,EAAAtnH,GACA+8D,EAAAwjE,EAAAG,SAAAC,GAAAp5J,EAAAg5J,EAAAE,EAAAh8I,EAAAuN,GAAA4uI,GAAAr5J,EAAAg5J,EAAAE,EAAAh8I,EAAAuN,GACA6uI,EAAAxZ,GAAAoZ,EAAAh8I,EAAAuN,GAEA,OADAquI,GAAA94J,EAAAg5J,EAAAM,GACA9jE,EAAA90G,KAAA,WACA,OACAq/J,MAAAiB,GAAAsY,EAAAn+I,OAAAm+I,EAAAl+I,OACA1qB,MAAAnO,EAAArC,SAEO,SAAAq5K,GACP,OACAxZ,MAAAwZ,EAAAzzK,SACA4K,MAAA6oK,EAAA7oK,YAIA8oK,GAAA,SAAAx5J,EAAAg5J,GACAr4H,GAAA3gC,EAAAg5J,IAEAS,GAAA,SAAAC,EAAAR,EAAAh8I,EAAAuN,GACA,OAAA9K,GAAA+5I,EAAA,SAAAlkE,GACA,IAAAmkE,EAAAnkE,EAAAmkE,SACAC,EAAA1Z,GAAAgZ,EAAAS,EAAAnkE,EAAA1wG,QAAAq2B,OAAAq6E,EAAA1wG,QAAAs2B,MAAA8B,EAAAuN,GACA,OAAAmvI,EAAAr3K,EAAAP,KAAA,CACA8D,OAAA3I,EAAAqjK,GAAAhrD,EAAA1vG,SAAAozK,EAAAh8I,EAAAuN,IACA/5B,MAAA8kG,EAAA9kG,QACSnO,EAAArC,UAGTk5K,GAAA,SAAAp5J,EAAAg5J,EAAAE,EAAAh8I,EAAAuN,GACA,IAAAivI,EAAAV,EAAAa,cAAA75J,GACA85J,EAAAL,GAAAC,EAAAR,EAAAh8I,EAAAuN,GACA,OAAAqvI,EAAA14K,QAAA,WACA,IAAA24K,EAAAr0K,EAAAg0K,EAAA,SAAAj0K,EAAA+vG,GACA,IAAAmkE,EAAAnkE,EAAAmkE,SACAK,EAAA3Z,GAAA6Y,EAAAS,EAAAnkE,EAAA1wG,QAAAq2B,OAAAq6E,EAAA1wG,QAAAs2B,MAAA8B,EAAAuN,GACA,OAAAhlC,EAAAu0K,OAAAt5K,KAAA,WACA,OACAs5K,OAAAz3K,EAAAP,KAAAg4K,GACAxkE,KAAAjzG,EAAAP,KAAAwzG,KAEW,SAAAykE,GACX,IAAAC,GAAAF,EAAA7+I,OAAA6+I,EAAA5+I,OAAA,EACA++I,GAAAF,EAAA9+I,OAAA8+I,EAAA7+I,OAAA,EACA,OAAA8+I,GAAAC,EACA,CACAH,OAAAz3K,EAAAP,KAAAg4K,GACAxkE,KAAAjzG,EAAAP,KAAAwzG,IAGA/vG,KAGS,CACTu0K,OAAAz3K,EAAArC,OACAs1G,KAAAjzG,EAAArC,SAEA,OAAA65K,EAAAvkE,KAAAn0G,IAAA,SAAAm0G,GACA,OACA1vG,OAAA3I,EAAAqjK,GAAAhrD,EAAA1vG,SAAAozK,EAAAh8I,EAAAuN,IACA/5B,MAAA8kG,EAAA9kG,YAKA2oK,GAAA,SAAAr5J,EAAAg5J,EAAAE,EAAAh8I,EAAAuN,GACA,IAAAivI,EAAAV,EAAAa,cAAA75J,GACA,OAAAy5J,GAAAC,EAAAR,EAAAh8I,EAAAuN,IAEA2vI,GAAA,SAAA5kE,EAAAt4E,EAAAuN,GACA,OACAs1H,MAAAS,GAAAhrD,EAAA1vG,SAAA0vG,EAAA1vG,SAAAo3B,EAAAuN,GACA/5B,MAAA8kG,EAAA9kG,UAIA2pK,GAAA,SAAAhyK,GACA,OAAA03B,GAAAlJ,GAAAxuB,EAAA,QAAAwuB,GAAAxuB,EAAA,OAAAwuB,GAAAxuB,EAAA,qBAAA8yB,EAAAC,EAAAsD,GACA,IAAA51B,EAAA,UAAA41B,EAAAsiI,GAAA9iI,GACA,OAAAp1B,EAAAsxB,SAAAe,EAAA,IAAAf,SAAAgB,EAAA,OACOt6B,WAAA,WACP,IAAAiwK,EAAAr1I,GAAArzB,GACA,OAAA04J,GAAAgQ,EAAA51I,OAAA41I,EAAA31I,UAGAk/I,GAAA,SAAAt6J,EAAAu6J,EAAAr9I,EAAAuN,EAAA+uD,GACA,IAAA58D,EAAA48D,EAAA58D,OACA49I,EAAAxa,GAAAua,EAAAr9I,EAAAuN,GACAsO,EAAAL,GAAA8hI,EAAAr/I,OAAAyB,EAAAt/B,IAAAs/B,EAAAt/B,IAAAs/B,EAAAC,QAAA28D,EAAA38D,OACAmc,EAAAN,GAAA8hI,EAAAp/I,MAAAwB,EAAA7lB,IAAA6lB,EAAA7lB,IAAA6lB,EAAAhC,SAAA4+D,EAAA5+D,QACA6/I,EAAA1Z,GAAAhoH,EAAAC,GACA,OAAAuhI,EAAA75K,KAAA,WACA,IAAAg6K,EAAAza,GAAAwa,EAAAv9I,EAAAuN,GACA,OAAAvM,GAAAw8I,EAAAv/I,OAAAu/I,EAAAt/I,QACO,WACP,OAAAq/I,GACO,WACP,IAAA3wI,EAAAg2H,GAAA2a,EAAAv9I,EAAAuN,GACA,OAAAu2H,GAAAl3H,EAAA3O,OAAA2O,EAAA1O,UAGAu/I,GAAA,SAAA36J,EAAA46J,EAAAC,EAAA39I,EAAAuN,EAAAgO,EAAA+gD,GACA,IAAA0/E,EAAA0B,EAAAl6K,KAAA,WACA,IAAAgmF,EAAA65E,GAAAsa,EAAApiI,EAAAtd,OAAAsd,EAAArd,OACAk+I,EAAAxZ,GAAAp5E,EAAAxpD,EAAAuN,GACA,OAAAu2H,GAAAsY,EAAAn+I,OAAAm+I,EAAAl+I,QACO,SAAA49I,GACP,IAAA8B,EAAA7B,GAAAj5J,EAAAg5J,EAAA6B,EAAApiI,EAAAvb,EAAAuN,GAIA,OAHAqwI,EAAApqK,MAAApP,KAAA,SAAAoP,GACAsoK,EAAA+B,SAAA/6J,EAAAtP,KAEAoqK,EAAA/a,QAEA,OAAAua,GAAAt6J,EAAAk5J,EAAAh8I,EAAAuN,EAAA+uD,IAEAwhF,GAAA,SAAAh7J,EAAAi7J,EAAAzhF,EAAA/gD,GACA,IAAApwC,EAAA4yK,EAAA7/E,UAAAp7E,EAAApB,WACA,GAAAq8J,EAAAC,iBAAA,CACA,IAAAplK,EAAAuS,GAAArI,EAAApB,WACAse,EAAAR,GAAA5mB,GACA20B,EAAA60H,GAAAj3J,GACAwyK,EAAAR,GAAAhyK,GACA6wK,EAAAyB,GAAA36J,EAAAi7J,EAAAvB,MAAAmB,EAAA39I,EAAAuN,EAAAgO,EAAA+gD,GACAtoE,EAAAovI,GAAA4Y,EAAAh8I,EAAAuN,GACAlU,GAAAluB,EAAA6oB,GAEA+pJ,EAAAE,OAAAn7J,EAAA3X,EAAAowC,IAGA2iI,GAAA,SAAAH,EAAA1rJ,GACA,OACAqN,OAAAq+I,EAAAj+I,YACApC,OAAAG,GAAAxL,EAAA3Q,WACAie,MAAAL,GAAAjN,EAAA3Q,aAGAy8J,GAAA,SAAAr7J,EAAAi7J,EAAAK,EAAAC,EAAAr7J,GACA,IAAAu4B,EAAA6iI,EAAAp3H,OAAAq3H,EAAAr7J,GACAs7J,EAAAF,EAAAG,eAAA36K,WAAA,WACA,OAAAs6K,GAAAH,EAAAj7J,KAEAy4B,EAAAn3C,KAAA,SAAAo6K,GACAV,GAAAh7J,EAAAi7J,EAAAO,EAAAE,MAGAx2J,GAAA,SAAAlF,EAAAimH,EAAAg1C,EAAAK,GACAr1C,EAAA3kI,KAAAi3K,IACA0C,EAAAvB,MAAAp4K,KAAA,SAAA03K,GACAQ,GAAAx5J,EAAAg5J,KAEA,IAAA3wK,EAAA4yK,EAAA7/E,UAAAp7E,EAAApB,WACA08J,EAAAnX,QACA8W,EAAAhyD,OAAAjpG,EAAA3X,IAGAszK,GAAAjnK,GAAA,SACAlB,GAAA,iBACA2uB,GAAA,YACA3uB,GAAA,YACAA,GAAA,WACAoB,GAAA,eAAA+mB,IACA/mB,GAAA,iBAGAgnK,GAAA,SAAAC,GACA,OAAAn2J,GAAA,CACA9E,GAAAM,KAAA26J,EAAAC,WACAl7J,GAAAS,KAAAw6J,EAAAE,MACAn7J,GAAAO,KAAA,SAAAoO,EAAAtP,GACA47J,EAAAzlH,KAAAn2C,EAAAC,WAEAU,GAAAQ,KAAAy6J,EAAAG,cAIAC,GAAA,SAAA/7J,GACA,OAAA3d,EAAAD,KAAAg5B,GAAApb,EAAA5iB,IAAA4iB,EAAAnJ,OAEAmlK,GAAA,SAAArzK,EAAAC,GACA,OAAAwyB,GAAAxyB,EAAAqyB,OAAAtyB,EAAAsyB,OAAAryB,EAAAsyB,MAAAvyB,EAAAuyB,QAGA+gJ,GAAA19K,OAAAsD,OAAA,CACA4uB,QAAAsrJ,GACA9sH,SAAA+sH,KAGA57J,GAAA,SAAA26J,EAAAK,GACA,IAAAc,EAAA,SAAA7sJ,GACA+rJ,EAAAe,aAAAjB,GAAAH,EAAA1rJ,KAEA,OAAA7J,GAAA,CACA9E,GAAAkC,KAAA,SAAAyM,GACA+rJ,EAAAG,eAAAn6K,KAAA,WACA,OAAA86K,EAAA7sJ,OAGA3O,GAAAM,KAAA,SAAAlB,EAAAC,GACA,IAAA6W,EAAA7W,EAAAC,QAAA4W,MACA,OAAAA,EAAA6tD,OAAA,CAGA1kE,EAAAiF,OACA,IAAAo3J,EAAA,WACA,OAAAp3J,GAAAlF,EAAAzd,EAAAP,KAAAikI,GAAAg1C,EAAAK,IAEAU,EAAArjF,GAAA2jF,EAAA,KACAT,EAAA,CACAE,KAAAO,EACAN,YAAAljF,SACAgjF,UAAAQ,EACAlmH,KAAA,SAAAl2C,GACA87J,EAAAjnG,SACAsmG,GAAAr7J,EAAAi7J,EAAAK,EAAAa,GAAAj8J,KAGA+lH,EAAAuyC,GAAAx4J,EAAAi7J,EAAAxC,aAAAmD,GAAAC,IACAr/J,EAAA,WACA4/J,EAAAp8J,GACAq4J,GAAAr4J,EAAAimH,IAEAzpH,UAIA+/J,GAAA,CACA3nK,GAAA,WAAA3W,GACAuV,GAAA,gBACAoB,GAAA,YAAAvX,GACAuX,GAAA,SAAApY,GACAoY,GAAA,uBACAutB,GAAA,UACAjtB,GAAA,YAAAymB,IACAggJ,GACA71K,GAAA,WAAyBwa,eAGzBk8J,GAAA,SAAAX,GACA,OAAAn2J,GAAA,CACA9E,GAAAE,KAAA+6J,EAAAC,WACAl7J,GAAAI,KAAA66J,EAAAE,MACAn7J,GAAAK,KAAA46J,EAAAE,MACAn7J,GAAAG,KAAA,SAAAwO,EAAAtP,GACA47J,EAAAzlH,KAAAn2C,EAAAC,cAKAu8J,GAAA,SAAAvjF,GACA,IAAAE,EAAAF,EAAA,GACA,OAAA32F,EAAAP,KAAAs5B,GAAA89D,EAAAzB,QAAAyB,EAAAxB,WAEA8kF,GAAA,SAAAx8J,GACA,IAAA4W,EAAA5W,EAAA4W,MACAoiE,EAAApiE,EAAAoiE,QACA,WAAAA,EAAAj8F,OAAAw/K,GAAAvjF,GAAA32F,EAAArC,QAEAy8K,GAAA,SAAA9zK,EAAAC,GACA,OAAAwyB,GAAAxyB,EAAAqyB,OAAAtyB,EAAAsyB,OAAAryB,EAAAsyB,MAAAvyB,EAAAuyB,QAGAwhJ,GAAAn+K,OAAAsD,OAAA,CACA4uB,QAAA+rJ,GACAvtH,SAAAwtH,KAGAE,GAAA,SAAA5B,EAAAK,GACA,IAAAwB,EAAAvnK,GAAAhT,EAAArC,QACAk8K,EAAA,SAAA7sJ,GACA+rJ,EAAAe,aAAAjB,GAAAH,EAAA1rJ,KAEA,OAAA7J,GAAA,CACA9E,GAAAkC,KAAA,SAAAyM,GACA+rJ,EAAAG,eAAAn6K,KAAA,WACA,OAAA86K,EAAA7sJ,OAGA3O,GAAAE,KAAA,SAAAd,EAAAC,GACAA,EAAAiF,OACA,IAAAo3J,EAAA,WACAp3J,GAAAlF,EAAA88J,EAAA11K,MAAA6zK,EAAAK,GACAwB,EAAArnK,IAAAlT,EAAArC,SAEA27K,EAAA,CACAE,KAAAO,EACAN,UAAA,aAEAF,UAAAQ,EACAlmH,KAAA,SAAAl2C,GACAm7J,GAAAr7J,EAAAi7J,EAAAK,EAAAsB,GAAA18J,KAGA+lH,EAAAuyC,GAAAx4J,EAAAi7J,EAAAxC,aAAA+D,GAAAX,IACAiB,EAAArnK,IAAAlT,EAAAP,KAAAikI,IACA,IAAAzpH,EAAA,WACA4/J,EAAAp8J,GACAq4J,GAAAr4J,EAAAimH,IAEAzpH,MAEAoE,GAAAG,KAAA,SAAAf,EAAAC,GACAA,EAAAiF,OACAm2J,GAAAr7J,EAAAi7J,EAAAK,EAAAsB,GAAA38J,EAAAC,WAEAU,GAAAI,KAAA,SAAAhB,GACAkF,GAAAlF,EAAA88J,EAAA11K,MAAA6zK,EAAAK,GACAwB,EAAArnK,IAAAlT,EAAArC,UAEA0gB,GAAAK,KAAA,SAAAjB,GACAkF,GAAAlF,EAAA88J,EAAA11K,MAAA6zK,EAAAK,GACAwB,EAAArnK,IAAAlT,EAAArC,aAIA68K,GAAA,CACAnoK,GAAA,WAAA3W,GACAuV,GAAA,gBACAoB,GAAA,YAAAvX,GACAuX,GAAA,SAAApY,GACAoY,GAAA,uBACAA,GAAA,SAAApY,GACA0Y,GAAA,YAAAymB,IACAggJ,GACA71K,GAAA,WAAyBwa,SAAAu8J,MAGzBG,GAAAT,GACAnjF,GAAA2jF,GAEAE,GAAAx+K,OAAAsD,OAAA,CACAi7K,SACA5jF,WAGA8jF,GAAA,WACA,IAAAC,EAAA56K,EAAArC,OACAs5F,EAAAj3F,EAAArC,OACAikK,EAAA,WACAgZ,EAAA56K,EAAArC,OACAs5F,EAAAj3F,EAAArC,QAEAk9K,EAAA,SAAA15H,EAAA56C,GACA,IAAAsC,EAAA+xK,EAAA97K,IAAA,SAAAwH,GACA,OAAA66C,EAAAyL,SAAAtmD,EAAAC,KAGA,OADAq0K,EAAA56K,EAAAP,KAAA8G,GACAsC,GAEA84C,EAAA,SAAAR,EAAA25H,GACA,OAAA35H,EAAA/yB,QAAA0sJ,GAAA97K,KAAA,SAAA+7K,GACA,OAAAF,EAAA15H,EAAA45H,MAGAjB,EAAA,SAAAr4J,GACAw1E,EAAAj3F,EAAAP,KAAAgiB,IAEAy3J,EAAA,WACA,OAAAjiF,GAEAxpE,EAAA7yB,EAAA,IACA,OAAA4yB,GAAA,CACAC,YACAm0I,QACAjgH,SACAu3H,eACAY,kBAIAkB,GAAA9+K,OAAAsD,OAAA,CACA+tB,KAAAotJ,KAGAM,GAAA,SAAAx9J,EAAAi7J,EAAA10E,EAAAiP,GACA,IAAAntG,EAAA4yK,EAAA7/E,UAAAp7E,EAAApB,WACA,GAAAq8J,EAAAC,iBAAA,CACA,IAAAplK,EAAAuS,GAAArI,EAAApB,WACAse,EAAAR,GAAA5mB,GACA20B,EAAA60H,GAAAj3J,GACAo1K,EAAArD,GAAA5kE,EAAAt4E,EAAAuN,GACAvZ,EAAAovI,GAAAmd,EAAA1d,MAAA7iI,EAAAuN,GACAlU,GAAAluB,EAAA6oB,KAIAwsJ,GAAAj/K,OAAAsD,OAAA,CACAq4K,OAAAoD,KAGAG,GAAA/2I,GAAA,CACAC,UAAA,OACA7+B,SAAAi1K,GACAx5K,KAAA,WACA0hC,OAAA,CACAjZ,OAAA,SAAA+uJ,EAAAK,GACA,IAAAsC,EAAA3C,EAAA2C,QACA,OAAAA,EAAAt9J,SAAA26J,EAAAK,KAGA5qK,MAAA,CACA8kG,KAAAttF,GAAA,CACA,SACA,QACA,UACA,YAEAta,MAAA2vK,GACAvkJ,KAAA0kJ,KAGAG,GAAAngK,KACAogK,GAAA,GACAC,GAAAD,GAAA,EACAE,GAAA,SAAAC,EAAAC,EAAA5gL,EAAAyZ,EAAA8lB,EAAAjC,GACA,OAAAqjJ,EAAAv9K,KAAA,WACA,OAAAi9K,GAAAnoE,KAAA,CACAmkE,OAAA5Y,GAAAzjK,EAAAygL,GAAAhnK,EAAAgnK,IACAj5K,MAAAw2B,GAAAuB,EAAAjC,GACA90B,OAAAi7J,GAAAx+J,EAAAP,KAAA1E,GAAAiF,EAAAP,KAAA+U,IACArG,MAAA,CAAkBwtK,SAEX,SAAAC,GACP,IAAAC,EAAA9gL,EAAAygL,GACAM,EAAAtnK,EAAAgnK,GACAO,EAAAR,GACAS,EAAAT,GACAz/I,EAAA8/I,EAAAv/J,UAAAhI,MAAA+jB,wBACA,OAAAgjJ,GAAAnoE,KAAA,CACAmkE,OAAA5Y,GAAAqd,EAAAC,GACAv5K,MAAAw2B,GAAAgjJ,EAAAC,GACAz4K,OAAAi7J,GAAAx+J,EAAAP,KAAA1E,EAAA+gC,EAAAxB,MAAA,GAAAt6B,EAAAP,KAAA+U,EAAAsnB,EAAAzD,OAAA,IACAlqB,MAAA,CAAkBwtK,WAIlBM,GAAA,SAAA3E,EAAA9+G,EAAAqjD,GACA,IAAAqgE,EAAA,SAAAC,EAAAR,GACA,OAAAQ,EAAAl9K,OAAA,SAAAm9K,GACA,OAAAv+K,GAAAu+K,EAAAT,MAGA,OACArE,gBACA7X,SAAA,iBACAC,QAAA,gBACA8Y,SAAA,SAAA/6J,EAAAtP,GACA,IAAAwtK,EAAAxtK,EAAAwtK,GACAO,EAAA1jH,EAAA3zD,MAAA82K,KACAnjH,EAAAtlD,IAAAlT,EAAAP,KAAAk8K,IACA9/D,EAAA8/D,KAGA/E,UAAA,IAGAyF,GAAA,SAAAlF,GACA,OAAA1oG,GAAAD,GAAA7oB,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,kBAEA8/C,iBAAAvqC,GAAA,CACAo3I,GAAAntJ,OAAA,CACAkzB,KAAAm6H,GAAA3gK,WAAA5B,UAAA,gBACAm9J,aAAA,UACAiB,UAEAvoE,GAAA3gF,OAAA,MAEA+C,WAAA,CACArS,UAAA,CACA,WACA,wBAEAJ,WAAA,CACA,WACA,6BAKA+9J,GAAA,SAAA7rG,EAAA5xB,GACA,IAAA09H,EAAAvpK,GAAA,IACAwpK,EAAAxpK,GAAA,IACAw9C,EAAAx9C,IAAA,GACAypK,EAAAzpK,GAAAhT,EAAArC,QACA++K,EAAA1pK,GAAAhT,EAAArC,QACAg/K,EAAA,SAAAhB,GACA,IAAA1iJ,EAAAiD,GAAAy/I,GACA,OAAAF,GAAAmB,EAAAjuG,OAAA9vB,GAAA88H,EAAA1iJ,EAAAl+B,IAAAk+B,EAAAzkB,IAAAykB,EAAAqB,QAAArB,EAAAZ,WAEAwkJ,EAAA,WACA,OAAA/9K,EAAAy9K,EAAA13K,MAAA,SAAA82K,GACA,OAAAgB,EAAAhB,MAGAmB,EAAA,SAAAnB,GACA,IAAA1iJ,EAAAiD,GAAAy/I,GACA,OAAAF,GAAAsB,EAAApuG,OAAA9vB,GAAA88H,EAAA1iJ,EAAAsB,QAAAtB,EAAAuB,SAAAvB,EAAAqB,QAAArB,EAAAZ,WAEA2kJ,EAAA,WACA,OAAAl+K,EAAA09K,EAAA33K,MAAA,SAAA82K,GACA,OAAAmB,EAAAnB,MAGAsB,EAAAhB,GAAAY,EAAAJ,EAAA,SAAAxiK,GACAyiK,EAAA73K,MAAA9F,KAAA,SAAA2sC,GACA+kC,EAAAya,KAAA,uBACAjxE,QACAyxB,eAIAwxI,EAAAjB,GAAAe,EAAAN,EAAA,SAAAhxI,GACA+wI,EAAA53K,MAAA9F,KAAA,SAAAkb,GACAw2D,EAAAya,KAAA,uBACAjxE,QACAyxB,eAIAkxI,EAAAP,GAAAY,GACAF,EAAAV,GAAAa,GACArpI,EAAAjd,GAAAgmJ,EAAAhuG,UACAuuG,EAAAvmJ,GAAAmmJ,EAAAnuG,UACAwuG,EAAA,SAAA9gK,EAAAk8C,EAAA6kH,EAAAC,GACA,IAAAC,EAAA/kH,EAAAnkD,MAAA+jB,wBACA3D,GAAAnY,EAAAD,UAAA,WACA,IAAAmhK,EAAAx3J,GAAAtR,GAAAZ,QAAA28D,EAAAhuD,YAAApO,MAAA23J,YACAyR,EAAAJ,EAAAE,GACAG,EAAAJ,EAAAC,EAAAC,IACAC,GAAAC,IACA3pJ,GAAAzX,EAAAD,UAAA,mBAGAw7J,EAAA,SAAAv7J,EAAAk8C,EAAAmlH,EAAAr1I,GACA,IAAA2qE,EAAA0qE,EAAAnlH,GACA4iH,GAAAvD,OAAAv7J,EAAA22F,GACA,IAAAoqE,EAAA,SAAAvhJ,GACA,OAAAA,EAAAwM,GAAA,GAEAg1I,EAAA,SAAAxhJ,EAAA0hJ,GACA,OAAA1hJ,EAAAwM,GAAAk1I,GAEAJ,EAAA9gK,EAAAk8C,EAAA6kH,EAAAC,IAEAM,EAAA,SAAAplH,GACA,OAAAq/G,EAAAhkI,EAAA2kB,EAAAmkH,EAAA,QAEAkB,EAAA,WACA,OAAApB,EAAA53K,MAAA9F,KAAA6+K,IAEAE,EAAA,SAAAtlH,GACA,OAAAq/G,EAAAsF,EAAA3kH,EAAAskH,EAAA,WAEAiB,EAAA,WACA,OAAArB,EAAA73K,MAAA9F,KAAA++K,IAEAxC,GAAA3gK,WAAA5B,YACA03D,EAAA/lC,GAAA,gCAAA5tC,GACA0zD,EAAA3rD,QACA23C,GAAAqC,EAAAhL,GACA2I,GAAAqC,EAAAs+H,GACA3sH,EAAAt9C,KAAA,IAEAupK,EAAAvpK,IAAAlT,EAAAP,KAAA3C,EAAAmd,QACAyiK,EAAAxpK,IAAAlT,EAAAP,KAAA3C,EAAA4uC,SACA5uC,EAAAkhL,WAAAj/K,KAAA,SAAAi/K,GACAzB,EAAArpK,IAAA8qK,EAAAC,eACAzB,EAAAtpK,IAAA8qK,EAAAE,kBACAN,EAAA9gL,EAAAmd,OACA6jK,EAAAhhL,EAAA4uC,YAGA+kC,EAAA/lC,GAAA,kCACAmzI,IACAE,MAEAttG,EAAA/lC,GAAA,iCACA8lB,EAAA3rD,QACA+3C,GAAA/I,GACA+I,GAAAugI,GACA3sH,EAAAt9C,KAAA,IAEAupK,EAAAvpK,IAAAlT,EAAArC,QACA++K,EAAAxpK,IAAAlT,EAAArC,YAIAwgL,GAAA,CAAgC51G,MAAA+zG,KAGhC,SAAAjqB,GACAA,IAAA,kBACAA,IAAA,kBACAA,IAAA,2BAHA,CAIKA,QAAA,KACL,IAAA+rB,GAAA,SAAA3tG,EAAAgnG,EAAA4G,EAAAC,EAAAC,GACA,IAAAprH,EAAA,GAKA,OAJAA,EAAA96B,OAAAk1I,GAAAL,eAAAoR,EAAA7G,EAAA5+I,MAAAgkE,GAAApsB,GAAAusB,GAAAvsB,IACA4tG,IAAAhsB,GAAAmsB,OACArrH,EAAA74B,MAAAizI,GAAAL,eAAAqR,EAAA9G,EAAA7+I,OAAA+jE,GAAAlsB,GAAAssB,GAAAtsB,KAEAtd,GAEAsrH,GAAA,SAAAhuG,EAAAgnG,EAAA4G,GACA,IAAA71J,EAAA9T,GAAAZ,QAAA28D,EAAAk4B,gBACAx1C,EAAAirH,GAAA3tG,EAAAgnG,EAAA4G,EAAA9lJ,GAAA/P,GAAAwR,GAAAxR,IACApkB,GAAA+uD,EAAA,SAAAppD,EAAA20K,GACA,OAAA3qJ,GAAAvL,EAAAk2J,EAAAnR,GAAAN,QAAAljK,MAEAyhF,GAAAL,iBAAA1a,IAGAkuG,GAAA,SAAArqG,GACA,OAAAA,EAAA/3D,SAAA,CACA,UAAA+3D,EAAAryD,UAAAqyD,EAAAtrD,aAAA,kBACA,SAEA,gBAAAsrD,EAAAtrD,aAAA,iBACA,SAGA,UAEA41J,GAAA,SAAAnuG,EAAAa,GACAA,EAAAghF,YACAhhF,EAAAghF,UAAA,KAEA,IAAAusB,EAAA,SAAAp9J,GACA,IAAA5D,EAAA4D,GAAA,GACAq9J,EAAAhgL,EAAA+e,EAAA,SAAA2oC,EAAAlgC,GACA,OAAAkoD,GAAA7oB,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,6BACAC,WAAA,CACA2zC,KAAA,SACA08G,aAAAz4J,EACA04J,aAAA,EACAC,aAAA34J,EAAA,GAEA2O,UAAAuxB,EAAAtlD,MAEAsiB,OAAA,SAAAunI,GACAt6E,EAAA/wD,QACA+wD,EAAA5kC,UAAA+hD,OAAApnC,EAAAnqC,SACAo0D,EAAAub,mBAIAkzF,EAAA,CACA7qK,IAAA,CACAL,IAAA,MACAya,QAAA,gCACAC,WAAA,CAAyBwxE,eAAA,GACzBjrE,UAAA,IAAAq8C,EAAAghF,UAAA,MAGA,OAAAnvJ,EAAA27K,EAAA/8K,MAAA,YAAAmB,EAAAmZ,GACA,IAAA8iK,EAAAj8K,EAGA,OAFAi8K,EAAAj9K,KAAAg9K,GACAC,EAAAj9K,KAAAma,GACA8iK,GACS,CAAAL,EAAA,MAETM,EAAA,SAAA3pB,GACA,IAAA4pB,EAAA,GACA/iL,EAAAm5J,EAAA/6J,OACA,MAAA4B,KAAA,GACA,IAAA2pB,EAAAwvI,EAAAn5J,GACA,OAAA2pB,EAAA1J,WAAAoiK,GAAA14J,GAAA,CACA,IAAA1rB,EAAAk2E,EAAAya,KAAA,eACAhqF,KAAA+kB,EAAAhE,SAAAlM,cACAjQ,OAAAmgB,IAQA,GANA1rB,EAAAykG,sBACAqgF,EAAAn9K,KAAA,CACAhB,KAAA3G,EAAA2G,KACAmb,QAAA4J,IAGA1rB,EAAA+kL,uBACA,OAIA,OAAAD,GAEA,OACAhrK,IAAA,CACAL,IAAA,MACAya,QAAA,wBACAC,WAAA,CAAuB2zC,KAAA,eAEvBz0C,WAAAoW,GAAA,CACAq5B,GAAApvC,OAAA,CACAkzB,KAAA,OACA7kC,SAAA,qBAEA8tF,GAAAn8E,OAAA,IACA2wC,GAAA3wC,OAAA,IACAA,GAAA,qBAAAtJ,GAAA,SAAAqI,EAAAlwB,GACA2zE,EAAAwpF,UAAAxnI,IAAA,mDACA,OAAA4qC,GAAAnN,QAAAljC,KAEAyjD,EAAA/lC,GAAA,sBAAA5tC,GACA,IAAAuiL,EAAAD,EAAAtiL,EAAA24J,SACA4pB,EAAA3kL,OAAA,GACAkkE,GAAA1rD,IAAA8Z,EAAA6xJ,EAAAQ,YAKAltJ,WAAA,KAGAotJ,GAAA,CAAuBX,sBAEvBY,GAAA,SAAA/uG,EAAA2P,GACA,IAAArpD,EACA0oJ,EAAA,SAAAzyJ,EAAA3nB,EAAA87C,GACA,OAAAyd,GAAA1rD,IAAA8Z,EAAA,CAAA7Y,GAAAisE,EAAAtnD,UAAA,CACA,OAAgBqoB,EAChB97C,EAAA87C,SAGA,OAAAqtB,GAAA7oB,OAAA,CACAtxC,IAAA,CACAL,IAAA,SACAya,QAAA,8BAEA0D,WAAA,GACAo8C,iBAAAvqC,GAAA,CACAomE,GAAAn8E,OAAA,IACA2wC,GAAA3wC,OAAA,IACAu1B,GAAAv1B,OAAA,CACAuwB,MAAA,CACA2C,KAAA,SACAuB,aAAA,CACAvB,KAAA,QACA97C,MAAA,CACAq6K,MAAA,EACAC,WAAA,OAKA1xJ,GAAA,oBACA5P,GAAA2B,KAAA,SAAAgN,GACA,IAAA4yJ,EAAAp8H,GAAA7C,SAAA3zB,GACA6yJ,EAAA,UAAAD,EAAAz+H,KAAA,qBACAqC,GAAA9C,SAAA1zB,EAAA,CACAm0B,KAAA0+H,EACAx6K,MAAAu6K,EAAAv6K,QAEAo6K,EAAAzyJ,EAAA4yJ,EAAAv6K,MAAAw6K,KAEAl7J,GAAA,SAAAqI,GACAyjD,EAAA/lC,GAAA,2BAAA5tC,GACA,IAAAqkD,EAAAqC,GAAA7C,SAAA3zB,GAAAm0B,KACAqC,GAAA9C,SAAA1zB,EAAA,CACAm0B,OACA97C,MAAAvI,EAAAgjL,YAEAL,EAAAzyJ,EAAAlwB,EAAAgjL,UAAA3+H,WAKAnwB,YAAA+F,EAAA,GAA4BA,EAAA/W,MAAA,CAC5B,mBACA,wBACA+W,MAIAgpJ,GAAA,SAAAtvG,EAAA2P,GACA,IAAA4/F,EAAA,SAAA3B,GACA,OACAhqK,IAAA,CACAL,IAAA,MACAya,QAAA,iCACAC,WAAA,CAAyBywD,MAAAiB,EAAAtnD,UAAA,WACzB7D,UAAA85C,GAAA,gBAAAqR,EAAAtR,QAEAlhD,WAAAoW,GAAA,CAAAo3I,GAAAntJ,OAAA,CACAkzB,KAAA,QACAw3H,kBAAA,EACAC,OAAA,SAAA5rJ,EAAAlnB,EAAAowC,GACAuoI,GAAAhuG,EAAAv6B,EAAAmoI,IAEAnI,aAAA,oBAIA+J,EAAA,WACA,IAAAj6K,EAAAm2E,GAAArjD,UAAA,CACA,iBACA,SAEAonJ,EAAA,8LAA0Il6K,EAAA,KAAAA,EAAA,OAC1I,OACAqO,IAAA,CACAL,IAAA,OACAya,QAAA,4BACAwG,UAAAirJ,KAIAC,EAAA,SAAA1vG,GACA,IAAAhpE,GAAAyS,GAAAu2D,EAAAa,SAAA8uG,QAAA,cACA73D,EAAA93C,EAAAga,SAAA,SAAAhjF,GACA,WAAA8gH,EACA8pC,GAAAguB,KACS,SAAA93D,EACT8pC,GAAAmsB,KAEAnsB,GAAAiuB,UAGAC,EAAA,WACA,IAAApuJ,EAAA,GAUA,OATAs+C,EAAAga,SAAA,6BACAt4D,EAAAjwB,KAAAq9K,GAAAX,kBAAAnuG,EAAA,KAEAv2D,GAAAu2D,EAAAa,SAAA8uG,QAAA,cACAjuJ,EAAAjwB,KAAAs9K,GAAA/uG,EAAA2P,IAEA3P,EAAAga,SAAA,0BACAt4D,EAAAjwB,KAAA+9K,KAEA9tJ,EAAAz3B,OAAA,EACA,EACA2Z,IAAA,CACAL,IAAA,MACAya,QAAA,mCAEA0D,eAGA,IAEAquJ,EAAA,WACA,IAAAruJ,EAAAouJ,IACAlC,EAAA8B,EAAA1vG,GAIA,OAHA4tG,IAAAhsB,GAAAguB,MACAluJ,EAAAjwB,KAAA89K,EAAA3B,IAEAlsJ,GAEA,OACA9d,IAAA,CACAL,IAAA,MACAya,QAAA,mBAEA0D,WAAAquJ,MAIAC,GAAA,SAAAhwG,GACA,IAAA26F,EAAA36F,EAAAytB,OACA/8C,EAAAiqH,EAAA4D,GAAAjC,GACAx5B,EAAAh1C,GAAA9tB,GAAAuzF,GAAAI,GACAsc,EAAA1gL,EAAArC,OACAsd,EAAAE,KACAnE,EAAAiE,EAAAxC,QAAAzB,OACA2pK,EAAA3pK,EAAA,uBACA+B,EAAAkC,EAAAN,WAAA5B,UACA6nK,EAAA,qBACAC,EAAA9nK,EAAA,CAAA6nK,GAAA,GACAE,EAAA3kG,GAAAnzC,QAAA,CAA8Cta,WAAA,CAAcu3C,IAAA,QAAe,GAC3E2hF,EAAA,WACA,OAAA84B,EAAA1hL,KAAA4qK,GAAAzB,YAEAtpH,EAAAjoB,GAAA,CACAviB,IAAApY,EAAA,CACA+X,IAAA,MACAya,QAAA,CACA,MACA,kBACA,mBACApzB,OAAAslL,GAAAtlL,OAAAwlL,IACSC,GACTlzJ,WAAAoW,GAAA,CAAA+X,GAAA9tB,OAAA,CACAoX,SAAA,WACA,OAAAkuG,EAAAktB,SAAA7Y,UAIA57E,EAAA,WACA,OAAAlrE,EAAAjG,MAAAgkD,IAEAkiI,EAAAtyG,GAAA,CACAp6D,IAAA,CACAL,IAAA,MACAya,QAAA,qBAGAuyJ,EAAA,WACA,OAAAN,EAAA1hL,KAAA,SAAAwpB,GACA,OAAAu4J,EAAApyG,OAAAnmD,KACShqB,SAAA,wCAET23I,EAAA,WACA,OAAAuqC,EAAA1hL,KAAA,SAAAwpB,GACA,OAAAohJ,GAAAhpB,cAAAp4H,KACShqB,SAAA,uCAET+qK,EAAA,WACA,OAAAmX,EAAA1hL,KAAA,SAAAwpB,GACA,OAAAohJ,GAAAxB,WAAA5/I,KACShqB,SAAA,wCAETspK,EAAA,WACA,OAAA4Y,EAAA1hL,KAAA,SAAAwpB,GACA,OAAAohJ,GAAAnB,YAAAjgJ,KACShqB,SAAA,oCAEToyE,EAAA2sE,GAAA1+F,EAAA4xB,EAAAuwG,EAAA7qC,GACA4yB,EAAAa,GAAA/rJ,QAAAgrJ,QAAA,CACAx0J,IAAA,CACAL,IAAA,MACAya,QAAA,iBAEAmiD,YACA7e,SAAA,WACA0e,EAAA/wD,WAGAuhK,EAAAljF,GAAAttB,GACA44F,EAAAO,GAAA/rJ,QAAAy/E,QAAA,CACAjpF,IAAA,CACAL,IAAA,MACAya,QAAA,iBAEAmjD,QAAA5F,EACA4E,YACA7e,SAAA,WACA0e,EAAA/wD,SAEA8M,MAAAy0J,EACA1X,cACApzB,iBACAyR,WAAA,WACA,OAAAA,IAAAppJ,SAAA,oCAGA2qK,EAAAS,GAAA/rJ,QAAA,qBACAxJ,IAAA,CACAL,IAAA,MACAya,QAAA,0BAEAsjC,SAAA,aAEAvlC,MAAAy0J,IAEAxX,EAAAG,GAAA/rJ,QAAA2uJ,OAAA,CACAn4J,IAAA,CACAL,IAAA,MACAya,QAAA,qBAGAi7I,EAAAE,GAAA/rJ,QAAAopJ,QAAA,CACA5yJ,IAAA,CACAL,IAAA,MACAya,QAAA,mBAGAk7I,EAAAC,GAAA/rJ,QAAAqjK,SAAA,CACA7sK,IAAA,CACAL,IAAA,MACAya,QAAA,kBAEAmiD,cAEAuwG,EAAA1wG,EAAAga,SAAA,0BACA22F,EAAAD,IAAA/V,EAAAprK,EAAAP,KAAAsgL,GAAAtvG,EAAAG,EAAAc,OAAAC,YAAA3xE,EAAArC,OACA0jL,EAAA,CACAhtK,IAAA,CACAL,IAAA,MACAya,QAAA,sBAEA0D,WAAA,CACAs3I,EACAC,IAGA4X,EAAA5jF,GAAAjtB,GACA8wG,EAAAlkF,GAAA5sB,GACA+wG,EAAApkF,GAAA3sB,GACAgxG,EAAA,WACA,OAAAH,EACA,CAAAnY,GACSoY,EACT,CAAAlY,GAEA,IAGAG,EAAAI,GAAA/rJ,QAAA01H,OAAA,CACAl/H,IAAA,CACAL,IAAA,MACAya,QAAA,uBAEA0D,WAAA7uB,EAAA,CACAk+K,EAAA,CAAAzY,GAAA,GACA0Y,IACAtjF,GAAA1tB,GAAA,IAAAswG,EAAAnyG,YAEAy1F,OAAA9lE,GAAA9tB,GACAA,SACAmB,QAAA5F,IAEA01G,EAAAp+K,EAAA,CACA,CAAAkmK,GACA4B,EAAA,IAAAiW,KAEAne,EAAA,CACA7uJ,IAAA,CACAL,IAAA,MACAya,QAAA,0BAEA0D,WAAAuvJ,GAEAC,EAAAr+K,EAAA,CACA,CAAA4/J,GACAkI,EAAA,GAAAgW,EAAA9hL,UACA,CAAAqqK,KAEAr1G,EAAAgqC,GAAA7tB,GACA/hD,EAAAzyB,IAAA,CAA0ComE,KAAA,eAAsB8Z,GAAAnzC,QAAA,CAAsBi9B,IAAA,OAAa,IAAK3R,EAAA,CAAe4rC,cAAA,QAAwB,IAC/ImmD,EAAAzvH,GAAAgzI,GAAAjkH,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,CACA,MACA,eACApzB,OAAA+vK,EAAA,2BAAA/vK,OAAAwlL,GAAAxlL,OAAAslL,GACAhyJ,OAAA1yB,EAAA,CAA4BumK,WAAA,UAAuBluG,EAAA,CACnD2tE,QAAA,IACA2/C,OAAA,KACW,IACXlzJ,cAEAyD,WAAAwvJ,EACA/zJ,WAAAoW,GAAA,CAAAq5B,GAAApvC,OAAA,CACAkzB,KAAA,SACA7kC,SAAA,oMAGAokK,EAAA1gL,EAAAP,KAAA4mJ,GACA51E,EAAAwpF,UAAAxnI,IAAA,oCACAm3I,GAAAd,aAAAziB,KAEA51E,EAAAwpF,UAAAxnI,IAAA,qCACAm3I,GAAAlB,aAAAriB,KAEA,IAAAC,EAAAjrD,GAAAgrD,GACA11E,EAAA0qB,GAAAx8C,GACA68G,GAAAnzF,MAAAkI,EAAA61E,EAAA31E,GACAsuB,GAAA12B,MAAAkI,GACA,IAAAoxG,EAAA,WACA,IAAAr9I,EAAA,CACAs9I,aAAAnxG,EAAA/kD,UACAC,YAAA8kD,EAAA9kD,YACA0sD,SAAA,cAGA,OAAgB/zC,aAEhBu9I,EAAA,WACA,IAAAC,EAAAzU,GAAAN,QAAAU,GAAAl9F,IACAwxG,EAAA1U,GAAAN,QAAAc,GAAAt9F,IAWA,OAVAA,EAAAytB,SACA1pE,GAAA,cAAAytJ,IACAluJ,GAAAsyH,EAAAhqI,UAAA,QAAA4lK,GAEAztJ,GAAA,eAAAwtJ,GACAjuJ,GAAAsyH,EAAAhqI,UAAA,SAAA2lK,GAEAjuJ,GAAAsyH,EAAAhqI,UAAA,mBAGA2lK,GAEAE,EAAA,WACA3uC,EAAAhrE,MAAAkI,EAAAm3E,GACA4pB,GAAAjpG,MAAAkI,EAAAG,GACAskG,GAAAzkG,EAAAzE,EAAA4E,GACAy1F,GAAA51F,GACAo3F,GAAAp3F,EAAAq3F,EAAAl3F,EAAAc,QACA,IAAA36C,EAAA05C,EAAAgI,GAAAC,SAAAC,SAAAgW,EAAA53D,EAAA43D,QAAAvpB,EAAAruC,EAAAquC,UAAAwqF,EAAA74H,EAAA64H,gBAAA0W,EAAAvvI,EAAAuvI,SACA6b,EAAAxkF,GAAAltB,GACA+6F,EAAA,CACApmG,YACAF,MAAAuL,EAAAa,SAAApU,KAA2C34D,GAAAksE,EAAAa,SAAApU,KAAA,SAAAA,GAC3C,OAAAl2D,GAAAk2D,EAAA,CAAgCtb,MAAAsb,EAAAtb,UADhC,GAGAinH,QAAAp4F,EAAAa,SAAAu3F,QACAvrE,QAAA6kF,EAAA5jL,WAAA,WACA,OAAAkyE,EAAAga,SAAA,gBAEAkE,UACAs4E,QAAAX,GAEA1L,GAAAriF,SAAA9H,EAAAm/E,EAAA/wG,EAAA,CAAgE+xB,cAChEutG,GAAA51G,MAAAkI,EAAA5xB,GACA,IAAAy1B,EAAA7D,EAAA+rB,aACAnkE,EAAA0pJ,IACA57B,EAAA,CACAG,aACA31E,eACA01E,kBAEA9rJ,EAAA,CACAgyK,WAAAj4F,EACAj8C,UAEA,OAAA8oB,EAAA2wC,OAAArhB,EAAA01E,EAAAqlB,EAAA56F,EAAAr2E,IAEA,OACA+rJ,aACA31E,eACAC,YACAsxG,WACAL,UAGAO,GAAA,CAAkB75G,MAAAk4G,IAElB4B,GAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAxiL,EAAAD,KAAAgpB,GAAAu5J,EAAA,OAAAnkL,KAAA,WACA,IAAAF,EAAA8rB,GAAA,mBAEA,OADAnB,GAAA25J,EAAA,KAAAtkL,GACAA,GACOnD,GACP8tB,GAAA05J,EAAA,mBAAAE,IAGAC,GAAA,CACAC,WAAA,SAAAC,EAAAC,GACA,IAAAx9F,EAAAplF,EAAAD,KAAAgpB,GAAA45J,EAAA,OAAAxkL,KAAA,WACA,IAAAF,EAAA8rB,GAAA,gBAEA,OADAnB,GAAAg6J,EAAA,KAAA3kL,GACAA,GACSnD,GACT8tB,GAAA+5J,EAAA,kBAAAv9F,KAIAy9F,GAAAjoL,EAAA,CACAqW,GAAA,YACAY,GAAA,kBACAc,GAAA,YAAAymB,IACA/mB,GAAA,eAAAzX,GAAA,IACAyX,GAAA,iBACAsxC,GAAA,mBAAA0Z,KACAx9B,GAAA,aACAE,GAAA,cAEA+iJ,GAAA,CAAiBn9H,OAAA7qD,GACjBioL,GAAAnoL,EAAA,CACAgrB,GAAA,CACA1kB,KAAA,aACA+oC,UAAA,SAAAjmB,EAAAkJ,GACA,OACAU,WAAAoW,GAAA,CAAAo3I,GAAAntJ,OAAA,CACAkzB,KAAA,QACA03C,UAAA,SAAAvD,GACA,OAAAj5D,GAAAi5D,EAAA,mBAAAh3F,MAAAg3F,IAEA4gF,aAAAlyJ,EAAAg/J,eAAAxkL,SAAA,IAAA/C,MAAA,+EAAA+P,KAAAC,UAAAyhB,EAAA,SAAAzsB,SACAg6B,UAAAzW,EAAAi/J,sBAKA99J,GAAA,CACA3W,OAAA,CAAAyC,GAAA,QACA/P,KAAA,UAEAikB,GAAA,CACAoiC,QAAAu7H,GACAt0K,OAAA,CAAAyC,GAAA,QACA/P,KAAA,UAEAikB,GAAA,CACAoiC,QAAAu7H,GACAt0K,OAAA,CAAAyC,GAAA,QACA/P,KAAA,SAEA0kB,GAAA,CACA2hC,QAAAu7H,GACAt0K,OAAA,CAAAyC,GAAA,QACA/P,KAAA,WAEA4lD,GAAA,CACAS,QAAA,CACA5B,OAAA,SAAAz4B,EAAAlJ,GACA,OAAA/nB,IAAA,GAAuCixB,GAAA,CACvC7Y,IAAA2P,EAAA3P,IACA8d,WAAAnO,EAAAmO,eAIA3jB,OAAA,CACA6D,GAAA,OACA2B,IAAA,MACA2a,OAAA,CACAwN,SAAA,QACAvD,KAAA,MACAC,IAAA,MACA0B,MAAA,MACAC,OAAA,SAGAnoB,GAAA,kBAEAnR,KAAA,cAIAgiL,GAAA,SAAAl/J,EAAAmO,EAAAjF,EAAAm6B,GACA,IAAA87H,EAAAp5J,GAAA,qBACAq5J,EAAAr5J,GAAA,qBACAs5J,EAAAr/I,GAAA,CACAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACAmb,MAAA,WACA,OAAAt8D,EAAAP,MAAA,IAEA48D,WAAA,WACA,OAAAr8D,EAAAP,MAAA,MAGAmgE,GAAA3xC,OAAA,MAEAq1J,EAAA,SAAA32F,GACA,IAAA9tC,EAAA76B,EAAAgoD,SAAA2gB,GAAAnuF,WACA+kL,EAAAvwK,GAAAhT,EAAArC,QACA6lL,EAAAn8H,EAAAq8E,UACAA,EAAA7kF,EAAAn9B,YAAA6J,MAAAtvB,IAAA,GAAiEunL,GAAA,CACjErxJ,WAAAqxJ,EAAArxJ,WAAA92B,OAAA,CAAAk8B,GAAAo1D,KACA/+D,WAAAoW,GAAA,CACA47B,GAAA3xC,OAAA,IACAA,GAAA,yBACAvJ,GAAA1F,KAAA,WACAq+C,GAAAnN,QAAAy8B,KAEAtuE,GAAA+kK,EAAA,SAAA1/C,EAAA1iF,GACA/3B,GAAA0jE,EAAAtwE,UAAA,eACA8M,GAAAwjE,EAAAtwE,UAAA,aACAknK,EAAA1+K,MAAA9F,KAAA,SAAA0kL,GACA,OAAA7kH,GAAAj3C,OAAAglE,EAAA82F,QAIAplK,GAAA8kK,EAAA,SAAAz/C,EAAA1iF,GACAp4B,GAAA+jE,EAAAtwE,UAAA,oBACA,IAAAqnK,EAAA1iI,EAAArjC,QAAA+lK,cACAH,EAAA1+K,MAAA9F,KAAA,SAAA0kL,GACA7kH,GAAAj3C,OAAAglE,EAAA82F,KAEA,IAAAE,EAAAD,EAAA/2F,EAAA02F,GACAO,EAAAlgD,EAAAhiH,YAAA6J,MAAAo4J,GACAJ,EAAArwK,IAAAlT,EAAAP,KAAAmkL,IACAhlH,GAAA53C,OAAA2lE,EAAAp1D,GAAAqsJ,IACAA,EAAAptJ,cAAA6mC,KACAA,GAAAnN,QAAA0zH,YAMApnI,GAAAqC,EAAA6kF,GACArmE,GAAAnN,QAAAy8B,IAEAk3F,EAAA,SAAAl3F,GACA1mE,GAAA0mE,EAAAtwE,WAAAtd,KAAA,SAAA+kL,GACAn3F,EAAAjrE,YAAA2C,SAAAy/J,GAAA/kL,KAAA,SAAA2kI,GACA9mF,GAAA8mF,QAIAqgD,EAAA,SAAAp3F,GACA,OAAArkC,GAAAqkC,EAAA3oE,EAAA,SAEAggK,EAAA,SAAAr3F,GACA,OAAArkC,GAAAqkC,EAAA3oE,EAAA,WAEAigK,EAAA,SAAAt3F,EAAA+2F,GACAriK,GAAAsrE,EAAAw2F,EAAA,CAA2CO,iBAE3CQ,EAAA,SAAAv3F,GACAxrE,GAAAwrE,EAAAy2F,IAEAe,EAAAp6J,GAAA,gBACAiH,EAAA/0B,IAAA,GAA2C+nB,EAAAgN,YAAA,CAAuBozJ,wBAAA,CAAAD,GAAA9oL,OAAA2oB,EAAAgN,WAAA,gCAClE,OACApN,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAsE,KAAA,CACAklD,KAAA2nG,EACAt2G,KAAA62G,EACAphK,QAAAshK,EACAM,UAAAL,EACAE,UACAD,WAEAjzJ,aACAqB,gBAAA,CACA3D,WAAA,CACA2zC,KAAA,SACAiiH,aAAA,SAGA12J,WAAAm2B,GAAA//B,EAAAugK,gBAAA,CACA3lH,GAAA3wC,OAAA,IACAovC,GAAApvC,OAAA,CACAkzB,KAAA,SACA0Q,QAAA7tC,EAAAmmD,UACApY,SAAA/tC,EAAA+tC,SACAb,aAAAltC,EAAAktC,eAEAjjC,GAAAk2J,EAAA,CAAAx/J,GAAA,SAAAL,GACAm+J,GAAAC,WAAAp+J,EAAAjI,UAAAisC,GAAAhkC,EAAAN,EAAA,SAAA3H,WACAgmK,GAAA/9J,EAAAjI,UAAAisC,GAAAhkC,EAAAN,EAAA,QAAA3H,mBAKAmoK,GAAA/5H,GAAA,CACAvpD,KAAA,cACAopD,aAAAu4H,KACAr4H,WAAAu4H,KACAx7H,QAAA27H,GACAzsJ,KAAA,CACAklD,KAAA,SAAAllD,EAAAk2D,GACAl2D,EAAAklD,KAAAgR,IAEA3f,KAAA,SAAAv2C,EAAAk2D,GACAl2D,EAAAu2C,KAAA2f,IAEAlqE,QAAA,SAAAgU,EAAAk2D,GACA,OAAAl2D,EAAAhU,QAAAkqE,IAEA03F,UAAA,SAAA5tJ,EAAAk2D,GACA,OAAAl2D,EAAA4tJ,UAAA13F,IAEAs3F,QAAA,SAAAxtJ,EAAAk2D,EAAA+2F,GACAjtJ,EAAAwtJ,QAAAt3F,EAAA+2F,IAEAQ,QAAA,SAAAztJ,EAAAk2D,GACAl2D,EAAAytJ,QAAAv3F,OAKA83F,GAAA,CACArzK,GAAA,QACAA,GAAA,QACAC,GAAA,SACA,OACA,OACA,QACA,YAEAD,GAAA,QACAiB,GAAA,WAEAqyK,GAAA35K,GAAA05K,IAEAE,GAAA,SAAAC,GACA,OACAxzK,GAAA,QACAwzK,IAIAC,GAAA,CACAzzK,GAAA,QACAA,GAAA,QACAsB,GAAA,eACAA,GAAA,cACAtH,GAAA,cAAAhE,GAAA,WACA,OAAA2iB,GAAA,iBACOzZ,IACP0B,GAAA,QACAU,GAAA,kBAEAoyK,GAAA/5K,GAAA85K,IAEAE,GAAA,CACA3zK,GAAA,QACAA,GAAA,QACAA,GAAA,SACAsB,GAAA,gBAEAsyK,GAAAj6K,GAAAg6K,IACAE,GAAA10K,GAEA20K,GAAA,CACA9zK,GAAA,QACAA,GAAA,SAEA+zK,GAAAD,GAAA7pL,OAAA,CAAA2W,GAAA,WAEAozK,GAAAD,GACAE,GAAAt6K,GAAAq6K,IACAE,GAAAh1K,GAEAi1K,GAAAJ,GACAK,GAAAz6K,GAAAw6K,IACAE,GAAAn1K,GAEAo1K,GAAAP,GACAQ,GAAA56K,GAAA26K,IACAE,GAAAv2K,KAEAw2K,GAAA,SAAAjB,GACA,OACAxzK,GAAA,QACAD,GAAA,WACAyzK,IAIAkB,GAAAX,GAAA9pL,OAAA,CAAAqX,GAAA,kBACAqzK,GAAAh7K,GAAA+6K,IACAE,GAAA11K,GAEA21K,GAAAd,GAAA9pL,OAAA,CACA2W,GAAA,aACAA,GAAA,eACAU,GAAA,gBACAA,GAAA,iBAEAwzK,GAAAn7K,GAAAk7K,IACAE,GAAA71K,GAEA81K,GAAAjB,GAAA9pL,OAAA,CACAsW,GAAA,SACAP,GAAA,QACAA,GAAA,WAEAmB,GAAA,UACAG,GAAA,iBAEA2zK,GAAAt7K,GAAAq7K,IACAE,GAAAh2K,GAEAi2K,GAAApB,GAAA9pL,OAAA,CACAqX,GAAA,gBACAA,GAAA,iBAEA8zK,GAAAz7K,GAAAw7K,IACAE,GAAA17K,GAAA,CACAqG,GAAA,SACAA,GAAA,YAGAs1K,GAAAvB,GAAA9pL,OAAA,CACA2W,GAAA,eACAU,GAAA,gBACAA,GAAA,iBAEAi0K,GAAA57K,GAAA27K,IACAE,GAAAt2K,GAEAu2K,GAAA1B,GAAA9pL,OAAA,CACAoX,GAAA,mBACA,QACA,QACA,SAEAJ,GAAA,iBAEAy0K,GAAA/7K,GAAA87K,IACAE,GAAAh8K,GAAA,CACAqG,GAAA,SACAiB,GAAA,aAGA20K,GAAA9B,GAAA7pL,OAAA,CACAmX,GAAA,kBACApB,GAAA,YACAA,GAAA,aACAwB,GAAA,gBAAAjU,KAEAsoL,GAAA/B,GAAA7pL,OAAA,CACAmX,GAAA,kBACAjB,GAAA,UAEA21K,GAAA33K,GAAA,SAAA3P,GACA,OAAA8P,GAAA,mBAAA1B,GAAAi5K,IAAArnL,GAAAf,QAAA,WACA,OAAA6Q,GAAA,mBAAA1B,GAAAg5K,IAAApnL,OAGAunL,GAAA72K,GAEA82K,GAAA,CACAh2K,GAAA,QACAA,GAAA,QACAqB,GAAA,0BACA,eACA,cAGA40K,GAAAt8K,GAAAq8K,IAEAE,GAAAnC,GAAA9pL,OAAA,CAAA6V,GAAA,eAAAnG,GAAA,CACAkG,GAAA,QACAG,GAAA,YAEAm2K,GAAAx8K,GAAAu8K,IAEAE,GAAArC,GAAA9pL,OAAA,CAAAgX,GAAA,oBACAo1K,GAAA18K,GAAAy8K,IACAE,GAAAv4K,GAAA,CACAiC,GAAA,SACAA,GAAA,QACAA,GAAA,UAGAu2K,GAAA,SAAA/C,GACA,OACAxzK,GAAA,QACAA,GAAA,SACAwzK,IAIAgD,GAAA,CACAx2K,GAAA,QACAQ,GAAA,SAAAtB,IACAsB,GAAA,QAAA9G,GAAAwF,MAEAu3K,GAAA98K,GAAA68K,IAEAE,GAAA,SAAA5mL,GACA,OAAAkK,GAAA,gBAAAjE,KAAA2D,GAAAyE,GAAA,SAAA3P,GACA,OAAA8P,GAAA,oBAAAxO,EAAA6mL,GAAAnoL,GAAAzB,KAAA,SAAA6pL,GACA,OAAAlnL,EAAAN,MAAAqP,GAAAm4K,KACS,SAAAC,GACT,OAAAnnL,EAAAjG,MAAAotL,UAIAF,GAAAz4K,GAAA,WACA,OAAAS,GAAA,QACAmkI,YAAAwwC,GACA1wC,IAAAjpI,GAAA45K,GAAAmD,GAAA,SACA1lG,OAAA0iG,GACAzwC,SAAA2wC,GACA1zF,WAAA+zF,GACA/2F,YAAAk3F,GACAlxC,SAAAqxC,GACAthH,KAAAt5D,GAAA86K,GAAAiC,GAAA,UACA1zC,OAAA2xC,GACAx6K,MAAA26K,GACA3xC,UAAA8xC,GACA7xC,UAAAgyC,GACAryC,SAAAwyC,GACAlyC,SAAAqyC,GACApyC,aAAAwyC,GACAvyC,UAAA0yC,GACAzyC,WAAA2yC,GACAtzC,WAAAwzC,GACAzhL,MAAA+E,GAAA48K,GAAAG,GAAA,WACAjzC,MAAAgzC,GACAhoD,MAAAqoD,OAGAC,GAAA,CACA/2K,GAAA,QACAiB,GAAA,cACAT,GAAA,QAAAm2K,KAEAG,GAAAn9K,GAAAo9K,IAEAC,GAAA,CACAh9K,GAAA,cAAAhE,GAAA,WACA,OAAA2iB,GAAA,cACOzZ,IACPc,GAAA,SACAQ,GAAA,QAAAm2K,KAEAM,GAAA,CACAj3K,GAAA,QACAO,GAAA,OAAAy2K,KAEAE,GAAAv9K,GAAAs9K,IAEAE,GAAAx9K,GAAA,CACAqG,GAAA,QACAA,GAAA,QACAsB,GAAA,cACArX,OAAA09E,KACAyvG,GAAAj4K,GAEAk4K,GAAA,CACAr9K,GAAA,cAAAhE,GAAA,WACA,OAAA2iB,GAAA,iBACOzZ,IACP0B,GAAA,QACAS,GAAA,eACA,QACA,QAEAC,GAAA,cACAA,GAAA,gBAEAg2K,GAAAxrL,EAAAurL,GAAA,CAAAr3K,GAAA,UACAu3K,GAAAzrL,EAAA,CAAAmU,GAAA,QACA,SACA,SACA,YACAq3K,IACAE,GAAA1rL,EAAA,CACAmU,GAAA,iBACAW,GAAA,QACAA,GAAA,WACAA,GAAA,QACAJ,GAAA,QAAA22K,IACA51K,GAAA,qBACA,OAAA1Y,KAEAwuL,IACAI,GAAA74K,GAAA,QACAy+E,OAAAk6F,GACAn2G,OAAAm2G,GACAv8K,OAAAu8K,GACAzrH,KAAA0rH,KAGAE,GAAAJ,GACAK,GAAAF,GACAG,GAAAj+K,GAAA,CACAqG,GAAA,SACAF,GAAA,OAAAnB,GAAA,QACA8vH,MAAAqoD,GACAe,SAAAX,MAEA91K,GAAA,iBACAZ,GAAA,UAAAm3K,IACA12K,GAAA,kBACAM,GAAA,WAAA1Y,GACA0Y,GAAA,WAAA1Y,GACA0Y,GAAA,WAAA1Y,GACA0Y,GAAA,UAAA1Y,GACA0Y,GAAA,WAAA1Y,GACAoY,GAAA,cAAApY,KAEAivL,GAAA,SAAAh8J,GACA,OAAAxd,GAAA,SAAAs5K,GAAA97J,IAGAi8J,GAAA,SAAA9kL,GACA,OAAA/C,EAAA+C,GACA,CAAAA,GAAAhJ,OAAA2D,GAAA4F,GAAAP,GAAA8kL,KACO5nL,EAAA8C,GACPrF,GAAAqF,EAAA8kL,IAEA,IAIAC,GAAA,SAAA/kL,GACA,OAAAhD,EAAAgD,EAAAjD,OAAAC,EAAAgD,EAAAnD,OAEAmoL,GAAA,CACAh1C,SAAA4wC,GACA3zF,WAAAg0F,GACAh3F,YAAAm3F,GACAnxC,SAAAsxC,GACAr6K,MAAA46K,GACA/xC,OAAA4xC,GACAxxC,UAAAiyC,GACAlyC,UAAA+xC,GACA3jL,KAAA8jL,GACAtyC,SAAAyyC,GACAnyC,SAAAsyC,GACAryC,aAAAyyC,GACAlzC,WAAAyzC,GACA4B,eAAAd,IAEAe,GAAA,SAAAtzJ,GACA,OAAAj2B,EAAAD,KAAAspL,GAAApzJ,EAAA70B,QAEAooL,GAAA,SAAAjmG,GACA,OAAApkF,EAAAgqL,GAAA5lG,GAAA6lG,KAGAK,GAAA,SAAAlmG,GACA,IAAAmmG,EAAAF,GAAAjmG,GACA17E,EAAA7I,GAAA0qL,EAAA,SAAAzzJ,GACA,OAAAszJ,GAAAtzJ,GAAA93B,KAAA,WACA,UACS,SAAAqQ,GACT,OAAA0C,GAAA+kB,EAAA/0B,KAAAsN,QAGA,OAAAzD,GAAAlD,IAGA8hL,GAAA5+K,GAAA7N,EAAA,CAAAmU,GAAA,QACA,SACA,YACAy3K,KACAc,GAAA7+K,GAAA,CACAqG,GAAA,SACAA,GAAA,OACAW,GAAA,UACAA,GAAA,SACAG,GAAA,UAAAy3K,IACAh3K,GAAA,WAAA1Y,GACA0Y,GAAA,WAAA1Y,GACA0Y,GAAA,UAAA1Y,GACA0Y,GAAA,YAAA1Y,KAEA4vL,GAAA,SAAA38J,GACA,OAAAxd,GAAA,SAAAk6K,GAAA18J,IAGA48J,GAAA,SAAAvmG,GACA,IAAAwmG,EAAAvrL,GAAA0qL,GAAA3lG,IACAymG,EAAAP,GAAAlmG,GACAiL,EAAAjL,EAAAiL,YACA,OACAu7F,iBACAC,gBACAx7F,gBAGAy7F,GAAA,CACAvsI,KAAA,SAAA6J,EAAAg8B,GACA,IAAA5zE,EAAAm6K,GAAAvmG,GACA,OAAAh8B,EAAA53C,EAAAo6K,eAAAp6K,EAAA6+E,YAAA7+E,EAAAq6K,gBAEAE,QAAA,SAAA3iI,EAAAg8B,GACA,IAAAwmG,EAAAvrL,GAAAqrL,GAAAtmG,IACA,OAAAh8B,EAAAwiI,IAEAI,OAAA,SAAA5mG,GACA,OAAAumG,GAAAvmG,KAIA6mG,GAAA,WACA,IAAAp1J,EAAAhiB,GAAAhT,EAAArC,QACAygD,EAAA,WACAppB,EAAA9hB,IAAAlT,EAAArC,SAEAuV,EAAA,SAAA7W,GACA24B,EAAA9hB,IAAAlT,EAAAP,KAAApD,KAEAquC,EAAA,SAAAvwC,GACA66B,EAAAnwB,MAAA9F,KAAA5E,IAEAkwL,EAAA,WACA,OAAAr1J,EAAAnwB,MAAAxG,UAEA,OACA+/C,QACAlrC,MACAm3K,QACA3/I,OAIA4/I,GAAA,SAAA1lL,GACA,IAAAgE,EAAA,GACAC,EAAA,GAQA,OAPAzE,GAAAQ,EAAA,SAAA/J,EAAAqG,GACArG,EAAAsD,KAAA,WACAyK,EAAA1G,KAAAhB,IACS,SAAAtB,GACTiJ,EAAA3H,GAAAtB,MAGAgJ,EAAAlO,OAAA,EAAAoG,EAAAN,MAAAoI,GAAA9H,EAAAjG,MAAAgO,IAGA0hL,GAAA,SAAAr9J,EAAA0jD,GACA,IAAA45G,EAAA/7G,GAAAovC,GAAAl4D,OAAA,SAAA9nC,GACA,OACAxJ,IAAA,CACAL,IAAA,MACAya,QAAA,aAAApzB,OAAA6xB,EAAAuB,UAEA0D,WAAArzB,EAAAouB,EAAA00B,MAAA,SAAA3rB,GACA,OAAA++G,GAAAn3H,EAAAoY,EAAA26C,SAIA,OACAv8D,IAAA,CACAL,IAAA,MACAya,QAAA,sBAEA0D,WAAA,EACA9d,IAAA,CACAL,IAAA,MACAya,QAAA,8BAEA0D,WAAA,CAAAq4J,EAAA57G,YAEAhhD,WAAAoW,GAAA,CACAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACA+P,aAAA51D,EAAAssH,GAAAD,gBAEAjF,GAAAH,QAAAioE,GACAtkE,GAAA3D,QAAAioE,EAAA,CACA/kE,YAAA,SAAAglE,GACA,OAAAH,GAAAG,GAAAtsL,KAAA,SAAA0C,GAEA,OADA7G,EAAAiM,QAAAzF,MAAAK,GACA,IACe,SAAA6pL,GACf,OAAAA,WAQAC,GAAA,SAAA3mK,EAAAkJ,GACA,OACAtJ,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,WAAAnO,EAAAmO,WACAxI,OAAAi4C,GAAA59C,EAAAR,QACAoK,WAAAm2B,GAAA//B,EAAA4mK,oBAAA,CACAhrH,GAAA3xC,OAAA,IACAovC,GAAApvC,OAAA,CACAkzB,KAAA,YACAuR,UAAA,EACAE,UAAA,IAEApP,GAAAv1B,OAAA,CACAuwB,MAAA,CACA2C,KAAA,SACAuB,aAAA1+B,EAAAnpB,WAIAw3B,gBAAArO,EAAAqO,kBAGAw4J,GAAAzgI,GAAA,CACAlpD,KAAA,YACAopD,aAAA,CACAj4C,GAAA,WAAA1T,GACAsS,GAAA,SACA7F,GAAA,YAAA7D,GAAA,SAAA2lB,GACA,OACAwB,WAAA,CACA2zC,KAAA,MACApkE,GAAA8rB,GAAA,QACA+gK,gBAAA,YAGS76K,MACT4B,GAAA,UACAQ,GAAA,sBACAsxC,GAAA,uBACAic,GACAvC,GACA7Z,KAEAvyC,GAAA,SAEAs2C,QAAAojI,KAGAI,GAAAnwL,EAAA,CACAqW,GAAA,QACAA,GAAA,OACAoB,GAAA,qBACAsxC,GAAA,oBACAwJ,GACAkQ,KAEA59B,GAAA,CACA,WACA,oBAGAurJ,GAAAx1K,GAAA,CACA+xC,QAAAsjI,GACA3pL,KAAA,OACAgjE,KAAA,MACAj6B,UAAA,SAAAghJ,EAAAC,GACA,IAAAC,EAAA,SAAAC,EAAAhpG,GACAj1B,GAAAjsC,YAAAkqK,EAAAhpG,GACA/gE,GAAA+pK,EAAApqK,KAAA,CACAoqK,SACAhpG,YAGAipG,EAAA,SAAAD,EAAAhpG,GACAj1B,GAAAlsC,UAAAmqK,EAAAhpG,GACA/gE,GAAA+pK,EAAArqK,KAAA,CACAqqK,SACAhpG,YAGA,OACA5+D,OAAA,SAAA4+D,GACA,IAAAgpG,EAAAhpG,EAAA1gE,YAAAmC,SAAAonK,EAAArnK,KAAAplB,WACAgmK,EAAAr3G,GAAAxB,cAAAy/H,EAAAhpG,GACAmvE,EAAA,WACA,OAAAiT,GAAAymB,EAAAK,eACAH,EACe3mB,EAGfvqK,EAFAoxL,EAJA,GASA95B,EAAA65B,EAAAhpG,IAEA/vD,gBAAA,CAA4B5D,QAAA,CAAAw8J,EAAAxrJ,QAAA8rJ,eAI5BC,GAAA5wL,EAAA,CAAAowL,KAEAS,GAAA,SAAAznK,EAAAmO,EAAAjF,EAAAm6B,GACA,OACAzjC,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAu5J,iBAAA,SACAr5J,gBAAA,CAA4B3D,WAAA,CAAc2zC,KAAA,YAC1Cz0C,WAAAm2B,GAAA//B,EAAA2nK,iBAAA,CACAx+H,GAAAl/B,OAAA,CACAq9B,eAAAtnC,EAAAyb,QAAAmsJ,cACAj/H,UAAA3oC,EAAAyb,QAAA8rJ,SACA1/H,YAAA,SAAAu/H,EAAAS,GACAjjK,GAAAijK,EAAAxvK,UAAA,yBAEAmvC,cAAA,SAAA4/H,EAAAS,GACAjjK,GAAAijK,EAAAxvK,UAAA,4BAGAghD,GAAApvC,OAAA,CACAkzB,KAAA,OACAkW,WAAA,SAAA+zH,GACA,OAAAj+H,GAAAT,eAAA0+H,GAAAtsL,IAAA,SAAA+sL,GACA,OAAAA,EAAAxvK,aAGAC,SAAA,IAAA0H,EAAAyb,QAAA8rJ,SACA9zH,eAAA,QAKAq0H,GAAArhI,GAAA,CACAvpD,KAAA,SACAopD,aAAAygI,KACAvgI,WAAAghI,KACAjkI,QAAAkkI,KAGAM,GAAA,SAAA/nK,EAAAkJ,GACA,OACAtJ,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACAuZ,WAAAm2B,GAAA//B,EAAAgoK,kBAAA,CAAAptH,GAAA3wC,OAAA,MACAoE,gBAAA,CAA0B3D,WAAA,CAAc2zC,KAAA,eAGxC4pH,GAAA7hI,GAAA,CACAlpD,KAAA,UACAopD,aAAA,CAAA3G,GAAA,qBAAAib,MACArX,QAAAwkI,KAGAG,GAAAtxL,EAAA,CACAyX,GAAA,kBACAutB,GAAA,eACAA,GAAA,gBACAvtB,GAAA,WACAsxC,GAAA,6BAEAwoI,GAAAhnK,GAAA,CACAoiC,QAAAukI,GACAt9K,OAAA,CACAyC,GAAA,OACAQ,GAAA,WACAR,GAAA,YACAA,GAAA,oBAGA/P,KAAA,SACAimD,SAAA,SAAAnjC,GACA,OAAgBooK,KAAApoK,EAAAooK,SAGhBC,GAAAlnK,GAAA,CACAoiC,QAAA0kI,GACA/qL,KAAA,YAEAorL,GAAA1xL,EAAA,CACAuxL,GACAE,KAGAE,GAAA,SAAAvoK,EAAAmO,EAAAjF,EAAAm6B,GACA,IAAAgkI,EAAA,SAAAjpG,GACA,IAAAoqG,EAAAhpI,GAAA7C,SAAAyhC,GACAh6B,GAAAg6B,EAAAp+D,EAAA,WAAAjlB,KAAA,SAAA0tL,GACA,IAAAC,EAAAtpL,EAAA4gB,EAAAooK,KAAA,SAAAhwL,GACA,OAAAA,EAAAvB,QAAA2xL,IAEAE,EAAA3tL,KAAA,SAAA4tL,GACA,IAAA9sD,EAAA8sD,EAAAvxJ,OACAxS,GAAA6jK,EAAApwK,UAAA,kBAAA0M,GAAAq5D,EAAA/lE,UAAA,OACAuiD,GAAA1rD,IAAAu5K,EAAA5sD,GACA77G,EAAA4oK,YAAAH,EAAArqG,EAAAy9C,QAIAgtD,EAAA,SAAAC,EAAAC,GACA3kI,GAAA0kI,EAAA9oK,EAAA,UAAAjlB,KAAA,SAAAqsL,GACA2B,EAAA3B,GAAArsL,KAAAwiB,OAGA,OACAqC,IAAAI,EAAAJ,IACAvP,IAAA2P,EAAA3P,IACA8d,aACAvE,WAAAi2B,GAAA7/B,EAAAgpK,sBACArjK,OAAAxG,GAAA7f,EAAA,CACA0gB,EAAAipK,YAAA,CAAAtoK,GAAA,SAAAmoK,EAAApvK,GACAmvK,EAAAC,EAAA3/H,GAAApB,aACa,GACb,CACA1tC,GAAA0C,KAAA,SAAA+rK,EAAApvK,GACA,IAAA0kE,EAAA1kE,EAAAC,QAAAykE,SACAipG,EAAAjpG,KAEA/jE,GAAA2C,KAAA,SAAA8rK,EAAApvK,GACA,IAAA0kE,EAAA1kE,EAAAC,QAAAykE,SACAp+D,EAAAkpK,aAAAJ,EAAA1qG,SAIA3rD,KAAA,CACA02J,aAAA,SAAAL,GACA,OAAA1kI,GAAA0kI,EAAA9oK,EAAA,WAAAllB,IAAA,SAAA2tL,GACA,OAAA7tH,GAAAtf,SAAAmtI,KACanuL,MAAA,KAEb8uL,QAAA,SAAAN,EAAAO,GACA,IAAAC,EAAA,SAAAlC,GACA,IAAA9xK,EAAA6zC,GAAAZ,cAAA6+H,GACAmC,EAAAnqL,EAAAkW,EAAA,SAAAgL,GACA,OAAAk/B,GAAA7C,SAAAr8B,KAAA+oK,IAEA,OAAAE,EAAApuL,OAAA,SAAA0sL,GACA,OAAA1+H,GAAAxB,cAAAy/H,EAAAS,MAGAgB,EAAAC,EAAAQ,OAKAE,GAAA/iI,GAAA,CACAvpD,KAAA,aACAopD,aAAA4hI,KACA1hI,WAAA8hI,KACA/kI,QAAAglI,GACA91J,KAAA,CACA02J,aAAA,SAAA12J,EAAAhZ,GACA,OAAAgZ,EAAA02J,aAAA1vK,IAEA2vK,QAAA,SAAA32J,EAAAhZ,EAAA4vK,GACA52J,EAAA22J,QAAA3vK,EAAA4vK,OAKAI,GAAA,SAAAC,EAAAjB,EAAAkB,GACA,OAAA7uL,EAAA4uL,EAAA,SAAA7B,EAAAvvL,GACAsiE,GAAA1rD,IAAAy6K,EAAAD,EAAApxL,GAAA8+B,QACA,IAAAU,EAAA2wJ,EAAAp4K,MAAA+jB,wBAEA,OADAwmC,GAAA1rD,IAAAy6K,EAAA,IACA7xJ,EAAAzD,UAGAu1J,GAAA,SAAAC,GACA,OAAA7pL,GAAAH,GAAAgqL,EAAA,SAAAtwL,EAAAuC,GACA,OAAAvC,EAAAuC,GACA,EACSvC,EAAAuC,EACT,EAEA,MAIAguL,GAAA,SAAAnhG,EAAA8/F,EAAAsB,GACA,IAGA91I,EAHA+1I,EAAAjoK,GAAA4mE,GAAAt4E,MACAkvJ,EAAAlnI,GAAAswD,EAAA,oBAAAruF,MAAAquF,GACAqwE,EAAA,UAAA7oI,GAAAovI,EAAA,YAGAtrH,EADA+kH,EACA1yI,KAAAyN,IAAAi2J,EAAAhzJ,aAAAhhC,EAAA8gB,OAAAkxJ,aAEA1hJ,KAAAyN,IAAAi2J,EAAA11J,aAAA01J,EAAAjtD,cAEA,IAAAktD,EAAA11J,GAAAk0J,GACAyB,EAAAzB,EAAAp4K,MAAAglB,YAAA00J,EAAA15K,MAAAglB,WAAAW,GAAA+zJ,GACAI,EAAAD,EAAA5jK,KAAAyN,IAAAQ,GAAAw1J,GAAAE,KACAG,EAAAv2J,SAAA1D,GAAAw4D,EAAA,qBACA0hG,EAAAx2J,SAAA1D,GAAAw4D,EAAA,wBACA2hG,EAAA/1J,GAAAo0D,GAAAyhG,EAAAC,EACAE,EAAAD,EAAAH,EACA,OAAAl2I,EAAAs2I,GAEAnB,GAAA,SAAAM,EAAA1gK,GACAhpB,GAAA0pL,GAAA3uL,KAAA,SAAA8sL,GACA,OAAA2B,GAAAJ,QAAApgK,EAAA6+J,EAAAhxL,UAGA2zL,GAAA,SAAA/B,EAAAp0J,GACAtE,GAAA04J,EAAA,SAAAp0J,EAAA,MACAld,KAAA1C,QAAAzB,OAGAyd,GAAAg4J,EAAA,cAFA14J,GAAA04J,EAAA,aAAAp0J,EAAA,OAKAo2J,GAAA,SAAAC,EAAAjC,EAAAkC,GACAtyJ,GAAAqyJ,EAAA,mBAAA3vL,KAAA,SAAA4tF,GACArwD,GAAAqwD,EAAA,oBAAA5tF,KAAA,SAAAgvL,GACAY,EAAA9pL,MAAA/F,IAAA,SAAAu5B,GAGA,OAFAtE,GAAA04J,EAAA,cACA14J,GAAA04J,EAAA,kBACAniK,KAAAmlB,IAAApX,EAAAy1J,GAAAnhG,EAAA8/F,EAAAsB,MACWhvL,KAAA,SAAAs5B,GACXm2J,GAAA/B,EAAAp0J,UAKAu2J,GAAA,SAAAjiG,GACA,OAAArwD,GAAAqwD,EAAA,sBAEA85D,GAAA,SAAAinC,GACA,IAAAmB,EAAA,WACA,IAAAF,EAAA37K,GAAAhT,EAAArC,QACAmxL,EAAA,CACAnqK,GAAA,SAAAqI,GACA,IAAA2/D,EAAA3/D,EAAA3Q,UACAuyK,GAAAjiG,GAAA5tF,KAAA,SAAA0tL,GACA14J,GAAA04J,EAAA,uBACAz/J,EAAAtL,YAAA2C,SAAAooK,GAAApsL,WAAAtB,KAAA,SAAA4uL,GACA,IAAAE,EAAAJ,GAAAC,EAAAjB,EAAAkB,GACAoB,EAAAnB,GAAAC,GACAc,EAAAz7K,IAAA67K,KAEAN,GAAA9hG,EAAA8/F,EAAAkC,GACAl6J,GAAAg4J,EAAA,cACAW,GAAAM,EAAA1gK,GACAujD,GAAAy+G,sBAAA,WACAP,GAAA9hG,EAAA8/F,EAAAkC,SAIAtwK,GAAAmC,KAAA,SAAAwM,GACA,IAAA2/D,EAAA3/D,EAAA3Q,UACAuyK,GAAAjiG,GAAA5tF,KAAA,SAAA0tL,GACAgC,GAAA9hG,EAAA8/F,EAAAkC,OAGAtwK,GAAAqhF,GAAA,SAAA1yE,EAAAg0B,GACA,IAAA2rC,EAAA3/D,EAAA3Q,UACAuyK,GAAAjiG,GAAA5tF,KAAA,SAAA0tL,GACA,IAAAzmJ,EAAApD,KACA7O,GAAA04J,EAAA,uBACA,IAAAwC,EAAA36J,GAAAm4J,EAAA,UAAA3tL,IAAA,SAAA44B,GACA,OAAAG,SAAAH,EAAA,MAEAjD,GAAAg4J,EAAA,UACAh4J,GAAAg4J,EAAA,cACA,IAAAh5I,EAAAg5I,EAAAp4K,MAAA+jB,wBAAAC,OACA8rH,EAAA8qC,EAAA/vL,OAAA,SAAAw4B,GACA,OAAA+b,EAAA/b,IAEAysH,GACAwqC,EAAAz7K,IAAAlT,EAAAD,KAAA0zC,IACAg7I,GAAA9hG,EAAA8/F,EAAAkC,IAEAM,EAAAlwL,KAAA,SAAA24B,GACA82J,GAAA/B,EAAA/0J,KAGAjD,GAAAg4J,EAAA,cACAzmJ,EAAAjnC,KAAAwmC,SAIA0nJ,GAAA,EACA,OACA6B,cACA7B,eAxDA,GA2DAiC,EAAA,WACA,IAAAJ,EAAA,GACA7B,GAAA,EACA,OACA6B,cACA7B,eALA,GAQA,OACA4B,iBACAK,mBAIAC,GAAA,uBACAC,GAAA,oBACAC,GAAA,SAAAniK,EAAA0jD,GACA,IAAA0+G,EAAAt8K,GAAA,IACAu8K,EAAA,SAAA9xE,GACA,IAAA+xE,EAAAhsI,GAAA7C,SAAA88D,GACAgyE,EAAAnF,GAAAkF,GAAAlxL,MAAA,IACAoxL,EAAAJ,EAAAzqL,MACAwwH,EAAA3uH,GAAAgpL,EAAAD,GACAH,EAAAp8K,IAAAmiH,IAEAs6D,EAAA,SAAAlyE,GACA,IAAAkvE,EAAA2C,EAAAzqL,MACA2+C,GAAA9C,SAAA+8D,EAAAkvE,IAEAiD,EAAA58K,GAAA,MACA06K,EAAA5uL,EAAAouB,EAAAk/J,KAAA,SAAAP,GACA,OACAhxL,MAAAgxL,EAAA3qL,KACAmT,IAAA,CACAL,IAAA,MACAya,QAAA,8BACAwG,UAAA27C,EAAAc,OAAAC,UAAA74C,UAAA+yJ,EAAA1sG,QAEA/jD,KAAA,WACA,OAAAyiF,GAAAl4D,OAAA,SAAA9nC,GACA,OACAxJ,IAAA,CACAL,IAAA,MACAya,QAAA,cAEA0D,WAAArzB,EAAA+sL,EAAAjqI,MAAA,SAAA3rB,GACA,OAAA++G,GAAAn3H,EAAAoY,EAAA26C,KAEA4sC,eAAAx5E,GAAA,CACAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACA+P,aAAA51D,EAAAssH,GAAAD,gBAEA15F,GAAA,uBACAtJ,GAAAgrK,GACA/qK,GAAA2qK,KAEApqJ,GAAAlX,OAAA,CACAuW,SAAAr7B,GAAA,CACA,CACArE,IAAAqqL,GACAt0L,MAAA,CAAkCmqC,UAAAuqJ,IAElC,CACAzqL,IAAAsqL,GACAv0L,MAAA,CAAkCmqC,UAAA2qJ,kBAUlCE,EAAAppC,GAAAinC,GAAAmB,eACA,OAAArB,GAAA7nI,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,sBAEAm+J,YAAA,SAAAE,EAAA1qG,EAAA0tG,GACA,IAAA5uL,EAAAsiD,GAAA7C,SAAAyhC,GACA/gE,GAAAyrK,EAAArtF,GAAA,CACAv+F,OACA6uL,QAAAH,EAAA/qL,QAEA+qL,EAAA18K,IAAAhS,IAEAkrL,KAAAsB,EACAv7J,WAAA,CACAq7J,GAAA3vK,QAAAutK,OAAA,CACA/2K,IAAA,CACAL,IAAA,MACAya,QAAA,0BAEA0D,WAAA,CAAA25J,GAAAjuK,QAAAuuK,KAAA,KACA3sJ,QAAA,CACA8rJ,SAAA,UACAK,cAAA,qCAEAD,iBAAA3nJ,GAAA,CAAAomE,GAAAn8E,OAAA,QAEAu/J,GAAA3vK,QAAA4uK,QAAA,CACAp4K,IAAA,CACAL,IAAA,MACAya,QAAA,iCAIAw+J,YAAA4C,EAAA5C,YACAD,qBAAAhpJ,GAAA,CACA/V,GAAA,WAAA4hK,EAAAf,aACAzxH,GAAApvC,OAAA,CAAyBkzB,KAAA,YACzB6J,GAAA/8B,OAAA,CACA7qB,KAAA,SAAA4pB,GACA,OAAAhpB,GAAAwpL,GAAAL,aAAAngK,OAGAw2B,GAAAv1B,OAAA,CACAuwB,MAAA,CACA2C,KAAA,SACAR,SAAA,SAAAqvI,GAEA,OADAA,EAAAtuK,YAAAmK,YAAA,CAAAsjK,IAAA,IACAG,EAAAzqL,OAEA67C,SAAA,SAAAsvI,EAAAn1L,GACAy0L,EAAAp8K,IAAArY,GACAm1L,EAAAtuK,YAAAmK,YAAA,CAAAujK,IAAA,aAQAa,GAAAlmK,GAAA,iBACAmmK,GAAAnmK,GAAA,gBACAomK,GAAApmK,GAAA,eACAqmK,GAAArmK,GAAA,iBACAsmK,GAAAtmK,GAAA,qBAEAumK,GAAA,SAAApjK,EAAAjvB,EAAA2yE,EAAA2/G,GACA,IAAAtmC,EAAA,SAAAumC,GACA,OAAAA,EAAAhuK,KAAAphB,MACA,eACA,OAAAiuL,GAAAmB,EAAAhuK,KAAAouD,IAEA,QACA,OAAA25G,GAAAiG,EAAAhuK,KAAAouD,MAIAo5E,EAAA,SAAAymC,EAAAD,GACA,OAAAxwL,EAAAP,KAAA,CACAixL,WAAA,WACA,mBAAAF,EAAAhuK,KAAAphB,SAIAuvL,EAAA,CAA4BjyE,YAAA,UAC5B,OACArqG,IAAA,CACAL,IAAA,MACAya,QAAA,2BACAC,WAAAzyB,IAAA,GAA0CgC,EAAAa,IAAA,SAAA/D,GAC1C,OAAoBkD,GAAAlD,KACTuD,MAAA,KAAUiyL,EAAAI,EAAA,KAErBx+J,WAAA,GACAvE,WAAAoW,GAAA,CACA0+E,GAAAD,QAAA,GACAioC,GAAAz8H,OAAA,CACAk8H,QAAAgmC,GACAnmC,cACAC,mBACAz7D,YAAAthE,QAKA0jK,GAAA,SAAA1jK,EAAA2jK,EAAAjgH,EAAA2/G,GACA,OAAAD,GAAApjK,EAAAltB,EAAAP,KAAAoxL,GAAAjgH,EAAA2/G,IAEAO,GAAA,SAAA5jK,EAAA0jD,GACA,IAAAmgH,EAAAT,GAAApjK,EAAAltB,EAAArC,OAAAizE,GAAA,GACA,OAAA4zG,GAAA3mK,QAAA2E,KAAAuuK,IAEAC,GAAA,SAAA9jK,GACA,IAAA6jK,EAAA,CACA18K,IAAA,CACAL,IAAA,MACAya,QAAA,4BAEA0D,WAAA,EACA9d,IAAA,CACAL,IAAA,MACAya,QAAA,6BAEA0D,WAAA,CAAAy1F,GAAAJ,MAAA,CACAnzG,IAAA,CACAL,IAAA,SACA0a,WAAA,CAA+Bm7F,IAAA38F,EAAA2yE,MAE/BjyE,WAAAoW,GAAA,CACAomE,GAAAn8E,OAAA,IACA2xC,GAAA3xC,OAAA,WAIAL,WAAAoW,GAAA,CAAAq5B,GAAApvC,OAAA,CACAkzB,KAAA,UACA+P,aAAA51D,EAAAssH,GAAAD,mBAGA,OAAA68D,GAAA3mK,QAAA2E,KAAAuuK,IAGAE,GAAA,SAAAC,EAAAxgH,GACA,OACAvsD,GAAAnF,KAAA4oG,GAAA1oD,SACAgyH,EAAA/xF,GAAA,SAAAhnE,EAAAjL,GACAwjD,EAAAvyB,UACAjxB,EAAAixB,YAEA+yI,EAAA9xF,GAAA,SAAAjnE,EAAAjL,EAAAikK,EAAAxxL,GACAutB,EAAA2hE,SAAA12D,GACAhX,GAAAxhB,EAAAw/F,MAEA9gF,GAAAmhF,GAAA,SAAAl7E,EAAA08B,GACA,OAAA0vB,EAAA0gH,cAEA/yK,GAAAkhF,GAAA,SAAAj7E,EAAA08B,GACA,OAAA0vB,EAAA2gH,QAAArwI,EAAArjC,aAIA2zK,GAAA,SAAAC,EAAA7gH,GACA,IAAAwgH,EAAA,SAAA5/J,EAAAn3B,GACA,OAAAkkB,GAAAiT,EAAA,SAAAhN,EAAA08B,GACAwwI,EAAAltK,EAAA,SAAA4I,EAAAukK,GACAt3L,EAAAo3L,IAAArkK,EAAA8zB,EAAArjC,QAAA2G,QAIAktK,EAAA,SAAAltK,EAAAnqB,GACAuwJ,GAAAnsG,SAAAj6B,GAAAzf,MAAA9F,KAAA,SAAA2yL,GACAv3L,EAAAu3L,EAAAptK,MAGA,OAAApnB,EAAA+zL,GAAAC,EAAAxgH,GAAA,CAAAwgH,EAAA7xF,GAAA,SAAAlnE,EAAAjL,EAAAvP,GACAuP,EAAAmjD,SAAAl4C,EAAA,CAA8Bj3B,KAAAyc,EAAAzc,cAG9BywL,GAAA,SAAAJ,EAAA7gH,GACA,IAAAwgH,EAAA,SAAA5/J,EAAAn3B,GACA,OAAAkkB,GAAAiT,EAAA,SAAAhN,EAAA08B,GACAwwI,EAAAltK,EAAA,SAAA4I,EAAAukK,GACAt3L,EAAAo3L,IAAArkK,EAAA8zB,EAAArjC,QAAA2G,QAIAktK,EAAA,SAAAltK,EAAAnqB,GACAuwJ,GAAAnsG,SAAAj6B,GAAAzf,MAAA9F,KAAA,SAAA6yL,GACAz3L,EAAAy3L,EAAA7H,eAAAzlK,MAGA,OAAApnB,EAAA+zL,GAAAC,EAAAxgH,GAAA,CACAwgH,EAAA5xF,GAAA,SAAAnnE,EAAAjL,GACA,OAAAA,EAAA0hE,SAAAz2D,KAEA+4J,EAAAhyF,GAAA,SAAA/mE,EAAAjL,EAAAvP,GACAuP,EAAA2uF,SAAA1jF,EAAA,CAA8Bj3B,KAAAyc,EAAAzc,WAE9BgwL,EAAA7xF,GAAA,SAAAlnE,EAAAjL,EAAAvP,EAAAF,GACA,IAAAyyC,EAAA,WACA,OAAAmN,GAAAnN,QAAAzyC,IAEAhH,EAAAmsB,KACA1V,EAAAmjD,SAAAl4C,EAAA,CACAj3B,KAAAyc,EAAAzc,OACArG,MAAA8iB,EAAA9iB,UAEA+nC,KAAAzkC,KAAA,WACA+xD,KACW,SAAAnqB,IACXxoB,GAAAE,EAAApB,UAAA0pB,IAAA9c,GAAA8c,EAAA,YACAmqB,IACa3yC,GAAAwoB,EAAAtvB,EAAAhY,cAAAwqB,GAAAxS,EAAAjY,WAAA,aACb0xD,QAIAghI,EAAAzxF,GAAA,SAAAtnE,EAAAjL,EAAAvP,GACAuP,EAAA2kK,YAAA15J,EAAA,CACA25J,WAAAn0K,EAAAzc,OACA6wL,WAAAp0K,EAAAoyK,cAGAnrK,GAAA,SAAAnH,GACA,IAAA0a,EAAAo5J,IACA/tI,GAAA9C,SAAAjjC,EAAA0a,EAAA/J,gBAIA4jK,GAAA,CACAV,iBACAK,eAGAM,GAAA,SAAA7vG,EAAAxR,GACA,OAAAomD,GAAA50C,IAAAhhF,KAAAwvE,IAEAshH,GAAA,SAAAxkC,EAAAykC,EAAAC,GACA,OAAAhvL,EAAA+uL,EAAA,SAAA/vG,GACA,OAAAA,EAAAlhF,OAAAkxL,IACOpzL,KAAA,SAAAqzL,GACP,OAAAA,EAAA9vE,QAAA5zC,OAAA++E,MAGAzD,GAAA,SAAAqoC,EAAAjnL,GACA,IAAA8mL,EAAA9mL,EAAAvM,IAAA,SAAAzC,GACA,OAAAA,EAAA81L,gBACO7zL,MAAA,IACPi0L,EAAA1vL,EAAAsvL,EAAA,SAAA/vG,GACA,gBAAAA,EAAAo1E,QAEAg7B,EAAA,SAAAt8K,EAAAy4E,GACA,OAAAyM,GAAAz1C,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,uBAAAvY,IAEAic,WAAArzB,EAAA6vF,EAAA,SAAAvM,GACA,OAAAA,EAAAmgC,QAAA3zC,cAIA6jH,EAAAD,EAAA,QAAAD,EAAAzvL,MACA4vL,EAAAF,EAAA,MAAAD,EAAAxvL,MACA,OACA0vL,EACAC,IAGAC,GAAA,SAAAC,EAAAhiH,GACA,IAAAo5E,EAAA,SAAAymC,EAAAhvK,GACA,IAAA0wK,EAAArzL,EAAA2iB,EAAAktE,QAAA,SAAAvM,GACA,IAAAiwG,EAAA5jH,GAAAwjH,GAAA7vG,EAAAxR,IACA,OACA1vE,KAAAkhF,EAAAlhF,KACAs2J,MAAAp1E,EAAAo1E,MACAj1C,QAAA8vE,KAGAQ,EAAA,SAAAnlC,EAAA0kC,GACA,OAAAF,GAAAxkC,EAAAykC,EAAAC,IAEA,OAAApyL,EAAAP,KAAA,CACAozL,eACAV,mBAGA,OACA99K,IAAA6nE,GAAA,0CACA/pD,WAAA,GACAvE,WAAAoW,GAAA,CAAA0mH,GAAAz8H,OAAA,CACAk8H,QAAAimC,GACA5hG,YAAAokG,EACA5oC,cACAC,0BAIA6oC,GAAA,SAAAF,EAAAhiH,GACA,OAAA+hH,GAAAC,EAAAhiH,IAEAmiH,GAAA,SAAAH,EAAAhiH,GACA,OAAA4zG,GAAA3mK,QAAAm1K,OAAAL,GAAAC,EAAAhiH,KAGAqiH,GAAA,SAAAt1G,EAAAz8E,GACA,IAAA8xC,EAAA2qC,EAAA9J,UACA,GAAA7gC,EAAAtxB,YAAAqK,cAAA,CACA,IAAAmnK,EAAAloI,GAAAL,WAAAgzB,EAAAw1G,kBAAA70L,MAAAq/E,EAAAw1G,kBACA,OAAAt1E,GAAArd,SAAA0yF,EAAAhyL,GAAA/C,KAAA,WACA,IAAA60L,EAAAr1G,EAAA0mG,YACA+O,EAAA1oC,GAAAnsG,SAAAy0I,GACA,OAAAI,EAAAvuL,MAAA7F,KAAA,SAAA7E,GACA,OAAAA,EAAA04L,aAAAK,EAAAhyL,MAES,SAAA8rB,GACT,OAAAhtB,EAAAP,KAAAutB,KAGA,OAAAhtB,EAAArC,QAGA01L,GAAA,SAAA11G,EAAAl8D,GACA,IAAAuxB,EAAA2qC,EAAA9J,UACA,OAAA62E,GAAAnsG,SAAAvL,GAAAnuC,MAAA/F,IAAA,SAAAw0L,GACA,OAAA90L,GAAAkR,GAAA,OAAA4jL,EAAAtJ,cAAAvoK,MACOnjB,MAAAmjB,IAEP8xK,GAAA,SAAA51G,EAAA61G,EAAAC,GACA,IAAAC,EAAA,SAAAv5L,GACA,IAAA64C,EAAA2qC,EAAA9J,UACA7gC,EAAAtxB,YAAAqK,eACA5xB,EAAA64C,IAGA5kB,EAAA,WACA,IAAA4kB,EAAA2qC,EAAA9J,UACA8/G,EAAA3gJ,EAAAtxB,YAAAqK,cAAA4xD,EAAAw1G,iBAAAngJ,EACA4gJ,EAAApwI,GAAA7C,SAAAgzI,GACAE,EAAAtvL,GAAAkvL,EAAA,SAAAj7H,GACA,OAAAA,EAAA3zD,QAEA,OAAA5I,IAAA,GAAmC23L,GAAAC,IAEnCC,EAAA,SAAAz+D,GACAq+D,EAAA,SAAAvzL,GACA,IAAA4zL,EAAAC,EAAA5lK,UACA6lK,EAAAjtL,GAAA+sL,EAAA1+D,GACA6+D,EAAAb,GAAA11G,EAAAs2G,GACAx2E,EAAA9/B,EAAAw1G,iBACA3vI,GAAA9C,SAAA+8D,EAAAy2E,GACA9vL,GAAAqvL,EAAA,SAAA7zL,EAAAtC,GACAyH,GAAAkvL,EAAA32L,IACAsC,EAAAsT,IAAA+gL,EAAA32L,SAKAyjF,EAAA,SAAA7/E,GACA+xL,GAAAt1G,EAAAz8E,GAAAnC,KAAAojF,GAAApB,UAEAW,EAAA,SAAAxgF,GACA+xL,GAAAt1G,EAAAz8E,GAAAnC,KAAAojF,GAAAT,SAEAhiE,EAAA,SAAAxe,GACA+xL,GAAAt1G,EAAAz8E,GAAAnC,KAAA6gE,GAAAlgD,QAEA6oH,EAAA,SAAA9nI,GACA,IAAAY,EAAAZ,GACA,UAAAhF,MAAA,0GAEAi4L,EAAA,SAAA1gJ,GACA3xB,GAAA2xB,EAAAusD,GAAA,CAA0C9+F,eAG1C4nI,EAAA,WACAqrD,EAAA,SAAA1gJ,GACA7xB,GAAA6xB,EAAAwsD,OAGA4tF,EAAA,SAAAlsL,GACAwyL,EAAA,SAAAvzL,GACA,IAAAqiB,EAAAm7D,EAAAl7D,UACA0xK,EAAAzpC,GAAAnsG,SAAA/7B,GACA2xK,EAAAtvL,MAAA5F,OAAA,SAAAa,GACA,OAAAA,EAAA4wL,gBAEA1lI,GAAAL,WAAAnoC,GAAAzjB,KAAA,SAAAq1L,GACA5G,GAAAJ,QAAAgH,EAAAlzL,QAKAipL,EAAA,SAAAzkK,GACAguK,EAAA,SAAA1gJ,GACA,IAAAqhJ,EAAAb,EAAA9tK,GACAstB,EAAAtxB,YAAAmK,YAAA,CAAAokK,IAAAoE,GACArhJ,EAAAtxB,YAAAmK,YAAA,CAAAqkK,IAAAmE,EAAAtK,gBACA/2I,EAAAtxB,YAAAmK,YAAA,CAAAskK,IAAAkE,EAAAtK,gBACA/2I,EAAAtxB,YAAAmK,YAAA,CAAAukK,IAAAiE,EAAAtK,gBACAiK,EAAAF,QAAAO,EAAA7lG,gBAGAtwC,EAAA,WACAw1I,EAAA,SAAA1gJ,GACA7xB,GAAA6xB,EAAAmsD,OAGA60F,EAAA,CACA5lK,UACA0lK,UACA/yG,UACAW,SACAhiE,QACA6oH,QACAF,UACA+kD,UACAjD,SACAjsI,SAEA,OAAA81I,GAGAM,GAAAj3G,GAAA1iE,WAAA5B,UACAw7K,GAAA,SAAAp1G,EAAAjhC,GACA,OACA7pC,IAAA,CACAL,IAAA,MACA2a,OAAA,CAAmB4lE,QAAA,QACnB9lE,QAAA,wBAEA0D,WAAA,CACAgtD,EACAjhC,KAIAs2I,GAAA,SAAAr2I,EAAAiiC,GACA,OAAAokG,GAAA3mK,QAAAqgC,MAAAswB,GAAA7oB,OAAA,CACAtxC,IAAA,CACAL,IAAA,SACAya,QAAA,CACA,aACA,mBACA,qBAEAC,WAAA,CACAttB,KAAA,SACAgvE,aAAAgQ,EAAAtnD,UAAA,WAGAtV,OAAA26B,EACAowB,iBAAAvqC,GAAA,CAAAomE,GAAAn8E,OAAA,UAGAwmK,GAAA,WACA,OAAAjQ,GAAA3mK,QAAAshE,MAAA,CACA9qE,IAAA,CACAL,IAAA,MACAya,QAAA,sBACAwG,UAAA,GACAtG,OAAA,CAAmB4lE,QAAA,YAInBmgG,GAAA,SAAAj0L,EAAA2/E,GACA,OAAAokG,GAAA3mK,QAAA2E,KAAA,CACAnO,IAAA,CACAL,IAAA,MACAya,QAAA,sBAEA0D,WAAA,EACA9d,IAAA,CACAL,IAAA,MACAya,QAAA,8BAEA0D,WAAA,EAA0B9d,IAAA6nE,GAAA,MAAAkE,EAAAtnD,UAAAr4B,GAAA,eAI1Bk0L,GAAA,SAAAhmG,GACA,OAAA61F,GAAA3mK,QAAAm1K,OAAA,CACA3+K,IAAA,CACAL,IAAA,MACAya,QAAA,wBAEA0D,WAAAw8D,KAGAimG,GAAA,SAAAnC,EAAAC,GACA,OACAt3F,GAAAz1C,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,8BAEA0D,WAAAsgK,IAEAr3F,GAAAz1C,OAAA,CACAtxC,IAAA,CACAL,IAAA,MACAya,QAAA,4BAEA0D,WAAAugK,MAIAmC,GAAA,SAAA3nK,GACA,IAAA6J,EACA+9J,EAAA,aACA5e,EAAA4e,EAAA,QACAC,EAAA7e,EAAA,aACA8e,EAAAF,EAAA,mBACA,OAAAtQ,GAAA7+H,OAAA,CACAqmB,SAAA9+C,EAAA8+C,SACAja,SAAA,SAAA/kC,GAEA,OADAE,EAAA6kC,SAAA/kC,GACAhtB,EAAAP,MAAA,IAEAyxD,aAAA,SAAA10C,GACA,OAAAorG,GAAAD,aAAAnrG,IAEAnI,IAAA,CACAL,IAAA,MACAya,QAAA,CAAAqmK,GAAAz5L,OAAA6xB,EAAAs9E,cACA77E,OAAA1yB,EAAA,CAA4BkgC,SAAA,YAAuBjP,EAAA+nK,cAEnD9iK,WAAAj1B,EAAA,CACAgwB,EAAAqmH,OACArmH,EAAA1K,MACA0K,EAAA8lK,OAAA1zL,WACAue,MAAA,CACA6lH,QAAA,CACArvH,IAAA6nE,GAAA,eAAAg6F,EAAA,YACA/jJ,WAAA,EACA9d,IAAA,CACAL,IAAA,MACAya,QAAA6lK,GAAA,CACAS,EACAA,EAAA,YACA,CAAAA,QAKA/R,eAAA9M,EACAqO,gBAAAvgJ,GAAA9mC,EAAA,CACA0iE,GAAA3xC,OAAA,IACAA,GAAA,gBAAAf,EAAAgoK,aAAA75L,OAAA,CAAAqpB,GAAA1F,KAAA,SAAAgO,EAAAg0B,GACAqc,GAAAnN,QAAAljC,QAEAiB,GAAA,eACAtJ,GAAA,WACAsO,GAAAzQ,KAAAwyK,KAEApwK,GAAA,WACAuO,GAAA3Q,KAAAwyK,QAGA9nK,EAAAu9E,kBACAz5E,WAAA/0B,GAAA86B,EAAA,GAAqCA,EAAAjX,MAAA,kBAAAiX,EAAAtW,MAAA,CACrC,cACA,gBACA,wBACAsW,EAAArW,MAAA,CACA,uBACA,gBACA,eACAqW,GAAA7J,EAAA8D,eAIAmkK,GAAA,SAAA/0G,GACA,OAAA5R,GAAA7oB,OAAA,CACAtxC,IAAA,CACAL,IAAA,SACAya,QAAA,CACA,aACA,mBACA,qBAEAC,WAAA,CACAttB,KAAA,SACAgvE,aAAAgQ,EAAAtnD,UAAA,SACAqmD,MAAAiB,EAAAtnD,UAAA,WAGA3G,WAAA,EACA9d,IAAA,CACAL,IAAA,MACAya,QAAA,aACAwG,UAAA,4PAGAzR,OAAA,SAAAwJ,GACA7L,GAAA6L,EAAAoyE,QAIAg2F,GAAA,SAAAloK,EAAAjvB,EAAAmiF,GACA,IAAA6pE,EAAA,SAAAxoI,GACA,OAAAtN,GAAAisE,EAAAtnD,UAAArX,EAAA09D,UAEA,OACA9qE,IAAA,CACAL,IAAA,MACAya,QAAA,sBACAC,WAAAzyB,EAAA,GAAiCgC,EAAAa,IAAA,SAAA/D,GACjC,OAAoBkD,GAAAlD,KACTuD,MAAA,MAEX6zB,WAAA83H,EAAA/8H,GACAU,WAAAoW,GAAA,CAAA0mH,GAAAz8H,OAAA,CACAk8H,QAAA+lC,GACAjmC,yBAIAorC,GAAA,WACA,OAAchhL,IAAA6nE,GAAA,gDAEdo5G,GAAA,SAAApoK,EAAAqoK,EAAAn1G,GACA,OAAAgb,GAAAz1C,OAAA,CACAtxC,IAAA6nE,GAAA,0CACA/pD,WAAA,CACAijK,GAAAloK,EAAAltB,EAAAP,KAAA81L,GAAAn1G,GACAi1G,KACAF,GAAA/0G,IAEA+a,oBAAAn3D,GAAA,CAAAo3I,GAAAntJ,OAAA,CACAkzB,KAAA,QACA+0H,aAAA,UACAr9E,UAAA,SAAAvD,GACA,OAAA/4D,GAAA+4D,EAAA,mBAAA92F,YAEA24K,MAAA,CACAG,cAAA,WACA,UAEA7X,SAAA,iBACAC,QAAA,wBAKA81B,GAAA,SAAAtoK,EAAAkzD,GACA,IAAAq1G,EAAAjR,GAAA3mK,QAAAshE,MAAAi2G,GAAAloK,EAAAltB,EAAArC,OAAAyiF,IACAs1G,EAAAlR,GAAA3mK,QAAA83K,WAAAN,MACAb,EAAAhQ,GAAA3mK,QAAAqgC,MAAAi3I,GAAA/0G,IACAjuD,EAAA,CAAAsjK,GAAAp6L,OAAA6xB,EAAA0oK,UAAA,CAAAF,GAAA,IAAAr6L,OAAA,CAAAm5L,IACA,OAAAp5F,GAAAz1C,OAAA,CACAtxC,IAAA6nE,GAAA,0CACA/pD,gBAIAg2I,GAAA,SAAAhpF,EAAAvO,GACA,OAAA4kH,GAAA,CACAr2G,MAAAvO,EAAAc,OAAAC,UAAA74C,UAAAqmD,GACAy2G,UAAAhlH,EAAA+b,OAAA6R,oBACO5tB,EAAAc,OAAAC,YAEPkkH,GAAA,SAAAC,EAAA3nL,GACA,OACAgwC,QAAA,WACA,OAAAhwC,EAAA4nL,eAEA1E,QAAA,SAAA2E,GACAxR,GAAAP,QAAA6R,IAAA,SAAApwK,EAAAuwK,GACA,OACA5hL,IAAA,CACAL,IAAA,MACAya,QAAA,6BACAC,WAAA,CAA6B0hD,aAAA4lH,EAAAv1L,WAC7BkuB,OAAA,CACAiK,KAAA,MACA2B,MAAA,MACAC,OAAA,MACA3B,IAAA,MACAsD,SAAA,aAGAvO,WAAAqoK,EACA9jK,WAAA,EAA4B9d,IAAA6nE,GAAA,0EAI5Bk1G,UAAA,WACA5M,GAAAN,QAAA4R,QAIAI,GAAA,SAAAhpK,EAAAshE,EAAA0mG,EAAAtkH,GACA,IAAA75C,EACAizH,EAAA,SAAAymC,EAAAD,GACA,OAAAxwL,EAAAP,KAAA+wL,IAEA,OAAA55J,GAAAi+J,GAAA54L,IAAA,GAAsDixB,GAAA,CACtD8+C,SAAA4E,EAAAc,OAAAE,QACA64B,gBAAAvtG,EAAA,CACAwtJ,GAAAz8H,OAAA,CACAk8H,QAAA8lC,GACAjmC,cACAx7D,gBAEA03B,GAAAhlE,OAAA,KACAh0B,EAAAu9E,iBACA14C,SAAA,SAAA/kC,GACA7L,GAAA6L,EAAAoyE,KAEA81F,eACAlkK,YAAA+F,EAAA,GAA4BA,EAAAlX,MAAA,CAC5B,aACA,aACAkX,EAAAtW,MAAA,CACA,cACA,aACA,WACA,gBACA,wBACAsW,EAAArW,MAAA,CACA,uBACA,gBACA,WACA,aACA,eACAqW,QAGAo/J,GAAA,SAAAxnG,GACA,IAAAynG,EAAA,SAAAh0G,GACA,IAAAxgC,EAAA9iD,EAAAsjF,EAAAxgC,MAAA,SAAA3rB,GACA,IAAAuiC,EAAAxlD,IAAA,GACA,OAAA/W,IAAA,GAAqCg6B,GAAA,CAAU6/F,QAAAt9D,MAE/C,OAAAv8D,IAAA,GAAmCmmF,GAAA,CAAYxgC,WAE/C,OAAA9iD,EAAA6vF,EAAA,SAAAvM,GACA,eAAAA,EAAAhhF,KACAg1L,EAAAh0G,GAEAA,KAGAi0G,GAAA,SAAA1nG,GACA,OAAAxrF,EAAAwrF,EAAA,SAAAzrF,EAAAk/E,GACA,YAAAA,EAAAhhF,KAAA,CACA,IAAAk1L,EAAAl0G,EACA,OAAAj/E,EAAAmzL,EAAA10I,MAAA,SAAA20I,EAAAtgK,GAEA,OADAsgK,EAAAtgK,EAAA/0B,MAAA+0B,EAAA6/F,QACAygE,GACWrzL,GAEX,OAAAA,GACO,KAGPszL,GAAA,SAAAnC,EAAAlmL,EAAAyiE,GACA,IAAA2iE,EAAA40B,GAAAksB,EAAAtK,eAAA5qG,MAAAvO,GACApuD,EAAAsuK,GAAA,CAAkCtuK,KAAA6xK,EAAAtK,eAAAvnK,MAAuCouD,GACzE6lH,EAAAN,GAAA9B,EAAAtK,eAAAp7F,SACA+nG,EAAAL,GAAAI,GACAzD,EAAAD,GAAA,CAAsCpkG,QAAA8nG,GAA+B7lH,GACrEskH,EAAAlD,GAAAL,WAAA,WACA,OAAAqC,GACO6B,GAAA,WACP,OAAAlpG,GACOx+E,IACPwoL,EAAA,WAAAtC,EAAAtK,eAAApnL,KAAA,UAAA0xL,EAAAtK,eAAApnL,KAAA,qDACAuqB,EAAA,CACAqmH,SACA/wH,OACAwwK,OAAAhzL,EAAAP,KAAAuzL,GACAxoF,aAAAmsF,EACAlsF,gBAAA,GACAwqF,YAAA,IAEAtoG,EAAAupG,GAAAhpK,EAAAmnK,EAAAa,EAAAtkH,GACAgmH,EAAA,WACA,IAAAC,EAAA,WACA,IAAAC,EAAAtS,GAAA/hK,QAAAkqE,GACA,OAAA3hC,GAAAL,WAAAmsI,GAAAx4L,MAAAw4L,IAEA,OACAjjH,QAAA,WACA,OAAA8Y,GAEAlqE,QAAA,WACA,OAAA+hK,GAAA/hK,QAAAkqE,IAEA03F,UAAA,WACA,OAAAG,GAAAH,UAAA13F,IAEAwmG,eAAA0D,GAfA,GAkBA7C,EAAAT,GAAAqD,EAAAzoL,EAAAg8K,OAAAuM,GACA,OACA/pG,SACAqnG,gBAIA+C,GAAA,SAAA1C,EAAAlmL,EAAAyiE,EAAA2/G,GACA,IAAAx5J,EAAAigK,EACAC,EAAAltK,GAAA,gBACAmtK,EAAAntK,GAAA,kBACAigI,EAAA,SAAAymC,EAAAD,GACA,OAAAxwL,EAAAP,KAAA+wL,IAEA2G,EAAA1oH,GAAA6mH,GAAA,CACAn2G,MAAAk1G,EAAAtK,eAAA5qG,MACAy2G,WAAA,GACOqB,EAAArmH,EAAAc,OAAAC,YACPylH,EAAA3oH,GAAAmiH,GAAA,CAA6CpuK,KAAA6xK,EAAAtK,eAAAvnK,MAAuC00K,EAAAtmH,EAAA2/G,IACpFkG,EAAAN,GAAA9B,EAAAtK,eAAAp7F,SACA+nG,EAAAL,GAAAI,GACAY,EAAA5oH,GAAAqkH,GAAA,CAAiDnkG,QAAA8nG,GAA+B7lH,IAChFskH,EAAAlD,GAAAL,WAAA,WACA,OAAAqC,GACO,CACP3C,QAAA,aAEAD,UAAA,aAEAjzI,QAAA,WACA,OAAAhwC,EAAA4nL,iBAGAppG,EAAA/1D,GAAA,CACAviB,IAAA,CACAL,IAAA,MACAya,QAAA,CACA,aACA,qBAEAC,YAAAqI,EAAA,CAA6BsrC,KAAA,UAAiBtrC,EAAA,mBAAAkgK,EAAAlgK,EAAA,uBAAAmgK,EAAAngK,IAE9C/F,YAAAgmK,EAAA,GAA4BA,EAAAn3K,MAAA,CAC5B6qI,GAAAxpJ,OACAikC,GAAAjkC,QACA81L,EAAAl3K,MAAA,oBAAAk3K,EAAAv2K,MAAA,CACA,aACA,mBACAu2K,GACAppK,WAAAoW,GAAA,CACAq5B,GAAApvC,OAAA,CACAkzB,KAAA,SACA4Q,SAAA,SAAAztC,GAEA,OADAnD,GAAAmD,EAAA66E,IACAn/F,EAAAP,MAAA,IAEAyxD,aAAA,SAAA10C,GACA,OAAAorG,GAAAD,aAAAnrG,KAAA,WAAAtb,GAAAsb,IAAA,aAAAuM,GAAAvM,EAAA,gBAGAkuI,GAAAz8H,OAAA,CACAk8H,QAAA8lC,GACAjmC,cACAx7D,YAAA6lG,IAEAz0H,GAAA3xC,OAAA,IACAA,GAAA,kBAAAinK,EAAA75L,OAAA,CAAAqpB,GAAA1F,KAAA,SAAAgO,EAAAg0B,GACAqc,GAAAnN,QAAAljC,QAEAk5F,GAAAhlE,OAAA,MAEA/uB,WAAA,CACAglK,EAAAvoH,SACAwoH,EAAAxoH,SACAyoH,EAAAzoH,YAGAolH,EAAAT,GAAA,CACA1/G,QAAA,WACA,OAAA8Y,GAEA03F,UAAA,WACA,OAAAgT,EAAAxyL,IAAA8nF,IAEAlqE,QAAA,WACA,OAAA20K,EAAAvyL,IAAA8nF,IAEAwmG,eAAA,WACA,IAAA3wK,EAAA40K,EAAAvyL,IAAA8nF,GACA,OAAA3hC,GAAAL,WAAAnoC,GAAAlkB,MAAAkkB,KAEOrU,EAAAg8K,OAAAuM,GACP,OACA/pG,SACAqnG,gBAIAsD,GAAAz7L,QAAAC,KAAAC,MAAAC,QAAA,oBAEAu7L,GAAA,SAAAvkJ,GACA,IAAA0gJ,EAAA,SAAAv5L,GACA64C,EAAAtxB,YAAAqK,eACA5xB,EAAA64C,IAGAu1F,EAAA,SAAA9nI,GACA,IAAAY,EAAAZ,GACA,UAAAhF,MAAA,6GAEAi4L,EAAA,SAAA1gJ,GACA3xB,GAAA2xB,EAAAusD,GAAA,CAA0C9+F,eAG1C4nI,EAAA,WACAqrD,EAAA,SAAA1gJ,GACA7xB,GAAA6xB,EAAAwsD,OAGAthD,EAAA,WACAw1I,EAAA,SAAA1gJ,GACA7xB,GAAA6xB,EAAAmsD,OAGAq4F,EAAA,SAAA/1K,GACAiyK,EAAA,SAAA1gJ,GACAA,EAAAtxB,YAAAmK,YAAA,CAAAwkK,IAAA5uK,MAGA,OACA8mH,QACAF,UACAnqF,QACAs5I,gBAIAC,GAAA,CACA,gBACA,aACA,cACA,QACA,QACA,WAEAC,GAAA,SAAAj2K,GACA,OAAAngB,EAAAmgB,KAAA,IAAAg2K,GAAA16L,QAAA0kB,EAAAk2K,YAEAC,GAAA,SAAAn2K,GACA,OAAAi2K,GAAAj2K,IAAAngB,EAAAmgB,IAAA1c,GAAA0c,EAAA,cAEAo2K,GAAA,SAAApnH,EAAAt4C,EAAA1W,GACA,OAAAA,EAAAk2K,WACA,oBACAlnH,EAAAqnH,cAAAr2K,EAAAwG,SACA,MACA,iBACAwoD,EAAA5yB,WAAAp8B,EAAAwG,SACA,MACA,kBACA,IAAAwwD,IAAAj3E,EAAAigB,EAAAg3D,KAAAh3D,EAAAg3D,GACAhI,EAAAqc,YAAArrE,EAAA0tJ,IAAA12F,EAAAh3D,EAAA5mB,OACA,MACA,YACAs9B,EAAA+lB,QACA,MACA,YACA/lB,EAAAowG,MAAA9mH,EAAAhhB,SACA,MACA,cACA03B,EAAAkwG,UACA,QAGA0vD,GAAA,SAAAhO,EAAA57K,EAAAsiE,EAAAG,GACA,IAAA75C,EACAw8G,EAAA40B,GAAA4hB,EAAA5qG,MAAAvO,GACApuD,EAAAwuK,GAAAjH,GACAiJ,EAAAjJ,EAAAp7F,QAAA3vF,KAAA,SAAA2vF,GACA,WAAAA,EAAAj0F,OACAsF,EAAArC,OAEAqC,EAAAP,KAAAszL,GAAA,CAAgDpkG,WAAmB/d,MAGnEskH,EAAAlD,GAAAV,cAAA,WACA,OAAA0C,GACO6B,GAAA,WACP,OAAAlpG,GACOx+E,IACPwgB,EAAA1yB,IAAA,GAAuC8tL,EAAA1xJ,OAAAl6B,KAAA,WACvC,UACO,SAAAk6B,GACP,OACAA,SAAA,KACA2/J,aAAA3/J,EAAA,SAEO0xJ,EAAAzvJ,MAAAn8B,KAAA,WACP,UACO,SAAAm8B,GACP,OACAA,QAAA,KACA29J,YAAA39J,EAAA,SAGA7L,EAAAs7J,EAAAzvJ,MAAAv8B,UAAAgsL,EAAA1xJ,OAAAt6B,SAAA,4BACAm6L,EAAA,IAAAZ,GAAAvN,EAAAlqF,IAAA,CAAwDs4F,SAAA,IAAAb,GAAAt9L,EAAA8gB,OAAA0zJ,SAAA4pB,QACxDC,EAAAH,EAAAI,SAAA,MAAAJ,EAAAK,MAAAL,EAAAM,KAAA,IAAAN,EAAAM,KAAA,IACAC,EAAAzlL,GAAAhT,EAAArC,QACA8sG,EAAA,CACAx8E,GAAA,YACAtJ,GAAA,WACA,IAAAgxE,EAAAK,GAAAthF,GAAAZ,QAAA9Z,EAAA8gB,QAAA,mBAAAhe,GACA,GAAAo7L,EAAAQ,aAAA,IAAApB,GAAAx6L,EAAAy3B,MAAA2T,SAAA,CACA,IAAAzmB,EAAA3kB,EAAAy3B,MAAA9S,KACAi2K,GAAAj2K,GACAo2K,GAAApnH,EAAAujH,EAAAvyK,GACiBm2K,GAAAn2K,IACjBsoK,EAAA4O,UAAA3E,EAAAvyK,MAIAg3K,EAAAvlL,IAAAlT,EAAAP,KAAAk2F,MAEA/wE,GAAA,WACA6zK,EAAA5zL,MAAA9F,KAAA,SAAA65L,GACA,OAAAA,EAAAjjG,eAIAxwD,GAAAlX,OAAA,CACAuW,UAAAzN,EAAA,GAA4BA,EAAAs5J,IAAA,CAC5BrrJ,UAAA,SAAAhY,EAAAvL,GACA6a,GAAAtP,EAAA3Q,UAAA,UAAAtd,KAAA,SAAA85L,GACA,IAAAC,EAAAD,EAAAxkL,MAAA6zG,cACA4wE,EAAAC,YAAAt3K,EAAA42K,OAGWthK,MAGX7J,EAAA,CACAqmH,SACA/wH,OACAwwK,SACAxoF,aAAA/7E,EACAg8E,kBACAwqF,YAAAtmK,GAEAg+D,EAAAupG,GAAAhpK,EAAA68J,EAAAmL,EAAAtkH,GACAojH,EAAAuD,GAAA5qG,GACA,OACAA,SACAqnG,gBAIAgF,GAAA,SAAAtoH,GACA,IAAAiT,EAAAjT,EAAAE,UAAAc,OACAh0B,EAAA,SAAAj9C,EAAAwsF,GACA,IAAAgsG,EAAA,WACAzU,GAAAx3G,KAAAksH,GACAjsG,KAEAksG,EAAA1qH,GAAAuoD,GAAA,CACA91H,KAAA,cACAiT,KAAA,KACAqxD,SAAA,EACAgyF,MAAA,MACA12E,UAAA,EACA7Q,KAAAjwE,EAAArC,QACS,SAAA+yE,EAAAE,YACTwoH,EAAA3E,KACA4E,EAAA7E,GAAAyE,EAAAt1G,EAAAhS,WACAunH,EAAAtiK,GAAAi+J,GAAA,CACA7oH,SAAA,WACA,OAAA2X,EAAA/R,WAEA2hE,OAAAghD,GAAA6E,EAAAC,GACA72K,KAAAkyK,GAAAj0L,EAAAkjF,EAAAhS,WACAqhH,OAAAhzL,EAAAP,KAAAk1L,GAAAC,GAAA,IAAAuE,EAAAvqH,aACA7c,SAAAknI,EACAzuF,aAAA,qBACAC,gBAAA,GACAwqF,YAAA,GACAC,aAAA,CAAA72K,GAAA+gF,GAAA65F,IACAjoK,WAAA,MAEAwzJ,GAAA7oG,KAAAu9G,GACA,IAAAI,EAAAH,EAAAt0L,IAAAq0L,GACAt5H,GAAAlgD,MAAA45K,IAEA,OAAc57I,SAGd67I,GAAA,SAAA7oH,GACA,IAAAiT,EAAAjT,EAAAE,UAAAc,OACAh0B,EAAA,SAAAj9C,EAAAwsF,GACA,IAAAgsG,EAAA,SAAA5tL,GACAm5K,GAAAx3G,KAAAwsH,GACAvsG,EAAA5hF,IAEAouL,EAAAhrH,GAAAuoD,GAAA,CACA91H,KAAA,MACAiT,KAAA,MACAqxD,SAAA,EACAgyF,MAAA,MACA12E,UAAA,EACA7Q,KAAAjwE,EAAArC,QACS,SAAA+yE,EAAAE,YACT8oH,EAAA1iE,GAAA,CACA91H,KAAA,KACAiT,KAAA,KACAqxD,SAAA,EACAgyF,MAAA,MACA12E,UAAA,EACA7Q,KAAAjwE,EAAArC,QACS,SAAA+yE,EAAAE,WACTwoH,EAAA3E,KACA4E,EAAA7E,GAAA,WACA,OAAAyE,GAAA,IACSt1G,EAAAhS,WACT6nH,EAAA5iK,GAAAi+J,GAAA,CACA7oH,SAAA,WACA,OAAA2X,EAAA/R,WAEA2hE,OAAAghD,GAAA6E,EAAAC,GACA72K,KAAAkyK,GAAAj0L,EAAAkjF,EAAAhS,WACAqhH,OAAAhzL,EAAAP,KAAAk1L,GAAAC,GAAA,IACA8E,EACAD,EAAA7qH,aAEA7c,SAAA,WACA,OAAAknI,GAAA,IAEAzuF,aAAA,uBACAC,gBAAA,GACAwqF,YAAA,GACAC,aAAA,CACA72K,GAAA+gF,GAAA,WACA,OAAA65F,GAAA,KAEA56K,GAAAihF,GAAA,WACA,OAAA25F,GAAA,MAGAjoK,WAAA,MAEAwzJ,GAAA7oG,KAAA69G,GACA,IAAAG,EAAAF,EAAA50L,IAAA20L,GACA55H,GAAAlgD,MAAAi6K,IAEA,OAAcj8I,SAGdk8I,GAAA,SAAAn4K,EAAA3T,GACA,OAAAtP,GAAAkR,GAAA,OAAA5B,EAAA2T,KAEAo4K,GAAA,SAAAppH,EAAA8tB,GACA,OAAAA,EACA,GAEA,CAAAgkE,GAAAt0I,OAAA,CACAkzI,WAAA,CACAE,YAAA,WACA,OAAArhK,EAAAP,KAAAw5B,GAAAvkB,GAAAZ,QAAA28D,EAAAu+E,8BAEAgQ,YAAA,yBACAD,aAAA,0BACAD,gBAAA,8BAEAW,SAAA,iBACAC,QAAA,gBACAI,aAAA,gBACA78H,MAAA,YAIA62J,GAAA,SAAAppH,GACA,IAAAE,EAAAF,EAAAE,UACAH,EAAAC,EAAAD,OACAspH,EAAAx7F,GAAA9tB,GACAyoH,EAAAF,GAAAtoH,GACA8oH,EAAAD,GAAA7oH,GACAhzB,EAAA,SAAAzvB,EAAA/nB,EAAA6vL,GACA,YAAAp3L,IAAAuH,GAAA,YAAAA,EAAAg4F,OACA87F,EAAA/rK,EAAA2iD,EAAAc,OAAAO,QAAAqrB,UAAAy4F,EAAA7vL,EAAAqqL,gBACS5xL,IAAAuH,GAAA,WAAAA,EAAAg4F,OACT87F,EAAA/rK,EAAA2iD,EAAAc,OAAAO,QAAA0vD,SAAAo0D,EAAA7vL,EAAAqqL,WAEA0J,EAAAhsK,EAAA8nK,IAGA7L,EAAA,SAAAj8J,EAAA8nK,GACA,OAAAmE,EAAAjsK,EAAA8nK,IAEAmE,EAAA,SAAAjsK,EAAA8nK,GACA,IAAAxuI,EAAA,SAAAjI,GACA,IAAAqtC,EAAAorG,GAAAz4I,EAAA,CACAy2I,YAAA,WACAvR,GAAAx3G,KAAA2f,UACAopG,EAAAppG,EAAAqnG,eAEWvjH,EAAAG,GAEX,OADA4zG,GAAA7oG,KAAAgR,UACAA,EAAAqnG,aAEA,OAAA/J,GAAAC,QAAA3iI,EAAAt5B,IAEAgsK,EAAA,SAAAhsK,EAAA8nK,GACA,IAAAxuI,EAAA,SAAAjI,EAAA66I,EAAAnQ,GACA,IAAAx7F,EAAA2rG,EACA9F,EAAA,CACArK,gBACAx7F,cACAu7F,eAAAzqI,GAEAqtC,EAAA6pG,GAAAnC,EAAA,CACAlK,OAAAF,GAAAE,OACA4L,YAAA,WACAvR,GAAAx3G,KAAA2f,UACAopG,EAAAppG,EAAAqnG,eAEWpjH,GAGX,OAFA4zG,GAAA7oG,KAAAgR,UACAA,EAAAqnG,YAAAF,QAAAtlG,GACA7B,EAAAqnG,aAEA,OAAA/J,GAAAvsI,KAAA6J,EAAAt5B,IAEA+rK,EAAA,SAAAI,EAAAn5J,EAAA80J,EAAAxF,GACA,IAAAhpI,EAAA,SAAAjI,EAAA66I,EAAAnQ,GACA,IAAAx7F,EAAAorG,GAAAO,EAAAnQ,GACAqQ,EAAAjQ,KACAiK,EAAA,CACArK,gBACAx7F,cACAu7F,eAAAzqI,GAEAg7I,EAAA,WACA,OAAAD,EAAA3vJ,GAAA,SAAAiiD,GACA41E,GAAAl7F,QAAAslB,MAGA4tG,EAAAxD,GAAA1C,EAAA,CACAlK,OAAAF,GAAAE,OACA4L,YAAA,WACAsE,EAAA3vJ,GAAA6iC,GAAAP,MACAyD,EAAAp4B,IAAA,eAAAiiJ,GACAD,EAAAj8I,QACA23I,EAAAwE,EAAAvG,eAEWpjH,EAAA2/G,GACXiK,EAAA5jK,GAAA22C,GAAA5nB,OAAA,CACAqmB,SAAA4E,EAAAc,OAAAE,QACAv9D,IAAA,CACAL,IAAA,MACAya,QAAA,IAEA4+C,0BAAA,GACAH,iBAAAlpC,GAAA9mC,EAAA,CAAA+wB,GAAA,gCAAA5P,GAAAsC,KAAA,SAAAqM,EAAAg0B,GACA7/B,GAAAo5K,EAAA5tG,OAAAyS,SACiBy6F,GAAAppH,EAAAspH,QAUjB,OARAM,EAAAnnL,IAAAsnL,GACAjtH,GAAAX,WAAA4tH,EAAAv5J,EAAA1J,GAAAgjK,EAAA5tG,QAAA3sF,EAAAP,KAAA+iB,OACAu3K,IACAx3B,GAAAl7F,QAAAmzH,GACA/pH,EAAA/lC,GAAA,eAAA4vJ,IAEAC,EAAAvG,YAAAF,QAAAtlG,GACAnxB,GAAAnN,QAAAqqI,EAAA5tG,QACA4tG,EAAAvG,aAEA,OAAA/J,GAAAvsI,KAAA6J,EAAA6yI,IAEAK,EAAA,SAAAh6L,EAAAwsF,GACAusG,EAAA97I,KAAAj9C,EAAA,SAAA4K,GACA4hF,EAAA5hF,MAGAqvL,EAAA,SAAAj6L,EAAAwsF,GACAisG,EAAAx7I,KAAAj9C,EAAA,WACAwsF,OAGA/uC,EAAA,SAAA81I,GACAA,EAAA91I,SAEA,OACAR,OACAwsI,UACAwQ,QACAx8I,QACAu8I,YAGAE,GAAA,CAAyBpyH,MAAAuxH,IAEzB,SAAAc,KACAh/L,EAAA62B,IAAA,kBAAAg+C,GACA,IAAA15C,EAAAqrJ,GAAA75G,MAAAkI,GAAAE,EAAA55C,EAAA45C,aAAAC,EAAA75C,EAAA65C,UAAAsxG,EAAAnrJ,EAAAmrJ,SAAAL,EAAA9qJ,EAAA8qJ,MACA/sF,GAAAvc,SAAA9H,EAAAG,EAAAc,QACA,IAAAmpH,EAAAF,GAAApyH,MAAA,CACAkI,SACAG,cAEA,OACAsxG,WACA4Y,qBAAAlgM,EAAAigM,GACAE,2BAAA,WACA,OAAAvqH,GAAAC,EAAA,CAAoDG,aAAuBD,IAE3E8H,GAAAopG,OAKA+Y,MAz+8BA,CA2+8BC9/K,uDC7+8BDkgL,EAAQ,gCCARA,EAAQ,6BCER,SAAAhhM,GACA,aAEA,IAAAD,EAAA8B,QAAAC,KAAAC,MAAAC,QAAA,yBAEA/B,EAAA,aAEAW,EAAA,SAAAC,GACA,kBACA,OAAAA,IAGAS,EAAA,SAAAnB,GACA,kBAEA,IADA,IAAAI,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,OAAAL,EAAAQ,MAAA,KAAAJ,KAGAmB,EAAAd,GAAA,GACAe,EAAAf,GAAA,GAEA+C,EAAA,WACA,OAAAC,GAEAA,EAAA,WACA,IAAAC,EAAA,SAAAC,GACA,OAAAA,EAAAC,UAEApB,EAAA,SAAAqB,GACA,OAAAA,KAEAC,EAAA,SAAA1B,GACA,OAAAA,GAEA2B,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAE,KAEA6B,GAAA1C,EACA2C,OAAA3C,EACAqC,OAAApC,EACA2C,MAAAL,EACAM,WAAA5B,EACA6B,SAAA,SAAAhD,GACA,UAAAC,MAAAD,GAAA,oCAEAiD,UAAA7D,EAAA,MACA8D,eAAA9D,OAAA+D,GACAC,GAAAX,EACAY,QAAAlC,EACAmC,IAAAnB,EACAoB,KAAA9E,EACA+E,KAAArB,EACAsB,OAAAvD,EACAwD,OAAAvD,EACAwD,OAAAxB,EACAyB,OAAAvB,EACAwB,QAAAxB,EACAyB,QAAA,WACA,UAEAC,SAAA3E,EAAA,WAKA,OAHAsB,OAAAsD,QACAtD,OAAAsD,OAAAtB,GAEAA,EA1CA,GA4CAuB,EAAA,SAAAlC,GACA,IAAAmC,EAAA9E,EAAA2C,GACAoC,EAAA,WACA,OAAAzB,GAEAc,EAAA,SAAA7E,GACA,OAAAA,EAAAoD,IAEAW,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAA,EAAAkB,IAEAa,GAAA,SAAAwB,GACA,OAAArC,IAAAqC,GAEAvB,OAAA1C,EACAoC,OAAArC,EACA4C,MAAAoB,EACAnB,WAAAmB,EACAlB,SAAAkB,EACAjB,UAAAiB,EACAhB,eAAAgB,EACAd,GAAAe,EACAd,QAAAc,EACAb,IAAA,SAAA3E,GACA,OAAAsF,EAAAtF,EAAAoD,KAEAwB,KAAA,SAAA5E,GACAA,EAAAoD,IAEAyB,OACAC,OAAAD,EACAE,OAAAF,EACAG,OAAA,SAAAhF,GACA,OAAAA,EAAAoD,GAAAW,EAAAN,GAEA0B,QAAA,WACA,OAAA/B,IAEAgC,SAAA,WACA,cAAAhC,EAAA,KAEA6B,OAAA,SAAAtB,GACA,OAAAA,EAAAM,GAAAb,IAEA8B,QAAA,SAAAvB,EAAA+B,GACA,OAAA/B,EAAAK,KAAAzC,EAAA,SAAAoE,GACA,OAAAD,EAAAtC,EAAAuC,OAIA,OAAA5B,GAEA6B,EAAA,SAAAlF,GACA,cAAAA,QAAA8D,IAAA9D,EAAA+C,EAAA6B,EAAA5E,IAEAmF,EAAA,CACAP,OACA9B,OACAoC,QAGAgB,EAAA,SAAAhG,GACA,UAAAA,EACA,aAEA,IAAAqB,SAAArB,EACA,iBAAAqB,IAAAiB,MAAAZ,UAAAuE,cAAAjG,MAAAkG,aAAA,UAAAlG,EAAAkG,YAAAC,MACA,QAEA,WAAA9E,IAAAsE,OAAAjE,UAAAuE,cAAAjG,MAAAkG,aAAA,WAAAlG,EAAAkG,YAAAC,MACA,SAEA9E,GAEA+E,EAAA,SAAAC,GACA,gBAAAvG,GACA,OAAAkG,EAAAlG,KAAAuG,IAGAC,EAAAF,EAAA,UACAI,EAAAJ,EAAA,SACAK,EAAAL,EAAA,WACAM,EAAAN,EAAA,YACAO,EAAAP,EAAA,UAEAW,EAAAzE,MAAAZ,UAAAsF,MACAE,EAAA5E,MAAAZ,UAAAyF,KACApD,EAAA,SAAAuD,EAAAlI,GAGA,IAFA,IAAA0H,EAAAQ,EAAA3H,OACA0C,EAAA,IAAAC,MAAAwE,GACAvF,EAAA,EAAqBA,EAAAuF,EAASvF,IAAA,CAC9B,IAAAvB,EAAAsH,EAAA/F,GACAc,EAAAd,GAAAnC,EAAAY,EAAAuB,GAEA,OAAAc,GAEA2B,EAAA,SAAAsD,EAAAlI,GACA,QAAAmC,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAnC,EAAAY,EAAAuB,KAGA6C,EAAA,SAAAkD,EAAAT,GAEA,IADA,IAAAxE,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAsF,EAAA7G,EAAAuB,IACAc,EAAA8E,KAAAnH,GAGA,OAAAqC,GAEA69L,EAAA,SAAA54L,EAAAlI,GACA,OAAAkI,EAAA3H,OACA,SAKA,IAHA,IAAAwgM,EAAA/gM,EAAAkI,EAAA,IACAjF,EAAA,GACAoY,EAAA,GACAlZ,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAwC4B,EAAAuF,EAASvF,IAAA,CACjD,IAAAvB,EAAAsH,EAAA/F,GACA8E,EAAAjH,EAAAY,GACAqG,IAAA85L,IACA99L,EAAA8E,KAAAsT,GACAA,EAAA,IAEA0lL,EAAA95L,EACAoU,EAAAtT,KAAAnH,GAKA,OAHA,IAAAya,EAAA9a,QACA0C,EAAA8E,KAAAsT,GAEApY,GAGA+F,EAAA,SAAAd,EAAAlI,EAAA+I,GAIA,OAHAnE,EAAAsD,EAAA,SAAAtH,GACAmI,EAAA/I,EAAA+I,EAAAnI,KAEAmI,GAEAE,EAAA,SAAAf,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,GAAAsF,EAAA7G,EAAAuB,GACA,OAAA0D,EAAAP,KAAA1E,GAGA,OAAAiF,EAAArC,QAEA2F,EAAA,SAAAjB,GAEA,IADA,IAAAjF,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,IAASvF,EAAA,CAC/C,IAAAiF,EAAAc,EAAA/F,IACA,UAAAb,MAAA,oBAAAa,EAAA,6BAAA+F,GAEAJ,EAAAtH,MAAAyC,EAAAiF,EAAA/F,IAEA,OAAAc,GAEA4B,EAAA,SAAAqD,EAAAlI,GACA,IAAAoJ,EAAAzE,EAAAuD,EAAAlI,GACA,OAAAmJ,EAAAC,IAEAC,EAAA,SAAAnB,GACA,IAAAjF,EAAA0E,EAAAnF,KAAA0F,EAAA,GAEA,OADAjF,EAAAoG,UACApG,GAEA4G,EAAA,SAAA3B,GACA,WAAAA,EAAA3H,OAAAsF,EAAArC,OAAAqC,EAAAP,KAAA4C,EAAA,KAEA4B,EAAA,SAAA5B,GACA,WAAAA,EAAA3H,OAAAsF,EAAArC,OAAAqC,EAAAP,KAAA4C,IAAA3H,OAAA,KAMAia,GAJAlT,EAAApE,MAAA0C,OAAA1C,MAAA0C,KAIA,SAAAxC,EAAAuC,EAAA0F,GACA,YAAAjI,EAAAoX,wBAAA7U,GAAA0F,KAEAoP,EAAA,SAAArX,EAAAuC,GACA,OAAA6U,EAAApX,EAAAuC,EAAA9F,EAAA6a,KAAAC,8BAEAC,EAAA,SAAAxX,EAAAuC,GACA,OAAA6U,EAAApX,EAAAuC,EAAA9F,EAAA6a,KAAAG,iCAEAH,EAAA,CACAD,4BACAG,+BAGA/B,EAAA,SAAAC,GACA,IAAApY,EAAAoY,EACApO,EAAA,WACA,OAAAhK,GAEAqY,EAAA,SAAAtT,GACA/E,EAAA+E,GAEAuT,EAAA,WACA,OAAAH,EAAAnO,MAEA,OACAA,MACAqO,MACAC,UAIA8B,EAAA,SAAAC,EAAA7Y,GACA,QAAAC,EAAA,EAAqBA,EAAA4Y,EAAAxa,OAAoB4B,IAAA,CACzC,IAAAvB,EAAAma,EAAA5Y,GACA,GAAAvB,EAAAoa,KAAA9Y,GACA,OAAAtB,IAKA4J,EAAA,SAAAuQ,EAAAG,GACA,IAAAjY,EAAA6X,EAAAC,EAAAG,GACA,IAAAjY,EACA,OACAkY,MAAA,EACAC,MAAA,GAGA,IAAAC,EAAA,SAAAlZ,GACA,OAAAmZ,OAAAJ,EAAAK,QAAAtY,EAAA,IAAAd,KAEA,OAAAiK,EAAAiP,EAAA,GAAAA,EAAA,KAEAI,EAAA,SAAAC,EAAAR,GACA,IAAAS,EAAApV,OAAA2U,GAAAU,cACA,WAAAF,EAAAnb,OACAsb,IAEArR,EAAAkR,EAAAC,IAEAE,EAAA,WACA,OAAAzP,EAAA,MAEAA,EAAA,SAAA+O,EAAAC,GACA,OACAD,QACAC,UAGAU,EAAA,CACA1P,KACAqP,SACAI,WAGAE,EAAA,OACAC,EAAA,SACAC,EAAA,KACAC,EAAA,QACAC,EAAA,UACAC,EAAA,SACAC,EAAA,SAAAtV,EAAAuV,GACA,kBACA,OAAAA,IAAAvV,IAGAwV,EAAA,WACA,OAAAf,EAAA,CACAc,aAAA9X,EACAiY,QAAAX,EAAAD,aAGAL,EAAA,SAAAkB,GACA,IAAAJ,EAAAI,EAAAJ,QACAG,EAAAC,EAAAD,QACA,OACAH,UACAG,UACAE,OAAAN,EAAAN,EAAAO,GACAM,SAAAP,EAAAL,EAAAM,GACAO,KAAAR,EAAAJ,EAAAK,GACAQ,QAAAT,EAAAH,EAAAI,GACAS,UAAAV,EAAAF,EAAAG,GACAU,SAAAX,EAAAD,EAAAE,KAGAW,EAAA,CACApB,QAAAU,EACAnQ,GAAAoP,EACAO,KAAAtb,EAAAsb,GACAC,OAAAvb,EAAAub,GACAC,GAAAxb,EAAAwb,GACAC,MAAAzb,EAAAyb,GACAC,QAAA1b,EAAA0b,GACAC,OAAA3b,EAAA2b,IAGAc,EAAA,UACAC,GAAA,MACAC,GAAA,UACAC,GAAA,QACAC,GAAA,MACAC,GAAA,UACAC,GAAA,UACAC,GAAA,SAAA1W,EAAAuV,GACA,kBACA,OAAAA,IAAAvV,IAGA2W,GAAA,WACA,OAAAlB,GAAA,CACAF,aAAA9X,EACAiY,QAAAX,EAAAD,aAGAW,GAAA,SAAAE,GACA,IAAAJ,EAAAI,EAAAJ,QACAG,EAAAC,EAAAD,QACA,OACAH,UACAG,UACAmB,UAAAH,GAAAP,EAAAZ,GACAuB,MAAAJ,GAAAN,GAAAb,GACAwB,UAAAL,GAAAL,GAAAd,GACAyB,MAAAN,GAAAH,GAAAhB,GACA0B,QAAAP,GAAAJ,GAAAf,GACA2B,UAAAR,GAAAF,GAAAjB,GACA4B,UAAAT,GAAAD,GAAAlB,KAGA6B,GAAA,CACAtC,QAAA6B,GACAtR,GAAAoQ,GACAU,QAAAzc,EAAAyc,GACAC,IAAA1c,EAAA0c,IACAC,QAAA3c,EAAA2c,IACAC,MAAA5c,EAAA4c,IACAC,IAAA7c,EAAA6c,IACAC,QAAA9c,EAAA8c,IACAC,QAAA/c,EAAA+c,KAGAY,GAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAJ,EAAAR,UAAA,YAAA7C,KAAAuD,GACAG,EAAAL,EAAAR,UAAAY,EACAE,EAAAN,EAAAR,SAAAQ,EAAAP,YACAc,EAAAD,GAAAH,EAAA,oBACAK,EAAAJ,IAAAC,GAAAC,GAAAH,EAAA,4BACAM,EAAAJ,GAAAC,IAAAE,EACAE,EAAAT,EAAAtB,YAAAqB,EAAAR,UAAA,cAAA7C,KAAAuD,GACAS,GAAAF,IAAAD,IAAAE,EACA,OACAN,OAAAhe,EAAAge,GACAC,SAAAje,EAAAie,GACAG,SAAApe,EAAAoe,GACAC,QAAAre,EAAAqe,GACAF,QAAAne,EAAAme,GACAd,UAAAO,EAAAP,UACAD,MAAAQ,EAAAR,MACAoB,UAAAxe,EAAAse,GACAC,UAAAve,EAAAue,KAIAE,GAAA,SAAAC,EAAAZ,GACA,IAAArD,EAAA3U,OAAAgY,GAAA3C,cACA,OAAA3S,EAAAkW,EAAA,SAAAC,GACA,OAAAA,EAAAC,OAAAnE,MAGAoE,GAAA,SAAAC,EAAAhB,GACA,OAAAW,GAAAK,EAAAhB,GAAA5Z,IAAA,SAAA2Z,GACA,IAAA7B,EAAAX,EAAAL,OAAA6C,EAAA5C,eAAA6C,GACA,OACAjC,QAAAgC,EAAAvX,KACA0V,cAIA+C,GAAA,SAAAC,EAAAlB,GACA,OAAAW,GAAAO,EAAAlB,GAAA5Z,IAAA,SAAA0Z,GACA,IAAA5B,EAAAX,EAAAL,OAAA4C,EAAA3C,eAAA6C,GACA,OACAjC,QAAA+B,EAAAtX,KACA0V,cAIAiD,GAAA,CACAJ,iBACAE,aAGArX,GAAA,SAAAyX,EAAAC,GACA,WAAAD,EAAAhd,QAAAid,IAGAM,GAAA,sCACAC,GAAA,SAAAzU,GACA,gBAAA0U,GACA,OAAAlY,GAAAkY,EAAA1U,KAGA4T,GAAA,CACA,CACAxY,KAAA,OACA2U,eAAA,mCACA2D,OAAA,SAAAgB,GACA,OAAAlY,GAAAkY,EAAA,UAAAlY,GAAAkY,EAAA,WAAAlY,GAAAkY,EAAA,WAAAlY,GAAAkY,EAAA,iBAGA,CACAtZ,KAAA,SACA2U,eAAA,CACA,kCACAyE,IAEAd,OAAA,SAAAgB,GACA,OAAAlY,GAAAkY,EAAA,YAAAlY,GAAAkY,EAAA,iBAGA,CACAtZ,KAAA,KACA2U,eAAA,CACA,iCACA,8BAEA2D,OAAA,SAAAgB,GACA,OAAAlY,GAAAkY,EAAA,SAAAlY,GAAAkY,EAAA,aAGA,CACAtZ,KAAA,QACA2U,eAAA,CACAyE,GACA,kCAEAd,OAAAe,GAAA,UAEA,CACArZ,KAAA,UACA2U,eAAA,wCACA2D,OAAAe,GAAA,YAEA,CACArZ,KAAA,SACA2U,eAAA,CACAyE,GACA,iCAEAd,OAAA,SAAAgB,GACA,OAAAlY,GAAAkY,EAAA,WAAAlY,GAAAkY,EAAA,aAAAlY,GAAAkY,EAAA,kBAIAZ,GAAA,CACA,CACA1Y,KAAA,UACAsY,OAAAe,GAAA,OACA1E,eAAA,2CAEA,CACA3U,KAAA,MACAsY,OAAA,SAAAgB,GACA,OAAAlY,GAAAkY,EAAA,WAAAlY,GAAAkY,EAAA,SAEA3E,eAAA,CACA,sCACA,+BACA,wCAGA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,WACA1E,eAAA,uCAEA,CACA3U,KAAA,MACAsY,OAAAe,GAAA,QACA1E,eAAA,oCAEA,CACA3U,KAAA,QACAsY,OAAAe,GAAA,SACA1E,eAAA,IAEA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,SACA1E,eAAA,IAEA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,WACA1E,eAAA,KAGA4E,GAAA,CACAf,SAAA9e,EAAA8e,IACAE,KAAAhf,EAAAgf,KAGAc,GAAA,SAAAhC,EAAAC,GACA,IAAAe,EAAAe,GAAAf,WACAE,EAAAa,GAAAb,OACAnB,EAAAoB,GAAAJ,cAAAC,EAAAhB,GAAAva,KAAAiZ,EAAApB,QAAAoB,EAAA7Q,IACAiS,EAAAqB,GAAAF,SAAAC,EAAAlB,GAAAva,KAAAma,GAAAtC,QAAAsC,GAAA/R,IACAoU,EAAApC,GAAAC,EAAAC,EAAAC,EAAAC,GACA,OACAF,UACAD,KACAmC,eAGAC,GAAA,CAA6BhF,OAAA8E,IAE7B/B,GAAA,SAAAkC,GACA,OAAA7gB,EAAA8gB,OAAAC,WAAAF,GAAAG,SAEAC,GAAAjI,EAAA4H,GAAAhF,OAAA5b,EAAAkhB,UAAAxC,UAAAC,KACAwC,GAAA,WACA,OAAAF,GAAApW,OAGAuO,GAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAC,EAAAF,EAAAG,cAAA,OAEA,GADAD,EAAAE,UAAAN,GACAI,EAAAG,iBAAAH,EAAAI,WAAAnZ,OAAA,EAEA,MADAV,EAAAiM,QAAAzF,MAAA,wCAAA6S,GACA,IAAA5X,MAAA,qCAEA,OAAAqY,GAAAL,EAAAI,WAAA,KAEAE,GAAA,SAAAC,EAAAV,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAS,EAAAV,EAAAG,cAAAM,GACA,OAAAF,GAAAG,IAEAC,GAAA,SAAAC,EAAAb,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAS,EAAAV,EAAAa,eAAAD,GACA,OAAAL,GAAAG,IAEAH,GAAA,SAAAG,GACA,UAAAA,QAAAtV,IAAAsV,EACA,UAAAxY,MAAA,oCAEA,OAAc4Y,IAAAzZ,EAAAqZ,KAEdK,GAAA,SAAAC,EAAAxZ,EAAAyZ,GACA,IAAAjB,EAAAgB,EAAAF,MACA,OAAArU,EAAAD,KAAAwT,EAAAkB,iBAAA1Z,EAAAyZ,IAAA1V,IAAAgV,KAEAY,GAAA,CACAtB,YACAW,WACAG,YACAJ,WACAQ,cASAmH,IANAzhB,EAAA6a,KAAAwG,eACArhB,EAAA6a,KAAAyG,mBACAthB,EAAA6a,KAAA0G,aACAvhB,EAAA6a,KAAA2G,cACAxhB,EAAA6a,KAAA6G,mBACA1hB,EAAA6a,KAAA8G,uBACA3hB,EAAA6a,KAAA+G,cAOAG,IANA/hB,EAAA6a,KAAAiH,UACA9hB,EAAA6a,KAAAmH,4BACAhiB,EAAA6a,KAAAoH,sBACAjiB,EAAA6a,KAAAqH,YACAliB,EAAA6a,KAAAsH,cAEAV,IACArd,GAAA,SAAAie,EAAAC,GACA,IAAAjI,EAAAgI,EAAAhI,MACA,GAAAA,EAAAkI,WAAAR,GACA,SAEA,IAAAS,EAAAnI,EACA,QAAA1V,IAAA6d,EAAAxB,QACA,OAAAwB,EAAAxB,QAAAsB,GACS,QAAA3d,IAAA6d,EAAAC,kBACT,OAAAD,EAAAC,kBAAAH,GACS,QAAA3d,IAAA6d,EAAAE,sBACT,OAAAF,EAAAE,sBAAAJ,GACS,QAAA3d,IAAA6d,EAAAG,mBACT,OAAAH,EAAAG,mBAAAL,GAEA,UAAA7gB,MAAA,mCAKAoC,GAAA,SAAAof,EAAAC,GACA,OAAAD,EAAA5I,QAAA6I,EAAA7I,OAEA8I,GAAA,SAAAF,EAAAC,GACA,IAAAE,EAAAH,EAAA5I,MACAgJ,EAAAH,EAAA7I,MACA,OAAA+I,IAAAC,GAAAD,EAAA9a,SAAA+a,IAEAC,GAAA,SAAAL,EAAAC,GACA,OAAArI,EAAAE,4BAAAkI,EAAA5I,MAAA6I,EAAA7I,QAEAoE,GAAA0C,KAAA1C,QACAyB,GAAAzB,GAAAzB,OAAAsG,GAAAH,GACAg+K,GAAA/8L,GAEAxC,GAAAC,QAAAC,KAAAC,MAAAC,QAAA,0BAEAu0E,GAAA10E,QAAAC,KAAAC,MAAAC,QAAA,0BAEA42E,GAAA/2E,QAAAC,KAAAC,MAAAC,QAAA,mBAEAqhC,GAAA,SAAAC,EAAAC,EAAApjC,GACA,OAAAmjC,EAAAj/B,UAAAk/B,EAAAl/B,SAAA2B,EAAAP,KAAAtF,EAAAmjC,EAAA9+B,WAAA++B,EAAA/+B,aAAAwB,EAAArC,QAGAy9L,GAAA,SAAA9zK,EAAAhU,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACA4U,EAAA7U,EAAA8U,yBAIA,OAHAtpB,EAAAuoB,EAAA,SAAAjL,GACA+L,EAAAjB,YAAA9K,EAAAhI,SAEAK,GAAAZ,QAAAsU,IAGArD,GAAA,WAEA,IADA,IAAAld,EAAA,GACArN,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CqN,EAAArN,GAAAC,UAAAD,GAEA,kBAEA,IADA,IAAAoK,EAAA,GACApK,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CoK,EAAApK,GAAAC,UAAAD,GAEA,GAAAqN,EAAAnN,SAAAkK,EAAAlK,OACA,UAAAe,MAAA,mDAAAoM,EAAAnN,OAAA,WAAAkK,EAAAlK,OAAA,cAEA,IAAAsqB,EAAA,GAIA,OAHAjmB,EAAA8I,EAAA,SAAA3G,EAAA5E,GACA0oB,EAAA9jB,GAAAtG,EAAAgK,EAAAtI,MAEA0oB,IAIA7gB,GAAAjI,OAAAiI,KACAC,GAAA,SAAAC,EAAAlK,GAEA,IADA,IAAAmK,EAAAH,GAAAE,GACA/G,EAAA,EAAAuE,EAAAyC,EAAA5J,OAAyC4C,EAAAuE,EAASvE,IAAA,CAClD,IAAAhB,EAAAgI,EAAAhH,GACAvC,EAAAsJ,EAAA/H,GACAnC,EAAAY,EAAAuB,KAIA2pB,GAAA,SAAA5J,GACA,OAAArc,EAAAD,KAAAsc,EAAAhI,MAAAiO,YAAAxjB,IAAA4V,GAAAZ,UAEAsS,GAAA,SAAA/J,GACA,OAAAvd,EAAAud,EAAAhI,MAAAR,WAAAa,GAAAZ,UAEAuS,GAAA,SAAAhK,EAAAiK,GACA,IAAAC,EAAAlK,EAAAhI,MAAAR,WACA,OAAA7T,EAAAD,KAAAwmB,EAAAD,IAAAxnB,IAAA4V,GAAAZ,UAEA0S,GAAA,SAAAnK,GACA,OAAAgK,GAAAhK,EAAA,IAEAg/K,GAAA,SAAAh/K,GACA,OAAAgK,GAAAhK,IAAAhI,MAAAR,WAAAnZ,OAAA,IAIAgsB,IAFA3B,GAAA,oBAEA,SAAA4B,EAAAtK,GACA,IAAAuK,EAAAX,GAAAU,GACAC,EAAA7nB,KAAA,SAAAa,GACAA,EAAAyU,MAAAwS,aAAAxK,EAAAhI,MAAAsS,EAAAtS,WAGA2S,GAAA,SAAAf,EAAA5J,GACA4J,EAAA5R,MAAA8S,YAAA9K,EAAAhI,QAGAgT,GAAA,SAAAV,EAAAW,GACAvoB,EAAAuoB,EAAA,SAAAvsB,GACA2rB,GAAAC,EAAA5rB,MAGAwsB,GAAA,SAAAtB,EAAAqB,GACAvoB,EAAAuoB,EAAA,SAAAvsB,GACAisB,GAAAf,EAAAlrB,MAIA4sB,GAAA,SAAAtL,GACA,IAAAhI,EAAAgI,EAAAhI,MACA,OAAAA,EAAAiO,YACAjO,EAAAiO,WAAAsF,YAAAvT,IAIAinL,GAAA,SAAA7qH,EAAAjtD,EAAAnH,GACA,OAAAo0D,EAAAya,KAAA,gBACA1nE,SACAnH,aAIAuqF,GAAA,qBAAA5sG,EAAA8gB,OAAA9gB,EAAA8gB,OAAAkH,SAAA,eAAAA,GAEApW,GAAA,SAAAiS,EAAAvK,GAEA,IADA,IAAAxV,OAAAa,IAAA2U,GAAA,OAAAA,IAAAszF,GACAtqG,EAAA,EAAqBA,EAAAuhB,EAAAnjB,aAAAiE,IAAAb,GAAA,OAAAA,IAAmDxB,EACxEwB,IAAA+f,EAAAvhB,IAEA,OAAAwB,GAEA9B,GAAA,SAAAQ,EAAA8W,GACA,IAAAuK,EAAArhB,EAAAgwB,MAAA,KACA,OAAA5gB,GAAAiS,EAAAvK,IAGAioL,GAAA,SAAAr6L,EAAAoS,GACA,OAAAtX,GAAAkF,EAAAoS,IAEA9U,GAAA,SAAA0C,EAAAoS,GACA,IAAAkoL,EAAAD,GAAAr6L,EAAAoS,GACA,QAAA3U,IAAA68L,GAAA,OAAAA,EACA,UAAA//L,MAAAyF,EAAA,kCAEA,OAAAs6L,GAEAC,GAAA,CAAoBj9L,aAEpBk9L,GAAA,SAAApoL,GACA,OAAAmoL,GAAAj9L,SAAA,cAAA8U,IAEAtS,GAAA,SAAAjG,GACA,IAAAuY,EAAAtX,GAAA,4BAAAjB,GACA,OAAA2gM,GAAApoL,GAAA7W,UAAAuE,cAAAjG,IAEA4gM,GAAA,CAAuB36L,kBAEvBm1E,GAAAt6E,QAAAC,KAAAC,MAAAC,QAAA,wBAEAmgF,GAAAtgF,QAAAC,KAAAC,MAAAC,QAAA,sBAEA4/L,GAAA,SAAA3nL,GACA,OAAAA,GAAA,IAAAA,EAAAsI,UAEAs/K,GAAA,SAAA5nL,GACA,OAAAA,GAAA,eAAAkB,KAAAlB,EAAAgO,WAEA65K,GAAA,SAAA7nL,GACA,OAAAA,GAAA,YAAAkB,KAAAlB,EAAAgO,WAEA85K,GAAA,SAAA9nL,GACA,OAAAA,GAAA,eAAAkB,KAAAlB,EAAAgO,WAEA+5K,GAAA,SAAA/nL,GACA,OAAAA,GAAA,YAAAkB,KAAAlB,EAAAgO,WAEAg6K,GAAA,SAAAhoL,GACA,OAAAA,GAAA,YAAAkB,KAAAlB,EAAAgO,WAEAi6K,GAAA,SAAAjoL,GACA,OAAAA,GAAA,OAAAA,EAAAgO,UAEAk6K,GAAA,SAAAloL,GACA,OAAAA,EAAAqO,WAAAkE,aAAAvS,GAEAmoL,GAAA,SAAAnoL,GACA,OAAAA,EAAAqO,WAAA+4K,YAAApnL,GAEAooL,GAAA,SAAA5rH,EAAAx8D,GACA,OAAAA,KAAAw8D,EAAAjiE,OAAA8tL,uBAAAroL,EAAAgO,WAEA8wD,GAAA,SAAA9+D,EAAAsoL,GACA,OAAAtoL,KAAAgO,YAAAs6K,GAEAC,GAAA,SAAAnoL,EAAAJ,GACA,QAAAioL,GAAAjoL,OAGAI,EAAA0+D,QAAA9+D,EAAAkS,cAAA+1K,GAAAjoL,EAAAwoL,mBAKAC,GAAA,SAAAroL,EAAAigE,EAAAqoH,GACA,IAAAn1K,EAAAnT,EAAAqoL,QAAApoH,GACA,QAAAqoH,GAAAtoL,EAAAu5E,OAAA,+BAAAtZ,GAAA55E,OAAA,IAGA8sB,GAEAo1K,GAAA,SAAAvoL,EAAAigE,GACA,OAAAjgE,EAAAwoL,UAAAvoH,EAAAjgE,EAAAw/D,YAEAipH,GAAA,CACAlB,cACAC,cACAC,cACAE,gBACAD,kBACAE,mBACAC,QACAC,gBACAC,eACAC,eACAtpH,WACAypH,aACAE,WACAE,kBAGAG,GAAA,SAAAtsH,GACA,IAAAusH,EAAAvsH,EAAA5kC,UAAAd,UAAA,GACA,OAAA0lC,EAAAp8D,IAAA4oL,UAAAD,EAAA,WAAAE,GAAAzsH,EAAAusH,KAEAG,GAAA,SAAAC,EAAAC,GACA,OAAAD,GAAA,IAAAC,EAAA3iM,QAAA2iM,EAAA,KAAAD,GAEAE,GAAA,SAAAF,GACA,OAAAjhH,GAAAohH,KAAAH,EAAAtgL,iBAAA,qBAAAw3D,GACA,OAAAwoH,GAAAjB,WAAAvnH,MAGAkpH,GAAA,SAAA/sH,GACA,IAAA2sH,EAAAL,GAAAtsH,GACA4sH,EAAA5sH,EAAA5kC,UAAA4xJ,oBACA,OAAAN,GAAAC,EAAAC,GACAC,GAAAF,GAEAjhH,GAAAohH,KAAAF,EAAA,SAAA/oH,GACA,OAAAwoH,GAAAjB,WAAAvnH,IAAA8oH,IAAA9oH,KAIAopH,GAAA,SAAAjtH,EAAAsqE,GACA,IAAA4iD,EAAAxhH,GAAAr9E,IAAAi8I,EAAA,SAAAzmE,GACA,IAAAspH,EAAAntH,EAAAp8D,IAAA4oL,UAAA3oH,EAAA,WAAA4oH,GAAAzsH,EAAA6D,IACA,OAAAspH,GAAAtpH,IAEA,OAAA6B,GAAArsD,OAAA6zK,IAEAE,GAAA,SAAAptH,GACA,IAAA4sH,EAAA5sH,EAAA5kC,UAAA4xJ,oBACA,OAAAthH,GAAAohH,KAAAG,GAAAjtH,EAAA4sH,GAAA,SAAA90D,GACA,OAAAu0D,GAAAf,eAAAxzD,MAGAu1D,GAAA,SAAArtH,GACA,OAAAtxE,EAAA0+L,GAAAptH,GAAAqsH,GAAAd,eAEAkB,GAAA,SAAAzsH,EAAA6D,GACA,IAAAypH,EAAAttH,EAAAp8D,IAAAs3E,WAAArX,EAAA,SACAthC,EAAA+qJ,EAAArjM,OAAA,EAAAqjM,EAAA,GAAAttH,EAAAhuD,UACA,OAAAuwB,GAEAgrJ,GAAA,SAAAvtH,EAAA6D,GACA,IAAA2pH,EAAAxtH,EAAAp8D,IAAAs3E,WAAArX,EAAA,QAAA4oH,GAAAzsH,EAAA6D,IACA,OAAArwE,EAAAg6L,IAEAC,GAAA,SAAAztH,GACA,IAAA0tH,EAAAH,GAAAvtH,IAAA5kC,UAAAd,YACAqzJ,EAAAj/L,EAAAsxE,EAAA5kC,UAAA4xJ,oBAAAX,GAAAhB,YACA,OAAAqC,EAAA7+L,UAAAjE,OAAA+iM,IAEAC,GAAA,SAAA5tH,GACA,IAAA6tH,EAAAJ,GAAAztH,GACA,OAAA8tH,GAAA9tH,EAAA6tH,IAEAC,GAAA,SAAA9tH,EAAA+tH,GACA,IAAAC,EAAA3/L,EAAA0/L,EAAA,SAAA3wK,GACA,OAAAmwK,GAAAvtH,EAAA5iD,GAAAvvB,MAAAuvB,KAEA,OAAAsoD,GAAArsD,OAAA20K,IAEAC,GAAA,SAAAjuH,GACA,IAAA5iD,EAAAkvK,GAAAtsH,GACA,OAAAkrH,GAAA36L,cAAA6sB,IAEAwe,GAAA,CACAqyJ,UACA3B,iBACAS,uBACAK,wBACAX,yBACAY,sBACAO,yBAGAM,GAAA,SAAAluH,EAAAmuH,GACA,IAGA3qL,EAAA4qL,EAAAC,EAAAC,EAHA1qL,EAAAo8D,EAAAp8D,IACAkoL,EAAA9rH,EAAAjiE,OAAAwwL,mBACA52K,EAAA/T,EAAA4qL,iBAcA,GAZAxuH,EAAAa,SAAA4tH,oBACAJ,EAAAruH,EAAAa,SAAA4tH,mBAEAJ,IACAD,EAAAxqL,EAAAsuB,OAAAm8J,GACAD,EAAAM,UAAA1uH,EAAAa,SAAA4tH,mBACA7qL,EAAA+qL,WAAAP,EAAApuH,EAAAa,SAAA+tH,yBAEAvC,GAAA/pH,QAAA6rH,EAAAp4K,WAAA+1K,IACAn0K,EAAAjB,YAAA03K,IAGAD,EACA,MAAA3qL,EAAA2qL,EAAAp4K,WAAA,CACA,IAAAvE,EAAAhO,EAAAgO,SACA88K,GAAA,SAAA98K,GAAA,aAAAhO,EAAA+U,aAAA,mBACA+1K,GAAA,GAEAjC,GAAA/pH,QAAA9+D,EAAAsoL,IACAn0K,EAAAjB,YAAAlT,GACA4qL,EAAA,MAEAC,GACAD,IACAA,EAAAxqL,EAAAsuB,OAAAm8J,GACA12K,EAAAjB,YAAA03K,IAEAA,EAAA13K,YAAAlT,IAEAmU,EAAAjB,YAAAlT,GAYA,OAPAw8D,EAAAa,SAAA4tH,kBAGAH,GACAF,EAAA13K,YAAA9S,EAAAsuB,OAAA,MAAkD28J,iBAAA,OAHlDl3K,EAAAjB,YAAA9S,EAAAsuB,OAAA,OAMAva,GAGAlnB,GAAA,SAAAmb,GACA,IAAAjf,EAAAif,EAAAhI,MAAA4N,SACA,OAAA7kB,EAAA2Y,eAEA3U,GAAA,SAAAib,GACA,OAAAA,EAAAhI,MAAAkI,UAEA2F,GAAA,SAAA9lB,GACA,gBAAAigB,GACA,OAAAjb,GAAAib,KAAAjgB,IAGA+lB,GAAAD,GAAAzG,IAEAiN,GAAA,SAAArU,EAAAvP,EAAAjK,GACA,KAAAwG,EAAAxG,IAAA2G,EAAA3G,IAAA6G,EAAA7G,IAIA,MADAb,EAAAiM,QAAAzF,MAAA,iCAAAsE,EAAA,YAAAjK,EAAA,cAAAwZ,GACA,IAAA5Y,MAAA,kCAHA4Y,EAAAsU,aAAA7jB,EAAAjK,EAAA,KAMAguB,GAAA,SAAAxM,EAAAyM,GACA,IAAAzU,EAAAgI,EAAAhI,MACAjQ,GAAA0kB,EAAA,SAAAlpB,EAAAtC,GACAorB,GAAArU,EAAA/W,EAAAsC,MAGAuT,GAAA,SAAAkJ,GACA,OAAAlZ,EAAAkZ,EAAAhI,MAAAqa,WAAA,SAAAxrB,EAAAsvB,GAEA,OADAtvB,EAAAsvB,EAAAtxB,MAAAsxB,EAAA33B,MACAqI,GACO,KAGPqwB,GAAA,SAAAlf,GACA,YAAA1V,IAAA0V,EAAAmf,OAAA/xB,EAAA4S,EAAAmf,MAAAC,mBAGAC,GAAA,SAAArf,EAAAsf,EAAA94B,GACA,IAAAwG,EAAAxG,GAEA,MADAb,EAAAiM,QAAAzF,MAAA,qCAAAmzB,EAAA,YAAA94B,EAAA,cAAAwZ,GACA,IAAA5Y,MAAA,+BAAAZ,GAEA04B,GAAAlf,IACAA,EAAAmf,MAAAI,YAAAD,EAAA94B,IAGAqY,GAAA,SAAAmJ,EAAAsX,EAAA94B,GACA,IAAAwZ,EAAAgI,EAAAhI,MACAqf,GAAArf,EAAAsf,EAAA94B,IAGA2tH,GAAA,SAAAn/F,EAAAC,GACA,OAAA5U,GAAAZ,QAAAuV,EAAAhV,MAAAoU,UAAAa,KAEA9iB,GAAA,SAAA6iB,GACA,OAAAm/F,GAAAn/F,GAAA,IAEAk2K,GAAA,SAAAl2K,EAAArV,GACA,IAAAzN,EAAAmO,GAAAX,QAAAC,GACA0a,EAAAvb,GAAAkW,GAEA,OADAR,GAAAtiB,EAAAmoB,GACAnoB,GAEAi5L,GAAA,SAAAn2K,EAAArV,GACA,IAAAzN,EAAAg5L,GAAAl2K,EAAArV,GACA0S,GAAA2C,EAAA9iB,GACA,IAAAwhB,EAAA3B,GAAAiD,GAGA,OAFA9B,GAAAhhB,EAAAwhB,GACAJ,GAAA0B,GACA9iB,GAGAk5L,GAAA,SAAAx5K,EAAAI,GACAW,GAAAf,EAAAgQ,KAAA5P,EAAAwH,OAEA6xK,GAAA,SAAAC,GACA,QAAArjM,EAAA,EAAqBA,EAAAqjM,EAAAjlM,OAAqB4B,IAC1CmjM,GAAAE,EAAArjM,EAAA,GAAAqjM,EAAArjM,KAGAsjM,GAAA,SAAAC,EAAAC,GACAziK,GAAAp5B,EAAA47L,GAAA77L,EAAA87L,GAAAL,KAEAM,GAAA,SAAAzsL,EAAA0sL,GACA,IAAAjiH,EAAA,CACAlwD,KAAAnZ,GAAAX,QAAAisL,EAAA1sL,GACA2iB,KAAAvhB,GAAAX,QAAA,KAAAT,IAGA,OADA0T,GAAA+2D,EAAAlwD,KAAAkwD,EAAA9nD,MACA8nD,GAEAkiH,GAAA,SAAA3sL,EAAA2pI,EAAAt6I,GAEA,IADA,IAAAg9L,EAAA,GACArjM,EAAA,EAAqBA,EAAAqG,EAAUrG,IAC/BqjM,EAAAz9L,KAAA69L,GAAAzsL,EAAA2pI,EAAA+iD,WAEA,OAAAL,GAEAO,GAAA,SAAAP,EAAA1iD,GACA,QAAA3gJ,EAAA,EAAqBA,EAAAqjM,EAAAjlM,OAAA,EAAyB4B,IAC9C4W,GAAAysL,EAAArjM,GAAA25B,KAAA,0BAEAhyB,EAAA07L,GAAA5gM,KAAA,SAAAg/E,GACAl1D,GAAAk1D,EAAAlwD,KAAAovH,EAAAkjD,gBACAt3K,GAAAk1D,EAAA9nD,KAAAgnH,EAAAmjD,gBACA74K,GAAAw2D,EAAA9nD,KAAAgnH,EAAAh1H,YAGAo4K,GAAA,SAAAtiH,EAAAk/D,GACA/7I,GAAA68E,EAAAlwD,QAAAovH,EAAA+iD,WACAjiH,EAAAlwD,KAAA2xK,GAAAzhH,EAAAlwD,KAAAovH,EAAA+iD,WAEAn3K,GAAAk1D,EAAAlwD,KAAAovH,EAAAkjD,iBAEAltG,GAAA,SAAA3/E,EAAAkf,EAAAvK,GACA,IAAAgO,EAAAvhB,GAAAX,QAAA,KAAAT,GAGA,OAFAuV,GAAAoN,EAAAzD,GACAjL,GAAA0O,EAAAhO,GACAgO,GAEAqqK,GAAA,SAAAviH,EAAA9nD,GACAjP,GAAA+2D,EAAAlwD,KAAAoI,GACA8nD,EAAA9nD,QAEAsqK,GAAA,SAAAjtL,EAAAktL,EAAAvjD,GACA,IAAAwjD,EAAAD,EAAAz+L,MAAA,EAAAk7I,EAAAyjD,OAMA,OALAz8L,EAAAw8L,GAAA1hM,KAAA,SAAAg/E,GACA,IAAA9nD,EAAAg9D,GAAA3/E,EAAA2pI,EAAAmjD,eAAAnjD,EAAAh1H,SACAq4K,GAAAviH,EAAA9nD,GACAoqK,GAAAtiH,EAAAk/D,KAEAwjD,GAEAE,GAAA,SAAArtL,EAAAktL,EAAAvjD,GACA,IAAA0iD,EAAAM,GAAA3sL,EAAA2pI,IAAAyjD,MAAAF,EAAA9lM,QAIA,OAHAglM,GAAAC,GACAO,GAAAP,EAAA1iD,GACA2iD,GAAAY,EAAAb,GACAa,EAAAnlM,OAAAskM,IAEAiB,GAAA,SAAAttL,EAAAutL,GACA,IAAAL,EAAAr9L,EAAA09L,EAAA,SAAAL,EAAAvjD,GACA,OAAAA,EAAAyjD,MAAAF,EAAA9lM,OAAAimM,GAAArtL,EAAAktL,EAAAvjD,GAAAsjD,GAAAjtL,EAAAktL,EAAAvjD,IACO,IACP,OAAAj5I,EAAAw8L,GAAA1hM,IAAA,SAAAi/E,GACA,OAAAA,EAAAlwD,QAIAizK,GAAA,SAAAl+K,GACA,OAAAu4K,GAAAv4K,EAAA,UAEAm+K,GAAA,SAAAn+K,GACA,OAAA4D,GAAA5D,GAAA9jB,IAAAgiM,IAAAxiM,OAAA,IAEA0iM,GAAA,SAAAp+K,GACA,OAAAy4K,GAAAz4K,GAAA9jB,IAAAgiM,IAAAxiM,OAAA,IAGA2iM,GAAA,SAAAhkD,GACA,OAAAA,EAAAyjD,MAAA,GAEA97G,GAAA,SAAAq4D,GACA,OAAAA,EAAAr4D,YAEAs8G,GAAA,SAAAC,GACA,IAAAp5K,EAAA3B,GAAA+6K,GACAl5K,EAAA+4K,GAAAG,GAAAp5K,EAAAhmB,MAAA,MAAAgmB,EACA,OAAAjpB,EAAAmpB,EAAAzhB,KAEA46L,GAAA,SAAAD,EAAAT,EAAA97G,GACA,OAAA3+D,GAAAk7K,GAAAhiM,OAAAgjB,IAAArjB,IAAA,SAAA+uB,GACA,OACA6yK,QACA97G,aACA38D,QAAAi5K,GAAAC,GACAf,eAAAjtL,GAAAguL,GACAhB,eAAAhtL,GAAA0a,GACAmyK,SAAA9+L,GAAA2sB,OAKAwzK,GAAA,SAAAC,EAAArkD,GACA,OAAAqkD,GACA,aACArkD,EAAAyjD,QACA,MACA,cACAzjD,EAAAyjD,QACA,MACA,cACAzjD,EAAAyjD,MAAA,IAIAhkM,GAAAR,OAAAO,UAAAC,eACA2J,GAAA,SAAAC,EAAAC,GACA,OAAAA,GAEAI,GAAA,SAAAC,GACA,kBAEA,IADA,IAAAC,EAAA,IAAAxJ,MAAA5C,UAAAC,QACA4B,EAAA,EAAuBA,EAAAuK,EAAAnM,OAAoB4B,IAC3CuK,EAAAvK,GAAA7B,UAAA6B,GAEA,OAAAuK,EAAAnM,OACA,UAAAe,MAAA,4BAGA,IADA,IAAAqL,EAAA,GACAtJ,EAAA,EAAuBA,EAAAqJ,EAAAnM,OAAoB8C,IAAA,CAC3C,IAAAuJ,EAAAF,EAAArJ,GACA,QAAAsH,KAAAiC,EACArK,GAAAC,KAAAoK,EAAAjC,KACAgC,EAAAhC,GAAA8B,EAAAE,EAAAhC,GAAAiC,EAAAjC,KAIA,OAAAgC,IAGAE,GAAAL,GAAAN,IAEAk7L,GAAA,SAAAz7L,EAAA49C,GACA59C,EAAAk6L,SAAAt8I,EAAAs8I,SACAl6L,EAAAq6L,eAAAn5L,GAAA,GAAsC08C,EAAAy8I,iBAEtCqB,GAAA,SAAAX,EAAA5mL,GAEA,IADA,IAAAymL,EAAAG,EAAA5mL,GAAAymL,MACApkM,EAAA2d,EAAA,EAA6B3d,GAAA,EAAQA,IAAA,CACrC,GAAAukM,EAAAvkM,GAAAokM,UACA,OAAA1gM,EAAAP,KAAAohM,EAAAvkM,IAEA,GAAAukM,EAAAvkM,GAAAokM,QACA,MAGA,OAAA1gM,EAAArC,QAEA8jM,GAAA,SAAAZ,GACA9hM,EAAA8hM,EAAA,SAAA5jD,EAAA3gJ,GACAklM,GAAAX,EAAAvkM,GAAAyC,KAAA,SAAA2iM,GACAH,GAAAtkD,EAAAykD,QAKAC,GAAA,SAAAjB,EAAAkB,EAAAC,EAAA5rK,GACA,OAAAzP,GAAAyP,GAAA92B,OAAA2hM,IAAA3iM,KAAA,WACAyjM,EAAA7iM,KAAA,SAAA8sC,GACAhuC,GAAAguC,EAAA5xB,MAAAgc,IACA4rK,EAAA3uL,KAAA,KAGA,IAAA4uL,EAAAV,GAAAnrK,EAAAyqK,EAAAmB,EAAAh9L,OACA+8L,EAAA7iM,KAAA,SAAA8sC,GACAhuC,GAAAguC,EAAA6+E,IAAAz0F,IACA4rK,EAAA3uL,KAAA,KAGA,IAAA6uL,EAAA1G,GAAAplK,GAAA92B,OAAA2hM,IAAAhiM,IAAA,SAAA+uB,GACA,OAAAm0K,GAAAtB,EAAAkB,EAAAC,EAAAh0K,KACSvvB,MAAA,IACT,OAAAwjM,EAAAxiM,UAAAjE,OAAA0mM,IACO,SAAAl0K,GACP,OAAAm0K,GAAAtB,EAAAkB,EAAAC,EAAAh0K,MAGAm0K,GAAA,SAAAtB,EAAAkB,EAAAC,EAAAh0K,GACA,OAAA7uB,EAAAonB,GAAAyH,GAAA,SAAAxR,GACA,IAAA4lL,EAAAnB,GAAAzkL,GAAA2lL,GAAAL,GACAO,EAAAxB,EAAA,EACA,OAAAuB,EAAAC,EAAAN,EAAAC,EAAAxlL,MAGA8lL,GAAA,SAAA3D,EAAAoD,GACA,IAAAC,EAAA7uL,GAAA,GACAovL,EAAA,EACA,OAAAtjM,EAAA0/L,EAAA,SAAA3wK,GACA,OACAw0K,WAAAx0K,EACAgzK,QAAAmB,GAAAI,EAAAR,EAAAC,EAAAh0K,OAKAy0K,GAAA,SAAA7xH,EAAAowH,GACA,OAAA/hM,EAAA+hM,EAAA,SAAA5jD,GACA,IAAAh1H,EAAAmzK,GAAAn+C,EAAAh1H,SACA,OAAAvT,GAAAZ,QAAA6qL,GAAAluH,EAAAxoD,EAAA5T,WAGAkuL,GAAA,SAAA9xH,EAAAowH,GAEA,OADAY,GAAAZ,GACAD,GAAAnwH,EAAA+xH,gBAAA3B,GAAAvhM,WAEAmjM,GAAA,SAAAhyH,EAAAowH,GACA,OAAA7hM,EAAAi8L,EAAA4F,EAAAI,IAAA,SAAAJ,GACA,IAAA6B,EAAA1+L,EAAA68L,GAAA/hM,IAAAmiM,IAAA3iM,OAAA,GACA,OAAAokM,EAAAH,GAAA9xH,EAAAowH,GAAAyB,GAAA7xH,EAAAowH,MAGA8B,GAAA,SAAA9B,EAAAS,GACAviM,EAAAI,EAAA0hM,EAAAj8G,IAAA,SAAAq4D,GACA,OAAAokD,GAAAC,EAAArkD,MAGA2lD,GAAA,SAAAnyH,GACA,IAAAoyH,EAAA/jM,EAAAutC,GAAAwxJ,qBAAAptH,GAAA/7D,GAAAZ,SACA,OAAAupB,GAAAj6B,EAAAy/L,EAAAvnM,EAAAylM,KAAA39L,EAAAI,EAAAq/L,GAAAvnM,EAAAylM,KAAA,SAAA9mL,EAAAywG,GACA,OACAzwG,QACAywG,UAIAo4E,GAAA,SAAAryH,EAAA+tH,EAAA8C,GACA,IAAAyB,EAAAZ,GAAA3D,EAAAoE,GAAAnyH,IACA1xE,EAAAgkM,EAAA,SAAAC,GACAL,GAAAK,EAAAnC,QAAAS,GACA,IAAA2B,EAAAR,GAAAhyH,EAAAuyH,EAAAnC,SACA9hM,EAAAkkM,EAAA,SAAAC,GACA5H,GAAA7qH,EAAA,WAAA6wH,EAAA,2BAAA4B,EAAA7uL,SAEAgT,GAAA27K,EAAAX,WAAAY,GACAt7K,GAAAq7K,EAAAX,eAIAhlH,GAAAxhF,QAAAC,KAAAC,MAAAC,QAAA,wBAEAgoF,GAAA3G,GAAA2G,IACAm/G,GAAA,SAAA1yH,EAAA2yH,EAAAjC,GACA,IAAAkC,EAAAj7K,EAAAk7K,EAAArvL,EAAAsvL,EACAC,EAAA,SAAAj3B,GACApwF,GAAAp9E,KAAAukM,EAAA,SAAArvL,GACAs4J,EAAAjqJ,WAAAuE,aAAA5S,EAAAktL,EAAA7+K,cAEA0hE,GAAAr8D,OAAA4kJ,IAQA,IANA+2B,EAAAt/G,GAAA4J,OAAA,iCAAAw1G,GACAG,EAAA5E,GAAAluH,EAAA0wH,GACAkC,EAAAr/G,GAAAxO,YACA6tH,EAAA72J,cAAA20J,GACAkC,EAAAz2J,YAAAw2J,GACAh7K,EAAAi7K,EAAAjvH,kBACAngE,EAAAmU,EAAA5B,WAAsCvS,EAAMA,IAAAuS,WAC5C,UAAAvS,EAAAgO,UAAAwuD,EAAAp8D,IAAAqoL,QAAAzoL,GAAA,CACA+vE,GAAAr8D,OAAA1T,GACA,MAGAw8D,EAAAp8D,IAAAqoL,QAAAt0K,IACA47D,GAAAy/G,YAAAr7K,EAAAg7K,GAEAp/G,GAAAy/G,YAAAF,EAAAH,GACAtG,GAAAJ,QAAAjsH,EAAAp8D,IAAA8sL,EAAA7+K,aACAkhL,EAAArC,EAAA7+K,YAEA0hE,GAAAr8D,OAAAw5K,GACArE,GAAAJ,QAAAjsH,EAAAp8D,IAAA+uL,IACAp/G,GAAAr8D,OAAAy7K,IAGAM,GAAA,CAAqBP,cAErBQ,GAAA,SAAAlzH,EAAAx6C,GACAklK,GAAAllK,EAAA,MACAupK,GAAAvpK,EAAA,MACOklK,GAAAllK,EAAA,OACPhQ,GAAAgQ,GAAAl3B,KAAA,SAAA6kM,GACA,OAAAF,GAAAP,UAAA1yH,EAAAmzH,EAAAvvL,MAAA4hB,EAAA5hB,UAIAwvL,GAAA,SAAA5tK,GACAklK,GAAAllK,EAAA,OACAupK,GAAAvpK,EAAA,OAGA6tK,GAAA,SAAArzH,EAAA6wH,EAAAyC,GAEAhlM,EAAAglM,EADA,WAAAzC,EACAuC,GAEA,SAAA5tK,GACA,OAAA0tK,GAAAlzH,EAAAx6C,MAKA+tK,GAAA,SAAAx7K,EAAAmT,GACA,GAAAmhK,GAAAlB,WAAApzK,GACA,OACAA,YACAmT,UAGA,IAAA1nB,EAAArY,GAAAs4E,QAAA1rD,EAAAmT,GACA,OAAAmhK,GAAAlB,WAAA3nL,GACA,CACAuU,UAAAvU,EACA0nB,UAAAnT,EAAA3U,WAAAnZ,OAAAuZ,EAAAwN,KAAA/mB,OAAA,GAEOuZ,EAAAwoL,iBAAAK,GAAAlB,WAAA3nL,EAAAwoL,iBACP,CACAj0K,UAAAvU,EAAAwoL,gBACA9gK,OAAA1nB,EAAAwoL,gBAAAh7K,KAAA/mB,QAEOuZ,EAAAkS,aAAA22K,GAAAlB,WAAA3nL,EAAAkS,aACP,CACAqC,UAAAvU,EAAAkS,YACAwV,OAAA,GAGA,CACAnT,YACAmT,WAGAsoK,GAAA,SAAAn4J,GACA,IAAAo4J,EAAAp4J,EAAAupC,aACA8uH,EAAAH,GAAAl4J,EAAAC,eAAAD,EAAAwB,aACA42J,EAAA53J,SAAA63J,EAAA37K,UAAA27K,EAAAxoK,QACA,IAAAyoK,EAAAJ,GAAAl4J,EAAAyB,aAAAzB,EAAA0B,WAEA,OADA02J,EAAAv3J,OAAAy3J,EAAA57K,UAAA47K,EAAAzoK,QACAuoK,GAEAG,GAAA,CACAL,sBACAC,mBAGAK,GAAA,SAAA7zH,EAAA6wH,GACA,IAAA9C,EAAA1/L,EAAAutC,GAAAgyJ,qBAAA5tH,GAAA/7D,GAAAZ,SACAiwL,EAAAjlM,EAAAutC,GAAAyxJ,mBAAArtH,GAAA/7D,GAAAZ,SACAywL,GAAA,EACA,GAAA/F,EAAA9jM,QAAAqpM,EAAArpM,OAAA,CACA,IAAA8pM,EAAA/zH,EAAA5kC,UAAA44J,cACA3B,GAAAryH,EAAA+tH,EAAA8C,GACAwC,GAAArzH,EAAA6wH,EAAAyC,GACAtzH,EAAA5kC,UAAA64J,eAAAF,GACA/zH,EAAA5kC,UAAA2nI,OAAA6wB,GAAAJ,eAAAxzH,EAAA5kC,UAAAkrC,WACAtG,EAAAub,cACAu4G,GAAA,EAEA,OAAAA,GAEAI,GAAA,SAAAl0H,GACA,OAAA6zH,GAAA7zH,EAAA,WAEAm0H,GAAA,SAAAn0H,GACA,OAAA6zH,GAAA7zH,EAAA,YAEAo0H,GAAA,SAAAp0H,GACA,OAAA6zH,GAAA7zH,EAAA,YAGAgT,GAAA5nF,QAAAC,KAAAC,MAAAC,QAAA,+BAEA8oM,GAAAznH,GAAA2G,IACA+gH,GAAA,SAAAj5J,GACA,IAAA04J,EAAA,GACAQ,EAAA,SAAA/qL,GACA,IAAA62B,EAAAtoB,EAAAmT,EACAnT,EAAAsjB,EAAA7xB,EAAA,iCACA0hB,EAAAmQ,EAAA7xB,EAAA,2BACA,IAAAuO,EAAAjM,WACAu0B,EAAAg0J,GAAAniK,OAAA,QAA6CsiK,gBAAA,aAC7Cz8K,EAAA5U,iBACA+nB,EAAArR,KAAAmlB,IAAA9T,EAAAnT,EAAA3U,WAAAnZ,OAAA,GACAuf,EACAuO,EAAA3B,aAAAiqB,EAAAtoB,EAAA3U,WAAA8nB,IAEAmpK,GAAArB,YAAA3yJ,EAAAtoB,EAAA3U,WAAA8nB,KAGAnT,EAAArB,YAAA2pB,GAEAtoB,EAAAsoB,EACAnV,EAAA,GAEA6oK,EAAAvqL,EAAA,iCAAAuO,EACAg8K,EAAAvqL,EAAA,2BAAA0hB,GAMA,OAJAqpK,GAAA,GACAl5J,EAAA8B,WACAo3J,IAEAR,GAEAU,GAAA,SAAAV,GACA,SAAAW,EAAAlrL,GACA,IAAAuO,EAAAmT,EAAA1nB,EACAmxL,EAAA,SAAA58K,GACA,IAAAvU,EAAAuU,EAAAlG,WAAAkE,WAAA0iE,EAAA,EACA,MAAAj1E,EAAA,CACA,GAAAA,IAAAuU,EACA,OAAA0gE,EAEA,IAAAj1E,EAAAsI,UAAA,aAAAtI,EAAA+U,aAAA,kBACAkgE,IAEAj1E,IAAAkS,YAEA,UAEAqC,EAAAvU,EAAAuwL,EAAAvqL,EAAA,iCACA0hB,EAAA6oK,EAAAvqL,EAAA,2BACAuO,IAGA,IAAAA,EAAAjM,WACAof,EAAAypK,EAAA58K,GACAA,IAAAlG,WACAwiL,GAAAn9K,OAAA1T,IACAuU,EAAA5U,iBAAAkxL,GAAA/xH,QAAAvqD,IACAA,EAAArB,YAAA29K,GAAAniK,OAAA,QAGA6hK,EAAAvqL,EAAA,iCAAAuO,EACAg8K,EAAAvqL,EAAA,2BAAA0hB,GAEAwpK,GAAA,GACAA,IACA,IAAAr5J,EAAAg5J,GAAAtvH,YAKA,OAJA1pC,EAAAQ,SAAAk4J,EAAAz4J,eAAAy4J,EAAAl3J,aACAk3J,EAAAj3J,cACAzB,EAAAa,OAAA63J,EAAAj3J,aAAAi3J,EAAAh3J,WAEA62J,GAAAJ,eAAAn4J,IAEAu5J,GAAA,CACAN,kBACAG,oBAGAI,GAAA,SAAAz3K,GACA,gBAAA1Y,KAAA0Y,EAAAwkH,YAGAkzD,GAAA,SAAAC,GACA,OAAAA,GACA,SACA,qBACA,SACA,qBACA,SACA,uBAIAC,GAAA,SAAApxL,EAAAuO,EAAAoB,GACA,IAAA5iB,EAAA4iB,EAAA,mBAAAA,EAAA,wBACA3P,EAAAqxL,SAAA9iL,EAAA,kBAAAxhB,IAEAg+L,GAAA,SAAA9qH,EAAAxrD,GACAqzD,GAAAp9E,KAAA+pB,EAAA,SAAAjuB,EAAAiK,GACAwvE,EAAA3rD,aAAA7jB,EAAAjK,MAGA8qM,GAAA,SAAAtxL,EAAAuO,EAAAoB,GACAo7K,GAAAx8K,EAAAoB,EAAA,oBACAm4D,GAAAp9E,KAAAsV,EAAAu5E,OAAA,KAAAhrE,GAAA,SAAAu+K,GACA/B,GAAA+B,EAAAn9K,EAAA,4BAGA4hL,GAAA,SAAAvxL,EAAAuO,EAAAoB,GACAyhL,GAAApxL,EAAAuO,EAAAoB,GACA2hL,GAAAtxL,EAAAuO,EAAAoB,IAEA6hL,GAAA,SAAAxxL,EAAAgI,EAAAsS,GACAwtD,GAAAp9E,KAAA4vB,EAAA,SAAA6E,GACA,IAAAuD,EACA,OAAA1iB,EAAAqxL,SAAArpL,GAAA0a,EAAA,GAA6CA,EAAAvD,GAAA,GAAAuD,OAG7C+uK,GAAA,SAAAr1H,EAAA3kC,EAAA7xB,EAAA+4B,GACA,IAAAxqB,EAAAmT,EACAnT,EAAAsjB,EAAA7xB,EAAA,iCACA0hB,EAAAmQ,EAAA7xB,EAAA,2BACA,IAAAuO,EAAAjM,WACAiM,IAAA3U,WAAAyW,KAAAmlB,IAAA9T,EAAAnT,EAAA3U,WAAAnZ,OAAA,KAAA8tB,IAEAvO,GAAA6iL,GAAAZ,KAAA1zK,EAAArC,eACAqC,IAAArC,aAEA,MAAAqC,EAAAlG,aAAA0wB,EAAA,CACA,GAAA8pJ,GAAAT,YAAA5rH,EAAAjoD,GACA,OAAAA,EAEA,eAAArT,KAAAqT,EAAAlG,WAAAL,UACA,OAAAuG,EAEAA,IAAAlG,WAEA,OAAAkG,GAEAu9K,GAAA,SAAAt1H,EAAA3kC,EAAAkH,GAMA,IALA,IAGAu1F,EAHAy9D,EAAA,GAAA3xL,EAAAo8D,EAAAp8D,IACAk7I,EAAAu2C,GAAAr1H,EAAA3kC,GAAA,EAAAkH,GACAizJ,EAAAH,GAAAr1H,EAAA3kC,GAAA,EAAAkH,GAEAkzJ,EAAA,GACAjyL,EAAAs7I,EAAgCt7I,EAAMA,IAAAkS,YAEtC,GADA+/K,EAAAhkM,KAAA+R,GACAA,IAAAgyL,EACA,MA8BA,OA3BA9pH,GAAAp9E,KAAAmnM,EAAA,SAAAjyL,GACA,GAAA6oL,GAAAT,YAAA5rH,EAAAx8D,GAGA,OAFA+xL,EAAA9jM,KAAA+R,QACAs0H,EAAA,MAGA,GAAAl0H,EAAA0+D,QAAA9+D,IAAA6oL,GAAAZ,KAAAjoL,GAKA,OAJA6oL,GAAAZ,KAAAjoL,IACAI,EAAAsT,OAAA1T,QAEAs0H,EAAA,MAGA,IAAApiH,EAAAlS,EAAAkS,YACAs9D,GAAA0iH,eAAAlyL,KACA6oL,GAAAT,YAAA5rH,EAAAtqD,QAAAlS,EAAAqO,aAAA0wB,GACAu1F,EAAA,MAIAA,IACAA,EAAAl0H,EAAAsuB,OAAA,KACA1uB,EAAAqO,WAAAuE,aAAA0hH,EAAAt0H,GACA+xL,EAAA9jM,KAAAqmI,IAEAA,EAAAphH,YAAAlT,MAEA+xL,GAEAI,GAAA,SAAA/xL,EAAAgyL,EAAAriL,GACA,IAAAsiL,EAAAjyL,EAAAqoF,SAAA2pG,EAAA,mBACAE,EAAAviL,IAAA,sBAEA,OADAuiL,EAAA,OAAAA,EAAA,GAAAA,EACAD,IAAAC,GAEAC,GAAA,SAAA/1H,EAAA+0H,EAAAxhL,QACA,IAAAA,IACAA,EAAA,IAEA,IACAwgL,EADA14J,EAAA2kC,EAAA5kC,UAAAkrC,QAAA,GAEA0vH,EAAA,KACAzzJ,EAAA3G,GAAA6wJ,sBAAAzsH,IAAA5kC,UAAAd,UAAA,IACA12B,EAAAo8D,EAAAp8D,IACA,UAAAA,EAAA2+D,mBAAAvC,EAAA5kC,UAAAqoC,aAGAsxH,IAAAv7G,cACA,OAAAu7G,IACAiB,EAAA,MAEAjC,EAAAa,GAAAN,eAAAj5J,GACAqwC,GAAAp9E,KAAAgnM,GAAAt1H,EAAA3kC,EAAAkH,GAAA,SAAAu1F,GACA,IAAAm+D,EAAA3/K,EACAA,EAAAwhH,EAAAk0D,gBACA11K,GAAA+1K,GAAAjB,WAAA90K,MAAA9E,WAAAujL,GAAAY,GAAA/xL,EAAA0S,EAAA/C,IACA0iL,EAAA3/K,EACAwhH,EAAAl0H,EAAAsyL,OAAAp+D,EAAAk+D,GACA1/K,EAAAI,YAAAohH,KAEAm+D,EAAAryL,EAAAsuB,OAAA6iK,GACAj9D,EAAAjmH,WAAAuE,aAAA6/K,EAAAn+D,GACAm+D,EAAAv/K,YAAAohH,GACAA,EAAAl0H,EAAAsyL,OAAAp+D,EAAAk+D,IAEAZ,GAAAxxL,EAAAk0H,EAAA,CACA,SACA,eACA,gBACA,cACA,aACA,UACA,gBACA,iBACA,eACA,gBAEAq9D,GAAAvxL,EAAAqyL,EAAA1iL,GACA4iL,GAAAn2H,EAAAp8D,IAAAqyL,KAEAj2H,EAAA5kC,UAAA2nI,OAAA6xB,GAAAH,gBAAAV,MAEAqC,GAAA,SAAAC,EAAAC,GACA,OAAAD,GAAAC,GAAAjK,GAAAjB,WAAAiL,MAAA7kL,WAAA8kL,EAAA9kL,UAEA+kL,GAAA,SAAA3yL,EAAAyyL,EAAAC,GACA,IAAAE,EAAA5yL,EAAAqoF,SAAAoqG,EAAA,sBACAtzK,EAAAnf,EAAAqoF,SAAAqqG,EAAA,sBACA,OAAAE,IAAAzzK,GAEA0zK,GAAA,SAAAC,EAAAC,GACA,OAAAD,EAAA90D,YAAA+0D,EAAA/0D,WAEAg1D,GAAA,SAAAhzL,EAAAyyL,EAAAC,GACA,OAAAF,GAAAC,EAAAC,IAAAC,GAAA3yL,EAAAyyL,EAAAC,IAAAG,GAAAJ,EAAAC,IAEAH,GAAA,SAAAvyL,EAAAqyL,GACA,IAAA3/K,EAAA9S,EAEA,GADA8S,EAAA2/K,EAAAvgL,YACAkhL,GAAAhzL,EAAAqyL,EAAA3/K,GAAA,CACA,MAAA9S,EAAA8S,EAAAP,WACAkgL,EAAAv/K,YAAAlT,GAEAI,EAAAsT,OAAAZ,GAGA,GADAA,EAAA2/K,EAAAjK,gBACA4K,GAAAhzL,EAAAqyL,EAAA3/K,GAAA,CACA,MAAA9S,EAAA8S,EAAAs0K,UACAqL,EAAA7/K,aAAA5S,EAAAyyL,EAAAlgL,YAEAnS,EAAAsT,OAAAZ,KAGAugL,GAAA,SAAA72H,EAAA5iD,EAAA23K,EAAAxhL,GACA,GAAA6J,EAAA5L,WAAAujL,EAAA,CACA,IAAA+B,EAAA92H,EAAAp8D,IAAAsyL,OAAA94K,EAAA23K,GACAI,GAAAn1H,EAAAp8D,IAAAkzL,EAAAvjL,GACAs3K,GAAA7qH,EAAA80H,GAAAC,GAAA+B,QAEA3B,GAAAn1H,EAAAp8D,IAAAwZ,EAAA7J,GACAs3K,GAAA7qH,EAAA80H,GAAAC,GAAA33K,IAGA25K,GAAA,SAAA/2H,EAAA2sH,EAAAoB,EAAAgH,EAAAxhL,GACA,GAAAo5K,EAAAn7K,WAAAujL,GAAAiC,GAAAzjL,GAEO,CACP,IAAAwgL,EAAAa,GAAAN,eAAAt0H,EAAA5kC,UAAAkrC,QAAA,IACAoF,GAAAp9E,KAAA,CAAAq+L,GAAA/hM,OAAAmjM,GAAA,SAAAlqH,GACAgzH,GAAA72H,EAAA6D,EAAAkxH,EAAAxhL,KAEAysD,EAAA5kC,UAAA2nI,OAAA6xB,GAAAH,gBAAAV,SANAK,GAAAp0H,IASAg3H,GAAA,SAAAzjL,GACA,0BAAAA,GAEA0jL,GAAA,SAAAj3H,EAAA2sH,EAAAoI,EAAAxhL,GACA,GAAAo5K,IAAA3sH,EAAAhuD,UAGA,GAAA26K,EACA,GAAAA,EAAAn7K,WAAAujL,GAAAiC,GAAAzjL,IAAAshL,GAAAlI,GAES,CACT,IAAAoH,EAAAa,GAAAN,eAAAt0H,EAAA5kC,UAAAkrC,QAAA,IACA6uH,GAAAn1H,EAAAp8D,IAAA+oL,EAAAp5K,GACA,IAAAujL,EAAA92H,EAAAp8D,IAAAsyL,OAAAvJ,EAAAoI,GACAoB,GAAAn2H,EAAAp8D,IAAAkzL,GACA92H,EAAA5kC,UAAA2nI,OAAA6xB,GAAAH,gBAAAV,IACAlJ,GAAA7qH,EAAA80H,GAAAC,GAAA+B,QAPA1C,GAAAp0H,QAUA+1H,GAAA/1H,EAAA+0H,EAAAxhL,GACAs3K,GAAA7qH,EAAA80H,GAAAC,GAAApI,IAGAuK,GAAA,SAAAl3H,EAAA+0H,EAAAxhL,GACA,IAAAo5K,EAAA/wJ,GAAA0wJ,cAAAtsH,GACAm3H,EAAAv7J,GAAAmxJ,oBAAA/sH,GACAzsD,KAAA,GACAo5K,GAAAwK,EAAAltM,OAAA,EACA8sM,GAAA/2H,EAAA2sH,EAAAwK,EAAApC,EAAAxhL,GAEA0jL,GAAAj3H,EAAA2sH,EAAAoI,EAAAxhL,IAGA6jL,GAAA,CACAF,cACAf,2BAGAkB,GAAAzqH,GAAA2G,IACA+jH,GAAA,SAAA1zL,EAAA+uL,GACA,IAAAr8K,EACAzE,EAAA8gL,EAAA9gL,WACA,OAAAA,EAAAL,UAAAK,EAAAkE,aAAA48K,IACAr8K,EAAAzE,EAAAm6K,gBACA11K,GAAA,OAAAA,EAAA9E,UACA8E,EAAAI,YAAAi8K,GACAtG,GAAAJ,QAAAroL,EAAAiO,IACAwlL,GAAAngL,OAAArF,IAGAwlL,GAAApC,SAAApjL,EAAA,yBAGAw6K,GAAAjB,WAAAv5K,KACAyE,EAAAzE,EAAAm6K,gBACA11K,GAAA,OAAAA,EAAA9E,UACA8E,EAAAI,YAAAi8K,KAIA4E,GAAA,SAAA3zL,EAAAgI,GACA8/D,GAAAp9E,KAAAo9E,GAAAohH,KAAAlpL,EAAAu5E,OAAA,QAAAvxE,IAAA,SAAA+mL,GACA2E,GAAA1zL,EAAA+uL,MAGA6E,GAAA,CACAF,iBACAC,mBAGAE,GAAA,SAAAz3H,EAAA3kC,EAAAq8J,EAAAn1J,GACA,IAAA/+B,EAAA63B,EAAAC,eACApQ,EAAAmQ,EAAAwB,YACA,GAAAwvJ,GAAAlB,WAAA3nL,KAAAk0L,EAAAxsK,EAAA1nB,EAAAwN,KAAA/mB,OAAAihC,EAAA,GACA,OAAA1nB,EAEA,IAAAm0L,EAAA33H,EAAAjiE,OAAA65L,sBACA,IAAAp0L,EAAAsI,WACAtI,EAAArY,GAAAs4E,QAAAjgE,EAAA0nB,IAEA,IAAA43C,EAAA,IAAAhD,GAAAt8D,EAAA++B,GACAm1J,GACArL,GAAAN,UAAA/rH,EAAAp8D,IAAAJ,IACAs/D,EAAA1iE,OAGA,MAAAoD,EAAAs/D,EAAA40H,EAAA,mBACA,UAAAl0L,EAAAgO,WAAAhO,EAAAL,gBACA,OAAAK,EAEA,GAAAm0L,EAAAn0L,EAAAgO,UACA,OAAAhO,EAEA,GAAA6oL,GAAAlB,WAAA3nL,MAAAwN,KAAA/mB,OAAA,EACA,OAAAuZ,IAIAq0L,GAAA,SAAAj0L,EAAAigE,GACA,IAAAzgE,EAAAygE,EAAAzgE,WACA,WAAAA,EAAAnZ,SAAAoiM,GAAAjB,WAAAhoL,EAAA,KAAAQ,EAAA0+D,QAAAl/D,EAAA,KAEA00L,GAAA,SAAAl0L,EAAAigE,GACAg0H,GAAAj0L,EAAAigE,IACAjgE,EAAAsT,OAAA2sD,EAAA9tD,YAAA,IAGAgiL,GAAA,SAAAn0L,EAAAo0L,EAAAC,GACA,IAAAz0L,EAAAk6J,EAGA,GAFAA,EAAAm6B,GAAAj0L,EAAAq0L,KAAAliL,WAAAkiL,EACAH,GAAAl0L,EAAAo0L,IACA3L,GAAAJ,QAAAroL,EAAAo0L,GAAA,GACA,MAAAx0L,EAAAw0L,EAAAjiL,WACA2nJ,EAAAhnJ,YAAAlT,IAIA00L,GAAA,SAAAt0L,EAAAo0L,EAAAC,GACA,IAAAz0L,EAAA20L,EACAxF,EAAAqF,EAAAnmL,WACA,GAAAw6K,GAAAF,cAAAvoL,EAAAo0L,IAAA3L,GAAAF,cAAAvoL,EAAAq0L,GAAA,CAGA5L,GAAAjB,WAAA6M,EAAArN,aACAuN,EAAAF,EAAArN,WAEA+H,IAAAsF,EAAArN,WACAyB,GAAAZ,KAAAkH,EAAA3G,kBACApoL,EAAAsT,OAAAy7K,EAAA3G,iBAGAxoL,EAAAy0L,EAAArN,UACApnL,GAAA6oL,GAAAZ,KAAAjoL,IAAAw0L,EAAA70L,iBACAS,EAAAsT,OAAA1T,GAEA6oL,GAAAJ,QAAAroL,EAAAq0L,GAAA,IACAr0L,EAAAw0L,EAAAH,GAAAlhL,QAEAghL,GAAAn0L,EAAAo0L,EAAAC,GACAE,GACAF,EAAAvhL,YAAAyhL,GAEA,IAAAtmM,EAAA4X,GAAAxF,GAAAZ,QAAA40L,GAAAh0L,GAAAZ,QAAA20L,IACAK,EAAAxmM,EAAA+R,EAAAs3E,WAAA88G,EAAA3L,GAAAjB,WAAA6M,GAAA,GACAr0L,EAAAsT,OAAA8gL,GACA1pM,EAAA+pM,EAAA,SAAAj7K,GACAivK,GAAAJ,QAAAroL,EAAAwZ,QAAAxZ,EAAAw/D,WACAx/D,EAAAsT,OAAAkG,OAIAk7K,GAAA,SAAAt4H,EAAAu4H,EAAAC,GACAx4H,EAAAp8D,IAAAw0L,EAAAI,GAAAzhL,QACAmhL,GAAAl4H,EAAAp8D,IAAA20L,EAAAC,GACAx4H,EAAA5kC,UAAA2oC,kBAAAy0H,IAEAC,GAAA,SAAAz4H,EAAA3kC,EAAAk9J,EAAAC,GACA,IAAA50L,EAAAo8D,EAAAp8D,IACA,GAAAA,EAAAqoL,QAAAuM,GACAF,GAAAt4H,EAAAu4H,EAAAC,OACO,CACP,IAAAzE,EAAAa,GAAAN,eAAAj5J,GACA68J,GAAAt0L,EAAA20L,EAAAC,GACAx4H,EAAA5kC,UAAA2nI,OAAA6xB,GAAAH,gBAAAV,MAGA2E,GAAA,SAAA14H,EAAA3kC,EAAAk9J,EAAAC,GACA,IAAAzE,EAAAa,GAAAN,eAAAj5J,GACA68J,GAAAl4H,EAAAp8D,IAAA20L,EAAAC,GACA,IAAAG,EAAA/D,GAAAH,gBAAAV,GACA/zH,EAAA5kC,UAAA2nI,OAAA41B,IAEAC,GAAA,SAAA54H,EAAA03H,GACA,IAAA9zL,EAAAo8D,EAAAp8D,IAAAw3B,EAAA4kC,EAAA5kC,UACAy9J,EAAAz9J,EAAAd,WACAiI,EAAA3G,GAAA6wJ,sBAAAzsH,EAAA64H,GACAnI,EAAA9sL,EAAA4oL,UAAApxJ,EAAAd,WAAA,KAAAiI,GACA,GAAAmuJ,EAAA,CACA,IAAAiC,EAAAjC,EAAA7+K,WACA,GAAA8gL,IAAA3yH,EAAAhuD,WAAAq6K,GAAAJ,QAAAroL,EAAA+uL,GACA,SAEA,IAAAmG,EAAAlF,GAAAJ,eAAAp4J,EAAAkrC,UACAyyH,EAAAn1L,EAAA4oL,UAAAiL,GAAAz3H,EAAA84H,EAAApB,EAAAn1J,GAAA,KAAAA,GACA,GAAAw2J,OAAArI,EAYA,OAXA1wH,EAAAob,YAAAC,SAAA,WACAq8G,EACAe,GAAAz4H,EAAA84H,EAAAC,EAAArI,GAEArE,GAAAX,aAAAgF,GACAyD,GAAAn0H,GAEA04H,GAAA14H,EAAA84H,EAAApI,EAAAqI,MAIA,EACS,IAAAA,IACTrB,GAAA,IAAAoB,EAAAj8J,aAAA,IAAAi8J,EAAA/7J,UAIA,OAHAijC,EAAAob,YAAAC,SAAA,WACA+4G,GAAAp0H,MAEA,EAIA,UAEAg5H,GAAA,SAAAp1L,EAAAk0H,EAAAv1F,GACA,IAAA02J,EAAAr1L,EAAA4oL,UAAA10D,EAAAjmH,WAAAjO,EAAA0+D,QAAA//B,GACA3+B,EAAAsT,OAAA4gH,GACAmhE,GAAAr1L,EAAAqoL,QAAAgN,IACAr1L,EAAAsT,OAAA+hL,IAGAC,GAAA,SAAAl5H,EAAA03H,GACA,IAAA9zL,EAAAo8D,EAAAp8D,IACAi1L,EAAA74H,EAAA5kC,UAAAd,WACAiI,EAAA3G,GAAA6wJ,sBAAAzsH,EAAA64H,GACA/gE,EAAAl0H,EAAA4oL,UAAAqM,EAAAj1L,EAAA0+D,QAAA//B,GACA,GAAAu1F,GAAAl0H,EAAAqoL,QAAAn0D,GAAA,CACA,IAAAz8F,EAAAu4J,GAAAJ,eAAAxzH,EAAA5kC,UAAAkrC,UACA6yH,EAAAv1L,EAAA4oL,UAAAiL,GAAAz3H,EAAA3kC,EAAAq8J,EAAAn1J,GAAA,KAAAA,GACA,GAAA42J,EAOA,OANAn5H,EAAAob,YAAAC,SAAA,WACA29G,GAAAp1L,EAAAk0H,EAAAv1F,GACA60J,GAAAjB,uBAAAvyL,EAAAu1L,EAAAtnL,YACAmuD,EAAA5kC,UAAA+hD,OAAAg8G,GAAA,GACAn5H,EAAA5kC,UAAAmD,SAAAm5J,MAEA,EAGA,UAEA0B,GAAA,SAAAp5H,EAAA03H,GACA,OAAAkB,GAAA54H,EAAA03H,IAAAwB,GAAAl5H,EAAA03H,IAEA2B,GAAA,SAAAr5H,GACA,IAAA64H,EAAA74H,EAAA5kC,UAAAd,WACAiI,EAAA3G,GAAA6wJ,sBAAAzsH,EAAA64H,GACAS,EAAAt5H,EAAAp8D,IAAA4oL,UAAAqM,EAAA,WAAAt2J,GACA,SAAA+2J,GAAA19J,GAAAwxJ,qBAAAptH,GAAA/1E,OAAA,KACA+1E,EAAAob,YAAAC,SAAA,WACArb,EAAAqc,YAAA,UACAm7G,GAAAD,eAAAv3H,EAAAp8D,IAAAo8D,EAAAhuD,cAEA,IAIAunL,GAAA,SAAAv5H,EAAA03H,GACA,OAAA13H,EAAA5kC,UAAAw4G,cAAAwlD,GAAAp5H,EAAA03H,GAAA2B,GAAAr5H,IAEAlI,GAAA,SAAAkI,GACAA,EAAA/lC,GAAA,mBAAA5tC,GACAA,EAAAgnI,UAAAlxD,GAAAxlB,UACA48I,GAAAv5H,GAAA,IACA3zE,EAAAumB,iBAESvmB,EAAAgnI,UAAAlxD,GAAAq3H,QACTD,GAAAv5H,GAAA,IACA3zE,EAAAumB,oBAKA6mL,GAAA,CACA3hI,SACAyhI,oBAGAnlM,GAAA,SAAA4rE,GACA,OACAu5H,gBAAA,SAAA7B,GACA+B,GAAAF,gBAAAv5H,EAAA03H,MAIAgC,GAAA,CAAetlM,QAEfulM,GAAA,SAAA35H,EAAA+0H,GACA,kBACA,IAAApI,EAAA3sH,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAA,YACA,OAAAqyJ,KAAAn7K,WAAAujL,IAGAjtH,GAAA,SAAA9H,GACAA,EAAA/lC,GAAA,6BAAA5tC,GACA,IAAAqyK,EAAAryK,EAAAutM,QAAAt0L,cACA,WAAAo5J,EACAw1B,GAAAl0H,GACS,YAAA0+F,GACTy1B,GAAAn0H,KAGAA,EAAA0b,WAAA,+BAAA1T,EAAAz0D,GACA6jL,GAAAF,WAAAl3H,EAAA,KAAAzsD,KAEAysD,EAAA0b,WAAA,6BAAA1T,EAAAz0D,GACA6jL,GAAAF,WAAAl3H,EAAA,KAAAzsD,KAEAysD,EAAA0b,WAAA,gCAAA1T,EAAAz0D,GACA6jL,GAAAF,WAAAl3H,EAAA,KAAAzsD,KAEAysD,EAAA0b,WAAA,wBACA04G,GAAAp0H,KAEAA,EAAA65H,qBAAA,sBAAAF,GAAA35H,EAAA,OACAA,EAAA65H,qBAAA,oBAAAF,GAAA35H,EAAA,OACAA,EAAA65H,qBAAA,uBAAAF,GAAA35H,EAAA,QAEA85H,GAAA,CAAoBhyH,aAEpBiyH,GAAA,SAAA/5H,GACA,OAAAA,EAAAga,SAAA,2BAEAO,GAAA,CAAoBw/G,sBAEpBC,GAAA,SAAAh6H,GACAA,EAAA/lC,GAAA,mBAAA5tC,GACAA,EAAAgnI,UAAAlxD,GAAAvlB,KAAAulB,GAAA83H,eAAA5tM,IAGA2zE,EAAAob,YAAAC,SAAA,YACAhvF,EAAAwxD,SAAAs2I,GAAAn0H,GAAAk0H,GAAAl0H,KACA3zE,EAAAumB,sBAKAy0E,GAAA,SAAArnB,GACAua,GAAAw/G,kBAAA/5H,IACAg6H,GAAAh6H,GAEAy5H,GAAA3hI,MAAAkI,IAEAk6H,GAAA,CAAoBpiI,MAAAuvB,IAEpBz0F,GAAA,SAAAwqB,EAAAnL,GACA,QAAA4D,EAAA,EAAyBA,EAAAuH,EAAAnzB,OAAqB4rB,IAAA,CAC9C,IAAAjK,EAAAwR,EAAAvH,GACA,GAAA5D,EAAArG,GACA,OAAAiK,EAGA,UAEAskL,GAAA,SAAAn6H,EAAA+0H,GACA,gBAAA7xE,GACA,IAAAu+B,EAAA,SAAAp1J,GACA,IAAA+tM,EAAAxnM,GAAAvG,EAAA24J,QAAAqnC,GAAAb,iBACAxmC,GAAA,IAAAo1C,EAAA/tM,EAAA24J,QAAA1zJ,MAAA,EAAA8oM,GAAA/tM,EAAA24J,QACA+oC,EAAAriH,GAAAohH,KAAA9nC,EAAAqnC,GAAAjB,YACAloE,EAAA9uC,UAAA25G,EAAA9jM,OAAA,GAAA8jM,EAAA,GAAAv8K,WAAAujL,IAAAF,GAAA9G,EAAA,MAGA,OADA/tH,EAAA/lC,GAAA,aAAAwnH,GACA,WACA,OAAAzhF,EAAAp4B,IAAA,aAAA65G,MAIApjE,GAAA,SAAAre,GACA,IAAAq6H,EAAA,SAAAr6H,EAAAs6H,GACA,IAAA3qB,EAAA3vG,EAAAa,SAAA8uG,QAAA3vG,EAAAa,SAAA8uG,QAAA,GACA,WAAAjkG,GAAA6uH,QAAA5qB,EAAA5zJ,MAAA,QAAAu+K,IAEAnkH,EAAA,SAAAyjH,GACA,kBACA,OAAA55H,EAAAqc,YAAAu9G,KAGAS,EAAAr6H,EAAA,aACAA,EAAAgI,GAAAC,SAAA6tF,gBAAA,WACAt2F,KAAA,eACArtC,QAAA,EACA24C,QAAA,gBACAlL,SAAAuW,EAAA,qBACA/D,QAAA+nH,GAAAn6H,EAAA,QAEAA,EAAAgI,GAAAC,SAAA6tF,gBAAA,WACAt2F,KAAA,iBACArtC,QAAA,EACA24C,QAAA,cACAlL,SAAAuW,EAAA,uBACA/D,QAAA+nH,GAAAn6H,EAAA,UAIAw6H,GAAA,CAAmB1yH,SAAAuW,IAEnB,SAAAo8G,KACAnxM,EAAA04B,IAAA,iBAAAg+C,GAIA,OAHAk6H,GAAApiI,MAAAkI,GACAw6H,GAAA1yH,SAAA9H,GACA85H,GAAAhyH,SAAA9H,GACA05H,GAAAtlM,IAAA4rE,KAIAy6H,MAtnEA,CAwnECpwL,6BCxnED,WACA,aAEA,IAAA/gB,EAAA8B,QAAAC,KAAAC,MAAAC,QAAA,yBAEAC,EAAA,WAUA,OATAA,EAAAC,OAAAC,QAAA,SAAAC,GACA,QAAAC,EAAAC,EAAA,EAAAC,EAAA9B,UAAAC,OAAgD4B,EAAAC,EAAOD,IAEvD,QAAAE,KADAH,EAAA5B,UAAA6B,GACAD,EACAH,OAAAO,UAAAC,eAAAC,KAAAN,EAAAG,KACAJ,EAAAI,GAAAH,EAAAG,IAEA,OAAAJ,GAEAH,EAAAtB,MAAAiC,KAAAnC,YAGAR,EAAA,aAEAW,EAAA,SAAAC,GACA,kBACA,OAAAA,IAGAa,EAAAd,GAAA,GACAe,EAAAf,GAAA,GAEA+C,EAAA,WACA,OAAAC,GAEAA,EAAA,WACA,IAAAC,EAAA,SAAAC,GACA,OAAAA,EAAAC,UAEApB,EAAA,SAAAqB,GACA,OAAAA,KAEAC,EAAA,SAAA1B,GACA,OAAAA,GAEA2B,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAE,KAEA6B,GAAA1C,EACA2C,OAAA3C,EACAqC,OAAApC,EACA2C,MAAAL,EACAM,WAAA5B,EACA6B,SAAA,SAAAhD,GACA,UAAAC,MAAAD,GAAA,oCAEAiD,UAAA7D,EAAA,MACA8D,eAAA9D,OAAA+D,GACAC,GAAAX,EACAY,QAAAlC,EACAmC,IAAAnB,EACAoB,KAAA9E,EACA+E,KAAArB,EACAsB,OAAAvD,EACAwD,OAAAvD,EACAwD,OAAAxB,EACAyB,OAAAvB,EACAwB,QAAAxB,EACAyB,QAAA,WACA,UAEAC,SAAA3E,EAAA,WAKA,OAHAsB,OAAAsD,QACAtD,OAAAsD,OAAAtB,GAEAA,EA1CA,GA4CAuB,EAAA,SAAAlC,GACA,IAAAmC,EAAA9E,EAAA2C,GACAoC,EAAA,WACA,OAAAzB,GAEAc,EAAA,SAAA7E,GACA,OAAAA,EAAAoD,IAEAW,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAA,EAAAkB,IAEAa,GAAA,SAAAwB,GACA,OAAArC,IAAAqC,GAEAvB,OAAA1C,EACAoC,OAAArC,EACA4C,MAAAoB,EACAnB,WAAAmB,EACAlB,SAAAkB,EACAjB,UAAAiB,EACAhB,eAAAgB,EACAd,GAAAe,EACAd,QAAAc,EACAb,IAAA,SAAA3E,GACA,OAAAsF,EAAAtF,EAAAoD,KAEAwB,KAAA,SAAA5E,GACAA,EAAAoD,IAEAyB,OACAC,OAAAD,EACAE,OAAAF,EACAG,OAAA,SAAAhF,GACA,OAAAA,EAAAoD,GAAAW,EAAAN,GAEA0B,QAAA,WACA,OAAA/B,IAEAgC,SAAA,WACA,cAAAhC,EAAA,KAEA6B,OAAA,SAAAtB,GACA,OAAAA,EAAAM,GAAAb,IAEA8B,QAAA,SAAAvB,EAAA+B,GACA,OAAA/B,EAAAK,KAAAzC,EAAA,SAAAoE,GACA,OAAAD,EAAAtC,EAAAuC,OAIA,OAAA5B,GAEA6B,EAAA,SAAAlF,GACA,cAAAA,QAAA8D,IAAA9D,EAAA+C,EAAA6B,EAAA5E,IAEAmF,EAAA,CACAP,OACA9B,OACAoC,QAGAgB,EAAA,SAAAhG,GACA,UAAAA,EACA,aAEA,IAAAqB,SAAArB,EACA,iBAAAqB,IAAAiB,MAAAZ,UAAAuE,cAAAjG,MAAAkG,aAAA,UAAAlG,EAAAkG,YAAAC,MACA,QAEA,WAAA9E,IAAAsE,OAAAjE,UAAAuE,cAAAjG,MAAAkG,aAAA,WAAAlG,EAAAkG,YAAAC,MACA,SAEA9E,GAEA+E,EAAA,SAAAC,GACA,gBAAAvG,GACA,OAAAkG,EAAAlG,KAAAuG,IAGAC,EAAAF,EAAA,UACAI,EAAAJ,EAAA,SACAM,EAAAN,EAAA,YAEAW,EAAAzE,MAAAZ,UAAAsF,MACAE,EAAA5E,MAAAZ,UAAAyF,KACAnD,EAAA,SAAAsD,EAAAlI,GACA,QAAAmC,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAnC,EAAAY,EAAAuB,KAGAgH,EAAA,SAAAjB,GAEA,IADA,IAAAjF,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,IAASvF,EAAA,CAC/C,IAAAiF,EAAAc,EAAA/F,IACA,UAAAb,MAAA,oBAAAa,EAAA,6BAAA+F,GAEAJ,EAAAtH,MAAAyC,EAAAiF,EAAA/F,IAEA,OAAAc,GAMA4V,GAJAvR,EAAApE,MAAA0C,OAAA1C,MAAA0C,KAIA,SAAAkT,GACA,IAAApY,EAAAoY,EACApO,EAAA,WACA,OAAAhK,GAEAqY,EAAA,SAAAtT,GACA/E,EAAA+E,GAEAuT,EAAA,WACA,OAAAH,EAAAnO,MAEA,OACAA,MACAqO,MACAC,WAIAzW,EAAAR,OAAAO,UAAAC,eACA2J,EAAA,SAAAC,EAAAC,GACA,OAAAA,GAEAI,EAAA,SAAAC,GACA,kBAEA,IADA,IAAAC,EAAA,IAAAxJ,MAAA5C,UAAAC,QACA4B,EAAA,EAAuBA,EAAAuK,EAAAnM,OAAoB4B,IAC3CuK,EAAAvK,GAAA7B,UAAA6B,GAEA,OAAAuK,EAAAnM,OACA,UAAAe,MAAA,4BAGA,IADA,IAAAqL,EAAA,GACAtJ,EAAA,EAAuBA,EAAAqJ,EAAAnM,OAAoB8C,IAAA,CAC3C,IAAAuJ,EAAAF,EAAArJ,GACA,QAAAsH,KAAAiC,EACArK,EAAAC,KAAAoK,EAAAjC,KACAgC,EAAAhC,GAAA8B,EAAAE,EAAAhC,GAAAiC,EAAAjC,KAIA,OAAAgC,IAGAE,EAAAL,EAAAN,GAEAD,EAAAlK,OAAAQ,eACAmI,EAAA,SAAAR,EAAAS,GACA,OAAAC,EAAAV,EAAAS,GAAA9E,EAAAD,KAAAsE,EAAAS,IAAA9E,EAAArC,QAEAoH,EAAA,SAAAV,EAAAS,GACA,OAAAsB,EAAAzJ,KAAA0H,EAAAS,IAGAqmM,EAAA,SAAA16H,GACA,OAAAA,EAAAga,SAAA,kBAEA2gH,EAAA,SAAA36H,GACA,OAAAA,EAAAga,SAAA,4BAEA4gH,EAAA,SAAA56H,GACA,OAAAA,EAAAga,SAAA,4BAEA6gH,EAAA,SAAA76H,GACA,OAAAA,EAAAga,SAAA,yBAEA8gH,EAAA,SAAA96H,GACA,OAAAA,EAAAga,SAAA,yBAEA+gH,EAAA,SAAA/6H,GACA,OAAAA,EAAAga,SAAA,uBAEAghH,EAAA,SAAAh7H,GACA,OAAAA,EAAAga,SAAA,wBAEAihH,EAAA,SAAAj7H,GACA,OAAAA,EAAAga,SAAA,oBAEAkhH,EAAA,SAAAl7H,GACA,OAAAA,EAAAga,SAAA,wBAEAO,EAAA,CACAmgH,aACAC,2BACAC,2BACAC,gBACAC,mBACAC,iBACAC,eACAC,YACAC,iBAGA/vM,EAAAC,QAAAC,KAAAC,MAAAC,QAAA,sBAEAu0E,EAAA10E,QAAAC,KAAAC,MAAAC,QAAA,0BAEA42E,EAAA/2E,QAAAC,KAAAC,MAAAC,QAAA,wBAEA4vM,EAAA,SAAA/wM,GACA,OAAAA,EAAA6a,QAAA,WAEAmkC,EAAA,SAAAh/C,GACA,kBAAAsa,KAAAta,KAAA,KAAAA,GAEAgxM,EAAA,SAAA3qM,GACA,gBAAAozE,GACA,OAAAA,EAAAs3H,EAAAt3H,EAAA9gD,MAAAtyB,IAAA,KAGA4qM,EAAA,SAAA5qM,GACA,gBAAAozE,EAAAz5E,GACAy5E,IACAA,EAAA9gD,MAAAtyB,GAAA24C,EAAAh/C,MAIAkxM,EAAA,CACAC,YAAAH,EAAA,YACAje,aAAAie,EAAA,aACAI,YAAAH,EAAA,YACA/xJ,aAAA+xJ,EAAA,cAGAI,EAAA,SAAA9zC,EAAAvuC,GACA,GAAAuuC,EACA,QAAA97J,EAAA,EAAuBA,EAAA87J,EAAA19J,OAAqB4B,IAC5C,QAAAutH,EAAA9sH,QAAAq7J,EAAA97J,GAAA6C,QACA,OAAAi5J,EAAA97J,IAMA0nF,EAAApR,EAAAoR,IACAmoH,EAAA,SAAA73H,GACA,OAAA0P,EAAAooH,UAAA93H,EAAA,yBAEA+3H,EAAA,SAAAh5L,GACA,IAAA+U,EAAA47D,EAAAi7G,eAAA5rL,GACA,WAAA84L,EAAA/jL,EAAA5B,aAEA8lL,EAAA,SAAAl0C,EAAA/kJ,GACA,IAAAoO,EAAA,GAyCA,OAxCA8uD,EAAA,CACA24B,UAAA,EACAqjG,4BAAA,EACAtyL,MAAA,SAAA/Y,EAAA4nB,GAUA,GATArH,EAAA+qL,SAAA,UAAAtrM,IACAugB,EAAA+qL,QAAA1jL,EAAAhqB,IAAA2tM,OAEA,WAAAvrM,GAAA,WAAAA,GAAA,UAAAA,GAAA,UAAAA,GAAA,UAAAA,IACAugB,EAAArgB,OACAqgB,EAAArgB,KAAAF,GAEAugB,EAAA7lB,EAAA0oI,OAAAx7G,EAAAhqB,IAAA2iB,IAEA,WAAAvgB,EAAA,CACA,IAAAwrM,EAAAR,EAAA9zC,EAAAtvI,EAAAhqB,IAAA+qH,KACA,IAAA6iF,EACA,OAEAjrL,EAAA,CACArgB,KAAA,SACAorM,QAAA1jL,EAAAhqB,IAAA+qH,IACAvvF,MAAA55B,OAAAgsM,EAAApyK,OACAjC,OAAA33B,OAAAgsM,EAAAr0K,SAGA,WAAAn3B,IACAugB,EAAA+qL,QAEa/qL,EAAAkrL,UACblrL,EAAAkrL,QAAA7jL,EAAAhqB,IAAA+qH,KAFApoG,EAAA+qL,QAAA1jL,EAAAhqB,IAAA+qH,KAKA,QAAA3oH,GAAAugB,EAAAmrL,SACAnrL,EAAAmrL,OAAA9jL,EAAAhqB,IAAA+qH,QAGOl1C,MAAAthE,GACPoO,EAAA+qL,QAAA/qL,EAAA+qL,SAAA/qL,EAAAooG,KAAApoG,OACAA,EAAAkrL,QAAAlrL,EAAAkrL,SAAA,GACAlrL,EAAAmrL,OAAAnrL,EAAAmrL,QAAA,GACAnrL,GAEAorL,EAAA,SAAAx5L,GACA,IAAA+U,EAAA47D,EAAAi7G,eAAA5rL,GACAI,EAAA2U,EAAA5B,WACA,OACAplB,KAAA,kBACAorM,QAAAL,EAAA14L,GACAk5L,QAAA,GACAC,OAAA,GACAtyK,MAAAyxK,EAAAC,YAAAv4L,GACA4kB,OAAA0zK,EAAAne,aAAAn6K,KAGAq5L,EAAA,SAAA10C,EAAA/kJ,GACA,OAAAg5L,EAAAh5L,GAAAw5L,EAAAx5L,GAAAi5L,EAAAl0C,EAAA/kJ,IAGA8iE,EAAAt6E,QAAAC,KAAAC,MAAAC,QAAA,wBAEA+wM,GAAA,SAAAltG,GACA,IAAAmtG,EAAA,CACAC,IAAA,aACAC,IAAA,cACAC,IAAA,YACAC,IAAA,YACAC,KAAA,aACAC,IAAA,YACAC,IAAA,iCAEAC,EAAA3tG,EAAA9pF,cAAAyW,MAAA,KAAAw8D,MACAykH,EAAAT,EAAAQ,GACA,OAAAC,GAAA,IAEAC,GAAA,CAAgBX,UAEhB5wH,GAAAtgF,QAAAC,KAAAC,MAAAC,QAAA,uBAEAqhF,GAAAxhF,QAAAC,KAAAC,MAAAC,QAAA,uBAEA8oM,GAAAlyH,EAAAoR,IACA2pH,GAAA,SAAA7kL,EAAA8kL,GACA,IAAA1sM,EACA5E,EACAzB,EACA23B,EACA,IAAAtxB,KAAA0sM,EAEA,GADA/yM,EAAA,GAAA+yM,EAAA1sM,GACA4nB,EAAAhqB,IAAAoC,GAAA,CACA5E,EAAAwsB,EAAApuB,OACA,MAAA4B,IACAk2B,EAAA1J,EAAAxsB,GACAk2B,EAAAtxB,WACArG,GACAiuB,EAAAhqB,IAAAoC,GAAArG,EACA23B,EAAA33B,iBAEAiuB,EAAAhqB,IAAAoC,GACA4nB,EAAAqgE,OAAA7sF,EAAA,UAISzB,IACTiuB,EAAA5mB,KAAA,CACAhB,OACArG,UAEAiuB,EAAAhqB,IAAAoC,GAAArG,IAIAgzM,GAAA,SAAAx6L,GACA,IAAAy6L,EAAA3xH,KACA8lH,EAAA1xH,EAAAu9H,GAEA,OADA7L,EAAAttH,MAAAthE,GACAy6L,EAAA7gI,cAEA8gI,GAAA,SAAA16L,EAAAoO,EAAAusL,GACA,IAEAC,EAFAH,EAAA3xH,KACA+xH,EAAA,EA8FA,OA5FA39H,EAAA,CACA24B,UAAA,EACAqjG,4BAAA,EACA4B,QAAA,SAAAh6L,GACA25L,EAAAK,QAAAh6L,IAEAi6L,MAAA,SAAAj6L,GACA25L,EAAAM,MAAAj6L,IAEAA,KAAA,SAAAA,EAAAogB,GACAu5K,EAAA35L,OAAAogB,IAEAta,MAAA,SAAA/Y,EAAA4nB,EAAAtB,GACA,OAAAtmB,GACA,YACA,aACA,YACA,UACA,kBACAvC,IAAA8iB,EAAA4W,aAAA15B,IAAA8iB,EAAA6Y,OACAqzK,GAAA7kL,EAAA,CACAwR,MAAA7Y,EAAA6Y,MACAjC,OAAA5W,EAAA4W,SAGA,MAEA,GAAA21K,EACA,OAAA9sM,GACA,YACAysM,GAAA7kL,EAAA,CACA8jL,OAAAnrL,EAAAmrL,OACA/iF,IAAA,KAEApoG,EAAAkrL,SACAgB,GAAA7kL,EAAA,CAAsC+gG,IAAA,KAEtC,MACA,aACA8jF,GAAA7kL,EAAA,CAAoC+gG,IAAApoG,EAAA+qL,UACpC,MACA,aAEA,GADA0B,IACAA,GAAA,IACAP,GAAA7kL,EAAA,CACA+gG,IAAApoG,EAAA,SAAAysL,GACA9sM,KAAAqgB,EAAA,SAAAysL,EAAA,WAEAzsL,EAAA,SAAAysL,IACA,OAGA,MACA,UACA,IAAAzsL,EAAAmrL,OACA,OAEAqB,GAAA,EACA,MAGAH,EAAA7zL,MAAA/Y,EAAA4nB,EAAAtB,IAEAkjG,IAAA,SAAAxpH,GACA,aAAAA,GAAA8sM,EACA,QAAA1nL,EAAA,EAA+BA,GAAA,EAAYA,IAC3C,GAAA7E,EAAA,SAAA6E,GAAA,CACA,IAAAwC,EAAA,GACAA,EAAAhqB,IAAA,GACAovM,EAAA5nL,IACAqnL,GAAA7kL,EAAA,CACA+gG,IAAApoG,EAAA,SAAA6E,GACAllB,KAAAqgB,EAAA,SAAA6E,EAAA,UAEAwnL,EAAA7zL,MAAA,SAAA6O,GAAA,IAKA,GAAArH,EAAAmrL,QAAA,WAAA1rM,GAAA8sM,IAAAC,EAAA,CACA,IAAAI,EAAA,GACAA,EAAAvvM,IAAA,GACA6uM,GAAAU,EAAA,CACAxkF,IAAApoG,EAAAmrL,OACAtyK,MAAA7Y,EAAA6Y,MACAjC,OAAA5W,EAAA4W,SAEAy1K,EAAA7zL,MAAA,MAAAo0L,GAAA,GAEAP,EAAApjF,IAAAxpH,KAEOm8E,GAAA,KAAa1I,MAAAthE,GACpBy6L,EAAA7gI,cAEAqhI,GAAA,SAAAj7L,GACA,IAAA+U,EAAA08K,GAAA7F,eAAA5rL,GACA,WAAAyxL,GAAAsH,UAAAhkL,EAAA5B,WAAA,yBAEA+nL,GAAA,SAAAl7L,EAAAoO,GACA,IAAA2G,EAAA08K,GAAA7F,eAAA5rL,GACAI,EAAA2U,EAAA5B,WAGA,OAFAulL,EAAAE,YAAAx4L,EAAAgO,EAAA6Y,OACAyxK,EAAAhyJ,aAAAtmC,EAAAgO,EAAA4W,QACAw1K,GAAAp6L,EAAA+6L,YAEAC,GAAA,SAAAp7L,EAAAoO,EAAAusL,GACA,OAAAM,GAAAj7L,GAAAk7L,GAAAl7L,EAAAoO,GAAAssL,GAAA16L,EAAAoO,EAAAusL,IAEAU,GAAA,CAAsBD,eAEtBE,GAAA,CACA,CACAC,MAAA,8BACAxtM,KAAA,SACA66B,EAAA,IACAvE,EAAA,IACAmoE,IAAA,6BACAgvG,iBAAA,GAEA,CACAD,MAAA,iDACAxtM,KAAA,SACA66B,EAAA,IACAvE,EAAA,IACAmoE,IAAA,gCACAgvG,iBAAA,GAEA,CACAD,MAAA,0CACAxtM,KAAA,SACA66B,EAAA,IACAvE,EAAA,IACAmoE,IAAA,6BACAgvG,iBAAA,GAEA,CACAD,MAAA,uBACAxtM,KAAA,SACA66B,EAAA,IACAvE,EAAA,IACAmoE,IAAA,uEACAgvG,iBAAA,GAEA,CACAD,MAAA,6BACAxtM,KAAA,SACA66B,EAAA,IACAvE,EAAA,IACAmoE,IAAA,mDACAgvG,iBAAA,GAEA,CACAD,MAAA,kDACAxtM,KAAA,SACA66B,EAAA,IACAvE,EAAA,IACAmoE,IAAA,kDACAgvG,iBAAA,GAEA,CACAD,MAAA,mCACAxtM,KAAA,SACA66B,EAAA,IACAvE,EAAA,IACAmoE,IAAA,uCACAgvG,iBAAA,GAEA,CACAD,MAAA,mBACAxtM,KAAA,SACA66B,EAAA,IACAvE,EAAA,IACAmoE,IAAA,uCACAgvG,iBAAA,IAGAC,GAAA,SAAArqF,EAAA5kB,GAQA,IAPA,IAAAr6F,EAAAi/G,EAAAmqF,MAAAhoH,KAAAiZ,GACAkvG,EAAAtqF,EAAA5kB,IACAq1D,EAAA,SAAA54J,GACAyyM,IAAAr5L,QAAA,IAAApZ,EAAA,WACA,OAAAkJ,EAAAlJ,GAAAkJ,EAAAlJ,GAAA,MAGAA,EAAA,EAAqBA,EAAAkJ,EAAA9K,OAAkB4B,IACvC44J,EAAA54J,GAEA,OAAAyyM,EAAAr5L,QAAA,WAEAs5L,GAAA,SAAAnvG,GACA,IAAA4kB,EAAAkqF,GAAAxvM,OAAA,SAAAslH,GACA,OAAAA,EAAAmqF,MAAAz5L,KAAA0qF,KAEA,OAAA4kB,EAAA/pH,OAAA,EACAkB,EAAA0oI,OAAA,GAAiC7f,EAAA,IAAe5kB,IAAAivG,GAAArqF,EAAA,GAAA5kB,KAEhD,MAIAovG,GAAA,SAAAxtL,GACA,IAAAotL,EAAAptL,EAAAotL,gBAAA,0BACA,sBAAAptL,EAAA+qL,QAAA,YAAA/qL,EAAA6Y,MAAA,aAAA7Y,EAAA4W,OAAA,IAAAw2K,EAAA,cAEAK,GAAA,SAAAztL,GACA,IAAApO,EAAA,iBAAAoO,EAAA+qL,QAAA,YAAA/qL,EAAA6Y,MAAA,aAAA7Y,EAAA4W,OAAA,0CAKA,OAJA5W,EAAAmrL,SACAv5L,GAAA,aAAAoO,EAAAmrL,OAAA,YAAAnrL,EAAA6Y,MAAA,aAAA7Y,EAAA4W,OAAA,QAEAhlB,GAAA,YACAA,GAEA87L,GAAA,SAAA1tL,EAAA2tL,GACA,OAAAA,EACAA,EAAA3tL,GAEA,mCAAAA,EAAA+qL,QAAA,MAAA/qL,EAAAkrL,QAAA,kBAAAlrL,EAAAkrL,QAAA,KAAAlrL,EAAA4tL,YAAA,UAAA5tL,EAAA4tL,YAAA,gCAGAC,GAAA,SAAA7tL,EAAA8tL,GACA,OAAAA,EACAA,EAAA9tL,GAEA,iBAAAA,EAAA6Y,MAAA,aAAA7Y,EAAA4W,OAAA,KAAA5W,EAAAmrL,OAAA,YAAAnrL,EAAAmrL,OAAA,+CAAAnrL,EAAA+qL,QAAA,KAAA/qL,EAAA+tL,YAAA,UAAA/tL,EAAA+tL,YAAA,iBAAA/tL,EAAAkrL,QAAA,gBAAAlrL,EAAAkrL,QAAA,KAAAlrL,EAAA4tL,YAAA,UAAA5tL,EAAA4tL,YAAA,gCAGAI,GAAA,SAAAhuL,GACA,sBAAAA,EAAA+qL,QAAA,gBAEAkD,GAAA,SAAAj/H,EAAAk/H,GACA,IAAAluL,EAAA7lB,EAAA0oI,OAAA,GAAmCqrE,GACnC,IAAAluL,EAAA+qL,UACA5wM,EAAA0oI,OAAA7iH,EAAAqrL,EAAA9hH,EAAAmgH,WAAA16H,GAAAhvD,EAAAmuL,SACAnuL,EAAA+qL,SACA,SAGA/qL,EAAAkrL,UACAlrL,EAAAkrL,QAAA,IAEAlrL,EAAAmrL,SACAnrL,EAAAmrL,OAAA,IAEAnrL,EAAA+qL,QAAA/7H,EAAAo/H,WAAApuL,EAAA+qL,QAAA,UACA/qL,EAAAkrL,QAAAl8H,EAAAo/H,WAAApuL,EAAAkrL,QAAA,UACAlrL,EAAA+tL,YAAA9B,GAAAX,MAAAtrL,EAAA+qL,SACA/qL,EAAA4tL,YAAA3B,GAAAX,MAAAtrL,EAAAkrL,SACAlrL,EAAAmrL,OAAAn8H,EAAAo/H,WAAApuL,EAAAmrL,OAAA,UACA,IAAAnoF,EAAAuqF,GAAAvtL,EAAA+qL,SAQA,GAPA/nF,IACAhjG,EAAA+qL,QAAA/nF,EAAA5kB,IACAp+E,EAAArgB,KAAAqjH,EAAArjH,KACAqgB,EAAAotL,gBAAApqF,EAAAoqF,gBACAptL,EAAA6Y,MAAA7Y,EAAA6Y,OAAA55B,OAAA+jH,EAAAxoF,GACAxa,EAAA4W,OAAA5W,EAAA4W,QAAA33B,OAAA+jH,EAAA/sF,IAEAjW,EAAAmuL,MACA,OAAAlB,GAAAD,WAAAhtL,EAAAmuL,MAAAnuL,GAAA,GAEA,IAAAirL,EAAAR,EAAAlhH,EAAAmgH,WAAA16H,GAAAhvD,EAAA+qL,SACAE,IACAjrL,EAAArgB,KAAA,SACAqgB,EAAA6Y,MAAA55B,OAAAgsM,EAAApyK,OACA7Y,EAAA4W,OAAA33B,OAAAgsM,EAAAr0K,SAEA,IAAA+2K,EAAApkH,EAAAogH,yBAAA36H,GACA8+H,EAAAvkH,EAAAqgH,yBAAA56H,GAMA,OALAhvD,EAAA6Y,MAAA7Y,EAAA6Y,OAAA,MACA7Y,EAAA4W,OAAA5W,EAAA4W,QAAA,MACAz8B,EAAAmD,KAAA0iB,EAAA,SAAA5mB,EAAAiK,GACA2c,EAAA3c,GAAA2rE,EAAAp8D,IAAA4vE,OAAA,GAAAppF,KAEA,WAAA4mB,EAAArgB,KACA6tM,GAAAxtL,GACS,kCAAAA,EAAA+tL,YACTN,GAAAztL,IACS,IAAAA,EAAA+tL,YAAAzyM,QAAA,SACToyM,GAAA1tL,EAAA2tL,GACS,WAAA3tL,EAAArgB,KACTquM,GAAAhuL,GAEA6tL,GAAA7tL,EAAA8tL,IAKAzmH,GAAA,GACAgnH,GAAA,SAAAruL,EAAAiuL,EAAA1xL,GACA,WAAAm4D,EAAA,SAAAzsE,EAAAqmM,GACA,IAAAC,EAAA,SAAAz+C,GAIA,OAHAA,EAAAl+I,OACAy1E,GAAArnE,EAAA+qL,SAAAj7C,GAEA7nJ,EAAA,CACAm2F,IAAAp+E,EAAA+qL,QACAn5L,KAAAk+I,EAAAl+I,KAAAk+I,EAAAl+I,KAAAq8L,EAAAjuL,MAGAqnE,GAAArnE,EAAA+qL,SACAwD,EAAAlnH,GAAArnE,EAAA+qL,UAEAxuL,EAAA,CAAmB6hF,IAAAp+E,EAAA+qL,SAAoBwD,EAAAD,MAIvCE,GAAA,SAAAxuL,EAAAiuL,GACA,WAAAv5H,EAAA,SAAAzsE,GACAA,EAAA,CACA2J,KAAAq8L,EAAAjuL,GACAo+E,IAAAp+E,EAAA+qL,aAIA0D,GAAA,SAAAz/H,GACA,gBAAAhvD,GACA,OAAAiuL,GAAAj/H,EAAAhvD,KAGA0uL,GAAA,SAAA1/H,EAAAhvD,GACA,IAAA2uL,EAAAplH,EAAAwgH,eAAA/6H,GACA,OAAA2/H,EAAAN,GAAAruL,EAAAyuL,GAAAz/H,GAAA2/H,GAAAH,GAAAxuL,EAAAyuL,GAAAz/H,KAEA4/H,GAAA,SAAAxwG,GACA,OAAA/W,GAAApsF,eAAAmjG,IAEAywG,GAAA,CACAH,gBACAE,aAGAxoL,GAAA,SAAApG,GACA,IAAA8uL,EAAAvpM,EAAAya,EAAA,CACA+qL,QAAA/qL,EAAA+qL,QAAA3xM,MACA8xM,QAAA9nM,EAAA4c,EAAA,WAAAziB,KAAA,SAAA2tM,GACA,OAAA9nM,EAAA8nM,EAAA,WACSruM,MAAA,IACTsuM,OAAA/nM,EAAA4c,EAAA,UAAAziB,KAAA,SAAA4tM,GACA,OAAA/nM,EAAA+nM,EAAA,WACStuM,MAAA,MAYT,OAVAuG,EAAA4c,EAAA,cAAA1iB,KAAA,SAAAo0D,GACAp0D,EAAA,CACA,QACA,UACA,SAAAgO,GACAlI,EAAAsuD,EAAApmD,GAAAhO,KAAA,SAAAlE,GACA,OAAA01M,EAAAxjM,GAAAlS,QAIA01M,GAEAroM,GAAA,SAAAuZ,GACA,IAAAg0E,EAAAzuF,EAAAya,EAAA,CACA+qL,QAAA,CAAkB3xM,MAAAgK,EAAA4c,EAAA,WAAAnjB,MAAA,KAClBquM,QAAA,CAAkB9xM,MAAAgK,EAAA4c,EAAA,WAAAnjB,MAAA,KAClBsuM,OAAA,CAAiB/xM,MAAAgK,EAAA4c,EAAA,UAAAnjB,MAAA,OAYjB,OAVAS,EAAA,CACA,QACA,UACA,SAAAgO,GACAlI,EAAA4c,EAAA1U,GAAAhO,KAAA,SAAAlE,GACA,IAAAs4D,EAAAsiC,EAAAtiC,YAAA,GACAA,EAAApmD,GAAAlS,EACA46F,EAAAtiC,iBAGAsiC,GAEAlF,GAAA,SAAA9f,GACA,gBAAAjwE,GACA,IAAAgwM,EAAAhwM,KAAAhF,IAAA,8BAAAgF,EAAAhF,IAAA,2CACAi1E,EAAAggI,oBAAA/yJ,KAAA,CACAt8C,KAAA,QACA+S,KAAAq8L,MAIAE,GAAA,SAAAjgI,EAAAkgI,GACA,OAAA7D,EAAA9hH,EAAAmgH,WAAA16H,GAAAkgI,IAEAC,GAAA,SAAAv0L,GACA,OAAAA,EAAA2M,aAAA,oBAAA3M,EAAA2M,aAAA,yBAEA6nL,GAAA,SAAApgI,GACA,IAAAp0D,EAAAo0D,EAAA5kC,UAAAqoC,UACA48H,EAAAF,GAAAv0L,GAAAo0D,EAAAsgI,WAAAC,UAAA30L,EAAA,CAAoFwvB,WAAA,IAAkB,GACtG,OAAA7kC,EAAA,CAAoB4oM,MAAAkB,GAAiBhE,EAAA9hH,EAAAmgH,WAAA16H,GAAAqgI,KAErCG,GAAA,SAAA94K,EAAAs4C,GACA,gBAAA8gF,GACA,GAAAlwJ,EAAAkwJ,EAAA1xD,MAAA0xD,EAAA1xD,IAAAxlF,OAAA3f,OAAA,GACA,IAAA2Y,EAAAk+I,EAAAl+I,KACA69L,EAAAR,GAAAjgI,EAAAp9D,GACA0nK,EAAA9+K,IAAA,GAA2Ci1M,GAAA,CAC3C1E,QAAAj7C,EAAA1xD,IACA+vG,MAAAv8L,IAEA8kB,EAAA27J,QAAA5rL,GAAA6yK,OAIAo2B,GAAA,SAAA1gI,EAAA2gI,GAEA,IADA,IAAAC,EAAA5gI,EAAAp8D,IAAAu5E,OAAA,wBACAtxF,EAAA,EAAqBA,EAAA80M,EAAA12M,OAA0B4B,IAC/C,QAAAkY,EAAA68L,EAAA32M,OAAA,EAA6C8Z,GAAA,EAAQA,IACrD48L,EAAA90M,KAAA+0M,EAAA78L,IACA68L,EAAAloH,OAAA30E,EAAA,GAIAi8D,EAAA5kC,UAAA+hD,OAAAyjH,EAAA,KAEAC,GAAA,SAAA7gI,EAAAp9D,GACA,IAAA+9L,EAAA3gI,EAAAp8D,IAAAu5E,OAAA,wBACAnd,EAAAqnH,cAAAzkL,GACA89L,GAAA1gI,EAAA2gI,GACA3gI,EAAAub,eAEAulH,GAAA,SAAAxd,EAAA1+D,EAAA5kD,GACA4kD,EAAAu6E,MAAAlB,GAAAD,WAAAp5E,EAAAu6E,MAAAv6E,GACAA,EAAAu6E,QAAA7b,EAAAyY,UAAAn3E,EAAAm3E,SAAA8D,GAAAD,SAAAh7E,EAAAm3E,UACA8E,GAAA7gI,EAAA4kD,EAAAu6E,OAEAU,GAAAH,aAAA1/H,EAAA4kD,GAAAz9C,KAAA,SAAA25E,GACA+/C,GAAA7gI,EAAA8gF,EAAAl+I,QACS81G,MAAA54B,GAAA9f,KAGT6yG,GAAA,SAAA7yG,GACA,IAAA+gI,EAAAX,GAAApgI,GACAi/G,EAAA18K,EAAAw+L,GACAhjH,EAAAtmF,GAAAspM,GACAC,EAAA,SAAAt5K,GACA,OAAAtQ,GAAAsQ,EAAA/J,YAEAsjL,EAAA,SAAA3d,EAAA57J,GACA,IAAAw5K,EAAAF,EAAAt5K,GACA47J,EAAAyY,UAAAmF,EAAAnF,UACAyE,GAAA73K,EAAAq3C,EAAAwgI,CAAA,CACApxG,IAAA8xG,EAAAnF,QACAn5L,KAAA,KAEAi9L,GAAAH,aAAA1/H,EAAAkhI,GAAA/5H,KAAAq5H,GAAA73K,EAAAq3C,IAAA04C,MAAA54B,GAAA9f,MAGAmhI,EAAA,SAAAz5K,GACA,IAAA1W,EAAAoG,GAAAsQ,EAAA/J,WACAyjL,EAAAnB,GAAAjgI,EAAAhvD,EAAAmuL,OACAz3K,EAAA27J,QAAA5rL,GAAA2pM,KAEAC,EAAA,SAAA35K,GACA,IAAA1W,EAAAgwL,EAAAt5K,GACAy3K,EAAAF,GAAAj/H,EAAAhvD,GACA0W,EAAA27J,QAAA5rL,GAAAjM,IAAA,GAA6CwlB,GAAA,CAAUmuL,aAEvDmC,EAAA,EACA7wM,KAAA,UACAE,KAAA,WACA2vI,SAAA,QACA/qI,MAAA,WAEA63H,EAAA7yC,EAAA2gH,cAAAl7H,GAAA,EACArvE,KAAA,YACAF,KAAA,aACA8E,MAAA,wBACA03H,WAAA,IAJA,GAMAs0E,EAAA,CACA7yH,MAAA,UACAj+E,KAAA,UACA0gD,MAAAt+C,EAAA,CACAyuM,EACAl0E,KAGAo0E,EAAA,CACA7wM,KAAA,WACAF,KAAA,QACA8E,MAAA,gCAEAksM,EAAA,CACA/yH,MAAA,QACAv9B,MAAA,CAAAqwJ,IAEAE,EAAA,GACAnnH,EAAAygH,aAAAh7H,IACA0hI,EAAAjwM,KAAA,CACAhB,KAAA,UACAE,KAAA,WACA2vI,SAAA,QACA/qI,MAAA,2BAGAglF,EAAA0gH,UAAAj7H,IACA0hI,EAAAjwM,KAAA,CACAhB,KAAA,SACAE,KAAA,WACA2vI,SAAA,QACA/qI,MAAA,6BAGA,IAAAosM,EAAA,CACAjzH,MAAA,WACAj+E,KAAA,WACA0gD,MAAAuwJ,GAEA/lB,EAAA,CACA4lB,EACAE,GAEAC,EAAAz3M,OAAA,GACA0xL,EAAAlqL,KAAAkwM,GAEA,IAAA5vL,EAAA,CACAphB,KAAA,WACAgrL,QAEAhzJ,EAAAq3C,EAAAie,cAAAhxC,KAAA,CACAyhC,MAAA,oBACAx8E,KAAA,SACA6f,OACAmsE,QAAA,CACA,CACAvtF,KAAA,SACAF,KAAA,SACAiT,KAAA,UAEA,CACA/S,KAAA,SACAF,KAAA,OACAiT,KAAA,OACAqxD,SAAA,IAGAopB,SAAA,SAAAz2D,GACA,IAAAw5K,EAAAF,EAAAt5K,GACAo5K,GAAA7hB,EAAA7qL,MAAA8sM,EAAAlhI,GACAt4C,EAAA+lB,SAEA29D,SAAA,SAAA1jF,EAAAnU,GACA,OAAAA,EAAA9iB,MACA,cACAwwM,EAAAhiB,EAAA7qL,MAAAszB,GACA,MACA,YACAy5K,EAAAz5K,GACA,MACA,iBACA,aACA25K,EAAA35K,GACA,MACA,QACA,MAEAu3J,EAAAx8K,IAAAu+L,EAAAt5K,KAEAq2D,iBAGA6jH,GAAA,CAAkB/uB,eAElBt7J,GAAA,SAAAyoD,GACA,IAAA6yG,EAAA,WACA+uB,GAAA/uB,WAAA7yG,IAEA,OAAc6yG,eAEd6mB,GAAA,CAAetlM,IAAAmjB,IAEfuwD,GAAA,SAAA9H,GACA,IAAA6yG,EAAA,WACA+uB,GAAA/uB,WAAA7yG,IAEAA,EAAA0b,WAAA,WAAAm3F,IAEAinB,GAAA,CAAoBhyH,aAEpBkL,GAAA5nF,QAAAC,KAAAC,MAAAC,QAAA,qBAEAusF,GAAA1sF,QAAAC,KAAAC,MAAAC,QAAA,eAEAs2M,GAAA,SAAA7hI,EAAAp9D,GACA,QAAA23E,EAAAugH,iBAAA96H,GACA,OAAAp9D,EAEA,IACAk/L,EADAzE,EAAA3xH,KAqCA,OAnCA5L,EAAA,CACA24B,UAAA,EACAqjG,4BAAA,EACA4B,QAAA,SAAAh6L,GACA25L,EAAAK,QAAAh6L,IAEAi6L,MAAA,SAAAj6L,GACA25L,EAAAM,MAAAj6L,IAEAA,KAAA,SAAAA,EAAAogB,GACAu5K,EAAA35L,OAAAogB,IAEAta,MAAA,SAAA/Y,EAAA4nB,EAAAtB,GAEA,GADA+qL,GAAA,EACA,WAAArxM,GAAA,aAAAA,EAAA,CAGA,QAAA5E,EAAA,EAAyBA,EAAAwsB,EAAApuB,OAAkB4B,IAAA,CAC3C,OAAAwsB,EAAAxsB,GAAA4E,KAAAnE,QAAA,MACA,OAEA,UAAA+rB,EAAAxsB,GAAA4E,OACA4nB,EAAAxsB,GAAAzB,MAAA41E,EAAAp8D,IAAAm+L,eAAA/hI,EAAAp8D,IAAAo+L,WAAA3pL,EAAAxsB,GAAAzB,OAAAqG,IAGA4sM,EAAA7zL,MAAA/Y,EAAA4nB,EAAAtB,GACA+qL,GAAA,IAEA7nF,IAAA,SAAAxpH,GACAqxM,GAGAzE,EAAApjF,IAAAxpH,KAEOm8E,GAAA,KAAa1I,MAAAthE,GACpBy6L,EAAA7gI,cAEAylI,GAAA,CAAoBJ,aAEpBK,GAAA,SAAAliI,EAAAx8D,GACA,IAAA2+L,EACA1xM,EAAA+S,EAAA/S,KAYA,OAXA0xM,EAAA,IAAAnvH,GAAA,SACAmvH,EAAAC,YAAA,EACAC,GAAAriI,EAAAx8D,EAAA2+L,GACAA,EAAApgL,KAAA,CACA8H,MAAArmB,EAAAue,KAAA,gBACA6F,OAAApkB,EAAAue,KAAA,sBAAAtxB,EAAA,YACAsyB,MAAAvf,EAAAue,KAAA,SACAq3F,IAAAthC,GAAAwqH,eACAC,kBAAA9xM,EACA+xM,MAAA,yBAAA/xM,IAEA0xM,GAEAM,GAAA,SAAAziI,EAAAx8D,GACA,IAAAk/L,EACAC,EACAC,EACAnyM,EAAA+S,EAAA/S,KAuBA,OAtBAiyM,EAAA,IAAA1vH,GAAA,UACA0vH,EAAA3gL,KAAA,CACAmnH,gBAAA,QACAnmH,MAAAvf,EAAAue,KAAA,SACAwgL,kBAAA9xM,EACA+xM,MAAA,iCAAA/xM,IAEA4xM,GAAAriI,EAAAx8D,EAAAk/L,GACAC,EAAA,IAAA3vH,GAAAviF,EAAA,GACAkyM,EAAA5gL,KAAA,CACAq3F,IAAA51G,EAAAue,KAAA,OACA8gL,gBAAAr/L,EAAAue,KAAA,mBACAgB,MAAAvf,EAAAue,KAAA,SACAygL,MAAAh/L,EAAAue,KAAA,SACA8H,MAAArmB,EAAAue,KAAA,SACA6F,OAAApkB,EAAAue,KAAA,UACA+gL,YAAA,MAEAF,EAAA,IAAA5vH,GAAA,UACA4vH,EAAA7gL,KAAA,oBACA2gL,EAAAnsL,OAAAosL,GACAD,EAAAnsL,OAAAqsL,GACAF,GAEAL,GAAA,SAAAriI,EAAA+iI,EAAAjnC,GACA,IAAAknC,EACAC,EACAC,EACAC,EACA3+K,EACA0+K,EAAAH,EAAA9kL,WACAklL,EAAAD,EAAAj5M,OACA,MAAAk5M,IACAH,EAAAE,EAAAC,GAAA1yM,KACAwyM,EAAAC,EAAAC,GAAA/4M,MACA,UAAA44M,GAAA,WAAAA,GAAA,UAAAA,IACA,SAAAA,GAAA,QAAAA,IACAC,EAAAjjI,EAAAo/H,WAAA6D,EAAAD,IAEAlnC,EAAA/5I,KAAA,cAAAihL,EAAAC,IAGAz+K,EAAAu+K,EAAAhtL,YAAAgtL,EAAAhtL,WAAA3rB,MACAo6B,IACAs3I,EAAA/5I,KAAA,gBAAAqhL,OAAAnB,GAAAJ,SAAA7hI,EAAAx7C,KACAs3I,EAAA/lJ,WAAA,OAGAstL,GAAA,SAAA7/L,GACA,IAAA8/L,EAAA9/L,EAAAue,KAAA,SACA,OAAAuhL,GAAA,qBAAA5+L,KAAA4+L,IAEAC,GAAA,SAAA//L,GACA,MAAAA,IAAAgS,OACA,GAAAhS,EAAAue,KAAA,yBAAAshL,GAAA7/L,GACA,SAGA,UAEAggM,GAAA,SAAAxjI,GACA,gBAAAphC,GACA,IACAp7B,EACAy4L,EAFApwM,EAAA+yC,EAAA30C,OAGA,MAAA4B,IACA2X,EAAAo7B,EAAA/yC,GACA2X,EAAAgS,SAGAhS,EAAAgS,OAAAuM,KAAA,qBAGA,WAAAve,EAAA/S,OACAwrM,EAAAR,EAAAlhH,EAAAmgH,WAAA16H,GAAAx8D,EAAAue,KAAA,QACAk6K,MAIAA,IACAA,EAAApyK,OACArmB,EAAAue,KAAA,QAAAk6K,EAAApyK,MAAA/6B,YAEAmtM,EAAAr0K,QACApkB,EAAAue,KAAA,SAAAk6K,EAAAr0K,OAAA94B,aAGA,WAAA0U,EAAA/S,MAAA8pF,EAAAsgH,cAAA76H,IAAA8X,GAAA2rH,QACAF,GAAA//L,IACAA,EAAAyB,QAAAw9L,GAAAziI,EAAAx8D,IAGA+/L,GAAA//L,IACAA,EAAAyB,QAAAi9L,GAAAliI,EAAAx8D,QAMAkgM,GAAA,CACAjB,2BACAP,yBACAsB,yBAGA1rI,GAAA,SAAAkI,GACAA,EAAA/lC,GAAA,qBACA,IAAA0pK,EAAA3jI,EAAAjiE,OAAA6lM,qBACAz4M,EAAAmD,KAAA,4BAAAytB,MAAA,cAAAtrB,GACAkzM,EAAAlzM,GAAA,IAAAojF,OAAA,KAAApjF,EAAA,iBAEA,IAAAozM,EAAA7jI,EAAAjiE,OAAA+lM,eACA34M,EAAAmD,KAAA,2DAAAytB,MAAA,cAAAtrB,GACAozM,EAAApzM,GAAA,KAEAuvE,EAAAwxH,OAAAuS,cAAA,yCAAAL,GAAAF,qBAAAxjI,IACAA,EAAAsgI,WAAA0D,mBAAA,2BAAAplK,EAAAnuC,GACA,IACA+S,EACAygM,EACAd,EACAD,EACA1+K,EACA0/K,EACAC,EACAviE,EARA/1I,EAAA+yC,EAAA30C,OASA,MAAA4B,IAEA,GADA2X,EAAAo7B,EAAA/yC,GACA2X,EAAAgS,OAAA,CAGA2uL,EAAA3gM,EAAAue,KAAAtxB,GACAwzM,EAAA,IAAAjxH,GAAAmxH,EAAA,GACA,UAAAA,GAAA,WAAAA,IACAviE,EAAAp+H,EAAAue,KAAA,SACA6/G,IAAA,IAAAA,EAAAt1I,QAAA,sBACA23M,EAAAliL,KAAA,CACA8H,MAAArmB,EAAAuS,WAAAgM,KAAA,SACA6F,OAAApkB,EAAAuS,WAAAgM,KAAA,YAGAkiL,EAAAliL,KAAA,CACA8H,MAAArmB,EAAAue,KAAA,SACA6F,OAAApkB,EAAAue,KAAA,aAIAkiL,EAAAliL,KAAA,CAA0BgB,MAAAvf,EAAAue,KAAA,WAC1BmhL,EAAA1/L,EAAAya,WACAklL,EAAAD,EAAAj5M,OACA,MAAAk5M,IAAA,CACA,IAAAH,EAAAE,EAAAC,GAAA1yM,KACA,IAAAuyM,EAAA12M,QAAA,gBACA23M,EAAAliL,KAAAihL,EAAAz5L,OAAA,IAAA25L,EAAAC,GAAA/4M,OAGA,WAAA+5M,GACAF,EAAAliL,KAAA,0BAEAyC,EAAAhhB,EAAAue,KAAA,iBACAyC,IACA0/K,EAAA,IAAAlxH,GAAA,WACAkxH,EAAApgL,KAAA,EACAogL,EAAA95M,MAAA63M,GAAAJ,SAAA7hI,EAAAokI,SAAA5/K,IACAy/K,EAAA1tL,OAAA2tL,IAEA1gM,EAAAyB,QAAAg/L,QAIAjkI,EAAA/lC,GAAA,wBACA+lC,EAAAo4H,EAAA,2BAAA9pM,KAAA,SAAAunB,EAAAguD,GACA,IAAAwgI,EAAArkI,EAAAo4H,EAAAv0H,GACA,IAAAwgI,EAAA1xM,KAAA,iBAAA1I,QACAo6M,EAAA9tL,OAAA,uCAKA+tL,GAAA,CAAyBxsI,UAEzBuvB,GAAA,SAAArnB,GACAA,EAAA/lC,GAAA,uBAAA5tC,GACA,IAAAoE,EACA,IAAApE,EAAAgJ,OAAAyW,WAAArb,EAAApE,EAAAgJ,OAAAkjB,aAAA,sBACAlsB,EAAAoE,WAIA8zM,GAAA,CAAuBzsI,MAAAuvB,IAEvB+G,GAAA,SAAApuB,GACAA,EAAA/lC,GAAA,kCACA,IAAAuqK,EAAAxkI,EAAA5kC,UAAAqoC,UACA+gI,GAAAxkI,EAAAp8D,IAAA6gM,SAAAD,EAAA,uBACAxkI,EAAAp8D,IAAA+3L,UAAA6I,EAAA,sBACAA,EAAAtsL,aAAA,2BAIA8nD,EAAA/lC,GAAA,0BAAA5tC,GACA,IAAAq4M,EAAAr4M,EAAAgJ,OAAAkjB,aAAA,mBACA,UAAAmsL,GAAA,WAAAA,GACAr4M,EAAAumB,mBAGAotD,EAAA/lC,GAAA,yBAAA5tC,GACA,IACAuW,EADAvN,EAAAhJ,EAAAgJ,OAEAA,EAAAkjB,aAAA,qBACA3V,EAAAvN,EAAAkjB,aAAA,iBACA3V,IACAA,EAAAwhM,SAAAxhM,GACAvN,EAAA6iB,aAAA,gBAAAkrL,OAAAnF,GAAAD,WAAAp7L,EAAA,CACAinB,MAAA55B,OAAA5D,EAAAw9B,OACAjC,OAAA33B,OAAA5D,EAAAu7B,iBAMAgU,GAAA,CAAqBk8B,MAAAs2B,IAErBu2G,GAAA,SAAA3kI,EAAAn0D,GACA,gBAAAq3G,GACA,OAAAljD,EAAA5kC,UAAAwpK,0BAAA/4L,EAAA3W,KAAA,KAAAguH,EAAA9uC,WAAA8Q,SAGA7G,GAAA,SAAAre,GACAA,EAAAgI,GAAAC,SAAA6tF,gBAAA,SACAhrF,QAAA,oBACAtL,KAAA,QACAI,SAAA,WACAI,EAAAqc,YAAA,aAEAjK,QAAAuyH,GAAA3kI,EAAA,CACA,uBACA,wBACA,gCAGAA,EAAAgI,GAAAC,SAAAm3F,YAAA,SACA5/F,KAAA,QACA97D,KAAA,WACAk8D,SAAA,WACAI,EAAAqc,YAAA,gBAIAm+G,GAAA,CAAmB1yH,SAAAuW,IAEnB,SAAAo8G,KACAnxM,EAAA04B,IAAA,iBAAAg+C,GAMA,OALA85H,GAAAhyH,SAAA9H,GACAw6H,GAAA1yH,SAAA9H,GACAukI,GAAAzsI,MAAAkI,GACAskI,GAAAxsI,MAAAkI,GACApkC,GAAAk8B,MAAAkI,GACA05H,GAAAtlM,IAAA4rE,KAIAy6H,MA50CA,2BCFAlQ,EAAQ,yDCARA,EAAQ,6CCNR,IAAAsa,EAAAta,EAAA,QAAAua,EAAAva,EAAAz+L,EAAA+4M,GAA4eC,EAAG,0BCM/eva,EAAQ,8BCARA,EAAQ,+BCER,SAAAhhM,GACA,aAEA,IAAAgZ,EAAA,SAAAC,GACA,IAAApY,EAAAoY,EACApO,EAAA,WACA,OAAAhK,GAEAqY,EAAA,SAAAtT,GACA/E,EAAA+E,GAEAuT,EAAA,WACA,OAAAH,EAAAnO,MAEA,OACAA,MACAqO,MACAC,UAIAlZ,EAAA,aAEAG,EAAA,SAAAC,EAAAC,GACA,kBAEA,IADA,IAAAC,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,OAAAH,EAAAC,EAAAK,MAAA,KAAAJ,MAGAK,EAAA,SAAAC,GACA,kBACA,OAAAA,IAGAC,EAAA,SAAAC,GACA,OAAAA,GAEA,SAAAC,EAAAC,GAEA,IADA,IAAAC,EAAA,GACAV,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CU,EAAAV,EAAA,GAAAC,UAAAD,GAEA,kBAEA,IADA,IAAAW,EAAA,GACAX,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CW,EAAAX,GAAAC,UAAAD,GAEA,IAAAY,EAAAF,EAAAG,OAAAF,GACA,OAAAF,EAAAN,MAAA,KAAAS,IAGA,IAAAE,EAAA,SAAAnB,GACA,kBAEA,IADA,IAAAI,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,OAAAL,EAAAQ,MAAA,KAAAJ,KAGAgB,EAAA,SAAAC,GACA,kBACA,UAAAC,MAAAD,KAGAE,EAAAd,GAAA,GACAe,EAAAf,GAAA,GAEA+C,EAAA,WACA,OAAAC,GAEAA,EAAA,WACA,IAAAC,EAAA,SAAAC,GACA,OAAAA,EAAAC,UAEApB,EAAA,SAAAqB,GACA,OAAAA,KAEAC,EAAA,SAAA1B,GACA,OAAAA,GAEA2B,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAE,KAEA6B,GAAA1C,EACA2C,OAAA3C,EACAqC,OAAApC,EACA2C,MAAAL,EACAM,WAAA5B,EACA6B,SAAA,SAAAhD,GACA,UAAAC,MAAAD,GAAA,oCAEAiD,UAAA7D,EAAA,MACA8D,eAAA9D,OAAA+D,GACAC,GAAAX,EACAY,QAAAlC,EACAmC,IAAAnB,EACAoB,KAAA9E,EACA+E,KAAArB,EACAsB,OAAAvD,EACAwD,OAAAvD,EACAwD,OAAAxB,EACAyB,OAAAvB,EACAwB,QAAAxB,EACAyB,QAAA,WACA,UAEAC,SAAA3E,EAAA,WAKA,OAHAsB,OAAAsD,QACAtD,OAAAsD,OAAAtB,GAEAA,EA1CA,GA4CAuB,EAAA,SAAAlC,GACA,IAAAmC,EAAA9E,EAAA2C,GACAoC,EAAA,WACA,OAAAzB,GAEAc,EAAA,SAAA7E,GACA,OAAAA,EAAAoD,IAEAW,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAA,EAAAkB,IAEAa,GAAA,SAAAwB,GACA,OAAArC,IAAAqC,GAEAvB,OAAA1C,EACAoC,OAAArC,EACA4C,MAAAoB,EACAnB,WAAAmB,EACAlB,SAAAkB,EACAjB,UAAAiB,EACAhB,eAAAgB,EACAd,GAAAe,EACAd,QAAAc,EACAb,IAAA,SAAA3E,GACA,OAAAsF,EAAAtF,EAAAoD,KAEAwB,KAAA,SAAA5E,GACAA,EAAAoD,IAEAyB,OACAC,OAAAD,EACAE,OAAAF,EACAG,OAAA,SAAAhF,GACA,OAAAA,EAAAoD,GAAAW,EAAAN,GAEA0B,QAAA,WACA,OAAA/B,IAEAgC,SAAA,WACA,cAAAhC,EAAA,KAEA6B,OAAA,SAAAtB,GACA,OAAAA,EAAAM,GAAAb,IAEA8B,QAAA,SAAAvB,EAAA+B,GACA,OAAA/B,EAAAK,KAAAzC,EAAA,SAAAoE,GACA,OAAAD,EAAAtC,EAAAuC,OAIA,OAAA5B,GAEA6B,EAAA,SAAAlF,GACA,cAAAA,QAAA8D,IAAA9D,EAAA+C,EAAA6B,EAAA5E,IAEAmF,EAAA,CACAP,OACA9B,OACAoC,QAGAhG,EAAA8B,QAAAC,KAAAC,MAAAC,QAAA,yBAEA+E,EAAA,SAAAhG,GACA,UAAAA,EACA,aAEA,IAAAqB,SAAArB,EACA,iBAAAqB,IAAAiB,MAAAZ,UAAAuE,cAAAjG,MAAAkG,aAAA,UAAAlG,EAAAkG,YAAAC,MACA,QAEA,WAAA9E,IAAAsE,OAAAjE,UAAAuE,cAAAjG,MAAAkG,aAAA,WAAAlG,EAAAkG,YAAAC,MACA,SAEA9E,GAEA+E,EAAA,SAAAC,GACA,gBAAAvG,GACA,OAAAkG,EAAAlG,KAAAuG,IAGAC,EAAAF,EAAA,UACAI,EAAAJ,EAAA,SACAK,EAAAL,EAAA,WACAM,EAAAN,EAAA,YACAO,EAAAP,EAAA,UAEAW,EAAAzE,MAAAZ,UAAAsF,MACAC,EAAA3E,MAAAZ,UAAAM,QACAkF,EAAA5E,MAAAZ,UAAAyF,KACAC,EAAA,SAAAC,EAAAhG,GACA,OAAA4F,EAAArF,KAAAyF,EAAAhG,IAEAkG,EAAA,SAAAD,EAAAtH,GACA,OAAAoH,EAAAE,EAAAtH,IAAA,GAEAkE,EAAA,SAAAoD,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,GAAAsF,EAAA7G,EAAAuB,GACA,SAGA,UAEAwC,EAAA,SAAAuD,EAAAlI,GAGA,IAFA,IAAA0H,EAAAQ,EAAA3H,OACA0C,EAAA,IAAAC,MAAAwE,GACAvF,EAAA,EAAqBA,EAAAuF,EAASvF,IAAA,CAC9B,IAAAvB,EAAAsH,EAAA/F,GACAc,EAAAd,GAAAnC,EAAAY,EAAAuB,GAEA,OAAAc,GAEA2B,EAAA,SAAAsD,EAAAlI,GACA,QAAAmC,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAnC,EAAAY,EAAAuB,KAGAsG,EAAA,SAAAP,EAAAlI,GACA,QAAAmC,EAAA+F,EAAA3H,OAAA,EAAiC4B,GAAA,EAAQA,IAAA,CACzC,IAAAvB,EAAAsH,EAAA/F,GACAnC,EAAAY,EAAAuB,KAGA6C,EAAA,SAAAkD,EAAAT,GAEA,IADA,IAAAxE,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAsF,EAAA7G,EAAAuB,IACAc,EAAA8E,KAAAnH,GAGA,OAAAqC,GAEA6F,EAAA,SAAAZ,EAAAlI,EAAA+I,GAIA,OAHAN,EAAAP,EAAA,SAAAtH,GACAmI,EAAA/I,EAAA+I,EAAAnI,KAEAmI,GAEAC,EAAA,SAAAd,EAAAlI,EAAA+I,GAIA,OAHAnE,EAAAsD,EAAA,SAAAtH,GACAmI,EAAA/I,EAAA+I,EAAAnI,KAEAmI,GAEAE,EAAA,SAAAf,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,GAAAsF,EAAA7G,EAAAuB,GACA,OAAA0D,EAAAP,KAAA1E,GAGA,OAAAiF,EAAArC,QAEA0F,EAAA,SAAAhB,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,GAAAsF,EAAA7G,EAAAuB,GACA,OAAA0D,EAAAP,KAAAnD,GAGA,OAAA0D,EAAArC,QAEA2F,EAAA,SAAAjB,GAEA,IADA,IAAAjF,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,IAASvF,EAAA,CAC/C,IAAAiF,EAAAc,EAAA/F,IACA,UAAAb,MAAA,oBAAAa,EAAA,6BAAA+F,GAEAJ,EAAAtH,MAAAyC,EAAAiF,EAAA/F,IAEA,OAAAc,GAEA4B,EAAA,SAAAqD,EAAAlI,GACA,IAAAoJ,EAAAzE,EAAAuD,EAAAlI,GACA,OAAAmJ,EAAAC,IAEArE,EAAA,SAAAmD,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,IAASvF,EAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,QAAAsF,EAAA7G,EAAAuB,GACA,SAGA,UAEAkH,EAAA,SAAAnB,GACA,IAAAjF,EAAA0E,EAAAnF,KAAA0F,EAAA,GAEA,OADAjF,EAAAoG,UACApG,GAEA6G,EAAA,SAAA5B,GACA,WAAAA,EAAA3H,OAAAsF,EAAArC,OAAAqC,EAAAP,KAAA4C,IAAA3H,OAAA,KAMAyJ,GAJA1C,EAAApE,MAAA0C,OAAA1C,MAAA0C,KAIA7D,OAAAiI,MACAzH,EAAAR,OAAAQ,eACA0H,EAAA,SAAAC,EAAAlK,GAEA,IADA,IAAAmK,EAAAH,EAAAE,GACA/G,EAAA,EAAAuE,EAAAyC,EAAA5J,OAAyC4C,EAAAuE,EAASvE,IAAA,CAClD,IAAAhB,EAAAgI,EAAAhH,GACAvC,EAAAsJ,EAAA/H,GACAnC,EAAAY,EAAAuB,KAGAiI,EAAA,SAAAF,EAAAlK,GACA,OAAAqK,EAAAH,EAAA,SAAAtJ,EAAAuB,GACA,OACAgB,EAAAhB,EACAsD,EAAAzF,EAAAY,EAAAuB,OAIAkI,EAAA,SAAAH,EAAAlK,GACA,IAAAiD,EAAA,GAKA,OAJAgH,EAAAC,EAAA,SAAAtJ,EAAAuB,GACA,IAAAmI,EAAAtK,EAAAY,EAAAuB,GACAc,EAAAqH,EAAAnH,GAAAmH,EAAA7E,IAEAxC,GAEAyH,EAAA,SAAAR,EAAAS,GACA,OAAAC,EAAAV,EAAAS,GAAA9E,EAAAD,KAAAsE,EAAAS,IAAA9E,EAAArC,QAEAoH,EAAA,SAAAV,EAAAS,GACA,OAAApI,EAAAC,KAAA0H,EAAAS,IAGAigB,EAAA,WAEA,IADA,IAAAld,EAAA,GACArN,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CqN,EAAArN,GAAAC,UAAAD,GAEA,kBAEA,IADA,IAAAoK,EAAA,GACApK,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CoK,EAAApK,GAAAC,UAAAD,GAEA,GAAAqN,EAAAnN,SAAAkK,EAAAlK,OACA,UAAAe,MAAA,mDAAAoM,EAAAnN,OAAA,WAAAkK,EAAAlK,OAAA,cAEA,IAAAsqB,EAAA,GAIA,OAHAjmB,EAAA8I,EAAA,SAAA3G,EAAA5E,GACA0oB,EAAA9jB,GAAAtG,EAAAgK,EAAAtI,MAEA0oB,IAIAnhB,EAAA,SAAAb,GACA,OAAAA,EAAAjB,MAAA,GAAA8B,QAEAqhB,EAAA,SAAAC,EAAAhhB,GACA,UAAA1I,MAAA,sBAAAoI,EAAAshB,GAAAxf,KAAA,oDAAA9B,EAAAM,GAAAwB,KAAA,YAEAyf,EAAA,SAAAjZ,GACA,UAAA1Q,MAAA,gCAAAoI,EAAAsI,GAAAxG,KAAA,QAEA0f,GAAA,SAAArf,EAAAtD,GACA,IAAAnB,EAAAmB,GACA,UAAAjH,MAAA,OAAAuK,EAAA,kCAAAtD,EAAA,KAEA3D,EAAA2D,EAAA,SAAAnF,GACA,IAAA8D,EAAA9D,GACA,UAAA9B,MAAA,aAAA8B,EAAA,WAAAyI,EAAA,gCAIAwvM,GAAA,SAAAC,EAAAr0M,GACA,UAAA3F,MAAA,kCAAA2F,EAAA,WAAAyC,EAAA4xM,GAAA9vM,KAAA,sBAEA2f,GAAA,SAAAC,GACA,IAAAC,EAAA3hB,EAAA0hB,GACAE,EAAAriB,EAAAoiB,EAAA,SAAAnpB,EAAAC,GACA,OAAAA,EAAAkpB,EAAA9qB,OAAA,GAAA2B,IAAAmpB,EAAAlpB,EAAA,KAEAmpB,EAAA1mB,KAAA,SAAA2mB,GACA,UAAAjqB,MAAA,cAAAiqB,EAAA,mDAAAF,EAAA7f,KAAA,eAIAggB,GAAA,SAAAR,EAAAS,GACA,IAAAL,EAAAJ,EAAA9pB,OAAAuqB,GACA,OAAAL,EAAA7qB,OACA,UAAAe,MAAA,6DAKA,OAHA4pB,GAAA,WAAAF,GACAE,GAAA,WAAAO,GACAN,GAAAC,GACA,SAAAlhB,GACA,IAAAiB,EAAAnB,EAAAE,GACAuB,EAAA1G,EAAAimB,EAAA,SAAAU,GACA,OAAAvjB,EAAAgD,EAAAugB,KAEAjgB,GACAsf,EAAAC,EAAA7f,GAEA,IAAA6G,EAAAhN,EAAAmG,EAAA,SAAAR,GACA,OAAAxC,EAAAijB,EAAAzgB,KAEAqH,EAAAzR,OAAA,GACA0qB,EAAAjZ,GAEA,IAAA/O,EAAA,GAOA,OANA2B,EAAAomB,EAAA,SAAAU,GACAzoB,EAAAyoB,GAAAjrB,EAAAyJ,EAAAwhB,MAEA9mB,EAAA6mB,EAAA,SAAA3lB,GACA7C,EAAA6C,GAAArF,EAAAsB,OAAAO,UAAAC,eAAAC,KAAA0H,EAAApE,GAAAD,EAAAP,KAAA4E,EAAApE,IAAAD,EAAArC,UAEAP,IAMAs4M,IAFA17M,EAAA6a,KAAAwG,eACArhB,EAAA6a,KAAAyG,mBACAthB,EAAA6a,KAAA0G,cACAH,GAAAphB,EAAA6a,KAAA2G,cAGAC,IAFAzhB,EAAA6a,KAAA6G,mBACA1hB,EAAA6a,KAAA8G,uBACA3hB,EAAA6a,KAAA+G,cACAC,GAAA7hB,EAAA6a,KAAAiH,UAQA5a,IAPAlH,EAAA6a,KAAAmH,4BACAhiB,EAAA6a,KAAAoH,sBACAjiB,EAAA6a,KAAAqH,YACAliB,EAAA6a,KAAAsH,cAEA,qBAAAniB,EAAA8gB,OAAA9gB,EAAA8gB,OAAAkH,SAAA,eAAAA,GAEA,SAAA3F,GACA,IAAAjf,EAAAif,EAAAhI,MAAA4N,SACA,OAAA7kB,EAAA2Y,gBAEA3U,GAAA,SAAAib,GACA,OAAAA,EAAAhI,MAAAkI,UAEA2F,GAAA,SAAA9lB,GACA,gBAAAigB,GACA,OAAAjb,GAAAib,KAAAjgB,IAGAu5M,GAAA,SAAAt5L,GACA,OAAAjb,GAAAib,KAAAq5L,IAAA,aAAAx0M,GAAAmb,IAEA8F,GAAAD,GAAAzG,IACA2G,GAAAF,GAAArG,IAEA6M,GAAA,SAAArU,EAAAvP,EAAAjK,GACA,KAAAwG,EAAAxG,IAAA2G,EAAA3G,IAAA6G,EAAA7G,IAIA,MADAb,EAAAiM,QAAAzF,MAAA,iCAAAsE,EAAA,YAAAjK,EAAA,cAAAwZ,GACA,IAAA5Y,MAAA,kCAHA4Y,EAAAsU,aAAA7jB,EAAAjK,EAAA,KAMAqY,GAAA,SAAAmJ,EAAAvX,EAAAjK,GACA6tB,GAAArM,EAAAhI,MAAAvP,EAAAjK,IAEAguB,GAAA,SAAAxM,EAAAyM,GACA,IAAAzU,EAAAgI,EAAAhI,MACAjQ,EAAA0kB,EAAA,SAAAlpB,EAAAtC,GACAorB,GAAArU,EAAA/W,EAAAsC,MAGAooB,GAAA,SAAA3L,EAAAvX,GACA,IAAAlF,EAAAyc,EAAAhI,MAAA2U,aAAAlkB,GACA,cAAAlF,OAAAjB,EAAAiB,GAEAqpB,GAAA,SAAA5M,EAAAvX,GACA,IAAAuP,EAAAgI,EAAAhI,MACA,SAAAA,MAAA6U,eAAA7U,EAAA6U,aAAApkB,IAEA6iB,GAAA,SAAAtL,EAAAvX,GACAuX,EAAAhI,MAAA+U,gBAAAtkB,IAEAqO,GAAA,SAAAkJ,GACA,OAAAlZ,EAAAkZ,EAAAhI,MAAAqa,WAAA,SAAAxrB,EAAAsvB,GAEA,OADAtvB,EAAAsvB,EAAAtxB,MAAAsxB,EAAA33B,MACAqI,GACO,KAGP4W,GAAA,SAAAC,EAAAC,EAAAC,GACA,QAAAD,EACA,SAEA,GAAAD,EAAArf,OAAAsf,EAAAtf,OACA,SAEA,IAAAK,EAAAgf,EAAAC,OAAAC,IAAAD,EAAAtf,QACA,OAAAK,IAAAif,GAEAE,GAAA,SAAAH,EAAAC,GACA,WAAAD,EAAAhd,QAAAid,IAEA47L,GAAA,SAAA77L,EAAAiQ,GACA,OAAAlQ,GAAAC,EAAAiQ,EAAA,IAEA7P,GAAA,SAAAJ,EAAAK,GACA,OAAAN,GAAAC,EAAAK,EAAAL,EAAArf,OAAA0f,EAAA1f,SAEA2f,GAAA,SAAAN,GACA,OAAAA,EAAArE,QAAA,kBAGA6d,GAAA,SAAAlf,GACA,YAAA1V,IAAA0V,EAAAmf,OAAA/xB,EAAA4S,EAAAmf,MAAAC,mBAGAxsB,GAAA,SAAA9M,GACA,IACAiD,EADA8J,GAAA,EAEA,kBAEA,IADA,IAAA3M,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAMA,OAJA0M,IACAA,GAAA,EACA9J,EAAAjD,EAAAQ,MAAA,KAAAJ,IAEA6C,IAIAgW,GAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAC,EAAAF,EAAAG,cAAA,OAEA,GADAD,EAAAE,UAAAN,GACAI,EAAAG,iBAAAH,EAAAI,WAAAnZ,OAAA,EAEA,MADAV,EAAAiM,QAAAzF,MAAA,wCAAA6S,GACA,IAAA5X,MAAA,qCAEA,OAAAqY,GAAAL,EAAAI,WAAA,KAEAE,GAAA,SAAAC,EAAAV,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAS,EAAAV,EAAAG,cAAAM,GACA,OAAAF,GAAAG,IAEAC,GAAA,SAAAC,EAAAb,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAS,EAAAV,EAAAa,eAAAD,GACA,OAAAL,GAAAG,IAEAH,GAAA,SAAAG,GACA,UAAAA,QAAAtV,IAAAsV,EACA,UAAAxY,MAAA,oCAEA,OAAc4Y,IAAAzZ,EAAAqZ,KAEdK,GAAA,SAAAC,EAAAxZ,EAAAyZ,GACA,IAAAjB,EAAAgB,EAAAF,MACA,OAAArU,EAAAD,KAAAwT,EAAAkB,iBAAA1Z,EAAAyZ,IAAA1V,IAAAgV,KAEAY,GAAA,CACAtB,YACAW,WACAG,YACAJ,WACAQ,cAGA+N,GAAA,SAAAhG,GACA,IAAAhI,EAAA+N,GAAA/F,KAAAhI,MAAAiO,WAAAjG,EAAAhI,MACA,YAAA1V,IAAA0V,GAAA,OAAAA,KAAAkO,cAAAC,KAAAlgB,SAAA+R,IAEAmO,GAAAvb,GAAA,WACA,OAAAwb,GAAA/N,GAAAZ,QAAA9Z,EAAAwZ,aAEAiP,GAAA,SAAAlP,GACA,IAAAzT,EAAAyT,EAAAc,MAAAmO,KACA,UAAA1iB,QAAAnB,IAAAmB,EACA,UAAArE,MAAA,6BAEA,OAAAiZ,GAAAZ,QAAAhU,IAGA4zB,GAAA,SAAArf,EAAAsf,EAAA94B,GACA,IAAAwG,EAAAxG,GAEA,MADAb,EAAAiM,QAAAzF,MAAA,qCAAAmzB,EAAA,YAAA94B,EAAA,cAAAwZ,GACA,IAAA5Y,MAAA,+BAAAZ,GAEA04B,GAAAlf,IACAA,EAAAmf,MAAAI,YAAAD,EAAA94B,IAGAg5B,GAAA,SAAAxf,EAAAsf,GACAJ,GAAAlf,IACAA,EAAAmf,MAAAM,eAAAH,IAGA/K,GAAA,SAAAvM,EAAAsX,EAAA94B,GACA,IAAAwZ,EAAAgI,EAAAhI,MACAqf,GAAArf,EAAAsf,EAAA94B,IAEAm5B,GAAA,SAAA3X,EAAA4X,GACA,IAAA5f,EAAAgI,EAAAhI,MACAjQ,EAAA6vB,EAAA,SAAAr0B,EAAAtC,GACAo2B,GAAArf,EAAA/W,EAAAsC,MAGAmpB,GAAA,SAAA1M,EAAAsX,GACA,IAAAtf,EAAAgI,EAAAhI,MACAsa,EAAA30B,EAAA8gB,OAAAsZ,iBAAA/f,GACAjX,EAAAuxB,EAAA8E,iBAAAE,GACA/zB,EAAA,KAAAxC,GAAAilB,GAAAhG,GAAAjf,EAAAi3B,GAAAhgB,EAAAsf,GACA,cAAA/zB,OAAAjB,EAAAiB,GAEAy0B,GAAA,SAAAhgB,EAAAsf,GACA,OAAAJ,GAAAlf,KAAAmf,MAAAC,iBAAAE,GAAA,IAEAW,GAAA,SAAAjY,EAAAsX,GACA,IAAAtf,EAAAgI,EAAAhI,MACAkgB,EAAAF,GAAAhgB,EAAAsf,GACA,OAAA3zB,EAAAD,KAAAw0B,GAAAp1B,OAAA,SAAA/B,GACA,OAAAA,EAAA1C,OAAA,KAGAyuB,GAAA,SAAA9M,EAAAsX,GACA,IAAAtf,EAAAgI,EAAAhI,MACAwf,GAAAxf,EAAAsf,GACA1K,GAAA5M,EAAA,eAAAhC,GAAA2N,GAAA3L,EAAA,WACAsL,GAAAtL,EAAA,UAGAtY,GAAA,SAAA2/C,EAAA59C,GACA,IAAA+vM,EAAAnyJ,EAAArvC,MACAyhM,EAAAhwM,EAAAuO,MACAkf,GAAAsiL,IAAAtiL,GAAAuiL,KACAA,EAAAtiL,MAAAuiL,QAAAF,EAAAriL,MAAAuiL,UAIAphM,GAAA,SAAApX,EAAAuC,EAAA0F,GACA,YAAAjI,EAAAoX,wBAAA7U,GAAA0F,IAEAoP,GAAA,SAAArX,EAAAuC,GACA,OAAA6U,GAAApX,EAAAuC,EAAA9F,EAAA6a,KAAAC,8BAEAC,GAAA,SAAAxX,EAAAuC,GACA,OAAA6U,GAAApX,EAAAuC,EAAA9F,EAAA6a,KAAAG,iCAEAH,GAAA,CACAD,6BACAG,gCAGA9Y,GAAA,WAUA,OATAA,GAAAC,OAAAC,QAAA,SAAAC,GACA,QAAAC,EAAAC,EAAA,EAAAC,EAAA9B,UAAAC,OAAgD4B,EAAAC,EAAOD,IAEvD,QAAAE,KADAH,EAAA5B,UAAA6B,GACAD,EACAH,OAAAO,UAAAC,eAAAC,KAAAN,EAAAG,KACAJ,EAAAI,GAAAH,EAAAG,IAEA,OAAAJ,GAEAH,GAAAtB,MAAAiC,KAAAnC,YAGAwa,GAAA,SAAAC,EAAA7Y,GACA,QAAAC,EAAA,EAAqBA,EAAA4Y,EAAAxa,OAAoB4B,IAAA,CACzC,IAAAvB,EAAAma,EAAA5Y,GACA,GAAAvB,EAAAoa,KAAA9Y,GACA,OAAAtB,IAKA4J,GAAA,SAAAuQ,EAAAG,GACA,IAAAjY,EAAA6X,GAAAC,EAAAG,GACA,IAAAjY,EACA,OACAkY,MAAA,EACAC,MAAA,GAGA,IAAAC,EAAA,SAAAlZ,GACA,OAAAmZ,OAAAJ,EAAAK,QAAAtY,EAAA,IAAAd,KAEA,OAAAiK,GAAAiP,EAAA,GAAAA,EAAA,KAEAI,GAAA,SAAAC,EAAAR,GACA,IAAAS,EAAApV,OAAA2U,GAAAU,cACA,WAAAF,EAAAnb,OACAsb,KAEArR,GAAAkR,EAAAC,IAEAE,GAAA,WACA,OAAAzP,GAAA,MAEAA,GAAA,SAAA+O,EAAAC,GACA,OACAD,QACAC,UAGAU,GAAA,CACA1P,MACAqP,UACAI,YAGAE,GAAA,OACAC,GAAA,SACAC,GAAA,KACAC,GAAA,QACAC,GAAA,UACAC,GAAA,SACAC,GAAA,SAAAtV,EAAAuV,GACA,kBACA,OAAAA,IAAAvV,IAGAwV,GAAA,WACA,OAAAf,GAAA,CACAc,aAAA9X,EACAiY,QAAAX,GAAAD,aAGAL,GAAA,SAAAkB,GACA,IAAAJ,EAAAI,EAAAJ,QACAG,EAAAC,EAAAD,QACA,OACAH,UACAG,UACAE,OAAAN,GAAAN,GAAAO,GACAM,SAAAP,GAAAL,GAAAM,GACAO,KAAAR,GAAAJ,GAAAK,GACAQ,QAAAT,GAAAH,GAAAI,GACAS,UAAAV,GAAAF,GAAAG,GACAU,SAAAX,GAAAD,GAAAE,KAGAW,GAAA,CACApB,QAAAU,GACAnQ,GAAAoP,GACAO,KAAAtb,EAAAsb,IACAC,OAAAvb,EAAAub,IACAC,GAAAxb,EAAAwb,IACAC,MAAAzb,EAAAyb,IACAC,QAAA1b,EAAA0b,IACAC,OAAA3b,EAAA2b,KAGAc,GAAA,UACAC,GAAA,MACAC,GAAA,UACAC,GAAA,QACAC,GAAA,MACAC,GAAA,UACAC,GAAA,UACAC,GAAA,SAAA1W,EAAAuV,GACA,kBACA,OAAAA,IAAAvV,IAGA2W,GAAA,WACA,OAAAlB,GAAA,CACAF,aAAA9X,EACAiY,QAAAX,GAAAD,aAGAW,GAAA,SAAAE,GACA,IAAAJ,EAAAI,EAAAJ,QACAG,EAAAC,EAAAD,QACA,OACAH,UACAG,UACAmB,UAAAH,GAAAP,GAAAZ,GACAuB,MAAAJ,GAAAN,GAAAb,GACAwB,UAAAL,GAAAL,GAAAd,GACAyB,MAAAN,GAAAH,GAAAhB,GACA0B,QAAAP,GAAAJ,GAAAf,GACA2B,UAAAR,GAAAF,GAAAjB,GACA4B,UAAAT,GAAAD,GAAAlB,KAGA6B,GAAA,CACAtC,QAAA6B,GACAtR,GAAAoQ,GACAU,QAAAzc,EAAAyc,IACAC,IAAA1c,EAAA0c,IACAC,QAAA3c,EAAA2c,IACAC,MAAA5c,EAAA4c,IACAC,IAAA7c,EAAA6c,IACAC,QAAA9c,EAAA8c,IACAC,QAAA/c,EAAA+c,KAGAY,GAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAJ,EAAAR,UAAA,YAAA7C,KAAAuD,GACAG,EAAAL,EAAAR,UAAAY,EACAE,EAAAN,EAAAR,SAAAQ,EAAAP,YACAc,EAAAD,GAAAH,EAAA,oBACAK,EAAAJ,IAAAC,GAAAC,GAAAH,EAAA,4BACAM,EAAAJ,GAAAC,IAAAE,EACAE,EAAAT,EAAAtB,YAAAqB,EAAAR,UAAA,cAAA7C,KAAAuD,GACAS,GAAAF,IAAAD,IAAAE,EACA,OACAN,OAAAhe,EAAAge,GACAC,SAAAje,EAAAie,GACAG,SAAApe,EAAAoe,GACAC,QAAAre,EAAAqe,GACAF,QAAAne,EAAAme,GACAd,UAAAO,EAAAP,UACAD,MAAAQ,EAAAR,MACAoB,UAAAxe,EAAAse,GACAC,UAAAve,EAAAue,KAIAE,GAAA,SAAAC,EAAAZ,GACA,IAAArD,EAAA3U,OAAAgY,GAAA3C,cACA,OAAA3S,EAAAkW,EAAA,SAAAC,GACA,OAAAA,EAAAC,OAAAnE,MAGAoE,GAAA,SAAAC,EAAAhB,GACA,OAAAW,GAAAK,EAAAhB,GAAA5Z,IAAA,SAAA2Z,GACA,IAAA7B,EAAAX,GAAAL,OAAA6C,EAAA5C,eAAA6C,GACA,OACAjC,QAAAgC,EAAAvX,KACA0V,cAIA+C,GAAA,SAAAC,EAAAlB,GACA,OAAAW,GAAAO,EAAAlB,GAAA5Z,IAAA,SAAA0Z,GACA,IAAA5B,EAAAX,GAAAL,OAAA4C,EAAA3C,eAAA6C,GACA,OACAjC,QAAA+B,EAAAtX,KACA0V,cAIAiD,GAAA,CACAJ,iBACAE,aAGAW,GAAA,sCACAC,GAAA,SAAAzU,GACA,gBAAA0U,GACA,OAAAN,GAAAM,EAAA1U,KAGA4T,GAAA,CACA,CACAxY,KAAA,OACA2U,eAAA,mCACA2D,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,UAAAN,GAAAM,EAAA,WAAAN,GAAAM,EAAA,WAAAN,GAAAM,EAAA,iBAGA,CACAtZ,KAAA,SACA2U,eAAA,CACA,kCACAyE,IAEAd,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,YAAAN,GAAAM,EAAA,iBAGA,CACAtZ,KAAA,KACA2U,eAAA,CACA,iCACA,8BAEA2D,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,SAAAN,GAAAM,EAAA,aAGA,CACAtZ,KAAA,QACA2U,eAAA,CACAyE,GACA,kCAEAd,OAAAe,GAAA,UAEA,CACArZ,KAAA,UACA2U,eAAA,wCACA2D,OAAAe,GAAA,YAEA,CACArZ,KAAA,SACA2U,eAAA,CACAyE,GACA,iCAEAd,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,WAAAN,GAAAM,EAAA,aAAAN,GAAAM,EAAA,kBAIAZ,GAAA,CACA,CACA1Y,KAAA,UACAsY,OAAAe,GAAA,OACA1E,eAAA,2CAEA,CACA3U,KAAA,MACAsY,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,WAAAN,GAAAM,EAAA,SAEA3E,eAAA,CACA,sCACA,+BACA,wCAGA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,WACA1E,eAAA,uCAEA,CACA3U,KAAA,MACAsY,OAAAe,GAAA,QACA1E,eAAA,oCAEA,CACA3U,KAAA,QACAsY,OAAAe,GAAA,SACA1E,eAAA,IAEA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,SACA1E,eAAA,IAEA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,WACA1E,eAAA,KAGA4E,GAAA,CACAf,SAAA9e,EAAA8e,IACAE,KAAAhf,EAAAgf,KAGAc,GAAA,SAAAhC,EAAAC,GACA,IAAAe,EAAAe,GAAAf,WACAE,EAAAa,GAAAb,OACAnB,EAAAoB,GAAAJ,cAAAC,EAAAhB,GAAAva,KAAAiZ,GAAApB,QAAAoB,GAAA7Q,IACAiS,EAAAqB,GAAAF,SAAAC,EAAAlB,GAAAva,KAAAma,GAAAtC,QAAAsC,GAAA/R,IACAoU,EAAApC,GAAAC,EAAAC,EAAAC,EAAAC,GACA,OACAF,UACAD,KACAmC,eAGAC,GAAA,CAA6BhF,OAAA8E,IAE7B/B,GAAA,SAAAkC,GACA,OAAA7gB,EAAA8gB,OAAAC,WAAAF,GAAAG,SAEAC,GAAAjI,EAAA4H,GAAAhF,OAAA5b,EAAAkhB,UAAAxC,UAAAC,KACAwC,GAAA,WACA,OAAAF,GAAApW,OAGAkX,GAAAN,GACAW,GAAAhB,GACAhd,GAAA,SAAAie,EAAAC,GACA,IAAAjI,EAAAgI,EAAAhI,MACA,GAAAA,EAAAkI,WAAAR,GACA,SAEA,IAAAS,EAAAnI,EACA,QAAA1V,IAAA6d,EAAAxB,QACA,OAAAwB,EAAAxB,QAAAsB,GACS,QAAA3d,IAAA6d,EAAAC,kBACT,OAAAD,EAAAC,kBAAAH,GACS,QAAA3d,IAAA6d,EAAAE,sBACT,OAAAF,EAAAE,sBAAAJ,GACS,QAAA3d,IAAA6d,EAAAG,mBACT,OAAAH,EAAAG,mBAAAL,GAEA,UAAA7gB,MAAA,mCAIAmhB,GAAA,SAAAvI,GACA,OAAAA,EAAAkI,WAAAR,IAAA1H,EAAAkI,WAAAH,IAAA,IAAA/H,EAAAwI,mBAEAzhB,GAAA,SAAAkhB,EAAAhJ,GACA,IAAA3L,OAAAhJ,IAAA2U,EAAAtZ,EAAAwZ,SAAAF,EAAAe,MACA,OAAAuI,GAAAjV,GAAA,GAAA7I,EAAA6I,EAAAmV,iBAAAR,GAAA5H,GAAAZ,UAEAiJ,GAAA,SAAAT,EAAAhJ,GACA,IAAA3L,OAAAhJ,IAAA2U,EAAAtZ,EAAAwZ,SAAAF,EAAAe,MACA,OAAAuI,GAAAjV,GAAA3H,EAAArC,OAAAqC,EAAAD,KAAA4H,EAAAqV,cAAAV,IAAAxd,IAAA4V,GAAAZ,UAGAjW,GAAA,SAAAof,EAAAC,GACA,OAAAD,EAAA5I,QAAA6I,EAAA7I,OAEA8I,GAAA,SAAAF,EAAAC,GACA,IAAAE,EAAAH,EAAA5I,MACAgJ,EAAAH,EAAA7I,MACA,OAAA+I,IAAAC,GAAAD,EAAA9a,SAAA+a,IAEAC,GAAA,SAAAL,EAAAC,GACA,OAAArI,GAAAE,4BAAAkI,EAAA5I,MAAA6I,EAAA7I,QAEAoE,GAAA0C,KAAA1C,QACA8E,GAAA9E,GAAAzB,OAAAsG,GAAAH,GACAg+K,GAAA/8L,GAEA0nB,GAAA,SAAAzJ,GACA,OAAA3H,GAAAZ,QAAAuI,EAAAhI,MAAAkO,gBAEAyD,GAAA,SAAA3J,GACA,OAAA3H,GAAAZ,QAAAuI,EAAAhI,MAAAkO,cAAAyD,cAEAC,GAAA,SAAA5J,GACA,OAAArc,EAAAD,KAAAsc,EAAAhI,MAAAiO,YAAAxjB,IAAA4V,GAAAZ,UAEA2hJ,GAAA,SAAAp5I,EAAA0F,GACA,IAAAY,EAAAlhB,EAAAsgB,KAAArmB,EACA2Y,EAAAgI,EAAAhI,MACAvN,EAAA,GACA,aAAAuN,EAAAiO,iBAAA3jB,IAAA0V,EAAAiO,WAAA,CACA,IAAA0zL,EAAA3hM,EAAAiO,WACA9lB,EAAAkY,GAAAZ,QAAAkiM,GAEA,GADAlvM,EAAA5E,KAAA1F,IACA,IAAAmmB,EAAAnmB,GACA,MAEA6X,EAAA2hM,EAGA,OAAAlvM,GAEAmvM,GAAA,SAAA55L,GACA,OAAArc,EAAAD,KAAAsc,EAAAhI,MAAAooL,iBAAA39L,IAAA4V,GAAAZ,UAEAqS,GAAA,SAAA9J,GACA,OAAArc,EAAAD,KAAAsc,EAAAhI,MAAA8R,aAAArnB,IAAA4V,GAAAZ,UAEAsS,GAAA,SAAA/J,GACA,OAAAvd,EAAAud,EAAAhI,MAAAR,WAAAa,GAAAZ,UAEAuS,GAAA,SAAAhK,EAAAiK,GACA,IAAAC,EAAAlK,EAAAhI,MAAAR,WACA,OAAA7T,EAAAD,KAAAwmB,EAAAD,IAAAxnB,IAAA4V,GAAAZ,UAEA0S,GAAA,SAAAnK,GACA,OAAAgK,GAAAhK,EAAA,IAIAqK,IAFA3B,EAAA,oBAEA,SAAA4B,EAAAtK,GACA,IAAAuK,EAAAX,GAAAU,GACAC,EAAA7nB,KAAA,SAAAa,GACAA,EAAAyU,MAAAwS,aAAAxK,EAAAhI,MAAAsS,EAAAtS,WAGAyS,GAAA,SAAAH,EAAAtK,GACA,IAAA0K,EAAAZ,GAAAQ,GACAI,EAAA5oB,KAAA,WACA,IAAAyoB,EAAAX,GAAAU,GACAC,EAAA7nB,KAAA,SAAAa,GACAonB,GAAApnB,EAAAyc,MAEO,SAAAzc,GACP8mB,GAAA9mB,EAAAyc,MAGA4K,GAAA,SAAAhB,EAAA5J,GACA,IAAA6K,EAAAV,GAAAP,GACAiB,EAAA/oB,KAAA,WACA6oB,GAAAf,EAAA5J,IACO,SAAAzc,GACPqmB,EAAA5R,MAAAwS,aAAAxK,EAAAhI,MAAAzU,EAAAyU,UAGA2S,GAAA,SAAAf,EAAA5J,GACA4J,EAAA5R,MAAA8S,YAAA9K,EAAAhI,QAEAnM,GAAA,SAAAmU,EAAAyL,GACApB,GAAArK,EAAAyL,GACAd,GAAAc,EAAAzL,IAGAgL,GAAA,SAAAV,EAAAW,GACAvoB,EAAAuoB,EAAA,SAAAvsB,GACA2rB,GAAAC,EAAA5rB,MAGAmwC,GAAA,SAAAvkB,EAAAW,GACAvoB,EAAAuoB,EAAA,SAAAvsB,EAAAuB,GACA,IAAAQ,EAAA,IAAAR,EAAAqqB,EAAAW,EAAAhrB,EAAA,GACAwqB,GAAAhqB,EAAA/B,MAGAwsB,GAAA,SAAAtB,EAAAqB,GACAvoB,EAAAuoB,EAAA,SAAAvsB,GACAisB,GAAAf,EAAAlrB,MAIAysB,GAAA,SAAAnL,GACAA,EAAAhI,MAAAoT,YAAA,GACA1oB,EAAAqnB,GAAA/J,GAAA,SAAAqL,GACAgL,GAAAhL,MAGAgL,GAAA,SAAArW,GACA,IAAAhI,EAAAgI,EAAAhI,MACA,OAAAA,EAAAiO,YACAjO,EAAAiO,WAAAsF,YAAAvT,IAGAwT,GAAA,SAAAC,GACA,IAAAC,EAAA3B,GAAA0B,GACAC,EAAArtB,OAAA,GACA2sB,GAAAS,EAAAC,GAEA2K,GAAA5K,IAKAu8C,IAFAt/C,EAAA,kBACAA,EAAA,kBACAA,EAAA,mBACAiwC,GAAAjwC,EAAA,gBAEAf,IADAe,EAAA,SACAA,EAAA,gCACAmxL,GAAAnxL,EAAA,uCACAoxL,GAAApxL,EAAA,8CACAqxL,GAAArxL,EAAA,6BACAsxL,GAAAtxL,EAAA,mBACAuxL,GAAAvxL,EAAA,qCACAwxL,GAAAxxL,EAAA,mBACAyxL,GAAAzxL,EAAA,qBACAsV,GAAAtV,EAAA,+CAEA0xL,GAAA,SAAAnjM,EAAAoP,EAAAX,GACA,OAAA5iB,EAAAs2J,GAAAniJ,EAAAyO,GAAAW,IAEAqF,GAAA,SAAAzU,EAAAoP,GACA,OAAAvjB,EAAAinB,GAAA9S,GAAAoP,IAEAwuB,GAAA,SAAA59B,EAAAoP,GACA,IAAA7Z,EAAA,GAOA,OANA9J,EAAAqnB,GAAA9S,GAAA,SAAAvY,GACA2nB,EAAA3nB,KACA8N,IAAAxN,OAAA,CAAAN,KAEA8N,IAAAxN,OAAA61C,GAAAn2C,EAAA2nB,MAEA7Z,GAGA6tM,GAAA,SAAApjM,EAAAgJ,EAAAyF,GACA,OAAA00L,GAAAnjM,EAAA,SAAAxW,GACA,OAAAsB,GAAAtB,EAAAwf,IACOyF,IAEP40L,GAAA,SAAArjM,EAAAgJ,GACA,OAAAyL,GAAAzU,EAAA,SAAAxW,GACA,OAAAsB,GAAAtB,EAAAwf,MAGAw9D,GAAA,SAAAxmE,EAAAgJ,GACA,OAAAlhB,GAAAkhB,EAAAhJ,IAGA,SAAAuO,GAAAzjB,EAAA0jB,EAAAxO,EAAA/V,EAAAwkB,GACA,OAAA3jB,EAAAkV,EAAA/V,GAAAyC,EAAAP,KAAA6T,GAAA7R,EAAAsgB,MAAAzO,GAAAtT,EAAArC,OAAAmkB,EAAAxO,EAAA/V,EAAAwkB,GAGA,IAAAD,GAAA,SAAAxO,EAAAoP,EAAAX,GACA,IAAA1F,EAAA/I,EAAAe,MACAsO,EAAAlhB,EAAAsgB,KAAAnnB,GAAA,GACA,MAAAyhB,EAAAiG,WAAA,CACAjG,IAAAiG,WACA,IAAAM,EAAAlO,GAAAZ,QAAAuI,GACA,GAAAqG,EAAAE,GACA,OAAA5iB,EAAAP,KAAAmjB,GACS,GAAAD,EAAAC,GACT,MAGA,OAAA5iB,EAAArC,QAEAklB,GAAA,SAAAvP,EAAAoP,EAAAX,GACA,IAAA3jB,EAAA,SAAA/B,EAAA8Y,GACA,OAAAA,EAAA9Y,IAEA,OAAAwlB,GAAAzjB,EAAA0jB,GAAAxO,EAAAoP,EAAAX,IAEA60L,GAAA,SAAAtjM,EAAAoP,GACA,IAAA9gB,EAAA,SAAAqS,GACA,OAAAyO,EAAAhO,GAAAZ,QAAAG,KAEApL,EAAAzF,EAAAkQ,EAAAe,MAAAR,WAAAjS,GACA,OAAAiH,EAAA/J,IAAA4V,GAAAZ,UAEAgP,GAAA,SAAAxP,EAAAoP,GACA,IAAAK,EAAA,SAAA9O,GACA,QAAA3X,EAAA,EAAuBA,EAAA2X,EAAAJ,WAAAnZ,OAA4B4B,IAAA,CACnD,IAAA0mB,EAAAtO,GAAAZ,QAAAG,EAAAJ,WAAAvX,IACA,GAAAomB,EAAAM,GACA,OAAAhjB,EAAAP,KAAAujB,GAEA,IAAAtZ,EAAAqZ,EAAA9O,EAAAJ,WAAAvX,IACA,GAAAoN,EAAArL,SACA,OAAAqL,EAGA,OAAA1J,EAAArC,QAEA,OAAAolB,EAAAzP,EAAAe,QAGAgoB,GAAA,SAAA/oB,EAAAgJ,EAAAyF,GACA,OAAAD,GAAAxO,EAAA,SAAAxW,GACA,OAAAsB,GAAAtB,EAAAwf,IACOyF,IAEP80L,GAAA,SAAAvjM,EAAAgJ,GACA,OAAAs6L,GAAAtjM,EAAA,SAAAxW,GACA,OAAAsB,GAAAtB,EAAAwf,MAGAggB,GAAA,SAAAhpB,EAAAgJ,GACA,OAAAS,GAAAT,EAAAhJ,IAEA2P,GAAA,SAAA3P,EAAAgJ,EAAAyF,GACA,OAAAF,GAAAzjB,GAAAi+B,GAAA/oB,EAAAgJ,EAAAyF,IAGA+0L,GAAA,SAAAxjM,EAAAgJ,GACA,OAAAy6L,GAAAzjM,EAAAgJ,EAAA1hB,GAAA,KAEAm8M,GAAA,SAAAzjM,EAAAgJ,EAAAoG,GACA,OAAA1jB,EAAAonB,GAAA9S,GAAA,SAAAvY,GACA,OAAAqD,GAAArD,EAAAuhB,GAAAoG,EAAA3nB,GAAA,CAAAA,GAAA,GAAAg8M,GAAAh8M,EAAAuhB,EAAAoG,MAGAs0L,GAAA,CACAF,cACAC,qBAGAt1J,GAAA,SAAAw1J,EAAA56L,EAAA0F,GAIA,QAHA,IAAAA,IACAA,EAAArmB,GAEAqmB,EAAA1F,GACA,OAAArc,EAAArC,OAEA,GAAA2E,EAAA20M,EAAA/1M,GAAAmb,IACA,OAAArc,EAAAP,KAAA4c,GAEA,IAAA66L,EAAA,SAAA5iI,GACA,OAAAl2E,GAAAk2E,EAAA,UAAAvyD,EAAAuyD,IAEA,OAAAj4C,GAAAhgB,EAAA46L,EAAAtxM,KAAA,KAAAuxM,IAEA1+I,GAAA,SAAAn8C,EAAA0F,GACA,OAAA0/B,GAAA,CACA,KACA,MACAplC,EAAA0F,IAEAwjE,GAAA,SAAAzjE,GACA,OAAAk1L,GAAAF,WAAAh1L,EAAA,UAEAq1L,GAAA,SAAA96L,EAAA0F,GACA,OAAA0/B,GAAA,CACA,UACA,KACA,QACA,QACA,SACAplC,EAAA0F,IAEAq1L,GAAA,SAAA96L,EAAAD,GACA,OAAA4J,GAAA5J,GAAAvd,IAAA,SAAAmnB,GACA,OAAA0wL,GAAA1wL,EAAA3J,MAGA+6L,GAAAr8M,EAAAo8M,GAAA,SACAE,GAAAt8M,EAAAo8M,GAAA,MACAG,GAAA,SAAAz1L,GACA,OAAAwa,GAAAxa,EAAA,UAEA+yH,GAAA,SAAAx4H,EAAA0F,GACA,OAAAkB,GAAA5G,EAAA,QAAA0F,IAEAmzC,GAAA,SAAA74C,EAAA0F,GACA,OAAA0/B,GAAA,OAAAplC,EAAA0F,IAEAs4C,GAAA,SAAAv4C,GACA,OAAAk1L,GAAAF,WAAAh1L,EAAA,OAEA0Q,GAAA,SAAAnW,EAAAsX,GACA,OAAAkE,SAAA7P,GAAA3L,EAAAsX,GAAA,KAEA6jL,GAAA,SAAAn7L,EAAAo7L,EAAAC,GACA,IAAAC,EAAAnlL,GAAAnW,EAAAo7L,GACAG,EAAAplL,GAAAnW,EAAAq7L,GACA,OAAArzI,GAAAszI,EAAAC,IAEAC,GAAA,CACAr/I,QACA++I,aACAhyH,SACA8xH,kBACAxiE,SACA3/E,OACAmF,QACA88I,WACAG,iBACA9kL,QACA6xC,KAAAmzI,IAGAM,GAAA,SAAAjjE,GACA,IAAAx6E,EAAAw9I,GAAAx9I,KAAAw6E,GACA,OAAA/1I,EAAAu7D,EAAA,SAAAnF,GACA,IAAA74C,EAAA64C,EACAtuC,EAAAX,GAAA5J,GACA07L,EAAAnxL,EAAA9nB,IAAA,SAAAtC,GACA,IAAAw7M,EAAA92M,GAAA1E,GACA,gBAAAw7M,GAAA,UAAAA,GAAA,UAAAA,IAAA,UACS15M,MAAA,SACTinF,EAAAzmF,EAAA+4M,GAAAtyH,MAAArwB,GAAA,SAAAsD,GACA,IAAAy/I,EAAAhvL,GAAAuvC,EAAA,WAAA3gC,SAAA7P,GAAAwwC,EAAA,iBACA0/I,EAAAjvL,GAAAuvC,EAAA,WAAA3gC,SAAA7P,GAAAwwC,EAAA,iBACA,OAAAx0C,GAAAw0C,EAAAy/I,EAAAC,KAEA,OAAA9B,GAAA/5L,EAAAkpE,EAAAwyH,MAGAI,GAAA,SAAA99I,EAAA+9I,GACA,OAAAt5M,EAAAu7D,EAAA,SAAAnF,GACA,IAAAqwB,EAAAzmF,EAAA+4M,GAAAtyH,MAAArwB,GAAA,SAAAsD,GACA,IAAAy/I,EAAAhvL,GAAAuvC,EAAA,WAAA3gC,SAAA7P,GAAAwwC,EAAA,iBACA0/I,EAAAjvL,GAAAuvC,EAAA,WAAA3gC,SAAA7P,GAAAwwC,EAAA,iBACA,OAAAx0C,GAAAw0C,EAAAy/I,EAAAC,KAEA,OAAA9B,GAAAlhJ,EAAAqwB,EAAA6yH,EAAAtrB,cAGAurB,GAAA,CACAP,aACAK,mBAGArzM,GAAA,SAAAowD,EAAAC,GACA,OAAAD,EAAA,IAAAC,GAEAmjJ,GAAA,SAAAC,EAAArjJ,EAAAC,GACA,IAAA5gC,EAAAgkL,EAAA56H,SAAA74E,GAAAowD,EAAAC,IACA,YAAAx2D,IAAA41B,EAAAv0B,EAAAP,KAAA80B,GAAAv0B,EAAArC,QAEA66M,GAAA,SAAAD,EAAAtiL,EAAAnyB,GACA,IAAA20M,EAAAC,GAAAH,EAAA,SAAAv0L,GACA,OAAAlgB,EAAAmyB,EAAAjS,EAAA3H,aAEA,OAAAo8L,EAAA/9M,OAAA,EAAAsF,EAAAP,KAAAg5M,EAAA,IAAAz4M,EAAArC,QAEA+6M,GAAA,SAAAH,EAAA71L,GACA,IAAAtnB,EAAA4D,EAAAu5M,EAAAn9M,MAAA,SAAAgC,GACA,OAAAA,EAAAmoF,UAEA,OAAApmF,EAAA/D,EAAAsnB,IAEA1d,GAAA,SAAA6oB,GACA,IAAA8vD,EAAA,GACA4H,EAAA,GACAozH,EAAA9qL,EAAAnzB,OACAk+M,EAAA,EACA75M,EAAA8uB,EAAA,SAAA0gE,EAAAnxF,GACA,IAAAy7M,EAAA,GACA95M,EAAAwvF,EAAAhJ,QAAA,SAAAvhE,GACA,IAAA/J,EAAA,EACA,WAAAtb,IAAAg/E,EAAA74E,GAAA1H,EAAA6c,IACAA,IAGA,IADA,IAAAxD,EAAA0/L,GAAAnyL,EAAA3H,UAAA2H,EAAAi0L,UAAAj0L,EAAAk0L,UAAA96M,EAAA6c,GACA3d,EAAA,EAAyBA,EAAA0nB,EAAAk0L,UAAsB57M,IAC/C,QAAAkB,EAAA,EAA2BA,EAAAwmB,EAAAi0L,UAAsBz6M,IAAA,CACjD,IAAAs7M,EAAA17M,EAAAI,EACAu7M,EAAA9+L,EAAA3d,EACA08M,EAAAl0M,GAAAg0M,EAAAC,GACAp7H,EAAAq7H,GAAAviM,EACAmiM,EAAAtuL,KAAAyN,IAAA6gL,EAAAG,EAAA,GAGAF,EAAA32M,KAAAuU,KAEA8uE,EAAArjF,KAAAk0M,GAAA7nH,EAAAlyE,UAAAw8L,EAAAtqH,EAAAu+F,cAEA,IAAA0qB,EAAAnzI,GAAAs0I,EAAAC,GACA,OACAv0I,KAAAzpE,EAAA48M,GACA75H,OAAA/iF,EAAA+iF,GACAviF,IAAAR,EAAA2qF,KAGA0zH,GAAA,SAAAV,GACA,IAAAl+I,EAAAv7D,EAAAy5M,EAAAn9M,MAAA,SAAA6gC,GACA,OAAAA,EAAAspD,UAEA,OAAAjiF,EAAA+2D,IAEA6+I,GAAA,CACAl0M,YACAszM,SACAE,YACAE,eACAO,cAGAE,GAAAp0L,EAAA,qCACAq0L,GAAA,SAAAC,EAAAz0H,GACA,IAAA00H,EAAAD,EAAAh1I,OAAAyT,UACAyhI,EAAAF,EAAAh1I,OAAAhK,OACAm/I,EAAAD,EACAE,EAAAH,EACAI,EAAA,EACAC,EAAA,EAmBA,OAlBAv1M,EAAAi1M,EAAA17H,SAAA,SAAA35D,GACA,GAAA4gE,EAAA5gE,GAAA,CACA,IAAA+0C,EAAA/0C,EAAAkxC,MACA0kJ,EAAA7gJ,EAAA/0C,EAAAi0L,UAAA,EACAv/I,EAAA10C,EAAAmxC,SACA0kJ,EAAAnhJ,EAAA10C,EAAAk0L,UAAA,EACAn/I,EAAAygJ,EACAA,EAAAzgJ,EACW6gJ,EAAAF,IACXA,EAAAE,GAEAlhJ,EAAA+gJ,EACAA,EAAA/gJ,EACWmhJ,EAAAF,IACXA,EAAAE,MAIAV,GAAAK,EAAAC,EAAAC,EAAAC,IAEAz0H,GAAA,SAAAr3D,EAAAisL,EAAAxhJ,GACA,IAAApD,EAAArnC,EAAAyqC,GAAAj8C,UACAs/J,EAAAjnK,GAAAX,QAAA,MACAiT,GAAA20J,EAAAjnK,GAAAX,QAAA,OACA,IAAA5Z,EAAA2/M,EAAA9yL,GAAAC,GACA9sB,EAAA+6D,EAAAymH,IAEAo+B,GAAA,SAAAlsL,EAAAwrL,EAAAW,EAAAp1H,GAGA,IAFA,IAAA00H,EAAAD,EAAAh1I,OAAAyT,UACAyhI,EAAAF,EAAAh1I,OAAAhK,OACA/9D,EAAA,EAAqBA,EAAAi9M,EAAej9M,IAEpC,IADA,IAAAw9M,GAAA,EACAt8M,EAAA,EAAuBA,EAAA87M,EAAkB97M,IACzC,KAAAlB,EAAA09M,EAAAR,UAAAl9M,EAAA09M,EAAAN,UAAAl8M,EAAAw8M,EAAAP,UAAAj8M,EAAAw8M,EAAAL,UAAA,CACA,IAAAM,EAAAf,GAAAZ,MAAAe,EAAA/8M,EAAAkB,GAAA2B,OAAAylF,GAAA7mF,SACAk8M,EACA/0H,GAAAr3D,EAAAisL,EAAAx9M,GAEAw9M,GAAA,IAMAI,GAAA,SAAArlE,EAAAmlE,GACA,IAAAG,EAAAh7M,EAAA63M,GAAAF,WAAAjiE,EAAA,eAAA3/E,GACA,WAAAA,EAAA7gD,MAAAwI,oBAEA9d,EAAAo7M,EAAAznL,IACAsnL,EAAAP,WAAAO,EAAAL,UAAAK,EAAAR,WAAAQ,EAAAN,UACA36M,EAAAi4M,GAAAF,WAAAjiE,EAAA,kBAAAr8E,GACA7wC,GAAA6wC,EAAA,WACA7wC,GAAA6wC,EAAA,aAGA7wC,GAAAktH,EAAA,SACAltH,GAAAktH,EAAA,UACA1rH,GAAA0rH,EAAA,SACA1rH,GAAA0rH,EAAA,WAEA3nI,GAAA,SAAA2nI,EAAAulE,GACA,IAAAx1H,EAAA,SAAA5gE,GACA,OAAA5lB,GAAA4lB,EAAA3H,UAAA+9L,IAEAvsL,EAAAwqL,GAAAP,UAAAjjE,GACAwkE,EAAAH,GAAAl0M,SAAA6oB,GACAmsL,EAAAZ,GAAAC,EAAAz0H,GACAtoE,EAAA,UAAA89L,EAAA,YAAAA,EAAA,IACAC,EAAArD,GAAAD,iBAAAliE,EAAA,iBAAAr8E,GACA,OAAAp6D,GAAAo6D,EAAAl8C,KAKA,OAHAvd,EAAAs7M,EAAA3nL,IACAqnL,GAAAlsL,EAAAwrL,EAAAW,EAAAp1H,GACAs1H,GAAArlE,EAAAmlE,GACAnlE,GAEAylE,GAAA,CAAwBptM,YAExB,SAAAshC,GAAApwC,EAAA8C,GACA,IAAA2D,EAAA,SAAAwX,GACA,IAAAje,EAAAie,GACA,UAAA5gB,MAAA,gBAAAyF,EAAA,eAAAA,EAAA,SAEA,OAAAutC,EAAApyB,GAAA/d,MAAA,KAEAmwC,EAAA,SAAApyB,GACA,OAAAje,EAAAie,GAAArc,EAAAD,KAAAsc,EAAAhI,MAAAq6B,WAAA1uC,EAAArC,QAEAuV,EAAA,SAAAmJ,EAAAxhB,GACA,IAAAuD,EAAAie,GACA,UAAA5gB,MAAA,oBAAAyF,EAAA,eAAAA,EAAA,SAEAmb,EAAAhI,MAAAq6B,UAAA7zC,GAEA,OACAgK,MACA4pC,YACAv7B,OAIA,IAAAilB,GAAAqW,GAAApsB,GAAA,QACAyQ,GAAA,SAAAxW,GACA,OAAA8b,GAAAtzB,IAAAwX,IAEAoyB,GAAA,SAAApyB,GACA,OAAA8b,GAAAsW,UAAApyB,IAEA0X,GAAA,SAAA1X,EAAAxhB,GACAs9B,GAAAjlB,IAAAmJ,EAAAxhB,IAGA80C,GAAA,SAAAtzB,GACA,cAAAnb,GAAAmb,GAAA,EAAAoyB,GAAApyB,GAAAle,KAAA,WACA,OAAAioB,GAAA/J,GAAA3hB,QACO,SAAAkF,GACP,OAAAA,EAAAlF,UAGAk1C,GAAA,IACAC,GAAA,SAAAjtB,GACA,OAAA6rB,GAAA7rB,GAAAzjB,OAAA,SAAAgV,GACA,WAAAA,EAAAkG,OAAA3f,QAAAyZ,EAAApX,QAAA6yC,KAAA,IACOvxC,UAEPyxC,GAAA,CACA,MACA,MAEAC,GAAA,SAAAvzB,GACA,IAAAwzB,EAAAH,GAAArzB,GACA,OAAAwzB,GAAA1tC,EAAAwtC,GAAA5uC,GAAAsb,KAGAyzB,GAAA,SAAA5zB,GACA,OAAAyG,GAAAzG,EAAA0zB,KAEAG,GAAA,SAAA7zB,GACA,OAAA8zB,GAAA9zB,EAAA0zB,KAEAI,GAAA,SAAA78B,EAAAoP,GACA,IAAAK,EAAA,SAAA1G,GAEA,IADA,IAAA0L,EAAA3B,GAAA/J,GACA/f,EAAAyrB,EAAArtB,OAAA,EAA2C4B,GAAA,EAAQA,IAAA,CACnD,IAAA+pB,EAAA0B,EAAAzrB,GACA,GAAAomB,EAAA2D,GACA,OAAArmB,EAAAP,KAAA4mB,GAEA,IAAA3c,EAAAqZ,EAAAsD,GACA,GAAA3c,EAAArL,SACA,OAAAqL,EAGA,OAAA1J,EAAArC,QAEA,OAAAolB,EAAAzP,IAGAk1G,GAAA,SAAAn/F,EAAAC,GACA,OAAA5U,GAAAZ,QAAAuV,EAAAhV,MAAAoU,UAAAa,KAEAjjB,GAAA,SAAAgjB,GACA,OAAAm/F,GAAAn/F,GAAA,IAEA7iB,GAAA,SAAA6iB,GACA,OAAAm/F,GAAAn/F,GAAA,IAEAk2K,GAAA,SAAAl2K,EAAArV,GACA,IAAAzN,EAAAmO,GAAAX,QAAAC,GACA0a,EAAAvb,GAAAkW,GAEA,OADAR,GAAAtiB,EAAAmoB,GACAnoB,GAEAg0M,GAAA,SAAAlxL,EAAArV,GACA,IAAAzN,EAAAg5L,GAAAl2K,EAAArV,GACAwmM,EAAAp0L,GAAA5f,GAAA6iB,IAEA,OADA9B,GAAAhhB,EAAAi0M,GACAj0M,GAGAk0M,GAAA,WACA,IAAA9+B,EAAAjnK,GAAAX,QAAA,MAEA,OADAiT,GAAA20J,EAAAjnK,GAAAX,QAAA,OACA4nK,GAEAjmK,GAAA,SAAA8iD,EAAAxkD,EAAA8U,GACA,IAAA4xL,EAAAH,GAAA/hJ,EAAAxkD,GAQA,OAPA5P,EAAA0kB,EAAA,SAAAlpB,EAAAtC,GACA,OAAAsC,EACA+nB,GAAA+yL,EAAAp9M,GAEA4V,GAAAwnM,EAAAp9M,EAAAsC,KAGA86M,GAEAC,GAAA,SAAAniJ,GACA,OAAAA,GAEA/C,GAAA,SAAAliD,GACA,kBACA,OAAAmB,GAAAX,QAAA,KAAAR,EAAAc,SAGAumM,GAAA,SAAAC,EAAAC,EAAAtjE,GACA,IAAAnlE,EAAApiC,GAAA4qK,GACA,OAAAxoI,EAAAvzE,IAAA,SAAAi8M,GACA,IAAAC,EAAAxjE,EAAA7xI,KAAA,KACA8vJ,EAAAihD,GAAAqE,EAAAC,EAAA,SAAA3+L,GACA,OAAAxe,GAAAwe,EAAAw+L,KAEA,OAAA53M,EAAAwyJ,EAAA,SAAAxxJ,EAAAgiB,GACA,IAAAg1L,EAAA50M,GAAA4f,GAGA,OAFA0B,GAAAszL,EAAA,mBACAj0L,GAAA/iB,EAAAg3M,GACAA,GACSH,KACFx8M,MAAAw8M,IAEPI,GAAA,SAAA1b,EAAAjsL,EAAA4nM,GACA,IAAAL,EAAA,SAAAhnI,GACA,IAAAsnI,EAAAt1L,GAAAguD,EAAAz3D,WACAs/J,EAAAjnK,GAAAX,QAAA7S,GAAA4yE,EAAAz3D,WAAA++L,EAAA/mM,OACAmjI,EAAA2jE,EAAA78M,MAAA,CACA,SACA,KACA,IACA,IACA,OACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,QAEA+8M,EAAA7jE,EAAA98I,OAAA,EAAAkgN,GAAA9mI,EAAAz3D,UAAAs/J,EAAAnkC,GAAAmkC,EAQA,OAPA30J,GAAAq0L,EAAA3mM,GAAAX,QAAA,OACAhQ,GAAA+vE,EAAAz3D,UAAAs/J,GACAxyJ,GAAAwyJ,EAAA,UACA,IAAA7nG,EAAAokI,WACA/uL,GAAA2qD,EAAAz3D,UAAA,SAEAmjL,EAAA1rH,EAAAz3D,UAAAs/J,GACAA,GAEA,OACAzmH,IAAAO,GAAAliD,GACAilD,KAAAsiJ,EACAplM,WACA4lM,IAAAb,KAGAc,GAAA,SAAAhoM,GACA,OACA2hD,IAAAO,GAAAliD,GACAilD,KAAAiiJ,GACA/kM,QAAAilM,GACAW,IAAAb,KAGAe,GAAA,CACAN,kBACAK,UAGA90L,GAAA,SAAApT,EAAAC,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAC,EAAAF,EAAAG,cAAA,OAEA,OADAD,EAAAE,UAAAN,EACA+S,GAAA1R,GAAAZ,QAAAL,KAGAgoM,GAAA,SAAAphL,EAAArW,GACA,IAAA03L,EAAA13L,EAAAmxC,SACAwmJ,EAAA33L,EAAAmxC,SAAAnxC,EAAAk0L,UAAA,EACA0D,EAAA53L,EAAAkxC,MACA2mJ,EAAA73L,EAAAkxC,MAAAlxC,EAAAi0L,UAAA,EACA,OAAAyD,GAAArhL,EAAAyhL,aAAAH,GAAAthL,EAAAq+B,YAAAkjJ,GAAAvhL,EAAA0hL,aAAAF,GAAAxhL,EAAA0+B,YAEAijJ,GAAA,SAAA3hL,EAAArW,GACA,OAAAA,EAAAmxC,UAAA96B,EAAAq+B,YAAA10C,EAAAmxC,SAAAnxC,EAAAk0L,UAAA,GAAA79K,EAAAyhL,aAAA93L,EAAAkxC,OAAA76B,EAAA0+B,YAAA/0C,EAAAkxC,MAAAlxC,EAAAi0L,UAAA,GAAA59K,EAAA0hL,aAEAE,GAAA,SAAA1D,EAAAl+K,GAGA,IAFA,IAAA6hL,GAAA,EACAC,EAAAnhN,EAAAghN,GAAA3hL,GACA/9B,EAAA+9B,EAAA0+B,WAAqCz8D,GAAA+9B,EAAA0hL,YAAyBz/M,IAC9D,QAAAkB,EAAA68B,EAAAq+B,WAAuCl7D,GAAA68B,EAAAyhL,YAAyBt+M,IAChE0+M,KAAAhD,GAAAZ,MAAAC,EAAAj8M,EAAAkB,GAAAyB,OAAAk9M,GAGA,OAAAD,EAAAl8M,EAAAP,KAAA46B,GAAAr6B,EAAArC,QAEAy+M,GAAA,CACAX,eACAO,YACAC,kBAGAxhL,GAAA,SAAA4hL,EAAAC,GACA,OAAAjiL,GAAA/P,KAAAmlB,IAAA4sK,EAAAnnJ,MAAAonJ,EAAApnJ,OAAA5qC,KAAAmlB,IAAA4sK,EAAAlnJ,SAAAmnJ,EAAAnnJ,UAAA7qC,KAAAyN,IAAAskL,EAAAnnJ,MAAAmnJ,EAAApE,UAAA,EAAAqE,EAAApnJ,MAAAonJ,EAAArE,UAAA,GAAA3tL,KAAAyN,IAAAskL,EAAAlnJ,SAAAknJ,EAAAnE,UAAA,EAAAoE,EAAAnnJ,SAAAmnJ,EAAApE,UAAA,KAEAqE,GAAA,SAAAhE,EAAA97B,EAAAC,GACA,IAAA8/B,EAAAtD,GAAAV,SAAAD,EAAA97B,EAAA5+K,IACA4+M,EAAAvD,GAAAV,SAAAD,EAAA77B,EAAA7+K,IACA,OAAA2+M,EAAAx9M,KAAA,SAAA09M,GACA,OAAAD,EAAA39M,IAAA,SAAA69M,GACA,OAAAliL,GAAAiiL,EAAAC,QAIAC,GAAA,SAAArE,EAAA97B,EAAAC,GACA,OAAA6/B,GAAAhE,EAAA97B,EAAAC,GAAA19K,KAAA,SAAAq7B,GACA,OAAA+hL,GAAAH,cAAA1D,EAAAl+K,MAGAwiL,GAAA,CACAN,aACAK,WAGAllG,GAAA,SAAA6gG,EAAA//I,EAAAtD,EAAAC,GACA,OAAA+jJ,GAAAV,SAAAD,EAAA//I,EAAA36D,IAAAmB,KAAA,SAAAglB,GACA,IAAA+0C,EAAA7D,EAAA,EAAAlxC,EAAAkxC,MAAAlxC,EAAAi0L,UAAA,EAAAj0L,EAAAkxC,MACAwD,EAAAvD,EAAA,EAAAnxC,EAAAmxC,SAAAnxC,EAAAk0L,UAAA,EAAAl0L,EAAAmxC,SACArI,EAAAosJ,GAAAZ,MAAAC,EAAAx/I,EAAA7D,EAAAwD,EAAAvD,GACA,OAAArI,EAAAhuD,IAAA,SAAA4mB,GACA,OAAAA,EAAArJ,eAIAygM,GAAA,SAAAvE,EAAAt+L,EAAAyxB,GACA,OAAAmxK,GAAAN,UAAAhE,EAAAt+L,EAAAyxB,GAAA5sC,IAAA,SAAAu7B,GACA,IAAAqwB,EAAAwuJ,GAAAR,YAAAH,EAAAv9M,EAAAohN,GAAAX,YAAAphL,IACA,OAAAv7B,EAAA4rD,EAAA,SAAA1mC,GACA,OAAAA,EAAA3H,eAIA0gM,GAAA,SAAAxE,EAAAyE,GACA,IAAAC,EAAA,SAAAC,EAAAC,GACA,OAAA5/L,GAAA4/L,EAAAD,IAEA,OAAAhE,GAAAV,SAAAD,EAAAyE,EAAAC,GAAAn+M,IAAA,SAAAklB,GACA,OAAAA,EAAA3H,aAGA+gM,GAAA,CACA1lG,UACAolG,cACAC,eAGA3jG,GAAA,SAAA5gD,EAAAQ,EAAAqkJ,GACA,OAAAxF,GAAAhjE,MAAAr8E,GAAAx5D,KAAA,SAAA61I,GACA,IAAA0jE,EAAA+E,GAAAzoE,GACA,OAAAuoE,GAAA1lG,OAAA6gG,EAAA//I,EAAAQ,EAAAqkJ,MAGAE,GAAA,SAAA1oE,EAAA5kG,EAAAhsC,GACA,IAAAs0M,EAAA+E,GAAAzoE,GACA,OAAAuoE,GAAAN,WAAAvE,EAAAtoK,EAAAhsC,IAEAu5M,GAAA,SAAA3oE,EAAA5kG,EAAAwtK,EAAAx5M,EAAAy5M,GACA,IAAAnF,EAAA+E,GAAAzoE,GACA8oE,EAAA9/M,GAAAg3I,EAAA4oE,GAAAz9M,EAAAP,KAAAwwC,GAAAmtK,GAAAL,WAAAxE,EAAAtoK,GACA2tK,EAAA//M,GAAAg3I,EAAA6oE,GAAA19M,EAAAP,KAAAwE,GAAAm5M,GAAAL,WAAAxE,EAAAt0M,GACA,OAAA05M,EAAA3+M,KAAA,SAAAy9K,GACA,OAAAmhC,EAAA5+M,KAAA,SAAA6+M,GACA,OAAAT,GAAAN,WAAAvE,EAAA97B,EAAAohC,QAIAC,GAAA,SAAAjpE,EAAA5kG,EAAAhsC,GACA,IAAAs0M,EAAA+E,GAAAzoE,GACA,OAAAgoE,GAAAD,OAAArE,EAAAtoK,EAAAhsC,IAEAq5M,GAAA,SAAAzoE,GACA,IAAAhnH,EAAAwqL,GAAAP,UAAAjjE,GACA,OAAAqkE,GAAAl0M,SAAA6oB,IAEAkwL,GAAA,CACArmG,OAAA0B,GACA0jG,WAAAS,GACAC,oBACAZ,OAAAkB,IAGAE,GAAA,CACA,OACA,IACA,MACA,UACA,QACA,aACA,SACA,SACA,SACA,MACA,UACA,KACA,KACA,KACA,QACA,QACA,QACA,QACA,UACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,aACA,MACA,WAGA,SAAAC,KACA,IAAAz1F,EAAA,SAAAnsG,GACA,OAAA3H,GAAAZ,QAAAuI,EAAAhI,MAAAoU,WAAA,KAEAjV,EAAA,SAAA6I,GACA,OAAAA,EAAAhI,MAAAkO,eAEAuwD,EAAA,SAAAz2D,GACA,QAAA8F,GAAA9F,KAGA,SAAAnb,GAAAmb,IAGA/Z,EAAA07M,GAAA98M,GAAAmb,MAEA6hM,EAAA,SAAA7hM,GACA,QAAA8F,GAAA9F,IAGA/Z,EAAA,CACA,KACA,MACA,KACA,SACApB,GAAAmb,KAEA8hM,EAAA,SAAA9hM,EAAAuhE,GACA,OAAAvhE,EAAAhI,MAAAM,wBAAAipE,EAAAvpE,QAEA+pM,EAAA,SAAA16J,EAAA26J,GACA,IAAAC,EAAAnrM,GAAAuwC,GACA76B,GAAAw1L,EAAAC,IAEA,OACAC,GAAA3jN,EAAA,CACA0hB,SAAA+f,GACAxZ,QAAAI,GACAP,UAAAZ,GACA1mB,IAAAq6J,KAEA+oD,KAAA5jN,EAAA,CACA0hB,SAAAw9D,GACAp3D,UAAAwuB,KAEAviB,OAAA/zB,EAAA,CACAiK,IAAAkkB,GACAuL,UACAphB,IAAA0V,GACAjB,OAAAwB,KAEAL,MAAAluB,EAAA,CACAiK,IAAAmjB,GACA9U,OACAyU,UACA82L,OAAAL,IAEAxgJ,OAAAhjE,EAAA,CACA8rB,UACAI,SACA43L,SAAAxzK,GACAlkB,UACA23L,UAAAp3L,GACAN,WACA/e,UAEAyf,OAAA/sB,EAAA,CACAitB,UACAF,OAAA+K,KAEAiQ,OAAA/nC,EAAA,CACA2L,GAAAmO,GAAAX,QACAZ,MAAAq1G,EACAr0G,KAAAO,GAAAR,WAEA2G,MAAAjgB,EAAA,CACAujN,kBACAlI,eACA9vL,iBAEAwN,SAAA/4B,EAAA,CACAwrB,YACAllB,QACA+kB,UACAzS,WACA4O,UACAuzL,aACAxzL,aACA4yD,QAAAliD,GACA+rL,QAAA7qL,GACA++C,aACAorI,eAEArgN,MACAO,GAAA+8L,IAIA,IAAA0jB,GAAA95L,EAAA,gBACA+5L,GAAA/5L,EAAA,2BACAg6L,GAAA,SAAAC,EAAA/4L,EAAAI,GACA,IAAAD,EAAA44L,EAAArrL,WAAAvN,SAAAH,GACAK,EAAAjjB,EAAA+iB,EAAAprB,EAAAgkN,EAAAnhN,GAAAwoB,IACA,OAAAC,EAAAxnB,IAAA,SAAAmgN,GACA,OACAv4L,OAAA9rB,EAAAwrB,EAAArkB,MAAA,EAAAk9M,IACAn4L,MAAAlsB,EAAAwrB,EAAArkB,MAAAk9M,EAAA,QAIAC,GAAA,SAAAF,EAAA/4L,EAAAI,GACA,OAAA04L,GAAAC,EAAA/4L,EAAAI,GAAAvnB,IAAA,SAAA+e,GACA,IAAAshM,EAAAH,EAAAr8K,SAAAxvB,MAAA8S,GAGA,OAFA+4L,EAAAphJ,SAAA+gJ,UAAAQ,EAAAthM,EAAAiJ,SACAk4L,EAAAphJ,SAAA92C,MAAAb,EAAAk5L,GACAN,GAAA54L,EAAAk5L,MAGAC,GAAA,SAAAJ,EAAA/4L,EAAAI,GACA,OAAA04L,GAAAC,EAAA/4L,EAAAI,GAAAvnB,IAAA,SAAA+e,GACA,IAAAwhM,EAAAL,EAAAr8K,SAAAxvB,MAAA8S,GAIA,OAHA+4L,EAAAphJ,SAAA+gJ,UAAAU,EAAAxhM,EAAA6I,SAAArrB,OAAA,CAAAgrB,KACA24L,EAAAphJ,SAAA+gJ,UAAA14L,EAAApI,EAAAiJ,SACAk4L,EAAAphJ,SAAAl3C,OAAAT,EAAAo5L,GACAR,GAAAQ,EAAAp5L,MAGAq5L,GAAA,SAAAN,EAAA/oL,EAAAspL,EAAAC,GACA,IAAA3uM,EAAA,SAAAwV,EAAA7Q,EAAAiqM,GACA,IAAAh4M,EAAAq3M,GAAAz4L,EAAArmB,EAAArC,OAAA8hN,GACA,OAAAF,EAAAl5L,GACAy4L,GAAAz4L,EAAA7Q,EAAAiqM,GAEAT,EAAArrL,WAAA1N,OAAAI,GAAArnB,KAAA,SAAAinB,GACA,OAAAu5L,EAAAR,EAAA/4L,EAAAI,GAAAvnB,IAAA,SAAA4gN,GACA,IAAAvxM,EAAA,EACA8hC,MAAAyvK,EAAA9mL,KACAumL,OAAAO,EAAAnlL,QAEAolL,EAAAJ,EAAAt5L,KAAAy5L,EAAA9mL,OACA,OAAA/nB,EAAA8uM,EAAA3/M,EAAAP,KAAAigN,EAAAnlL,SAAAklL,EAAApkN,OAAA8S,QAEW7P,MAAAmJ,IAGX,OAAAoJ,EAAAolB,EAAAj2B,EAAArC,OAAA,KAGAmgB,GAAA,SAAAkhM,EAAAY,EAAAt4L,EAAAntB,GACA,IAAA6J,EAAAsjB,EAAA,GACAw4K,EAAAx4K,EAAAvlB,MAAA,GACA,OAAA5H,EAAA6kN,EAAAY,EAAA57M,EAAA87L,IAEA+f,GAAA,SAAAb,EAAAY,EAAAt4L,GACA,OAAAA,EAAA5sB,OAAA,EAAAojB,GAAAkhM,EAAAY,EAAAt4L,EAAAw4L,IAAA9/M,EAAArC,QAEAmiN,GAAA,SAAAd,EAAAY,EAAA57M,EAAA87L,GACA,IAAA7lL,EAAA2lM,EAAAZ,EAAAh7M,GACA,OAAAf,EAAA68L,EAAA,SAAAhgM,EAAAvC,GACA,IAAAkZ,EAAAmpM,EAAAZ,EAAAzhN,GACA,OAAAwiN,GAAAf,EAAAl/M,EAAA2W,IACOwD,IAEP8lM,GAAA,SAAAf,EAAA/kM,EAAAywG,GACA,OAAAzwG,EAAAjb,KAAA,SAAA3C,GACA,OAAAquH,EAAAvrH,OAAAnE,EAAAgkN,EAAAnhN,GAAAxB,OAIA2jN,GAAA,SAAAhB,EAAA/oL,GACA,OAAAj7B,EAAAgkN,EAAAnhN,GAAAo4B,IAEAgqL,GAAA,SAAAjB,EAAA9/H,EAAAghI,EAAAC,GACA,IAAA/5L,EAAA44L,EAAArrL,WAAAvN,SAAA84D,GACA,GAAA8/H,EAAAnhN,GAAAqhF,EAAAghI,EAAA,IACA,OAAAlgN,EAAAP,KAAA,CAAAygN,EAAA,KAEA,GAAAlB,EAAAnhN,GAAAqhF,EAAAihI,EAAA,IACA,OAAAngN,EAAAP,KAAA,CAAA0gN,EAAA,KAEA,IAAAC,EAAA,SAAA96J,GACA,IAAA+6J,EAAA78M,EAAA8hD,GACAh/B,EAAAjjB,EAAAg9M,EAAAL,GAAAhB,EAAA9/H,IAAA5gF,OAAA,GACA23B,EAAA3P,EAAA+5L,EAAA3lN,OAAA,EAAA2lN,EAAA/5L,EAAA,GAAA+5L,EAAA/5L,GACA,OAAAjjB,EAAA+iB,EAAA45L,GAAAhB,EAAA/oL,KAEAqqL,EAAAF,EAAAF,GACA9zL,EAAAg0L,EAAAD,GACA,OAAAG,EAAAthN,KAAA,SAAAuhN,GACA,OAAAn0L,EAAAttB,IAAA,SAAA0hN,GACA,IAAAvwK,EAAA3lB,KAAAmlB,IAAA8wK,EAAAC,GACAv8M,EAAAqmB,KAAAyN,IAAAwoL,EAAAC,GACA,OAAAp6L,EAAArkB,MAAAkuC,EAAAhsC,EAAA,QAIAw8M,GAAA,SAAAzB,EAAA/kM,EAAAywG,EAAA3oG,QACA,IAAAA,IACAA,EAAArmB,GAEA,IAAAwkN,EAAA,CAAAjmM,GAAA5e,OAAA2jN,EAAAT,KAAAnjN,IAAA6e,IACAkmM,EAAA,CAAAz1F,GAAArvH,OAAA2jN,EAAAT,KAAAnjN,IAAAsvH,IACA9hC,EAAA,SAAAh9E,GACA,IAAA0a,EAAAjjB,EAAAuI,EAAAmW,GACA,OAAAuE,EAAAnoB,KAAA,WACA,OAAAyN,GACS,SAAAqzM,GACT,OAAArzM,EAAA7J,MAAA,EAAAk9M,EAAA,MAGAyB,EAAA93H,EAAAs3H,GACAS,EAAA/3H,EAAAu3H,GACAzuI,EAAAtuE,EAAAs9M,EAAA,SAAA3lN,GACA,OAAAkE,EAAA0hN,EAAAX,GAAAhB,EAAAjkN,MAEA,OACA6lN,UAAAhmN,EAAA8lN,GACAG,WAAAjmN,EAAA+lN,GACAjvI,OAAA92E,EAAA82E,KAGAovI,GAAA,SAAA9B,EAAA/kM,EAAAywG,GACA,IAAAq2F,EAAAN,GAAAzB,EAAA/kM,EAAAywG,GACA,OAAAq2F,EAAArvI,SAAA1yE,KAAA,SAAA0yE,GACA,OAAAuuI,GAAAjB,EAAAttI,EAAAqvI,EAAAH,YAAAG,EAAAF,iBAGAG,GAAA,CACAF,UACArK,UAAAgK,IAGAQ,GAAApB,GACAqB,GAAAF,GAAAF,OACAK,GAAAH,GAAAvK,UACA2K,GAAAhC,GACAiC,GAAAnC,GACAoC,GAAAhC,GACAiC,GAAA,CACAN,aACAH,OAAAI,GACAzK,UAAA0K,GACA/B,YAAAgC,GACAlC,aAAAmC,GACA/B,UAAAgC,IAGAtC,GAAAf,KACAuD,GAAA,SAAA5B,EAAAt4L,GACA,OAAAi6L,GAAAN,UAAAjC,GAAA,SAAAyC,EAAAplM,GACA,OAAAujM,EAAAvjM,IACOiL,IAEPo6L,GAAA,SAAAznM,EAAAyxB,GACA,OAAA61K,GAAAT,OAAA9B,GAAA/kM,EAAAyxB,IAEAi2K,GAAA,SAAA1nM,EAAAyxB,EAAA3pB,GACA,OAAAw/L,GAAA9K,UAAAuI,GAAA/kM,EAAAyxB,EAAA3pB,IAEA6/L,GAAA,SAAA37L,EAAAI,GACA,OAAAk7L,GAAAnC,YAAAJ,GAAA/4L,EAAAI,IAEAw7L,GAAA,SAAA57L,EAAAI,GACA,OAAAk7L,GAAArC,aAAAF,GAAA/4L,EAAAI,IAEAy7L,GAAA,SAAAz7L,EAAAk5L,EAAAC,GACA,OAAA+B,GAAAjC,UAAAN,GAAA34L,EAAAk5L,EAAA,SAAA53J,EAAAnrD,EAAA8nB,GACA,OAAAk7L,EAAAhjN,EAAA8nB,MAGAy9L,GAAA,CACAd,UAAAO,GACAV,OAAAY,GACAjL,UAAAkL,GACAvC,YAAAwC,GACA1C,aAAA2C,GACAvC,UAAAwC,IAGAn/K,GAAAhd,GAAA,CACA,QACA,QACA,UACA,IACAq8L,GAAA,CAAsBr/K,WAEtBotH,GAAA,SAAAvnI,GACA,OAAA6T,GAAA7T,EAAA,UAEAy5L,GAAA,SAAAhoM,EAAAyxB,EAAA3pB,GACA,IAAAmgM,EAAA,SAAAC,GACA,gBAAA9lM,GACA,YAAA1d,IAAAojB,KAAA1F,IAAAxe,GAAAwe,EAAA8lM,KAGA,OAAAtkN,GAAAoc,EAAAyxB,GACA1rC,EAAAP,KAAAuiN,GAAAr/K,OAAA,CACAy/K,MAAApiN,EAAAP,KAAA,CAAAwa,IACAA,QACAyxB,YAGAqkH,GAAA91I,GAAAjb,KAAA,SAAAqjN,GACA,OAAAtyD,GAAArkH,GAAA1sC,KAAA,SAAAsjN,GACA,GAAAzkN,GAAAwkN,EAAAC,GACA,OAAAtiN,EAAAP,KAAAuiN,GAAAr/K,OAAA,CACAy/K,MAAArE,GAAAjB,WAAAuF,EAAApoM,EAAAyxB,GACAzxB,QACAyxB,YAEa,GAAAnuB,GAAA8kM,EAAAC,GAAA,CACb,IAAAC,EAAA7L,GAAAhrK,EAAA,QAAAw2K,EAAAG,IACA3lC,EAAA6lC,EAAA7nN,OAAA,EAAA6nN,IAAA7nN,OAAA,GAAAgxC,EACA,OAAA1rC,EAAAP,KAAAuiN,GAAAr/K,OAAA,CACAy/K,MAAArE,GAAAP,iBAAA6E,EAAApoM,EAAAooM,EAAA32K,EAAA42K,GACAroM,QACAyxB,OAAAgxI,KAEa,GAAAn/J,GAAA+kM,EAAAD,GAAA,CACbE,EAAA7L,GAAAz8L,EAAA,QAAAioM,EAAAI,IAAA,IACA7lC,EAAA8lC,EAAA7nN,OAAA,EAAA6nN,IAAA7nN,OAAA,GAAAuf,EACA,OAAAja,EAAAP,KAAAuiN,GAAAr/K,OAAA,CACAy/K,MAAArE,GAAAP,iBAAA8E,EAAAroM,EAAAooM,EAAA32K,EAAA42K,GACAroM,QACAyxB,OAAA+wI,KAGA,OAAAslC,GAAAtL,UAAAx8L,EAAAyxB,GAAAgmC,SAAA1yE,KAAA,SAAAwjN,GACA,OAAAv/L,GAAAu/L,EAAA,QAAAzgM,GAAA/iB,KAAA,SAAAyjN,GACA,IAAAC,EAAAhM,GAAAhrK,EAAA,QAAAw2K,EAAAO,IACA/lC,EAAAgmC,EAAAhoN,OAAA,EAAAgoN,IAAAhoN,OAAA,GAAAgxC,EACAi3K,EAAAjM,GAAAz8L,EAAA,QAAAioM,EAAAO,IACAhmC,EAAAkmC,EAAAjoN,OAAA,EAAAioN,IAAAjoN,OAAA,GAAAuf,EACA,OAAAja,EAAAP,KAAAuiN,GAAAr/K,OAAA,CACAy/K,MAAArE,GAAAP,iBAAAiF,EAAAxoM,EAAAooM,EAAA32K,EAAA42K,GACAroM,MAAAwiK,EACA/wI,OAAAgxI,cASAkmC,GAAA,SAAAp6L,EAAAlM,GACA,IAAAumM,EAAA/oI,GAAAtxD,EAAAlM,GACA,OAAAumM,EAAAnoN,OAAA,EAAAsF,EAAAP,KAAAojN,GAAA7iN,EAAArC,QAEAuuD,GAAA,SAAAk2J,EAAAU,GACA,OAAA1/M,EAAAg/M,EAAA,SAAAnpL,GACA,OAAA76B,GAAA66B,EAAA6pL,MAGAC,GAAA,SAAAv6L,EAAAw6L,EAAAF,GACA,OAAAxmL,GAAA9T,EAAAw6L,GAAAhkN,KAAA,SAAAixC,GACA,OAAA3T,GAAA9T,EAAAs6L,GAAA9jN,KAAA,SAAAiF,GACA,OAAA89M,GAAAd,UAAAlxD,GAAA,CACA9/G,EACAhsC,IACAnF,IAAA,SAAAmkN,GACA,OACAhzK,MAAAr1C,EAAAq1C,GACAhsC,KAAArJ,EAAAqJ,GACA4wI,MAAAj6I,EAAAqoN,WAMAC,GAAA,SAAAx3K,EAAAs3K,GACA,OAAA3mL,GAAAqP,EAAA,SAAA1sC,KAAA,SAAA61I,GACA,OAAAv4G,GAAAu4G,EAAAmuE,GAAAhkN,KAAA,SAAAib,GACA,OAAAgoM,GAAAhoM,EAAAyxB,GAAA1sC,KAAA,SAAAo3D,GACA,OAAAA,EAAAgsJ,QAAAtjN,IAAA,SAAAsjN,GACA,OACAA,MAAAxnN,EAAAwnN,GACAnoM,MAAArf,EAAAw7D,EAAAn8C,SACAyxB,OAAA9wC,EAAAw7D,EAAA1qB,oBAOAy3K,GAAA,SAAAf,EAAAppJ,EAAAqkJ,EAAA2F,EAAAF,GACA,OAAA52J,GAAAk2J,EAAAU,GAAA9jN,KAAA,SAAAiF,GACA,OAAA85M,GAAArmG,OAAAzzG,EAAA+0D,EAAAqkJ,GAAAr+M,KAAA,SAAA0sC,GACA,OAAAw3K,GAAAx3K,EAAAs3K,QAIAI,GAAA,CACAnB,YACAW,YACAO,kBACAJ,aAGAM,GAAA,SAAA76L,EAAAlM,GACA,OAAA8mM,GAAAR,SAAAp6L,EAAAlM,IAEAgnM,GAAA,SAAA96L,EAAAw6L,EAAAF,GACA,OAAAM,GAAAL,SAAAv6L,EAAAw6L,EAAAF,GAAA9jN,KAAA,SAAAo5G,GACA,IAAAr2F,EAAA,SAAAD,GACA,OAAAjkB,GAAA2qB,EAAA1G,IAEAyhM,EAAAlnL,GAAA+7E,EAAAnoE,QAAA,0BAAAluB,GACAyhM,EAAAnnL,GAAA+7E,EAAAn0G,OAAA,0BAAA8d,GACA,OAAAwhM,EAAAvkN,KAAA,SAAAykN,GACA,OAAAD,EAAAxkN,KAAA,SAAA0kN,GACA,OAAA7lN,GAAA4lN,EAAAC,GAAA3F,GAAAnB,OAAAxkG,EAAAy8B,QAAAz8B,EAAAnoE,QAAAmoE,EAAAn0G,QAAAjE,EAAArC,cAKAgmN,GAAA,CACAf,SAAAS,GACAC,gBAGAz2J,GAAA,oBACAutJ,GAAA,MAAAvtJ,GAAA,QAAAA,GAAA,IACA+2J,GAAA,IAAA/2J,GAAA,IACAg3J,GAAA,0BACAb,GAAA,MAAAa,GAAA,QAAAA,GAAA,IACAC,GAAA,yBACAhB,GAAA,MAAAgB,GAAA,QAAAA,GAAA,IACAC,GAAA,CACAl3J,SAAAjyD,EAAAiyD,IACAutJ,iBAAAx/M,EAAAw/M,IACAwJ,kBAAAhpN,EAAAgpN,IACAC,cAAAjpN,EAAAipN,IACAb,sBAAApoN,EAAAooN,IACAc,aAAAlpN,EAAAkpN,IACAhB,qBAAAloN,EAAAkoN,KAGA/4L,GAAA,SAAA9kB,GACA,IAAA1D,EAAA0D,GACA,UAAAxJ,MAAA,0BAEA,OAAAwJ,EAAAvK,OACA,UAAAe,MAAA,mCAEA,IAAAyJ,EAAA,GACAC,EAAA,GAyDA,OAxDApG,EAAAkG,EAAA,SAAAG,EAAAC,GACA,IAAAC,EAAAnB,EAAAiB,GACA,OAAAE,EAAA5K,OACA,UAAAe,MAAA,kCAEA,IAAAqJ,EAAAQ,EAAA,GACAzK,EAAAuK,EAAAN,GACA,QAAAnG,IAAAwG,EAAAL,GACA,UAAArJ,MAAA,0BAAAqJ,GACS,YAAAA,EACT,UAAArJ,MAAA,yCACS,IAAA8F,EAAA1G,GACT,UAAAY,MAAA,mCAEAyJ,EAAAhD,KAAA4C,GACAK,EAAAL,GAAA,WACA,IAAAS,EAAA9K,UAAAC,OACA,GAAA6K,IAAA1K,EAAAH,OACA,UAAAe,MAAA,qCAAAqJ,EAAA,cAAAjK,EAAAH,OAAA,KAAAG,EAAA,UAAA0K,GAGA,IADA,IAAAhL,EAAA,IAAA8C,MAAAkI,GACAjJ,EAAA,EAAyBA,EAAA/B,EAAAG,OAAiB4B,IAC1C/B,EAAA+B,GAAA7B,UAAA6B,GAEA,IAAAkJ,EAAA,SAAAC,GACA,IAAAC,EAAAvB,EAAAsB,GACA,GAAAP,EAAAxK,SAAAgL,EAAAhL,OACA,UAAAe,MAAA,iDAAAyJ,EAAAS,KAAA,kBAAAD,EAAAC,KAAA,MAEA,IAAAC,EAAA1G,EAAAgG,EAAA,SAAAW,GACA,OAAAvD,EAAAoD,EAAAG,KAEA,IAAAD,EACA,UAAAnK,MAAA,gEAAAiK,EAAAC,KAAA,qBAAAT,EAAAS,KAAA,OAEA,OAAAF,EAAAX,GAAAnK,MAAA,KAAAJ,IAEA,OACA4D,KAAA,WACA,GAAA1D,UAAAC,SAAAuK,EAAAvK,OACA,UAAAe,MAAA,+CAAAwJ,EAAAvK,OAAA,SAAAD,UAAAC,QAEA,IAAAoL,EAAArL,UAAA4K,GACA,OAAAS,EAAAnL,MAAA,KAAAJ,IAEAiL,QACAO,IAAA,SAAAC,GACAhM,EAAAiM,QAAAF,IAAAC,EAAA,CACAd,eACAjE,YAAA6D,EACAoB,OAAA3L,SAMA4K,GAEAgB,GAAA,CAAenB,SAAA+kB,IAEfi6L,GAAA79M,GAAAnB,SAAA,CACA,CAAOrH,KAAA,IACP,CAAOymD,SAAA,cACP,CAAOD,OAAA,iBAEPvjB,GAAA,SAAA5L,EAAA0T,EAAAu7K,EAAAC,GACA,OAAAlvL,EAAA72B,KAAAuqC,EAAAu7K,EAAAC,IAEAC,GAAA,CACAvjL,QACAjjC,KAAAqmN,GAAArmN,KACAymD,SAAA4/J,GAAA5/J,SACAD,OAAA6/J,GAAA7/J,QAGAtY,GAAA,SAAA2sB,EAAA4rJ,GACA,OAAAD,GAAAvjL,KAAAwjL,EAAAv/M,MAAAjK,EAAA,IAAAE,EAAAF,EAAA,CAAA49D,MAEA6rJ,GAAA,SAAA7rJ,EAAA4rJ,GACA,IAAAE,EAAA,SAAA9nM,GACA,OAAAyM,GAAAzM,EAAA,YAAAqb,SAAA7P,GAAAxL,EAAA,kBAAAyM,GAAAzM,EAAA,YAAAqb,SAAA7P,GAAAxL,EAAA,kBAEAlD,EAAAuyB,GAAA2sB,EAAA4rJ,GACA,OAAA9qM,EAAA5e,OAAA,GAAAwE,EAAAoa,EAAAgrM,GAAAtkN,EAAAP,KAAA6Z,GAAAtZ,EAAArC,QAEA4mN,GAAA,SAAA1vE,EAAAuvE,GACA,OAAAD,GAAAvjL,KAAAwjL,EAAAv/M,MAAA7E,EAAArC,KAAA,SAAA4nF,EAAAi/H,GACA,WAAAj/H,EAAA7qF,OACAsF,EAAArC,OAEAgmN,GAAAL,YAAAzuE,EAAAkvE,GAAAf,wBAAAe,GAAAjB,wBAAA9jN,KAAA,SAAAq7B,GACA,OAAAkrD,EAAA7qF,OAAA,EAAAsF,EAAAP,KAAA,CACA46B,OAAAz/B,EAAAy/B,GACAkrD,MAAA3qF,EAAA2qF,KACWvlF,EAAArC,UAEJqC,EAAArC,OAEP8mN,GAAA,CACAF,YACAF,cACAx4K,cAGA64K,GAAA,SAAAlsJ,GACA,OACAn8C,QAAAzhB,EAAA49D,GACA+rJ,SAAAvkN,EAAArC,KACA0mN,WAAArkN,EAAArC,KACAkuC,UAAAjxC,EAAA,CAAA49D,MAGAw3B,GAAA,SAAAo0H,EAAAvvE,EAAAr8E,GACA,OACAn8C,QAAAzhB,EAAA49D,GACA+rJ,SAAA3pN,EAAA6pN,GAAAF,SAAA1vE,EAAAuvE,IACAC,WAAAzpN,EAAA6pN,GAAAJ,WAAA7rJ,EAAA4rJ,IACAv4K,UAAAjxC,EAAA6pN,GAAA54K,UAAA2sB,EAAA4rJ,MAGAO,GAAA,SAAAtoM,GACA,OAAAqoM,GAAAroM,IAEAuoM,GAAA7/L,EAAA,oCACA8/L,GAAA,SAAAT,EAAAvvE,EAAAr8E,EAAAssJ,EAAAC,GACA,OACA1oM,QAAAzhB,EAAA49D,GACA+rJ,SAAAvkN,EAAArC,KACA0mN,WAAArkN,EAAArC,KACAkuC,UAAAjxC,EAAA6pN,GAAA54K,UAAA2sB,EAAA4rJ,IACAU,UAAAlqN,EAAAkqN,GACAC,WAAAnqN,EAAAmqN,KAGAC,GAAA,CACAN,UACA10H,WACAmnH,QAAAwN,GACApJ,MAAAqJ,GACAC,cAGAI,GAAA,SAAA1/H,GACA,OAAAsyH,GAAAhjE,MAAAtvD,EAAA,IAAAzmF,IAAA0H,IAAA1H,IAAA,SAAA47M,GACA,OAAAJ,GAAAptM,QAAAwtM,EAAAqJ,GAAAH,yBAGAsB,GAAA,SAAAz0I,EAAAnpD,GACA,OAAAxoB,EAAAwoB,EAAA,SAAAgtD,GACA,OAAA7D,EAAA5kC,UAAAklK,WAAAC,UAAA18H,EAAAjgE,MAAA,MACO1O,KAAA,KAEPw/M,GAAA,SAAA79L,GACA,OAAAxoB,EAAAwoB,EAAA,SAAAjL,GACA,OAAAA,EAAAhI,MAAA4lI,YACOt0I,KAAA,KAEPy/M,GAAA,SAAA30I,EAAA2zI,EAAA39F,EAAA4+F,GACA50I,EAAA/lC,GAAA,4BAAA5tC,GACA,IAAAwoN,EAAA,SAAA//H,GACAzoF,EAAAumB,iBACA4hM,GAAA1/H,GAAAxmF,KAAA,SAAAuoB,GACAxqB,EAAAmrB,QAAA,SAAAnrB,EAAA4uF,OAAAy5H,GAAA79L,GAAA49L,GAAAz0I,EAAAnpD,OAGA,IAAAxqB,EAAA+uC,WACAs4K,GAAAvjL,KAAAwjL,EAAAv/M,MAAA5K,EAAAqrN,EAAArrN,KAGAw2E,EAAA/lC,GAAA,4BAAA5tC,GACA,QAAAA,EAAA+uC,YAAA,IAAA/uC,EAAAy+M,MAAA,CACA,IAAAp/B,EAAAn8K,EAAAD,KAAA0wE,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAA,UACAoxI,EAAAp9K,KAAA,SAAAwmN,GACA,IAAA/sJ,EAAA9jD,GAAAZ,QAAAyxM,GACA1N,GAAAhjE,MAAAr8E,GAAAz5D,KAAA,SAAA81I,GACA,IAAAvtH,EAAAnoB,EAAAsnB,GAAA3pB,EAAAmrB,SAAA,SAAAA,GACA,eAAA/mB,GAAA+mB,KAEA,OAAAX,EAAA5sB,QAAA,UAAAwG,GAAAomB,EAAA,KACAxqB,EAAAumB,iBACA,IAAA9P,EAAAmB,GAAAZ,QAAA28D,EAAA0D,UACA4wI,EAAAvJ,GAAAD,MAAAhoM,GACA47H,EAAA61E,GAAAzJ,MAAA/iJ,EAAAlxC,EAAA,GAAAy9L,GACAt+F,EAAA++F,WAAA3wE,EAAA1F,GAAApwI,KAAA,SAAA+sC,GACA2kC,EAAA5kC,UAAA2nI,OAAA1nI,GACA2kC,EAAA/wD,QACA2lM,EAAAjnK,MAAAy2F,cAQA4wE,GAAA,CAAqBL,mBAErB,SAAA5tL,GAAAt2B,EAAAu2B,GACA,IAAAvkB,EAAA,SAAAmJ,EAAAqb,GACA,IAAAh2B,EAAAg2B,OAAAlyB,MAAA,YACA,UAAA/J,MAAAyF,EAAA,wDAAAw2B,GAEA,IAAArjB,EAAAgI,EAAAhI,MACAkf,GAAAlf,KACAA,EAAAmf,MAAAtyB,GAAAw2B,EAAA,OAGA7yB,EAAA,SAAAwX,GACA,IAAAjf,EAAAq6B,EAAApb,GACA,GAAAjf,GAAA,UAAAA,EAAA,CACA,IAAA62B,EAAAlL,GAAA1M,EAAAnb,GACA,OAAAy2B,WAAA1D,IAAA,EAEA,OAAA72B,GAEAmrB,EAAA1jB,EACA+yB,EAAA,SAAAvb,EAAAiF,GACA,OAAAne,EAAAme,EAAA,SAAApe,EAAAywB,GACA,IAAA5pB,EAAAgf,GAAA1M,EAAAsX,GACA94B,OAAA8D,IAAAoL,EAAA,EAAA8tB,SAAA9tB,EAAA,IACA,OAAA+tB,MAAAj9B,GAAAqI,IAAArI,GACS,IAETk9B,EAAA,SAAA1b,EAAAxhB,EAAAymB,GACA,IAAA0W,EAAAJ,EAAAvb,EAAAiF,GACA2W,EAAAp9B,EAAAm9B,EAAAn9B,EAAAm9B,EAAA,EACA,OAAAC,GAEA,OACA/kB,MACArO,MACA0jB,WACAqP,YACAG,OAIA,IAAA+B,GAAAtC,GAAA,kBAAAnb,GACA,IAAAhI,EAAAgI,EAAAhI,MACA,OAAAgO,GAAAhG,GAAAhI,EAAA+jB,wBAAAC,OAAAhkB,EAAAikB,eAEAnE,GAAA,SAAA9X,GACA,OAAAyd,GAAAj1B,IAAAwX,IAEAkM,GAAA,SAAAlM,GACA,OAAAyd,GAAAvR,SAAAlM,IAGAsyB,GAAAnX,GAAA,iBAAAnb,GACA,OAAAA,EAAAhI,MAAAsgB,cAEAC,GAAA,SAAAvY,GACA,OAAAsyB,GAAA9pC,IAAAwX,IAEAmc,GAAA,SAAAnc,GACA,OAAAsyB,GAAApmB,SAAAlM,IAGA8zF,GAAAh1F,KACAuqM,GAAA,WACA,OAAAv1G,GAAA13F,QAAAzB,QAAAm5F,GAAA13F,QAAA3B,UAEA6uM,GAAA,SAAAhtF,EAAAlxH,GACA,IAAAjF,EAAAm1B,WAAAghG,GACA,OAAA7gG,MAAAt1B,GAAAiF,EAAAjF,GAEAojN,GAAA,SAAAtxI,EAAApzE,EAAAuG,GACA,OAAAk+M,GAAA58L,GAAAurD,EAAApzE,GAAAuG,IAEAo+M,GAAA,SAAArtJ,GACA,IAAAstJ,EAAAF,GAAAptJ,EAAA,iBACAutJ,EAAAH,GAAAptJ,EAAA,oBACAwtJ,EAAAJ,GAAAptJ,EAAA,sBACAytJ,EAAAL,GAAAptJ,EAAA,yBACAngC,EAAAmgC,EAAAnkD,MAAA+jB,wBAAAC,OACA6tL,EAAAn9L,GAAAyvC,EAAA,cACA2tJ,EAAAH,EAAAC,EACA,qBAAAC,EAAA7tL,IAAAytL,EAAAC,EAAAI,GAEAv9F,GAAA,SAAApwD,GACA,OAAAotJ,GAAAptJ,EAAA,QAAA5jC,GAAA4jC,KAEAuwD,GAAA,SAAAvwD,GACA,OAAAktJ,KAAAG,GAAArtJ,GAAAotJ,GAAAptJ,EAAA,SAAArkC,GAAAqkC,KAEA4tJ,GAAA,CACAx9F,YACAG,cAGAs9F,GAAA,uBACAC,GAAA,iBACAC,GAAA,qBACAC,GAAA,SAAAhuJ,EAAAiuJ,GACA79L,GAAA4vC,EAAA,QAAAiuJ,EAAA,OAEAC,GAAA,SAAAluJ,EAAAiuJ,GACA79L,GAAA4vC,EAAA,QAAAiuJ,EAAA,MAEAhtK,GAAA,SAAA+e,EAAAiuJ,GACA79L,GAAA4vC,EAAA,SAAAiuJ,EAAA,OAEAE,GAAA,SAAAnuJ,GACA,OAAAlkC,GAAAkkC,EAAA,UAAAj6D,WAAA,WACA,OAAA6nN,GAAAr9F,UAAAvwD,GAAA,QAGA7R,GAAA,SAAA6R,EAAAnoD,EAAAu1G,EAAAC,GACA,IAAAiV,EAAA+8E,GAAAhjE,MAAAr8E,GAAA15D,IAAA,SAAA+1I,GACA,IAAA8J,EAAA/4B,EAAAivB,GACA,OAAAvqH,KAAAC,MAAAla,EAAA,IAAAsuI,KACOrgJ,MAAA+R,GAEP,OADAw1G,EAAArtD,EAAAsiE,GACAA,GAEA8rF,GAAA,SAAA/rN,EAAA29D,EAAAotD,EAAAC,GACA,IAAAx1G,EAAAwnB,SAAAh9B,EAAA,IACA,OAAAsf,GAAAtf,EAAA,gBAAAqG,GAAAs3D,GAAA7R,GAAA6R,EAAAnoD,EAAAu1G,EAAAC,GAAAx1G,GAEAw2M,GAAA,SAAAruJ,GACA,IAAA39D,EAAA8rN,GAAAnuJ,GACA,OAAA39D,EAGA+rN,GAAA/rN,EAAA29D,EAAArkC,GAAAslB,IAFAtlB,GAAAqkC,IAIAjgC,GAAA,SAAAigC,EAAAp3D,EAAAjH,GACA,IAAAyF,EAAAzF,EAAAq+D,GACA42C,EAAA03G,GAAAtuJ,EAAAp3D,GACA,OAAAxB,EAAAwvG,GAEA03G,GAAA,SAAAtuJ,EAAAp3D,GACA,OAAA6nB,GAAAuvC,EAAAp3D,GAAAy2B,SAAA7P,GAAAwwC,EAAAp3D,GAAA,OAEA2lN,GAAA,SAAA1qM,GACA,IAAA2qM,EAAA1yL,GAAAjY,EAAA,SACA,OAAA2qM,EAAA7oN,KAAA,WACA,OAAA6B,EAAAD,KAAAioB,GAAA3L,EAAA,WACO,SAAAie,GACP,OAAAt6B,EAAAP,KAAA66B,MAGA2sL,GAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAC,EAAAC,aAAA,KAEAC,GAAA,SAAAhrM,EAAAie,EAAA6sL,GACA,IAAAG,EAAAhB,GAAA1/H,KAAAtsD,GACA,UAAAgtL,EACA,OAAA3vL,WAAA2vL,EAAA,IAEA,IAAAC,EAAA3yL,GAAAvY,GACA,OAAA4qM,GAAAM,EAAAJ,IAGAK,GAAA,SAAAhvJ,EAAA2uJ,GACA,IAAA7sL,EAAAysL,GAAAvuJ,GACA,OAAAl+B,EAAAn8B,KAAA,WACA,IAAAopN,EAAA3yL,GAAA4jC,GACA,OAAAyuJ,GAAAM,EAAAJ,IACO,SAAAlrL,GACP,OAAAorL,GAAA7uJ,EAAAv8B,EAAAkrL,MAGAM,GAAA,SAAAP,EAAAC,GACA,OAAAD,EAAA,IAAAC,EAAAC,cAEAM,GAAA,SAAArrM,EAAAie,EAAA6sL,GACA,IAAAQ,EAAApB,GAAA3/H,KAAAtsD,GACA,UAAAqtL,EACA,OAAA9vL,SAAA8vL,EAAA,OAEA,IAAAL,EAAAhB,GAAA1/H,KAAAtsD,GACA,UAAAgtL,EAAA,CACA,IAAAM,EAAAjwL,WAAA2vL,EAAA,IACA,OAAAG,GAAAG,EAAAT,GAEA,OAAAvyL,GAAAvY,IAEAwrM,GAAA,SAAArvJ,EAAA2uJ,GACA,IAAA7sL,EAAAysL,GAAAvuJ,GACA,OAAAl+B,EAAAn8B,KAAA,WACA,OAAAy2B,GAAA4jC,IACO,SAAAv8B,GACP,OAAAyrL,GAAAlvJ,EAAAv8B,EAAAkrL,MAGA35C,GAAA,SAAAh1G,GACA,OAAAjgC,GAAAigC,EAAA,UAAAquJ,KAEAiB,GAAA,SAAAtvJ,GACA,IAAAl+B,EAAAysL,GAAAvuJ,GACA,OAAAl+B,EAAAt7B,KAAA,SAAAi9B,GACA,IAAAz2B,EAAA6gN,GAAAz/H,KAAA3qD,GACA,cAAAz2B,EACAxF,EAAAP,KAAA,CACA66B,MAAA1/B,EAAA+8B,WAAAnyB,EAAA,KACA0+D,KAAAtpE,EAAA4K,EAAA,MAGAxF,EAAArC,UAIAoqN,GAAA,SAAAvvJ,EAAAiuJ,EAAAviJ,GACAt7C,GAAA4vC,EAAA,QAAAiuJ,EAAAviJ,IAEA8jJ,GAAA,CACA1B,yBAAA1rN,EAAA0rN,IACAC,oBAAA3rN,EAAA2rN,IACAC,iBACAE,sBACAjtK,aACAouK,iBACAL,sBACAM,mBACAC,mBACAh/F,UAAAykD,GACAu5C,gBAGAkB,GAAA,SAAAC,EAAAtqI,GACA,IAAAtjD,EAAA0tL,GAAAF,gBAAAI,GACA5tL,EAAAv7B,KAAA,SAAAk9B,GACA,IAAAuX,EAAAvX,EAAA3B,QAAA,EACA0tL,GAAAD,gBAAAG,EAAA10K,EAAAvX,EAAAioC,QACA8jJ,GAAAD,gBAAAnqI,EAAApqC,EAAAvX,EAAAioC,WAGAikJ,GAAA,CAAyBF,UAEzB7qN,GAAA,SAAAw7B,EAAAC,GACA,IAAAC,EAAA,SAAA/9B,EAAAyZ,GACA,OAAApX,GAAAw7B,EAAA79B,EAAA89B,EAAArkB,IAEA,OACAokB,KAAAh+B,EAAAg+B,GACAC,IAAAj+B,EAAAi+B,GACAC,cAGAC,GAAA37B,GAEA47B,GAAA,SAAA3kB,GACA,IAAA4kB,EAAA5kB,EAAA+jB,wBACA,OAAAW,GAAAE,EAAAL,KAAAK,EAAAJ,MAEAK,GAAA,SAAA37B,EAAAuC,GACA,YAAAnB,IAAApB,SAAAoB,IAAAmB,IAAA,GAEAq5B,GAAA,SAAA9c,GACA,IAAA9I,EAAA8I,EAAAhI,MAAAkO,cACAC,EAAAjP,EAAAiP,KACA4W,EAAA7lB,EAAAyS,YACA3S,EAAAE,EAAAwS,gBACA,GAAAvD,IAAAnG,EAAAhI,MACA,OAAA0kB,GAAAvW,EAAA6W,WAAA7W,EAAA8W,WAEA,IAAAC,EAAAL,GAAAE,EAAAI,YAAAnmB,EAAAkmB,WACAE,EAAAP,GAAAE,EAAAM,YAAArmB,EAAAomB,YACAE,EAAAT,GAAA7lB,EAAAsmB,UAAAnX,EAAAmX,WACAC,EAAAV,GAAA7lB,EAAAumB,WAAApX,EAAAoX,YACA,OAAAC,GAAAxd,GAAAyc,UAAAW,EAAAG,EAAAL,EAAAI,IAEAE,GAAA,SAAAxd,GACA,IAAAhI,EAAAgI,EAAAhI,MACAd,EAAAc,EAAAkO,cACAC,EAAAjP,EAAAiP,KACA,OAAAA,IAAAnO,EACA0kB,GAAAvW,EAAA6W,WAAA7W,EAAA8W,WAEAjX,GAAAhG,GAGA2c,GAAA3kB,GAFA0kB,GAAA,MAKAqvL,GAAArjM,EAAA,WACAsjM,GAAAtjM,EAAA,WACAujM,GAAA,SAAA9vJ,GACA,IAAAlwB,EAAAnP,GAAAq/B,GACA,OAAAlwB,EAAA1P,OAAAJ,GAAAggC,IAEA+vJ,GAAA,SAAA/vJ,GACA,OAAAr/B,GAAAq/B,GAAA5/B,QAEA0/E,GAAA,SAAAhyF,EAAAkyC,GACA,OAAA6vJ,GAAA/hM,EAAAiiM,GAAA/vJ,KAEA+/C,GAAA,SAAAjyF,EAAAkyC,GACA,OAAA6vJ,GAAA/hM,EAAAgiM,GAAA9vJ,KAEAgwJ,GAAA,SAAAhwJ,GACA,OAAAr/B,GAAAq/B,GAAA3/B,OAEA6gF,GAAA,SAAApzF,EAAAkyC,GACA,OAAA4vJ,GAAA9hM,EAAAkiM,GAAAhwJ,KAEAmhD,GAAA,SAAArzF,EAAAkyC,GACA,OAAA4vJ,GAAA9hM,EAAAkiM,GAAAhwJ,GAAAjwC,GAAAiwC,KAEAiwJ,GAAA,SAAAC,EAAAC,EAAAjmN,GACA,OAAAA,EAAAhI,OACA,SAEA,IAAAqkC,EAAAjgC,EAAA4D,EAAAX,MAAA,YAAA6mN,EAAAtiM,GACA,OAAAsiM,EAAA9pN,IAAA,SAAA05D,GACA,OAAAkwJ,EAAApiM,EAAAkyC,OAGAqwJ,EAAAnmN,IAAAhI,OAAA,GAAAoE,IAAA,SAAA05D,GACA,OAAAmwJ,EAAAjmN,EAAAhI,OAAA,EAAA89D,KAEA,OAAAz5B,EAAA1jC,OAAA,CAAAwtN,KAEAC,GAAA,SAAA/1G,GACA,OAAAA,GAEA16E,GAAA,CACA6d,MAAAp7C,EACA+3C,UAAA,SAAAk2K,GACA,OAAAN,GAAA/uG,GAAAC,GAAAovG,IAEA7yM,KAAAsyM,IAEAl/K,GAAA,CACA4M,MAAAp7C,EACAob,KAAAqyM,GACA11K,UAAA,SAAAk2K,GACA,OAAAN,GAAAnwG,GAAAC,GAAAwwG,KAGAr/K,GAAA,CACAwM,MAAA4yK,GACA5yM,KAAAoyM,GACAz1K,UAAA,SAAAk2K,GACA,OAAAN,GAAAlwG,GAAAD,GAAAywG,KAGAC,GAAA,CACA3wL,UACAqR,OACAJ,QAGA2/K,GAAA,CACA3/K,IAAA0/K,GAAA1/K,IACAI,IAAAs/K,GAAAt/K,KAGA,SAAAw/K,GAAAC,GACA,IAAAC,EAAA,SAAAv0E,GACA,OAAAs0E,EAAAt0E,GAAA7rG,QAAAigL,GAAAv/K,IAAAu/K,GAAA3/K,KAEA4M,EAAA,SAAAuwK,EAAA5xE,GACA,OAAAu0E,EAAAv0E,GAAA3+F,MAAAuwK,EAAA5xE,IAEAhiG,EAAA,SAAA+kK,EAAA/iE,GACA,OAAAu0E,EAAAv0E,GAAAhiG,UAAA+kK,EAAA/iE,IAEA3+H,EAAA,SAAAsiD,GACA,OAAA4wJ,EAAA5wJ,GAAAtiD,KAAAsiD,IAEA,OACAtiB,QACAhgC,OACA28B,aAIA,IAAAw2K,GAAA,SAAAx0E,GACA,IAAAtpI,EAAA8sM,GAAAP,UAAAjjE,GACA0jE,EAAAW,GAAAl0M,SAAAuG,GACA,OAAAgtM,EAAAl0I,QAEAilJ,GAAA,CAAyBD,gBAEzBnsL,GAAA,SAAAl6B,GAKA,IAJA,IAAA5F,EAAA,GACA8E,EAAA,SAAAnH,GACAqC,EAAA8E,KAAAnH,IAEAuB,EAAA,EAAqBA,EAAA0G,EAAAtI,OAAgB4B,IACrC0G,EAAA1G,GAAAyC,KAAAmD,GAEA,OAAA9E,GAEAggC,GAAA,SAAAp6B,EAAA7I,GACA,QAAAmC,EAAA,EAAqBA,EAAA0G,EAAAtI,OAAgB4B,IAAA,CACrC,IAAAc,EAAAjD,EAAA6I,EAAA1G,MACA,GAAAc,EAAAiB,SACA,OAAAjB,EAGA,OAAA4C,EAAArC,QAGA4rN,GAAA,SAAAltM,EAAAsX,EAAA94B,EAAAokE,GACApkE,IAAAokE,EACAt3C,GAAAtL,EAAAsX,GAEAzgB,GAAAmJ,EAAAsX,EAAA94B,IAGAi3F,GAAA,SAAA+iD,EAAAxwE,GACA,IAAAmlJ,EAAA,GACAC,EAAA,GACAC,EAAA,SAAAC,EAAAC,GACA,IAAA98B,EAAA+pB,GAAAhiE,EAAA+0E,GAAArrN,WAAA,WACA,IAAAsrN,EAAAn1M,GAAAX,QAAA61M,EAAA9jM,GAAA+uH,GAAAxgI,OAEA,OADA2S,GAAA6tH,EAAAg1E,GACAA,IAEAriM,GAAAslK,GACA,IAAAzyH,EAAAv7D,EAAA6qN,EAAA,SAAAz0J,GACAA,EAAA40J,SACAN,EAAAtnN,KAAAgzD,EAAA74C,WAEA,IAAA0tM,EAAA70J,EAAA74C,UAUA,OATAmL,GAAAuiM,GACAhrN,EAAAm2D,EAAAqwB,QAAA,SAAA/sB,GACAA,EAAAsxJ,SACAL,EAAAvnN,KAAAs2D,EAAAn8C,WAEAktM,GAAA/wJ,EAAAn8C,UAAA,UAAAm8C,EAAA0/I,UAAA,GACAqR,GAAA/wJ,EAAAn8C,UAAA,UAAAm8C,EAAAy/I,UAAA,GACAjxL,GAAA+iM,EAAAvxJ,EAAAn8C,aAEA0tM,IAEAxiM,GAAAulK,EAAAzyH,IAEA2vJ,EAAA,SAAAJ,GACA/S,GAAAhiE,EAAA+0E,GAAA7qN,KAAA2zB,KAEAu3L,EAAA,SAAAN,EAAAC,GACAD,EAAAjvN,OAAA,EACAgvN,EAAAC,EAAAC,GAEAI,EAAAJ,IAGAM,EAAA,GACAC,EAAA,GACAC,EAAA,GAiBA,OAhBArrN,EAAAslE,EAAA,SAAAnP,GACA,OAAAA,EAAA43H,WACA,YACAo9B,EAAAhoN,KAAAgzD,GACA,MACA,YACAi1J,EAAAjoN,KAAAgzD,GACA,MACA,YACAk1J,EAAAloN,KAAAgzD,GACA,SAGA+0J,EAAAC,EAAA,SACAD,EAAAE,EAAA,SACAF,EAAAG,EAAA,SACA,CACAZ,QAAA5uN,EAAA4uN,GACAC,SAAA7uN,EAAA6uN,KAGAY,GAAA,SAAAhmJ,GACA,IAAAhK,EAAAv7D,EAAAulE,EAAA,SAAAnP,GACA,IAAA60J,EAAA1jN,GAAA6uD,EAAA74C,WAOA,OANAtd,EAAAm2D,EAAAqwB,QAAA,SAAA/sB,GACA,IAAA8xJ,EAAA9jN,GAAAgyD,EAAAn8C,WACAktM,GAAAe,EAAA,UAAA9xJ,EAAA0/I,UAAA,GACAqR,GAAAe,EAAA,UAAA9xJ,EAAAy/I,UAAA,GACAjxL,GAAA+iM,EAAAO,KAEAP,IAEA,OAAA1vJ,GAEAkwJ,GAAA,CACAz4H,UACA/tF,KAAAsmN,IAGAnsM,GAAA,SAAA7B,EAAAmW,GACA,IAAA33B,EAAAmtB,GAAA3L,EAAAmW,GACA,YAAA7zB,IAAA9D,GAAA,KAAAA,EAAA,GAAAA,EAAA2xB,MAAA,MAEAiG,GAAA,SAAApW,EAAAmW,EAAAv0B,GACA,IAAAqI,EAAA4X,GAAA7B,EAAAmW,GACAjsB,EAAAD,EAAAjL,OAAA,CAAA4C,IAEA,OADAiV,GAAAmJ,EAAAmW,EAAAjsB,EAAAZ,KAAA,OACA,GAEAqtB,GAAA,SAAA3W,EAAAmW,EAAAv0B,GACA,IAAAsI,EAAApH,EAAA+e,GAAA7B,EAAAmW,GAAA,SAAA5yB,GACA,OAAAA,IAAA3B,IAOA,OALAsI,EAAA7L,OAAA,EACAwY,GAAAmJ,EAAAmW,EAAAjsB,EAAAZ,KAAA,MAEAgiB,GAAAtL,EAAAmW,IAEA,GAGAG,GAAA,SAAAtW,GACA,YAAA1d,IAAA0d,EAAAhI,MAAAue,WAEAoH,GAAA,SAAA3d,GACA,OAAA6B,GAAA7B,EAAA,UAEAyW,GAAA,SAAAzW,EAAA0W,GACA,OAAAN,GAAApW,EAAA,QAAA0W,IAEAI,GAAA,SAAA9W,EAAA0W,GACA,OAAAC,GAAA3W,EAAA,QAAA0W,IAGAE,GAAA,SAAA5W,EAAA0W,GACAJ,GAAAtW,GACAA,EAAAhI,MAAAue,UAAAH,IAAAM,GAEAD,GAAAzW,EAAA0W,IAGAG,GAAA,SAAA7W,GACA,IAAAuW,EAAAD,GAAAtW,KAAAhI,MAAAue,UAAAoH,GAAA3d,GACA,IAAAuW,EAAAl4B,QACAitB,GAAAtL,EAAA,UAGAiX,GAAA,SAAAjX,EAAA0W,GACA,GAAAJ,GAAAtW,GAAA,CACA,IAAAuW,EAAAvW,EAAAhI,MAAAue,UACAA,EAAAjL,OAAAoL,QAEAI,GAAA9W,EAAA0W,GAEAG,GAAA7W,IAEA+W,GAAA,SAAA/W,EAAA0W,GACA,OAAAJ,GAAAtW,MAAAhI,MAAAue,UAAAtwB,SAAAywB,IAGAsgD,GAAA,SAAAm3I,EAAArwN,GAEA,IADA,IAAAiD,EAAA,GACAd,EAAA,EAAqBA,EAAAkuN,EAAiBluN,IACtCc,EAAA8E,KAAA/H,EAAAmC,IAEA,OAAAc,GAEAmF,GAAA,SAAA0X,EAAAywG,GAEA,IADA,IAAAttH,EAAA,GACAd,EAAA2d,EAAyB3d,EAAAouH,EAASpuH,IAClCc,EAAA8E,KAAA5F,GAEA,OAAAc,GAEAqtN,GAAA,SAAApoN,EAAAikB,GACA,GAAAA,EAAA,GAAAA,GAAAjkB,EAAA3H,OAAA,EACA,OAAAsF,EAAArC,OAEA,IAAA8Y,EAAApU,EAAAikB,GAAAnoB,KAAA,WACA,IAAAivB,EAAA5pB,EAAAnB,EAAAN,MAAA,EAAAukB,IACA,OAAA8W,GAAAhQ,EAAA,SAAA7vB,EAAAjB,GACA,OAAAiB,EAAAuB,IAAA,SAAA4rN,GACA,OACA7vN,MAAA6vN,EACAx0K,MAAA55C,EAAA,QAIO,SAAAgoB,GACP,OAAAtkB,EAAAP,KAAA,CACA5E,MAAAypB,EACA4xB,MAAA,MAGArlC,EAAAxO,EAAAikB,EAAA,GAAAnoB,KAAA,WACA,IAAAivB,EAAA/qB,EAAAN,MAAAukB,EAAA,GACA,OAAA8W,GAAAhQ,EAAA,SAAA7vB,EAAAjB,GACA,OAAAiB,EAAAuB,IAAA,SAAA4rN,GACA,OACA7vN,MAAA6vN,EACAx0K,MAAA55C,EAAA,QAIO,SAAAC,GACP,OAAAyD,EAAAP,KAAA,CACA5E,MAAA0B,EACA25C,MAAA,MAGA,OAAAz/B,EAAAzX,KAAA,SAAAslB,GACA,OAAAzT,EAAA/R,IAAA,SAAAvC,GACA,IAAAm0E,EAAAn0E,EAAA25C,MAAA5xB,EAAA4xB,MACA,OAAA5rB,KAAAgkB,IAAA/xC,EAAA1B,MAAAypB,EAAAzpB,OAAA61E,OAKAoH,GAAA,SAAAygI,GACA,IAAAl0I,EAAAk0I,EAAAl0I,OACAuzI,EAAAr1M,GAAA,EAAA8hE,EAAAyT,WACA6yI,EAAApoN,GAAA,EAAA8hE,EAAAhK,QACA,OAAAv7D,EAAA84M,EAAA,SAAAzyH,GACA,IAAAylI,EAAA,WACA,OAAA5rN,EAAA2rN,EAAA,SAAAvtN,GACA,OAAA87M,GAAAZ,MAAAC,EAAAn7M,EAAA+nF,GAAAhmF,OAAA,SAAA6kB,GACA,OAAAA,EAAAmxC,WAAAgwB,IACahnF,KAAAvD,EAAA,aAAAopB,GACb,OAAAA,QAIA6mM,EAAA,SAAA7mM,GACA,WAAAA,EAAAk0L,WAEA4S,EAAA,WACA,OAAA5R,GAAAZ,MAAAC,EAAA,EAAApzH,IAEA,OAAA4lI,GAAAH,EAAAC,EAAAC,MAGAC,GAAA,SAAAH,EAAAC,EAAAC,GACA,IAAAE,EAAAJ,IACAK,EAAA7nN,EAAA4nN,EAAAH,GACAK,EAAAD,EAAApsN,QAAA,WACA,OAAAmB,EAAAD,KAAAirN,EAAA,IAAAnsN,QAAAisN,KAEA,OAAAI,EAAApsN,IAAA,SAAAklB,GACA,OAAAA,EAAA3H,aAGA8uM,GAAA,SAAA5S,GACA,IAAAl0I,EAAAk0I,EAAAl0I,OACAsmJ,EAAApoN,GAAA,EAAA8hE,EAAAhK,QACAu9I,EAAAr1M,GAAA,EAAA8hE,EAAAyT,WACA,OAAAh5E,EAAA6rN,EAAA,SAAAz1J,GACA,IAAA01J,EAAA,WACA,OAAA5rN,EAAA44M,EAAA,SAAAtzL,GACA,OAAA40L,GAAAZ,MAAAC,EAAArjJ,EAAA5wC,GAAAnlB,OAAA,SAAA6kB,GACA,OAAAA,EAAAkxC,YACa/2D,KAAAvD,EAAA,aAAAopB,GACb,OAAAA,QAIA6mM,EAAA,SAAA7mM,GACA,WAAAA,EAAAi0L,WAEA6S,EAAA,WACA,OAAA5R,GAAAZ,MAAAC,EAAArjJ,EAAA,IAEA,OAAA61J,GAAAH,EAAAC,EAAAC,MAGAM,GAAA,CACAtzI,WACAzd,KAAA8wJ,IAGAl3L,GAAA,SAAAo3L,GACA,IAAAC,EAAAD,EAAA31M,QAAA,WACA1Z,EAAA,SAAA+d,GACA,OAAAuxM,EAAA,IAAAvxM,GAEA,OAAc/d,YAGd2yB,GAAAsF,GAAA,iBACAs3L,GAAA,CAAkBvvN,QAAA2yB,GAAA3yB,SAElBmpF,GAAA,SAAAhwB,EAAAp6D,EAAAyZ,EAAAynB,EAAAvE,GACA,IAAAgsG,EAAAhvH,GAAAX,QAAA,OAYA,OAXAigB,GAAA0vG,EAAA,CACAvnG,SAAA,WACAvD,KAAA79B,EAAAkhC,EAAA,OACApD,IAAArkB,EAAA,KACA6jB,OAAAX,EAAA,KACA4C,MAAA2B,EAAA,OAEApT,GAAA66G,EAAA,CACA8nF,cAAAr2J,EACAkN,KAAA,iBAEAqhE,GAEA+nF,GAAA,SAAAruN,EAAArC,EAAAyZ,EAAAynB,EAAAvE,GACA,IAAAgsG,EAAAhvH,GAAAX,QAAA,OAYA,OAXAigB,GAAA0vG,EAAA,CACAvnG,SAAA,WACAvD,KAAA79B,EAAA,KACA89B,IAAArkB,EAAAkjB,EAAA,OACAW,OAAAX,EAAA,KACA4C,MAAA2B,EAAA,OAEApT,GAAA66G,EAAA,CACAgoF,WAAAtuN,EACAilE,KAAA,iBAEAqhE,GAEAioF,GAAA,CACAxmI,OACAjwB,IAAAu2J,IAGAG,GAAAL,GAAAvvN,QAAA,eACA6vN,GAAAN,GAAAvvN,QAAA,gBACA8vN,GAAAP,GAAAvvN,QAAA,gBACA+vN,GAAA,EACAtwH,GAAA,SAAAuwH,GACA,IAAApxC,EAAA9gG,GAAAkyI,EAAA/lM,SAAA,IAAA2lM,IACA7sN,EAAA67K,EAAAloJ,KAEAu5L,GAAA,SAAAD,EAAAn5K,EAAAlQ,GACA,IAAAuF,EAAA8jL,EAAA9jL,SACAnpC,EAAA8zC,EAAA,SAAAq5K,EAAA5vN,GACA4vN,EAAAntN,KAAA,SAAAotN,GACA,IAAAn4E,EAAArxG,EAAAuF,EAAAikL,GACAl5L,GAAA+gH,EAAA43E,IACA5kM,GAAAglM,EAAA/lM,SAAA+tH,QAIAo4E,GAAA,SAAAJ,EAAAK,EAAAlwL,EAAAmwL,GACAL,GAAAD,EAAAK,EAAA,SAAAnkL,EAAAikL,GACA,IAAAI,EAAAZ,GAAAxmI,IAAAgnI,EAAAhnI,MAAAgnI,EAAApxN,IAAAmtC,EAAAtP,OAAAuD,EAAAtD,MAAAqP,EAAArP,MAAAkzL,GAAAO,GAEA,OADAr5L,GAAAs5L,EAAAT,IACAS,KAGAC,GAAA,SAAAR,EAAAS,EAAAtwL,EAAAuwL,GACAT,GAAAD,EAAAS,EAAA,SAAAvkL,EAAAikL,GACA,IAAAQ,EAAAhB,GAAAz2J,IAAAi3J,EAAAj3J,MAAA/4B,EAAAvD,OAAAsP,EAAAtP,OAAAuzL,EAAA33M,IAAA0zB,EAAArP,MAAA6zL,EAAAX,IAEA,OADA94L,GAAA05L,EAAAd,IACAc,KAGAC,GAAA,SAAAZ,EAAAn3E,EAAAx6E,EAAAu9I,EAAAiV,EAAAC,GACA,IAAA3wL,EAAAhD,GAAA07G,GACA43E,EAAApyJ,EAAA3/D,OAAA,EAAAmyN,EAAAh6K,UAAAwnB,EAAAw6E,GAAA,GACA23E,GAAAR,EAAAS,EAAAtwL,EAAA3D,GAAAq8G,IACA,IAAAw3E,EAAAzU,EAAAl9M,OAAA,EAAAoyN,EAAAj6K,UAAA+kK,EAAA/iE,GAAA,GACAu3E,GAAAJ,EAAAK,EAAAlwL,EAAA5T,GAAAssH,KAEAxtE,GAAA,SAAA2kJ,EAAAn3E,EAAAg4E,EAAAC,GACArxH,GAAAuwH,GACA,IAAAn+L,EAAAwqL,GAAAP,UAAAjjE,GACA0jE,EAAAW,GAAAl0M,SAAA6oB,GACAwsC,EAAA+wJ,GAAA/wJ,KAAAk+I,GACAX,EAAAwT,GAAAtzI,QAAAygI,GACAqU,GAAAZ,EAAAn3E,EAAAx6E,EAAAu9I,EAAAiV,EAAAC,IAEAC,GAAA,SAAAf,EAAA7xN,GACA,IAAA6yN,EAAAlzI,GAAAkyI,EAAA/lM,SAAA,IAAA2lM,IACA7sN,EAAAiuN,EAAA7yN,IAEA6yE,GAAA,SAAAg/I,GACAe,GAAAf,EAAA,SAAAh4E,GACAprH,GAAAorH,EAAA,qBAGAr4D,GAAA,SAAAqwI,GACAe,GAAAf,EAAA,SAAAh4E,GACAprH,GAAAorH,EAAA,sBAGAi5E,GAAA,SAAA5wM,GACA,OAAA+W,GAAA/W,EAAAwvM,KAEAqB,GAAA,SAAA7wM,GACA,OAAA+W,GAAA/W,EAAAyvM,KAEAqB,GAAA,CACA9lJ,WACA2F,QACA2O,QACA8f,WACAwxH,YACAC,aAGAE,GAAA,SAAAC,EAAA/mM,EAAAkyC,GACA,IAAA+sB,EAAA8nI,EAAA9nI,QACA7+D,EAAA6+D,EAAAxjF,MAAA,EAAAukB,GACAQ,EAAAy+D,EAAAxjF,MAAAukB,GACAmjM,EAAA/iM,EAAArrB,OAAA,CAAAm9D,IAAAn9D,OAAAyrB,GACA,OAAAwmM,GAAAD,EAAA5D,IAEA8D,GAAA,SAAAF,EAAA/mM,EAAAkyC,GACA,IAAA+sB,EAAA8nI,EAAA9nI,QACAA,EAAAj/D,GAAAkyC,GAEA80J,GAAA,SAAAD,EAAA9nI,GACA,OAAAgxH,GAAAhxH,EAAA8nI,EAAAvgC,YAEA0gC,GAAA,SAAAH,EAAAlzN,GACA,IAAAorF,EAAA8nI,EAAA9nI,QACAnoF,EAAA0B,EAAAymF,EAAAprF,GACA,OAAAo8M,GAAAn5M,EAAAiwN,EAAAvgC,YAEA2gC,GAAA,SAAAJ,EAAA/mM,GACA,OAAA+mM,EAAA9nI,QAAAj/D,IAEAonM,GAAA,SAAAL,EAAA/mM,GACA,OAAAmnM,GAAAJ,EAAA/mM,GAAAjK,WAEAsxM,GAAA,SAAAN,GACA,OAAAA,EAAA9nI,QAAA7qF,QAEAkzN,GAAA,CACAR,WACAE,YACAC,cACAE,WACAC,kBACAF,YACAG,eAGAE,GAAA,SAAAxpJ,EAAA/9C,GACA,OAAAxnB,EAAAulE,EAAA,SAAAnP,GACA,OAAA04J,GAAAH,QAAAv4J,EAAA5uC,MAGAwnM,GAAA,SAAAzpJ,EAAA/9C,GACA,OAAA+9C,EAAA/9C,IAEAynM,GAAA,SAAA1rN,EAAA2qB,GACA,OAAA3qB,EAAA3H,OACA,SAEA,IAAAu1C,EAAA5tC,EAAA,GACAikB,EAAAjjB,EAAAhB,EAAA,SAAAtH,GACA,OAAAiyB,EAAAijB,EAAA5zB,UAAAthB,EAAAshB,aAEA,OAAAiK,EAAAnoB,KAAA,WACA,OAAAkE,EAAA3H,QACO,SAAAukN,GACP,OAAAA,KAGA+O,GAAA,SAAA3pJ,EAAAnP,EAAAC,EAAArxD,GACA,IAAAmqN,EAAAH,GAAAzpJ,EAAAnP,GAAAqwB,QAAAxjF,MAAAozD,GACA+4J,EAAAH,GAAAE,EAAAnqN,GACAqqN,EAAAN,GAAAxpJ,EAAAlP,GAAApzD,MAAAmzD,GACAk5J,EAAAL,GAAAI,EAAArqN,GACA,OACAo0M,QAAAt9M,EAAAszN,GACAjW,QAAAr9M,EAAAwzN,KAGAC,GAAA,CAAqBL,YAErBM,GAAA,SAAAjqJ,EAAAvgE,GACA,IAAAyqN,EAAAzvN,EAAAulE,EAAA,SAAAnP,EAAAs5J,GACA,OAAA1vN,EAAAo2D,EAAAqwB,QAAA,SAAAJ,EAAAspI,GACA,aAGAC,EAAA,SAAAF,EAAAC,EAAAxW,EAAAC,GACA,QAAA96M,EAAAoxN,EAAwBpxN,EAAAoxN,EAAAvW,EAAkB76M,IAC1C,QAAAknB,EAAAmqM,EAA0BnqM,EAAAmqM,EAAAvW,EAAkB5zL,IAC5CiqM,EAAAnxN,GAAAknB,IAAA,GAIA,OAAAxlB,EAAAulE,EAAA,SAAAnP,EAAAs5J,GACA,IAAAjgI,EAAAvvF,EAAAk2D,EAAAqwB,QAAA,SAAA/sB,EAAAi2J,GACA,QAAAF,EAAAC,GAAAC,GAAA,CACA,IAAA5lN,EAAAwlN,GAAAL,QAAA3pJ,EAAAmqJ,EAAAC,EAAA3qN,GAEA,OADA4qN,EAAAF,EAAAC,EAAA5lN,EAAAovM,UAAApvM,EAAAqvM,WACA,CAAAhC,GAAA19I,EAAAn8C,UAAAxT,EAAAovM,UAAApvM,EAAAqvM,UAAA1/I,EAAAsxJ,UAEA,WAGA,OAAAtT,GAAAjoH,EAAAr5B,EAAA43H,cAGA6hC,GAAA,SAAApW,EAAAwM,EAAA+E,GAEA,IADA,IAAAzlJ,EAAA,GACA/nE,EAAA,EAAqBA,EAAAi8M,EAAAl0I,OAAAhK,OAA6B/9D,IAAA,CAElD,IADA,IAAAsyN,EAAA,GACApxN,EAAA,EAAuBA,EAAA+6M,EAAAl0I,OAAAyT,UAAgCt6E,IAAA,CACvD,IAAA6e,EAAA68L,GAAAZ,MAAAC,EAAAj8M,EAAAkB,GAAAsB,IAAA,SAAAm3B,GACA,OAAAogL,GAAApgL,EAAA5Z,UAAAytM,KACWvrN,WAAA,WACX,OAAA83M,GAAA0O,EAAAzJ,OAAA,KAEAsT,EAAA1sN,KAAAma,GAEA,IAAA64C,EAAAqhJ,GAAAqY,EAAArW,EAAAn9M,MAAAkB,GAAAwwL,WACAzoH,EAAAniE,KAAAgzD,GAEA,OAAAmP,GAEAwqJ,GAAA,CACAP,aACAK,WAGAG,GAAA,SAAAvW,EAAAwM,GACA,OAAA8J,GAAAF,OAAApW,EAAAwM,GAAA,IAEAgK,GAAA,SAAAC,EAAAjK,GACA,IAAAkK,EAAA,SAAA1gI,GACA,IAAA2gI,EAAA9xL,GAAAmxD,EAAA,SAAAvqE,GACA,OAAAiC,GAAAjC,EAAA3H,WAAAvd,IAAA,SAAAo2D,GACA,IAAA40J,EAAA7jM,GAAAivC,GAAAn3D,SACA,OAAAs4M,GAAAnhJ,EAAA40J,OAGA,OAAAoF,EAAA3wN,WAAA,WACA,OAAA83M,GAAA0O,EAAA7vJ,OAAA,MAGA,OAAAp2D,EAAAkwN,EAAA,SAAAzgI,GACA,IAAAr5B,EAAA+5J,EAAA1gI,aACA,OAAA+nH,GAAAphJ,EAAA74C,UAAAkyE,cAAAu+F,UAAA53H,EAAA40J,YAGAqF,GAAA,SAAA9qJ,EAAA0gJ,GACA,IAAAiK,EAAAH,GAAAP,UAAAjqJ,EAAAxmE,IACA,OAAAkxN,GAAAC,EAAAjK,IAEAqK,GAAA,SAAA7W,EAAAl8L,GACA,IAAAjhB,EAAAkI,EAAAxE,EAAAy5M,EAAAn9M,MAAA,SAAAgC,GACA,OAAAA,EAAAmoF,WAEA,OAAAniF,EAAAhI,EAAA,SAAA0B,GACA,OAAAe,GAAAwe,EAAAvf,EAAAuf,cAGAgC,GAAA,SAAAggH,EAAAnxH,EAAAioG,EAAAk6G,EAAAC,GACA,gBAAAtD,EAAAn3E,EAAA/uI,EAAAi/M,EAAA/8K,GACA,IAAAz8B,EAAA8sM,GAAAP,UAAAjjE,GACA0jE,EAAAW,GAAAl0M,SAAAuG,GACAhI,EAAA2J,EAAAqrM,EAAAzyM,GAAAhH,IAAA,SAAA+X,GACA,IAAAy5F,EAAAw+G,GAAAvW,EAAAwM,GACAl8M,EAAAw1H,EAAA/tB,EAAAz5F,EAAAhZ,GAAAyxN,EAAAvK,IACA1gJ,EAAA8qJ,GAAAtmN,EAAAw7D,OAAA0gJ,GACA,OACA1gJ,KAAAzpE,EAAAypE,GACAs9D,OAAA94H,EAAA84H,UAGA,OAAAp+H,EAAApF,KAAA,WACA,OAAA6B,EAAArC,QACS,SAAAsvH,GACT,IAAAsiG,EAAAhF,GAAAz4H,OAAA+iD,EAAA5nB,EAAA5oD,QAIA,OAHA8wC,EAAA0/B,EAAA5nB,EAAA5oD,OAAAr8B,GACAqnL,EAAAx6E,GACAs4E,GAAA9lJ,QAAA2kJ,EAAAn3E,EAAAm0E,GAAA3wL,OAAA2P,GACAhoC,EAAAP,KAAA,CACAkiI,OAAA1U,EAAA0U,OACA6nF,QAAA+F,EAAA/F,QACAC,SAAA8F,EAAA9F,eAKA+F,GAAA,SAAAjX,EAAAzyM,GACA,OAAA+xM,GAAAr/I,KAAA1yD,EAAAuW,WAAArd,KAAA,SAAAw5D,GACA,OAAA42J,GAAA7W,EAAA//I,MAGA6/B,GAAA,SAAAkgH,EAAAzyM,GACA,OAAA+xM,GAAAr/I,KAAA1yD,EAAAuW,WAAArd,KAAA,SAAAw5D,GACA,OAAA42J,GAAA7W,EAAA//I,GAAA15D,IAAA,SAAAyvF,GACA,IAAA1zF,EAAAoB,MAAA,GAA0CsyF,GAAA,CAC1Cw2H,WAAAj/M,EAAAi/M,WACAD,UAAAh/M,EAAAg/M,YAEA,OAAAjqN,OAIA40N,GAAA,SAAAlX,EAAAzyM,GACA,IAAAyoF,EAAAzvF,EAAAgH,EAAA+lC,YAAA,SAAA2sB,GACA,OAAAq/I,GAAAr/I,QAAAx5D,KAAA,SAAA0wN,GACA,OAAAN,GAAA7W,EAAAmX,OAGAnqI,EAAAroD,GAAAqxD,GACA,OAAAhJ,EAAA7qF,OAAA,EAAAsF,EAAAP,KAAA,CACA8lF,QACAw/H,WAAAj/M,EAAAi/M,WACAD,UAAAh/M,EAAAg/M,YACO9kN,EAAArC,QAEPgyN,GAAA,SAAAC,EAAA9pN,GACA,OAAAA,EAAAy+M,YAEAsL,GAAA,SAAAD,EAAA9pN,GACA,OAAAA,EAAAu+M,cAEAyL,GAAA,SAAAvX,EAAAzyM,GACA,IAAAyoF,EAAAzvF,EAAAgH,EAAA+lC,YAAA,SAAA2sB,GACA,OAAAq/I,GAAAr/I,QAAAx5D,KAAA,SAAA0wN,GACA,OAAAN,GAAA7W,EAAAmX,OAGAnqI,EAAAroD,GAAAqxD,GACA,OAAAhJ,EAAA7qF,OAAA,EAAAsF,EAAAP,KAAA8lF,GAAAvlF,EAAArC,QAGA9C,GAAA,SAAAiD,GACA,IAAAM,EAAA,SAAAwB,GACA,OAAA9B,IAAA8B,GAEAhB,EAAA,SAAAqB,GACA,OAAApF,GAAAiD,IAEAe,EAAA,SAAA1E,GACA,OAAAU,GAAAiD,IAEAgB,EAAA,SAAA3E,GACA,OAAAU,GAAAV,EAAA2D,KAEAoC,EAAA,SAAA/F,GACA,OAAAU,GAAAiD,IAEAiB,EAAA,SAAA5E,GACAA,EAAA2D,IAEAkB,EAAA,SAAA7E,GACA,OAAAA,EAAA2D,IAEAK,EAAA,SAAAgC,EAAAC,GACA,OAAAA,EAAAtC,IAEAmB,EAAA,SAAA9E,GACA,OAAAA,EAAA2D,IAEAoB,EAAA,SAAA/E,GACA,OAAAA,EAAA2D,IAEAuC,EAAA,WACA,OAAAL,EAAAP,KAAA3B,IAEA,OACAM,KACAkC,QAAA3E,EACA4E,QAAA7E,EACA4C,MAAA1D,EAAAkD,GACAS,WAAA3D,EAAAkD,GACAU,SAAA5D,EAAAkD,GACAc,KACAC,UACAV,OACAW,MACAoB,WACAnB,OACAC,OACAC,SACAC,SACAmB,aAGAG,GAAA,SAAAC,GACA,IAAAlC,EAAA,SAAApE,GACA,OAAAA,KAEAqE,EAAA,WACA,OAAAjD,EAAAmF,OAAAD,GAAAlF,IAEAqD,EAAA,SAAAqB,GACA,OAAAA,GAEApB,EAAA,SAAA1E,GACA,OAAAA,KAEA2E,EAAA,SAAA3E,GACA,OAAAqG,GAAAC,IAEAP,EAAA,SAAA/F,GACA,OAAAqG,GAAArG,EAAAsG,KAEAzB,EAAA,SAAA7E,GACA,OAAAqG,GAAAC,IAEAtC,EAAA,SAAAwC,EAAAR,GACA,OAAAQ,EAAAF,IAEA,OACArC,GAAA1C,EACA4E,QAAA5E,EACA6E,QAAA5E,EACA2C,MAAAxD,EACAyD,aACAC,WACAI,KACAC,UACAV,OACAW,MACAoB,WACAnB,KAAA9E,EACA+E,OACAC,OAAAvD,EACAwD,OAAAvD,EACA0E,SAAAL,EAAArC,OAGAiD,GAAA,SAAAX,EAAAY,GACA,OAAAZ,EAAA9B,KAAA,WACA,OAAAqC,GAAAK,IACOhG,KAEPiG,GAAA,CACAjG,SACA2F,SACAI,eAGAmvN,GAAA,SAAAC,EAAAC,EAAAC,GACA,GAAAF,EAAA96J,OAAA+6J,EAAAv1N,QAAAs1N,EAAA76J,SAAAy4J,GAAAD,WAAAsC,EAAA,IACA,OAAAnvN,GAAAN,MAAA,mDAAAwvN,EAAA96J,MAAA,aAAA86J,EAAA76J,UAEA,IAAAg7J,EAAAF,EAAAluN,MAAAiuN,EAAA96J,OACAk7J,EAAAD,EAAA,GAAA5qI,QAAAxjF,MAAAiuN,EAAA76J,UACAk7J,EAAAzC,GAAAD,WAAAuC,EAAA,IACAI,EAAAJ,EAAAx1N,OACA,OAAAoG,GAAAjG,MAAA,CACA01N,SAAA31N,EAAAu1N,EAAAz1N,OAAA41N,GACAE,SAAA51N,EAAAw1N,EAAA11N,OAAA21N,MAGAI,GAAA,SAAAR,EAAAC,GACA,IAAAQ,EAAA9C,GAAAD,WAAAsC,EAAA,IACAU,EAAA/C,GAAAD,WAAAuC,EAAA,IACA,OACAK,SAAA31N,EAAA,GACA41N,SAAA51N,EAAA81N,EAAAC,KAGAC,GAAA,SAAArrI,EAAAsrI,GACA,OAAA/xN,EAAAymF,EAAA,WACA,OAAA8wH,GAAAwa,EAAAr4J,QAAA,MAGAs4J,GAAA,SAAAzsJ,EAAAoiJ,EAAAoK,GACA,OAAAxsJ,EAAAhpE,OAAAg4E,GAAAozI,EAAA,SAAAsK,GACA,OAAAnD,GAAAN,SAAAjpJ,IAAA3pE,OAAA,GAAAk2N,GAAAvsJ,IAAA3pE,OAAA,GAAA6qF,QAAAsrI,QAGAG,GAAA,SAAA3sJ,EAAAoiJ,EAAAoK,GACA,OAAA/xN,EAAAulE,EAAA,SAAAnP,GACA,OAAA04J,GAAAN,SAAAp4J,IAAAqwB,QAAAlqF,OAAAu1N,GAAAruN,GAAA,EAAAkkN,GAAAoK,QAGAI,GAAA,SAAAhB,EAAA/5K,EAAA26K,GACA,IAAAK,EAAAh7K,EAAAs6K,WAAA,EAAAQ,GAAAl2N,EACAq2N,EAAAj7K,EAAAq6K,WAAA,EAAAO,GAAAh2N,EACAs2N,EAAAF,EAAAjB,EAAA3lM,KAAAgkB,IAAA4H,EAAAs6K,YAAAK,GACAQ,EAAAF,EAAAC,EAAA9mM,KAAAgkB,IAAA4H,EAAAq6K,YAAAM,GACA,OAAAQ,GAEAC,GAAA,CACAvB,WACAU,gBACAQ,WAGAjqN,GAAA,SAAAq9D,EAAAhqC,EAAAv2B,EAAAytN,GACA,OAAAltJ,EAAA3pE,OACA,OAAA2pE,EAEA,QAAA/nE,EAAA+9B,EAAA0+B,WAAqCz8D,GAAA+9B,EAAA0hL,YAAyBz/M,IAC9D,QAAAkB,EAAA68B,EAAAq+B,WAAuCl7D,GAAA68B,EAAAyhL,YAAyBt+M,IAChEowN,GAAAL,WAAAlpJ,EAAA/nE,GAAAkB,EAAA64M,GAAAkb,KAAA,IAGA,OAAAltJ,GAEAmtJ,GAAA,SAAAntJ,EAAAv+D,EAAAhC,EAAAytN,GAEA,IADA,IAAAthL,GAAA,EACA3zC,EAAA,EAAqBA,EAAA+nE,EAAA3pE,OAAiB4B,IACtC,QAAAkB,EAAA,EAAuBA,EAAAowN,GAAAD,WAAAtpJ,EAAA,IAAiC7mE,IAAA,CACxD,IAAAiZ,EAAAm3M,GAAAF,eAAArpJ,EAAA/nE,GAAAkB,GACAi0N,EAAA3tN,EAAA2S,EAAA3Q,IACA,IAAA2rN,IAAA,IAAAxhL,EACA29K,GAAAL,WAAAlpJ,EAAA/nE,GAAAkB,EAAA64M,GAAAkb,KAAA,KACW,IAAAE,IACXxhL,GAAA,GAIA,OAAAo0B,GAEAqtJ,GAAA,SAAAx8J,EAAApxD,GACA,OAAAX,EAAA+xD,EAAA,SAAA9nC,EAAAorC,GACA,OAAAv5D,EAAAmuB,EAAA,SAAAukM,GACA,OAAA7tN,EAAA6tN,EAAAt1M,UAAAm8C,EAAAn8C,aACS+Q,IAAA/xB,OAAA,CAAAm9D,KACF,KAEPo5J,GAAA,SAAAvtJ,EAAA/9C,EAAAxiB,EAAAytN,GACA,GAAAjrM,EAAA,GAAAA,EAAA+9C,EAAA3pE,OAAA,CACA,IAAAm3N,EAAAxtJ,EAAA/9C,EAAA,GAAAi/D,QACAA,EAAAmsI,GAAAG,EAAA/tN,GACA/E,EAAAwmF,EAAA,SAAA/sB,GAmBA,IAlBA,IAAAs5J,EAAA9xN,EAAArC,OACAu3J,EAAA,SAAA54J,GAaA,IAZA,IAAAy1N,EAAA,SAAAv0N,GACA,IAAAiZ,EAAA4tD,EAAA/nE,GAAAipF,QAAA/nF,GACAi0N,EAAA3tN,EAAA2S,EAAA4F,UAAAm8C,EAAAn8C,WACAo1M,IACAK,EAAA/zN,WACA+zN,EAAA9xN,EAAAP,KAAA8xN,MAEAO,EAAA/yN,KAAA,SAAAizN,GACApE,GAAAL,WAAAlpJ,EAAA/nE,GAAAkB,EAAA64M,GAAA2b,GAAA,QAIAx0N,EAAA,EAA2BA,EAAAowN,GAAAD,WAAAtpJ,EAAA,IAAiC7mE,IAC5Du0N,EAAAv0N,IAGAlB,EAAAgqB,EAA6BhqB,EAAA+nE,EAAA3pE,OAAiB4B,IAC9C44J,EAAA54J,KAIA,OAAA+nE,GAEA4tJ,GAAA,CACAjrN,SACAwqN,WACAI,cAGAM,GAAA,SAAA7tJ,EAAAnP,EAAAiwB,EAAArhF,GACA,IAAAyV,EAAAq0M,GAAAH,QAAAppJ,EAAAnP,GAAAiwB,GACAgtI,EAAAn3N,EAAA8I,EAAAyV,EAAA8C,WACAw8L,EAAAx0I,EAAAnP,GACA,OAAAmP,EAAA3pE,OAAA,GAAAkzN,GAAAD,WAAA9U,GAAA,IAAA1zH,EAAA,GAAAgtI,EAAAvE,GAAAF,eAAA7U,EAAA1zH,EAAA,KAAAA,EAAA0zH,EAAAtzH,QAAA7qF,OAAA,GAAAy3N,EAAAvE,GAAAF,eAAA7U,EAAA1zH,EAAA,KAAAjwB,EAAA,GAAAi9J,EAAAvE,GAAAF,eAAArpJ,EAAAnP,EAAA,GAAAiwB,KAAAjwB,EAAAmP,EAAA3pE,OAAA,GAAAy3N,EAAAvE,GAAAF,eAAArpJ,EAAAnP,EAAA,GAAAiwB,MAEAitI,GAAA,SAAApC,EAAAC,EAAAC,EAAAW,EAAA/sN,GAOA,IANA,IAAAi1D,EAAAi3J,EAAA96J,MACAwD,EAAAs3J,EAAA76J,SACAk9J,EAAAnC,EAAAx1N,OACA43N,EAAA1E,GAAAD,WAAAuC,EAAA,IACAtW,EAAA7gJ,EAAAs5J,EACAxY,EAAAnhJ,EAAA45J,EACAl1N,EAAA27D,EAA4B37D,EAAAw8M,EAAYx8M,IACxC,QAAAknB,EAAAo0C,EAA8Bp0C,EAAAu1L,EAAYv1L,IAAA,CAC1C4tM,GAAAjC,EAAA7yN,EAAAknB,EAAAxgB,IACAmuN,GAAAT,QAAAvB,EAAArC,GAAAF,eAAAuC,EAAA7yN,GAAAknB,GAAAxgB,EAAA+sN,EAAAr4J,MAEA,IAAAsiJ,EAAA8S,GAAAF,eAAAwC,EAAA9yN,EAAA27D,GAAAz0C,EAAAo0C,GACAo5J,EAAAjB,EAAAn7M,QAAAolM,GACA8S,GAAAL,WAAA0C,EAAA7yN,GAAAknB,EAAA+xL,GAAAyb,GAAA,IAGA,OAAA7B,GAEArhM,GAAA,SAAAohM,EAAAC,EAAAC,EAAAW,EAAA/sN,GACA,IAAA+E,EAAAyoN,GAAAvB,QAAAC,EAAAC,EAAAC,GACA,OAAArnN,EAAA/J,IAAA,SAAAo3C,GACA,IAAAq8K,EAAAjB,GAAAL,OAAAhB,EAAA/5K,EAAA26K,GACA,OAAAuB,GAAApC,EAAAuC,EAAArC,EAAAW,EAAA/sN,MAGA85D,GAAA,SAAAt3C,EAAA2pM,EAAAC,EAAAW,EAAA/sN,GACAmuN,GAAAL,UAAA3B,EAAA3pM,EAAAxiB,EAAA+sN,EAAAr4J,MACA,IAAAtiB,EAAAo7K,GAAAb,aAAAP,EAAAD,GACAuC,EAAAlB,GAAAL,OAAAf,EAAAh6K,EAAA26K,GACA4B,EAAAnB,GAAAb,aAAAR,EAAAuC,GACAE,EAAApB,GAAAL,OAAAhB,EAAAwC,EAAA5B,GACA,OAAA6B,EAAA3wN,MAAA,EAAAukB,GAAAjrB,OAAAm3N,GAAAn3N,OAAAq3N,EAAA3wN,MAAAukB,EAAAosM,EAAAh4N,UAEAi4N,GAAA,CACA3rN,MAAA4nB,GACAgvC,WAGAg1J,GAAA,SAAAvuJ,EAAA/9C,EAAA8xL,EAAAt0M,EAAAytN,GACA,IAAA7qM,EAAA29C,EAAAtiE,MAAA,EAAAukB,GACAQ,EAAAu9C,EAAAtiE,MAAAukB,GACAusM,EAAAjF,GAAAJ,SAAAnpJ,EAAA+zI,GAAA,SAAApzG,EAAA1gF,GACA,IAAAwuM,EAAAxsM,EAAA,GAAAA,EAAA+9C,EAAA3pE,QAAAoJ,EAAA8pN,GAAAF,eAAArpJ,EAAA/9C,EAAA,GAAAhC,GAAAspM,GAAAF,eAAArpJ,EAAA/9C,GAAAhC,IACAxd,EAAAgsN,EAAAlF,GAAAH,QAAAppJ,EAAA/9C,GAAAhC,GAAA+xL,GAAAkb,EAAAvsH,EAAA3oF,UAAAvY,IAAA,GACA,OAAAgD,IAEA,OAAA4f,EAAArrB,OAAA,CAAAw3N,IAAAx3N,OAAAyrB,IAEAisM,GAAA,SAAA1uJ,EAAA/9C,EAAA8xL,EAAAt0M,EAAAytN,GACA,OAAAzyN,EAAAulE,EAAA,SAAAnP,GACA,IAAA49J,EAAAxsM,EAAA,GAAAA,EAAAsnM,GAAAD,WAAAz4J,IAAApxD,EAAA8pN,GAAAF,eAAAx4J,EAAA5uC,EAAA,GAAAsnM,GAAAF,eAAAx4J,EAAA5uC,IACA0rM,EAAAc,EAAAlF,GAAAH,QAAAv4J,EAAA5uC,GAAA+vL,GAAAkb,EAAA3D,GAAAF,eAAAx4J,EAAAkjJ,GAAAt0M,IAAA,GACA,OAAA8pN,GAAAR,QAAAl4J,EAAA5uC,EAAA0rM,MAGAgB,GAAA,SAAA3uJ,EAAA4uJ,EAAAC,EAAApvN,EAAAytN,GACA,IAAAjrM,EAAA4sM,EAAA,EACA,OAAAp0N,EAAAulE,EAAA,SAAAnP,EAAA54D,GACA,IAAA62N,EAAA72N,IAAA22N,EACAjB,EAAAmB,EAAA9c,GAAAkb,EAAA3D,GAAAF,eAAAx4J,EAAAg+J,GAAApvN,IAAA,GAAA8pN,GAAAH,QAAAv4J,EAAAg+J,GACA,OAAAtF,GAAAR,QAAAl4J,EAAA5uC,EAAA0rM,MAGAoB,GAAA,SAAA/uJ,EAAA4uJ,EAAAC,EAAApvN,EAAAytN,GACA,IAAAjrM,EAAA2sM,EAAA,EACAvsM,EAAA29C,EAAAtiE,MAAA,EAAAukB,GACAQ,EAAAu9C,EAAAtiE,MAAAukB,GACAusM,EAAAjF,GAAAJ,SAAAnpJ,EAAA4uJ,GAAA,SAAAjuH,EAAA1oG,GACA,IAAA62N,EAAA72N,IAAA42N,EACA,OAAAC,EAAA9c,GAAAkb,EAAAvsH,EAAA3oF,UAAAvY,IAAA,GAAAkhG,IAEA,OAAAt+E,EAAArrB,OAAA,CAAAw3N,IAAAx3N,OAAAyrB,IAEAusM,GAAA,SAAAhvJ,EAAApqD,EAAAyxB,GACA,IAAA2uB,EAAAv7D,EAAAulE,EAAA,SAAAnP,GACA,IAAAqwB,EAAArwB,EAAAqwB,QAAAxjF,MAAA,EAAAkY,GAAA5e,OAAA65D,EAAAqwB,QAAAxjF,MAAA2pC,EAAA,IACA,OAAA6qK,GAAAhxH,EAAArwB,EAAA43H,aAEA,OAAA3tL,EAAAk7D,EAAA,SAAAnF,GACA,OAAAA,EAAAqwB,QAAA7qF,OAAA,KAGA44N,GAAA,SAAAjvJ,EAAApqD,EAAAyxB,GACA,OAAA24B,EAAAtiE,MAAA,EAAAkY,GAAA5e,OAAAgpE,EAAAtiE,MAAA2pC,EAAA,KAEA6nL,GAAA,CACAX,eACAG,kBACAC,wBACAI,qBACAE,gBACAD,oBAGAG,GAAA,SAAAnvJ,EAAA8qE,EAAArrI,EAAAytN,GACA,IAAAkC,EAAA,SAAAj7J,GACA,OAAAv5D,EAAAkwI,EAAA,SAAArpI,GACA,OAAAhC,EAAA00D,EAAAn8C,UAAAvW,EAAAuW,cAGA,OAAAvd,EAAAulE,EAAA,SAAAnP,GACA,OAAA04J,GAAAJ,SAAAt4J,EAAA,SAAAsD,GACA,OAAAi7J,EAAAj7J,GAAA69I,GAAAkb,EAAA/4J,EAAAn8C,UAAAvY,IAAA,GAAA00D,OAIAk7J,GAAA,SAAArvJ,EAAA/L,EAAAQ,EAAAh1D,GACA,YAAAnF,IAAAivN,GAAAF,eAAArpJ,EAAA/L,GAAAQ,IAAAR,EAAA,GAAAx0D,EAAA8pN,GAAAF,eAAArpJ,EAAA/L,EAAA,GAAAQ,GAAA80J,GAAAF,eAAArpJ,EAAA/L,GAAAQ,KAEA66J,GAAA,SAAAz+J,EAAA5uC,EAAAxiB,GACA,OAAAwiB,EAAA,GAAAxiB,EAAA8pN,GAAAF,eAAAx4J,EAAA5uC,EAAA,GAAAsnM,GAAAF,eAAAx4J,EAAA5uC,KAEAstM,GAAA,SAAAvvJ,EAAA/9C,EAAAxiB,EAAAytN,GACA,IAAApiF,EAAAnwI,EAAAqlE,EAAA,SAAAnP,EAAA54D,GACA,IAAAu3N,EAAAH,GAAArvJ,EAAA/nE,EAAAgqB,EAAAxiB,IAAA6vN,GAAAz+J,EAAA5uC,EAAAxiB,GACA,OAAA+vN,EAAA,IAAAjG,GAAAH,QAAAv4J,EAAA5uC,MAEA,OAAAktM,GAAAnvJ,EAAA8qE,EAAArrI,EAAAytN,IAEAuC,GAAA,SAAAzvJ,EAAA/9C,EAAAxiB,EAAAytN,GACA,IAAAwC,EAAA1vJ,EAAA/9C,GACA6oH,EAAAnwI,EAAA+0N,EAAAxuI,QAAA,SAAAtvD,EAAA35B,GACA,IAAAu3N,EAAAH,GAAArvJ,EAAA/9C,EAAAhqB,EAAAwH,IAAA6vN,GAAAI,EAAAz3N,EAAAwH,GACA,OAAA+vN,EAAA,IAAA59L,KAEA,OAAAu9L,GAAAnvJ,EAAA8qE,EAAArrI,EAAAytN,IAEAyC,GAAA,CACAJ,iBACAE,eAGA3uN,GAAAgB,GAAAnB,SAAA,CACA,CAAOrH,KAAA,IACP,CAAOs2N,KAAA,WACP,CACAr7L,KAAA,CACA,QACA,SAGA,CACAkI,OAAA,CACA,OACA,QACA,SAGA,CACAvG,MAAA,CACA,OACA,YAIA25L,GAAAj4N,GAAA,GAAmCkJ,IAEnCgvN,GAAA,SAAA5oN,EAAA+a,GACA,WAAA/a,EAAA7Q,OACAw5N,GAAAv2N,OAEA,IAAA4N,EAAA7Q,OACAw5N,GAAAD,KAAA,GAEA,IAAA3tM,EACA4tM,GAAAt7L,KAAA,KAEAtS,IAAA/a,EAAA7Q,OAAA,EACAw5N,GAAA35L,MAAAjU,EAAA,EAAAA,GAEAA,EAAA,GAAAA,EAAA/a,EAAA7Q,OAAA,EACAw5N,GAAApzL,OAAAxa,EAAA,EAAAA,IAAA,GAEA4tM,GAAAv2N,QAEAy2N,GAAA,SAAA7oN,EAAA4pD,EAAA49C,EAAAo0G,GACA,IAAAt+M,EAAA0C,EAAAxJ,MAAA,GACAi1E,EAAAm9I,GAAA5oN,EAAA4pD,GACAk/J,EAAA,SAAA3xN,GACA,OAAA5D,EAAA4D,EAAA9H,EAAA,KAEA8tC,EAAA9tC,EAAAy5N,EAAAxrN,IACAyrN,EAAA,SAAAhuM,GACA,OAAA6gM,EAAAoN,kBAAA1rN,EAAAyd,GAAAysF,IAEA8I,EAAA,SAAAv1F,EAAAzV,GACA,GAAAkiG,GAAA,GACA,IAAAyhH,EAAAlqM,KAAAyN,IAAAovL,EAAAsN,eAAA5rN,EAAAgI,GAAAkiG,GACA,OAAAshH,EAAAxrN,EAAA9G,MAAA,EAAAukB,IAAAjrB,OAAA,CACA03G,EACAyhH,EAAA3rN,EAAAgI,KACAxV,OAAAg5N,EAAAxrN,EAAA9G,MAAA8O,EAAA,KAEA,IAAA6jN,EAAApqM,KAAAyN,IAAAovL,EAAAsN,eAAA5rN,EAAAyd,GAAAysF,GACA4hH,EAAA9rN,EAAAyd,GAAAouM,EACA,OAAAL,EAAAxrN,EAAA9G,MAAA,EAAAukB,IAAAjrB,OAAA,CACAq5N,EAAA7rN,EAAAyd,GACAquM,IACAt5N,OAAAg5N,EAAAxrN,EAAA9G,MAAA8O,EAAA,MAGA4rD,EAAAo/C,EACA+4G,EAAA,SAAAC,EAAAvuM,EAAAzV,GACA,OAAAgrG,EAAAv1F,EAAAzV,IAEA6rD,EAAA,SAAAm4J,EAAAvuM,GACA,GAAAysF,GAAA,EACA,OAAAshH,EAAAxrN,EAAA9G,MAAA,EAAAukB,IAAAjrB,OAAA,CAAA03G,IAEA,IAAApwG,EAAA2nB,KAAAyN,IAAAovL,EAAAsN,eAAA5rN,EAAAyd,GAAAysF,GACA,OAAAshH,EAAAxrN,EAAA9G,MAAA,EAAAukB,IAAAjrB,OAAA,CAAAsH,EAAAkG,EAAAyd,MAGA,OAAA0wD,EAAA74E,KAAAuqC,EAAA4rL,EAAA73J,EAAAm4J,EAAAl4J,IAEAo4J,GAAA,CAAkBV,cAElBW,GAAA,SAAAv8J,EAAAp3D,GACA,OAAA6nB,GAAAuvC,EAAAp3D,IAAAy2B,SAAA7P,GAAAwwC,EAAAp3D,GAAA,OAEA4zN,GAAA,SAAAx8J,GACA,OAAAu8J,GAAAv8J,EAAA,YAEAy8J,GAAA,SAAAz8J,GACA,OAAAu8J,GAAAv8J,EAAA,YAEA08J,GAAA,SAAA74M,EAAAsX,GACA,OAAAkE,SAAA9O,GAAA1M,EAAAsX,GAAA,KAEAwhM,GAAA,CACAH,cACAC,cACAnnD,SAAAlzK,EAAA,IACA8yK,UAAA9yK,EAAA,IACAs6N,WAGAE,GAAA,SAAA58J,EAAA7kC,EAAAiyF,GACA,OAAAtxF,GAAAkkC,EAAA7kC,GAAAx1B,KAAA,WACA,OAAAynH,EAAAptD,GAAA,MACO,SAAAjkC,GACP,OAAAA,KAGA8gM,GAAA,SAAA78J,EAAA2uJ,GACA,OAAAiO,GAAA58J,EAAA,iBAAA17D,GACA,OAAAkrN,GAAAH,cAAA/qN,EAAAqqN,MAGAmO,GAAA,SAAA98J,GACA,OAAA48J,GAAA58J,EAAA,SAAAwvJ,GAAAj/F,YAEAwsG,GAAA,SAAAhd,EAAAvwK,EAAA4gF,EAAAnhH,EAAA0/M,GACA,IAAArvI,EAAAszI,GAAAtzI,QAAAygI,GACAid,EAAA12N,EAAAg5E,EAAA,SAAA8wI,GACA,OAAAA,EAAA9pN,IAAAkpC,EAAA9xB,QAEA,OAAApX,EAAAg5E,EAAA,SAAA8wI,EAAAtkM,GACA,IAAAmxM,EAAA7M,EAAAzpN,OAAA7D,EAAA65N,GAAAH,aACA,OAAAS,EAAAt3N,KAAA,WACA,IAAAu3N,EAAAjL,GAAA+K,EAAAlxM,GACA,OAAA7c,EAAAiuN,IACS,SAAAl9J,GACT,OAAAowD,EAAApwD,EAAA2uJ,QAIAwO,GAAA,SAAAD,GACA,OAAAA,EAAA52N,IAAA,SAAA4mB,GACA,OAAAA,EAAA,OACOpnB,MAAA,KAEPs3N,GAAA,SAAArd,EAAAvwK,EAAAm/K,GACA,OAAAoO,GAAAhd,EAAAvwK,EAAAqtL,GAAAM,GAAAxO,IAEA0O,GAAA,SAAAtd,EAAAvwK,EAAAm/K,GACA,OAAAoO,GAAAhd,EAAAvwK,EAAAggL,GAAAR,mBAAA,SAAAkO,GACA,OAAAA,EAAAv3N,KAAA,WACA,OAAAgpN,EAAAsN,gBACS,SAAAvN,GACT,OAAAA,EAAAC,EAAAC,aAAA,OAEOD,IAEP2O,GAAA,SAAAvd,EAAAvwK,EAAAm/K,GACA,OAAAoO,GAAAhd,EAAAvwK,EAAAggL,GAAAH,cAAA,SAAA6N,GACA,OAAAA,EAAAn3N,WAAA4oN,EAAAsN,eACOtN,IAEP4O,GAAA,SAAAxd,EAAAvwK,EAAA+gF,EAAAthH,GACA,IAAA4yD,EAAA+wJ,GAAA/wJ,KAAAk+I,GACAid,EAAA12N,EAAAu7D,EAAA,SAAAuuJ,GACA,OAAAA,EAAA9pN,IAAAkpC,EAAA9xB,QAEA,OAAApX,EAAAu7D,EAAA,SAAAuuJ,EAAAtkM,GACA,IAAA0xM,EAAApN,EAAAzpN,OAAA7D,EAAA65N,GAAAF,aACA,OAAAe,EAAA73N,KAAA,WACA,IAAAu3N,EAAAjL,GAAA+K,EAAAlxM,GACA,OAAA7c,EAAAiuN,IACS,SAAAl9J,GACT,OAAAuwD,EAAAvwD,QAIAy9J,GAAA,SAAA1d,EAAAvwK,GACA,OAAA+tL,GAAAxd,EAAAvwK,EAAAggL,GAAAj/F,UAAA,SAAA2sG,GACA,OAAAA,EAAAn3N,WAAA42N,GAAAznD,cAGAwoD,GAAA,SAAA3d,EAAAvwK,GACA,OAAA+tL,GAAAxd,EAAAvwK,EAAAstL,GAAAK,KAEAQ,GAAA,CACAP,gBACAE,kBACAD,uBACAI,mBACAC,kBAGAv3E,GAAA,SAAA1kI,EAAAywG,EAAA0rG,GAEA,IADA,IAAAh5N,EAAA,EACAd,EAAA2d,EAAyB3d,EAAAouH,EAASpuH,IAClCc,QAAAuB,IAAAy3N,EAAA95N,GAAA85N,EAAA95N,GAAA,EAEA,OAAAc,GAEAi5N,GAAA,SAAA9d,EAAA+d,GACA,IAAAl7N,EAAA89M,GAAAD,UAAAV,GACA,OAAAz5M,EAAA1D,EAAA,SAAAo9D,GACA,IAAAl+B,EAAAqkH,GAAAnmF,EAAArD,SAAAqD,EAAArD,SAAAqD,EAAA0/I,UAAAoe,GACA,OACAj6M,QAAAm8C,EAAAn8C,QACAie,MAAA1/B,EAAA0/B,GACA49K,QAAA1/I,EAAA0/I,YAIAqe,GAAA,SAAAhe,EAAA1qB,GACA,IAAAzyL,EAAA89M,GAAAD,UAAAV,GACA,OAAAz5M,EAAA1D,EAAA,SAAAo9D,GACA,IAAAngC,EAAAsmH,GAAAnmF,EAAAtD,MAAAsD,EAAAtD,MAAAsD,EAAAy/I,UAAApqB,GACA,OACAxxK,QAAAm8C,EAAAn8C,QACAgc,OAAAz9B,EAAAy9B,GACA4/K,QAAAz/I,EAAAy/I,YAIAue,GAAA,SAAAje,EAAA1qB,GACA,OAAA/uL,EAAAy5M,EAAAn9M,MAAA,SAAA85D,EAAA54D,GACA,OACA+f,QAAA64C,EAAA74C,QACAgc,OAAAz9B,EAAAizL,EAAAvxL,QAIAm6N,GAAA,CACAJ,oBACAE,qBACAC,mBAGAE,GAAA,SAAAp8L,EAAAje,GACA,IAAAurM,EAAAjwL,WAAA2C,GACA8sL,EAAAxyL,GAAAvY,GACAs6M,EAAA,SAAAzgL,GACA,OAAAA,EAAAkxK,EAAA,KAEAmN,EAAA,SAAAt4L,EAAA26L,GACA,WAAA36L,IAEAw4L,EAAA,WACA,OAAAU,GAAArnD,WAAAs5C,EAAA,KAEAyP,EAAA,SAAAhiF,EAAAiiF,EAAA5gL,GACA,IAAA6gL,EAAA7gL,EAAA,IACA92B,EAAA23M,EAAAnP,EACAI,GAAAtB,mBAAA7xE,EAAA+yE,EAAAxoM,IAEA,OACAkb,MAAA1/B,EAAAgtN,GACAR,WAAAxsN,EAAAwsN,GACA4P,UAAAb,GAAAN,oBACAc,eACApC,oBACAE,eACAwC,gBAAAjP,GAAAtB,mBACAmQ,kBAGAK,GAAA,SAAA58L,GACA,IAAAq8L,EAAA77N,EACAy5N,EAAA,SAAAt4L,EAAAia,GACA,IAAAs+K,EAAAlqM,KAAAyN,IAAAo9L,GAAArnD,WAAA7xI,EAAAia,GACA,OAAAs+K,EAAAv4L,IAEA46L,EAAA,SAAAhiF,EAAAsiF,EAAAP,GACA,IAAAj4E,EAAA17I,EAAAk0N,EAAA,SAAAr3N,EAAAvC,GACA,OAAAuC,EAAAvC,GACS,GACTyqN,GAAAxB,cAAA3xE,EAAA8J,IAEA,OACArkH,MAAA1/B,EAAA0/B,GACA8sL,WAAAxsN,EAAA0/B,GACA08L,UAAAb,GAAAL,eACAa,eACApC,oBACAE,aAAAU,GAAArnD,SACAmpD,gBAAAjP,GAAAxB,cACAqQ,kBAGAO,GAAA,SAAA/6M,EAAAie,GACA,IAAAgtL,EAAAU,GAAA1B,2BAAA1/H,KAAAtsD,GACA,UAAAgtL,EACA,OAAAoP,GAAApP,EAAA,GAAAjrM,GAEA,IAAAsrM,EAAAK,GAAAzB,sBAAA3/H,KAAAtsD,GACA,UAAAqtL,EAAA,CACA,IAAAJ,EAAA1vL,SAAA8vL,EAAA,OACA,OAAAuP,GAAA3P,GAEA,IAAA8P,EAAAziM,GAAAvY,GACA,OAAA66M,GAAAG,IAEAC,GAAA,SAAAj7M,GACA,IAAAie,EAAA0tL,GAAAjB,YAAA1qM,GACA,OAAAie,EAAAn8B,KAAA,WACA,IAAAk5N,EAAAziM,GAAAvY,GACA,OAAA66M,GAAAG,IACO,SAAAp7L,GACP,OAAAm7L,GAAA/6M,EAAA4f,MAGAs7L,GAAA,CAAqBD,iBAErBE,GAAA,SAAA3pM,GACA,OAAAqrL,GAAAl0M,SAAA6oB,IAEA4pM,GAAA,SAAA38F,GACA,OAAA73H,EAAA63H,EAAA,SAAAh7H,EAAAvC,GACA,OAAAuC,EAAAvC,GACO,IAEPm6N,GAAA,SAAA7iF,GACA,IAAAhnH,EAAAwqL,GAAAP,UAAAjjE,GACA,OAAA2iF,GAAA3pM,IAEA8pM,GAAA,SAAA9iF,EAAA3+F,EAAA5vB,EAAA0hB,GACA,IAAAm/K,EAAAoQ,GAAAD,aAAAziF,GACA9hC,EAAAo0G,EAAAwP,aAAAzgL,GACAqiK,EAAAmf,GAAA7iF,GACAyhF,EAAAnP,EAAA6P,UAAAze,EAAAvwK,EAAAm/K,GACA1vC,EAAAq9C,GAAAV,UAAAkC,EAAAhwM,EAAAysF,EAAAo0G,GACAgQ,EAAAr4N,EAAA24K,EAAA,SAAA9F,EAAAr1K,GACA,OAAAq1K,EAAA2kD,EAAAh6N,KAEAs7N,EAAAnB,GAAAJ,iBAAA9d,EAAA4e,GACAp4N,EAAA64N,EAAA,SAAAp/J,GACA2uJ,EAAA8P,gBAAAz+J,EAAAn8C,UAAAm8C,EAAAl+B,WAEAhU,IAAAiyL,EAAAl0I,OAAAyT,UAAA,GACAqvI,EAAA0P,cAAAhiF,EAAAsiF,EAAApkH,IAGA8kH,GAAA,SAAAhjF,EAAA3+F,EAAA5vB,EAAA0hB,GACA,IAAAuwK,EAAAmf,GAAA7iF,GACAg5C,EAAAsoC,GAAAF,gBAAA1d,EAAAvwK,GACA8vL,EAAAh5N,EAAA+uL,EAAA,SAAAjc,EAAAt1K,GACA,OAAAgqB,IAAAhqB,EAAAguB,KAAAyN,IAAAme,EAAA07H,EAAAujD,GAAAznD,aAAAkE,IAEAmmD,EAAAtB,GAAAF,kBAAAhe,EAAAuf,GACAE,EAAAvB,GAAAD,eAAAje,EAAAuf,GACA/4N,EAAAi5N,EAAA,SAAA9iK,GACA8yJ,GAAAvuK,UAAAyb,EAAA74C,UAAA64C,EAAA78B,YAEAt5B,EAAAg5N,EAAA,SAAAv/J,GACAwvJ,GAAAvuK,UAAA+e,EAAAn8C,UAAAm8C,EAAAngC,YAEA,IAAAsmH,EAAA84E,GAAAK,GACA9P,GAAAvuK,UAAAo7F,EAAA8J,IAEAs5E,GAAA,SAAApjF,EAAAhnH,EAAAma,GACA,IAAAm/K,EAAAoQ,GAAAD,aAAAziF,GACA0jE,EAAAif,GAAA3pM,GACAyoM,EAAAnP,EAAA6P,UAAAze,EAAAvwK,EAAAm/K,GACAyQ,EAAAnB,GAAAJ,iBAAA9d,EAAA+d,GACAv3N,EAAA64N,EAAA,SAAAp/J,GACA2uJ,EAAA8P,gBAAAz+J,EAAAn8C,UAAAm8C,EAAAl+B,WAEAs9L,EAAAl9N,OAAA,GACAysN,EAAA0P,cAAAhiF,EAAAyhF,EAAAnP,EAAAwP,aAAA,KAGAuB,GAAA,CACAP,eACAE,gBACAI,kBAGAtwN,GAAA,SAAAwwN,EAAAhzM,GACA,OAAAizM,GAAAD,EAAAhzM,EAAA,CACA+jF,SAAAznG,EACAuE,MAAA,cAGAoyN,GAAA,SAAAD,EAAAhzM,EAAAvjB,GACA,OAAAujB,EAAAzqB,OACA,UAAAe,MAAA,iDAIA,OAFA4pB,GAAA,WAAAF,GACAG,GAAAH,GACA,SAAA9gB,GACA,IAAAiB,EAAAnB,EAAAE,GACAuB,EAAA1G,EAAAimB,EAAA,SAAAU,GACA,OAAAvjB,EAAAgD,EAAAugB,KAEAjgB,GACAsf,EAAAC,EAAA7f,GAEA6yN,EAAAhzM,EAAA7f,GACA,IAAA+yN,EAAAl5N,EAAAgmB,EAAA,SAAArgB,GACA,OAAAlD,EAAAsnG,SAAA7kG,EAAAS,QAKA,OAHAuzN,EAAA39N,OAAA,GACA86M,GAAA6iB,EAAAz2N,EAAAoE,OAEA3B,IAGAi0N,GAAA,SAAAnzM,EAAAhhB,GACA,IAAAgI,EAAAhN,EAAAgF,EAAA,SAAAW,GACA,OAAAxC,EAAA6iB,EAAArgB,KAEAqH,EAAAzR,OAAA,GACA0qB,EAAAjZ,IAGAosN,GAAA,SAAApzM,GACA,OAAAxd,GAAA2wN,GAAAnzM,IAGAqzM,GAAAD,GAAA,CACA,OACA,MACA,UACA,QAEAE,GAAA,SAAAp8M,GACA,IAAA67L,EAAAjvL,GAAA5M,EAAA,WAAAwb,SAAA7P,GAAA3L,EAAA,iBACA47L,EAAAhvL,GAAA5M,EAAA,WAAAwb,SAAA7P,GAAA3L,EAAA,iBACA,OACAA,QAAAzhB,EAAAyhB,GACA67L,QAAAt9M,EAAAs9M,GACAD,QAAAr9M,EAAAq9M,KAGA5oL,GAAA,SAAA01L,EAAA2T,QACA,IAAAA,IACAA,EAAAD,IAEAD,GAAAzT,GACA,IAAA5oL,EAAAnpB,EAAAhT,EAAArC,QACA4I,EAAA,SAAAkb,GACA,OAAAsjM,EAAAvsJ,KAAA/2C,IAEAk3M,EAAA,SAAAt8M,GACA,IAAAoF,EAAAi3M,EAAAr8M,GACA,OAAA9V,EAAAkb,IAEAgR,EAAA,SAAApW,GACA,IAAAy1M,EAAA6G,EAAAt8M,GAQA,OAPA8f,EAAAt3B,MAAA9G,UACAo+B,EAAAjpB,IAAAlT,EAAAP,KAAAqyN,IAEAt+I,EAAAxzE,EAAAP,KAAA,CACAw2B,KAAA5Z,EACAy1M,gBAEAA,GAEAt+I,EAAAxzE,EAAArC,OACAi7N,EAAA,SAAAv8M,EAAAvY,GACA,OAAA0vE,EAAAr1E,KAAA,WACA,OAAAs0B,EAAApW,IACS,SAAA7f,GACT,OAAAsH,EAAAuY,EAAA7f,EAAAy5B,MAAAz5B,EAAAs1N,YAAAr/L,EAAApW,MAGA,OACAu8M,YACAj3F,OAAAxlG,EAAAt3B,MAGAqe,GAAA,SAAA5P,EAAAU,GACA,gBAAA+wM,GACA,IAAA5oL,EAAAnpB,EAAAhT,EAAArC,QACA66N,GAAAzT,GACA,IAAAl3L,EAAA,GACAlpB,EAAA,SAAA0X,EAAAvY,GACA,OAAAV,EAAAyqB,EAAA,SAAA9yB,GACA,OAAA+I,EAAA/I,EAAAk7B,KAAA5Z,MAGAw8M,EAAA,SAAAx8M,GACA,IAAAyM,EAAA,CAAuBxV,SACvBklD,EAAAusJ,EAAArvM,QAAA2G,EAAArI,EAAA8U,GAQA,OAPA+E,EAAA3rB,KAAA,CACA+zB,KAAA5Z,EACA21M,IAAAx5J,IAEAr8B,EAAAt3B,MAAA9G,UACAo+B,EAAAjpB,IAAAlT,EAAAP,KAAA+4D,IAEAA,GAEAsgK,EAAA,SAAAz8M,EAAAvY,GACA,OAAAa,EAAA0X,EAAAvY,GAAA3F,KAAA,WACA,OAAA06N,EAAAx8M,IACW,SAAA7f,GACX,OAAAsH,EAAAuY,EAAA7f,EAAAy5B,MAAAz5B,EAAAw1N,IAAA6G,EAAAx8M,MAGA,OACAy8M,gBACAn3F,OAAAxlG,EAAAt3B,OAIAk0N,GAAA,SAAAhU,GACAyT,GAAAzT,GACA,IAAA5oL,EAAAnpB,EAAAhT,EAAArC,QACAoxB,EAAA,SAAAypC,GAIA,OAHAr8B,EAAAt3B,MAAA9G,UACAo+B,EAAAjpB,IAAAlT,EAAAP,KAAA+4D,IAEA,WACA,IAAAjkC,EAAAwwL,EAAAvsJ,KAAA,CACAn8C,QAAAzhB,EAAA49D,GACA0/I,QAAAt9M,EAAA,GACAq9M,QAAAr9M,EAAA,KAIA,OAFAuuB,GAAAoL,EAAA,SACApL,GAAAqvC,EAAA,SACAjkC,IAGA,OACAxF,UACA4yG,OAAAxlG,EAAAt3B,MAGAm0N,GAAA,CACA3pM,gBACAnM,aACA61M,YAGAE,GAAA,CACA,OACA,IACA,MACA,UACA,QACA,aACA,SACA,SACA,SACA,MACA,UACA,KACA,KACA,QACA,QACA,QACA,QACA,UACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,aACA,MACA,WAEAv6B,GAAA,SAAAsgB,EAAA/oL,GACA,IAAAkpK,EAAA6f,EAAArrL,WAAAzyB,KAAA+0B,GACA,OAAA3zB,EAAA,CACA,KACA,MACA68L,IAEApsH,GAAA,SAAAisI,EAAA/oL,GACA,IAAAkpK,EAAA6f,EAAArrL,WAAAzyB,KAAA+0B,GACA,OAAA3zB,EAAA22N,GAAA95B,IAEA+5B,GAAA,SAAAla,EAAA/oL,GACA,IAAAkpK,EAAA6f,EAAArrL,WAAAzyB,KAAA+0B,GACA,OAAA3zB,EAAA,CACA,UACA,MACA,IACA,KACA,KACA,KACA,KACA,KACA,MACA68L,IAEAg6B,GAAA,SAAAna,EAAA/oL,GACA,IAAAkpK,EAAA6f,EAAArrL,WAAAzyB,KAAA+0B,GACA,OAAA3zB,EAAA,CACA,KACA,KACA,KACA,KACA,KACA,MACA68L,IAEAi6B,GAAA,SAAApa,EAAA/oL,GACA,OAAA3zB,EAAA,CACA,MACA,KACA,KACA,KACA,aACA,OACA,WACA08M,EAAArrL,WAAAzyB,KAAA+0B,KAEAioL,GAAA,SAAAc,EAAA/oL,GACA,OAAA3zB,EAAA,CACA,KACA,MACA,KACA,SACA08M,EAAArrL,WAAAzyB,KAAA+0B,KAEAojM,GAAA,SAAAra,EAAA/oL,GACA,iBAAA+oL,EAAArrL,WAAAzyB,KAAA+0B,IAEAm1I,GAAA,SAAA4zC,EAAA/oL,GACA,QAAA88C,GAAAisI,EAAA/oL,IAAAioL,GAAAc,EAAA/oL,KAAA,OAAA+oL,EAAArrL,WAAAzyB,KAAA+0B,IAEAqjM,GAAA,CACAvmJ,WACA2rH,UACAw6B,gBACAC,aACAC,eACAlb,cACAmb,WACAjuD,aAGAmuD,GAAAtb,KACAub,GAAA,SAAAn9M,GACA,OAAAi9M,GAAAvmJ,QAAAwmJ,GAAAl9M,IAEAykL,GAAA,SAAAzkL,GACA,OAAAi9M,GAAA56B,OAAA66B,GAAAl9M,IAEAo9M,GAAA,SAAAp9M,GACA,OAAAi9M,GAAAJ,aAAAK,GAAAl9M,IAEAq9M,GAAA,SAAAr9M,GACA,OAAAi9M,GAAAH,UAAAI,GAAAl9M,IAEAs9M,GAAA,SAAAt9M,GACA,OAAAi9M,GAAAF,YAAAG,GAAAl9M,IAEAu9M,GAAA,SAAAv9M,GACA,OAAAi9M,GAAApb,WAAAqb,GAAAl9M,IAEAw9M,GAAA,SAAAx9M,GACA,OAAAi9M,GAAAD,QAAAE,GAAAl9M,IAEAy9M,GAAA,SAAAz9M,GACA,OAAAi9M,GAAAluD,SAAAmuD,GAAAl9M,IAEA09M,GAAA,CACAhnJ,QAAAymJ,GACA96B,OAAAoC,GACAo4B,aAAAO,GACAN,UAAAO,GACAN,YAAAO,GACAzb,WAAA0b,GACAP,QAAAQ,GACAzuD,SAAA0uD,IAGAE,GAAA,SAAAz0I,GACA,IAAA22G,EAAA,SAAAt5K,GACA,aAAA1hB,GAAA0hB,IAEAq3M,EAAA,SAAA7zM,GACA,OAAAlnB,EAAAknB,EAAA,SAAA9B,GACA,OAAA43K,EAAA53K,IAAAlC,GAAAkC,IAAA,IAAAuO,GAAAvO,GAAAjK,OAAA3f,UAGAw/N,EAAA,SAAAt3M,GACA,aAAA1hB,GAAA0hB,IAAAd,GAAAc,EAAAm3M,GAAAr7B,QAAArgM,UAEA87N,EAAA,SAAAv3M,GACA,OAAAuD,GAAAvD,GAAA9jB,IAAA,SAAAs7N,GACA,QAAAL,GAAAhnJ,QAAAqnJ,MAGAL,GAAA7b,WAAAkc,IACA,QAAAl5N,GAAAk5N,KAGS97N,OAAA,IAET+7N,EAAA,SAAA7hK,GACA,OAAAtoB,GAAAsoB,GAAAx5D,KAAA,SAAA28M,GACA,IAAA2e,EAAAH,EAAAxe,GACA,OAAA11L,GAAA01L,GAAA78M,IAAA,SAAAmnB,GACA,WAAAq0M,GAAAJ,EAAAj0M,IAAAi2K,EAAAyf,IAAAoe,GAAAhnJ,QAAA9sD,KAAApoB,GAAA26D,EAAAvyC,GAAA,IAAAvR,GAAAX,QAAA,WAESzV,MAAA,KAETi8N,EAAA,WACA,IAAAtyM,EAAAjpB,EAAAumF,EAAA,SAAA/sB,GACA,IAAAzwC,EAAA3B,GAAAoyC,GACA,OAAAyhK,EAAAlyM,GAAA,GAAAA,EAAA1sB,OAAAg/N,EAAA7hK,MAEA,WAAAvwC,EAAAvtB,OAAA,CAAAga,GAAAX,QAAA,OAAAkU,GAEAq3B,EAAAi7K,IACA/yM,GAAA+9D,EAAA,IACAh+D,GAAAg+D,EAAA,GAAAjmC,IAEAk7K,GAAA,CAAwBxzN,MAAAgzN,IAExBpxI,GAAA,SAAAisD,GACA,IAAAtvD,EAAAsyH,GAAAtyH,MAAAsvD,GACA,IAAAtvD,EAAA7qF,QACAg4B,GAAAmiH,IAGAxnI,GAAA0X,EAAA,iBACA01M,GAAA,SAAAp2J,EAAAnP,EAAAC,GACA,OAAAulK,GAAAr2J,EAAAnP,EAAAC,GAAAt2D,QAAA,WACA,OAAA67N,GAAAr2J,EAAA,QAGAq2J,GAAA,SAAAr2J,EAAAnP,EAAAC,GACA,OAAAn1D,EAAAD,KAAAskE,EAAAnP,IAAAl2D,KAAA,SAAA5B,GACA,OAAA4C,EAAAD,KAAA3C,EAAAmoF,QAAApwB,IAAAn2D,KAAA,SAAAslB,GACA,OAAAtkB,EAAAD,KAAAukB,EAAAjI,gBAIArP,GAAA,SAAAq3D,EAAAnP,EAAAC,GACA,OAAA9nD,GAAAg3D,EAAAq2J,GAAAr2J,EAAAnP,EAAAC,KAEAwlK,GAAA,SAAApsI,GACA,OAAAprF,EAAAorF,EAAA,SAAAnhE,EAAApJ,GACA,OAAA/kB,EAAAmuB,EAAA,SAAAwtM,GACA,OAAAA,EAAA1lK,QAAAlxC,EAAAkxC,QACS9nC,IAAA/xB,OAAA,CAAA2oB,KACF,IAAAngB,KAAA,SAAAw4M,EAAAC,GACP,OAAAD,EAAAnnJ,MAAAonJ,EAAApnJ,SAGA2lK,GAAA,SAAAtsI,GACA,OAAAprF,EAAAorF,EAAA,SAAAnhE,EAAApJ,GACA,OAAA/kB,EAAAmuB,EAAA,SAAAwtM,GACA,OAAAA,EAAAzlK,WAAAnxC,EAAAmxC,WACS/nC,IAAA/xB,OAAA,CAAA2oB,KACF,IAAAngB,KAAA,SAAAw4M,EAAAC,GACP,OAAAD,EAAAlnJ,SAAAmnJ,EAAAnnJ,YAGA2lK,GAAA,SAAAz2J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAAlX,EAAAp0L,EAAAkxC,MACA6lK,EAAA/2M,EAAAkxC,MACA8lK,EAAAzH,GAAAX,YAAAvuJ,EAAA02J,EAAA3iB,EAAAt0M,EAAAwrN,EAAAsJ,WACA,OAAA5rN,GAAAguN,EAAAD,EAAA/2M,EAAAmxC,WAEA8lK,GAAA,SAAA52J,EAAAkqB,EAAAzqF,EAAAwrN,GACA,IAAAlX,EAAA7pH,EAAA,GAAAr5B,MACA6lK,EAAAxsI,EAAA,GAAAr5B,MACAmF,EAAAsgK,GAAApsI,GACAysI,EAAA73N,EAAAk3D,EAAA,SAAA6gK,EAAAnK,GACA,OAAAwC,GAAAX,YAAAsI,EAAAH,EAAA3iB,EAAAt0M,EAAAwrN,EAAAsJ,YACOv0J,GACP,OAAAr3D,GAAAguN,EAAAD,EAAAxsI,EAAA,GAAAp5B,WAEAgmK,GAAA,SAAA92J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAAlX,EAAAp0L,EAAAkxC,MACA6lK,EAAA/2M,EAAAkxC,MAAAlxC,EAAAi0L,UACA+iB,EAAAzH,GAAAX,YAAAvuJ,EAAA02J,EAAA3iB,EAAAt0M,EAAAwrN,EAAAsJ,WACA,OAAA5rN,GAAAguN,EAAAD,EAAA/2M,EAAAmxC,WAEAimK,GAAA,SAAA/2J,EAAAkqB,EAAAzqF,EAAAwrN,GACA,IAAAj1J,EAAAsgK,GAAApsI,GACA6pH,EAAA/9I,IAAA3/D,OAAA,GAAAw6D,MACA6lK,EAAA1gK,IAAA3/D,OAAA,GAAAw6D,MAAAmF,IAAA3/D,OAAA,GAAAu9M,UACA+iB,EAAA73N,EAAAk3D,EAAA,SAAA6gK,EAAAnK,GACA,OAAAwC,GAAAX,YAAAsI,EAAAH,EAAA3iB,EAAAt0M,EAAAwrN,EAAAsJ,YACOv0J,GACP,OAAAr3D,GAAAguN,EAAAD,EAAAxsI,EAAA,GAAAp5B,WAEAkmK,GAAA,SAAAh3J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAAlX,EAAAp0L,EAAAmxC,SACA4lK,EAAA/2M,EAAAmxC,SACA6lK,EAAAzH,GAAAR,eAAA1uJ,EAAA02J,EAAA3iB,EAAAt0M,EAAAwrN,EAAAsJ,WACA,OAAA5rN,GAAAguN,EAAAh3M,EAAAkxC,MAAA6lK,IAEAO,GAAA,SAAAj3J,EAAAkqB,EAAAzqF,EAAAwrN,GACA,IAAAx3I,EAAA+iJ,GAAAtsI,GACA6pH,EAAAtgI,EAAA,GAAA3iB,SACA4lK,EAAAjjJ,EAAA,GAAA3iB,SACA6lK,EAAA73N,EAAA20E,EAAA,SAAAojJ,EAAAnK,GACA,OAAAwC,GAAAR,eAAAmI,EAAAH,EAAA3iB,EAAAt0M,EAAAwrN,EAAAsJ,YACOv0J,GACP,OAAAr3D,GAAAguN,EAAAzsI,EAAA,GAAAr5B,MAAA6lK,IAEAQ,GAAA,SAAAl3J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAAlX,EAAAp0L,EAAAmxC,SACA4lK,EAAA/2M,EAAAmxC,SAAAnxC,EAAAk0L,UACA8iB,EAAAzH,GAAAR,eAAA1uJ,EAAA02J,EAAA3iB,EAAAt0M,EAAAwrN,EAAAsJ,WACA,OAAA5rN,GAAAguN,EAAAh3M,EAAAkxC,MAAA6lK,IAEAS,GAAA,SAAAn3J,EAAAkqB,EAAAzqF,EAAAwrN,GACA,IAAAlX,EAAA7pH,IAAA7zF,OAAA,GAAAy6D,SACA4lK,EAAAxsI,IAAA7zF,OAAA,GAAAy6D,SAAAo5B,IAAA7zF,OAAA,GAAAw9M,UACApgI,EAAA+iJ,GAAAtsI,GACAysI,EAAA73N,EAAA20E,EAAA,SAAAojJ,EAAAnK,GACA,OAAAwC,GAAAR,eAAAmI,EAAAH,EAAA3iB,EAAAt0M,EAAAwrN,EAAAsJ,YACOv0J,GACP,OAAAr3D,GAAAguN,EAAAzsI,EAAA,GAAAr5B,MAAA6lK,IAEAU,GAAA,SAAAp3J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAA0L,EAAAhH,GAAAF,WAAAzvJ,EAAArgD,EAAAkxC,MAAApxD,EAAAwrN,EAAAwJ,eACA,OAAA9rN,GAAAguN,EAAAh3M,EAAAkxC,MAAAlxC,EAAAmxC,WAEAumK,GAAA,SAAAr3J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAA0L,EAAAhH,GAAAJ,cAAAvvJ,EAAArgD,EAAAmxC,SAAArxD,EAAAwrN,EAAAwJ,eACA,OAAA9rN,GAAAguN,EAAAh3M,EAAAkxC,MAAAlxC,EAAAmxC,WAEAwmK,GAAA,SAAAt3J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAA0L,EAAAhH,GAAAF,WAAAzvJ,EAAArgD,EAAAkxC,MAAApxD,EAAAwrN,EAAAwJ,eACA,OAAA9rN,GAAAguN,EAAAh3M,EAAAkxC,MAAAlxC,EAAAmxC,WAEAymK,GAAA,SAAAv3J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAA0L,EAAAhH,GAAAJ,cAAAvvJ,EAAArgD,EAAAmxC,SAAArxD,EAAAwrN,EAAAwJ,eACA,OAAA9rN,GAAAguN,EAAAh3M,EAAAkxC,MAAAlxC,EAAAmxC,WAEA0mK,GAAA,SAAAx3J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAA0L,EAAAzH,GAAAP,qBAAA3uJ,EAAArgD,EAAAkxC,MAAAlxC,EAAAmxC,SAAArxD,EAAAwrN,EAAAsJ,WACA,OAAA5rN,GAAAguN,EAAAh3M,EAAAkxC,MAAAlxC,EAAAmxC,WAEA2mK,GAAA,SAAAz3J,EAAArgD,EAAAlgB,EAAAwrN,GACA,IAAA0L,EAAAzH,GAAAH,kBAAA/uJ,EAAArgD,EAAAkxC,MAAAlxC,EAAAmxC,SAAArxD,EAAAwrN,EAAAsJ,WACA,OAAA5rN,GAAAguN,EAAAh3M,EAAAkxC,MAAAlxC,EAAAmxC,WAEA4mK,GAAA,SAAA13J,EAAAkqB,EAAAytI,EAAAC,GACA,IAAAnkJ,EAAA+iJ,GAAAtsI,GACAysI,EAAAzH,GAAAF,gBAAAhvJ,EAAAyT,EAAA,GAAA3iB,SAAA2iB,IAAAp9E,OAAA,GAAAy6D,UACAwsE,EAAA84F,GAAAO,EAAAzsI,EAAA,GAAAr5B,MAAAq5B,EAAA,GAAAp5B,UACA,OAAA9nD,GAAA2tN,EAAAr5F,IAEAu6F,GAAA,SAAA73J,EAAAkqB,EAAAytI,EAAAC,GACA,IAAA5hK,EAAAsgK,GAAApsI,GACAysI,EAAAzH,GAAAD,aAAAjvJ,EAAAhK,EAAA,GAAAnF,MAAAmF,IAAA3/D,OAAA,GAAAw6D,OACAysE,EAAA84F,GAAAO,EAAAzsI,EAAA,GAAAr5B,MAAAq5B,EAAA,GAAAp5B,UACA,OAAA9nD,GAAA2tN,EAAAr5F,IAEAw6F,GAAA,SAAA93J,EAAAkgJ,EAAAzgN,EAAAm4N,GACA,IAAA12I,EAAAg/H,EAAAh/H,QACAi1I,GAAAxzN,MAAAu+E,GACA,IAAAy1I,EAAA/I,GAAAjrN,MAAAq9D,EAAAkgJ,EAAAlqL,SAAAv2B,EAAAlJ,EAAA2qF,EAAA,KACA,OAAAl4E,GAAA2tN,EAAAh7N,EAAAD,KAAAwlF,EAAA,MAEA62I,GAAA,SAAA/3J,EAAAggJ,EAAAvgN,EAAAwrN,GACA,IAAA0L,EAAA/3N,EAAAohN,EAAA,SAAAvkN,EAAA04D,GACA,OAAAy5J,GAAAT,QAAA1xN,EAAA04D,EAAA10D,EAAAwrN,EAAAvgM,QAAAypC,KACO6L,GACP,OAAAh3D,GAAA2tN,EAAAh7N,EAAAD,KAAAskN,EAAA,MAEAmB,GAAA,SAAAnhJ,EAAAg4J,EAAAv4N,EAAAm4N,GACA,IAAAK,EAAA,SAAAznF,EAAAkwE,GACA,IAAAl3L,EAAAwqL,GAAAP,UAAAjjE,GACA0nF,EAAArjB,GAAAl0M,SAAA6oB,GACA,OAAAghM,GAAAF,OAAA4N,EAAAxX,GAAA,IAEAmL,EAAAoM,EAAAD,EAAAvX,YAAAuX,EAAAtX,cACAiL,EAAAh7J,GAAAqnK,EAAAnnK,MAAAmnK,EAAAlnK,UACAqnK,EAAA7J,GAAA3rN,MAAAgpN,EAAA3rJ,EAAA6rJ,EAAAmM,EAAAtX,aAAAjhN,GACA,OAAA04N,EAAAr+N,KAAA,WACA,OAAAkP,GAAAg3D,EAAArkE,EAAAP,KAAA48N,EAAAhgN,aACO,SAAAogN,GACP,IAAA96F,EAAA84F,GAAAgC,EAAAJ,EAAAnnK,MAAAmnK,EAAAlnK,UACA,OAAA9nD,GAAAovN,EAAA96F,MAGA+6F,GAAA,SAAAriK,EAAA0qJ,EAAA3M,GACA,IAAAikB,EAAAhkB,GAAAF,eAAA99I,EAAA+9I,GACAmkB,EAAArjB,GAAAl0M,SAAAq3N,GACA,OAAAxN,GAAAF,OAAA4N,EAAAxX,GAAA,IAEA4X,GAAA,SAAAt4J,EAAAg4J,EAAAv4N,EAAAm4N,GACA,IAAA7jB,EAAA/zI,EAAAg4J,EAAA92I,MAAA,GAAArwB,OACA5uC,EAAA+1M,EAAA92I,MAAA,GAAArwB,MACAg7J,EAAAwM,GAAAL,EAAAvX,YAAAuX,EAAAtX,aAAA3M,GACAokB,EAAA7J,GAAA/0J,OAAAt3C,EAAA+9C,EAAA6rJ,EAAAmM,EAAAtX,aAAAjhN,GACA69H,EAAA84F,GAAA+B,EAAAH,EAAA92I,MAAA,GAAArwB,MAAAmnK,EAAA92I,MAAA,GAAApwB,UACA,OAAA9nD,GAAAmvN,EAAA76F,IAEAi7F,GAAA,SAAAv4J,EAAAg4J,EAAAv4N,EAAAm4N,GACA,IAAA7jB,EAAA/zI,EAAAg4J,EAAA92I,MAAA,GAAArwB,OACA5uC,EAAA+1M,EAAA92I,MAAA82I,EAAA92I,MAAA7qF,OAAA,GAAAw6D,MAAAmnK,EAAA92I,MAAA82I,EAAA92I,MAAA7qF,OAAA,GAAAu9M,UACAiY,EAAAwM,GAAAL,EAAAvX,YAAAuX,EAAAtX,aAAA3M,GACAokB,EAAA7J,GAAA/0J,OAAAt3C,EAAA+9C,EAAA6rJ,EAAAmM,EAAAtX,aAAAjhN,GACA69H,EAAA84F,GAAA+B,EAAAH,EAAA92I,MAAA,GAAArwB,MAAAmnK,EAAA92I,MAAA,GAAApwB,UACA,OAAA9nD,GAAAmvN,EAAA76F,IAEApZ,GAAA2vG,GAAAD,cACA4E,GAAA,CACA/B,gBAAAz8M,GAAAy8M,GAAAtL,GAAAv1N,IAAA++N,GAAA3pM,cACA4rM,iBAAA58M,GAAA48M,GAAAnL,GAAA71N,IAAA++N,GAAA3pM,cACA8rM,eAAA98M,GAAA88M,GAAA3L,GAAAv1N,IAAA++N,GAAA3pM,cACA+rM,gBAAA/8M,GAAA+8M,GAAAtL,GAAA71N,IAAA++N,GAAA3pM,cACAgsM,mBAAAh9M,GAAAg9M,GAAA7L,GAAAjnG,GAAAtuH,EAAA++N,GAAA3pM,cACAisM,oBAAAj9M,GAAAi9M,GAAAxL,GAAAvnG,GAAAtuH,EAAA++N,GAAA3pM,cACAksM,kBAAAl9M,GAAAk9M,GAAA/L,GAAAjnG,GAAAtuH,EAAA++N,GAAA3pM,cACAmsM,mBAAAn9M,GAAAm9M,GAAA1L,GAAAvnG,GAAAtuH,EAAA++N,GAAA3pM,cACA2jM,qBAAA30M,GAAAw9M,GAAArM,GAAAjnG,GAAAtuH,EAAA++N,GAAA3pM,cACA+jM,kBAAA/0M,GAAAy9M,GAAAtM,GAAAv1N,IAAA++N,GAAA3pM,cACA0sM,aAAA19M,GAAA09M,GAAAjM,GAAAvnG,GAAA3/B,GAAAowI,GAAA3pM,cACA6sM,UAAA79M,GAAA69M,GAAApM,GAAA71N,EAAA2uF,GAAAowI,GAAA3pM,cACAqsM,iBAAAr9M,GAAAq9M,GAAAlM,GAAAv1N,IAAA++N,GAAA91M,UAAA,aACA04M,mBAAAv9M,GAAAu9M,GAAApM,GAAAv1N,IAAA++N,GAAA91M,UAAA,YACAu4M,cAAAp9M,GAAAo9M,GAAAjM,GAAAv1N,IAAA++N,GAAA91M,UAAA,aACAy4M,gBAAAt9M,GAAAs9M,GAAAnM,GAAAv1N,IAAA++N,GAAA91M,UAAA,YACAi5M,WAAA99M,GAAA89M,GAAAxM,GAAA11N,IAAA++N,GAAAD,SACAqD,aAAA/9M,GAAA+9M,GAAAvM,GAAAtnG,GAAAtuH,EAAA++N,GAAAD,SACAvT,WAAAnnM,GAAAmnM,GAAAntH,GAAAkwB,GAAAtuH,EAAA++N,GAAA3pM,cACAstM,gBAAAt+M,GAAAs+M,GAAAlN,GAAAx1N,IAAA++N,GAAA3pM,cACAutM,eAAAv+M,GAAAu+M,GAAAnN,GAAAx1N,IAAA++N,GAAA3pM,eAGAytM,GAAA,SAAArsJ,GACA,OAAA/7D,GAAAZ,QAAA28D,EAAAhuD,YAEAs6M,GAAA,SAAAzoJ,GACA,OAAAA,EAAAl8C,wBAAAkC,OAEA0iM,GAAA,SAAA1oJ,GACA,OAAAA,EAAAl8C,wBAAAC,QAEA6pL,GAAA,SAAAzxI,GACA,gBAAAp0D,GACA,OAAAxe,GAAAwe,EAAAygN,GAAArsJ,MAGAwsJ,GAAA,SAAAt6N,GACA,OAAAA,IAAA+S,QAAA,cAEAwnN,GAAA,SAAAv6N,GAIA,MAHA,WAAAwS,KAAAxS,KACAA,GAAA,MAEAA,GAEAw6N,GAAA,SAAAtoF,GACA,IAAAuoF,EAAAtjJ,GAAA+6D,EAAA,yCACAltH,GAAAktH,EAAA,kBACA91I,EAAAq+N,EAAA,SAAA5kK,GACA7wC,GAAA6wC,EAAA,qBAIAvvB,GAAA,SAAA5sB,GACA,cAAA0M,GAAA1M,EAAA,0BAGAghN,GAAA,CAAiBr0L,MAAApuC,GAAA,IACjB0iO,GAAA,CAAiBt0L,MAAApuC,GAAA,IACjBuuN,GAAA,SAAA9sM,GACA,IAAA4pD,EAAAh9B,GAAA5sB,GACA,cAAA4pD,EAAAq3J,GAAAD,IAEAE,GAAA,CAAqBpU,gBAErBqU,GAAA,6IACAC,GAAA,CACAC,kBAAA,WACApjM,MAAA,QAEAqjM,GAAA,CAA6B/7C,OAAA,KAC7Bg8C,GAAA,SAAAntJ,GACA,OAAAA,EAAAga,SAAA,2BAAAkzI,GAAA,WAEAE,GAAA,SAAAptJ,GACA,OAAAA,EAAAga,SAAA,uBAAAgzI,GAAA,WAEAK,GAAA,SAAArtJ,GACA,OAAAA,EAAAga,SAAA,mCAEAszI,GAAA,SAAAttJ,GACA,OAAAA,EAAAga,SAAA,sCAEAuzI,GAAA,SAAAvtJ,GACA,OAAAA,EAAAga,SAAA,mCAEAwzI,GAAA,SAAAxtJ,GACA,OAAAA,EAAAga,SAAA,kCAEAyzI,GAAA,SAAAztJ,GACA,OAAAA,EAAAga,SAAA,8BAEA0zI,GAAA,SAAA1tJ,GACA,OAAAA,EAAAga,SAAA,0CAEA2zI,GAAA,SAAA3tJ,GACA,OAAAA,EAAAga,SAAA,4BAEA4zI,GAAA,SAAA5tJ,GACA,OAAAA,EAAAga,SAAA,oCAEA6zI,GAAA,SAAA7tJ,GACA,OAAAA,EAAAga,SAAA,qCAEA8zI,GAAA,SAAA9tJ,GACA,OAAAA,EAAAga,SAAA,oCAEA+zI,GAAA,SAAA/tJ,GACA,OAAAA,EAAAga,SAAA,gCAEAg0I,GAAA,SAAAhuJ,GACA,WAAAA,EAAAga,SAAA,2BAEAi0I,GAAA,SAAAjuJ,GACA,WAAAA,EAAAga,SAAA,2BAEA29E,GAAA,SAAA33F,GACA,OAAAA,EAAAga,SAAA,gBAAA+yI,KAEAmB,GAAA,SAAAluJ,GACA,IAAAmuJ,EAAAnuJ,EAAAga,SAAA,wBACA,OAAAppF,EAAAu9N,GACA5+N,EAAAP,KAAAm/N,EAAApyM,MAAA,SACOnvB,MAAAkE,QAAAq9N,GACP5+N,EAAAP,KAAAm/N,GAEA5+N,EAAArC,QAGAkhO,GAAA,SAAApuJ,GACA,IAAAquJ,EAAAruJ,EAAAga,SAAA,sBACA,OAAAppF,EAAAy9N,GAAA,UAAAA,KAGAC,GAAA,SAAAtuJ,EAAAvb,GACA,OAAAub,EAAAya,KAAA,UAAoCj3E,KAAAihD,KAEpC8pK,GAAA,SAAAvuJ,EAAAjY,GACA,OAAAiY,EAAAya,KAAA,WAAqCj3E,KAAAukD,KAErCymK,GAAA,SAAAxuJ,EAAA3qE,EAAAw0B,EAAAjC,GACAo4C,EAAAya,KAAA,qBACAplF,SACAw0B,QACAjC,YAGA6mM,GAAA,SAAAzuJ,EAAA3qE,EAAAw0B,EAAAjC,GACAo4C,EAAAya,KAAA,iBACAplF,SACAw0B,QACAjC,YAGA8mM,GAAA,SAAA1uJ,EAAA8U,EAAAtrE,EAAAyxB,EAAAsyI,GACAvtG,EAAAya,KAAA,wBACA3F,QACAtrE,QACAyxB,SACAsyI,gBAGAohD,GAAA,SAAA3uJ,GACAA,EAAAya,KAAA,wBAGAm0I,GAAA,SAAA5uJ,EAAA6uJ,GACA,IAAAC,EAAA,SAAA9uJ,GACA,gBAAAvvE,GAAA47N,GAAArsJ,KAEA+uJ,EAAA,SAAA3qF,GACA,IAAAlyI,EAAA2mN,GAAAD,YAAAx0E,GACA,WAAA0qF,EAAA9uJ,IAAA9tE,EAAA03D,OAAA,GAEAolK,EAAA,SAAA5qF,GACA,IAAAlyI,EAAA2mN,GAAAD,YAAAx0E,GACA,WAAA0qF,EAAA9uJ,IAAA9tE,EAAAm1E,UAAA,GAEA8iI,EAAA+jB,GAAAluJ,GACA3wD,EAAA,SAAAu+G,EAAAqhG,EAAAlgC,EAAA8/B,GACA,gBAAAzqF,EAAA/uI,GACAq3N,GAAAtoF,GACA,IAAAm3E,EAAAsT,IACA/rN,EAAAmB,GAAAZ,QAAA28D,EAAA0D,UACAnsC,EAAAkhL,GAAAqU,GAAApU,aACApE,EAAAvJ,GAAAN,eAAA1b,EAAAjsL,EAAAqnM,GACA,OAAA8kB,EAAA7qF,GAAAxW,EAAA2tF,EAAAn3E,EAAA/uI,EAAAi/M,EAAA/8K,GAAAhpC,KAAA,SAAA6J,GAOA,OANA9J,EAAA8J,EAAA2gN,UAAA,SAAAt0J,GACA6pK,GAAAtuJ,EAAAvb,EAAA7gD,SAEAtV,EAAA8J,EAAA4gN,WAAA,SAAAjxJ,GACAwmK,GAAAvuJ,EAAAjY,EAAAnkD,SAEAxL,EAAA84H,SAAA7iI,IAAA,SAAA05D,GACA,IAAA1sB,EAAA2kC,EAAAp8D,IAAAmhE,YAGA,OAFA1pC,EAAAQ,SAAAksB,EAAAnkD,MAAA,GACAy3B,EAAAa,OAAA6rB,EAAAnkD,MAAA,GACAy3B,MAEW9rC,EAAArC,SAGXgiO,EAAA7/M,EAAA+8M,GAAAX,UAAAsD,EAAAvlO,EAAAqlO,GACAM,EAAA9/M,EAAA+8M,GAAAd,aAAA0D,EAAAxlO,EAAAqlO,GACArE,EAAAn7M,EAAA+8M,GAAA5B,iBAAAt/N,EAAA1B,EAAAqlO,GACAlE,EAAAt7M,EAAA+8M,GAAAzB,gBAAAz/N,EAAA1B,EAAAqlO,GACAhE,EAAAx7M,EAAA+8M,GAAAvB,oBAAA3/N,EAAAwsN,GAAAF,MAAAqX,GACA9D,EAAA17M,EAAA+8M,GAAArB,mBAAA7/N,EAAAwsN,GAAAF,MAAAqX,GACAnD,EAAAr8M,EAAA+8M,GAAAV,WAAAxgO,EAAA1B,EAAAqlO,GACAlD,EAAAt8M,EAAA+8M,GAAAT,aAAAzgO,EAAA1B,EAAAqlO,GACA3C,EAAA78M,EAAA+8M,GAAAF,gBAAAhhO,EAAA1B,EAAAqlO,GACA1C,EAAA98M,EAAA+8M,GAAAD,eAAAjhO,EAAA1B,EAAAqlO,GACA9Z,EAAA1lM,EAAA+8M,GAAArX,WAAA7pN,EAAA1B,EAAAqlO,GACA,OACAK,YACAC,eACA3E,mBACAG,kBACAE,sBACAE,qBACAW,aACAC,eACAO,kBACAC,iBACApX,eAIAqa,GAAA,SAAAhrF,EAAA/uI,EAAAi/M,GACA,IAAAl3L,EAAAwqL,GAAAP,UAAAjjE,GACAwkE,EAAAH,GAAAl0M,SAAA6oB,GACA0gE,EAAAuhI,GAAAzW,EAAAvzM,GACA,OAAAyoF,EAAAzvF,IAAA,SAAAghO,GACA,IAAAz7J,EAAAwqJ,GAAAF,OAAAtV,EAAA0L,GAAA,GACAgb,EAAA17J,EAAAtiE,MAAA+9N,EAAA,GAAA5qK,MAAA4qK,IAAAplO,OAAA,GAAAw6D,MAAA4qK,IAAAplO,OAAA,GAAAu9M,WACA+nB,EAAA7Q,GAAA4Q,EAAAhb,GACA,OAAAwF,GAAAxmN,KAAAi8N,MAGAC,GAAA,CAAoBJ,aAEpBjkO,GAAAC,QAAAC,KAAAC,MAAAC,QAAA,sBAEAkkO,GAAA,SAAA7rN,EAAAigE,EAAApzE,GACA,IACAi/N,EADA56I,EAAAlxE,EAAAu5E,OAAA,QAAAtZ,GAEA8rJ,EAAA,SAAAD,EAAAplF,GACA,QAAAz+I,EAAA,EAAuBA,EAAAy+I,EAAArgJ,OAAiB4B,IAAA,CACxC,IAAA+jO,EAAAhsN,EAAAqoF,SAAAq+C,EAAAz+I,GAAA4E,GAIA,GAHA,qBAAAi/N,IACAA,EAAAE,GAEAF,IAAAE,EACA,SAGA,OAAAF,GAGA,OADAA,EAAAC,EAAAD,EAAA56I,GACA46I,GAEAG,GAAA,SAAA7vJ,EAAA6D,EAAApzE,GACAA,GACAuvE,EAAAsb,UAAApxF,MAAA,QAAAuG,EAAA,GAAiDozE,IAGjDisJ,GAAA,SAAA9vJ,EAAA6D,EAAApzE,GACAA,GACAuvE,EAAAsb,UAAApxF,MAAA,SAAAuG,EAAA,GAAkDozE,IAGlDksJ,GAAA,SAAA/vJ,EAAA6D,GACA14E,GAAAmD,KAAA,oBAAAytB,MAAA,cAAAtrB,GACAuvE,EAAAsb,UAAApkE,OAAA,QAAAzmB,EAAA,GAAkDozE,MAGlDmsJ,GAAA,SAAAhwJ,EAAA6D,GACA14E,GAAAmD,KAAA,oBAAAytB,MAAA,cAAAtrB,GACAuvE,EAAAsb,UAAApkE,OAAA,SAAAzmB,EAAA,GAAmDozE,MAGnDosJ,GAAA,CACAJ,cACAC,eACAC,gBACAC,iBACAP,wBAGAS,GAAA,SAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAA,SAAAn8N,EAAArB,GAcA,OAbAA,KAAA,GACA3H,GAAAmD,KAAA6F,EAAA,SAAAqxB,GACA,IAAA6pD,EAAA,CAA0B3rE,KAAA8hB,EAAA9hB,MAAA8hB,EAAAkpD,OAC1BlpD,EAAAinC,KACA4iB,EAAA5iB,KAAA6jK,EAAA9qM,EAAAinC,OAEA4iB,EAAAjlF,MAAAo7B,EAAAp7B,MACAgmO,GACAA,EAAA/gJ,IAGAv8E,EAAArB,KAAA49E,KAEAv8E,GAEA,OAAAw9N,EAAAH,EAAAE,GAAA,KAEAE,GAAA,SAAA3sN,EAAAigE,GACA,IAAA2sJ,EAAA,SAAApmO,GACA,OAAA+6M,GAAA/6M,EAAA,OAAAwZ,EAAAwyE,MAAAhsF,MAEAqmO,EAAA5sM,GAAA5f,GAAAZ,QAAAwgE,GAAA,gBAAAh2E,MAAA,IACA6iO,EAAA7sM,GAAA5f,GAAAZ,QAAAwgE,GAAA,gBAAAh2E,MAAA,IACA8iO,EAAA9sM,GAAA5f,GAAAZ,QAAAwgE,GAAA,gBAAAx1E,IAAAmiO,GAAA3iO,MAAA,IACA+iO,EAAA/sM,GAAA5f,GAAAZ,QAAAwgE,GAAA,oBAAAx1E,IAAAmiO,GAAA3iO,MAAA,IACA,OACAgjO,YAAAJ,EACAK,YAAAJ,EACAK,YAAAJ,EACAK,gBAAAJ,IAGAK,GAAA,SAAAjgN,GACA,IAAAkgN,EAAAlgN,EAAA,GACAmgN,EAAAngN,EAAA1f,MAAA,GACAuD,EAAAnB,EAAAw9N,GAaA,OAZA5iO,EAAA6iO,EAAA,SAAAhgL,GACA7iD,EAAAuG,EAAA,SAAAR,GACAV,EAAAw9C,EAAA,SAAAklB,EAAA+6J,GACA,IAAAC,EAAAH,EAAA78N,GACA,KAAAg9N,GAAAh9N,IAAA+8N,GACAC,IAAAh7J,IACA66J,EAAA78N,GAAA,UAMA68N,GAEAI,GAAA,SAAAC,GACA,IAAAC,EAAA,CACA,CACA/gO,KAAA,cACAE,KAAA,YACA4E,MAAA,eACA47C,MAAA,CACA,CACAztC,KAAA,YACAtZ,MAAA,IAEA,CACAsZ,KAAA,QACAtZ,MAAA,SAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,QACAtZ,MAAA,SAEA,CACAsZ,KAAA,QACAtZ,MAAA,SAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,OACAtZ,MAAA,QAEA,CACAsZ,KAAA,SACAtZ,MAAA,YAIA,CACAqG,KAAA,cACAE,KAAA,aACA4E,MAAA,gBAEA,CACA9E,KAAA,kBACAE,KAAA,aACA4E,MAAA,qBAGAk7N,EAAA,CACAhgO,KAAA,cACAE,KAAA,QACA4E,MAAA,gBAEA47C,EAAA,SAAAogL,EAAA,CAAAd,GAAA7lO,OAAA4mO,KACA,OACA9iJ,MAAA,WACAj+E,KAAA,WACA0gD,UAGAsgL,GAAA,SAAAC,EAAA1qF,EAAA2qF,EAAA3xJ,EAAA6D,GACA,IAAA+tJ,EAAA,GASA,OARAzmO,GAAAmD,KAAAojO,EAAA31M,MAAA,cAAAtrB,GACAuvE,EAAAsb,UAAA2pE,UAAAphF,EAAAmjE,EAAAv2I,KACAmhO,EAAAD,GAAAlhO,KAGAmhO,EAAAD,KACAC,EAAAD,GAAA,IAEAC,GAEAC,GAAAtnO,EAAAknO,GAAA,qBACAK,GAAAvnO,EAAAknO,GAAA,qBACAM,GAAA,SAAA/xJ,EAAAgyJ,GACA,IAAAjvM,EAAAqqM,GAAAptJ,GACA3nD,EAAA80M,GAAAntJ,GACAiyJ,EAAA,SAAAruN,GACA,IAAA4sN,EAAA,SAAApmO,GACA,OAAA+6M,GAAA/6M,EAAA,OAAAwZ,EAAAwyE,MAAAhsF,MAEAsmO,EAAAt8N,EAAA2uB,EAAA,gBAAAl1B,MAAA,IACA8iO,EAAAv8N,EAAA2uB,EAAA,gBAAAl1B,MAAA,IACA+iO,EAAAx8N,EAAA2uB,EAAA,oBAAAl1B,MAAA,IACA,OACAijO,YAAAJ,EACAK,YAAAP,EAAAG,GACAK,gBAAAR,EAAAI,KAGAsB,EAAA,CACAtqM,OAAA,GACAiC,MAAA,OACAsoM,YAAA,GACAC,YAAA,GACAC,SAAA,EACA7vB,MAAA,GACAz7C,MAAA,GACAoqB,OAAA,IAEAmhD,EAAA,WACA,IAAA7B,EAAA1tM,EAAA,gBACA,OAAA6qM,GAAA5tJ,IAAAywJ,EACA,CAAkBt/C,OAAAs/C,GAElBr8N,EAAAikB,EAAA,UAAA3qB,KAAA,WACA,UACS,SAAAyjL,GACT,OAAkBA,aAGlBvtK,EAAAo8D,EAAAp8D,IACA2uN,EAAAP,EAAAC,EAAAruN,GAAA,GACA4uN,EAAA,WACA,IAAAC,EAAAr+N,EAAA2uB,EAAA,kBAAA50B,GAAAiG,EAAAikB,EAAA,gBAAA3qB,KAAA,WACA,UACS,SAAAykO,GACT,OAAkBA,iBAElBO,EAAAt+N,EAAA2uB,EAAA,kBAAA50B,GAAAiG,EAAAikB,EAAA,gBAAA3qB,KAAA,WACA,UACS,SAAA0kO,GACT,OAAkBA,iBAElB,OAAA5mO,MAAA,GAAmCinO,GAAAC,IAEnC1hN,EAAAxlB,kBAAA,GAAyE0mO,GAAAnvM,GAAA1K,GAAAk6M,GAAAD,KAAAE,KACzE,OAAAxhN,GAEA2hN,GAAA,SAAA3yJ,EAAA6D,EAAAmuJ,GACA,IAAAM,EAAA,SAAA1uN,EAAAigE,GACA,IAAA+uJ,EAAA/uM,GAAA5f,GAAAZ,QAAAwgE,GAAA,gBACA,OAAA+pJ,GAAA5tJ,IAAA4yJ,EAAAhlO,SACAglO,EAAA/kO,MAAA,IAEA+V,EAAA+3L,UAAA93H,EAAA,WAAAosJ,GAAAR,oBAAAzvJ,EAAAp8D,IAAAigE,EAAA,iBAAAosJ,GAAAR,oBAAAzvJ,EAAAp8D,IAAAigE,EAAA,WAEAjgE,EAAAo8D,EAAAp8D,IACAoN,EAAAxlB,MAAA,CACAq+B,MAAAjmB,EAAAqoF,SAAApoB,EAAA,UAAAjgE,EAAA+3L,UAAA93H,EAAA,SACAj8C,OAAAhkB,EAAAqoF,SAAApoB,EAAA,WAAAjgE,EAAA+3L,UAAA93H,EAAA,UACAsuJ,YAAAvuN,EAAAqoF,SAAApoB,EAAA,mBAAAjgE,EAAA+3L,UAAA93H,EAAA,eACAuuJ,YAAAxuN,EAAA+3L,UAAA93H,EAAA,gBAAAosJ,GAAAR,oBAAAzvJ,EAAAp8D,IAAAigE,EAAA,WACAstG,OAAAmhD,EAAA1uN,EAAAigE,GACAwuJ,UAAAzuN,EAAAu5E,OAAA,UAAAtZ,GAAA,GACA2+H,MAAA5+L,EAAA+3L,UAAA93H,EAAA,aACOguJ,GAAA,gBAAA7xJ,EAAA6D,IAAAmuJ,EAAAzB,GAAA3sN,EAAAigE,GAAA,IACP,OAAA7yD,GAEA6hN,GAAA,SAAA7yJ,EAAA6D,EAAA2pJ,GACA,IAAA5pN,EAAAo8D,EAAAp8D,IACAoN,EAAAxlB,MAAA,CACAo8B,OAAAhkB,EAAAqoF,SAAApoB,EAAA,WAAAjgE,EAAA+3L,UAAA93H,EAAA,UACAhhE,MAAAe,EAAA+3L,UAAA93H,EAAA,SACA2+H,MAAA5+L,EAAA+3L,UAAA93H,EAAA,YACAkjF,MAAA,GACAp2J,KAAAkzE,EAAAhyD,WAAAL,SAAAlM,eACOusN,GAAA,gBAAA7xJ,EAAA6D,IAAA2pJ,EAAA+C,GAAA3sN,EAAAigE,GAAA,IACP,OAAA7yD,GAEA8hN,GAAA,SAAA9yJ,EAAA6D,EAAA0pJ,GACA,IAAA3pN,EAAAo8D,EAAAp8D,IACAoN,EAAAxlB,SAAA,CACAq+B,MAAAjmB,EAAAqoF,SAAApoB,EAAA,UAAAjgE,EAAA+3L,UAAA93H,EAAA,SACAj8C,OAAAhkB,EAAAqoF,SAAApoB,EAAA,WAAAjgE,EAAA+3L,UAAA93H,EAAA,UACAhhE,MAAAe,EAAA+3L,UAAA93H,EAAA,SACAkvJ,SAAAlvJ,EAAAryD,SAAAlM,cACAk9L,MAAA5+L,EAAA+3L,UAAA93H,EAAA,aACOguJ,GAAA,iBAAA7xJ,EAAA6D,IAAAiuJ,GAAA,kBAAA9xJ,EAAA6D,IAAA0pJ,EAAAgD,GAAA3sN,EAAAigE,GAAA,IACP,OAAA7yD,GAEAgiN,GAAA,CACA9C,kBACAK,yBACAU,mBACAK,kBACAqB,+BACAE,6BACAC,8BACAf,4BAGAkB,GAAA,SAAAjzJ,GACA,IAAAkzJ,EAAArF,GAAA7tJ,GACAhiD,EAAAg1M,GAAA9C,eAAAgD,EAAA,SAAA1tM,GACAA,EAAAp7B,QACAo7B,EAAA2tM,UAAA,WACA,OAAAnzJ,EAAAsb,UAAA+sD,WAAA,CACAvQ,MAAA,KACA95G,QAAA,CAAAwH,EAAAp7B,aAKA,OAAA8oO,EAAAjpO,OAAA,EACAsF,EAAAP,KAAA,CACAyB,KAAA,QACAE,KAAA,YACA4E,MAAA,QACA47C,MAAAnzB,IAGAzuB,EAAArC,QAEAkmO,GAAA,CACA,CACA3iO,KAAA,QACAE,KAAA,QACA4E,MAAA,SAEA,CACA9E,KAAA,SACAE,KAAA,QACA4E,MAAA,UAEA,CACA9E,KAAA,WACAE,KAAA,YACA4E,MAAA,YACA47C,MAAA,CACA,CACAztC,KAAA,OACAtZ,MAAA,MAEA,CACAsZ,KAAA,cACAtZ,MAAA,QAIA,CACAqG,KAAA,QACAE,KAAA,YACA4E,MAAA,QACA47C,MAAA,CACA,CACAztC,KAAA,OACAtZ,MAAA,IAEA,CACAsZ,KAAA,MACAtZ,MAAA,OAEA,CACAsZ,KAAA,SACAtZ,MAAA,OAEA,CACAsZ,KAAA,YACAtZ,MAAA,YAEA,CACAsZ,KAAA,eACAtZ,MAAA,cAIA,CACAqG,KAAA,SACAE,KAAA,YACA4E,MAAA,UACA47C,MAAA,CACA,CACAztC,KAAA,OACAtZ,MAAA,IAEA,CACAsZ,KAAA,OACAtZ,MAAA,QAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,QACAtZ,MAAA,WAIA,CACAqG,KAAA,SACAE,KAAA,YACA4E,MAAA,UACA47C,MAAA,CACA,CACAztC,KAAA,OACAtZ,MAAA,IAEA,CACAsZ,KAAA,MACAtZ,MAAA,OAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,SACAtZ,MAAA,aAKAu1I,GAAA,SAAA3/D,GACA,OAAAizJ,GAAAjzJ,GAAAtyE,KAAA,WACA,OAAA0lO,IACO,SAAAC,GACP,OAAAD,GAAAxoO,OAAAyoO,MAGAC,GAAA,CAAgC3zF,aAEhC5zD,GAAA,SAAAnoE,EAAAJ,GACA,IAAA+vN,EAAA,SAAAxxM,EAAA33B,GACAwZ,EAAA2vN,UAAA/vN,EAAAue,EAAA33B,IAEA6qM,EAAA,SAAA34L,EAAAlS,GACAwZ,EAAAqxL,SAAAzxL,EAAAlH,EAAAlS,IAEA,OACAmpO,YACAt+B,aAGAu+B,GAAA,SAAA5vN,EAAAJ,GACA,IAAA+vN,EAAA,SAAAxxM,EAAA33B,GACAA,GACAwZ,EAAA2vN,UAAA/vN,EAAAue,EAAA33B,IAGA6qM,EAAA,SAAA34L,EAAAlS,GACAA,GACAwZ,EAAAqxL,SAAAzxL,EAAAlH,EAAAlS,IAGA,OACAmpO,YACAt+B,aAGAw+B,GAAA,CACA1nJ,UACAynJ,aAGAE,GAAA,SAAAC,EAAA3iN,GACA2iN,EAAAJ,UAAA,QAAAviN,EAAAnO,OACA8wN,EAAAJ,UAAA,QAAAviN,EAAAwxL,OACAmxB,EAAA1+B,SAAA,QAAAw3B,GAAAz7M,EAAA6Y,QACA8pM,EAAA1+B,SAAA,SAAAw3B,GAAAz7M,EAAA4W,UAEAgsM,GAAA,SAAAD,EAAA3iN,GACA2iN,EAAA1+B,SAAA,mBAAAjkL,EAAAggN,iBACA2C,EAAA1+B,SAAA,eAAAjkL,EAAA+/M,aACA4C,EAAA1+B,SAAA,eAAAjkL,EAAA8/M,aACA6C,EAAA1+B,SAAA,eAAAw3B,GAAAz7M,EAAA6/M,eAEAgD,GAAA,SAAA7zJ,EAAA8U,EAAA9jE,GACA,IAAApN,EAAAo8D,EAAAp8D,IACAkwN,EAAA9iN,EAAA+hN,UAAAj+I,EAAA,GAAAtjE,SAAAlM,gBAAA0L,EAAA+hN,SAAAnvN,EAAAsyL,OAAAphH,EAAA,GAAA9jE,EAAA+hN,UAAAj+I,EAAA,GACA6+I,EAAAF,GAAA1nJ,OAAAnoE,EAAAkwN,GACAJ,GAAAC,EAAA3iN,GACAu8M,GAAAvtJ,IACA4zJ,GAAAD,EAAA3iN,GAEAi/M,GAAAF,aAAA/vJ,EAAA8zJ,GACA7D,GAAAD,cAAAhwJ,EAAA8zJ,GACA9iN,EAAA+iN,QACA9D,GAAAJ,WAAA7vJ,EAAA8zJ,EAAA9iN,EAAA+iN,QAEA/iN,EAAAgjN,QACA/D,GAAAH,YAAA9vJ,EAAA8zJ,EAAA9iN,EAAAgjN,SAGAC,GAAA,SAAAj0J,EAAA8U,EAAA9jE,GACA,IAAApN,EAAAo8D,EAAAp8D,IACAzY,GAAAmD,KAAAwmF,EAAA,SAAAg/I,GACA9iN,EAAA+hN,UAAAe,EAAAtiN,SAAAlM,gBAAA0L,EAAA+hN,WACAe,EAAAlwN,EAAAsyL,OAAA49B,EAAA9iN,EAAA+hN,WAEA,IAAAY,EAAAF,GAAAD,SAAA5vN,EAAAkwN,GACAJ,GAAAC,EAAA3iN,GACAu8M,GAAAvtJ,IACA4zJ,GAAAD,EAAA3iN,GAEAA,EAAA+iN,QACA9D,GAAAJ,WAAA7vJ,EAAA8zJ,EAAA9iN,EAAA+iN,QAEA/iN,EAAAgjN,QACA/D,GAAAH,YAAA9vJ,EAAA8zJ,EAAA9iN,EAAAgjN,WAIAE,GAAA,SAAAl0J,EAAA8U,EAAAptD,GACA,IAAA1W,EAAA0W,EAAA/J,UACA+J,EAAA+lB,QACAuyB,EAAAob,YAAAC,SAAA,WACA,IAAA84I,EAAA,IAAAr/I,EAAA7qF,OAAA4pO,GAAAI,GACAE,EAAAn0J,EAAA8U,EAAA9jE,GACAgvD,EAAA/wD,WAGAg+B,GAAA,SAAA+yB,GACA,IAAA8zJ,EAAAh/I,EAAA,GAOA,GANAA,EAAA9U,EAAAp8D,IAAAu5E,OAAA,+CACA22I,EAAA9zJ,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAA,UACAw6C,EAAA7qF,QAAA6pO,GACAh/I,EAAArjF,KAAAqiO,GAEAA,KAAAh/I,EAAA,GACAg/I,EAAA,CAGA,IAAAM,EAAAjpO,GAAAkD,IAAAymF,EAAA,SAAAg/I,GACA,OAAAd,GAAAF,2BAAA9yJ,EAAA8zJ,EAAAvG,GAAAvtJ,MAEAhvD,EAAAgiN,GAAA/B,gBAAAmD,GACAC,EAAA,CACA1jO,KAAA,WACAgrL,KAAA,CACA,CACAjtG,MAAA,UACAj+E,KAAA,UACA0gD,MAAAmiL,GAAA3zF,SAAA3/D,IAEAgzJ,GAAA1B,eAAA,UAGAgD,EAAA,CACA3jO,KAAA,QACAwgD,MAAA,EACAxgD,KAAA,OACA02E,QAAA,EACAl2B,MAAAmiL,GAAA3zF,SAAA3/D,MAGAA,EAAAie,cAAAhxC,KAAA,CACAyhC,MAAA,kBACAx8E,KAAA,SACA6f,KAAAw7M,GAAAvtJ,GAAAq0J,EAAAC,EACAp2I,QAAA,CACA,CACAvtF,KAAA,SACAF,KAAA,SACAiT,KAAA,UAEA,CACA/S,KAAA,SACAF,KAAA,OACAiT,KAAA,OACAqxD,SAAA,IAGAgpB,YAAA/sE,EACAmtE,SAAA5zF,EAAA2pO,GAAAl0J,EAAA8U,OAGAy/I,GAAA,CAAsBtnL,SAEtBunL,GAAA,SAAAx0J,GACA,IAAAkzJ,EAAApF,GAAA9tJ,GACAhiD,EAAAg1M,GAAA9C,eAAAgD,EAAA,SAAA1tM,GACAA,EAAAp7B,QACAo7B,EAAA2tM,UAAA,WACA,OAAAnzJ,EAAAsb,UAAA+sD,WAAA,CACAvQ,MAAA,KACA95G,QAAA,CAAAwH,EAAAp7B,aAKA,OAAA8oO,EAAAjpO,OAAA,EACAsF,EAAAP,KAAA,CACAyB,KAAA,QACAE,KAAA,YACA4E,MAAA,QACA47C,MAAAnzB,IAGAzuB,EAAArC,QAEAunO,GAAA,CACA,CACA9jO,KAAA,YACAF,KAAA,OACA8E,MAAA,WACA47C,MAAA,CACA,CACAztC,KAAA,SACAtZ,MAAA,SAEA,CACAsZ,KAAA,OACAtZ,MAAA,SAEA,CACAsZ,KAAA,SACAtZ,MAAA,WAIA,CACAuG,KAAA,YACAF,KAAA,QACA8E,MAAA,YACA47C,MAAA,CACA,CACAztC,KAAA,OACAtZ,MAAA,IAEA,CACAsZ,KAAA,OACAtZ,MAAA,QAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,QACAtZ,MAAA,WAIA,CACAmL,MAAA,SACA9E,KAAA,SACAE,KAAA,UAGA+jO,GAAA,SAAA10J,GACA,OAAAw0J,GAAAx0J,GAAAtyE,KAAA,WACA,OAAA+mO,IACO,SAAAz2M,GACP,OAAAy2M,GAAA7pO,OAAAozB,MAGA22M,GAAA,CAA+Bh1F,SAAA+0F,IAE/BE,GAAA,SAAAhxN,EAAAixN,EAAAC,GACA,IAAAC,EAAAnxN,EAAA4oL,UAAAqoC,EAAA,SACAG,EAAAH,EAAAhjN,WACAojN,EAAArxN,EAAAu5E,OAAA23I,EAAAC,GAAA,GACAE,IACAA,EAAArxN,EAAAsuB,OAAA4iM,GACAC,EAAAh/M,WACA,YAAAg/M,EAAAh/M,WAAAvE,SACA5N,EAAAovL,YAAAiiC,EAAAF,EAAAh/M,YAEAg/M,EAAA3+M,aAAA6+M,EAAAF,EAAAh/M,YAGAg/M,EAAAr+M,YAAAu+M,IAGAA,EAAAv+M,YAAAm+M,GACAG,EAAA7xN,iBACAS,EAAAsT,OAAA89M,IAGAE,GAAA,SAAAC,EAAAnkN,GACAmkN,EAAAlgC,SAAA,mBAAAjkL,EAAAggN,iBACAmE,EAAAlgC,SAAA,eAAAjkL,EAAA+/M,aACAoE,EAAAlgC,SAAA,eAAAjkL,EAAA8/M,cAEAsE,GAAA,SAAAp1J,EAAApW,EAAAyrK,EAAA3tM,GACA,IAAA9jB,EAAAo8D,EAAAp8D,IACAoN,EAAA0W,EAAA/J,UACA+J,EAAA+lB,QACA,IAAA6nL,EAAA,IAAA1rK,EAAA3/D,OAAAwpO,GAAA1nJ,OAAA0nJ,GAAAD,SACAxzJ,EAAAob,YAAAC,SAAA,WACAlwF,GAAAmD,KAAAs7D,EAAA,SAAAirK,GACA7jN,EAAArgB,OAAAkkO,EAAAhjN,WAAAL,SAAAlM,eACAsvN,GAAA50J,EAAAp8D,IAAAixN,EAAA7jN,EAAArgB,MAEA,IAAAwkO,EAAAG,EAAA1xN,EAAAixN,GACAM,EAAA5B,UAAA,QAAAviN,EAAAnO,OACAsyN,EAAA5B,UAAA,QAAAviN,EAAAwxL,OACA2yB,EAAAlgC,SAAA,SAAAw3B,GAAAz7M,EAAA4W,SACA4lM,GAAAxtJ,IACAk1J,GAAAC,EAAAnkN,GAEAA,EAAA+1I,QAAAsuE,EAAAtuE,QACAkpE,GAAAF,aAAA/vJ,EAAA60J,GACA5E,GAAAJ,WAAA7vJ,EAAA60J,EAAA7jN,EAAA+1I,UAGA/mF,EAAA/wD,WAGA2sF,GAAA,SAAA57B,GACA,IACA+0J,EAAAjB,EAAAe,EADAjxN,EAAAo8D,EAAAp8D,IAEAgmD,EAAA,GAEA,GADAmrK,EAAAnxN,EAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAA,SACAy6L,IAGAjB,EAAAlwN,EAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAA,SACAnvC,GAAAmD,KAAAymO,EAAAnrK,KAAA,SAAAnF,GACAt5D,GAAAmD,KAAAm2D,EAAAqwB,MAAA,SAAA/sB,GACA,IAAAnkD,EAAA+3L,UAAA5zI,EAAA,sBAAAA,IAAA+rK,IAAAlqK,EAAAt9D,QAAAm4D,GAAA,EAEA,OADAmF,EAAAn4D,KAAAgzD,IACA,MAIAowK,EAAAjrK,EAAA,GACAirK,GAAA,CAGA,IAAAU,EAAApqO,GAAAkD,IAAAu7D,EAAA,SAAAirK,GACA,OAAA7B,GAAAH,0BAAA7yJ,EAAA60J,EAAArH,GAAAxtJ,MAEAhvD,EAAAgiN,GAAA/B,gBAAAsE,GACAlB,EAAA,CACA1jO,KAAA,WACAgrL,KAAA,CACA,CACAjtG,MAAA,UACAj+E,KAAA,UACA0gD,MAAAwjL,GAAAh1F,SAAA3/D,IAEAgzJ,GAAA1B,eAAA,SAGAgD,EAAA,CACA3jO,KAAA,QACAwgD,MAAA,EACAxgD,KAAA,OACA02E,QAAA,EACAl2B,MAAAwjL,GAAAh1F,SAAA3/D,MAGAA,EAAAie,cAAAhxC,KAAA,CACAyhC,MAAA,iBACAx8E,KAAA,SACA6f,KAAAy7M,GAAAxtJ,GAAAq0J,EAAAC,EACAp2I,QAAA,CACA,CACAvtF,KAAA,SACAF,KAAA,SACAiT,KAAA,UAEA,CACA/S,KAAA,SACAF,KAAA,OACAiT,KAAA,OACAqxD,SAAA,IAGAgpB,YAAA/sE,EACAmtE,SAAA5zF,EAAA6qO,GAAAp1J,EAAApW,EAAA54C,OAGAwkN,GAAA,CAAqBvoL,KAAA2uD,IAErBjmG,GAAAlK,OAAAO,UAAAC,eACA6sB,GAAA,SAAAjjB,EAAAC,GACA,OAAAA,GAEAI,GAAA,SAAAC,GACA,kBAEA,IADA,IAAAC,EAAA,IAAAxJ,MAAA5C,UAAAC,QACA4B,EAAA,EAAuBA,EAAAuK,EAAAnM,OAAoB4B,IAC3CuK,EAAAvK,GAAA7B,UAAA6B,GAEA,OAAAuK,EAAAnM,OACA,UAAAe,MAAA,4BAGA,IADA,IAAAqL,EAAA,GACAtJ,EAAA,EAAuBA,EAAAqJ,EAAAnM,OAAoB8C,IAAA,CAC3C,IAAAuJ,EAAAF,EAAArJ,GACA,QAAAsH,KAAAiC,EACAX,GAAAzJ,KAAAoK,EAAAjC,KACAgC,EAAAhC,GAAA8B,EAAAE,EAAAhC,GAAAiC,EAAAjC,KAIA,OAAAgC,IAGAo/N,GAAAv/N,GAAA4iB,IAEAgnD,GAAA10E,QAAAC,KAAAC,MAAAC,QAAA,eAEAmqO,GAAA,CACAx3M,OAAA,CACA+uM,kBAAA,WACApjM,MAAA,QAEA5L,WAAA,CAAmBkzJ,OAAA,KACnBwkD,aAAA,GAEAC,GAAA,WACA,OAAA3xN,GAAAX,QAAA,UAEAuyN,GAAA,WACA,OAAA5xN,GAAAX,QAAA,UAEAwyN,GAAA,WACA,OAAA7xN,GAAAX,QAAA,OAEAyyN,GAAA,WACA,OAAA9xN,GAAAX,QAAA,OAEA0yN,GAAA,WACA,OAAA/xN,GAAAX,QAAA,OAEAi6J,GAAA,SAAA3zG,EAAAyd,EAAA4uJ,EAAAC,EAAAC,QACA,IAAAA,IACAA,EAAAT,IAEA,IAAAtxF,EAAAwxF,KACAryM,GAAA6gH,EAAA+xF,EAAAj4M,QACA9F,GAAAgsH,EAAA+xF,EAAAl4M,YACA,IAAAm4M,EAAAP,KACAt/M,GAAA6tH,EAAAgyF,GAEA,IADA,IAAAC,EAAA,GACAxqO,EAAA,EAAqBA,EAAA+9D,EAAU/9D,IAAA,CAE/B,IADA,IAAAytN,EAAAwc,KACA/oO,EAAA,EAAuBA,EAAAs6E,EAAat6E,IAAA,CACpC,IAAAm+K,EAAAr/K,EAAAoqO,GAAAlpO,EAAAmpO,EAAAH,KAAAC,KACAjpO,EAAAmpO,GACAzzN,GAAAyoK,EAAA,eAEAr/K,EAAAoqO,GACAxzN,GAAAyoK,EAAA,eAEA30J,GAAA20J,EAAAjnK,GAAAX,QAAA,OACA6yN,EAAAR,aACAx9M,GAAA+yJ,EAAA,YAAA7jG,EAAA,KAEA9wD,GAAA+iM,EAAApuC,GAEAmrD,EAAA5kO,KAAA6nN,GAGA,OADAxiM,GAAAs/M,EAAAC,GACAjyF,GAGA16G,GAAA,SAAA9d,GACA,OAAAA,EAAAhI,MAAAV,WAEAsmB,GAAA,SAAA5d,GACA,IAAAmM,EAAA9T,GAAAX,QAAA,OACAZ,EAAAuB,GAAAZ,QAAAuI,EAAAhI,MAAAoU,WAAA,IAEA,OADAzB,GAAAwB,EAAArV,GACAgnB,GAAA3R,IAGAu+M,GAAA,SAAAt2J,EAAAjY,GACAiY,EAAA5kC,UAAA+hD,OAAAp1B,EAAAnkD,OAAA,GACAo8D,EAAA5kC,UAAAmD,UAAA,IAEAg4L,GAAA,SAAAv2J,EAAA+0J,GACAlpM,GAAAkpM,EAAA,SAAAzmO,KAAA/D,EAAA+rO,GAAAt2J,KAEAw2J,GAAA,SAAAx2J,EAAAokE,GACA91I,EAAA+6E,GAAA+6D,EAAA,eAAA3/E,GACA6pK,GAAAtuJ,EAAAvb,EAAA7gD,OACAtV,EAAA+6E,GAAA5kB,EAAA,kBAAAsD,GACAwmK,GAAAvuJ,EAAAjY,EAAAnkD,YAIA6yN,GAAA,SAAA5sM,GACA,OAAAj5B,EAAAi5B,KAAA,IAAAA,EAAAv9B,QAAA,MAEAoqO,GAAA,SAAA12J,EAAAqH,EAAAzd,GACA,IAAAojK,EAAAI,GAAAptJ,GACAp3B,EAAA,CACA1qB,OAAA8uM,EACA/uM,WAAAkvM,GAAAntJ,GACA21J,YAAAc,GAAAzJ,EAAAnjM,SAAAokM,GAAAjuJ,IAEAokE,EAAAm5B,GAAA3zG,EAAAyd,EAAA,IAAAz+B,GACAnmC,GAAA2hI,EAAA,uBACA,IAAAxhI,EAAA4mB,GAAA46G,GAEA,OADApkE,EAAAqnH,cAAAzkL,GACAipB,GAAAwgM,GAAArsJ,GAAA,8BAAA3xE,IAAA,SAAA+1I,GAOA,OANA6pF,GAAAjuJ,IACA7nD,GAAAisH,EAAA,QAAA9rH,GAAA8rH,EAAA,UAEAltH,GAAAktH,EAAA,eACAoyF,GAAAx2J,EAAAokE,GACAmyF,GAAAv2J,EAAAokE,GACAA,EAAAxgI,QACO/V,MAAA,OAEP8oO,GAAA,CAAuBxpK,OAAAupK,IAEvBE,GAAA,SAAA52J,EAAA62J,EAAAC,GACA,IAAAC,EAAAD,EAAA,CACA,CACAnmO,KAAA,QACAF,KAAA,OACA8E,MAAA,OACA8jI,UAAA,WAEA,CACA1oI,KAAA,QACAF,KAAA,OACA8E,MAAA,OACA8jI,UAAA,YAXA,GAcA29F,EAAA,CACA,CACArmO,KAAA,QACAF,KAAA,QACA8E,MAAA,SAEA,CACA5E,KAAA,QACAF,KAAA,SACA8E,MAAA,WAGA0hO,EAAAvJ,GAAA1tJ,GAAA,CACA,CACArvE,KAAA,QACAF,KAAA,cACA8E,MAAA,eACA8jI,UAAA,WAEA,CACA1oI,KAAA,QACAF,KAAA,cACA8E,MAAA,eACA8jI,UAAA,WAEA,CACA1oI,KAAA,QACAF,KAAA,SACA8E,MAAA,gBAEA,CACA5E,KAAA,QACA4E,MAAA,UACA47C,MAAA,EACAxgD,KAAA,WACAF,KAAA,UACA8E,MAAA,mBAGA,GACA2hO,EAAA,EACAvmO,KAAA,YACAF,KAAA,QACA8E,MAAA,YACA47C,MAAA,CACA,CACAztC,KAAA,OACAtZ,MAAA,IAEA,CACAsZ,KAAA,OACAtZ,MAAA,QAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,QACAtZ,MAAA,YAIA+sO,EAAAN,EAAA,EACAlmO,KAAA,YACAF,KAAA,QACA8E,MAAA,QACA47C,MAAA6hL,GAAA9C,eAAAnC,GAAA/tJ,GAAA,SAAAx6C,GACAA,EAAAp7B,QACAo7B,EAAA2tM,UAAA,WACA,OAAAnzJ,EAAAsb,UAAA+sD,WAAA,CACAvQ,MAAA,QACA95G,QAAA,CAAAwH,EAAAp7B,eAKS,GACT,OAAA2sO,EAAAnsO,OAAAosO,GAAApsO,OAAAqsO,GAAArsO,OAAAssO,GAAAtsO,OAAAusO,IAEAC,GAAA,CAAiCz3F,SAAAi3F,IAEjCS,GAAA,SAAAzzN,EAAAigE,EAAApzE,EAAArG,GACA,UAAAy5E,EAAA6qH,SAAA,OAAA7qH,EAAA6qH,QACA99L,EAAAH,GACAmT,EAAAqxL,SAAApxH,EAAApzE,EAAArG,GAEAwZ,EAAAqxL,SAAApxH,EAAApzE,QAGA,GAAAozE,EAAAluD,SACA,QAAA9pB,EAAA,EAAyBA,EAAAg4E,EAAAluD,SAAA1rB,OAAyB4B,IAClDwrO,GAAAzzN,EAAAigE,EAAAluD,SAAA9pB,GAAA4E,EAAArG,IAKAktO,GAAA,SAAAt3J,EAAA+0J,EAAA/jN,GACA,IAAApN,EAAAo8D,EAAAp8D,IACAyU,EAAA,GACA6F,EAAA,GAgBA,GAfA7F,EAAAmqL,MAAAxxL,EAAAwxL,MACAtkL,EAAA0J,OAAA6kM,GAAAz7M,EAAA4W,QACAhkB,EAAA+3L,UAAAo5B,EAAA,WAAAnH,GAAA5tJ,GACA3nD,EAAAwR,MAAA2iM,GAAAx7M,EAAA6Y,OAEA3L,EAAA2L,MAAA4iM,GAAAz7M,EAAA6Y,OAEA+jM,GAAA5tJ,IACA9hD,EAAA,gBAAAuuM,GAAAz7M,EAAAmgK,QACAjzJ,EAAA,kBAAAuuM,GAAAz7M,EAAAmhN,eAEA95M,EAAA84J,OAAAngK,EAAAmgK,OACA94J,EAAA+5M,YAAAphN,EAAAohN,YACA/5M,EAAA85M,YAAAnhN,EAAAmhN,aAEAvE,GAAA5tJ,IAAA+0J,EAAAp/M,SACA,QAAA9pB,EAAA,EAAuBA,EAAAkpO,EAAAp/M,SAAA1rB,OAA8B4B,IACrDwrO,GAAAzzN,EAAAmxN,EAAAp/M,SAAA9pB,GAAA,CACA0rO,eAAA9K,GAAAz7M,EAAAmgK,QACAuhD,QAAAjG,GAAAz7M,EAAAohN,eAEA3E,GAAAztJ,IACAq3J,GAAAzzN,EAAAmxN,EAAAp/M,SAAA9pB,GAAA,CAAkD2rO,eAAAxmN,EAAA+/M,cAIlDtD,GAAAztJ,KACA9hD,EAAA,oBAAAlN,EAAAggN,gBACA9yM,EAAA,gBAAAlN,EAAA+/M,YACA7yM,EAAA,gBAAAlN,EAAA8/M,aAEAz4M,EAAA0K,MAAAnf,EAAAm+L,eAAA0zB,GAAArI,GAAAptJ,GAAA9hD,IACAta,EAAA+qL,WAAAomC,EAAAU,GAAAtI,GAAAntJ,GAAA3nD,KAEAo/M,GAAA,SAAAz3J,EAAA+0J,EAAArtM,GACA,IACAgwM,EADA9zN,EAAAo8D,EAAAp8D,IAEAoN,EAAA0W,EAAA/J,UACA+J,EAAA+lB,QACA,KAAAz8B,EAAAwxL,cACAxxL,EAAAwxL,MAEAxiI,EAAAob,YAAAC,SAAA,WACA,IAAA05I,EAAA,CACA,IAAA5tB,EAAA//K,SAAApW,EAAAm2L,KAAA,OACAv9I,EAAAxiC,SAAApW,EAAA44C,KAAA,OACAmrK,EAAA4B,GAAAxpK,OAAA6S,EAAAmnI,EAAAv9I,GAEA0tK,GAAAt3J,EAAA+0J,EAAA/jN,GACA0mN,EAAA9zN,EAAAu5E,OAAA,UAAA43I,GAAA,GACA2C,IAAA1mN,EAAAqhN,SACAzuN,EAAAsT,OAAAwgN,IAEAA,GAAA1mN,EAAAqhN,UACAqF,EAAA9zN,EAAAsuB,OAAA,WACAwlM,EAAAx0N,UAAA48D,GAAAn6D,GAAA,+BACAovN,EAAA3+M,aAAAshN,EAAA3C,EAAAh/M,aAEA,KAAA/E,EAAA+1I,MACAkpE,GAAAF,aAAA/vJ,EAAA+0J,GAEA9E,GAAAJ,WAAA7vJ,EAAA+0J,EAAA/jN,EAAA+1I,OAEA/mF,EAAA/wD,QACA+wD,EAAA23J,eAGAC,GAAA,SAAA53J,EAAA82J,GACA,IACA/B,EADAnxN,EAAAo8D,EAAAp8D,IAEAoN,EAAAgiN,GAAAjB,wBAAA/xJ,EAAAytJ,GAAAztJ,KACA,IAAA82J,GACA/B,EAAAnxN,EAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAA,SACAy6L,EACA/jN,EAAAgiN,GAAAL,4BAAA3yJ,EAAA+0J,EAAAtH,GAAAztJ,IAEAytJ,GAAAztJ,KACAhvD,EAAA8/M,YAAA,GACA9/M,EAAA+/M,YAAA,GACA//M,EAAAggN,gBAAA,MAIAhgN,EAAAm2L,KAAA,IACAn2L,EAAA44C,KAAA,IACA6jK,GAAAztJ,KACAhvD,EAAA8/M,YAAA,GACA9/M,EAAA+/M,YAAA,GACA//M,EAAAggN,gBAAA,KAGA,IAAA6F,EAAA9I,GAAA/tJ,GAAA/1E,OAAA,EACA4sO,GACA7lN,EAAAwxL,QACAxxL,EAAAwxL,MAAAxxL,EAAAwxL,MAAAv9L,QAAA,+BAGA,IAAA4yN,EAAA,CACAlnO,KAAA,OACA02E,QAAA,EACAl2B,MAAAimL,GAAAz3F,SAAA3/D,EAAA62J,EAAAC,IAEAgB,EAAA,WACA,OACAnnO,KAAA,QACAwgD,MAAA,CAAA0mL,KAGAE,EAAA,WACA,OACApnO,KAAA,WACAgrL,KAAA,CACA,CACAjtG,MAAA,UACAj+E,KAAA,UACA0gD,MAAA,CAAA0mL,IAEA7E,GAAA1B,eAAA,YAIArzC,EAAAwvC,GAAAztJ,GAAA+3J,IAAAD,IACA93J,EAAAie,cAAAhxC,KAAA,CACAyhC,MAAA,mBACAx8E,KAAA,SACA6f,KAAAksK,EACA9/F,SAAA5zF,EAAAktO,GAAAz3J,EAAA+0J,GACA72I,QAAA,CACA,CACAvtF,KAAA,SACAF,KAAA,SACAiT,KAAA,UAEA,CACA/S,KAAA,SACAF,KAAA,OACAiT,KAAA,OACAqxD,SAAA,IAGAgpB,YAAA/sE,KAGAgnN,GAAA,CAAuB/qL,KAAA2qL,IAEvBK,GAAA,SAAApsN,GACA,gBAAAm0D,GACA,OAAAzwE,EAAAD,KAAA0wE,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAAzuB,IAAAxd,IAAA4V,GAAAZ,WAGA60N,GAAAD,GAAA,SACAE,GAAAF,GAAA,iBAEAG,GAAAjtO,GAAAmD,KACAmtF,GAAA,SAAAzb,EAAAg2C,EAAA4+F,EAAAjB,EAAA0kB,GACA,IAAA/mN,EAAAmgM,GAAAzxI,GACAs4J,EAAA,WACAH,GAAAn4J,GAAA1xE,KAAA,SAAAiqO,GACA,IAAAC,EAAApxB,GAAAhjE,MAAAm0F,EAAAjnN,GACAknN,EAAA9pO,OAAA7D,EAAAymB,IAAAhjB,KAAA,SAAA81I,GACA,IAAAlT,EAAAjtH,GAAAR,SAAA,IAGA,GAFA4S,GAAA+tH,EAAAlT,GACAjvG,GAAAmiH,GACApkE,EAAAp8D,IAAAqoL,QAAAjsH,EAAAhuD,WACAguD,EAAA5yB,WAAA,IACA4yB,EAAA5kC,UAAA2oC,wBACa,CACb,IAAA1oC,EAAA2kC,EAAAp8D,IAAAmhE,YACA1pC,EAAAQ,SAAAq1F,EAAAttH,MAAA,GACAy3B,EAAAa,OAAAg1F,EAAAttH,MAAA,GACAo8D,EAAA5kC,UAAA2nI,OAAA1nI,GACA2kC,EAAAub,oBAKAk9I,EAAA,SAAA1wK,GACA,OAAAq/I,GAAAhjE,MAAAr8E,EAAAz2C,IAEA8pL,EAAA,SAAAh3D,GACA,OACAv6G,MAAAyiM,GAAAloF,EAAAxgI,OACAgkB,OAAA0kM,GAAAloF,EAAAxgI,SAGA80N,EAAA,SAAA14J,EAAA24J,EAAAv0F,GACA,IAAA/Z,EAAA+wE,EAAAh3D,GACAu0F,EAAA9uM,QAAAwgG,EAAAxgG,OAAA8uM,EAAA/wM,SAAAyiG,EAAAziG,SACA4mM,GAAAxuJ,EAAAokE,EAAAxgI,MAAA+0N,EAAA9uM,MAAA8uM,EAAA/wM,QACA6mM,GAAAzuJ,EAAAokE,EAAAxgI,MAAAymH,EAAAxgG,MAAAwgG,EAAAziG,UAGAgxM,EAAA,SAAAvpN,GACA6oN,GAAAl4J,GAAA1xE,KAAA,SAAAy5D,GACA0wK,EAAA1wK,GAAAz5D,KAAA,SAAA81I,GACA,IAAA1F,EAAA61E,GAAAh1H,QAAAo0H,EAAAvvE,EAAAr8E,GACA+qF,EAAAsoD,EAAAh3D,GACA/0H,EAAA+0H,EAAA1F,GAAApwI,KAAA,SAAA+sC,GACAq9L,EAAA14J,EAAA8yE,EAAA1O,GACApkE,EAAA5kC,UAAA2nI,OAAA1nI,GACA2kC,EAAA/wD,QACA2lM,EAAAjnK,MAAAy2F,GACAsoF,GAAAtoF,UAKAy0F,EAAA,SAAAxpN,GACA,OAAA6oN,GAAAl4J,GAAA3xE,IAAA,SAAA05D,GACA,OAAA0wK,EAAA1wK,GAAAx5D,KAAA,SAAA61I,GACA,IAAAthI,EAAAmB,GAAAZ,QAAA28D,EAAA0D,UACAg7D,EAAA61E,GAAAh1H,QAAAo0H,EAAAvvE,EAAAr8E,GACAusJ,EAAAvJ,GAAAN,eAAAjhN,EAAAsZ,EAAAvT,EAAArC,QACA,OAAAsiO,GAAAJ,SAAAhrF,EAAA1F,EAAA41E,QAIAwkB,EAAA,SAAAzpN,GACAgpN,EAAAjkO,MAAA9F,KAAA,SAAAs7D,GACA,IAAAmvK,EAAA1qO,EAAAu7D,EAAA,SAAAnF,GACA,OAAA1uD,GAAA0uD,KAEAyzK,GAAAl4J,GAAA1xE,KAAA,SAAAy5D,GACA0wK,EAAA1wK,GAAAz5D,KAAA,SAAA81I,GACA,IAAAthI,EAAAmB,GAAAZ,QAAA28D,EAAA0D,UACA4wI,EAAAvJ,GAAAD,MAAAhoM,GACA47H,EAAA61E,GAAAH,UAAAT,EAAAvvE,EAAAr8E,EAAAgxK,EAAAzkB,GACAjlM,EAAA+0H,EAAA1F,GAAApwI,KAAA,SAAA+sC,GACA2kC,EAAA5kC,UAAA2nI,OAAA1nI,GACA2kC,EAAA/wD,QACA2lM,EAAAjnK,MAAAy2F,YAMAg0F,GAAA,CACAY,mBAAA,WACAJ,EAAA5iH,EAAA21G,eAEAsN,mBAAA,WACAL,EAAA5iH,EAAA01G,aAEAwN,wBAAA,WACAN,EAAA5iH,EAAAw0G,mBAEA2O,uBAAA,WACAP,EAAA5iH,EAAA20G,kBAEAyO,wBAAA,WACAR,EAAA5iH,EAAA60G,sBAEAwO,uBAAA,WACAT,EAAA5iH,EAAA+0G,qBAEAuO,kBAAA,WACAV,EAAA5iH,EAAAm5G,eAEAoK,kBAAA,WACAX,EAAA5iH,EAAAk5G,YAEAsK,eAAA,SAAA5lK,GACAilK,IAAAvqO,KAAA,SAAA8sC,GACAi9L,EAAA51N,IAAA24B,GACAw9L,EAAA5iH,EAAAk5G,cAGAuK,gBAAA,SAAA7lK,GACAilK,IAAAvqO,KAAA,SAAA8sC,GACAi9L,EAAA51N,IAAA24B,MAGAs+L,uBAAA,SAAA9lK,GACAklK,EAAA9iH,EAAAk2G,kBAEAyN,sBAAA,SAAA/lK,GACAklK,EAAA9iH,EAAAm2G,iBAEAyN,eAAAtB,GACO,SAAA79N,EAAAhK,GACPuvE,EAAA0b,WAAAjrF,EAAAgK,KAEA29N,GAAA,CACAyB,eAAAtvO,EAAAytO,GAAA/qL,KAAA+yB,GAAA,GACA85J,cAAAvvO,EAAAytO,GAAA/qL,KAAA+yB,GAAA,GACA+5J,iBAAAxvO,EAAAirO,GAAAvoL,KAAA+yB,GACAg6J,kBAAAzvO,EAAAgqO,GAAAtnL,KAAA+yB,IACO,SAAAvlE,EAAAhK,GACPuvE,EAAA0b,WAAAjrF,EAAA,WACAgK,SAIAq/L,GAAA,CAAoBr+G,qBAEpB+nI,GAAA,SAAA53M,GACA,IAAA4J,EAAAjmB,EAAAD,KAAAsc,EAAAhI,MAAA0R,iBAAAjnB,IAAA4V,GAAAZ,SAAAxV,MAAA+d,GACA,OACA4J,OAAArrB,EAAAqrB,GACAmV,KAAAxgC,EAAAyhB,GACA6rB,OAAAttC,EAAAm+B,GAAA,QAGA2xM,GAAA,SAAAC,EAAAx0N,GACA,IAAA+xB,EAAA,WACA,OAAA/O,GAAAhjB,IAEA,OACA8P,OAAArrB,EAAAub,GACAilB,KAAAxgC,EAAA+vO,GACAziM,WAGA0iM,GAAA,SAAAD,EAAAx0N,GACA,OACA8P,OAAArrB,EAAAub,GACAilB,KAAAxgC,EAAA+vO,GACAziM,OAAAttC,EAAAm+B,GAAA,QAGA8xM,GAAA,CACA5W,QACAyW,YACAloN,KAAAooN,IAGAE,GAAA,SAAAjjO,GACA,IAAAmd,EAAAD,EAAApqB,MAAA,KAAAkN,GACAkW,EAAA,GACA/e,EAAA,SAAAgf,GACA,QAAArf,IAAAqf,EACA,UAAAviB,MAAA,uCAEAsiB,EAAA7b,KAAA8b,IAEA23E,EAAA,SAAA33E,GACAD,EAAA5e,EAAA4e,EAAA,SAAA2Z,GACA,OAAAA,IAAA1Z,KAGA+sN,EAAA,WAEA,IADA,IAAAxwO,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,IAAAmjB,EAAAqH,EAAArqB,MAAA,KAAAJ,GACAwE,EAAAgf,EAAA,SAAAC,GACAA,EAAAL,MAGA,OACA3e,OACA22F,SACAo1I,YAIA5mM,GAAA,SAAA6mM,GACA,IAAAtyJ,EAAAn0E,EAAAymO,EAAA,SAAArtN,GACA,OACA3e,KAAA2e,EAAA3e,KACA22F,OAAAh4E,EAAAg4E,UAGAo1I,EAAAxmO,EAAAymO,EAAA,SAAArtN,GACA,OAAAA,EAAAotN,UAEA,OACAryJ,WACAqyJ,YAGAv/I,GAAA,CAAkB7oD,OAAAwB,IAElB4wD,GAAA,SAAAjvF,EAAA/K,EAAAyZ,EAAAmO,EAAAW,EAAA0xE,EAAAzgE,GACA,OACAzuB,OAAAlL,EAAAkL,GACA/K,EAAAH,EAAAG,GACAyZ,EAAA5Z,EAAA4Z,GACAmO,OACAW,UACA0xE,OACAzgE,IAAA35B,EAAA25B,KAGA0gE,GAAA,SAAAC,GACA,IAAApvF,EAAA4O,GAAAZ,QAAAohF,EAAApvF,QACA6c,EAAA,WACAuyE,EAAAC,mBAEA7xE,EAAA,WACA4xE,EAAA7xE,kBAEA2xE,EAAA56F,EAAAkpB,EAAAX,GACA,OAAAoyE,GAAAjvF,EAAAovF,EAAAE,QAAAF,EAAAG,QAAA1yE,EAAAW,EAAA0xE,EAAAE,IAEAI,GAAA,SAAAn2F,EAAA6e,GACA,gBAAAk3E,GACA/1F,EAAA+1F,IAGAl3E,EAAAi3E,GAAAC,MAGAK,GAAA,SAAAl5E,EAAAsB,EAAAxe,EAAA6e,EAAAw3E,GACA,IAAAC,EAAAH,GAAAn2F,EAAA6e,GAEA,OADA3B,EAAAhI,MAAAqhF,iBAAA/3E,EAAA83E,EAAAD,GACA,CAAcG,OAAA36F,EAAA26F,GAAAt5E,EAAAsB,EAAA83E,EAAAD,KAEdtrF,GAAA,SAAAmS,EAAAsB,EAAAxe,EAAA6e,GACA,OAAAu3E,GAAAl5E,EAAAsB,EAAAxe,EAAA6e,GAAA,IAEA23E,GAAA,SAAAt5E,EAAAsB,EAAAK,EAAAw3E,GACAn5E,EAAAhI,MAAAyhF,oBAAAn4E,EAAAK,EAAAw3E,IAGAO,GAAAn7F,GAAA,GACAg7F,GAAA,SAAAv5E,EAAAsB,EAAAK,GACA,OAAA9T,GAAAmS,EAAAsB,EAAAo4E,GAAA/3E,IAGAitN,GAAAh3M,GAAA,kBACAi3M,GAAA,CAAoBlvO,QAAAivO,GAAAjvO,SAEpBmvO,GAAA,SAAA9xL,GACA,IAAAi4B,EAAA40J,GAAA,CAA8BkF,WAAAF,GAAAlvO,QAAA,YAA0Cq9C,GACxE5lC,EAAAiB,GAAAX,QAAA,OACAb,GAAAO,EAAA,uBACAugB,GAAAvgB,EAAA,CACA0oB,SAAA,QACAvD,KAAA,MACAC,IAAA,MACAyB,MAAA,OACAjC,OAAA,SAEApF,GAAAxf,EAAAy3N,GAAAlvO,QAAA,YACAi3B,GAAAxf,EAAA69D,EAAA85J,YACA,IAAA/uN,EAAA,WACA,OAAA5I,GAEAgoF,EAAA,WACA/oE,GAAAjf,IAEA,OACA4I,UACAo/E,YAIA4vI,GAAA9S,GAAA,CACA,UACA,UACA,SACA,SAEA+S,GAAA/S,GAAA,CACA,UACA,QACA,OACA,YAEAgT,GAAAhT,GAAA,CACA,YACA,OACA,OACA,cAGAiT,GAAA,SAAAllO,EAAAC,GACA,OAAAwyB,GAAAxyB,EAAAqyB,OAAAtyB,EAAAsyB,OAAAryB,EAAAsyB,MAAAvyB,EAAAuyB,QAEAixJ,GAAA,SAAAnsK,GACA,OAAA3d,EAAAP,KAAAs5B,GAAApb,EAAA5iB,IAAA4iB,EAAAnJ,OAEAgrL,GAAA,SAAAisC,EAAA50N,GACA40N,EAAAjsC,OAAA3oL,EAAA+hB,OAAA/hB,EAAAgiB,QAEAgmB,GAAA,SAAAy6H,EAAAhoG,GACA,IAAAoyD,EAAAynG,GAAA75J,GACAo6J,EAAA91I,GAAA8tC,EAAArnH,UAAA,YAAAi9J,EAAAC,WACAoyD,EAAA/1I,GAAA8tC,EAAArnH,UAAA,UAAAi9J,EAAAE,MACAoyD,EAAAh2I,GAAA8tC,EAAArnH,UAAA,YAAAi9J,EAAAzlH,MACAg4K,EAAAj2I,GAAA8tC,EAAArnH,UAAA,WAAAi9J,EAAAG,WACAh+E,EAAA,WACAioC,EAAAjoC,UACAkwI,EAAAh2I,SACAi2I,EAAAj2I,SACAk2I,EAAAl2I,SACA+1I,EAAA/1I,UAEA17E,EAAA,SAAAgM,GACAe,GAAAf,EAAAy9G,EAAArnH,YAEAsG,EAAA,WACA+P,GAAAgxG,EAAArnH,YAEA,OAAAivN,GAAA,CACAjvN,QAAAqnH,EAAArnH,QACApC,QACA0I,OACA84E,aAGAqwI,GAAAT,GAAA,CACAG,WACAt+N,QAAA48K,GACAjrI,QACA2gJ,YAGA7sH,GAAA,SAAA13E,EAAAq3E,GACA,IAAAC,EAAA,KACAC,EAAA,WACA,OAAAD,IACAv4E,EAAAy4E,aAAAF,GACAA,EAAA,OAGAG,EAAA,WAEA,IADA,IAAAn4E,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,OAAA+3E,GACAv4E,EAAAy4E,aAAAF,GAEAA,EAAAv4E,EAAA83E,WAAA,WACA72E,EAAAN,MAAA,KAAAJ,GACAg4E,EAAA,MACSD,IAET,OACAE,SACAE,aAIA,SAAAq5J,KACA,IAAAnxD,EAAA56K,EAAArC,OACAikK,EAAA,WACAgZ,EAAA56K,EAAArC,QAEAgkD,EAAA,SAAAR,EAAA56C,GACA,IAAAsC,EAAA+xK,EAAA97K,IAAA,SAAAwH,GACA,OAAA66C,EAAAqqL,QAAAllO,EAAAC,KAGA,OADAq0K,EAAA56K,EAAAP,KAAA8G,GACAsC,GAEA4gG,EAAA,SAAA9rF,EAAAwjC,GACA,IAAA6qL,EAAA7qL,EAAAj0C,QAAAyQ,GACAquN,EAAAjtO,KAAA,SAAA0iB,GACA,IAAAka,EAAAgmB,EAAAR,EAAA1/B,GACAka,EAAA58B,KAAA,SAAA2mB,GACAiE,EAAAohN,QAAAl3K,KAAAnuC,QAIAiE,EAAA6hE,GAAA7oD,OAAA,CAAkCkxB,KAAAi3K,GAAA,YAClC,OACArhI,UACAm4D,QACAj4I,SAAA+uD,UAIA,SAAAuzJ,KACA,OACAxiI,QAAAxvG,EACA2nK,MAAA3nK,GAIA,SAAAiyO,KACA,IAAAC,EAAAF,KACAG,EAAAL,KACAhzD,EAAAozD,EACAzhM,EAAA,WACAquI,EAAAnX,QACAmX,EAAAqzD,GAEA/zL,EAAA,WACA0gI,EAAAnX,QACAmX,EAAAozD,GAEA1iI,EAAA,SAAA9rF,EAAAwjC,GACA43H,EAAAtvE,QAAA9rF,EAAAwjC,IAEAof,EAAA,WACA,OAAAw4G,IAAAqzD,GAEA,OACA1hM,KACA2N,MACAkoB,OACAkpC,UACA9/E,OAAAyiN,EAAAziN,QAIA,IAAA4+C,GAAA,SAAAkjK,EAAAtqL,EAAAmwB,GACA,IAAA1uC,GAAA,EACAjZ,EAAA6hE,GAAA7oD,OAAA,CACA1oB,MAAA6wN,GAAA,IACAnoN,KAAAmoN,GAAA,MAEAl3K,EAAAs4K,KACA1yD,EAAA,WACA36H,EAAAl8B,OACAixC,EAAA2M,SACA3M,EAAAvb,MACA1uB,EAAAohN,QAAApoN,SAGA0pN,EAAA15J,GAAA6mG,EAAA,KACA9+H,EAAA,SAAAz0B,GACA44B,EAAA5kC,MAAAgM,GACA2tC,EAAAlpB,KACA/gB,EAAAohN,QAAA9wN,SAEA2E,EAAA,SAAAjB,GACA0uN,EAAA75J,SACA5e,EAAA61C,QAAA9rF,EAAAwjC,IAEAyS,EAAAjqC,OAAAkqC,KAAA70D,KAAA,SAAA2e,GACAwjC,EAAAq+I,OAAAisC,EAAA9tN,EAAA9G,UAEA,IAAA6zB,EAAA,WACA9H,GAAA,GAEAyV,EAAA,WACAzV,GAAA,GAEA0pM,EAAA,SAAAnyO,GACA,kBAEA,IADA,IAAAI,EAAA,GACAC,EAAA,EAA0BA,EAAAC,UAAAC,OAAuBF,IACjDD,EAAAC,GAAAC,UAAAD,GAEAooC,GACAzoC,EAAAQ,MAAA,KAAAJ,KAIAskD,EAAAsC,EAAAtC,KAAA0sL,GAAA,CACAhyD,UAAAC,EACAA,KAAA8yD,EAAA9yD,GACA3lH,KAAAy4K,EAAA1tN,GACA66J,UAAA6yD,EAAAD,EAAA35J,YACOpB,GACPmqB,EAAA,WACA58C,EAAA48C,WAEA,OACAp/E,QAAAwiC,EAAAxiC,QACAq+B,KACAhQ,KACA2N,MACAojD,UACA9xE,SAAA+uD,WAGA0iG,GAAA,CAAoB7yG,UAEpB80F,GAAA,SAAAouE,EAAAn6J,QACA,IAAAA,IACAA,EAAA,IAEA,IAAAnwB,OAAAxiD,IAAA2yE,EAAAnwB,KAAAmwB,EAAAnwB,KAAA2qL,GACA,OAAA1wD,GAAA7yG,MAAAkjK,EAAAtqL,EAAAmwB,IAEAi7J,GAAA,CAAmBrpN,UAAAm6I,IAEnBmvE,GAAA,WACA,IAAA7iN,EAAA6hE,GAAA7oD,OAAA,CACA0+F,KAAAypG,GAAA,CACA,SACA,aAGAtrC,EAAA,SAAAzkM,EAAAyZ,GACAmV,EAAAohN,QAAA1pG,KAAAtmI,EAAAyZ,IAEA,OACAgrL,SACA71K,SAAA+uD,WAIA+zJ,GAAA,WACA,IAAA9iN,EAAA6hE,GAAA7oD,OAAA,CACA0+F,KAAAypG,GAAA,CACA,SACA,SACA,aAGAhlO,EAAA9F,EAAArC,OACAsQ,EAAAu+N,KACAv+N,EAAA0b,OAAA03G,KAAAriI,KAAA,SAAA2e,GACA7X,EAAA/G,KAAA,SAAA3C,GACAutB,EAAAohN,QAAA1pG,KAAA1jH,EAAA2oB,SAAA3oB,EAAA4oB,SAAAnqC,OAGA,IAAAD,EAAA,SAAAC,GACA0J,EAAA9F,EAAAP,KAAArD,IAEAyI,EAAA,WACA,OAAAiB,GAEA,OACA3J,SACA0I,MACA26L,OAAAvxL,EAAAuxL,OACA71K,SAAA+uD,WAIAkhE,GAAA,SAAAtlE,GACA,eAAAtsD,GAAAssD,EAAA,oBAEAo4J,GAAA,SAAA5mO,EAAAic,GACA,OAAAkB,GAAAnd,EAAA,oBAAAic,IAGA4qN,GAAAphB,GAAAvvN,QAAA,wBACA4wO,GAAA,SAAA5gB,EAAAhkL,EAAA6kL,GACA,IAAA4e,EAAAgB,KACAI,EAAAN,GAAArpN,UAAAuoN,EAAA,IACAqB,EAAA9sO,EAAArC,OACAovO,EAAA,SAAA1wN,EAAAjb,GACA,OAAApB,EAAAD,KAAAioB,GAAA3L,EAAAjb,KAEAqqO,EAAA9hN,OAAA03G,KAAAriI,KAAA,SAAA2e,GACAovN,EAAApvN,EAAA7X,SAAA,YAAA/G,KAAA,SAAAiuO,GACA,IAAAn0B,EAAAsc,GAAAD,OAAAv3M,EAAA7X,SAAA,OACA8iB,GAAAjL,EAAA7X,SAAA,MAAA+yM,EAAAl7L,EAAA4oB,SAAA,QAEAwmM,EAAApvN,EAAA7X,SAAA,eAAA/G,KAAA,SAAAkuO,GACA,IAAAC,EAAA/X,GAAAD,OAAAv3M,EAAA7X,SAAA,QACA8iB,GAAAjL,EAAA7X,SAAA,OAAAonO,EAAAvvN,EAAA2oB,SAAA,UAGA,IAAAsmB,EAAA,SAAA9mD,EAAAmgE,GACA,IAAAzvB,EAAA2+K,GAAAD,OAAApvN,EAAAmgE,GACAknK,EAAAt1M,SAAA7P,GAAAliB,EAAA,gBAAAmgE,GAAA,IACA,OAAAzvB,EAAA22L,GAEAN,EAAAljN,OAAAhH,KAAA3jB,KAAA,WACAysO,EAAA5mO,MAAA9F,KAAA,SAAA+G,GACAgnO,EAAA/tO,KAAA,SAAA81I,GACAk4F,EAAAjnO,EAAA,YAAA/G,KAAA,SAAAm2D,GACA,IAAAhf,EAAA0W,EAAA9mD,EAAA,OACA6hB,GAAA7hB,EAAA,oBACA6jB,EAAAohN,QAAAlT,aAAAhjF,EAAA3+F,EAAAre,SAAAq9B,EAAA,OAEA63K,EAAAjnO,EAAA,eAAA/G,KAAA,SAAAo2D,GACA,IAAAjf,EAAA0W,EAAA9mD,EAAA,QACA6hB,GAAA7hB,EAAA,qBACA6jB,EAAAohN,QAAApT,YAAA9iF,EAAA3+F,EAAAre,SAAAs9B,EAAA,OAEAg4J,GAAA9lJ,QAAA2kJ,EAAAn3E,EAAAg4E,EAAA7kL,SAIA,IAAAhqB,EAAA,SAAAlY,EAAAmgE,GACAt8C,EAAAohN,QAAAqC,cACA3B,EAAAtvO,OAAA2J,GACAoN,GAAApN,EAAA,gBAAAmgE,EAAApuC,SAAA9O,GAAAjjB,EAAAmgE,GAAA,KACAhzC,GAAAntB,EAAA6mO,IACA/jN,GAAA9iB,EAAA,iBACA+mO,EAAAnyL,GAAAsxK,EAAA/lM,WAEAtH,EAAAi3E,GAAAo2H,EAAA/lM,SAAA,qBAAAtI,GACAwvM,GAAAF,SAAAtvM,EAAA7X,WACAkY,EAAAL,EAAA7X,SAAA,OAEAqnN,GAAAD,SAAAvvM,EAAA7X,WACAkY,EAAAL,EAAA7X,SAAA,UAGAic,EAAA,SAAAjlB,GACA,OAAAe,GAAAf,EAAAkvN,EAAA5wL,SAEAiyM,EAAA,SAAAvnO,GACA,OAAAmd,GAAAnd,EAAA,QAAAic,GAAA5iB,OAAA,SAAA01I,GACA,OAAA63F,GAAA73F,EAAA9yH,GAAA9iB,OAAA26I,OAGA76H,EAAA62E,GAAAo2H,EAAA5wL,OAAA,qBAAAzd,GACA0vN,EAAA1vN,EAAA7X,UAAA3H,KAAA,WACAkkB,GAAA1E,EAAA7X,WACAqnN,GAAA1xH,QAAAuwH,IAES,SAAAn3E,GACTi4F,EAAA9sO,EAAAP,KAAAo1I,GACAs4E,GAAA9lJ,QAAA2kJ,EAAAn3E,EAAAg4E,EAAA7kL,OAGAyzD,EAAA,WACA98E,EAAAg3E,SACA52E,EAAA42E,SACAk3I,EAAApxI,UACA0xH,GAAA1xH,QAAAuwH,IAEA3kJ,EAAA,SAAA47I,GACAkK,GAAA9lJ,QAAA2kJ,EAAA/I,EAAA4J,EAAA7kL,IAEAre,EAAA6hE,GAAA7oD,OAAA,CACAk1L,aAAAiT,GAAA,CACA,QACA,QACA,QAEAnT,YAAAmT,GAAA,CACA,QACA,QACA,WAEAsC,YAAAtC,GAAA,MAEA,OACArvI,UACAp0B,UACA38B,GAAAmiM,EAAAniM,GACA2N,IAAAw0L,EAAAx0L,IACAi1L,SAAAtyO,EAAAmyN,GAAAngJ,KAAAg/I,GACAuhB,SAAAvyO,EAAAmyN,GAAAxxI,KAAAqwI,GACAriM,SAAA+uD,WAIAnuC,GAAA,SAAAyhL,EAAAc,GACA,IAAAD,EAAA7D,GAAA3wL,OACAuE,EAAAgwM,GAAA5gB,EAAAc,EAAAD,GACAljM,EAAA6hE,GAAA7oD,OAAA,CACA6qM,aAAA1C,GAAA,WACA2C,YAAA3C,GAAA,WACA4C,UAAA5C,GAAA,MAiBA,OAfAluM,EAAAjT,OAAAkuM,aAAA74N,KAAA,SAAA2e,GACAgM,EAAAohN,QAAAyC,aAAA7vN,EAAAk3H,SACA,IAAA3+F,EAAA22K,EAAA32K,MAAAv4B,EAAAu4B,QAAAv4B,EAAAk3H,SACAqjF,GAAAL,aAAAl6M,EAAAk3H,QAAA3+F,EAAAv4B,EAAAu3C,MAAA23J,GACAljM,EAAAohN,QAAA0C,YAAA9vN,EAAAk3H,WAEAj4G,EAAAjT,OAAAyjN,YAAApuO,KAAA,SAAA2e,GACAgM,EAAAohN,QAAA2C,cAEA9wM,EAAAjT,OAAAguM,YAAA34N,KAAA,SAAA2e,GACAgM,EAAAohN,QAAAyC,aAAA7vN,EAAAk3H,SACA,IAAA3+F,EAAA42K,EAAA52K,MAAAv4B,EAAAu4B,QAAAv4B,EAAAk3H,SACAqjF,GAAAP,YAAAh6M,EAAAk3H,QAAA3+F,EAAAv4B,EAAAw3C,SAAA23J,GACAnjM,EAAAohN,QAAA0C,YAAA9vN,EAAAk3H,WAEA,CACAnqG,GAAA9N,EAAA8N,GACA2N,IAAAzb,EAAAyb,IACAi1L,SAAA1wM,EAAA0wM,SACAC,SAAA3wM,EAAA2wM,SACA9xI,QAAA7+D,EAAA6+D,QACA9xE,SAAA+uD,WAGAi1J,GAAA,CAAuBhrM,OAAA4H,IAEvBqjM,GAAA,WACA,IAAAplN,EAAA9T,GAAAX,QAAA,OAUA,OATAigB,GAAAxL,EAAA,CACA2T,SAAA,SACA9D,OAAA,IACAiC,MAAA,IACA6oM,QAAA,IACAvpJ,OAAA,IACAgoG,OAAA,MAEA56J,GAAAxE,KAAAgG,GACAA,GAEA2gB,GAAA,SAAAsnC,EAAAjoD,GACA,OAAAioD,EAAAytB,OAAA2sI,GAAAroN,KAAAs6M,GAAArsJ,GAAAm9J,MAAA/C,GAAA5W,KAAAv/M,GAAAZ,QAAA28D,EAAA0D,YAEA1/C,GAAA,SAAAg8C,EAAAu7I,GACAv7I,EAAAytB,QACAxrE,GAAAs5L,EAAA/lM,WAGA4nN,GAAA,CACAhpO,IAAAskC,GACAxhB,OAAA8M,IAGAq5M,GAAA,SAAAzxN,EAAA4J,GACA,OAAA82M,GAAA1gN,EAAAhI,OAAA0oN,GAAA92M,EAAA5R,OAAA,SAEA05N,GAAA,SAAAC,GACA,IAAAn5F,EAAAngI,GAAAZ,QAAAk6N,GACA/nN,GAAA4uH,GAAA/1I,IAAA,SAAAmnB,GACA,OAAA6nN,GAAAj5F,EAAA5uH,KACOlnB,KAAA,SAAAkvO,GACPrlN,GAAAisH,EAAA,QAAAo5F,GACAlvO,EAAA+6E,GAAA+6D,EAAA,eAAAk1E,GACAhrN,EAAAqnB,GAAA2jM,GAAA,SAAApuC,GACA/yJ,GAAA+yJ,EAAA,QAAAmyD,GAAAnyD,EAAAouC,WAKAmkB,GAAA,SAAAr5F,GACAjsH,GAAAlU,GAAAZ,QAAA+gI,GAAA,QAAAkoF,GAAAloF,GAAAt1I,WAAA,OAGA4uO,GAAA,SAAA19J,GACA,IAIA29J,EACAC,EALAC,EAAAtuO,EAAArC,OACA4qH,EAAAvoH,EAAArC,OACAquN,EAAAhsN,EAAArC,OACA2oN,EAAA,iBAGAioB,EAAA,SAAAj6J,GACA,gBAAAA,EAAAryD,UAEA8kM,EAAA,SAAAzyI,GACA,IAAA//C,EAAAk8C,EAAAp8D,IAAAqoF,SAAApoB,EAAA,UAAA7D,EAAAp8D,IAAA+3L,UAAA93H,EAAA,SACA,OAAAt0E,EAAAD,KAAAw0B,GAAAp1B,OAAA,SAAA9C,GACA,OAAAA,EAAA3B,OAAA,KAGA8zO,EAAA,WACA,OAAAjmH,GAEA+2G,EAAA,WACA,OAAAtT,EAAA1tN,MAAAusO,GAAA5W,KAAAv/M,GAAAZ,QAAA28D,EAAAhuD,cAEAg5E,EAAA,WACA8sB,EAAAxpH,KAAA,SAAA0vO,GACAA,EAAAhzI,YAEAuwH,EAAAjtN,KAAA,SAAAk9B,GACA4xM,GAAAlmN,OAAA8oD,EAAAx0C,MAiFA,OA9EAw0C,EAAA/lC,GAAA,kBACA,IAAA1C,EAAAkhL,GAAAqU,GAAApU,aACAulB,EAAAb,GAAAhpO,IAAA4rE,GAEA,GADAu7I,EAAAhsN,EAAAP,KAAAivO,GACA7P,GAAApuJ,IAAAqtJ,GAAArtJ,GAAA,CACA,IAAAg+J,EAAAd,GAAAhrM,OAAA+rM,EAAA1mM,GACAymM,EAAA/jM,KACA+jM,EAAA9kN,OAAA+jN,UAAA1uO,KAAA,SAAA2e,GACA2wN,EAAAtuO,EAAAP,KAAAgxE,EAAA5kC,UAAAkrC,YAEA03J,EAAA9kN,OAAA6jN,aAAAxuO,KAAA,SAAA2e,GACA,IAAAqwN,EAAArwN,EAAAk3H,QAAAxgI,MACA4qN,GAAAxuJ,EAAAu9J,EAAAjR,GAAAiR,GAAAhR,GAAAgR,MAEAS,EAAA9kN,OAAA8jN,YAAAzuO,KAAA,SAAA2e,GACA,IAAAk3H,EAAAl3H,EAAAk3H,QACAm5F,EAAAn5F,EAAAxgI,MACA8oN,GAAAtoF,GACAy5F,EAAAvvO,KAAA,SAAA+sC,GACA2kC,EAAA5kC,UAAA2nI,OAAA1nI,GACA2kC,EAAA/wD,UAEAw/M,GAAAzuJ,EAAAu9J,EAAAjR,GAAAiR,GAAAhR,GAAAgR,IACAv9J,EAAAob,YAAAp5D,QAEA81F,EAAAvoH,EAAAP,KAAAgvO,MAGAh+J,EAAA/lC,GAAA,6BAAA5tC,GACA,IAAAqxK,EAAArxK,EAAAgJ,OACA,GAAAyoO,EAAApgE,GAAA,CACA,IAAAwgE,EAAA5nB,EAAA54C,GAAArvK,IAAA,SAAAm9B,GACA,OAAAqqL,EAAAnxM,KAAA8mB,KACW39B,OAAA,GACXqwO,GAAAjQ,GAAAjuJ,GACAy9J,GAAA//D,IACWwgE,GAAAlQ,GAAAhuJ,IACXs9J,GAAA5/D,GAEAigE,EAAAtxO,EAAAw9B,MACA+zM,EAAAtnB,EAAA54C,GAAA7vK,MAAA,OAGAmyE,EAAA/lC,GAAA,yBAAA5tC,GACA,IAAAqxK,EAAArxK,EAAAgJ,OACA,GAAAyoO,EAAApgE,GAAA,CACA,IAAAt5B,EAAAs5B,EACA,GAAAm4C,EAAAnxM,KAAAk5N,GAAA,CACA,IAAAO,EAAAj3M,WAAA2uL,EAAA1/H,KAAAynJ,GAAA,IACAQ,EAAA/xO,EAAAw9B,MAAAs0M,EAAAR,EACA39J,EAAAp8D,IAAAqxL,SAAA7wD,EAAA,QAAAg6F,EAAA,SACW,CACX,IAAAC,EAAA,GACAlzO,GAAAmD,KAAA81I,EAAAx6E,KAAA,SAAAnF,GACAt5D,GAAAmD,KAAAm2D,EAAAqwB,MAAA,SAAA/sB,GACA,IAAAl+B,EAAAm2C,EAAAp8D,IAAAqoF,SAAAlkC,EAAA,YACAs2K,EAAA5sO,KAAA,CACAs2D,OACAl+B,cAIA1+B,GAAAmD,KAAA+vO,EAAA,SAAAC,GACAt+J,EAAAp8D,IAAAqxL,SAAAqpC,EAAAv2K,KAAA,QAAAu2K,EAAAz0M,OACAm2C,EAAAp8D,IAAA2vN,UAAA+K,EAAAv2K,KAAA,oBAKAiY,EAAA/lC,GAAA,wBACA8jM,IAAAzvO,KAAA,SAAAwpH,GACA93C,EAAA21E,SACA79B,EAAA+kH,WAEA/kH,EAAAglH,eAIA,CACAiB,aACAlP,WACA7jI,YAIApvF,GAAAlG,GAAAnB,SAAA,CACA,CAAOrH,KAAA,aACP,CAAOsyC,MAAA,aACP,CACAnP,OAAA,CACA,UACA,WAGA,CAAO78B,KAAA,eAEP+qO,GAAA,SAAAv4N,GAIA,YAHA,IAAAA,IACAA,OAAA9X,GAEA0N,GAAA1O,KAAA8Y,IAEAw4N,GAAAhzO,MAAA,GAA2CoQ,IAAA,CAAW1O,KAAAqxO,KAEtD/6J,GAAA,SAAAx9D,EAAAsL,GACA,OAAA81L,GAAAhjE,MAAAp+H,EAAAsL,GAAA/iB,KAAA,SAAA61I,GACA,IAAAz5I,EAAAy8M,GAAAtyH,MAAAsvD,GACAvuH,EAAAjjB,EAAAjI,EAAA,SAAAL,GACA,OAAA8C,GAAA4Y,EAAA1b,KAEA,OAAAurB,EAAAxnB,IAAA,SAAAmgN,GACA,OACA34L,MAAA1rB,EAAAqkN,GACA7jN,IAAAR,EAAAQ,SAKAyV,GAAA,SAAA4F,EAAAsL,GACA,IAAA2pJ,EAAAz3F,GAAAx9D,EAAAsL,GACA,OAAA2pJ,EAAAvtK,KAAA,WACA,OAAA8wO,GAAAtxO,KAAA8Y,IACO,SAAAI,GACP,OAAAA,EAAAyP,QAAA,EAAAzP,EAAAzb,MAAAV,OAAAu0O,GAAAnuM,OAAArqB,EAAAI,EAAAzb,MAAAyb,EAAAyP,QAAA,IAAA2oN,GAAAhrO,KAAAwS,MAGAq9D,GAAA,SAAAr9D,EAAAsL,GACA,IAAA2pJ,EAAAz3F,GAAAx9D,EAAAsL,GACA,OAAA2pJ,EAAAvtK,KAAA,WACA,OAAA8wO,GAAAtxO,QACO,SAAAkZ,GACP,OAAAA,EAAAyP,QAAA,KAAA2oN,GAAAnuM,OAAArqB,EAAAI,EAAAzb,MAAAyb,EAAAyP,QAAA,IAAA2oN,GAAAh/L,MAAAx5B,MAGAy4N,GAAA,CACAr+N,QACAijE,SAGAxjB,GAAAvrC,EAAA,sCACAylB,GAAA,CAAoB7H,OAAA2tB,IAEpBnwB,GAAAh6B,GAAAnB,SAAA,CACA,CAAO0hB,OAAA,aACP,CACAgkB,GAAA,CACA,UACA,WAGA,CAAO5jB,MAAA,eAEP2hB,GAAA,SAAAzT,EAAA4V,EAAAC,EAAAC,GACA,OAAA9V,EAAA72B,KAAAysC,EAAAC,EAAAC,IAEAC,GAAA,SAAAC,GACA,OAAAA,EAAA7sC,KAAArD,QAEAmwC,GAAA9K,GAAAzZ,OACAgkB,GAAAvK,GAAAuK,GACA0G,GAAAjR,GAAArZ,MACAqkB,GAAA,CACAzkB,OAAAukB,GACAP,MACA5jB,MAAAsqB,GACAxQ,KAAA6H,GACAsC,aAGA1D,GAAAlhC,GAAAnB,SAAA,CACA,CAAOqmC,SAAA,SACP,CACA/D,SAAA,CACA,YACA,eAGA,CACAgE,MAAA,CACA,QACA,UACA,SACA,cAIAC,GAAA,SAAAC,GACA,OAAAnE,GAAAiE,MAAAE,EAAAvxB,QAAAuxB,EAAAC,UAAAD,EAAAE,SAAAF,EAAAG,YAEAC,GAAA,SAAAC,GACA,OAAAA,EAAArmC,MAAA,CACA6lC,SAAA,SAAAS,GACA,OAAAp3B,GAAAZ,QAAAg4B,EAAAC,iBAEAzE,SAAA,SAAA0E,EAAAC,GACA,OAAAd,GAAAJ,SAAAiB,IAEAV,MAAA,SAAArxB,EAAAwxB,EAAAC,EAAAC,GACA,OAAA1xB,MAIAoxB,GAAAhE,GAAAgE,SACA/D,GAAAD,GAAAC,SACAgE,GAAAjE,GAAAiE,MACAa,GAAA,SAAAN,GACA,IAAA5xB,EAAA2xB,GAAAC,GACA,OAAA7lB,GAAA/L,IAEAmyB,GAAA5B,GAAA7H,OACA0J,GAAA,CACAhB,YACA/D,YACAgE,SACAC,kBACAY,UACA5pC,MAAA6pC,IAGA+iM,GAAA,SAAA/1M,EAAA/c,GACA,IAAAyvB,EAAA1S,EAAA5lB,SAAAs5B,cAEA,OADAsiM,GAAAtjM,EAAAzvB,GACAyvB,GAEAsjM,GAAA,SAAAtjM,EAAAzvB,GACAyvB,EAAAqjM,mBAAA9yN,EAAAhI,QAEAi4B,GAAA,SAAAR,EAAAd,GACAA,EAAA7sC,KAAA,SAAArB,GACAgvC,EAAAS,eAAAzvC,EAAAuX,QACO,SAAAvX,EAAAgB,GACPguC,EAAAQ,SAAAxvC,EAAAuX,MAAAvW,IACO,SAAAhB,GACPgvC,EAAAU,cAAA1vC,EAAAuX,UAGAo4B,GAAA,SAAAX,EAAAd,GACAA,EAAA7sC,KAAA,SAAArB,GACAgvC,EAAAY,aAAA5vC,EAAAuX,QACO,SAAAvX,EAAAgB,GACPguC,EAAAa,OAAA7vC,EAAAuX,MAAAvW,IACO,SAAAhB,GACPgvC,EAAAc,YAAA9vC,EAAAuX,UAGAw4B,GAAA,SAAAzT,EAAA4S,EAAAC,GACA,IAAA1pC,EAAA62B,EAAA5lB,SAAAs5B,cAGA,OAFAR,GAAA/pC,EAAAypC,GACAS,GAAAlqC,EAAA0pC,GACA1pC,GAEAwqC,GAAA,SAAA3T,EAAAnf,EAAAwxB,EAAAC,EAAAC,GACA,IAAAG,EAAA1S,EAAA5lB,SAAAs5B,cAGA,OAFAhB,EAAAQ,SAAAryB,EAAA5F,MAAAo3B,GACAK,EAAAa,OAAAjB,EAAAr3B,MAAAs3B,GACAG,GAEAkB,GAAA,SAAAlR,GACA,OACAlD,KAAAh+B,EAAAkhC,EAAAlD,MACAC,IAAAj+B,EAAAkhC,EAAAjD,KACA0B,MAAA3/B,EAAAkhC,EAAAvB,OACAC,OAAA5/B,EAAAkhC,EAAAtB,QACAF,MAAA1/B,EAAAkhC,EAAAxB,OACAjC,OAAAz9B,EAAAkhC,EAAAzD,UAGA4U,GAAA,SAAAnB,GACA,IAAAoB,EAAApB,EAAAqB,iBACArR,EAAAoR,EAAAxyC,OAAA,EAAAwyC,EAAA,GAAApB,EAAA1T,wBACA,OAAA0D,EAAAxB,MAAA,GAAAwB,EAAAzD,OAAA,EAAAr4B,EAAAP,KAAAq8B,GAAAh9B,IAAAkuC,IAAAhtC,EAAArC,QAGA8sC,GAAAtkC,GAAAnB,SAAA,CACA,CACAskC,IAAA,CACA,QACA,UACA,SACA,YAGA,CACAI,IAAA,CACA,QACA,UACA,SACA,cAIA2D,GAAA,SAAAjU,EAAAh4B,EAAAmB,GACA,OAAAnB,EAAAsT,GAAAZ,QAAAvR,EAAAwpC,gBAAAxpC,EAAA+qC,YAAA54B,GAAAZ,QAAAvR,EAAAgrC,cAAAhrC,EAAAirC,YAEAC,GAAA,SAAArU,EAAAyS,GACA,OAAAA,EAAArmC,MAAA,CACA6lC,SAAA,SAAAS,GACA,OACAxC,IAAA1uC,EAAAkxC,GACApC,IAAA1pC,EAAArC,OAGA2pC,SAAA,SAAA0E,EAAAC,GACA,OACA3C,IAAAriC,GAAA,WACA,OAAA4lC,GAAAzT,EAAA4S,EAAAC,KAEAvC,IAAAziC,GAAA,WACA,OAAAjH,EAAAP,KAAAotC,GAAAzT,EAAA6S,EAAAD,QAIAV,MAAA,SAAArxB,EAAAwxB,EAAAC,EAAAC,GACA,OACArC,IAAAriC,GAAA,WACA,OAAA8lC,GAAA3T,EAAAnf,EAAAwxB,EAAAC,EAAAC,KAEAjC,IAAAziC,GAAA,WACA,OAAAjH,EAAAP,KAAAstC,GAAA3T,EAAAsS,EAAAC,EAAA1xB,EAAAwxB,WAMAiC,GAAA,SAAAtU,EAAAuU,GACA,IAAA7B,EAAA6B,EAAArE,MACA,GAAAwC,EAAA8B,UAAA,CACA,IAAAC,EAAAF,EAAAjE,MAAAvqC,OAAA,SAAA2uC,GACA,WAAAA,EAAAF,YAEA,OAAAC,EAAA/uC,IAAA,SAAAgvC,GACA,OAAArD,GAAAf,IAAAh1B,GAAAZ,QAAAg6B,EAAAP,cAAAO,EAAAN,UAAA94B,GAAAZ,QAAAg6B,EAAA/B,gBAAA+B,EAAAR,eACS/uC,WAAA,WACT,OAAA8uC,GAAAjU,EAAAqR,GAAAnB,IAAAwC,KAGA,OAAAuB,GAAAjU,EAAAqR,GAAAnB,IAAAwC,IAGAiC,GAAA,SAAA3U,EAAAyS,GACA,IAAA8B,EAAAF,GAAArU,EAAAyS,GACA,OAAA6B,GAAAtU,EAAAuU,IAEAK,GAAA,SAAA5U,EAAAyS,GACA,IAAAoC,EAAAF,GAAA3U,EAAAyS,GACA,OAAAoC,EAAAzoC,MAAA,CACA8jC,IAAA,SAAArvB,EAAAwxB,EAAAC,EAAAC,GACA,IAAAG,EAAA1S,EAAA5lB,SAAAs5B,cAGA,OAFAhB,EAAAQ,SAAAryB,EAAA5F,MAAAo3B,GACAK,EAAAa,OAAAjB,EAAAr3B,MAAAs3B,GACAG,GAEApC,IAAA,SAAAzvB,EAAAwxB,EAAAC,EAAAC,GACA,IAAAG,EAAA1S,EAAA5lB,SAAAs5B,cAGA,OAFAhB,EAAAQ,SAAAZ,EAAAr3B,MAAAs3B,GACAG,EAAAa,OAAA1yB,EAAA5F,MAAAo3B,GACAK,MAKAoC,GAAA,SAAAC,EAAApzC,EAAAyZ,EAAA45B,EAAA1zC,GACA,OAAAA,EACA,SACO,GAAAK,IAAAqzC,EACP,OAAA1zC,EAAA,EAGA,IADA,IAAA4rC,EAAA8H,EACA9xC,EAAA,EAAqBA,EAAA5B,EAAY4B,IAAA,CACjC,IAAAw/B,EAAAqS,EAAA7xC,GACA+xC,EAAA/jB,KAAAgkB,IAAAvzC,EAAA+gC,EAAAlD,MACA,GAAApkB,GAAAsnB,EAAAtB,OAAA,CACA,GAAAhmB,EAAAsnB,EAAAjD,KAAAwV,EAAA/H,EACA,OAAAhqC,EAAA,EAEAgqC,EAAA+H,GAIA,UAEAE,GAAA,SAAAzS,EAAA/gC,EAAAyZ,GACA,OAAAzZ,GAAA+gC,EAAAlD,MAAA79B,GAAA+gC,EAAAvB,OAAA/lB,GAAAsnB,EAAAjD,KAAArkB,GAAAsnB,EAAAtB,QAGAqU,GAAA,SAAAt7B,EAAAu7B,EAAA/zC,EAAAyZ,EAAAsnB,GACA,IAAAiT,EAAA,SAAAjxC,GACA,IAAAV,EAAAmW,EAAAc,MAAAy4B,cAGA,OAFA1vC,EAAAkvC,SAAAwC,EAAAz6B,MAAAvW,GACAV,EAAA4xC,UAAA,GACA5xC,GAEA+wC,EAAA,SAAArwC,GACA,IAAAV,EAAA2xC,EAAAjxC,GACA,OAAAV,EAAAg7B,yBAEA19B,EAAAm4B,GAAAic,GAAAp0C,OACAihC,EAAAuS,GAAAC,EAAApzC,EAAAyZ,EAAAsnB,EAAAvB,MAAA7/B,GACA,OAAAq0C,EAAApT,IAEAsT,GAAA,SAAA17B,EAAAU,EAAAlZ,EAAAyZ,GACA,IAAApX,EAAAmW,EAAAc,MAAAy4B,cACA1vC,EAAA8xC,WAAAj7B,EAAAI,OACA,IAAA64B,EAAA9vC,EAAA+vC,iBACAgC,EAAA/R,GAAA8P,EAAA,SAAApR,GACA,OAAAyS,GAAAzS,EAAA/gC,EAAAyZ,GAAAxU,EAAAP,KAAAq8B,GAAA97B,EAAArC,SAEA,OAAAwxC,EAAArwC,IAAA,SAAAg9B,GACA,OAAA+S,GAAAt7B,EAAAU,EAAAlZ,EAAAyZ,EAAAsnB,MAIAsT,GAAA,SAAA77B,EAAAU,EAAAlZ,EAAAyZ,GACA,IAAApX,EAAAmW,EAAAc,MAAAy4B,cACAuC,EAAAjpB,GAAAnS,GACA,OAAAmpB,GAAAiS,EAAA,SAAA9yC,GAEA,OADAa,EAAA8xC,WAAA3yC,EAAA8X,OACAk6B,GAAAnxC,EAAAg7B,wBAAAr9B,EAAAyZ,GAAA86B,GAAA/7B,EAAAhX,EAAAxB,EAAAyZ,GAAAxU,EAAArC,UAGA2xC,GAAA,SAAA/7B,EAAAU,EAAAlZ,EAAAyZ,GACA,OAAA4N,GAAAnO,GAAAg7B,GAAA17B,EAAAU,EAAAlZ,EAAAyZ,GAAA46B,GAAA77B,EAAAU,EAAAlZ,EAAAyZ,IAEA+6B,GAAA,SAAAh8B,EAAAU,EAAAlZ,EAAAyZ,GACA,IAAApX,EAAAmW,EAAAc,MAAAy4B,cACA1vC,EAAA8xC,WAAAj7B,EAAAI,OACA,IAAAynB,EAAA1+B,EAAAg7B,wBACAoX,EAAAllB,KAAAyN,IAAA+D,EAAAlD,KAAAtO,KAAAmlB,IAAA3T,EAAAvB,MAAAx/B,IACA20C,EAAAplB,KAAAyN,IAAA+D,EAAAjD,IAAAvO,KAAAmlB,IAAA3T,EAAAtB,OAAAhmB,IACA,OAAA86B,GAAA/7B,EAAAU,EAAAu7B,EAAAE,IAGAU,IAAA,EACAC,IAAA,EACAC,GAAA,SAAAxU,EAAA/gC,GACA,OAAAA,EAAA+gC,EAAAlD,KAAAkD,EAAAvB,MAAAx/B,EAAAq1C,GAAAC,IAEAE,GAAA,SAAAh9B,EAAAzN,EAAA0qC,GACA,IAAApzC,EAAAmW,EAAAc,MAAAy4B,cAGA,OAFA1vC,EAAA8xC,WAAAppC,EAAAuO,OACAjX,EAAA4xC,SAAAwB,GACApzC,GAEAqzC,GAAA,SAAAl9B,EAAAU,EAAAlZ,GACA,IAAA21C,EAAAn9B,EAAAc,MAAAy4B,cACA4D,EAAAxB,WAAAj7B,EAAAI,OACA,IAAAynB,EAAA4U,EAAAtY,wBACAoY,EAAAF,GAAAxU,EAAA/gC,GACAZ,EAAAq2C,IAAAJ,GAAAH,GAAAC,GACA,OAAA/1C,EAAA8Z,GAAAnV,IAAA,SAAAgH,GACA,OAAAyqC,GAAAh9B,EAAAzN,EAAA0qC,MAGAG,GAAA,SAAAp9B,EAAAU,EAAAlZ,GACA,IAAA+gC,EAAA7nB,EAAAI,MAAA+jB,wBACAoY,EAAAF,GAAAxU,EAAA/gC,GACA,OAAAiF,EAAAP,KAAA8wC,GAAAh9B,EAAAU,EAAAu8B,KAEAh3B,GAAA,SAAAjG,EAAAU,EAAAlZ,GACA,IAAAZ,EAAA,IAAAisB,GAAAnS,GAAAvZ,OAAAi2C,GAAAF,GACA,OAAAt2C,EAAAoZ,EAAAU,EAAAlZ,IAGA81C,GAAA,SAAAt9B,EAAAxY,EAAAyZ,GACA,OAAAxU,EAAAD,KAAAwT,EAAAc,MAAAw8B,uBAAA91C,EAAAyZ,IAAAxV,KAAA,SAAAspC,GACA,UAAAA,EAAAwI,WACA,OAAA9wC,EAAArC,OAEA,IAAAP,EAAAmW,EAAAc,MAAAy4B,cAGA,OAFA1vC,EAAAkvC,SAAAhE,EAAAwI,WAAAxI,EAAA3M,QACAv+B,EAAA4xC,WACAhvC,EAAAP,KAAArC,MAGA2zC,GAAA,SAAAx9B,EAAAxY,EAAAyZ,GACA,OAAAxU,EAAAD,KAAAwT,EAAAc,MAAA08B,oBAAAh2C,EAAAyZ,KAEAw8B,GAAA,SAAAz9B,EAAAU,EAAAlZ,EAAAyZ,GACA,IAAApX,EAAAmW,EAAAc,MAAAy4B,cACA1vC,EAAA8xC,WAAAj7B,EAAAI,OACA,IAAAynB,EAAA1+B,EAAAg7B,wBACAoX,EAAAllB,KAAAyN,IAAA+D,EAAAlD,KAAAtO,KAAAmlB,IAAA3T,EAAAvB,MAAAx/B,IACA20C,EAAAplB,KAAAyN,IAAA+D,EAAAjD,IAAAvO,KAAAmlB,IAAA3T,EAAAtB,OAAAhmB,IACA,OAAA+6B,GAAAh8B,EAAAU,EAAAu7B,EAAAE,IAEAuB,GAAA,SAAA19B,EAAAxY,EAAAyZ,GACA,OAAAE,GAAAJ,UAAAf,EAAAxY,EAAAyZ,GAAAxV,KAAA,SAAAwd,GACA,IAAA/U,EAAA,WACA,OAAA+R,GAAAjG,EAAAiJ,EAAAzhB,IAEA,WAAAqrB,GAAA5J,GAAA9hB,OAAA+M,IAAAupC,GAAAz9B,EAAAiJ,EAAAzhB,EAAAyZ,GAAA3V,QAAA4I,MAGA4nO,GAAA77N,SAAAq9B,0BAAAr9B,SAAAu9B,uBAAAE,GACAq+L,GAAA,SAAAl2M,EAAAr+B,EAAAyZ,GACA,IAAAjB,EAAAmB,GAAAZ,QAAAslB,EAAA5lB,UACA,OAAA67N,GAAA97N,EAAAxY,EAAAyZ,GAAA1V,IAAA,SAAAgtC,GACA,OAAAtB,GAAA7H,OAAAjuB,GAAAZ,QAAAg4B,EAAAC,gBAAAD,EAAAwB,YAAA54B,GAAAZ,QAAAg4B,EAAAyB,cAAAzB,EAAA0B,cAIA+hM,GAAA,SAAAlzN,EAAAsf,GACA,IAAA8qB,EAAAvlD,GAAAmb,GACA,gBAAAoqC,EACAtb,GAAArkB,MAAAzK,GACO/Z,EAAA,CACP,KACA,OACAmkD,GAGA,IAAA9qB,EAAAwP,GAAAzkB,OAAArK,GAAA8uB,GAAArkB,MAAAzK,GAFA8uB,GAAAT,GAAAruB,EAAAsf,IAKA6zM,GAAA,SAAAxjM,EAAAC,GACA,IAAAhyB,EAAA+xB,EAAA7tC,KAAAgtC,GAAAzkB,OAAA6oN,GAAApkM,GAAArkB,OACA4kB,EAAAO,EAAA9tC,KAAAgtC,GAAAzkB,OAAA6oN,GAAApkM,GAAArkB,OACA,OAAAulB,GAAA/E,SAAArtB,EAAAyxB,IAEA+jM,GAAA,SAAAx1N,EAAAwxB,EAAAC,EAAAC,GACA,IAAAK,EAAAujM,GAAAt1N,EAAAwxB,GACAQ,EAAAsjM,GAAA7jM,EAAAC,GACA,OAAAU,GAAA/E,SAAA0E,EAAAC,IAEA+Y,GAAA,SAAAnZ,GACA,OAAAA,EAAArmC,MAAA,CACA6lC,SAAA,SAAAS,GACA,IAAA7xB,EAAAvF,GAAAZ,QAAAg4B,EAAAC,gBACAL,EAAAh3B,GAAAZ,QAAAg4B,EAAAyB,cACA,OAAAkiM,GAAAx1N,EAAA6xB,EAAAwB,YAAA5B,EAAAI,EAAA0B,YAEAlG,SAAAkoM,GACAlkM,MAAAmkM,MAIAt+L,GAAA,SAAAl3B,EAAAwxB,EAAAC,EAAAC,GACA,IAAAp4B,EAAAuS,GAAA7L,GACA6xB,EAAAv4B,EAAAc,MAAAy4B,cAGA,OAFAhB,EAAAQ,SAAAryB,EAAA5F,MAAAo3B,GACAK,EAAAa,OAAAjB,EAAAr3B,MAAAs3B,GACAG,GAEA4jM,GAAA,SAAAz1N,EAAAwxB,EAAAC,EAAAC,GACA,IAAAvuC,EAAA+zC,GAAAl3B,EAAAwxB,EAAAC,EAAAC,GACA0F,EAAAxzC,GAAAoc,EAAAyxB,IAAAD,IAAAE,EACA,OAAAvuC,EAAAwwC,YAAAyD,GAGAs+L,GAAA,SAAAv2M,EAAA0S,GACA9rC,EAAAD,KAAAq5B,EAAA6Y,gBAAAlzC,KAAA,SAAA8sC,GACAA,EAAA+jM,kBACA/jM,EAAAgkM,SAAA/jM,MAGAgkM,GAAA,SAAA12M,EAAAnf,EAAAwxB,EAAAC,EAAAC,GACA,IAAAG,EAAAiB,GAAA3T,EAAAnf,EAAAwxB,EAAAC,EAAAC,GACAgkM,GAAAv2M,EAAA0S,IAEAikM,GAAA,SAAA32M,EAAAyS,EAAA5xB,EAAAwxB,EAAAC,EAAAC,GACAE,EAAAmD,SAAA/0B,EAAA5F,MAAAo3B,GACAI,EAAAy4F,OAAA54F,EAAAr3B,MAAAs3B,IAEAqkM,GAAA,SAAA52M,EAAAkO,GACA,OAAAyG,GAAA3U,EAAAkO,GAAA9hC,MAAA,CACA8jC,IAAA,SAAArvB,EAAAwxB,EAAAC,EAAAC,GACAmkM,GAAA12M,EAAAnf,EAAAwxB,EAAAC,EAAAC,IAEAjC,IAAA,SAAAzvB,EAAAwxB,EAAAC,EAAAC,GACA,IAAAE,EAAAzS,EAAA6Y,eACA,GAAApG,EAAAokM,iBACApkM,EAAAokM,iBAAAh2N,EAAA5F,MAAAo3B,EAAAC,EAAAr3B,MAAAs3B,QACW,GAAAE,EAAAy4F,OACX,IACAyrG,GAAA32M,EAAAyS,EAAA5xB,EAAAwxB,EAAAC,EAAAC,GACa,MAAA7uC,GACbgzO,GAAA12M,EAAAsS,EAAAC,EAAA1xB,EAAAwxB,QAGAqkM,GAAA12M,EAAAsS,EAAAC,EAAA1xB,EAAAwxB,OAKAykM,GAAA,SAAA92M,EAAAnf,EAAAwxB,EAAAC,EAAAC,GACA,IAAArE,EAAAmoM,GAAAx1N,EAAAwxB,EAAAC,EAAAC,GACAqkM,GAAA52M,EAAAkO,IAEA6oM,GAAA,SAAA/2M,EAAA4S,EAAAC,GACA,IAAA3E,EAAAkoM,GAAAxjM,EAAAC,GACA+jM,GAAA52M,EAAAkO,IAEA8oM,GAAA,SAAAvkM,GACA,IAAAzS,EAAAiT,GAAAF,OAAAN,GAAAx3B,MACAg8N,EAAA,SAAAp2N,EAAAwxB,EAAAC,EAAAC,GACA,OAAAoB,GAAA3T,EAAAnf,EAAAwxB,EAAAC,EAAAC,IAEA8sK,EAAAzzJ,GAAAnZ,GACA,OAAAkC,GAAA3U,EAAAq/K,GAAAjzM,MAAA,CACA8jC,IAAA+mM,EACA3mM,IAAA2mM,KAGA/+L,GAAA,SAAAzF,GACA,GAAAA,EAAA0F,WAAA,GACA,IAAAC,EAAA3F,EAAA4F,WAAA,GACAC,EAAA7F,EAAA4F,WAAA5F,EAAA0F,WAAA,GACA,OAAAvxC,EAAAP,KAAA+qC,GAAA7H,OAAAjuB,GAAAZ,QAAA09B,EAAAzF,gBAAAyF,EAAAlE,YAAA54B,GAAAZ,QAAA49B,EAAAnE,cAAAmE,EAAAlE,YAEA,OAAAxtC,EAAArC,QAGAg0C,GAAA,SAAA9F,GACA,IAAA5K,EAAAvsB,GAAAZ,QAAA+3B,EAAA+F,YACAlyB,EAAAhL,GAAAZ,QAAA+3B,EAAAgG,WACA,OAAA69L,GAAAzuM,EAAA4K,EAAAiG,aAAApyB,EAAAmsB,EAAAkG,aAAA/xC,EAAAP,KAAA+qC,GAAA7H,OAAA1B,EAAA4K,EAAAiG,aAAApyB,EAAAmsB,EAAAkG,cAAAT,GAAAzF,IAEAykM,GAAA,SAAAl3M,EAAA/c,GACA,IAAAyvB,EAAAqjM,GAAA/1M,EAAA/c,GACAszN,GAAAv2M,EAAA0S,IAEAkG,GAAA,SAAA5Y,GACA,OAAAp5B,EAAAD,KAAAq5B,EAAA6Y,gBAAA9yC,OAAA,SAAA+yC,GACA,OAAAA,EAAAX,WAAA,IACOvyC,KAAA2yC,KAEP/C,GAAA,SAAAxV,GACA,OAAA4Y,GAAA5Y,GAAAt6B,IAAA,SAAAyD,GACA,OAAA8pC,GAAAf,MAAA/oC,EAAA0X,QAAA1X,EAAAkpC,UAAAlpC,EAAAmpC,SAAAnpC,EAAAopC,cAGAwG,GAAA,SAAA/Y,EAAAyS,GACA,IAAAC,EAAAkC,GAAA5U,EAAAyS,GACA,OAAAoB,GAAAnB,IAEAykM,GAAA,SAAAn3M,EAAAr+B,EAAAyZ,GACA,OAAA86N,GAAAl2M,EAAAr+B,EAAAyZ,IAEA4pC,GAAA,SAAAhlB,GACA,IAAAyS,EAAAzS,EAAA6Y,eACApG,EAAA+jM,mBAGAh9J,GAAA/2E,QAAAC,KAAAC,MAAAC,QAAA,mBAEAw0O,GAAA,SAAA//J,EAAA1uD,EAAAy2C,EAAA8mK,GACA,OAAA5kL,GAAA+1B,EAAA1uD,EAAAmtN,GAAAr+N,KAAA2nD,GAAA8mK,IAEAmR,GAAA,SAAAhgK,EAAA1uD,EAAAy2C,EAAA8mK,GACA,OAAA5kL,GAAA+1B,EAAA1uD,EAAAmtN,GAAAp7J,KAAAtb,GAAA8mK,IAEAoR,GAAA,SAAAjgK,EAAAjY,GACA,IAAA3sB,EAAAQ,GAAAf,MAAAktB,EAAA,EAAAA,EAAA,GACA,OAAA43K,GAAAvkM,IAEA8kM,GAAA,SAAAlgK,EAAAokE,GACA,IAAAx6E,EAAAyf,GAAA+6D,EAAA,MACA,OAAA5wI,EAAAo2D,GAAAr7D,KAAA,SAAAiF,GACA,OAAAq4B,GAAAr4B,EAAA,SAAAnF,IAAA,SAAAmxC,GACA,OAAAygM,GAAAjgK,EAAAxgC,QAIAyK,GAAA,SAAA+1B,EAAA1uD,EAAAy2C,EAAAiuD,EAAA64G,GACA,OAAA9mK,EAAAr6D,KAAA6B,EAAArC,KAAAqC,EAAArC,KAAA,SAAA8Y,EAAA5F,GACA,OAAAo/B,GAAAp/B,GAAA/R,IAAA,SAAA05D,GACA,OAAAk4K,GAAAjgK,EAAAjY,MAEO,SAAA/hD,GACP,OAAAohM,GAAAhjE,MAAAp+H,EAAAsL,GAAA/iB,KAAA,SAAA61I,GACA,IAAA1F,EAAA61E,GAAAN,OAAAjuM,GAIA,OAHAg6D,EAAAob,YAAAC,SAAA,WACA26B,EAAA20G,gBAAAvmF,EAAA1F,KAEAwhG,GAAAlgK,EAAAokE,QAIA+7F,GAAA,CACA,QACA,KACA,MAEAC,GAAA,SAAAlzN,EAAA8yD,EAAAg2C,EAAA64G,GACA,GAAA3hN,EAAAmmH,UAAAlxD,GAAAvlB,IAAA,CACA,IAAAyjL,EAAAhU,GAAArsJ,GACAsgK,EAAA,SAAA10N,GACA,IAAAoqC,EAAAvlD,GAAAmb,GACA,OAAAxe,GAAAwe,EAAAy0N,IAAAxuO,EAAAsuO,GAAAnqL,IAEA3a,EAAA2kC,EAAA5kC,UAAAkrC,SACA,GAAAjrC,EAAA8B,UAAA,CACA,IAAA3zB,EAAAvF,GAAAZ,QAAAg4B,EAAAC,gBACA8rK,GAAAr/I,KAAAv+C,EAAA82N,GAAAhyO,KAAA,SAAAy5D,GACA76C,EAAA0F,iBACA,IAAA6X,EAAAvd,EAAA2wC,SAAAmiL,GAAAD,GACA1kM,EAAA5Q,EAAAu1C,EAAAsgK,EAAAv4K,EAAAiuD,EAAA64G,GACAxzL,EAAA/sC,KAAA,SAAAwD,GACAkuE,EAAA5kC,UAAA2nI,OAAAjxK,UAMAyuO,GAAA,CAAsB17I,OAAAu7I,IAEtB78J,GAAAjvD,EAAA,oBACAksN,GAAA,CAAoBtuM,OAAAqxC,IAEpBs0C,GAAA,SAAAruG,EAAAwxB,EAAAC,EAAAC,GACA,OACA1xB,MAAArf,EAAAuwC,GAAAT,GAAAzwB,EAAAwxB,IACAC,OAAA9wC,EAAAuwC,GAAAT,GAAAgB,EAAAC,MAGAulM,GAAA,CAAiBvuM,OAAA2lF,IAEjB6oH,GAAA,SAAA/3M,EAAAyS,GACA,IAAAC,EAAAkC,GAAA5U,EAAAyS,GACA,OAAArB,GAAA7H,OAAAjuB,GAAAZ,QAAAg4B,EAAAC,gBAAAD,EAAAwB,YAAA54B,GAAAZ,QAAAg4B,EAAAyB,cAAAzB,EAAA0B,YAEA4jM,GAAAF,GAAAvuM,OACA0uM,GAAA,CACAF,kBACAC,cAGAE,GAAA,SAAA9oN,EAAAzG,EAAA9H,EAAAwxB,EAAAC,EAAAC,EAAA4lM,GACA,OAAA1zO,GAAAoc,EAAAyxB,IAAAD,IAAAE,EAOA3rC,EAAArC,OANAslB,GAAAhJ,EAAA,QAAA8H,GAAA/iB,KAAA,SAAA3C,GACA,OAAA4mB,GAAAyoB,EAAA,QAAA3pB,GAAA/iB,KAAA,SAAA7E,GACA,OAAAq3O,GAAAhpN,EAAAzG,EAAA1lB,EAAAlC,EAAAo3O,QAOAC,GAAA,SAAAhpN,EAAAzG,EAAA9H,EAAAyxB,EAAA6lM,GACA,OAAA1zO,GAAAoc,EAAAyxB,GAWA1rC,EAAArC,OAVAylN,GAAAnB,SAAAhoM,EAAAyxB,EAAA3pB,GAAA/iB,KAAA,SAAAyyO,GACA,IAAArvB,EAAAqvB,EAAArvB,QAAA9jN,MAAA,IACA,OAAA8jN,EAAA1nN,OAAA,GACA62O,EAAA/oN,EAAA45L,EAAAqvB,EAAAx3N,QAAAw3N,EAAA/lM,UACA1rC,EAAAP,KAAAwxO,GAAAtuM,OAAA3iC,EAAAP,KAAA4xO,GAAAD,UAAAn3N,EAAA,EAAAA,EAAA01B,GAAA11B,MAAA,KAEAja,EAAArC,UAOAgkD,GAAA,SAAA0Y,EAAAyd,EAAAtvD,EAAAqkC,EAAA6kL,GACA,IAAAC,EAAA,SAAAC,GAGA,OAFAF,EAAAG,kBAAArpN,GACAkpN,EAAAH,YAAA/oN,EAAAopN,EAAAxvB,QAAAwvB,EAAA33N,QAAA23N,EAAAlmM,UACAkmM,EAAAxvB,SAEA,OAAAgB,GAAAD,eAAAt2J,EAAAwN,EAAAyd,EAAA45J,EAAA1uB,wBAAA0uB,EAAA5uB,wBAAAhkN,IAAA6yO,IAEAG,GAAA,CACAR,QACA17N,OAAA47N,GACA7vL,WAGAowL,GAAAhtN,EAAA,eACAitN,GAAA,SAAAhzB,EAAA/oL,EAAAg8M,EAAAnjL,GAIA,YAHA,IAAAA,IACAA,EAAAojL,IAEAlzB,EAAArrL,WAAA1N,OAAAgQ,GAAAn3B,IAAA,SAAAtC,GACA,OAAAu1O,GAAAv1O,EAAAsyD,MAGAojL,GAAA,SAAAlzB,EAAA/oL,EAAA+R,EAAA8mB,GAIA,YAHA,IAAAA,IACAA,EAAAqjL,IAEAnqM,EAAAjhB,QAAAi4L,EAAA/oL,GAAAn3B,IAAA,SAAAtC,GACA,OAAAu1O,GAAAv1O,EAAAsyD,MAGAqjL,GAAA,SAAAnzB,EAAA/oL,EAAA+R,EAAA8mB,QACA,IAAAA,IACAA,EAAAqjL,IAEA,IAAA/rN,EAAA44L,EAAArrL,WAAAvN,SAAA6P,GACAptB,EAAAm/B,EAAAiI,MAAA7pB,GACA,OAAAvd,EAAA/J,IAAA,SAAA1B,GACA,OAAA20O,GAAA30O,EAAA0xD,MAGAsjL,GAAA,CACA,CACA37N,QAAAu7N,GACAnhO,KAAAqhO,GACAzqO,SAAAzH,EAAArC,QAEA,CACA8Y,QAAAy7N,GACArhO,KAAAshO,GACA1qO,SAAAzH,EAAAP,KAAAuyO,KAEA,CACAv7N,QAAA07N,GACAthO,KAAAshO,GACA1qO,SAAAzH,EAAAP,KAAAyyO,MAGAG,GAAA,SAAArzB,EAAA/oL,EAAAkrB,EAAAnZ,EAAA8nB,QACA,IAAAA,IACAA,EAAAsiL,IAEA,IAAAE,EAAAlvO,EAAA0sD,EAAA,SAAAyiL,GACA,OAAAA,EAAA97N,UAAA0qC,IAEA,OAAAmxL,EAAAtzO,KAAA,SAAA0vD,GACA,OAAAA,EAAAj4C,QAAAuoM,EAAA/oL,EAAA+R,EAAA0mB,EAAA79C,MAAAhS,QAAA,WACA,OAAA6vD,EAAAjnD,SAAAzI,KAAA,SAAA1E,GACA,OAAA+3O,GAAArzB,EAAA/oL,EAAA37B,EAAA0tC,UAMApP,GAAA,WACA,IAAA7R,EAAA,SAAAi4L,EAAA/oL,GACA,OAAA+oL,EAAAnkM,QAAAo7L,YAAAhgL,IAEAga,EAAA,SAAA7pB,GACA,OAAAA,EAAA1rB,OAAA,EAAAsF,EAAAP,KAAA2mB,IAAA1rB,OAAA,IAAAsF,EAAArC,QAEA,OACAopB,UACAkpB,UAGA1V,GAAA,WACA,IAAAxT,EAAA,SAAAi4L,EAAA/oL,GACA,OAAA+oL,EAAAnkM,QAAAsL,YAAA8P,IAEAga,EAAA,SAAA7pB,GACA,OAAAA,EAAA1rB,OAAA,EAAAsF,EAAAP,KAAA2mB,EAAA,IAAApmB,EAAArC,QAEA,OACAopB,UACAkpB,UAGAuiM,GAAA,CACA55M,QACA2B,UAGAk4M,GAAA,SAAAzzB,EAAA/oL,EAAAvT,EAAAy+B,EAAAnZ,EAAAjmB,GACA,IAAAlR,EAAAwhO,GAAArzB,EAAA/oL,EAAAkrB,EAAAnZ,GACA,OAAAn3B,EAAA7R,KAAA,SAAAzC,GACA,OAAAwlB,EAAAxlB,EAAA05B,QACAj2B,EAAArC,OAEA+kB,EAAAnmB,EAAA05B,QAAAj2B,EAAAP,KAAAlD,EAAA05B,QAAAw8M,GAAAzzB,EAAAziN,EAAA05B,OAAAvT,EAAAnmB,EAAA4kD,OAAAnZ,EAAAjmB,MAIA2wN,GAAA,SAAA1zB,EAAA/oL,EAAAvT,EAAAX,GACA,OAAA0wN,GAAAzzB,EAAA/oL,EAAAvT,EAAAwvN,GAAAM,GAAA55M,OAAA7W,IAEA4wN,GAAA,SAAA3zB,EAAA/oL,EAAAvT,EAAAX,GACA,OAAA0wN,GAAAzzB,EAAA/oL,EAAAvT,EAAAwvN,GAAAM,GAAAj4M,QAAAxY,IAGA6wN,GAAA,SAAA5zB,GACA,gBAAA3iM,GACA,WAAA2iM,EAAArrL,WAAAvN,SAAA/J,GAAA3hB,SAGAm4O,GAAA,SAAA7zB,EAAA/oL,EAAAlU,GACA,OAAA+wN,GAAA9zB,EAAA/oL,EAAA28M,GAAA5zB,GAAAj9L,IAEAgxN,GAAA,SAAA/zB,EAAA/oL,EAAAlU,GACA,OAAAixN,GAAAh0B,EAAA/oL,EAAA28M,GAAA5zB,GAAAj9L,IAEA+wN,GAAAJ,GACAM,GAAAL,GAEAM,GAAAh1B,KACAi1B,GAAA,SAAA72N,EAAA0F,GACA,OAAA8wN,GAAAI,GAAA52N,EAAA0F,IAEAoxN,GAAA,SAAA92N,EAAA0F,GACA,OAAAgxN,GAAAE,GAAA52N,EAAA0F,IAEAqxN,GAAA,SAAA/2N,EAAAqG,EAAAX,GACA,OAAA+wN,GAAAG,GAAA52N,EAAAqG,EAAAX,IAEAsxN,GAAA,SAAAh3N,EAAAqG,EAAAX,GACA,OAAAixN,GAAAC,GAAA52N,EAAAqG,EAAAX,IAGAktI,GAAA,SAAA37I,EAAAoP,EAAAX,GACA,OAAAD,GAAAxO,EAAAoP,EAAAX,GAAA1jB,UAGA+zC,GAAArtB,EAAA,oBAMAqmB,IALArmB,EAAA,yBACAA,EAAA,4BACAA,EAAA,eACAA,EAAA,kBAEA5e,GAAAnB,SAAA,CACA,CAAOrH,KAAA,aACP,CAAOuxE,QAAA,IACP,CAAOokK,SAAA,UACP,CAAOC,WAAA,aAEPC,GAAA,SAAAC,EAAA/sN,EAAAI,GACA,IAAA4sN,EAAAD,EAAAp2G,QAAA32G,GACAitN,EAAAF,EAAAp2G,QAAAv2G,GACA,OAAA6sN,EAAAp5M,MAAAm5M,EAAA96M,MAAA+6M,EAAA/6M,KAAA86M,EAAAn5M,OAEAq5M,GAAA,SAAAp3N,GACA,OAAAyG,GAAAzG,EAAA,OAEAq3N,GAAA,SAAAJ,EAAA/sN,EAAAotN,EAAAhtN,EAAAitN,EAAAC,EAAAjyN,GACA,OAAAkB,GAAA6D,EAAA,QAAA/E,GAAA/iB,KAAA,SAAAi1O,GACA,OAAAhxN,GAAAyD,EAAA,QAAA3E,GAAAjjB,IAAA,SAAAo1O,GACA,OAAAr2O,GAAAo2O,EAAAC,GAUAr2O,GAAAipB,EAAAmtN,IAAAtkM,GAAAskM,KAAAF,EAAAC,EAAAE,GAAA9oM,GAAAztC,KAAA,gBATAokN,GAAAd,UAAA2yB,GAAA,CACAK,EACAC,IACA/1O,KAAA,WACA,OAAAq1O,GAAAC,EAAAS,EAAAD,GAAA7oM,GAAA8jC,UAAA8kK,EAAAE,IACa,SAAAC,GACb,OAAAH,EAAAE,SAMO51O,MAAA8sC,GAAAztC,KAAA,aAEPgtC,GAAA,SAAA3V,EAAA0T,EAAA0rM,EAAAC,EAAAC,GACA,OAAAt/M,EAAA72B,KAAAuqC,EAAA0rM,EAAAC,EAAAC,IAEAC,GAAAt4O,MAAA,GAA0CmvC,IAAA,CAC1CyoM,UACAjzM,KAAA+J,KAIA6pM,IADAzvN,EAAA,4CACAA,EAAA,wCACA0vN,GAAA,SAAAp4N,GACA,OAAA4J,GAAA5J,GAAArd,KAAA,SAAAinB,GACA,IAAA8B,EAAA3B,GAAAH,GACA,OAAAlpB,GAAAgrB,EAAA1L,GAAAvd,IAAA,SAAAwnB,GACA,OAAAkuN,GAAAvuN,EAAA8B,EAAA1L,EAAAiK,QAIAvpB,GAAA,SAAAuqB,EAAAjL,GACA,OAAAhZ,EAAAikB,EAAAtsB,EAAA6C,GAAAwe,KAGA6/K,GAAA,SAAA1/K,GACA,aAAAtb,GAAAsb,IAEAk4N,GAAA,SAAAC,EAAAC,EAAA7yN,GACA,OAAA6yN,EAAAD,EAAA5yN,GAAA/iB,KAAA,SAAA8G,GACA,OAAAsc,GAAAtc,IAAA,IAAA+sB,GAAA/sB,GAAAuU,OAAA3f,OAAAg6O,GAAA5uO,EAAA8uO,EAAA7yN,GAAA/hB,EAAAP,KAAAqG,MAGA+uO,GAAA,SAAA9yN,EAAA1F,EAAA2rB,GACA,OAAAA,EAAA+pM,SAAA11N,GAAAxd,QAAA,WACA,OAAA61O,GAAAr4N,EAAA2rB,EAAA4sM,OAAA7yN,KACOjjB,IAAAkpC,EAAAV,WAEPwtM,GAAA,SAAAz4N,EAAAsf,GACA,OAAAtV,GAAAhK,EAAAsf,GAAAx8B,OAAA+8L,IAAAr9L,QAAA,WACA,OAAAwnB,GAAAhK,EAAAsf,EAAA,GAAAx8B,OAAA+8L,OAGA64C,GAAA,SAAAhzN,EAAA1F,EAAAsf,EAAAqM,GACA,OAAA8sM,GAAAz4N,EAAAsf,GAAA38B,KAAA,SAAAg2O,GACA,OAAAhtM,EAAA+pM,SAAAiD,GAAA72O,KAAA,WACA,OAAAu2O,GAAAM,EAAAhtM,EAAA4sM,OAAA7yN,GAAAjjB,IAAAkpC,EAAAV,WACS,SAAA2tM,GACT,OAAAR,GAAAQ,GAAAn2O,IAAA,SAAA+X,GACA,OAAAs0B,GAAAT,GAAA7zB,EAAAoP,SAAApP,EAAAyP,gBAKA4uN,GAAA,SAAAnzN,EAAA1F,EAAAsf,EAAAqM,GACA,IAAAliC,EAAAo2L,GAAA7/K,GAAAw4N,GAAA9yN,EAAA1F,EAAA2rB,GAAA+sM,GAAAhzN,EAAA1F,EAAAsf,EAAAqM,GACA,OAAAliC,EAAAhH,IAAA,SAAAo0I,GACA,OACAj5H,MAAArf,EAAAs4I,GACAxnG,OAAA9wC,EAAAs4I,OAIA5/D,GAAA,SAAA6hK,GACA,OAAAZ,GAAA3zM,KAAAu0M,EAAA,SAAA10O,GACA,OAAAT,EAAArC,QACO,WACP,OAAAqC,EAAArC,QACO,SAAA66D,GACP,OAAAx4D,EAAAP,KAAA2yC,GAAAomB,EAAA,KACO,SAAAA,GACP,OAAAx4D,EAAAP,KAAA2yC,GAAAomB,EAAA7oB,GAAA6oB,QAGA48K,GAAA,CACAF,SACA5hK,YAGAx7D,GAAA6N,GAAA,CACA,OACA,MACA,QACA,UACA,IACAk0C,GAAA,SAAAmmB,EAAAymI,GACA,OAAA3uM,GAAA,CACA8gB,KAAAonD,EAAApnD,OACAC,IAAAmnD,EAAAnnD,MAAA4tL,EACAlsL,MAAAylD,EAAAzlD,QACAC,OAAAwlD,EAAAxlD,SAAAisL,KAGA7sJ,GAAA,SAAAomB,EAAAymI,GACA,OAAA3uM,GAAA,CACA8gB,KAAAonD,EAAApnD,OACAC,IAAAmnD,EAAAnnD,MAAA4tL,EACAlsL,MAAAylD,EAAAzlD,QACAC,OAAAwlD,EAAAxlD,SAAAisL,KAGA4uB,GAAA,SAAAr1J,EAAAxlD,GACA,IAAAnC,EAAA2nD,EAAAxlD,SAAAwlD,EAAAnnD,MACA,OAAA/gB,GAAA,CACA8gB,KAAAonD,EAAApnD,OACAC,IAAA2B,EAAAnC,EACAkC,MAAAylD,EAAAzlD,QACAC,YAGA86M,GAAA,SAAAt1J,EAAAnnD,GACA,IAAAR,EAAA2nD,EAAAxlD,SAAAwlD,EAAAnnD,MACA,OAAA/gB,GAAA,CACA8gB,KAAAonD,EAAApnD,OACAC,MACA0B,MAAAylD,EAAAzlD,QACAC,OAAA3B,EAAAR,KAGAS,GAAA,SAAAknD,EAAA15C,EAAAC,GACA,OAAAzuB,GAAA,CACA8gB,KAAAonD,EAAApnD,OAAA0N,EACAzN,IAAAmnD,EAAAnnD,MAAA0N,EACAhM,MAAAylD,EAAAzlD,QAAA+L,EACA9L,OAAAwlD,EAAAxlD,SAAA+L,KAGAgvM,GAAA,SAAAv1J,GACA,OAAAA,EAAAnnD,OAEA28M,GAAA,SAAAx1J,GACA,OAAAA,EAAAxlD,UAEAj7B,GAAA,SAAAygF,GACA,UAAAA,EAAApnD,OAAA,KAAAonD,EAAAnnD,MAAA,SAAAmnD,EAAAzlD,QAAA,KAAAylD,EAAAxlD,SAAA,KAEAi7M,GAAA,CACAlvO,GAAAuR,GACA8hD,UACAC,YACAw7K,gBACAC,aACA9sB,OAAA+sB,GACAC,aACA18M,aACAv5B,aAGAm2O,GAAA,SAAAjC,EAAAp3N,EAAAsf,GACA,OAAAA,GAAA,GAAAA,EAAAgU,GAAAtzB,GACAo3N,EAAAkC,cAAAt5N,EAAAsf,EAAAtf,EAAAsf,EAAA,GACOA,EAAA,EACP83M,EAAAkC,cAAAt5N,EAAAsf,EAAA,EAAAtf,EAAAsf,GAEA37B,EAAArC,QAEAi4O,GAAA,SAAA95M,GACA,OAAA25M,GAAAlvO,GAAA,CACAqyB,KAAAkD,EAAAlD,KACAC,IAAAiD,EAAAjD,IACA0B,MAAAuB,EAAAvB,MACAC,OAAAsB,EAAAtB,UAGAq7M,GAAA,SAAApC,EAAAp3N,GACA,OAAArc,EAAAP,KAAAg0O,EAAAp2G,QAAAhhH,KAEAy5N,GAAA,SAAArC,EAAAp3N,EAAAsf,GACA,OAAAxZ,GAAA9F,GACAw5N,GAAApC,EAAAp3N,GAAAvd,IAAA82O,IACOxzN,GAAA/F,GACPq5N,GAAAjC,EAAAp3N,EAAAsf,GAAA78B,IAAA82O,IAEA51O,EAAArC,QAGAo4O,GAAA,SAAAtC,EAAAp3N,GACA,OAAA8F,GAAA9F,GACAw5N,GAAApC,EAAAp3N,GAAAvd,IAAA82O,IACOxzN,GAAA/F,GACPo3N,EAAAkC,cAAAt5N,EAAA,EAAAA,EAAAszB,GAAAtzB,IAAAvd,IAAA82O,IAEA51O,EAAArC,QAGAq4O,GAAA,CACAF,YACAC,iBAGAE,GAAA,EACAC,GAAA,IACA9oM,GAAAjnC,GAAAnB,SAAA,CACA,CAAOrH,KAAA,IACP,CAAOw4O,MAAA,aAEPC,GAAA,SAAAp2J,EAAA/mD,GACA,OAAA+mD,EAAApnD,OAAAK,EAAAL,QAAAtO,KAAAgkB,IAAArV,EAAAsB,QAAAylD,EAAApnD,QAAA,GAAAonD,EAAApnD,OAAAK,EAAAsB,SAEA87M,GAAA,SAAA5C,EAAAp3N,EAAA2jE,GACA,OAAAn9D,GAAAxG,EAAA09M,GAAAhnJ,SAAA50E,KAAAvD,GAAA,YAAA49D,GACA,OAAAw9K,GAAAD,aAAAtC,EAAAj7K,GAAAv5D,OAAA,SAAAg6B,GACA,OAAAm9M,GAAAp2J,EAAA/mD,QAIAq9M,GAAA,SAAA7C,EAAAp3N,EAAAk6N,EAAAltN,EAAA22D,GACA,IAAAw2J,EAAAf,GAAA57K,SAAAmmB,EAAAi2J,IACA,OAAA3rN,KAAAgkB,IAAAioM,EAAA/7M,SAAAnR,EAAAmR,UAAA,EACA4S,GAAA+oM,MAAAK,GACOD,EAAA19M,MAAAmnD,EAAAxlD,SACP4S,GAAA+oM,MAAAK,GACOD,EAAA19M,QAAAmnD,EAAAxlD,SACP4S,GAAA+oM,MAAAV,GAAA57K,SAAAmmB,EAAA,IAEAq2J,GAAA5C,EAAAp3N,EAAA2jE,GAAA5yC,GAAA+oM,MAAAV,GAAA38M,UAAA09M,EAAAP,GAAA,IAAA7oM,GAAAzvC,QAGA84O,GAAA,SAAAhD,EAAAp3N,EAAAk6N,EAAAltN,EAAA22D,GACA,IAAA02J,EAAAjB,GAAA77K,OAAAomB,EAAAi2J,IACA,OAAA3rN,KAAAgkB,IAAAioM,EAAA19M,MAAAxP,EAAAwP,OAAA,EACAuU,GAAA+oM,MAAAO,GACOH,EAAA/7M,SAAAwlD,EAAAnnD,MACPuU,GAAA+oM,MAAAO,GACOH,EAAA/7M,WAAAwlD,EAAAnnD,MACPuU,GAAA+oM,MAAAV,GAAA77K,OAAAomB,EAAA,IAEAq2J,GAAA5C,EAAAp3N,EAAA2jE,GAAA5yC,GAAA+oM,MAAAV,GAAA38M,UAAA49M,EAAAT,GAAA,IAAA7oM,GAAAzvC,QAGAg5O,GAAA,CACAvkM,MAAAqjM,GAAAjtB,OACAouB,SAAAH,GACA5iL,KAAA4hL,GAAA77K,OACAg7K,OAAA1B,IAEA2D,GAAA,CACAzkM,MAAAqjM,GAAAD,UACAoB,SAAAN,GACAziL,KAAA4hL,GAAA57K,SACA+6K,OAAAzB,IAEA2D,GAAA,SAAArD,EAAA14O,EAAAyZ,GACA,OAAAi/N,EAAAh/N,iBAAA1Z,EAAAyZ,GAAArV,OAAA,SAAAm1E,GACA,gBAAApzE,GAAAozE,KACOj2E,UAEP04O,GAAA,SAAAtD,EAAA7/K,EAAAvqC,EAAA22D,EAAAg3J,GACA,OAAAC,GAAAxD,EAAA7/K,EAAAvqC,EAAAuqC,EAAAC,KAAAmsB,EAAAi2J,IAAAe,IAEAC,GAAA,SAAAxD,EAAA7/K,EAAAvqC,EAAA22D,EAAAg3J,GACA,WAAAA,EACAh3O,EAAAP,KAAAugF,GAEA82J,GAAArD,EAAAzzJ,EAAApnD,OAAAg7B,EAAAxhB,MAAA4tC,IACA+2J,GAAAtD,EAAA7/K,EAAAvqC,EAAA22D,EAAAg3J,EAAA,GAEAvD,EAAAyD,eAAAl3J,EAAApnD,OAAAg7B,EAAAxhB,MAAA4tC,IAAAhhF,KAAA,SAAA+tM,GACA,OAAAA,EAAA9yL,QAAA9b,KAAA6B,EAAArC,KAAA,SAAA0e,GACA,OAAA25N,GAAAD,aAAAtC,EAAAp3N,GAAArd,KAAA,SAAAu3O,GACA,OAAA3iL,EAAAgjL,SAAAnD,EAAAp3N,EAAAk6N,EAAAltN,EAAA22D,GAAA7hF,KAAA6B,EAAArC,KAAA,SAAAw5O,GACA,OAAAF,GAAAxD,EAAA7/K,EAAAvqC,EAAA8tN,EAAAH,EAAA,OAEWn4O,QAAA,WACX,OAAAmB,EAAAP,KAAAugF,MAEShgF,EAAArC,SAGTy5O,GAAA,SAAA3D,EAAAzzJ,GACA,OAAAyzJ,EAAAyD,eAAAl3J,EAAApnD,OAAAonD,EAAAxlD,SAAAy7M,KAEAoB,GAAA,SAAA5D,EAAAzzJ,GACA,OAAAyzJ,EAAAyD,eAAAl3J,EAAApnD,OAAAonD,EAAAnnD,MAAAo9M,KAEAqB,GAAA,SAAA1jL,EAAA2jL,EAAA9D,GACA,OAAA7/K,EAAAxhB,MAAAmlM,GAAA9D,EAAA+D,iBACAx3O,EAAAP,KAAAm0D,EAAAxhB,MAAAmlM,GAAA9D,EAAA+D,kBACO5jL,EAAAxhB,MAAAmlM,GAAA,EACPv3O,EAAAP,MAAAm0D,EAAAxhB,MAAAmlM,IAEAv3O,EAAArC,QAGAw4O,GAAA,SAAAviL,EAAA6/K,EAAAzzJ,GACA,IAAAy3J,EAAA7jL,EAAAC,KAAAmsB,EAAAi2J,IACAsB,EAAAN,GAAAxD,EAAA7/K,EAAAosB,EAAAy3J,EAAAvB,IAAA53O,MAAAm5O,GACA,OAAAH,GAAA1jL,EAAA2jL,EAAA9D,GAAAt1O,KAAA,WACA,OAAAs1O,EAAAyD,eAAAK,EAAA3+M,OAAAg7B,EAAAxhB,MAAAmlM,KACO,SAAArhM,GAEP,OADAu9L,EAAAiE,SAAA,EAAAxhM,GACAu9L,EAAAyD,eAAAK,EAAA3+M,OAAAg7B,EAAAxhB,MAAAmlM,GAAArhM,MAGAyhM,GAAA,CACAC,MAAA58O,EAAAm7O,GAAAQ,IACAkB,QAAA78O,EAAAm7O,GAAAU,IACAQ,WACAD,aACAU,YAAAl9O,EAAAq7O,KAGA8B,GAAA,GACAz8D,GAAAngK,KACA68N,GAAA,SAAAvE,EAAA1xN,EAAAimB,GACA,OAAAyrM,EAAAxhM,eAAAjzC,KAAA,SAAAkzC,GACA,OAAAkjM,GAAAF,MAAAnzN,EAAAmwB,EAAAxG,SAAAwG,EAAAvG,UAAA3D,GAAA7pC,KAAA,WACA,OAAA6B,EAAAP,KAAA2yC,GAAAF,EAAAxG,SAAAwG,EAAAvG,aACS,SAAAssM,GACT,IAAA11O,EAAAkxO,EAAAyE,UAAAD,GACA9C,EAAAZ,GAAAV,OAAAJ,EAAAvhM,EAAAxG,SAAAwG,EAAAvG,UAAAppC,EAAAmpC,SAAAnpC,EAAAopC,UAAA3D,EAAAgsM,QAAAjyN,GACA,OAAAqzN,GAAA9hK,QAAA6hK,QAIA1wL,GAAA,SAAAgvL,EAAA1xN,EAAA1F,EAAAsf,EAAAqM,EAAAgvM,GACA,WAAAA,EACAh3O,EAAArC,OAEAw6O,GAAA1E,EAAA1xN,EAAA1F,EAAAsf,EAAAqM,GAAAhpC,KAAA,SAAAo5O,GACA,IAAA71O,EAAAkxO,EAAAyE,UAAAE,GACAjD,EAAAZ,GAAAV,OAAAJ,EAAAp3N,EAAAsf,EAAAp5B,EAAAmpC,SAAAnpC,EAAAopC,UAAA3D,EAAAgsM,QAAAjyN,GACA,OAAAwyN,GAAA3zM,KAAAu0M,EAAA,WACA,OAAAn1O,EAAArC,QACS,WACT,OAAAqC,EAAAP,KAAA24O,IACS,SAAA5/K,GACT,OAAA36D,GAAAwe,EAAAm8C,IAAA,IAAA78B,EACA08M,GAAA5E,EAAAp3N,EAAAsf,EAAA85M,GAAA77K,OAAA5xB,GAEAyc,GAAAgvL,EAAA1xN,EAAAy2C,EAAA,EAAAxwB,EAAAgvM,EAAA,IAES,SAAAx+K,GACT,OAAA36D,GAAAwe,EAAAm8C,IAAA78B,IAAAgU,GAAA6oB,GACA6/K,GAAA5E,EAAAp3N,EAAAsf,EAAA85M,GAAA57K,SAAA7xB,GAEAyc,GAAAgvL,EAAA1xN,EAAAy2C,EAAA7oB,GAAA6oB,GAAAxwB,EAAAgvM,EAAA,QAKAqB,GAAA,SAAA5E,EAAAp3N,EAAAsf,EAAAk4B,EAAA7rB,GACA,OAAAguM,GAAAF,SAAArC,EAAAp3N,EAAAsf,GAAA38B,KAAA,SAAAi6B,GACA,OAAAq/M,GAAA7E,EAAAzrM,EAAA6rB,EAAA56B,EAAA0+M,GAAAG,mBAGAQ,GAAA,SAAA7E,EAAAzrM,EAAA/O,GACA,OAAAqiJ,GAAA7iK,QAAA1B,YAAAukK,GAAA7iK,QAAAtB,YAAAmkK,GAAA7iK,QAAAvB,aAAAokK,GAAA7iK,QAAA3B,SACAkxB,EAAAuwM,WAAA9E,EAAAx6M,GACOqiJ,GAAA7iK,QAAAzB,OACPgxB,EAAAwwM,QAAA/E,EAAAx6M,GAEAj5B,EAAArC,QAGAw6O,GAAA,SAAA1E,EAAA1xN,EAAA1F,EAAAsf,EAAAqM,GACA,OAAAguM,GAAAF,SAAArC,EAAAp3N,EAAAsf,GAAA38B,KAAA,SAAAi6B,GACA,OAAAq/M,GAAA7E,EAAAzrM,EAAA/O,MAGAw/M,GAAA,SAAAhF,EAAA1xN,EAAAimB,GACA,OAAAgwM,GAAAvE,EAAA1xN,EAAAimB,GAAAhpC,KAAA,SAAA05O,GACA,OAAAj0L,GAAAgvL,EAAA1xN,EAAA22N,EAAAr8N,UAAAq8N,EAAA/8M,SAAAqM,EAAA+vM,IAAAj5O,IAAA20O,EAAAyE,cAGAS,GAAA,CAAqBrjJ,OAAAmjJ,IAErB/sE,GAAAvwJ,KACAy9N,GAAA,SAAAp8N,EAAAq4H,GACA,OAAAoa,GAAAzyI,EAAA,SAAA1f,GACA,OAAAmpB,GAAAnpB,GAAAmC,OAAA,SAAAzC,GACA,OAAAqB,GAAArB,EAAAq4I,QAIAgkG,GAAA,SAAApF,EAAA1xN,EAAAimB,EAAA/0B,EAAAguB,GACA,OAAAhe,GAAAhQ,EAAA,QAAA8O,GAAA/iB,KAAA,SAAAib,GACA,OAAAgJ,GAAAhJ,EAAA,QAAA8H,GAAA/iB,KAAA,SAAA61I,GACA,OAAA+jG,GAAA33M,EAAA4zG,GAGA8jG,GAAArjJ,OAAAm+I,EAAA1xN,EAAAimB,GAAAhpC,KAAA,SAAAuD,GACA,OAAA0gB,GAAA1gB,EAAAmpC,SAAA,QAAA3pB,GAAAjjB,IAAA,SAAA4sC,GACA,OACAzxB,MAAArf,EAAAqf,GACAyxB,OAAA9wC,EAAA8wC,GACAnpC,MAAA3H,EAAA2H,QAPAvC,EAAArC,YAcAg0D,GAAA,SAAA8hL,EAAA1xN,EAAAimB,EAAA/0B,EAAAguB,EAAA63M,GACA,OAAAptE,GAAAjzJ,QAAAzB,OACAhX,EAAArC,OAEAm7O,EAAA7lO,EAAA8O,GAAAljB,QAAA,WACA,OAAAg6O,GAAApF,EAAA1xN,EAAAimB,EAAA/0B,EAAAguB,GAAAniC,IAAA,SAAA+X,GACA,IAAAtU,EAAAsU,EAAAtU,QACA,OAAA0uO,GAAAtuM,OAAA3iC,EAAAP,KAAA4xO,GAAAD,UAAA7uO,EAAA0X,QAAA1X,EAAAkpC,UAAAlpC,EAAAmpC,SAAAnpC,EAAAopC,aAAA,QAKAotM,GAAA,SAAA9lO,EAAA8O,GACA,OAAAkB,GAAAhQ,EAAA,KAAA8O,GAAA/iB,KAAA,SAAA+5D,GACA,OAAA91C,GAAA81C,EAAA,QAAAh3C,GAAA/iB,KAAA,SAAA61I,GACA,IAAAx6E,EAAAyf,GAAA+6D,EAAA,MACA,OAAAh3I,GAAAk7D,EAAAsB,EAAA,IACA+4K,GAAAv+F,EAAA,SAAAx4H,GACA,OAAA6zB,GAAA7zB,GAAAhe,UACa0jB,GAAAjjB,IAAA,SAAAmF,GACb,IAAA+0O,EAAArpM,GAAA1rC,GACA,OAAAgtO,GAAAtuM,OAAA3iC,EAAAP,KAAA4xO,GAAAD,UAAAntO,EAAA+0O,EAAA/0O,EAAA+0O,KAAA,KAGAh5O,EAAArC,YAKAs7O,GAAA,SAAAhmO,EAAA8O,GACA,OAAAkB,GAAAhQ,EAAA,KAAA8O,GAAA/iB,KAAA,SAAA+5D,GACA,OAAA91C,GAAA81C,EAAA,QAAAh3C,GAAA/iB,KAAA,SAAA61I,GACA,IAAAx6E,EAAAyf,GAAA+6D,EAAA,MACA,OAAAh3I,GAAAk7D,EAAAsB,IAAA3/D,OAAA,IACA24O,GAAAx+F,EAAA,SAAAx4H,GACA,OAAA4zB,GAAA5zB,GAAAhe,UACa0jB,GAAAjjB,IAAA,SAAAmxC,GACb,OAAAghM,GAAAtuM,OAAA3iC,EAAAP,KAAA4xO,GAAAD,UAAAnhM,EAAA,EAAAA,EAAA,UAGAjwC,EAAArC,YAKAiwF,GAAA,SAAA6lJ,EAAAjrN,EAAAzG,EAAAimB,EAAA/0B,EAAAguB,EAAAswM,GACA,OAAAsH,GAAApF,EAAA1xN,EAAAimB,EAAA/0B,EAAAguB,GAAAjiC,KAAA,SAAA6X,GACA,OAAAi7N,GAAAl8N,OAAA4S,EAAAzG,EAAAlL,EAAAoD,QAAApD,EAAA60B,SAAA6lM,MAGA2H,GAAA,CACAvnL,YACAi8B,UACAmrJ,gBACAE,kBAGAE,GAAA,SAAArzO,EAAAic,GACA,OAAAkB,GAAAnd,EAAA,QAAAic,IAEA,SAAAq3N,GAAA3F,EAAAjrN,EAAAzG,EAAA2vN,GACA,IAAA/vG,EAAA3hI,EAAArC,OACA07O,EAAA,WACA13G,EAAA3hI,EAAArC,QAEAghB,EAAA,SAAAhB,GACA+zN,EAAAtzL,MAAA51B,GACAm5G,EAAAw3G,GAAAx7N,EAAA7X,SAAAic,IAEAhD,EAAA,SAAApB,GACAgkH,EAAA5iI,KAAA,SAAAkb,GACAy3N,EAAAG,kBAAArpN,GACA2wN,GAAAx7N,EAAA7X,SAAAic,GAAAhjB,KAAA,SAAA2sC,GACA03K,GAAAnB,SAAAhoM,EAAAyxB,EAAA3pB,GAAAhjB,KAAA,SAAA0yO,GACA,IAAArvB,EAAAqvB,EAAArvB,QAAA9jN,MAAA,KACA8jN,EAAA1nN,OAAA,OAAA0nN,EAAA1nN,SAAAmD,GAAAoc,EAAAyxB,MACAgmM,EAAAH,YAAA/oN,EAAA45L,EAAAqvB,EAAAx3N,QAAAw3N,EAAA/lM,UACA+nM,EAAA6F,eAAA5tM,WAMA5sB,EAAA,SAAAqyK,GACAxvD,EAAA5iI,KAAAs6O,IAEA,OACA16N,YACAI,YACAD,WAIA,IAAA0/L,GAAA,CACAuzB,SAAA5rN,GACAyuN,OAAAzB,GACA7rM,SAAA6D,GAAAzkB,OACA6xN,WAAAZ,GAAAE,QACAW,QAAAb,GAAAP,UACApD,QAAAO,GAAAhB,YAEAh1B,GAAA,CACAwzB,SAAA97B,GACA2+B,OAAA1B,GACA5rM,SAAA6D,GAAAzkB,OACA6xN,WAAAZ,GAAAC,MACAY,QAAAb,GAAAN,QACArD,QAAAO,GAAAjB,UAEAiG,GAAA,CACA/6B,QACAD,OAGAi7B,GAAA,SAAA10O,GACA,gBAAA20O,GACA,OAAAA,IAAA30O,IAGA40O,GAAAF,GAAA,IACAG,GAAAH,GAAA,IACAI,GAAA,SAAAH,GACA,OAAAA,GAAA,IAAAA,GAAA,IAEAI,GAAA,CACAvwM,IAAA,CACAwwM,WAAAN,GAAA,IACArxC,UAAAqxC,GAAA,KAEA9vM,IAAA,CACAowM,WAAAN,GAAA,IACArxC,UAAAqxC,GAAA,KAEAE,QACAC,UACAC,iBAGAG,GAAA,SAAAC,GACA,OACAphN,KAAAohN,EAAAphN,OACAC,IAAAmhN,EAAAnhN,MACA0B,MAAAy/M,EAAAz/M,QACAC,OAAAw/M,EAAAx/M,SACAF,MAAA0/M,EAAA1/M,QACAjC,OAAA2hN,EAAA3hN,WAGA4hN,GAAA,CAAgBF,UAGhBl2L,IADA1oC,KAAA1C,QAAAtB,WACA,SAAAijB,GACA,IAAA7mB,OAAA5U,IAAAy7B,IAAA/lB,MAAAra,EAAAwZ,SACAzY,EAAAwY,EAAAiP,KAAAiX,YAAAlmB,EAAAwS,gBAAA0T,WACAjlB,EAAAjB,EAAAiP,KAAA+W,WAAAhmB,EAAAwS,gBAAAwT,UACA,OAAAR,GAAAh+B,EAAAyZ,KAEA0lO,GAAA,SAAAn/O,EAAAyZ,EAAA4lB,GACA,IAAA7mB,OAAA5U,IAAAy7B,IAAA/lB,MAAAra,EAAAwZ,SACA4lB,EAAA7lB,EAAAyS,YACAoT,EAAAs+M,SAAA38O,EAAAyZ,IAGA2lO,GAAA,SAAA/gN,GACA,IAAA3kB,EAAA,SAAA1Z,EAAAyZ,GACA,OAAAE,GAAAJ,UAAAI,GAAAZ,QAAAslB,EAAA5lB,UAAAzY,EAAAyZ,IAEA6oH,EAAA,SAAAhhH,GACA,OAAAA,EAAAhI,MAAA+jB,yBAEAu9M,EAAA,SAAA17N,EAAAwxB,EAAAC,EAAAC,GACA,IAAAuG,EAAA7F,GAAAf,MAAArxB,EAAAwxB,EAAAC,EAAAC,GACA,OAAAwG,GAAA/Y,EAAA8Y,GAAApzC,IAAAm7O,GAAAF,QAEA9nM,EAAA,WACA,OAAArD,GAAAxV,GAAAt6B,IAAA,SAAAs7O,GACA,OAAA/I,GAAAF,eAAA/3M,EAAAghN,MAGAlC,EAAA,SAAAE,GACA,IAAA9wM,EAAA+E,GAAA/E,SAAA8wM,EAAAn+N,QAAAm+N,EAAA1sM,UACA,OAAA2lM,GAAAF,eAAA/3M,EAAAkO,IAEA4vM,EAAA,SAAAn8O,EAAAyZ,GACA,OAAA+7N,GAAAn3M,EAAAr+B,EAAAyZ,GAAA1V,IAAA,SAAAwsC,GACA,OAAA4lM,GAAAvuM,OAAA2I,EAAArxB,QAAAqxB,EAAAG,UAAAH,EAAAI,SAAAJ,EAAAK,cAGA0uM,EAAA,WACAj8L,GAAAhlB,IAEAkhN,EAAA,SAAAC,QACA,IAAAA,IACAA,GAAA,GAEA3rM,GAAAxV,GAAAr6B,KAAA,SAAAmzC,GACA,OAAAA,EAAA/zC,KAAA,SAAA2tC,GACA,OAAAA,EAAAkD,SAAAurM,IACW,SAAAvuM,EAAAC,GACX,IAAAjB,EAAAuvM,EAAAvuM,EAAAC,EACAkkM,GAAA/2M,EAAA4R,MACW,SAAA/wB,EAAAwxB,EAAAC,EAAAC,GACX,IAAA13B,EAAAsmO,EAAAtgO,EAAAyxB,EACA/P,EAAA4+M,EAAA9uM,EAAAE,EACAukM,GAAA92M,EAAAnlB,EAAA0nB,EAAA1nB,EAAA0nB,QAIA29M,EAAA,SAAAj9N,GACAi0N,GAAAl3M,EAAA/c,IAEAm+N,EAAA,SAAAtoM,GACAg+L,GAAA92M,EAAA8Y,EAAAj4B,QAAAi4B,EAAAzG,UAAAyG,EAAAxG,SAAAwG,EAAAvG,YAEA8uM,EAAA,SAAAxgO,EAAAyxB,GACAykM,GAAA/2M,EAAAnf,EAAAyxB,IAEA8rM,EAAA,WACA,OAAAp+M,EAAA4yI,aAEA0uE,EAAA,WACA,IAAApyM,EAAAub,GAAAnvC,GAAAZ,QAAAslB,EAAA5lB,WACA,OAAA80B,EAAAzP,OAEA6+M,EAAA,SAAA38O,EAAAyZ,GACA0lO,GAAAn/O,EAAAyZ,EAAAE,GAAAZ,QAAAslB,EAAA5lB,YAEA,OACAiB,mBACA4oH,UACAs4G,gBACA1jM,eACAimM,YACAhB,iBACAmD,iBACAC,oBACAE,eACAC,uBACAnB,iBACA9B,iBACAkD,aACAhD,aAIAiD,GAAA51N,EAAA,eACA01J,GAAA,SAAArhJ,EAAA5Q,EAAAzG,EAAA2vN,GACA,IAAA+B,EAAA0G,GAAA/gN,GACArb,EAAAq7N,GAAA3F,EAAAjrN,EAAAzG,EAAA2vN,GACA,OACA/yN,UAAAZ,EAAAY,UACAI,UAAAhB,EAAAgB,UACAD,QAAAf,EAAAe,UAGA87N,GAAA,SAAAxhN,EAAA5Q,EAAAzG,EAAA2vN,GACA,IAAA+B,EAAA0G,GAAA/gN,GACAyhN,EAAA,WAEA,OADAnJ,EAAAtzL,MAAA51B,GACAxoB,EAAArC,QAEAuhB,EAAA,SAAAvB,EAAA1D,EAAAwxB,EAAAC,EAAAC,EAAA3D,GACA,IAAA8yM,EAAAn9N,EAAA4W,MACAklN,EAAAqB,EAAA5sL,MACAI,GAAA,IAAAwsL,EAAAxsL,SACAtwC,EAAAolM,GAAAR,SAAAp6L,EAAAkpN,EAAAt3B,oBAAAj8M,KAAA,WACA,OAAA07O,GAAAF,OAAAF,IAAAnrL,EACAtzD,EAAAk+O,GAAAtrJ,OAAA6lJ,EAAAjrN,EAAAzG,EAAAw3N,GAAA/6B,KAAA9yK,EAAAzxB,EAAAy3N,EAAAH,aACWsI,GAAAH,KAAAD,IAAAnrL,EACXtzD,EAAAk+O,GAAAtrJ,OAAA6lJ,EAAAjrN,EAAAzG,EAAAw3N,GAAAh7B,GAAA7yK,EAAAzxB,EAAAy3N,EAAAH,aACWsI,GAAAF,OAAAF,GACXz+O,EAAAk+O,GAAAvnL,SAAA8hL,EAAA1xN,EAAAw3N,GAAA/6B,KAAA9yK,EAAAzxB,EAAAi/N,GAAAD,eACWY,GAAAH,KAAAD,GACXz+O,EAAAk+O,GAAAvnL,SAAA8hL,EAAA1xN,EAAAw3N,GAAAh7B,GAAA7yK,EAAAzxB,EAAAi/N,GAAAH,cAEA/4O,EAAArC,MAES,SAAAkvD,GACT,IAAAlL,EAAA,SAAApJ,GACA,kBACA,IAAArd,EAAAkC,GAAAmb,EAAA,SAAArC,GACA,OAAA47L,GAAAnwL,OAAAzL,EAAAmkB,OAAAnkB,EAAA0hK,OAAApvL,EAAAqkC,EAAA6kL,KAEA,OAAAx2M,EAAA/8B,KAAA,WACA,OAAAilN,GAAAL,SAAAv6L,EAAAkpN,EAAA1uB,wBAAA0uB,EAAA5uB,wBAAAhkN,IAAA,SAAAs5G,GACA,IAAA9wE,EAAAuyM,GAAAF,OAAAF,IAAAzxM,EAAAmgK,UAAAsxC,GAAAtuM,GAAArkB,MAAAqkB,GAAAzkB,OAGA,OAFA+sN,EAAAgH,qBAAAtvM,GAAAT,GAAA0tE,EAAAnoE,QAAA,GAAA3I,EAAA8wE,EAAAy8B,UACA68F,EAAAtzL,MAAA51B,GACAyoN,GAAAtuM,OAAA3iC,EAAArC,QAAA,MAEe,SAAAwC,GACf,OAAAH,EAAAP,KAAAwxO,GAAAtuM,OAAA3iC,EAAArC,QAAA,QAIA,OAAAk8O,GAAAF,OAAAF,IAAAnrL,EACA3M,EAAA,CAAAg5L,GAAA,OACWd,GAAAH,KAAAD,IAAAnrL,EACX3M,EAAA,CAAAg5L,IAAA,OACW3yM,EAAA8xM,WAAAL,IAAAnrL,EACX3M,EAAA,CACAg5L,GAAA,MACAA,IAAA,OAEW3yM,EAAAmgK,UAAAsxC,IAAAnrL,EACX3M,EAAA,CACAg5L,GAAA,KACAA,GAAA,OAEWd,GAAAD,aAAAH,KAAA,IAAAnrL,EACXusL,EAEA76O,EAAArC,OAGA,OAAAqgB,KAEAmB,EAAA,SAAAxB,EAAA1D,EAAAwxB,EAAAC,EAAAC,GACA,OAAAy3K,GAAAR,SAAAp6L,EAAAkpN,EAAAt3B,oBAAAj8M,KAAA,WACA,IAAA28O,EAAAn9N,EAAA4W,MACAklN,EAAAqB,EAAA5sL,MACAI,GAAA,IAAAwsL,EAAAxsL,SACA,WAAAA,EACAtuD,EAAArC,OAEAk8O,GAAAD,aAAAH,GACA3H,GAAAR,KAAA9oN,EAAAzG,EAAA9H,EAAAwxB,EAAAC,EAAAC,EAAA+lM,EAAAH,aAEAvxO,EAAArC,QAESqC,EAAArC,OAET,OACAuhB,UACAC,UAGA+X,GAAA,SAAAkC,EAAA5Q,EAAAzG,EAAA2vN,GACA,IAAA+B,EAAA0G,GAAA/gN,GACA,gBAAAnf,EAAAyxB,GACAgmM,EAAAG,kBAAArpN,GACA46L,GAAAnB,SAAAhoM,EAAAyxB,EAAA3pB,GAAAhjB,KAAA,SAAA0yO,GACA,IAAArvB,EAAAqvB,EAAArvB,QAAA9jN,MAAA,IACAozO,EAAAH,YAAA/oN,EAAA45L,EAAAqvB,EAAAx3N,QAAAw3N,EAAA/lM,UACA+nM,EAAA6F,eAAA5tM,GACA+nM,EAAA6G,wBAIAS,GAAA,CACAtgE,SACAmgE,YACA1jN,aAGAgnC,GAAA,SAAA7hD,EAAAoS,GACA1vB,EAAA0vB,EAAA,SAAA1zB,GACAu4B,GAAAjX,EAAAthB,MAIA6zK,GAAA,SAAA77I,GACA,gBAAA1W,GACA4W,GAAA5W,EAAA0W,KAGAioN,GAAA,SAAAvsN,GACA,gBAAApS,GACA6hD,GAAA7hD,EAAAoS,KAIAwsN,GAAA,SAAAC,GACA,IAAAC,EAAAvsE,GAAAssE,EAAAruL,YACAuuL,EAAAJ,GAAA,CACAE,EAAAruL,WACAquL,EAAAp3B,eACAo3B,EAAAr3B,kBAEAzlK,EAAA,SAAA51B,GACA,IAAAq6L,EAAA/oI,GAAAtxD,EAAA0yN,EAAA9gC,oBACAr7M,EAAA8jN,EAAAu4B,IAEA7J,EAAA,SAAA/oN,EAAA+8D,EAAAtrE,EAAAyxB,GACA0S,EAAA51B,GACAzpB,EAAAwmF,EAAA41J,GACAloN,GAAAhZ,EAAAihO,EAAAr3B,iBACA5wL,GAAAyY,EAAAwvM,EAAAp3B,iBAEA,OACA+tB,kBAAAzzL,EACAA,QACAmzL,cACAn3B,iBAAA8gC,EAAA9gC,iBACA4I,sBAAAk4B,EAAAl4B,sBACAF,qBAAAo4B,EAAAp4B,uBAGAu4B,GAAA,SAAAH,EAAAI,EAAAC,GACA,IAAAC,EAAA,SAAAn/N,GACAsL,GAAAtL,EAAA6+N,EAAAruL,YACAllC,GAAAtL,EAAA6+N,EAAAr3B,iBACAl8L,GAAAtL,EAAA6+N,EAAAp3B,iBAEA23B,EAAA,SAAAp/N,GACAnJ,GAAAmJ,EAAA6+N,EAAAruL,WAAA,MAEAzO,EAAA,SAAA51B,GACAqpN,EAAArpN,GACA+yN,KAEA1J,EAAA,SAAArpN,GACA,IAAAq6L,EAAA/oI,GAAAtxD,EAAA0yN,EAAA9gC,oBACAr7M,EAAA8jN,EAAA24B,IAEAjK,EAAA,SAAA/oN,EAAA+8D,EAAAtrE,EAAAyxB,GACA0S,EAAA51B,GACAzpB,EAAAwmF,EAAAk2J,GACAvoO,GAAA+G,EAAAihO,EAAAr3B,gBAAA,KACA3wM,GAAAw4B,EAAAwvM,EAAAp3B,eAAA,KACAw3B,EAAA/1J,EAAAtrE,EAAAyxB,IAEA,OACAmmM,oBACAzzL,QACAmzL,cACAn3B,iBAAA8gC,EAAA9gC,iBACA4I,sBAAAk4B,EAAAl4B,sBACAF,qBAAAo4B,EAAAp4B,uBAGA44B,GAAA,CACAT,WACAI,WAGAM,GAAA,SAAAt3K,EAAAy7J,EAAA/a,GACA,IAAA62B,EAAAv3K,EAAAtiE,MAAA,EAAA+9N,IAAAplO,OAAA,GAAAw6D,MAAA,GACA2mL,EAAA1sB,GAAAysB,EAAA72B,GACA,OAAA/lN,EAAA68O,EAAA,SAAA73N,GACA,IAAA83N,EAAA93N,EAAAuhE,QAAAxjF,MAAA,EAAA+9N,IAAAplO,OAAA,GAAAy6D,SAAA,GACA,OAAAr2D,EAAAg9O,EAAA,SAAAtjL,GACA,OAAAA,EAAAn8C,eAIA0/N,GAAA,SAAA13K,EAAAy7J,EAAA/a,GACA,IAAAi3B,EAAA33K,EAAAtiE,MAAA+9N,EAAA,GAAA5qK,MAAA4qK,EAAA,GAAA7nB,UAAA,EAAA5zI,EAAA3pE,QACAuhP,EAAA9sB,GAAA6sB,EAAAj3B,GACA,OAAA/lN,EAAAi9O,EAAA,SAAAj4N,GACA,IAAA83N,EAAA93N,EAAAuhE,QAAAxjF,MAAA+9N,EAAA,GAAA3qK,SAAA2qK,EAAA,GAAA5nB,UAAA,GAAAl0L,EAAAuhE,QAAA7qF,QACA,OAAAoE,EAAAg9O,EAAA,SAAAtjL,GACA,OAAAA,EAAAn8C,eAIA6/N,GAAA,SAAArnG,EAAA/uI,EAAAi/M,GACA,IAAAl3L,EAAAwqL,GAAAP,UAAAjjE,GACAwkE,EAAAH,GAAAl0M,SAAA6oB,GACA0gE,EAAAuhI,GAAAzW,EAAAvzM,GACA,OAAAyoF,EAAAzvF,IAAA,SAAAghO,GACA,IAAAz7J,EAAAwqJ,GAAAF,OAAAtV,EAAA0L,GAAA,GACA9mC,EAAA09D,GAAAt3K,EAAAy7J,EAAA/a,GACA7mC,EAAA69D,GAAA13K,EAAAy7J,EAAA/a,GACA,OACA9mC,gBACAC,uBAIAi+D,GAAA,CAAsBD,kBAEtBE,GAAA,SAAAt/O,GACA,WAAAs2B,GAAA1e,GAAAZ,QAAAhX,EAAAgJ,QAAA,8BAEA,SAAAu2O,GAAA5rK,EAAA+9J,EAAA8N,GACA,IAAAC,EAAA52N,GAAA,CACA,YACA,YACA,UACA,QACA,WACA,IACA5H,EAAA/d,EAAArC,OACAi9M,EAAA+jB,GAAAluJ,GACA6qK,EAAA,SAAA/1J,EAAAtrE,EAAAyxB,GACA4wM,EAAAntG,UAAApwI,KAAA,SAAAowI,GACA,IAAA85F,EAAApxB,GAAAhjE,MAAA56H,GACAgvN,EAAAlqO,KAAA,SAAA81I,GACA,IAAAthI,EAAAmB,GAAAZ,QAAA28D,EAAA0D,UACA4wI,EAAAvJ,GAAAN,eAAAjhN,EAAAsZ,EAAAqnM,GACA58B,EAAAm+D,GAAAD,cAAArnG,EAAA1F,EAAA41E,GACAoa,GAAA1uJ,EAAA8U,EAAAtrE,EAAAyxB,EAAAsyI,QAIAu9D,EAAA,WACAnc,GAAA3uJ,IAEAihK,EAAAgK,GAAAL,OAAAt3B,GAAAu3B,EAAAC,GACA9qK,EAAA/lC,GAAA,gBAAA5tC,GACA,IAAAs8B,EAAAq3C,EAAAtkC,SACA3pB,EAAAs6M,GAAArsJ,GACA1uD,EAAAmgM,GAAAzxI,GACA+rK,EAAA,WACA,IAAAtqM,EAAAu+B,EAAA5kC,UACA5xB,EAAAvF,GAAAZ,QAAAo+B,EAAAnH,YACA2/E,EAAAh2G,GAAAZ,QAAAo+B,EAAAvC,UACA+hC,EAAAqwI,GAAAd,UAAApJ,GAAAhjE,MAAA,CACA56H,EACAywG,IAEAh5C,EAAAvzE,KAAA,WACAuzO,EAAAtzL,MAAA57B,IACWvoB,IAEXwiP,EAAA1B,GAAAtgE,MAAArhJ,EAAA5W,EAAAT,EAAA2vN,GACAgL,EAAA3B,GAAAH,SAAAxhN,EAAA5W,EAAAT,EAAA2vN,GACAx6M,EAAA6jN,GAAA7jN,SAAAkC,EAAA5W,EAAAT,EAAA2vN,GACAiL,EAAA,SAAAh/N,GACA,WAAAA,EAAA4W,MAAA+5B,UAEAmiB,EAAA/lC,GAAA,+BAAA5tC,GACAo6B,EAAAp6B,EAAAmd,MAAAnd,EAAA4uC,UAEA,IAAAkxM,EAAA,SAAAj/N,EAAA4zI,GACAorF,EAAAh/N,KAGA4zI,EAAAv8D,QACAr3E,EAAAq3E,OAEAu8D,EAAA1lH,YAAA9sC,KAAA,SAAA89O,GACA,IAAAv1M,EAAA+E,GAAA/E,SAAAu1M,EAAA5iO,QAAA4iO,EAAAnxM,UACAI,EAAAkC,GAAA5U,EAAAkO,GACAmpC,EAAA5kC,UAAA2nI,OAAA1nI,OAGA3sB,EAAA,SAAAxB,GACA,IAAAm/N,EAAAC,EAAAp/N,GACA,GAAAm/N,EAAAvoN,MAAA+5B,UAAAurL,GAAAD,aAAAkD,EAAAvoN,MAAA25B,OAAA,CACA,IAAApiB,EAAA2kC,EAAA5kC,UAAAkrC,SACA98D,EAAAvF,GAAAZ,QAAAg4B,EAAAC,gBACA2+E,EAAAh2G,GAAAZ,QAAAg4B,EAAAyB,cACAmvM,EAAAv9N,MAAA29N,EAAA7iO,EAAA6xB,EAAAwB,YAAAo9E,EAAA5+E,EAAA0B,WAAAzuC,KAAA,SAAAwyJ,GACAqrF,EAAAE,EAAAvrF,OAIAryI,EAAA,SAAAvB,GACA,IAAAm/N,EAAAC,EAAAp/N,GACA6wN,IAAAzvO,KAAA,SAAAwpH,GACAA,EAAA+kH,aAEA,IAAAxhM,EAAA2kC,EAAA5kC,UAAAkrC,SACAhrC,EAAAr3B,GAAAZ,QAAA28D,EAAA5kC,UAAAd,YACA9wB,EAAAvF,GAAAZ,QAAAg4B,EAAAC,gBACA2+E,EAAAh2G,GAAAZ,QAAAg4B,EAAAyB,cACAvF,EAAAu1L,GAAApU,YAAAp9K,GAAA/C,QAAA6wM,GAAAnwM,IAAAmwM,GAAAvwM,IACAozM,EAAAx9N,QAAA49N,EAAA7iO,EAAA6xB,EAAAwB,YAAAo9E,EAAA5+E,EAAA0B,UAAAxF,GAAAjpC,KAAA,SAAAwyJ,GACAqrF,EAAAE,EAAAvrF,KAEAi9E,IAAAzvO,KAAA,SAAAwpH,GACAA,EAAAglH,cAGAyP,EAAA,SAAAr/N,GACA,OAAAA,EAAAjhB,eAAA,MAAAihB,EAAAjhB,eAAA,MAEAqgP,EAAA,SAAAp/N,GACA,IAAA7X,EAAA4O,GAAAZ,QAAA6J,EAAA7X,QACA6c,EAAA,WACAhF,EAAAw3E,mBAEA7xE,EAAA,WACA3F,EAAA0F,kBAEA2xE,EAAA56F,EAAAkpB,EAAAX,GACA,OACA7c,OAAAlL,EAAAkL,GACA/K,EAAAH,EAAAoiP,EAAAr/N,KAAA5iB,EAAA,MACAyZ,EAAA5Z,EAAAoiP,EAAAr/N,KAAAnJ,EAAA,MACAmO,OACAW,UACA0xE,OACAzgE,IAAA35B,EAAA+iB,KAGAs/N,EAAA,SAAA1oN,GACA,WAAAA,EAAA6tD,QAEA86J,EAAA,SAAA3oN,GACA,YAAA51B,IAAA41B,EAAAo6D,SAGA,OAAAp6D,EAAAo6D,UAEAwuJ,EAAA,SAAArgP,GACAmgP,EAAAngP,IAAAs/O,GAAAt/O,IACA2/O,EAAA99N,UAAAo+N,EAAAjgP,KAGAsgP,EAAA,SAAAtgP,GACAogP,EAAApgP,IAAAs/O,GAAAt/O,IACA2/O,EAAA19N,UAAAg+N,EAAAjgP,KAGAugP,EAAA,SAAAvgP,GACAmgP,EAAAngP,IAAAs/O,GAAAt/O,IACA2/O,EAAA39N,QAAAi+N,EAAAjgP,KAGAwgP,EAAA,WACA,IAAAC,EAAAvqO,EAAA0B,GAAAZ,QAAA0O,IACAg7N,EAAAxqO,EAAA,GACAyqO,EAAA,SAAArhP,GACA,IAAA0J,EAAA4O,GAAAZ,QAAA1X,EAAA0J,QACA,UAAA5E,GAAA4E,IAAA,OAAA5E,GAAA4E,GAAA,CACA,IAAA43O,EAAAH,EAAA14O,MACA84O,EAAAH,EAAA34O,MACAhH,GAAA6/O,EAAA53O,IAAA1J,EAAAwhP,UAAAD,EAAA,MACAvhP,EAAAinB,iBACA6T,EAAApxB,MAGAy3O,EAAArqO,IAAApN,GACA03O,EAAAtqO,IAAA9W,EAAAwhP,YAEA,OAAkBH,aAElBI,EAAAP,IACA7sK,EAAA/lC,GAAA,YAAAyyM,GACA1sK,EAAA/lC,GAAA,YAAA0yM,GACA3sK,EAAA/lC,GAAA,UAAA2yM,GACA5sK,EAAA/lC,GAAA,WAAAmzM,EAAAJ,UACAhtK,EAAA/lC,GAAA,QAAAvrB,GACAsxD,EAAA/lC,GAAA,UAAAxrB,GACAuxD,EAAA/lC,GAAA,aAAA8xM,GACAz+N,EAAA/d,EAAAP,KAAA88O,EAAA,CACA59N,UAAAw+N,EACAp+N,UAAAq+N,EACAt+N,QAAAu+N,EACAl+N,QACAD,eAGA,IAAAu8E,EAAA,WACA19E,EAAAhf,KAAA,SAAAgf,OAGA,OACAqgC,MAAAszL,EAAAtzL,MACAq9C,WAIA,IAAAqiJ,GAAA,SAAArtK,GACA,IAAA5rE,EAAA,WACA,IAAA2d,EAAAs6M,GAAArsJ,GACA,OAAAkzI,GAAAf,SAAApgM,EAAAuhM,GAAA3J,oBAAAj8M,KAAA,WACA,YAAAQ,IAAA8xE,EAAA5kC,UAAAd,WACAo5K,GAAAxmN,OAEAwmN,GAAAhgK,OAAAssB,EAAA5kC,YAES,SAAA05C,GACT,OAAA4+H,GAAA//J,SAAAmhC,MAGA,OAAc1gF,QAGdk5O,GAAA,SAAAttK,EAAA2zI,GACA,IAAAj1E,EAAAn8H,EAAAhT,EAAArC,QACAqgP,EAAAhrO,EAAA,IACAirO,EAAA,WACA,OAAArV,GAAAn4J,GAAAzxE,KAAA,SAAAgqO,GACA,IAAAn0F,EAAAgjE,GAAAhjE,MAAAm0F,GACA,OAAAn0F,EAAA/1I,IAAA,SAAA+1I,GACA,kBAAA3zI,GAAA8nO,GACAhkB,GAAA7N,QAAA6xB,GAEAhkB,GAAAh1H,QAAAo0H,EAAAvvE,EAAAm0F,QAKAkV,EAAA,WACA/uG,EAAAj8H,IAAAjM,GAAAg3O,EAAAh3O,IACAlI,EAAAi/O,EAAAn5O,MAAA,SAAAmZ,GACA,OAAAA,OAGA6kE,EAAA,SAAA1qD,EAAAypD,GACA,IAAA5jE,EAAA,WACA,OAAAmxH,EAAAtqI,MAAA1G,KAAA,WACAg6B,EAAA2sD,aAAA,IACW,SAAAqqD,GACXh3G,EAAA2sD,YAAAlD,EAAAutD,OAKA,OAFAnxH,IACAggO,EAAA9qO,IAAA8qO,EAAAn5O,MAAAxJ,OAAA,CAAA2iB,KACA,WACAggO,EAAA9qO,IAAA/T,EAAA6+O,EAAAn5O,MAAA,SAAA6yB,GACA,OAAAA,IAAA1Z,OAIAmgO,EAAA,SAAAhmN,GACA,OAAA0qD,EAAA1qD,EAAA,SAAAh4B,GACA,YAGAi+O,EAAA,SAAAjmN,GACA,OAAA0qD,EAAA1qD,EAAA,SAAAg3G,GACA,kBAAAjuI,GAAAiuI,EAAA9yH,cAGAgiO,EAAA,SAAAlmN,GACA,OAAA0qD,EAAA1qD,EAAA,SAAAg3G,GACA,OAAAA,EAAAo1E,WAAAxmN,YAGAugP,EAAA,SAAAnmN,GACA,OAAA0qD,EAAA1qD,EAAA,SAAAg3G,GACA,OAAAA,EAAAk1E,aAAAtmN,YAIA,OADA0yE,EAAA/lC,GAAA,iCAAAwzM,GACA,CACAC,eACAC,mBACAC,mBACAC,qBACAJ,eACA/uG,QAAA,WACA,OAAAA,EAAAtqI,SAKA05O,GAAA,SAAA9tK,EAAA6rK,GACA7rK,EAAAgI,GAAAC,SAAA8lK,cAAA,SACAjjK,QAAA,QACAtL,KAAA,QACAyH,MAAA,SAAAuV,GACA,OAAAA,EAAA,4EAGA,IAAAkiF,EAAA,SAAAk7B,GACA,kBACA,OAAA55H,EAAAqc,YAAAu9G,KAGA55H,EAAAgI,GAAAC,SAAA22F,UAAA,cACA9zF,QAAA,mBACAlL,SAAA8+F,EAAA,iBACAl/F,KAAA,QACA4S,QAAAy5J,EAAA6B,eAEA1tK,EAAAgI,GAAAC,SAAA22F,UAAA,eACA9zF,QAAA,eACAlL,SAAA8+F,EAAA,kBACAl/F,KAAA,qBACA4S,QAAAy5J,EAAA6B,eAEA1tK,EAAAgI,GAAAC,SAAA22F,UAAA,kBACA9zF,QAAA,kBACAlL,SAAA8+F,EAAA,qBACAl/F,KAAA,wBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,mBACA9zF,QAAA,cACAlL,SAAA8+F,EAAA,sBACAl/F,KAAA,oBACA4S,QAAAy5J,EAAA+B,mBAEA5tK,EAAAgI,GAAAC,SAAA22F,UAAA,mBACA9zF,QAAA,aACAlL,SAAA8+F,EAAA,sBACAl/F,KAAA,oBACA4S,QAAAy5J,EAAAgC,qBAEA7tK,EAAAgI,GAAAC,SAAA22F,UAAA,wBACA9zF,QAAA,oBACAlL,SAAA8+F,EAAA,2BACAl/F,KAAA,yBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,uBACA9zF,QAAA,mBACAlL,SAAA8+F,EAAA,0BACAl/F,KAAA,yBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,kBACA9zF,QAAA,aACAlL,SAAA8+F,EAAA,qBACAl/F,KAAA,mBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,iBACA9zF,QAAA,iBACAlL,SAAA8+F,EAAA,oBACAl/F,KAAA,uBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,wBACA9zF,QAAA,uBACAlL,SAAA8+F,EAAA,2BACAl/F,KAAA,6BACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,uBACA9zF,QAAA,sBACAlL,SAAA8+F,EAAA,0BACAl/F,KAAA,4BACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,kBACA9zF,QAAA,gBACAlL,SAAA8+F,EAAA,qBACAl/F,KAAA,sBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,eACA9zF,QAAA,UACAlL,SAAA8+F,EAAA,kBACAl/F,KAAA,wBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,gBACA9zF,QAAA,WACAlL,SAAA8+F,EAAA,mBACAl/F,KAAA,wBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,uBACA9zF,QAAA,mBACAlL,SAAA8+F,EAAA,0BACAl/F,KAAA,wBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,sBACA9zF,QAAA,kBACAlL,SAAA8+F,EAAA,yBACAl/F,KAAA,wBACA4S,QAAAy5J,EAAA8B,mBAEA3tK,EAAAgI,GAAAC,SAAA22F,UAAA,qBACA9zF,QAAA,eACAlL,SAAA8+F,EAAA,kBACAl/F,KAAA,WAGAwuK,GAAA,SAAAhuK,GACA,IAAA89J,EAAA,SAAA15F,GACA,OAAApkE,EAAAp8D,IAAAjW,GAAAy2I,EAAA,UAAApkE,EAAAhuD,UAAAngB,SAAAuyI,IAEAv3C,EAAA8qE,GAAA33F,GACA6sB,EAAA5iG,OAAA,GACA+1E,EAAAgI,GAAAC,SAAAgmK,kBAAA,SACAh8N,UAAA6rN,EACA3sL,MAAA07C,EACAhqF,MAAA,OACA6oB,SAAA,UAIA8uK,GAAA,CACAszC,cACAE,gBAGAE,GAAA,SAAAluK,EAAA6rK,GACA,IAAAntE,EAAA,SAAAk7B,GACA,kBACA,OAAA55H,EAAAqc,YAAAu9G,KAGAu0C,EAAA,SAAA7nN,GACA,IAAAs8B,EAAAt8B,EAAAs8B,QAAAC,EAAAv8B,EAAAu8B,WACAmd,EAAAob,YAAAC,SAAA,WACAs7I,GAAAxpK,OAAA6S,EAAAnd,EAAAD,KAEAod,EAAA23J,aAEAyW,EAAA,CACA1qO,KAAA,mBACA0uE,QAAAy5J,EAAA6B,aACA9tK,SAAA8+F,EAAA,kBAEA2vE,EAAA,CACA3qO,KAAA,eACA87D,KAAA,qBACA4S,QAAAy5J,EAAA6B,aACA9tK,SAAA8+F,EAAA,mBAEA4vE,EAAA,CACA,CACA39O,KAAA,WACA+S,KAAA,oBACA87D,KAAA,yBACAI,SAAA8+F,EAAA,2BACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,mBACA87D,KAAA,yBACAI,SAAA8+F,EAAA,0BACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,aACA87D,KAAA,mBACAI,SAAA8+F,EAAA,qBACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,iBACA87D,KAAA,uBACAI,SAAA8+F,EAAA,oBACAtsF,QAAAy5J,EAAA8B,kBAEA,CAASh9O,KAAA,aACT,CACAA,KAAA,WACA+S,KAAA,UACAk8D,SAAA8+F,EAAA,kBACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,WACAk8D,SAAA8+F,EAAA,mBACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,mBACAk8D,SAAA8+F,EAAA,0BACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,kBACAk8D,SAAA8+F,EAAA,yBACAtsF,QAAAy5J,EAAA8B,mBAGAlpL,EAAA,CACA9zD,KAAA,iBACA+S,KAAA,MACAg6E,gBAAA,WACA,OAAA4wJ,IAGAC,EAAA,CACA,CACA59O,KAAA,WACA+S,KAAA,uBACA87D,KAAA,6BACAI,SAAA8+F,EAAA,2BACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,sBACA87D,KAAA,4BACAI,SAAA8+F,EAAA,0BACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,gBACA87D,KAAA,sBACAI,SAAA8+F,EAAA,qBACAtsF,QAAAy5J,EAAA8B,mBAGAjpL,EAAA,CACA/zD,KAAA,iBACA+S,KAAA,SACAg6E,gBAAA,WACA,OAAA6wJ,IAGAC,EAAA,CACA,CACA79O,KAAA,WACA+S,KAAA,kBACA87D,KAAA,wBACAI,SAAA8+F,EAAA,qBACAtsF,QAAAy5J,EAAA8B,kBAEA,CACAh9O,KAAA,WACA+S,KAAA,cACA87D,KAAA,oBACAI,SAAA8+F,EAAA,sBACAtsF,QAAAy5J,EAAA+B,kBAEA,CACAj9O,KAAA,WACA+S,KAAA,aACA87D,KAAA,oBACAI,SAAA8+F,EAAA,sBACAtsF,QAAAy5J,EAAAgC,qBAGA9lL,EAAA,CACAp3D,KAAA,iBACA+S,KAAA,OACAg6E,gBAAA,WACA,OAAA8wJ,KAGA,IAAA7gB,GAAA3tJ,GACAA,EAAAgI,GAAAC,SAAAm3F,YAAA,eACA17J,KAAA,QACA87D,KAAA,QACAI,SAAA8+F,EAAA,oBAGA1+F,EAAAgI,GAAAC,SAAAwV,kBAAA,eACA/5E,KAAA,QACA87D,KAAA,QACAke,gBAAA,WACA,QACA/sF,KAAA,gBACAgtF,UAAA,cACA/d,SAAAuuK,OAKAnuK,EAAAgI,GAAAC,SAAAm3F,YAAA,qBACA17J,KAAA,eACA87D,KAAA,QACAI,SAAA8+F,EAAA,oBAEA1+F,EAAAgI,GAAAC,SAAAm3F,YAAA,aAAAgvE,GACApuK,EAAAgI,GAAAC,SAAAm3F,YAAA,cAAAivE,GACAruK,EAAAgI,GAAAC,SAAAwV,kBAAA,MAAAh5B,GACAub,EAAAgI,GAAAC,SAAAwV,kBAAA,SAAA/4B,GACAsb,EAAAgI,GAAAC,SAAAwV,kBAAA,OAAA11B,GACAiY,EAAAgI,GAAAC,SAAAwmK,eAAA,SACAv9L,OAAA,WAEA,OADA26L,EAAA4B,eACA5B,EAAAntG,UAAAhxI,KAAA,WACA,UACW,SAAAgxI,GACX,kBAAAjuI,GAAAiuI,EAAA9yH,WACA,yBAEA,gEAMA8iO,GAAA,CAAqBR,iBAErBS,GAAA,SAAAtW,GACA,OAAAA,EAAAjkO,MAAA1G,KAAA,aAEO,SAAAk8D,GACP,OAAAv7D,EAAAu7D,EAAA,SAAAnF,GACA,OAAAA,EAAA7gD,WAIAgrO,GAAA,SAAAhlL,EAAAyuK,GACA,IAAAwW,EAAAxgP,EAAAu7D,EAAA3lD,GAAAZ,SACAg1N,EAAA51N,IAAAlT,EAAAD,KAAAu/O,KAEA78J,GAAA,SAAAhS,EAAAq4J,EAAAyW,EAAAjD,GACA,OACAkD,YAAA,SAAA1nK,EAAAzd,GACA,OAAA+sK,GAAAxpK,OAAA6S,EAAAqH,EAAAzd,IAEAglL,iBAAA,SAAAhlL,GACA,OAAAglL,GAAAhlL,EAAAyuK,IAEAsW,iBAAA,WACA,OAAAA,GAAAtW,IAEAyW,gBACAjD,qBAIA,SAAApxC,GAAAz6H,GACA,IAAA2zI,EAAA05B,GAAArtK,GACA6rK,EAAAyB,GAAAttK,EAAA2zI,GACAm7B,EAAApR,GAAA19J,GACA40I,EAAAg3B,GAAA5rK,EAAA8uK,EAAA/Q,WAAA8N,GACA71H,EAAA44G,GAAA5uJ,EAAA8uK,EAAAjgB,UACAwJ,EAAA91N,EAAAhT,EAAArC,QAmBA,OAlBA4sM,GAAAr+G,iBAAAzb,EAAAg2C,EAAA4+F,EAAAjB,EAAA0kB,GACArjB,GAAAL,eAAA30I,EAAA2zI,EAAA39F,EAAA4+F,GACA85B,GAAAR,aAAAluK,EAAA6rK,GACArxC,GAAAszC,WAAA9tK,EAAA6rK,GACArxC,GAAAwzC,YAAAhuK,GACAA,EAAA/lC,GAAA,qBACA+lC,EAAAsgI,WAAA0uC,YAAA17B,GAAAF,iBACApzI,EAAAsgI,WAAA0uC,YAAA17B,GAAAD,kBAEAia,GAAAttJ,IACAA,EAAA/lC,GAAA,mBAAA5tC,GACAk0O,GAAA17I,OAAAx4F,EAAA2zE,EAAAg2C,EAAA84H,EAAAjgB,YAGA7uJ,EAAA/lC,GAAA,oBACA60M,EAAA9jJ,UACA4pH,EAAA5pH,YAEAhZ,GAAAhS,EAAAq4J,EAAAyW,EAAAjD,GAEA,SAAAoD,KACA3lP,EAAA04B,IAAA,QAAAy4K,IAGAw0C,MApwSA,CAswSC5kO,2CC9wSDkgL,EAAAt1K,EAAAi6N,EAAA,sBAAAC,IAAA5kD,EAAAt1K,EAAAi6N,EAAA,sBAAAE,IAAA7kD,EAAAt1K,EAAAi6N,EAAA,sBAAAG,IAAA9kD,EAAAt1K,EAAAi6N,EAAA,sBAAAI,IAAA,IAAAC,EAAAhlD,EAAA,QAEO,SAAS4kD,IAA8B,IAAb15O,EAAazL,UAAAC,OAAA,QAAAiE,IAAAlE,UAAA,GAAAA,UAAA,GAAJ,GACxC,OAAOwlP,OAAMp7O,IAAI,gBAAiB,CAChCqB,WAIG,SAAS25O,EAAiB5hP,GAC/B,OAAOgiP,OAAMp7O,IAAN,iBAAAxJ,OAA2B4C,EAA3B,UAGF,SAAS6hP,EAAkBr+N,GAChC,OAAOw+N,OAAMC,KAAK,gBAAiBz+N,GAG9B,SAASs+N,EAAmB9hP,EAAIwjB,GACrC,OAAOw+N,OAAME,IAAN,iBAAA9kP,OAA2B4C,GAAMwjB,8CCjB1C,IAAAqwE,EAAA,WAA0B,IAAAsuJ,EAAAxjP,KAAayjP,EAAAD,EAAAE,eAA0B7uD,EAAA2uD,EAAAG,MAAA9uD,IAAA4uD,EAAwB,OAAA5uD,EAAA,WAAqB+uD,YAAAJ,EAAAK,GAAA,EAAqB37O,IAAA,SAAA7J,GAAA,WAA2B,OAAAw2L,EAAA,oBAA8BivD,OAAA,MAAe,CAAAjvD,EAAA,UAAe3oK,MAAA,CAAO1nB,KAAA,SAAe,CAAAqwL,EAAA,WAAgBn7F,IAAA,OAAAxtE,MAAA,CAAkB63N,WAAAP,EAAAhyN,QAAAqgE,OAAA2xJ,EAAAxxJ,SAAA6uB,KAAA2iI,EAAA3iI,KAAA70G,OAAAw3O,EAAAx3O,OAAAg4O,YAAAR,EAAAS,UAA0Gn2M,GAAA,CAAKo2M,cAAA,SAAAC,GAA+BX,EAAA3iI,KAAAsjI,GAAgBC,gBAAA,SAAAD,GAAkCX,EAAAx3O,OAAAm4O,KAAoB,CAAAtvD,EAAA,gBAAqB3oK,MAAA,CAAO9iB,MAAA,OAAAmf,SAAA,GAAApY,KAAA,UAA6C,CAAA0kL,EAAA,YAAiBnhF,MAAA,CAAOz1G,MAAAulP,EAAA3iI,KAAA,MAAAxwB,SAAA,SAAAg0J,GAAgDb,EAAAc,KAAAd,EAAA3iI,KAAA,QAAAwjI,IAAiCE,WAAA,iBAA0B,GAAA1vD,EAAA,gBAAyB3oK,MAAA,CAAO9iB,MAAA,OAAAmf,SAAA,GAAApY,KAAA,gBAAmD,CAAA0kL,EAAA,YAAiBnhF,MAAA,CAAOz1G,MAAAulP,EAAA3iI,KAAA,YAAAxwB,SAAA,SAAAg0J,GAAsDb,EAAAc,KAAAd,EAAA3iI,KAAA,cAAAwjI,IAAuCE,WAAA,uBAAgC,GAAA1vD,EAAA,gBAAyB3oK,MAAA,CAAO9iB,MAAA,OAAAmf,SAAA,GAAApY,KAAA,YAA+C,CAAA0kL,EAAA,aAAkB3oK,MAAA,CAAOs4N,UAAA,GAAA57L,YAAA,QAAoC8qD,MAAA,CAAQz1G,MAAAulP,EAAA3iI,KAAA,QAAAxwB,SAAA,SAAAg0J,GAAkDb,EAAAc,KAAAd,EAAA3iI,KAAA,UAAAwjI,IAAmCE,WAAA,iBAA4Bf,EAAAiB,GAAAjB,EAAA,eAAA9jP,GAAgC,OAAAm1L,EAAA,aAAuB3sL,IAAAxI,EAAA2B,GAAA6qB,MAAA,CAAgB9iB,MAAA1J,EAAA4E,KAAArG,MAAAyB,EAAA2B,QAA+B,OAAAwzL,EAAA,gBAA4B3oK,MAAA,CAAO9iB,MAAA,OAAAmf,SAAA,GAAApY,KAAA,SAA4C,CAAA0kL,EAAA,kBAAuBn7F,IAAA,SAAAxtE,MAAA,CAAoBg4D,SAAAs/J,EAAAt/J,UAAwBp2C,GAAA,CAAK42M,QAAAlB,EAAAkB,SAAsBhxI,MAAA,CAAQz1G,MAAAulP,EAAA3iI,KAAA,KAAAxwB,SAAA,SAAAg0J,GAA+Cb,EAAAc,KAAAd,EAAA3iI,KAAA,OAAAwjI,IAAgCE,WAAA,gBAAyB,GAAA1vD,EAAA,gBAAyB3oK,MAAA,CAAO9iB,MAAA,OAAAmf,SAAA,GAAApY,KAAA,WAA8C,CAAA0kL,EAAA,YAAiB3oK,MAAA,CAAO9iB,MAAA,KAAYsqG,MAAA,CAAQz1G,MAAAulP,EAAA3iI,KAAA,OAAAxwB,SAAA,SAAAg0J,GAAiDb,EAAAc,KAAAd,EAAA3iI,KAAA,SAAAwjI,IAAkCE,WAAA,gBAA2B,CAAAf,EAAAmB,GAAA,QAAA9vD,EAAA,YAAgC3oK,MAAA,CAAO9iB,MAAA,KAAYsqG,MAAA,CAAQz1G,MAAAulP,EAAA3iI,KAAA,OAAAxwB,SAAA,SAAAg0J,GAAiDb,EAAAc,KAAAd,EAAA3iI,KAAA,SAAAwjI,IAAkCE,WAAA,gBAA2B,CAAAf,EAAAmB,GAAA,YAAA9vD,EAAA,gBAAwC3oK,MAAA,CAAO9iB,MAAA,OAAAmf,SAAA,GAAApY,KAAA,oBAAuD,CAAA0kL,EAAA,kBAAuB3oK,MAAA,CAAO1nB,KAAA,WAAAokD,YAAA,UAAyC8qD,MAAA,CAAQz1G,MAAAulP,EAAA3iI,KAAA,gBAAAxwB,SAAA,SAAAg0J,GAA0Db,EAAAc,KAAAd,EAAA3iI,KAAA,kBAAAwjI,IAA2CE,WAAA,2BAAoC,gBACjvEK,EAAA,mICDIC,EAAM,WAAgB,IAAArB,EAAAxjP,KAAayjP,EAAAD,EAAAE,eAA0B7uD,EAAA2uD,EAAAG,MAAA9uD,IAAA4uD,EAAwB,OAAA5uD,EAAA,OAAiBiwD,YAAA,kBAA6B,CAAAjwD,EAAA,UAAe3oK,MAAA,CAAOyE,KAAA6yN,EAAA7yN,KAAAuzD,SAAAs/J,EAAAt/J,UAAwCp2C,GAAA,CAAK42M,QAAAlB,EAAAkB,SAAsBhxI,MAAA,CAAQz1G,MAAAulP,EAAA,QAAAnzJ,SAAA,SAAAg0J,GAA6Cb,EAAAuB,QAAAV,GAAgBE,WAAA,cAAuB,IACxTS,EAAe,wBCMnBC,EAAA,CACA,aACA,YACA,kBACA,sBACA,qBACA,mBACA,qBACA,gBACA,SACA,WACA,eACA,UACA,gBACA,SACA,QACA,aACA,eACA,UACA,SACA,aACA,YACA,gBACA,aACA,SACA,gBACA,UACA,YACA,aACA,eACA,SACA,SACA,YACA,aACA,UACA,gBACA,cACA,eACA,eACA,cACA,aACA,cACA,YACA,eACA,sBACA,kBACA,mBACA,UACA,gBACA,eACA,eACA,kBACA,SACA,WACA,UACA,gBACA,oBACA,cACA,eACA,SACA,WACA,SACA,eAEAC,EAAA,SAAAh9O,GAAiC,WAAA+8O,EAAA9kP,QAAA+H,IAC1Bi9O,EAAA,SAAAC,EAAAroJ,EAAAlpB,GACPv0E,OAAAiI,KAAAw1F,GACAx6F,OAAA2iP,GACA77F,QAAA,SAAAnhJ,GACA,IAAAkZ,EAAA27E,EAAA70F,GACA,oBAAAkZ,IACA,WAAAlZ,EACAkZ,EAAAgkO,EAAAvxK,GAGAA,EAAA/lC,GAAA5lC,EAAAynB,UAAA,YAAAzvB,GAA0D,OAAAkhB,EAAAlhB,EAAA2zE,SAKnDwxK,EAAA,SAAAt4J,EAAAlZ,GACP,IAEAyxK,EAFAC,EAAAx4J,EAAAy4J,OAAAD,YAAAx4J,EAAAy4J,OAAAD,YAAA,KACAE,EAAAhlP,MAAAkE,QAAA4gP,KAAAx8O,KAAA,KAAAw8O,EAEAx4J,EAAA24J,OAAA,iBAAAv4O,EAAAw4O,GACA9xK,GAAA,kBAAA1mE,OAAAm4O,GAAAn4O,IAAAw4O,IACA9xK,EAAA5yB,WAAA9zC,GACAm4O,EAAAn4O,KAGA0mE,EAAA/lC,GAAA23M,GAAA,oCACAH,EAAAzxK,EAAAxD,aACA0c,EAAA64J,MAAA,QAAAN,MAGOO,EAAA,SAAAT,EAAAr4J,EAAAlZ,GACP,IAAA51E,EAAA8uF,EAAAy4J,OAAAvnP,MAAA8uF,EAAAy4J,OAAAvnP,MAAA,GACA6nD,EAAAinC,EAAAy4J,OAAA1/L,aAAAinC,EAAAy4J,OAAA1/L,aAAA,GACA+tB,EAAA5yB,WAAAhjD,GAAA6nD,GAGAinC,EAAA+4J,WAAAn3O,OACA02O,EAAAt4J,EAAAlZ,GAEAsxK,EAAAC,EAAAr4J,EAAA+4J,WAAAjyK,IAEA3mD,EAAA,EACO64N,EAAA,SAAA34N,GACP,IAAAG,EAAAD,KAAA04N,MACAv4N,EAAAC,KAAAC,MAAA,IAAAD,KAAAD,UAEA,OADAP,IACAE,EAAA,IAAAK,EAAAP,EAAAppB,OAAAypB,IAEO04N,EAAA,SAAAxmO,GACP,cAAAA,GAAA,aAAAA,EAAA8iL,QAAAppL,eAEA+sO,EAAA,SAAA1iE,GACA,2BAAAA,GAAA,KAAAA,EACA,GAEA/iL,MAAAkE,QAAA6+K,OAAA5zJ,MAAA,MAEOu2N,EAAA,SAAAC,EAAAC,GACP,OAAAH,EAAAE,GAAA3nP,OAAAynP,EAAAG,KC1HAC,EAAA,SAAAl+H,EAAAzxG,EAAAssF,EAAA5S,GACA,IAAAk2J,EAAA5vO,EAAAG,cAAA,UACAyvO,EAAAC,eAAA,SACAD,EAAA/hP,KAAA,yBACA+hP,EAAAllP,GAAA+mH,EACAm+H,EAAAztJ,iBAAA,OAAAzI,GACAk2J,EAAAt5H,IAAAhqB,EACAtsF,EAAAvP,MACAuP,EAAAvP,KAAAmjB,YAAAg8N,IAGOxgN,EAAA,WACP,OACAg3D,UAAA,GACAqrB,SAAkB29H,EAAI,eACtBU,cAAA,IAGOziL,EAAA,SAAAv1D,EAAAkI,EAAAssF,EAAA5S,GACP5hF,EAAAg4O,aACAp2J,KAGA5hF,EAAAsuF,UAAAz3F,KAAA+qF,GACA15E,EAAAkuH,eAAAp2H,EAAA25G,WACAk+H,EAAA73O,EAAA25G,SAAAzxG,EAAAssF,EAAA,WACAx0F,EAAAsuF,UAAAssD,QAAA,SAAAhrJ,GAAuD,OAAAA,MACvDoQ,EAAAg4O,cAAA,kBC5BOC,EAAA,CACPC,OAAA7iP,OACA8iP,aAAA9iP,OACAzC,GAAAyC,OACA6sB,KAAArxB,OACAwmD,aAAAhiD,OACAw9F,OAAAulJ,QACAtB,YAAA,CAAAzhP,OAAArD,OACA+iL,QAAA,CAAA1/K,OAAArD,OACA8hM,QAAAz+L,OACA48F,QAAA,CAAA58F,OAAArD,OACAxC,MAAA6F,OACAogF,SAAA2iK,SCZAxnP,EAA4B,WAS5B,OARAA,EAAAC,OAAAC,QAAA,SAAAC,GACA,QAAAC,EAAAC,EAAA,EAAAC,EAAA9B,UAAAC,OAAgD4B,EAAAC,EAAOD,IAEvD,QAAAE,KADAH,EAAA5B,UAAA6B,GACAD,EAAAH,OAAAO,UAAAC,eAAAC,KAAAN,EAAAG,KACAJ,EAAAI,GAAAH,EAAAG,IAEA,OAAAJ,GAEAH,EAAAtB,MAAAiC,KAAAnC,YAMAipP,EAAkB/gN,IAClBghN,EAAA,SAAAjsN,EAAAz5B,EAAAkhM,GACA,OAAAznK,EAAAynK,GAAA,OACAr2K,MAAA,CAAgB7qB,SAGhB2lP,EAAA,SAAAlsN,EAAAz5B,GACA,OAAAy5B,EAAA,YACA5O,MAAA,CAAgB7qB,MAChBu1B,MAAA,CAAgBgvI,WAAA,aAGhBqhF,EAAA,SAAAl6J,GAAiC,kBACjC,IAAAm6J,EAAA7nP,EAAA,GAA+B0tF,EAAAy4J,OAAA70N,KAAA,CAAoB64H,SAAAz8D,EAAAy4J,OAAAthK,SAAAxkE,SAAA,IAAAqtE,EAAAo6J,UAAA3jE,QAAwE2iE,EAAYp5J,EAAAy4J,OAAA70N,MAAAo8D,EAAAy4J,OAAA70N,KAAA6yJ,QAAAz2F,EAAAy4J,OAAAhiE,SAAA9iF,QAAA3T,EAAAy4J,OAAA9kJ,SAAA3T,EAAAy4J,OAAA70N,MAAAo8D,EAAAy4J,OAAA70N,KAAA+vE,QAAAY,OAAAvU,EAAAq6J,aAAAz7K,MAAA,SAAAkI,GACvIkZ,EAAAlZ,SACAA,EAAA/lC,GAAA,gBAAA5tC,GAA4C,OAAQ2lP,EAAU3lP,EAAA6sF,EAAAlZ,KAC9DkZ,EAAAy4J,OAAA70N,MAAA,oBAAAo8D,EAAAy4J,OAAA70N,KAAAg7C,OACAohB,EAAAy4J,OAAA70N,KAAAg7C,MAAAkI,MAGQoyK,EAAUl5J,EAAAttE,WAClBstE,EAAAttE,QAAAmX,MAAAgvI,WAAA,IAEItmK,OAAA+nP,EAAA,KAAA/nP,GAAUqxB,KAAAu2N,KAEHI,EAAM,CACjB5/O,MAAWg/O,EACXa,QAAA,WACAvnP,KAAAmnP,UAAAnnP,KAAAwlP,OAAAnkP,IAA2C0kP,EAAI,YAC/C/lP,KAAAonP,aAAApnP,KAAAwlP,OAAA70N,MAAA3wB,KAAAwlP,OAAA70N,KAAA2wE,QAAAthG,KAAAwlP,OAAAlkJ,QAEAkmJ,MAAA,CACAtjK,SAAA,WACAlkF,KAAA6zE,OAAAg2E,QAAA7pJ,KAAAkkF,SAAA,uBAGAujK,QAAA,WAEA,GADAznP,KAAAyf,QAAAzf,KAAA0nP,IACsB,OAAVpoP,OAAA+nP,EAAA,KAAA/nP,GACZ2nP,EAAAjnP,KAAAinP,QAEA,GAAAjnP,KAAAyf,SAAAzf,KAAAyf,QAAAkG,cAAA,CACA,IAAAhP,EAAA3W,KAAAyf,QAAAkG,cACA4nI,EAAAvtJ,KAAAwlP,OAAAoB,aAAA5mP,KAAAwlP,OAAAoB,aAAA,IACAD,EAAA3mP,KAAAwlP,OAAAmB,OAAA3mP,KAAAwlP,OAAAmB,OAAA,aACY3iL,EAAiB8iL,EAAAnwO,EAAA,4BAAAgwO,EAAA,YAAAp5F,EAAA,kBAAA05F,EAAAjnP,SAG7B2nP,cAAA,WACsB,OAAVroP,OAAA+nP,EAAA,KAAA/nP,IACAA,OAAA+nP,EAAA,KAAA/nP,GAAUyrB,OAAA/qB,KAAA6zE,SAGtBqhB,OAAA,SAAAp6D,GACA,OAAA96B,KAAAonP,aAAAL,EAAAjsN,EAAA96B,KAAAmnP,UAAAnnP,KAAAwlP,OAAAjjD,SAAAykD,EAAAlsN,EAAA96B,KAAAmnP,aCpEe3hP,EAAA,4ECefoiP,EAAA,CACAryN,WAAA,CACAsyN,OAAAriP,GAEAkC,MAAA,CACAzJ,MAAA,CACAuG,KAAAV,OACA25J,QAAA,IAIAqqF,QAAA,CACAtjP,KAAAV,OACA25J,QAAA,IAEAv5E,SAAA,CACA1/E,KAAAqiP,QACAppF,SAAA,GAEA+lB,QAAA,CACAh/K,KAAA,CAAAV,OAAArD,OACAg9J,QAAA,qCAEA/8D,QAAA,CACAl8F,KAAA,CAAAV,OAAArD,OACAg9J,QAAA,0LAGA54I,KA5BA,WA6BA,OACA8L,KAAA,CACAo3N,SAAA,QACAC,aAAA,GAAAvpP,OAAAuB,KAAA8nP,QAAA,2BACAzoJ,SAAA,GAAA5gG,OAAAuB,KAAA8nP,QAAA,2BACAG,YAAA,GAAAxpP,OAAAuB,KAAA8nP,QAAA,8CAGArsN,OAAA,IACA+nJ,QAAAxjL,KAAAwjL,QACA9iF,QAAA1gG,KAAA0gG,QACAwnJ,UAAA,EACAj8E,SAAA,EAOAk8E,sBAAA,SAAAC,EAAA91K,EAAA8kK,GACA,IAAAiR,EAAAz1D,EACA01D,EAAAhpP,OAAAipP,EAAA,KAAAjpP,GACA+oP,EAAA,IAAAG,eACAH,EAAAI,iBAAA,EACAJ,EAAAvnM,KAAA,8CACAunM,EAAAK,iBAAA,gBAAAJ,GAEAD,EAAAM,OAAA,WACA,IAAAC,EAEA,KAAAP,EAAA3mN,QAIAknN,EAAAh6O,KAAAmpE,MAAAswK,EAAAQ,cAEAD,GAAA,kBAAAA,EAAAh3E,SAKAt/F,EAAAs2K,EAAAh3E,UAJAwlE,EAAA,iBAAAiR,EAAAQ,eANAzR,EAAA,eAAAiR,EAAA3mN,SAaAkxJ,EAAA,IAAAk2D,SACAl2D,EAAAxoK,OAAA,MAAAg+N,EAAAh3N,OAAAg3N,EAAAW,YAEAV,EAAAW,KAAAp2D,KAGAmyD,QAAA/kP,KAAA/B,QAGAwpP,QAlFA,WAmFAwB,EAAAtoP,EAAAgwB,KAAA3wB,KAAA2wB,OAEAu4N,QAAA,CAGAxE,QAHA,SAGAxkP,GACAF,KAAA4lP,MAAA,UAAA1lP,EAAA+oP,EAAAtoP,IAGA6gD,MAPA,WAQAxhD,KAAA+kP,QAAA,KAGAyC,MAAA,CACAvpP,MADA,SACA6jD,GACA9hD,KAAA+kP,QAAAjjM,GAEAijM,QAJA,SAIAjjM,GACA9hD,KAAA4lP,MAAA,QAAA9jM,MC5HqXqnM,EAAA,cCOrXtoO,EAAgBvhB,OAAA8pP,EAAA,KAAA9pP,CACd6pP,EACAtE,EACAG,GACF,EACA,KACA,KACA,MAIeqE,EAAAxoO,UCiDfyoO,EAAA,CACAhlP,KAAA,OACAixB,WAAA,CACAg0N,SAAA,KACA1B,SAAA,KACAwB,iBAEAG,OAAA,CACAC,EAAA,MAEA5kO,KAVA,WAWA,OACAg8F,KAAA,CACAt+B,MAAA,GACAq/B,YAAA,GACA8nI,QAAA,GACA9jO,KAAA,GACA8b,OAAA,IACAioN,gBAAA,IAEA/qP,IAAA,GACAslF,UAAA,EACAl4E,OAAA,GACA49O,MAAA,GACAC,YAAA,IAGAtC,QA3BA,WA4BA,GAAAvnP,KAAAikP,WACAjkP,KAAA6pP,YAAA,IAGAX,QAAA,CACA13N,QADA,eAAAs4N,EAAAxqP,OAAAyqP,EAAA,KAAAzqP,CAAA0qP,mBAAAC,KAAA,SAAAC,IAAA,IAAAC,EAAAC,EAAAR,EAAAS,EAAAxlO,EAAAylO,EAAAtqP,KAAA,OAAAgqP,mBAAA1+O,KAAA,SAAAi/O,GAAA,eAAAA,EAAArzK,KAAAqzK,EAAAt2O,MAAA,cAAAs2O,EAAAt2O,KAAA,EAIAizF,QAAA1oG,IAAA,CACAc,OAAAkrP,EAAA,KAAAlrP,CAAA,CAAAd,IAAA,MALA,UAAA2rP,EAAAI,EAAAE,KAAAL,EAAA9qP,OAAAorP,EAAA,KAAAprP,CAAA6qP,EAAA,GAGAP,EAHAQ,EAAA,GAGAvlO,KAKA7kB,KAAA4pP,MAAA,EAAAvoP,GAAA,EAAAiD,KAAA,OACAslP,EAAA1nP,IAAA,SAAAxC,GACA4qP,EAAAV,MAAAtkP,KAAA,CAAAjE,GAAA3B,EAAA2B,GAAAiD,KAAA5E,EAAA4E,UAIAtE,KAAAikP,SAdA,CAAAsG,EAAAt2O,KAAA,gBAAAs2O,EAAAt2O,KAAA,GAeA3U,OAAAqrP,EAAA,KAAArrP,CAAAU,KAAA4qP,YAfA,QAAAP,EAAAE,EAAAE,KAeA5lO,EAfAwlO,EAeAxlO,KACAA,EAAA6c,OAAA7c,EAAA6c,OAAA,QACA1hC,KAAA6qP,SAAAhmO,GAjBA,yBAAA0lO,EAAAxkO,SAAAmkO,EAAAlqP,SAAA,SAAAwxB,IAAA,OAAAs4N,EAAA/rP,MAAAiC,KAAAnC,WAAA,OAAA2zB,EAAA,GAqBAwgE,SArBA,eAAA84J,EAAAxrP,OAAAyqP,EAAA,KAAAzqP,CAAA0qP,mBAAAC,KAAA,SAAAc,IAAA,OAAAf,mBAAA1+O,KAAA,SAAA0/O,GAAA,eAAAA,EAAA9zK,KAAA8zK,EAAA/2O,MAAA,WAsBAjU,KAAAikP,SAtBA,CAAA+G,EAAA/2O,KAAA,eAAA+2O,EAAA/2O,KAAA,EAuBA3U,OAAAqrP,EAAA,KAAArrP,CAAAU,KAAA4qP,WAAA5qP,KAAA6gH,MAvBA,OAAAmqI,EAAA/2O,KAAA,sBAAA+2O,EAAA/2O,KAAA,EAyBA3U,OAAAqrP,EAAA,KAAArrP,CAAAU,KAAA6gH,MAzBA,wBAAAmqI,EAAAjlO,SAAAglO,EAAA/qP,SAAA,SAAAgyF,IAAA,OAAA84J,EAAA/sP,MAAAiC,KAAAnC,WAAA,OAAAm0F,EAAA,GA4BAi5J,eA5BA,SA4BA90I,GAEA,IAAAn2G,KAAA6gH,KAAAj7F,OACA5lB,KAAA6pP,YAAA,GAEA7pP,KAAA6gH,KAAAj7F,KAAAuwF,GAEAuuI,QAnCA,SAmCAxkP,EAAA2zE,OCtI4Wq3K,EAAA,ECQxWC,aAAY7rP,OAAA8pP,EAAA,KAAA9pP,CACd4rP,EACAh2J,EACA0vJ,GACF,EACA,KACA,KACA,OAIe7B,EAAA,WAAAoI,8CCnBf,SAAAhuP,GAAAihM,EAAAt1K,EAAAi6N,EAAA,sBAAAqI,IAOA,IAAAC,EAAA,WAA6B,2BAAAntO,cAAA/gB,GAC7BiuP,EAAA,WACA,IAAAjuP,EAAAkuP,IACA,OAAAluP,KAAA8B,QAAA9B,EAAA8B,QAAA,oDCVA,SAAA9B,IAQA,SAAAC,GACA,aAEA,IAAA4B,EAAAC,QAAAC,KAAAC,MAAAC,QAAA,yBAEA/B,EAAA,aAEAW,EAAA,SAAAC,GACA,kBACA,OAAAA,IAGAC,EAAA,SAAAC,GACA,OAAAA,GAEAQ,EAAA,SAAAC,GACA,kBACA,UAAAC,MAAAD,KAGAE,EAAAd,GAAA,GACAe,EAAAf,GAAA,GAEA+C,EAAA,WACA,OAAAC,GAEAA,EAAA,WACA,IAAAC,EAAA,SAAAC,GACA,OAAAA,EAAAC,UAEApB,EAAA,SAAAqB,GACA,OAAAA,KAEAC,EAAA,SAAA1B,GACA,OAAAA,GAEA2B,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAE,KAEA6B,GAAA1C,EACA2C,OAAA3C,EACAqC,OAAApC,EACA2C,MAAAL,EACAM,WAAA5B,EACA6B,SAAA,SAAAhD,GACA,UAAAC,MAAAD,GAAA,oCAEAiD,UAAA7D,EAAA,MACA8D,eAAA9D,OAAA+D,GACAC,GAAAX,EACAY,QAAAlC,EACAmC,IAAAnB,EACAoB,KAAA9E,EACA+E,KAAArB,EACAsB,OAAAvD,EACAwD,OAAAvD,EACAwD,OAAAxB,EACAyB,OAAAvB,EACAwB,QAAAxB,EACAyB,QAAA,WACA,UAEAC,SAAA3E,EAAA,WAKA,OAHAsB,OAAAsD,QACAtD,OAAAsD,OAAAtB,GAEAA,EA1CA,GA4CAuB,EAAA,SAAAlC,GACA,IAAAmC,EAAA9E,EAAA2C,GACAoC,EAAA,WACA,OAAAzB,GAEAc,EAAA,SAAA7E,GACA,OAAAA,EAAAoD,IAEAW,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAA,EAAAkB,IAEAa,GAAA,SAAAwB,GACA,OAAArC,IAAAqC,GAEAvB,OAAA1C,EACAoC,OAAArC,EACA4C,MAAAoB,EACAnB,WAAAmB,EACAlB,SAAAkB,EACAjB,UAAAiB,EACAhB,eAAAgB,EACAd,GAAAe,EACAd,QAAAc,EACAb,IAAA,SAAA3E,GACA,OAAAsF,EAAAtF,EAAAoD,KAEAwB,KAAA,SAAA5E,GACAA,EAAAoD,IAEAyB,OACAC,OAAAD,EACAE,OAAAF,EACAG,OAAA,SAAAhF,GACA,OAAAA,EAAAoD,GAAAW,EAAAN,GAEA0B,QAAA,WACA,OAAA/B,IAEAgC,SAAA,WACA,cAAAhC,EAAA,KAEA6B,OAAA,SAAAtB,GACA,OAAAA,EAAAM,GAAAb,IAEA8B,QAAA,SAAAvB,EAAA+B,GACA,OAAA/B,EAAAK,KAAAzC,EAAA,SAAAoE,GACA,OAAAD,EAAAtC,EAAAuC,OAIA,OAAA5B,GAEA6B,EAAA,SAAAlF,GACA,cAAAA,QAAA8D,IAAA9D,EAAA+C,EAAA6B,EAAA5E,IAEAmF,EAAA,CACAP,OACA9B,OACAoC,QAGAgB,EAAA,SAAAhG,GACA,UAAAA,EACA,aAEA,IAAAqB,SAAArB,EACA,iBAAAqB,IAAAiB,MAAAZ,UAAAuE,cAAAjG,MAAAkG,aAAA,UAAAlG,EAAAkG,YAAAC,MACA,QAEA,WAAA9E,IAAAsE,OAAAjE,UAAAuE,cAAAjG,MAAAkG,aAAA,WAAAlG,EAAAkG,YAAAC,MACA,SAEA9E,GAEA+E,EAAA,SAAAC,GACA,gBAAAvG,GACA,OAAAkG,EAAAlG,KAAAuG,IAGAC,EAAAF,EAAA,UACAG,EAAAH,EAAA,UACAI,EAAAJ,EAAA,SACAK,EAAAL,EAAA,WACAM,EAAAN,EAAA,YAEAW,EAAAzE,MAAAZ,UAAAsF,MACAE,EAAA5E,MAAAZ,UAAAyF,KACAnD,EAAA,SAAAsD,EAAAlI,GACA,QAAAmC,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAnC,EAAAY,EAAAuB,KAGAgH,EAAA,SAAAjB,GAEA,IADA,IAAAjF,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,IAASvF,EAAA,CAC/C,IAAAiF,EAAAc,EAAA/F,IACA,UAAAb,MAAA,oBAAAa,EAAA,6BAAA+F,GAEAJ,EAAAtH,MAAAyC,EAAAiF,EAAA/F,IAEA,OAAAc,GAEA4G,EAAA,SAAA3B,GACA,WAAAA,EAAA3H,OAAAsF,EAAArC,OAAAqC,EAAAP,KAAA4C,EAAA,KAMApG,GAJAwF,EAAApE,MAAA0C,OAAA1C,MAAA0C,KAIA,WAUA,OATA9D,EAAAC,OAAAC,QAAA,SAAAC,GACA,QAAAC,EAAAC,EAAA,EAAAC,EAAA9B,UAAAC,OAAgD4B,EAAAC,EAAOD,IAEvD,QAAAE,KADAH,EAAA5B,UAAA6B,GACAD,EACAH,OAAAO,UAAAC,eAAAC,KAAAN,EAAAG,KACAJ,EAAAI,GAAAH,EAAAG,IAEA,OAAAJ,GAEAH,EAAAtB,MAAAiC,KAAAnC,aAGA6mG,EAAA,GAAsBC,EAAA,CAAYC,QAAAF,IAClC,SAAAG,EAAAD,EAAAD,EAAAG,IACA,SAAAvnG,GACA,qBAAAqnG,GAAA,qBAAAD,EACAA,EAAAC,QAAArnG,SACS,uBAAAsnG,KAAAE,IACTF,EAAA,GAAAtnG,OACS,CACT,IAAA2tD,EAEAA,EADA,qBAAAhtC,OACAA,OACW,qBAAA/gB,EACXA,EACW,qBAAA4F,KACXA,KAEA/C,KAEAkrD,EAAA85C,oBAAAznG,MAhBA,CAkBO,WACP,kBACA,SAAAiD,EAAAN,EAAAP,EAAAH,GACA,SAAA0B,EAAAxB,EAAAnC,GACA,IAAAoC,EAAAD,GAAA,CACA,IAAAQ,EAAAR,GAAA,CACA,IAAAgoB,EAAA,mBAAAo9E,KACA,IAAAvnG,GAAAmqB,EACA,OAAAA,EAAAhoB,GAAA,GACA,GAAAqrD,EACA,OAAAA,EAAArrD,GAAA,GACA,IAAAiB,EAAA,IAAA9B,MAAA,uBAAAa,EAAA,KACA,MAAAiB,EAAAskG,KAAA,mBAAAtkG,EAEA,IAAAf,EAAAD,EAAAD,GAAA,CAAgCklG,QAAA,IAChC1kG,EAAAR,GAAA,GAAAK,KAAAH,EAAAglG,QAAA,SAAApkG,GACA,IAAAb,EAAAO,EAAAR,GAAA,GAAAc,GACA,OAAAU,EAAAvB,GAAAa,IACiBZ,IAAAglG,QAAApkG,EAAAN,EAAAP,EAAAH,GAEjB,OAAAG,EAAAD,GAAAklG,QAEA,QAAA75C,EAAA,mBAAA+5C,KAAAplG,EAAA,EAAwEA,EAAAF,EAAA1B,OAAc4B,IACtFwB,EAAA1B,EAAAE,IACA,OAAAwB,EAEA,OAAAV,EAzBA,GA0BS,CACT0kG,EAAA,CACA,SAAAJ,EAAAH,EAAAC,GACA,IACAO,EACAC,EAFA1uB,EAAAiuB,EAAAC,QAAA,GAGA,SAAAS,IACA,UAAAxmG,MAAA,mCAEA,SAAAymG,IACA,UAAAzmG,MAAA,qCAsBA,SAAA0mG,EAAA9L,GACA,GAAA0L,IAAAjwB,WACA,OAAAA,WAAAukB,EAAA,GAEA,IAAA0L,IAAAE,IAAAF,IAAAjwB,WAEA,OADAiwB,EAAAjwB,WACAA,WAAAukB,EAAA,GAEA,IACA,OAAA0L,EAAA1L,EAAA,GACiB,MAAAv5F,GACjB,IACA,OAAAilG,EAAAplG,KAAA,KAAA05F,EAAA,GACmB,MAAAv5F,GACnB,OAAAilG,EAAAplG,KAAAC,KAAAy5F,EAAA,KAIA,SAAA+L,EAAAz7E,GACA,GAAAq7E,IAAAvvB,aACA,OAAAA,aAAA9rD,GAEA,IAAAq7E,IAAAE,IAAAF,IAAAvvB,aAEA,OADAuvB,EAAAvvB,aACAA,aAAA9rD,GAEA,IACA,OAAAq7E,EAAAr7E,GACiB,MAAA7pB,GACjB,IACA,OAAAklG,EAAArlG,KAAA,KAAAgqB,GACmB,MAAA7pB,GACnB,OAAAklG,EAAArlG,KAAAC,KAAA+pB,MApDA,WACA,IAEAo7E,EADA,oBAAAjwB,WACAA,WAEAmwB,EAEiB,MAAAnlG,GACjBilG,EAAAE,EAEA,IAEAD,EADA,oBAAAvvB,aACAA,aAEAyvB,EAEiB,MAAAplG,GACjBklG,EAAAE,IAjBA,GAwDA,IAEAG,EAFAC,EAAA,GACAC,GAAA,EAEAC,GAAA,EACA,SAAAC,IACAF,GAAAF,IAGAE,GAAA,EACAF,EAAA3nG,OACA4nG,EAAAD,EAAAhnG,OAAAinG,GAEAE,GAAA,EAEAF,EAAA5nG,QACAgoG,KAGA,SAAAA,IACA,IAAAH,EAAA,CAGA,IAAA1wB,EAAAswB,EAAAM,GACAF,GAAA,EACA,IAAA1gG,EAAAygG,EAAA5nG,OACA,MAAAmH,EAAA,CACAwgG,EAAAC,EACAA,EAAA,GACA,QAAAE,EAAA3gG,EACAwgG,GACAA,EAAAG,GAAAnkF,MAGAmkF,GAAA,EACA3gG,EAAAygG,EAAA5nG,OAEA2nG,EAAA,KACAE,GAAA,EACAH,EAAAvwB,IAcA,SAAA8wB,EAAAtM,EAAA3zF,GACA9F,KAAAy5F,MACAz5F,KAAA8F,QAWA,SAAAzI,KAzBAq5E,EAAAsvB,SAAA,SAAAvM,GACA,IAAA97F,EAAA,IAAA8C,MAAA5C,UAAAC,OAAA,GACA,GAAAD,UAAAC,OAAA,EACA,QAAA4B,EAAA,EAAiCA,EAAA7B,UAAAC,OAAsB4B,IACvD/B,EAAA+B,EAAA,GAAA7B,UAAA6B,GAGAgmG,EAAApgG,KAAA,IAAAygG,EAAAtM,EAAA97F,IACA,IAAA+nG,EAAA5nG,QAAA6nG,GACAJ,EAAAO,IAOAC,EAAAlmG,UAAA4hB,IAAA,WACAzhB,KAAAy5F,IAAA17F,MAAA,KAAAiC,KAAA8F,QAEA4wE,EAAA6L,MAAA,UACA7L,EAAA76D,SAAA,EACA66D,EAAAuvB,IAAA,GACAvvB,EAAAwvB,KAAA,GACAxvB,EAAA18D,QAAA,GACA08D,EAAAyvB,SAAA,GAGAzvB,EAAA5oC,GAAAzwC,EACAq5E,EAAA0vB,YAAA/oG,EACAq5E,EAAA2vB,KAAAhpG,EACAq5E,EAAAj7B,IAAAp+C,EACAq5E,EAAA4vB,eAAAjpG,EACAq5E,EAAA6vB,mBAAAlpG,EACAq5E,EAAAnyD,KAAAlnB,EACAq5E,EAAA8vB,gBAAAnpG,EACAq5E,EAAA+vB,oBAAAppG,EACAq5E,EAAAqmB,UAAA,SAAAz4F,GACA,UAEAoyE,EAAAgwB,QAAA,SAAApiG,GACA,UAAAzF,MAAA,qCAEA63E,EAAAiwB,IAAA,WACA,WAEAjwB,EAAAkwB,MAAA,SAAAv9B,GACA,UAAAxqE,MAAA,mCAEA63E,EAAAmwB,MAAA,WACA,WAGA,IAEAC,EAAA,CACA,SAAAhC,EAAAH,EAAAC,IACA,SAAAmC,IACA,SAAA3wD,GACA,IAAA4wD,EAAA9xB,WACA,SAAA73E,KAEA,SAAA+E,EAAA/D,EAAA4oG,GACA,kBACA5oG,EAAAN,MAAAkpG,EAAAppG,YAGA,SAAAqpG,EAAA7oG,GACA,qBAAA2B,KACA,UAAAmnG,UAAA,wCACA,uBAAA9oG,EACA,UAAA8oG,UAAA,kBACAnnG,KAAAonG,OAAA,EACApnG,KAAAqnG,UAAA,EACArnG,KAAAsnG,YAAAvlG,EACA/B,KAAAunG,WAAA,GACAC,EAAAnpG,EAAA2B,MAEA,SAAA04F,EAAA31F,EAAA0kG,GACA,UAAA1kG,EAAAqkG,OACArkG,IAAAukG,OAEA,IAAAvkG,EAAAqkG,QAIArkG,EAAAskG,UAAA,EACAH,EAAAQ,aAAA,WACA,IAAAC,EAAA,IAAA5kG,EAAAqkG,OAAAK,EAAAG,YAAAH,EAAAI,WACA,UAAAF,EAAA,CAIA,IAAAz9F,EACA,IACAA,EAAAy9F,EAAA5kG,EAAAukG,QACuB,MAAApnG,GAEvB,YADA4nG,EAAAL,EAAAM,QAAA7nG,GAGAd,EAAAqoG,EAAAM,QAAA79F,QAVA,IAAAnH,EAAAqkG,OAAAhoG,EAAA0oG,GAAAL,EAAAM,QAAAhlG,EAAAukG,WAPAvkG,EAAAwkG,WAAAjiG,KAAAmiG,GAoBA,SAAAroG,EAAA2D,EAAA++C,GACA,IACA,GAAAA,IAAA/+C,EACA,UAAAokG,UAAA,6CACA,GAAArlD,IAAA,kBAAAA,GAAA,oBAAAA,GAAA,CACA,IAAAk5B,EAAAl5B,EAAAk5B,KACA,GAAAl5B,aAAAolD,EAIA,OAHAnkG,EAAAqkG,OAAA,EACArkG,EAAAukG,OAAAxlD,OACAkmD,EAAAjlG,GAEyB,uBAAAi4E,EAEzB,YADAwsB,EAAAplG,EAAA44E,EAAAl5B,GAAA/+C,GAIAA,EAAAqkG,OAAA,EACArkG,EAAAukG,OAAAxlD,EACAkmD,EAAAjlG,GACqB,MAAA7C,GACrB4nG,EAAA/kG,EAAA7C,IAGA,SAAA4nG,EAAA/kG,EAAA++C,GACA/+C,EAAAqkG,OAAA,EACArkG,EAAAukG,OAAAxlD,EACAkmD,EAAAjlG,GAEA,SAAAilG,EAAAjlG,GACA,IAAAA,EAAAqkG,QAAA,IAAArkG,EAAAwkG,WAAAzpG,QACAopG,EAAAQ,aAAA,WACA3kG,EAAAskG,UACAH,EAAAe,sBAAAllG,EAAAukG,UAIA,QAAA5nG,EAAA,EAAAuF,EAAAlC,EAAAwkG,WAAAzpG,OAAiE4B,EAAAuF,EAASvF,IAC1Eg5F,EAAA31F,IAAAwkG,WAAA7nG,IAEAqD,EAAAwkG,WAAA,KAEA,SAAAW,EAAAN,EAAAC,EAAAE,GACA/nG,KAAA4nG,YAAA,oBAAAA,IAAA,KACA5nG,KAAA6nG,WAAA,oBAAAA,IAAA,KACA7nG,KAAA+nG,UAEA,SAAAP,EAAAnpG,EAAA0E,GACA,IAAAmR,GAAA,EACA,IACA7V,EAAA,SAAAJ,GACAiW,IAEAA,GAAA,EACA9U,EAAA2D,EAAA9E,KACuB,SAAAkqG,GACvBj0F,IAEAA,GAAA,EACA4zF,EAAA/kG,EAAAolG,MAEqB,MAAAC,GACrB,GAAAl0F,EACA,OACAA,GAAA,EACA4zF,EAAA/kG,EAAAqlG,IAGAlB,EAAArnG,UAAA,kBAAAgoG,GACA,OAAA7nG,KAAAg7E,KAAA,KAAA6sB,IAEAX,EAAArnG,UAAAm7E,KAAA,SAAA4sB,EAAAC,GACA,IAAAQ,EAAA,IAAAroG,KAAAqE,YAAAhH,GAEA,OADAq7F,EAAA14F,KAAA,IAAAkoG,EAAAN,EAAAC,EAAAQ,IACAA,GAEAnB,EAAA1oG,IAAA,SAAA4H,GACA,IAAAzI,EAAA8C,MAAAZ,UAAAsF,MAAApF,KAAAqG,GACA,WAAA8gG,EAAA,SAAA9nG,EAAA0oG,GACA,OAAAnqG,EAAAG,OACA,OAAAsB,EAAA,IACA,IAAAkpG,EAAA3qG,EAAAG,OACA,SAAAgP,EAAApN,EAAAyN,GACA,IACA,GAAAA,IAAA,kBAAAA,GAAA,oBAAAA,GAAA,CACA,IAAA6tE,EAAA7tE,EAAA6tE,KACA,uBAAAA,EAIA,YAHAA,EAAAj7E,KAAAoN,EAAA,SAAAA,GACAL,EAAApN,EAAAyN,IAC+B26F,GAI/BnqG,EAAA+B,GAAAyN,EACA,MAAAm7F,GACAlpG,EAAAzB,GAEyB,MAAAyqG,GACzBN,EAAAM,IAGA,QAAA1oG,EAAA,EAAqCA,EAAA/B,EAAAG,OAAiB4B,IACtDoN,EAAApN,EAAA/B,EAAA+B,OAIAwnG,EAAA9nG,QAAA,SAAAnB,GACA,OAAAA,GAAA,kBAAAA,KAAAoG,cAAA6iG,EACAjpG,EAEA,IAAAipG,EAAA,SAAA9nG,GACAA,EAAAnB,MAGAipG,EAAAY,OAAA,SAAA7pG,GACA,WAAAipG,EAAA,SAAA9nG,EAAA0oG,GACAA,EAAA7pG,MAGAipG,EAAAqB,KAAA,SAAAvgG,GACA,WAAAk/F,EAAA,SAAA9nG,EAAA0oG,GACA,QAAApoG,EAAA,EAAAuF,EAAA+C,EAAAlK,OAA0D4B,EAAAuF,EAASvF,IACnEsI,EAAAtI,GAAAs7E,KAAA57E,EAAA0oG,MAIAZ,EAAAQ,aAAA,oBAAAX,EAAA,SAAA1oG,GACA0oG,EAAA1oG,IACmB,SAAAA,GACnB2oG,EAAA3oG,EAAA,IAEA6oG,EAAAe,sBAAA,SAAAhkG,GACA,qBAAAoF,kBACAA,QAAA2jB,KAAA,wCAAA/oB,IAGAijG,EAAAsB,gBAAA,SAAAnqG,GACA6oG,EAAAQ,aAAArpG,GAEA6oG,EAAAuB,yBAAA,SAAApqG,GACA6oG,EAAAe,sBAAA5pG,GAEA,qBAAAsmG,KAAAC,QACAD,EAAAC,QAAAsC,EACmB9wD,EAAA8wD,UACnB9wD,EAAA8wD,YA7LA,CA+LiBlnG,QACFD,KAAAC,KAAA8kG,EAAA,UAAAiC,eAEf,CAAa2B,OAAA,IAEbC,EAAA,CACA,SAAA7D,EAAAH,EAAAC,IACA,SAAAmC,EAAA6B,GACA,IAAA5C,EAAAlB,EAAA,sBAAAkB,SACAjoG,EAAAqnB,SAAAvlB,UAAA9B,MACAoH,EAAA1E,MAAAZ,UAAAsF,MACA0jG,EAAA,GACAC,EAAA,EAUA,SAAAC,EAAA1nG,EAAA2nG,GACAhpG,KAAAipG,IAAA5nG,EACArB,KAAAkpG,SAAAF,EAXApE,EAAA1vB,WAAA,WACA,WAAA6zB,EAAAhrG,EAAAgC,KAAAm1E,WAAAh3D,OAAArgB,WAAAg4E,eAEA+uB,EAAAuE,YAAA,WACA,WAAAJ,EAAAhrG,EAAAgC,KAAAopG,YAAAjrF,OAAArgB,WAAAurG,gBAEAxE,EAAA/uB,aAAA+uB,EAAAwE,cAAA,SAAAn0B,GACAA,EAAA3zB,SAMAynD,EAAAlpG,UAAAwpG,MAAAN,EAAAlpG,UAAA65F,IAAA,aAEAqP,EAAAlpG,UAAAyhD,MAAA,WACAthD,KAAAkpG,SAAAnpG,KAAAme,OAAAle,KAAAipG,MAEArE,EAAA0E,OAAA,SAAAjwE,EAAAkwE,GACA1zB,aAAAx8C,EAAAmwE,gBACAnwE,EAAAowE,aAAAF,GAEA3E,EAAA8E,SAAA,SAAArwE,GACAw8C,aAAAx8C,EAAAmwE,gBACAnwE,EAAAowE,cAAA,GAEA7E,EAAA+E,aAAA/E,EAAA5+D,OAAA,SAAA3M,GACAw8C,aAAAx8C,EAAAmwE,gBACA,IAAAD,EAAAlwE,EAAAowE,aACAF,GAAA,IACAlwE,EAAAmwE,eAAAt0B,WAAA,WACA77C,EAAAuwE,YACAvwE,EAAAuwE,cACqBL,KAGrB3E,EAAAmC,aAAA,oBAAAA,IAAA,SAAA1oG,GACA,IAAAgD,EAAAynG,IACAnrG,IAAAE,UAAAC,OAAA,IAAAqH,EAAApF,KAAAlC,UAAA,GAYA,OAXAgrG,EAAAxnG,IAAA,EACA2kG,EAAA,WACA6C,EAAAxnG,KACA1D,EACAU,EAAAN,MAAA,KAAAJ,GAEAU,EAAA0B,KAAA,MAEA6kG,EAAAgE,eAAAvnG,MAGAA,GAEAujG,EAAAgE,eAAA,oBAAAA,IAAA,SAAAvnG,UACAwnG,EAAAxnG,MAEetB,KAAAC,KAAA8kG,EAAA,UAAAiC,aAAAjC,EAAA,UAAA8D,iBAEf,CACAiB,qBAAA,EACAnB,OAAA,IAGAoB,EAAA,CACA,SAAAhF,EAAAH,EAAAC,GACA,IAAAmF,EAAAjF,EAAA,oBACAkF,EAAA,WACA,2BAAA9rF,OACAA,OAEAkH,SAAA,eAAAA,GAJA,GAOAu/E,EAAAC,QAAA,CAAgCqF,WAAAD,EAAA9C,SAAA6C,IAEhC,CAAaG,mBAAA,KAEJ,GAAI,IAvdb,CAuda,MA3eb,MA6eKnoG,EAAA2iG,EAAAC,OAAA5iG,GACL,IAAAmlG,EAAAvC,EAAAC,QAAAqF,WAEAtgG,EAAA,SAAA0gG,GACA,IAAAxlF,EAAAzhB,EAAArC,OACAupG,EAAA,GACApoG,EAAA,SAAA3E,GACA,OAAAoM,EAAA,SAAA4gG,GACAtiG,EAAA,SAAA4c,GACA0lF,EAAAhtG,EAAAsnB,SAIA5c,EAAA,SAAAsiG,GACAC,IACAzqG,EAAAwqG,GAEAD,EAAAhlG,KAAAilG,IAGAj0F,EAAA,SAAAnY,GACA0mB,EAAAzhB,EAAAP,KAAA1E,GACAsjB,EAAA6oF,GACAA,EAAA,IAEAE,EAAA,WACA,OAAA3lF,EAAApjB,UAEAggB,EAAA,SAAAgpF,GACAtoG,EAAAsoG,EAAA1qG,IAEAA,EAAA,SAAA4nG,GACA9iF,EAAA1iB,KAAA,SAAAhE,GACAf,EAAA83E,WAAA,WACAyyB,EAAAxpG,IACW,MAIX,OADAksG,EAAA/zF,GACA,CACArO,MACA/F,MACAsoG,YAGAxjG,EAAA,SAAArG,GACA,OAAAgJ,EAAA,SAAA0mF,GACAA,EAAA1vF,MAGAgqG,EAAA,CACAhhG,KACA3C,QAGA4jG,EAAA,SAAA3mG,GACA7G,EAAA83E,WAAA,WACA,MAAAjxE,GACO,IAEPoqB,EAAA,SAAA5M,GACA,IAAAxZ,EAAA,SAAAooF,GACA5uE,IAAAu5D,KAAAqV,EAAAua,IAEA1oG,EAAA,SAAA4oG,GACA,OAAAz8E,EAAA,WACA,OAAA5M,IAAAu5D,KAAA8vB,MAGA1oG,EAAA,SAAA2oG,GACA,OAAA18E,EAAA,WACA,OAAA5M,IAAAu5D,KAAA,SAAAh4E,GACA,OAAA+nG,EAAA/nG,GAAAgoG,iBAIAC,EAAA,SAAAC,GACA,OAAA78E,EAAA,WACA,OAAA5M,IAAAu5D,KAAA,WACA,OAAAkwB,EAAAF,iBAIAG,EAAA,WACA,OAAAR,EAAAhhG,GAAA1B,IAEAmjG,EAAA,WACA,IAAAlf,EAAA,KACA,OAAA79D,EAAA,WAIA,OAHA,OAAA69D,IACAA,EAAAzqE,KAEAyqE,KAGA8e,EAAAvpF,EACA,OACAvf,MACAE,OACA6oG,WACAE,SACAC,WACAJ,YACA/iG,QAGA8Q,EAAA,SAAAsxF,GACA,OAAAh8E,EAAA,WACA,WAAA64E,EAAAmD,MAGAK,EAAA,SAAA/pG,GACA,OAAA0tB,EAAA,WACA,OAAA64E,EAAA9nG,QAAAuB,MAGA4qG,EAAA,CACA5hG,GAAAoP,EACA/R,KAAA0jG,GAGAzsG,EAAA,SAAAiD,GACA,IAAAM,EAAA,SAAAwB,GACA,OAAA9B,IAAA8B,GAEAhB,EAAA,SAAAqB,GACA,OAAApF,EAAAiD,IAEAe,EAAA,SAAA1E,GACA,OAAAU,EAAAiD,IAEAgB,EAAA,SAAA3E,GACA,OAAAU,EAAAV,EAAA2D,KAEAoC,EAAA,SAAA/F,GACA,OAAAU,EAAAiD,IAEAiB,EAAA,SAAA5E,GACAA,EAAA2D,IAEAkB,EAAA,SAAA7E,GACA,OAAAA,EAAA2D,IAEAK,EAAA,SAAAgC,EAAAC,GACA,OAAAA,EAAAtC,IAEAmB,EAAA,SAAA9E,GACA,OAAAA,EAAA2D,IAEAoB,EAAA,SAAA/E,GACA,OAAAA,EAAA2D,IAEAuC,EAAA,WACA,OAAAL,EAAAP,KAAA3B,IAEA,OACAM,KACAkC,QAAA3E,EACA4E,QAAA7E,EACA4C,MAAA1D,EAAAkD,GACAS,WAAA3D,EAAAkD,GACAU,SAAA5D,EAAAkD,GACAc,KACAC,UACAV,OACAW,MACAoB,WACAnB,OACAC,OACAC,SACAC,SACAmB,aAGAG,EAAA,SAAAC,GACA,IAAAlC,EAAA,SAAApE,GACA,OAAAA,KAEAqE,EAAA,WACA,OAAAjD,EAAAmF,OAAAD,GAAAlF,IAEAqD,EAAA,SAAAqB,GACA,OAAAA,GAEApB,EAAA,SAAA1E,GACA,OAAAA,KAEA2E,EAAA,SAAA3E,GACA,OAAAqG,EAAAC,IAEAP,EAAA,SAAA/F,GACA,OAAAqG,EAAArG,EAAAsG,KAEAzB,EAAA,SAAA7E,GACA,OAAAqG,EAAAC,IAEAtC,EAAA,SAAAwC,EAAAR,GACA,OAAAQ,EAAAF,IAEA,OACArC,GAAA1C,EACA4E,QAAA5E,EACA6E,QAAA5E,EACA2C,MAAAxD,EACAyD,aACAC,WACAI,KACAC,UACAV,OACAW,MACAoB,WACAnB,KAAA9E,EACA+E,OACAC,OAAAvD,EACAwD,OAAAvD,EACA0E,SAAAL,EAAArC,OAGAiD,EAAA,SAAAX,EAAAY,GACA,OAAAZ,EAAA9B,KAAA,WACA,OAAAqC,EAAAK,IACOhG,IAEPiG,EAAA,CACAjG,QACA2F,QACAI,cAGAsH,EAAA,SAAA+F,GACA,IAAA+5F,EAAA,WACA,OAAA9/F,EAAA+F,EAAA+5F,aAEA2lC,EAAA,SAAAxzI,GACA,OAAA+N,EAAA+F,EAAAjP,KAAA,SAAA4uI,GACA,OAAAA,EAAAzvI,KAAA,SAAA0C,GACA,OAAAsnG,EAAAvkG,KAAA9C,EAAAN,MAAAK,KACW,SAAAtD,GACX,OAAApD,EAAAoD,SAIAswI,EAAA,SAAA1zI,GACA,OAAA+N,EAAA+F,EAAAnP,IAAA,SAAA8uI,GACA,OAAAA,EAAA5uI,KAAA7E,OAGA2zI,EAAA,SAAA3zI,GACA,OAAA+N,EAAA+F,EAAAnP,IAAA,SAAA8uI,GACA,OAAAA,EAAA9uI,IAAA3E,OAGA+F,EAAA,SAAA/F,GACA,OAAA+N,EAAA+F,EAAAnP,IAAA,SAAA8uI,GACA,OAAAA,EAAA1tI,SAAA/F,OAGA4zI,EAAA,SAAAC,EAAAC,GACA,OAAAhgI,EAAAnP,IAAA,SAAA4K,GACA,OAAAA,EAAAvL,KAAA6vI,EAAAC,MAGAC,EAAA,SAAAr8D,EAAAs8D,GACA,OAAAjmI,EAAAigG,EAAA5hG,GAAA,SAAA0mF,GACA,IAAAmhD,GAAA,EACA77D,EAAAv4E,EAAA83E,WAAA,WACAs8D,GAAA,EACAnhD,EAAAnsF,EAAAN,MAAA2tI,OACWt8D,GACX5jE,EAAApJ,IAAA,SAAAgE,GACAulI,IACAp0I,EAAAy4E,aAAAF,GACA0a,EAAApkF,UAKA,OAAA5M,IAAA,GAAiCgS,GAAA,CACjC+5F,WACA2lC,aACAE,aACAC,YACA5tI,WACA6tI,aACAG,iBAGAv3H,EAAA,SAAA23H,GACA,OAAApmI,EAAAigG,EAAA5hG,GAAA+nI,KAEAzgI,EAAA,SAAAhT,GACA,OAAAqN,EAAAigG,EAAAvkG,KAAA9C,EAAAjG,YAEA2zI,EAAA,SAAAhuI,GACA,OAAA0H,EAAAigG,EAAAvkG,KAAA9C,EAAAN,YAEA6J,EAAA,SAAAxB,GACA,OAAAX,EAAAigG,EAAAvkG,KAAAiF,KAEA6lI,EAAA,SAAAC,GACA,OAAAzmI,EAAAymI,EAAA7vI,IAAAgC,EAAAjG,SAEA+zI,EAAA,SAAAjqC,GACA,OAAAhuF,EAAA,SAAAk4H,GACAlqC,EAAA/sB,KAAA,SAAA/8E,GACAg0I,EAAA/tI,EAAAjG,WACS,SAAA2F,GACTquI,EAAA/tI,EAAAN,eAIAsuI,EAAA,CACAvoI,GAAAoQ,EACAzO,OACAtE,KAAAiK,EACAhT,MAAAgT,EACArN,MAAAguI,EACAnkI,aACAqkI,aACAE,eAGAlyI,EAAAR,OAAAO,UAAAC,eACA2J,EAAA,SAAAC,EAAAC,GACA,OAAAA,GAEAC,EAAA,SAAAF,EAAAC,GACA,IAAAE,EAAAnF,EAAAgF,IAAAhF,EAAAiF,GACA,OAAAE,EAAAC,GAAAJ,EAAAC,MAEAI,EAAA,SAAAC,GACA,kBAEA,IADA,IAAAC,EAAA,IAAAxJ,MAAA5C,UAAAC,QACA4B,EAAA,EAAuBA,EAAAuK,EAAAnM,OAAoB4B,IAC3CuK,EAAAvK,GAAA7B,UAAA6B,GAEA,OAAAuK,EAAAnM,OACA,UAAAe,MAAA,4BAGA,IADA,IAAAqL,EAAA,GACAtJ,EAAA,EAAuBA,EAAAqJ,EAAAnM,OAAoB8C,IAAA,CAC3C,IAAAuJ,EAAAF,EAAArJ,GACA,QAAAsH,KAAAiC,EACArK,EAAAC,KAAAoK,EAAAjC,KACAgC,EAAAhC,GAAA8B,EAAAE,EAAAhC,GAAAiC,EAAAjC,KAIA,OAAAgC,IAGAJ,GAAAC,EAAAH,GACAQ,GAAAL,EAAAN,GAEA6hP,GAAA,SAAArxO,GACA,IAAAsxO,EAAA,CACAjnP,KAAA,MACAE,KAAA,WACA2vI,SAAA,QACA/qI,MAAA,UAEAoiP,EAAAvxO,EAAAuxO,UAAAtpP,IAAA,SAAA8iD,GACA,OACA1gD,KAAA,SACAE,KAAA,YACA4E,MAAA,aACA47C,WAGAymM,EAAA,CACAnnP,KAAA,MACAE,KAAA,QACA4E,MAAA,qBAEAsiP,EAAA,CACApnP,KAAA,QACAE,KAAA,QACA4E,MAAA,eAEAuiP,EAAA,CACArnP,KAAA,aACAE,KAAA,aAEAwxB,EAAA/b,EAAA+b,UAAA9zB,IAAA,SAAA8iD,GACA,OACA1gD,KAAA,UACAE,KAAA,YACA4E,MAAA,QACA47C,WAGAkhL,EAAA,CACA1hO,KAAA,QACA4E,MAAA,UACA47C,MAAA,EACAxgD,KAAA,WACAF,KAAA,UACA8E,MAAA,kBAGA,OAAA1C,EAAA,CACA,CAAA6kP,GACAC,EAAA9oP,UACAuX,EAAA2xO,eAAA,CAAAH,GAAA,GACAxxO,EAAA4xO,cAAA,CAAAH,GAAA,GACAzxO,EAAA80L,cAAA,CAAA48C,GAAA,GACA,EACAnnP,KAAA,OACA02E,QAAA,EACAl2B,MAAAt+C,EAAA,CACAsvB,EAAAtzB,UACAuX,EAAA6xO,gBAAA,CAAA5lB,GAAA,UAKA6lB,GAAA,SAAA9xO,GACA,OACAsoE,MAAA,UACAj+E,KAAA,UACA0gD,MAAAsmM,GAAArxO,KAGA+xO,GAAA,CACAD,WACAT,cAGA33K,GAAA10E,QAAAC,KAAAC,MAAAC,QAAA,wBAEA42E,GAAA/2E,QAAAC,KAAAC,MAAAC,QAAA,wBAEAm6E,GAAAt6E,QAAAC,KAAAC,MAAAC,QAAA,oBAEA2vM,GAAA,SAAAl7H,GACA,OAAAA,EAAAga,SAAA,kCAEAo+J,GAAA,SAAAp4K,GACA,OAAAA,EAAAga,SAAA,8BAEAq+J,GAAA,SAAAr4K,GACA,OAAAA,EAAAga,SAAA,iCAEAs+J,GAAA,SAAAt4K,GACA,OAAAA,EAAAga,SAAA,kCAEAi5I,GAAA,SAAAjzJ,GACA,OAAAA,EAAAga,SAAA,qBAEA+9J,GAAA,SAAA/3K,GACA,OAAAA,EAAAga,SAAA,mCAEAg+J,GAAA,SAAAh4K,GACA,OAAAA,EAAAga,SAAA,6BAEAi+J,GAAA,SAAAj4K,GACA,OAAAA,EAAAga,SAAA,+BAEAu+J,GAAA,SAAAv4K,GACA,OAAAA,EAAAga,SAAA,kBAEAw+J,GAAA,SAAAx4K,GACA,QAAAy4K,GAAAz4K,IAEA04K,GAAA,SAAA14K,GACA,QAAA24K,GAAA34K,IAEAy4K,GAAA,SAAAz4K,GACA,OAAAA,EAAAga,SAAA,kCAEA2+J,GAAA,SAAA34K,GACA,OAAAA,EAAAga,SAAA,6BAAA9rF,EAAA,aAEA0qP,GAAA,SAAA54K,GACA,OAAAA,EAAAga,SAAA,+BAAA9rF,EAAA,WAEA2qP,GAAA,SAAA74K,GACA,OAAAA,EAAAga,SAAA,2CAEAO,GAAA,CACA2gH,iBACAm9C,gBACAD,aACAE,iBACArlB,gBACA8kB,kBACAC,iBACAC,mBACAM,gBACAC,gBACAE,oBACAD,gBACAE,oBACAC,qBACAC,yBAGAC,GAAA,SAAAC,EAAAC,GACA,OAAAn/N,KAAAyN,IAAAF,SAAA2xN,EAAA,IAAA3xN,SAAA4xN,EAAA,MAEAC,GAAA,SAAA7pJ,EAAA5S,GACA,IAAAg4C,EAAAjrI,EAAAwZ,SAAAE,cAAA,OACA5C,EAAA,SAAAqiD,GACA8xE,EAAA3iH,YACA2iH,EAAA3iH,WAAAsF,YAAAq9G,GAEAh4C,EAAA95B,IAEA8xE,EAAAsgH,OAAA,WACA,IAAAjrN,EAAAivN,GAAAtkH,EAAA3qG,MAAA2qG,EAAAlqG,aACA1C,EAAAkxN,GAAAtkH,EAAA5sG,OAAA4sG,EAAAjqG,cACAm4B,EAAA,CACA74B,QACAjC,UAEAvnB,EAAAhQ,EAAAjG,MAAAs4D,KAEA8xE,EAAA0kH,QAAA,WACA74O,EAAAhQ,EAAAN,MAAA,uCAAAq/F,KAEA,IAAArsE,EAAAyxG,EAAAzxG,MACAA,EAAAgvI,WAAA,SACAhvI,EAAA2I,SAAA,QACA3I,EAAAgH,OAAAhH,EAAAoF,KAAA,MACApF,EAAA8G,MAAA9G,EAAA6E,OAAA,OACAr+B,EAAAwZ,SAAAgP,KAAA2E,YAAA89G,GACAA,EAAApb,IAAAhqB,GAEA+pJ,GAAA,SAAA/uP,GAIA,OAHAA,IACAA,IAAA6a,QAAA,WAEA7a,GAEAgvP,GAAA,SAAAhvP,GAIA,OAHAA,EAAAH,OAAA,cAAAya,KAAAta,KACAA,GAAA,MAEAA,GAEAivP,GAAA,SAAA71N,GACA,GAAAA,EAAA2lD,OAAA,CACA,IAAAmwK,EAAArpP,OAAAuzB,EAAA2lD,QAAAptD,MAAA,KACA,OAAAu9N,EAAArvP,QACA,OACAu5B,EAAA,cAAAA,EAAA,eAAA81N,EAAA,GACA91N,EAAA,gBAAAA,EAAA,iBAAA81N,EAAA,GACA91N,EAAA,iBAAAA,EAAA,kBAAA81N,EAAA,GACA91N,EAAA,eAAAA,EAAA,gBAAA81N,EAAA,GACA,MACA,OACA91N,EAAA,cAAAA,EAAA,eAAA81N,EAAA,GACA91N,EAAA,gBAAAA,EAAA,iBAAA81N,EAAA,GACA91N,EAAA,iBAAAA,EAAA,kBAAA81N,EAAA,GACA91N,EAAA,eAAAA,EAAA,gBAAA81N,EAAA,GACA,MACA,OACA91N,EAAA,cAAAA,EAAA,eAAA81N,EAAA,GACA91N,EAAA,gBAAAA,EAAA,iBAAA81N,EAAA,GACA91N,EAAA,iBAAAA,EAAA,kBAAA81N,EAAA,GACA91N,EAAA,eAAAA,EAAA,gBAAA81N,EAAA,GACA,MACA,OACA91N,EAAA,cAAAA,EAAA,eAAA81N,EAAA,GACA91N,EAAA,gBAAAA,EAAA,iBAAA81N,EAAA,GACA91N,EAAA,iBAAAA,EAAA,kBAAA81N,EAAA,GACA91N,EAAA,eAAAA,EAAA,gBAAA81N,EAAA,UAEA91N,EAAA2lD,OAEA,OAAA3lD,GAEA+1N,GAAA,SAAAv5K,EAAAwc,GACA,IAAAm7J,EAAAp9J,GAAAg+J,aAAAv4K,GACA,kBAAA23K,EACAjyK,GAAAyvK,KAAA,CACA/lJ,IAAAuoJ,EACAl5K,QAAA,SAAA/6D,GACA84E,EAAAzhF,KAAAmpE,MAAAxgE,OAGO,oBAAAi0O,EACPA,EAAAn7J,GAEAA,EAAAm7J,IAGA6B,GAAA,SAAAx5K,EAAAhvD,EAAAyoO,GACA,IAAAC,EAAA,WACAD,EAAA3E,OAAA2E,EAAAP,QAAA,KACAl5K,EAAA5kC,YACA4kC,EAAA5kC,UAAA+hD,OAAAs8J,GACAz5K,EAAAub,gBAGAk+J,EAAA3E,OAAA,WACA9jO,EAAA6Y,OAAA7Y,EAAA4W,SAAA2yD,GAAA2gH,cAAAl7H,IACAA,EAAAp8D,IAAA+qL,WAAA8qD,EAAA,CACA5vN,MAAA55B,OAAAwpP,EAAAnvN,aACA1C,OAAA33B,OAAAwpP,EAAAlvN,gBAGAmvN,KAEAD,EAAAP,QAAAQ,GAEA3+H,GAAA,SAAAx9F,GACA,WAAA4kD,GAAA,SAAA52E,EAAA0oG,GACA,IAAAvK,EAAA,IAAAngG,EAAAyxH,WACAtxB,EAAAorJ,OAAA,WACAvpP,EAAAm+F,EAAAtxF,SAEAsxF,EAAAwvJ,QAAA,WACAjlJ,EAAAvK,EAAA35F,MAAAC,UAEA05F,EAAAwxB,cAAA39F,MAGAo8N,GAAA,SAAAF,GACA,cAAAA,EAAAjoO,WAAAioO,EAAAhhO,aAAA,oBAAAghO,EAAAhhO,aAAA,0BAEAqkJ,GAAA,CACAm8E,gBACAE,qBACAC,kBACAC,gBACAE,mBACAC,iBACAz+H,iBACA4+H,uBAGApmK,GAAAzT,GAAAyT,IACAqmK,GAAA,SAAAxhI,GACA,OAAAA,EAAAr1F,MAAA82N,YAAAzhI,EAAAr1F,MAAA+2N,aAAA1hI,EAAAr1F,MAAA82N,aAAAzhI,EAAAr1F,MAAA+2N,YACAh9E,GAAAq8E,kBAAA/gI,EAAAr1F,MAAA82N,YAEA,IAGAE,GAAA,SAAA3hI,GACA,OAAAA,EAAAr1F,MAAAi3N,WAAA5hI,EAAAr1F,MAAAk3N,cAAA7hI,EAAAr1F,MAAAi3N,YAAA5hI,EAAAr1F,MAAAk3N,aACAn9E,GAAAq8E,kBAAA/gI,EAAAr1F,MAAAi3N,WAEA,IAGA1nB,GAAA,SAAAl6G,GACA,OAAAA,EAAAr1F,MAAA0tM,YACA3zD,GAAAq8E,kBAAA/gI,EAAAr1F,MAAA0tM,aAEA,IAGA90B,GAAA,SAAAvjF,EAAA3nH,GACA,OAAA2nH,EAAA3/F,aAAAhoB,GACA2nH,EAAA7/F,aAAA9nB,GAEA,IAGAw7F,GAAA,SAAAmsB,EAAA3nH,GACA,OAAA2nH,EAAAr1F,MAAAtyB,GAAA2nH,EAAAr1F,MAAAtyB,GAAA,IAEAypP,GAAA,SAAA9hI,GACA,cAAAA,EAAAvmG,YAAA,WAAAumG,EAAAvmG,WAAAL,UAEA+hN,GAAA,SAAAn7G,EAAA3nH,EAAArG,GACAguH,EAAAlgG,aAAAznB,EAAArG,IAEA+vP,GAAA,SAAA/hI,GACA,IAAAgiI,EAAA7mK,GAAArhD,OAAA,UAA4CswK,MAAA,UAC5CjvH,GAAAy/G,YAAAonD,EAAAhiI,GACAgiI,EAAA1jO,YAAA0hG,GACAgiI,EAAA1jO,YAAA68D,GAAArhD,OAAA,cAAsDg3G,gBAAA,QAA0B,YAChFkxG,EAAAlxG,gBAAA,SAEAmxG,GAAA,SAAAjiI,GACA,IAAAgiI,EAAAhiI,EAAAvmG,WACA0hE,GAAAy/G,YAAA56E,EAAAgiI,GACA7mK,GAAAr8D,OAAAkjO,IAEAE,GAAA,SAAAliI,GACA8hI,GAAA9hI,GACAiiI,GAAAjiI,GAEA+hI,GAAA/hI,IAGAmiI,GAAA,SAAAniI,EAAAoiI,GACA,IAAAv3C,EAAA7qF,EAAA7/F,aAAA,SACAnuB,EAAAowP,EAAA,OAAAv3C,IAAA,IACA74M,EAAAH,OAAA,GACAmuH,EAAAlgG,aAAA,QAAA9tB,GACAguH,EAAAlgG,aAAA,iBAAA9tB,IAEAguH,EAAAz/F,gBAAA,UAGA0iL,GAAA,SAAA5qM,EAAA+pP,GACA,gBAAApiI,EAAA3nH,EAAArG,GACAguH,EAAAr1F,MAAAtyB,IACA2nH,EAAAr1F,MAAAtyB,GAAAqsK,GAAAs8E,eAAAhvP,GACAmwP,GAAAniI,EAAAoiI,IAEAjnB,GAAAn7G,EAAA3nH,EAAArG,KAIAgxM,GAAA,SAAAhjF,EAAA3nH,GACA,OAAA2nH,EAAAr1F,MAAAtyB,GACAqsK,GAAAq8E,kBAAA/gI,EAAAr1F,MAAAtyB,IAEAkrM,GAAAvjF,EAAA3nH,IAGAgqP,GAAA,SAAAriI,EAAAhuH,GACA,IAAAswP,EAAA59E,GAAAs8E,eAAAhvP,GACAguH,EAAAr1F,MAAA82N,WAAAa,EACAtiI,EAAAr1F,MAAA+2N,YAAAY,GAEAC,GAAA,SAAAviI,EAAAhuH,GACA,IAAAswP,EAAA59E,GAAAs8E,eAAAhvP,GACAguH,EAAAr1F,MAAAi3N,UAAAU,EACAtiI,EAAAr1F,MAAAk3N,aAAAS,GAEAE,GAAA,SAAAxiI,EAAAhuH,GACA,IAAAswP,EAAA59E,GAAAs8E,eAAAhvP,GACAguH,EAAAr1F,MAAA0tM,YAAAiqB,GAEAG,GAAA,SAAAziI,EAAAhuH,GACAguH,EAAAr1F,MAAA2tM,YAAAtmO,GAEA0wP,GAAA,SAAA1iI,GACA,OAAAnsB,GAAAmsB,EAAA,gBAEA2iI,GAAA,SAAAl3K,GACA,iBAAAA,EAAAryD,UAEAwpO,GAAA,SAAAn3K,GACA,cAAAA,EAAAryD,UAEA0gN,GAAA,WACA,OACA94G,IAAA,GACArsC,IAAA,GACA2B,MAAA,GACA7kD,MAAA,GACAjC,OAAA,GACA46K,MAAA,GACAz/K,MAAA,GACAsvM,SAAA,EACA4oB,OAAA,GACAC,OAAA,GACA/pE,OAAA,GACAu/C,YAAA,KAGAyqB,GAAA,SAAAX,EAAAxpO,GACA,IAAAonG,EAAA7uH,EAAAwZ,SAAAE,cAAA,OAcA,OAbAswN,GAAAn7G,EAAA,QAAApnG,EAAA+R,QACA62N,GAAAxhI,IAAA,KAAApnG,EAAAiqO,SACAR,GAAAriI,EAAApnG,EAAAiqO,SAEAlB,GAAA3hI,IAAA,KAAApnG,EAAAkqO,SACAP,GAAAviI,EAAApnG,EAAAkqO,SAEA5oB,GAAAl6G,IAAA,KAAApnG,EAAAmgK,SACAypE,GAAAxiI,EAAApnG,EAAAmgK,SAEA2pE,GAAA1iI,IAAA,KAAApnG,EAAA0/M,cACAmqB,GAAAziI,EAAApnG,EAAA0/M,aAEA8pB,EAAApiI,EAAA7/F,aAAA,WAEA2Z,GAAA,SAAAsoN,EAAAxpO,GACA,IAAAonG,EAAA7uH,EAAAwZ,SAAAE,cAAA,OAGA,GAFAiX,GAAAsgO,EAAAjkP,GAAAya,EAAA,CAAuCqhN,SAAA,IAAiBj6G,GACxDm7G,GAAAn7G,EAAA,MAAApnG,EAAA+7D,KACA/7D,EAAAqhN,QAAA,CACA,IAAA+oB,EAAA7nK,GAAArhD,OAAA,UAA2CswK,MAAA,UAI3C,OAHA44C,EAAA1kO,YAAA0hG,GACAgjI,EAAA1kO,YAAA68D,GAAArhD,OAAA,cAAqDg3G,gBAAA,QAA0B,YAC/EkyG,EAAAlyG,gBAAA,QACAkyG,EAEA,OAAAhjI,GAGA3qG,GAAA,SAAA+sO,EAAApiI,GACA,OACAgB,IAAAuiF,GAAAvjF,EAAA,OACArrC,IAAA4uH,GAAAvjF,EAAA,OACA1pC,MAAAitH,GAAAvjF,EAAA,SACAvuF,MAAAuxK,GAAAhjF,EAAA,SACAxwF,OAAAwzK,GAAAhjF,EAAA,UACAoqF,MAAA7G,GAAAvjF,EAAA,SACAr1F,MAAAy3N,EAAA7+C,GAAAvjF,EAAA,UACAi6G,QAAA6nB,GAAA9hI,GACA6iI,OAAArB,GAAAxhI,GACA8iI,OAAAnB,GAAA3hI,GACA+4D,OAAAmhD,GAAAl6G,GACAs4G,YAAAzkI,GAAAmsB,EAAA,iBAGAijI,GAAA,SAAAjjI,EAAAi9G,EAAAzwG,EAAAn0H,EAAAgS,GACAmiH,EAAAn0H,KAAA4kO,EAAA5kO,IACAgS,EAAA21G,EAAA3nH,EAAAm0H,EAAAn0H,KAGA6qP,GAAA,SAAA74O,EAAA+3O,GACA,gBAAApiI,EAAA3nH,EAAArG,GACAqY,EAAA21G,EAAAhuH,GACAmwP,GAAAniI,EAAAoiI,KAGAtgO,GAAA,SAAAsgO,EAAA51H,EAAAxM,GACA,IAAAi9G,EAAA5nN,GAAA+sO,EAAApiI,GACAijI,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,mBAAAxM,EAAAksB,EAAA7wC,GACA,OAAA6mJ,GAAAliI,KAEAijI,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,MAAA2uG,IACA8nB,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,MAAA2uG,IACA8nB,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,QAAA2uG,IACA8nB,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,QAAAy2E,GAAA,QAAAm/C,IACAa,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,SAAAy2E,GAAA,SAAAm/C,IACAa,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,QAAA2uG,IACA8nB,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,QAAA02H,GAAA,SAAAljI,EAAAhuH,GACA,OAAAmpO,GAAAn7G,EAAA,QAAAhuH,IACOowP,IACPa,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,SAAA02H,GAAAb,GAAAD,IACAa,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,SAAA02H,GAAAX,GAAAH,IACAa,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,SAAA02H,GAAAV,GAAAJ,IACAa,GAAAjjI,EAAAi9G,EAAAzwG,EAAA,cAAA02H,GAAAT,GAAAL,KAGAA,GAAA,SAAAx6K,EAAAslI,GACA,IAAA9hL,EAAAw8C,EAAAp8D,IAAAsa,OAAAgmD,MAAAohI,GACAi2C,EAAAz+E,GAAAu8E,aAAA71N,GACAg4N,EAAAx7K,EAAAp8D,IAAAsa,OAAAgmD,MAAAlE,EAAAp8D,IAAAsa,OAAAqiL,UAAAg7C,IACA,OAAAv7K,EAAAp8D,IAAAsa,OAAAqiL,UAAAi7C,IAEAC,GAAA,SAAAz7K,GACA,IAAAy5K,EAAAz5K,EAAA5kC,UAAAqoC,UACA22K,EAAAp6K,EAAAp8D,IAAA4oL,UAAAitD,EAAA,gBACA,OAAAW,EACAp6K,EAAAp8D,IAAAu5E,OAAA,MAAAi9J,GAAA,GAEAX,IAAA,QAAAA,EAAAjoO,UAAAsrJ,GAAA68E,mBAAAF,IACA,KAEAA,GAEAiC,GAAA,SAAA17K,EAAAo7K,GACA,IAAAx3O,EAAAo8D,EAAAp8D,IACAwqL,EAAAxqL,EAAA4oL,UAAA4uD,EAAAvpO,WAAA,SAAArO,GACA,OAAAw8D,EAAAjiE,OAAA8tL,uBAAAroL,EAAAgO,WACOwuD,EAAAhuD,WACP,OAAAo8K,EACAxqL,EAAAmY,MAAAqyK,EAAAgtD,GAEAA,GAGAO,GAAA,SAAA37K,GACA,IAAAo4C,EAAAqjI,GAAAz7K,GACA,OAAAo4C,EAAA3qG,GAAA,SAAA+V,GACA,OAAAg3N,GAAAx6K,EAAAx8C,IACO40F,GAAA85G,MAEP0pB,GAAA,SAAA57K,EAAAhvD,GACA,IAAA6yD,EAAA3xC,GAAA,SAAA1O,GACA,OAAAg3N,GAAAx6K,EAAAx8C,IACOxS,GACPgvD,EAAAp8D,IAAA2vN,UAAA1vJ,EAAA,0BACA7D,EAAA/wD,QACA+wD,EAAA5kC,UAAAgS,WAAAy2B,EAAAk6H,WACA,IAAA89C,EAAA77K,EAAAp8D,IAAAu5E,OAAA,gCAEA,GADAnd,EAAAp8D,IAAA2vN,UAAAsoB,EAAA,oBACAd,GAAAc,GAAA,CACA,IAAAT,EAAAM,GAAA17K,EAAA67K,GACA77K,EAAA5kC,UAAA+hD,OAAAi+J,QAEAp7K,EAAA5kC,UAAA+hD,OAAA0+J,IAGAC,GAAA,SAAA97K,EAAAo4C,GACAp4C,EAAAp8D,IAAA2vN,UAAAn7G,EAAA,MAAAA,EAAA7/F,aAAA,SAEAwjO,GAAA,SAAA/7K,EAAAo4C,GACA,GAAAA,EAAA,CACA,IAAAv0C,EAAA7D,EAAAp8D,IAAAjW,GAAAyqH,EAAAvmG,WAAA,gBAAAumG,EAAAvmG,WAAAumG,EACAp4C,EAAAp8D,IAAAsT,OAAA2sD,GACA7D,EAAA/wD,QACA+wD,EAAAub,cACAvb,EAAAp8D,IAAAqoL,QAAAjsH,EAAAhuD,aACAguD,EAAA5yB,WAAA,IACA4yB,EAAA5kC,UAAA2oC,uBAIAi4K,GAAA,SAAAh8K,EAAAhvD,GACA,IAAAonG,EAAAqjI,GAAAz7K,GAKA,GAJA9lD,GAAA,SAAAsJ,GACA,OAAAg3N,GAAAx6K,EAAAx8C,IACOxS,EAAAonG,GACP0jI,GAAA97K,EAAAo4C,GACA2iI,GAAA3iI,EAAAvmG,YAAA,CACA,IAAAupO,EAAAhjI,EAAAvmG,WACA6pO,GAAA17K,EAAAo7K,GACAp7K,EAAA5kC,UAAA+hD,OAAAi7B,EAAAvmG,iBAEAmuD,EAAA5kC,UAAA+hD,OAAAi7B,GACA0kD,GAAA08E,cAAAx5K,EAAAhvD,EAAAonG,IAGA6jI,GAAA,SAAAj8K,EAAAhvD,GACA,IAAAonG,EAAAqjI,GAAAz7K,GACAo4C,EACApnG,EAAAooG,IACA4iI,GAAAh8K,EAAAhvD,GAEA+qO,GAAA/7K,EAAAo4C,GAEOpnG,EAAAooG,KACPwiI,GAAA57K,EAAAhvD,IAIA2b,GAAA,SAAAp6B,EAAA7I,GACA,QAAAmC,EAAA,EAAqBA,EAAA0G,EAAAtI,OAAgB4B,IAAA,CACrC,IAAAc,EAAAjD,EAAA6I,EAAA1G,MACA,GAAAc,EAAAiB,SACA,OAAAjB,EAGA,OAAA4C,EAAArC,QAGAw+E,GAAAtgF,QAAAC,KAAAC,MAAAC,QAAA,sBAEA2kD,GAAA,SAAA1qB,GACA,OAAA50B,EAAA40B,EAAAp7B,OAAAo7B,EAAAp7B,MAAA,IAEA8xP,GAAA,SAAA9+N,EAAA++N,GACA,IAAA3/H,EAAA,GAiBA,OAhBA9wC,GAAAp9E,KAAA8uB,EAAA,SAAAoI,GACA,IAAA9hB,EAAA9S,EAAA40B,EAAA9hB,MAAA8hB,EAAA9hB,KAAA9S,EAAA40B,EAAAkpD,OAAAlpD,EAAAkpD,MAAA,GACA,QAAAxgF,IAAAs3B,EAAAinC,KAAA,CACA,IAAAtb,EAAA+qM,GAAA12N,EAAAinC,KAAA0vL,GACA3/H,EAAA/qH,KAAA,CACAiS,OACAytC,cAES,CACT,IAAA/mD,EAAA+xP,EAAA32N,GACAg3F,EAAA/qH,KAAA,CACAiS,OACAtZ,aAIAoyH,GAEA4/H,GAAA,SAAAC,GAIA,YAHA,IAAAA,IACAA,EAAAnsM,IAEA,SAAA9yB,GACA,OAAAA,EACA7tB,EAAAD,KAAA8tB,GAAA/uB,IAAA,SAAA+uB,GACA,OAAA8+N,GAAA9+N,EAAAi/N,KAGA9sP,EAAArC,SAIA20M,GAAA,SAAAzkL,GACA,OAAAg/N,GAAAlsM,GAAAksM,CAAAh/N,IAEAk/N,GAAA,SAAA92N,GACA,OAAA/5B,OAAAO,UAAAC,eAAAC,KAAAs5B,EAAA,UAEA+2N,GAAA,SAAAn/N,EAAAhzB,GACA,OAAAuiC,GAAAvP,EAAA,SAAAoI,GACA,OAAA82N,GAAA92N,GACA+2N,GAAA/2N,EAAA2rB,MAAA/mD,GACSo7B,EAAAp7B,UACTmF,EAAAP,KAAAw2B,GAEAj2B,EAAArC,UAIAsvP,GAAA,SAAAC,EAAAryP,GACA,OAAAqyP,EAAAluP,KAAA,SAAA6uB,GACA,OAAAm/N,GAAAn/N,EAAAhzB,MAGAsyP,GAAA,CACAN,aACAv6C,YACA26C,cAGAG,GAAA,SAAAC,EAAAC,GACA,OAAAD,EACAA,EAAA33O,QAAA,cAAA43O,EAAA53O,QAAA,UAEA43O,GAEA,SAAAC,GAAAj8K,GACA,IAAAk8K,EAAA,SAAAxI,EAAA91K,EAAA8kK,EAAArkK,GACA,IAAAs1K,EAAAz1D,EACAy1D,EAAA,IAAAjrP,EAAAorP,eACAH,EAAAvnM,KAAA,OAAA4zB,EAAAuuB,KACAolJ,EAAAI,gBAAA/zK,EAAAm8K,YACAxI,EAAAyI,OAAAC,WAAA,SAAA7wP,GACA6yE,EAAA7yE,EAAA8sH,OAAA9sH,EAAA6hJ,MAAA,MAEAsmG,EAAA0E,QAAA,WACA3V,EAAA,2DAAAiR,EAAA3mN,SAEA2mN,EAAAM,OAAA,WACA,IAAAC,EACAP,EAAA3mN,OAAA,KAAA2mN,EAAA3mN,QAAA,IACA01M,EAAA,eAAAiR,EAAA3mN,SAGAknN,EAAAh6O,KAAAmpE,MAAAswK,EAAAQ,cACAD,GAAA,kBAAAA,EAAAh3E,SAIAt/F,EAAAk+K,GAAA97K,EAAAs8K,SAAApI,EAAAh3E,WAHAwlE,EAAA,iBAAAiR,EAAAQ,gBAKAj2D,EAAA,IAAAx1L,EAAA0rP,SACAl2D,EAAAxoK,OAAA,OAAAg+N,EAAAh3N,OAAAg3N,EAAAW,YACAV,EAAAW,KAAAp2D,IAEAq+D,EAAA,SAAA7I,EAAAhnO,GACA,WAAA40D,GAAA,SAAA52E,EAAA0oG,GACA,IACA1mF,EAAAgnO,EAAAhpP,EAAA0oG,EAAAzqG,GACW,MAAA+qG,GACXN,EAAAM,EAAAvkG,aAIAqtP,EAAA,SAAA9vO,GACA,OAAAA,IAAAwvO,GAEAE,EAAA,SAAA1I,GACA,OAAA1zK,EAAAuuB,KAAAiuJ,EAAAx8K,EAAAtzD,SAAA40D,GAAA8xB,OAAA,yCAAAmpJ,EAAA7I,EAAA1zK,EAAAtzD,UAMA,OAJAszD,EAAA6K,GAAAmoD,OAAA,CACAmpH,aAAA,EACAzvO,QAAAwvO,GACOl8K,GACP,CAAco8K,UAGd,IAAAK,GAAA,SAAAl3O,GACA,OACAsoE,MAAA,WACAj+E,KAAA,WACA0gD,MAAA,CACA,CACAxgD,KAAA,QACA4E,MAAA,QACA9E,KAAA,SAEA,CACAE,KAAA,OACA02E,QAAA,EACAl2B,MAAA,CACA,CACAxgD,KAAA,QACA4E,MAAA,iBACA9E,KAAA,SACA4oI,UAAA,WAEA,CACA1oI,KAAA,QACA4E,MAAA,mBACA9E,KAAA,SACA4oI,UAAA,WAEA,CACA1oI,KAAA,QACA4E,MAAA,eACA9E,KAAA,SACA4oI,UAAA,WAEA,CACA1oI,KAAA,YACAF,KAAA,cACA8E,MAAA,eACA47C,MAAA,CACA,CACAztC,KAAA,YACAtZ,MAAA,IAEA,CACAsZ,KAAA,QACAtZ,MAAA,SAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,QACAtZ,MAAA,SAEA,CACAsZ,KAAA,QACAtZ,MAAA,SAEA,CACAsZ,KAAA,SACAtZ,MAAA,UAEA,CACAsZ,KAAA,OACAtZ,MAAA,QAEA,CACAsZ,KAAA,SACAtZ,MAAA,iBASAmzP,GAAA,CAAkBrF,QAAAoF,IAElBE,GAAA,SAAAx9K,GACA,IAAAy9K,EAAAf,GAAAN,UAAA,SAAA52N,GACA,OAAAw6C,EAAAo/H,WAAA55K,EAAAp7B,OAAAo7B,EAAA4pE,IAAA,SAEAsuJ,EAAAhmJ,EAAA5hG,GAAA,SAAAsoI,GACA0+B,GAAAy8E,gBAAAv5K,EAAA,SAAA23K,GACAv5G,EAAAq/G,EAAA9F,GAAAtpP,IAAA,SAAA8iD,GACA,OAAAt+C,EAAA,CACA,EACA6Q,KAAA,OACAtZ,MAAA,KAEA+mD,WAKAhvB,EAAAu6N,GAAA76C,SAAAtnH,GAAA04I,aAAAjzJ,IACAo4K,EAAA79J,GAAA69J,UAAAp4K,GACAq4K,EAAA99J,GAAA89J,aAAAr4K,GACAw4K,EAAAj+J,GAAAi+J,aAAAx4K,GACA04K,EAAAn+J,GAAAm+J,iBAAA14K,GACAo4C,EAAAujI,GAAA37K,GACA+3K,EAAAx9J,GAAAw9J,eAAA/3K,GACAg4K,EAAAz9J,GAAAy9J,cAAAh4K,GACAk7H,EAAA3gH,GAAA2gH,cAAAl7H,GACAi4K,EAAA19J,GAAA09J,gBAAAj4K,GACAovB,EAAA7U,GAAAk+J,aAAAz4K,GACAm9K,EAAA5iK,GAAAq+J,kBAAA54K,GACAg9K,EAAAziK,GAAAs+J,qBAAA74K,GACAzyD,EAAAgtE,GAAAo+J,iBAAA34K,GACA29K,EAAApuP,EAAAP,KAAAurF,GAAA+9J,cAAAt4K,IAAAtxE,OAAA,SAAAkvP,GACA,OAAAhtP,EAAAgtP,MAAA3zP,OAAA,IAEA,OAAAyzP,EAAArvP,IAAA,SAAAspP,GACA,OACAv/H,QACAu/H,YACAx1N,YACAi2N,YACAC,eACAG,eACAE,mBACAX,iBACAC,gBACA98C,gBACA+8C,kBACA7oJ,MACA+tJ,WACAH,cACAzvO,UACAowO,iBAKAE,GAAA,SAAAz3O,GACA,IAAA+qC,EAAA,EACAxgD,KAAA,WACAF,KAAA,cAEA,OACAi+E,MAAA,SACAj+E,KAAA,SACA0gD,UAGA2sM,GAAA,CAAqB5F,QAAA2F,IAErBjnH,GAAA,SAAAxwH,GACA,OACA23O,UAAArB,GAAAF,UAAAp2O,EAAAuxO,UAAAvxO,EAAAgyG,MAAAgB,KACA4kI,QAAA53O,EAAAgyG,MAAArrC,IACA9/B,MAAA,IAGAgxM,GAAA,SAAA7lI,GACA,OACAgB,IAAA,CACAhvH,MAAAguH,EAAAgB,IACA5nE,KAAA,IAEA0sM,OAAA9lI,EAAAgB,IACArsC,IAAAqrC,EAAArrC,IACA2B,MAAA0pC,EAAA1pC,MACAhsB,WAAA,CACA74B,MAAAuuF,EAAAvuF,MACAjC,OAAAwwF,EAAAxwF,QAEA5J,QAAAo6F,EAAAoqF,MACA6vB,QAAAj6G,EAAAi6G,QACAtvM,MAAAq1F,EAAAr1F,MACAm4N,OAAA9iI,EAAA8iI,OACA/pE,OAAA/4D,EAAA+4D,OACA8pE,OAAA7iI,EAAA6iI,OACAnqB,YAAA14G,EAAAs4G,YACAytB,UAAA,KAGAC,GAAA,SAAAptO,GACA,OACAooG,IAAApoG,EAAAooG,IAAAhvH,MACA2iF,IAAA/7D,EAAA+7D,IACA2B,MAAA19D,EAAA09D,MACA7kD,MAAA7Y,EAAA0xC,WAAA74B,MACAjC,OAAA5W,EAAA0xC,WAAA96B,OACA46K,MAAAxxL,EAAAgN,QACA+E,MAAA/R,EAAA+R,MACAsvM,QAAArhN,EAAAqhN,QACA4oB,OAAAjqO,EAAAiqO,OACAC,OAAAlqO,EAAAkqO,OACA/pE,OAAAngK,EAAAmgK,OACAu/C,YAAA1/M,EAAA8/M,cAGAutB,GAAA,SAAAj4O,EAAAk4O,GACA,6BAAA55O,KAAA45O,GAQA/uP,EAAArC,OAPAkZ,EAAAu3O,WAAApvP,KAAA,SAAAgwP,GACA,OAAAD,EAAAxiO,UAAA,EAAAyiO,EAAAt0P,UAAAs0P,EACAhvP,EAAAP,KAAAuvP,EAAAD,GAEA/uP,EAAArC,UAKAsxP,GAAA,SAAAp4O,EAAAshB,GACA,IAAA1W,EAAA0W,EAAA/J,UACA0gO,GAAAj4O,EAAA4K,EAAAooG,IAAAhvH,OAAAkE,KAAA,SAAAgwP,GACA52N,EAAA27J,QAAA,CACAjqE,IAAA,CACAhvH,MAAAk0P,EACA9sM,KAAAxgC,EAAAooG,IAAA5nE,WAKAitM,GAAA,SAAAr4O,EAAA4K,EAAAwgC,GACAprC,EAAA2xO,gBAAAnnP,EAAA4gD,EAAAu7B,OACA/7D,EAAA+7D,IAAAv7B,EAAAu7B,KAEA3mE,EAAA4xO,eAAApnP,EAAA4gD,EAAAk9B,SACA19D,EAAA09D,MAAAl9B,EAAAk9B,OAEAtoE,EAAA80L,gBACAtqM,EAAA4gD,EAAA3nB,SACA7Y,EAAA0xC,WAAA74B,MAAA2nB,EAAA3nB,OAEAj5B,EAAA4gD,EAAA5pB,UACA5W,EAAA0xC,WAAA96B,OAAA4pB,EAAA5pB,SAGAh3B,EAAA4gD,EAAAgxJ,QACAk6C,GAAAF,UAAAp2O,EAAA+b,UAAAqvB,EAAAgxJ,OAAAl0M,KAAA,SAAAk+I,GACAx7H,EAAAgN,QAAAwuH,EAAApiJ,QAGAgc,EAAA6xO,iBACAlnP,EAAAygD,EAAA6gL,WACArhN,EAAAqhN,QAAA7gL,EAAA6gL,SAGAjsN,EAAAgyO,YACAxnP,EAAA4gD,EAAA0pM,UACAlqO,EAAAkqO,OAAA1pM,EAAA0pM,QAEAtqP,EAAA4gD,EAAA2/H,UACAngK,EAAAmgK,OAAA3/H,EAAA2/H,QAEAvgL,EAAA4gD,EAAAypM,UACAjqO,EAAAiqO,OAAAzpM,EAAAypM,QAEArqP,EAAA4gD,EAAAs/K,eACA9/M,EAAA8/M,YAAAt/K,EAAAs/K,eAIA4tB,GAAA,SAAAt4O,EAAAshB,GACA,IAAA1W,EAAA0W,EAAA/J,UACA6zB,EAAAxgC,EAAAooG,IAAA5nE,KACA,QAAAtjD,IAAAsjD,EAAA,CACA,IAAAozE,EAAA3uH,GAAA,GAAkC+a,GAClCytO,GAAAr4O,EAAAw+G,EAAApzE,GACA9pB,EAAA27J,QAAAz+D,KAGA+5H,GAAA,SAAAC,EAAAx4O,EAAAxL,EAAA8sB,GACA,IAAA1W,EAAA0W,EAAA/J,UACAyxE,EAAAp+E,EAAAooG,IAAAhvH,MACAonD,EAAAxgC,EAAAooG,IAAA5nE,MAAA,GACAA,EAAA3nB,OAAA2nB,EAAA5pB,SAAAxhB,EAAA80L,eACA0jD,EAAAC,UAAAzvJ,GAAAh7F,IAAA,SAAAgE,GACAA,EAAA9J,KAAA,SAAA4D,GACA0I,EAAAqyC,MACAvlB,EAAA27J,QAAA,CAA2B3gI,WAAAxwD,SAM3B4sP,GAAA,SAAA14O,EAAAxL,EAAA8sB,GACA,IAAA1W,EAAA0W,EAAA/J,UACAy6F,EAAAskI,GAAAF,UAAAp2O,EAAAuxO,UAAA3mO,EAAAooG,IAAAhvH,OACAwQ,EAAAmjP,UAAA3lI,EACA1wF,EAAA27J,QAAA,CACA66D,OAAA9lI,EAAA/pH,IAAA,SAAAm+I,GACA,OAAAA,EAAApiJ,QACSyD,MAAA,OAGTkxP,GAAA,SAAAH,EAAAx4O,EAAAxL,EAAA8sB,GACA82N,GAAAp4O,EAAAshB,GACAg3N,GAAAt4O,EAAAshB,GACAi3N,GAAAC,EAAAx4O,EAAAxL,EAAA8sB,GACAo3N,GAAA14O,EAAAxL,EAAA8sB,IAEAs3N,GAAA,SAAAJ,EAAAx4O,EAAAxL,EAAA8sB,GACA,IAAA1W,EAAA0W,EAAA/J,UACAy6F,EAAAskI,GAAAF,UAAAp2O,EAAAuxO,UAAA3mO,EAAAktO,QACA9lI,EAAA9pH,KAAA,SAAAkmI,GACA,IAAAyqH,EAAA,KAAAjuO,EAAA+7D,KAAAnyE,EAAAmjP,UAAA1vP,IAAA,SAAA+pH,GACA,OAAAA,EAAA10G,OAAAsN,EAAA+7D,MACSl/E,OAAA,GACToxP,EACA,KAAAzqH,EAAApqI,MACAs9B,EAAA27J,QAAA,CACAjqE,IAAAob,EACAznD,IAAAnyE,EAAAojP,UAGAt2N,EAAA27J,QAAA,CACAjqE,IAAAob,EACAznD,IAAAynD,EAAA9wH,OAIAgkB,EAAA27J,QAAA,CAAuBjqE,IAAAob,MAGvB55H,EAAAmjP,UAAA3lI,EACA2mI,GAAAH,EAAAx4O,EAAAxL,EAAA8sB,IAEAw3N,GAAA,SAAA17N,GACA,IAAA27N,EAAA37N,EAAA,eAAAA,EAAA,kBAAAA,EAAA,gBAAAA,EAAA,iBACA,OAAA27N,EAAAriF,GAAAq8E,kBAAAlpP,OAAAuzB,EAAA,oBAEA47N,GAAA,SAAA57N,GACA,IAAA67N,EAAA77N,EAAA,iBAAAA,EAAA,gBAAAA,EAAA,kBAAAA,EAAA,eACA,OAAA67N,EAAAviF,GAAAq8E,kBAAAlpP,OAAAuzB,EAAA,sBAEA87N,GAAA,SAAA97N,GACA,OAAAA,EAAA,gBAAAs5I,GAAAq8E,kBAAAlpP,OAAAuzB,EAAA,sBAEA+7N,GAAA,SAAA/7N,GACA,OAAAA,EAAA,gBAAAvzB,OAAAuzB,EAAA,qBAEAg8N,GAAA,SAAAx9C,EAAAD,EAAAv+K,GACA,OAAAu+K,EAAAC,EAAAD,EAAAv+K,MAEAi8N,GAAA,SAAAz9C,EAAAD,EAAA/wL,GACA,IAAAwS,EAAAs5I,GAAAu8E,aAAAr3C,EAAAhxL,EAAA+R,QACA28N,EAAAzpP,GAAA,GAAiC+a,GAMjC,OALA0uO,EAAAxE,OAAAgE,GAAA17N,GACAk8N,EAAAzE,OAAAmE,GAAA57N,GACAk8N,EAAAvuE,OAAAmuE,GAAA97N,GACAk8N,EAAA5uB,YAAAyuB,GAAA/7N,GACAk8N,EAAA38N,MAAAy8N,GAAAx9C,EAAAD,EAAAv+K,GACAk8N,GAEAC,GAAA,SAAAf,EAAAl3N,GACA,IAAA1W,EAAA0W,EAAA/J,UACAinG,EAAA66H,GAAAb,EAAA58C,WAAA48C,EAAA78C,eAAA/wL,GACA0W,EAAA27J,QAAAz+D,IAEAg7H,GAAA,SAAAhB,EAAAx4O,EAAAshB,GACA,IAAA1W,EAAA/a,GAAAgoP,GAAA73O,EAAAgyG,OAAA1wF,EAAA/J,WACAoF,EAAAo4N,GAAAyD,EAAApE,aAAA4D,GAAAptO,IACA0W,EAAA27J,QAAA,CAAmBtgK,WAEnB88N,GAAA,SAAAjB,EAAAx4O,EAAAxL,EAAA8sB,GACA,IAAA1W,EAAA0W,EAAA/J,UACA+J,EAAAowG,MAAA,mBACAvkI,EAAAyd,EAAAmtO,WAAAzwP,KAAA,WACAg6B,EAAAkwG,WACO,SAAA9hB,GACP,IAAAgqI,EAAAv2P,EAAAwvH,IAAAC,gBAAAlD,GACAiqI,EAAAjD,GAAA,CACA1tJ,IAAAhpF,EAAAgpF,IACA+tJ,SAAA/2O,EAAA+2O,SACAH,YAAA52O,EAAA42O,YACAzvO,QAAAnH,EAAAmH,UAEAyyO,EAAA,WACAt4N,EAAAkwG,UACAruI,EAAAwvH,IAAAoC,gBAAA2kI,IAEAhjF,GAAA/hD,cAAAjF,GAAA3uC,KAAA,SAAA84K,GACA,IAAA1L,EAAAqK,EAAAsB,gBAAApqI,EAAAgqI,EAAAG,GACAF,EAAA9C,OAAA1I,GAAAptK,KAAA,SAAAioB,GACA1nE,EAAA27J,QAAA,CACAjqE,IAAA,CACAhvH,MAAAglG,EACA59C,KAAA,MAGA9pB,EAAAi1J,QAAA,WACAoiE,GAAAH,EAAAx4O,EAAAxL,EAAA8sB,GACAs4N,MACWtnI,MAAA,SAAAtoH,GACX4vP,IACApB,EAAAuB,SAAAz4N,EAAAt3B,UAKAgwP,GAAA,SAAAxB,EAAAx4O,EAAAxL,GACA,gBAAA8sB,EAAA45E,GACA,QAAAA,EAAA7wG,KACAsuP,GAAAH,EAAAx4O,EAAAxL,EAAA8sB,GACS,WAAA45E,EAAA7wG,KACTuuP,GAAAJ,EAAAx4O,EAAAxL,EAAA8sB,GACS,QAAA45E,EAAA7wG,KACTmK,EAAAojP,QAAAt2N,EAAA/J,UAAAovD,IACS,UAAAu0B,EAAA7wG,KACTkvP,GAAAf,EAAAl3N,GACS,WAAA45E,EAAA7wG,MAAA,WAAA6wG,EAAA7wG,MAAA,WAAA6wG,EAAA7wG,MAAA,gBAAA6wG,EAAA7wG,KACTmvP,GAAAhB,EAAAx4O,EAAAshB,GACS,cAAA45E,EAAA7wG,MACTovP,GAAAjB,EAAAx4O,EAAAxL,EAAA8sB,KAIA24N,GAAA,SAAAzlP,GACA,kBACAA,EAAAqyC,MAAA,IAGAqzM,GAAA,SAAAl6O,GACA,GAAAA,EAAAgyO,WAAAhyO,EAAAoyO,cAAApyO,EAAAsyO,iBAAA,CACA,IAAA6H,EAAA,CACA5vP,KAAA,WACAgrL,KAAA9oL,EAAA,CACA,CAAAslP,GAAAD,QAAA9xO,IACAA,EAAAgyO,UAAA,CAAAmF,GAAArF,QAAA9xO,IAAA,GACAA,EAAAiyO,eAAAjyO,EAAAoyO,cAAApyO,EAAAsyO,kBAAA,CAAAoF,GAAA5F,QAAA9xO,IAAA,MAGA,OAAAm6O,EAEA,IAAAnxH,EAAA,CACAz+H,KAAA,QACAwgD,MAAAgnM,GAAAV,UAAArxO,IAEA,OAAAgpH,GAGAoxH,GAAA,SAAA5B,GACA,gBAAAx4O,GACA,IAAAxL,EAAAg8H,GAAAxwH,GACA,OACAsoE,MAAA,oBACAx8E,KAAA,SACA6f,KAAAuuO,GAAAl6O,GACA83E,QAAA,CACA,CACAvtF,KAAA,SACAF,KAAA,SACAiT,KAAA,UAEA,CACA/S,KAAA,SACAF,KAAA,OACAiT,KAAA,OACAqxD,SAAA,IAGAgpB,YAAAkgK,GAAA73O,EAAAgyG,OACAj6B,SAAAygK,EAAAzgK,SAAA/3E,GACAglG,SAAAg1I,GAAAxB,EAAAx4O,EAAAxL,GACA8yC,QAAA2yM,GAAAzlP,MAIA6lP,GAAA,SAAAzgL,GACA,gBAAA55D,GACA,gBAAAshB,GACA,IAAA1W,EAAA/a,GAAAgoP,GAAA73O,EAAAgyG,OAAA1wF,EAAA/J,WACAqiD,EAAAob,YAAAC,SAAA,WACA4gK,GAAAj8K,EAAAo+K,GAAAptO,MAEAgvD,EAAA0gL,aAAAC,mBACAj5N,EAAA+lB,WAIAoxM,GAAA,SAAA7+K,GACA,gBAAAovB,GACA,OAAAivC,EAAAvoI,GAAA,SAAAsoI,GACA0+B,GAAAm8E,aAAAj5K,EAAA0rB,gBAAA1pD,WAAAotD,GAAA,SAAAp+E,GACA,IAAA5Y,EAAA4Y,EAAA3iB,IAAA,SAAAq0D,GACA,OACA74B,MAAA55B,OAAAyyD,EAAA74B,OACAjC,OAAA33B,OAAAyyD,EAAA96B,WAGAw2G,EAAAhmI,SAKA8nP,GAAA,SAAAlgL,GACA,gBAAA81C,EAAAgqI,EAAAG,GACA,OAAAjgL,EAAA0gL,aAAAE,UAAA1uN,OAAA,CACA3U,KAAAu4F,EACAgqI,UACArvP,KAAAqlH,EAAArlH,KAAAqlH,EAAArlH,KAAAwU,QAAA,qBACAu0G,OAAAymI,EAAAlkO,MAAA,YAIAokO,GAAA,SAAAngL,GACA,gBAAAt4C,EAAA13B,GACAgwE,EAAAie,cAAAgsG,MAAAj6L,EAAA03B,EAAA+lB,SAGAozM,GAAA,SAAA7gL,GACA,gBAAAslI,GACA,OAAAk1C,GAAAx6K,EAAAslI,KAGAtD,GAAA,SAAAhiI,GACA,gBAAAslI,GACA,OAAAtlI,EAAAp8D,IAAAo+L,WAAAsD,KAGAvD,GAAA,SAAA/hI,GACA,gBAAA8gL,EAAArwP,GACA,OAAAuvE,EAAAp8D,IAAAm+L,eAAA++C,EAAArwP,KAGAmxM,GAAA,SAAA5hI,GACA,IAAA4+K,EAAA,CACAzgK,SAAAsiK,GAAAzgL,GACA6+K,aAAA7+K,GACAkgL,mBAAAlgL,GACAmgL,YAAAngL,GACAw6K,aAAAqG,GAAA7gL,GACAgiI,cAAAhiI,GACA+hI,kBAAA/hI,IAEA/yB,EAAA,WACA,OAAAuwM,GAAAx9K,GAAA3xE,IAAAmyP,GAAA5B,IAAAxqP,IAAA,SAAAqoB,GACAujD,EAAAie,cAAAhxC,KAAAxwB,MAGA,OAAcwwB,SAGd66B,GAAA,SAAA9H,GACAA,EAAA0b,WAAA,WAAAkmH,GAAA5hI,GAAA/yB,OAEA6sJ,GAAA,CAAoBhyH,aAEpBi5K,GAAA,SAAAv9O,GACA,IAAAo+H,EAAAp+H,EAAAue,KAAA,SACA,OAAA6/G,GAAA,YAAAl9H,KAAAk9H,IAEAo/G,GAAA,SAAApmP,GACA,gBAAAgkC,GACA,IAAA/yC,EAAA+yC,EAAA30C,OACAg3P,EAAA,SAAAz9O,GACAA,EAAAue,KAAA,kBAAAnnB,EAAA,cAEA,MAAA/O,IAAA,CACA,IAAA2X,EAAAo7B,EAAA/yC,GACAk1P,GAAAv9O,KACAA,EAAAue,KAAA,kBAAAnnB,EAAA,cACA8wE,GAAAp9E,KAAAkV,EAAA0kE,OAAA,cAAA+4K,OAKAnpL,GAAA,SAAAkI,GACAA,EAAA/lC,GAAA,qBACA+lC,EAAAwxH,OAAAuS,cAAA,SAAAi9C,IAAA,IACAhhL,EAAAsgI,WAAAyD,cAAA,SAAAi9C,IAAA,OAGA18C,GAAA,CAAyBxsI,UAEzBumB,GAAA,SAAAre,GACAA,EAAAgI,GAAAC,SAAA6tF,gBAAA,SACAt2F,KAAA,QACAsL,QAAA,oBACAlL,SAAAgiI,GAAA5hI,GAAA/yB,KACAmlC,QAAA,SAAA8wC,GACA,OAAAljD,EAAA5kC,UAAAwpK,0BAAA,iEAAA1hF,EAAA9uC,WAAA8Q,UAGAllB,EAAAgI,GAAAC,SAAAm3F,YAAA,SACA5/F,KAAA,QACA97D,KAAA,WACAk8D,SAAAgiI,GAAA5hI,GAAA/yB,OAEA+yB,EAAAgI,GAAAC,SAAAwmK,eAAA,SACAv9L,OAAA,SAAAtlC,GACA,OAAAmvO,GAAAnvO,IAAAovO,GAAApvO,KAAAkxJ,GAAA68E,mBAAA/tO,GAAA,iBAIA4uL,GAAA,CAAmB1yH,SAAAuW,IAEnB,SAAAo8G,KACAtvM,EAAA62B,IAAA,iBAAAg+C,GACAskI,GAAAxsI,MAAAkI,GACAw6H,GAAA1yH,SAAA9H,GACA85H,GAAAhyH,SAAA9H,KAIAy6H,MAzzEA,CA2zECpwL,sDCn0ED,SAAA/gB,IAQA,SAAAC,GACA,aAEA,IAAAC,EAAA,aAEAG,EAAA,SAAAC,EAAAC,GACA,kBAEA,IADA,IAAAC,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,OAAAH,EAAAC,EAAAK,MAAA,KAAAJ,MAGAK,EAAA,SAAAC,GACA,kBACA,OAAAA,IAGAC,EAAA,SAAAC,GACA,OAAAA,GAEA,SAAAC,EAAAC,GAEA,IADA,IAAAC,EAAA,GACAV,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CU,EAAAV,EAAA,GAAAC,UAAAD,GAEA,kBAEA,IADA,IAAAW,EAAA,GACAX,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CW,EAAAX,GAAAC,UAAAD,GAEA,IAAAY,EAAAF,EAAAG,OAAAF,GACA,OAAAF,EAAAN,MAAA,KAAAS,IAGA,IAAAE,EAAA,SAAAnB,GACA,kBAEA,IADA,IAAAI,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,OAAAL,EAAAQ,MAAA,KAAAJ,KAGAgB,EAAA,SAAAC,GACA,kBACA,UAAAC,MAAAD,KAGAE,EAAAd,GAAA,GACAe,EAAAf,GAAA,GAEA+C,EAAA,WACA,OAAAC,GAEAA,EAAA,WACA,IAAAC,EAAA,SAAAC,GACA,OAAAA,EAAAC,UAEApB,EAAA,SAAAqB,GACA,OAAAA,KAEAC,EAAA,SAAA1B,GACA,OAAAA,GAEA2B,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAE,KAEA6B,GAAA1C,EACA2C,OAAA3C,EACAqC,OAAApC,EACA2C,MAAAL,EACAM,WAAA5B,EACA6B,SAAA,SAAAhD,GACA,UAAAC,MAAAD,GAAA,oCAEAiD,UAAA7D,EAAA,MACA8D,eAAA9D,OAAA+D,GACAC,GAAAX,EACAY,QAAAlC,EACAmC,IAAAnB,EACAoB,KAAA9E,EACA+E,KAAArB,EACAsB,OAAAvD,EACAwD,OAAAvD,EACAwD,OAAAxB,EACAyB,OAAAvB,EACAwB,QAAAxB,EACAyB,QAAA,WACA,UAEAC,SAAA3E,EAAA,WAKA,OAHAsB,OAAAsD,QACAtD,OAAAsD,OAAAtB,GAEAA,EA1CA,GA4CAuB,EAAA,SAAAlC,GACA,IAAAmC,EAAA9E,EAAA2C,GACAoC,EAAA,WACA,OAAAzB,GAEAc,EAAA,SAAA7E,GACA,OAAAA,EAAAoD,IAEAW,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAA,EAAAkB,IAEAa,GAAA,SAAAwB,GACA,OAAArC,IAAAqC,GAEAvB,OAAA1C,EACAoC,OAAArC,EACA4C,MAAAoB,EACAnB,WAAAmB,EACAlB,SAAAkB,EACAjB,UAAAiB,EACAhB,eAAAgB,EACAd,GAAAe,EACAd,QAAAc,EACAb,IAAA,SAAA3E,GACA,OAAAsF,EAAAtF,EAAAoD,KAEAwB,KAAA,SAAA5E,GACAA,EAAAoD,IAEAyB,OACAC,OAAAD,EACAE,OAAAF,EACAG,OAAA,SAAAhF,GACA,OAAAA,EAAAoD,GAAAW,EAAAN,GAEA0B,QAAA,WACA,OAAA/B,IAEAgC,SAAA,WACA,cAAAhC,EAAA,KAEA6B,OAAA,SAAAtB,GACA,OAAAA,EAAAM,GAAAb,IAEA8B,QAAA,SAAAvB,EAAA+B,GACA,OAAA/B,EAAAK,KAAAzC,EAAA,SAAAoE,GACA,OAAAD,EAAAtC,EAAAuC,OAIA,OAAA5B,GAEA6B,EAAA,SAAAlF,GACA,cAAAA,QAAA8D,IAAA9D,EAAA+C,EAAA6B,EAAA5E,IAEAmF,EAAA,CACAP,OACA9B,OACAoC,QAGAgB,EAAA,SAAAhG,GACA,UAAAA,EACA,aAEA,IAAAqB,SAAArB,EACA,iBAAAqB,IAAAiB,MAAAZ,UAAAuE,cAAAjG,MAAAkG,aAAA,UAAAlG,EAAAkG,YAAAC,MACA,QAEA,WAAA9E,IAAAsE,OAAAjE,UAAAuE,cAAAjG,MAAAkG,aAAA,WAAAlG,EAAAkG,YAAAC,MACA,SAEA9E,GAEA+E,EAAA,SAAAC,GACA,gBAAAvG,GACA,OAAAkG,EAAAlG,KAAAuG,IAGAC,EAAAF,EAAA,UACAG,EAAAH,EAAA,UACAI,EAAAJ,EAAA,SACAwwP,EAAAxwP,EAAA,QACAK,EAAAL,EAAA,WACAM,EAAAN,EAAA,YACAO,EAAAP,EAAA,UAEAW,EAAAzE,MAAAZ,UAAAsF,MACAC,EAAA3E,MAAAZ,UAAAM,QACAkF,EAAA5E,MAAAZ,UAAAyF,KACAC,EAAA,SAAAC,EAAAhG,GACA,OAAA4F,EAAArF,KAAAyF,EAAAhG,IAEAW,EAAA,SAAAsF,EAAAtH,GACA,IAAAqC,EAAA+E,EAAAE,EAAAtH,GACA,WAAAqC,EAAA4C,EAAArC,OAAAqC,EAAAP,KAAArC,IAEAkF,EAAA,SAAAD,EAAAtH,GACA,OAAAoH,EAAAE,EAAAtH,IAAA,GAEAkE,EAAA,SAAAoD,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,GAAAsF,EAAA7G,EAAAuB,GACA,SAGA,UAEAwC,EAAA,SAAAuD,EAAAlI,GAGA,IAFA,IAAA0H,EAAAQ,EAAA3H,OACA0C,EAAA,IAAAC,MAAAwE,GACAvF,EAAA,EAAqBA,EAAAuF,EAASvF,IAAA,CAC9B,IAAAvB,EAAAsH,EAAA/F,GACAc,EAAAd,GAAAnC,EAAAY,EAAAuB,GAEA,OAAAc,GAEA2B,EAAA,SAAAsD,EAAAlI,GACA,QAAAmC,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAnC,EAAAY,EAAAuB,KAGAsG,EAAA,SAAAP,EAAAlI,GACA,QAAAmC,EAAA+F,EAAA3H,OAAA,EAAiC4B,GAAA,EAAQA,IAAA,CACzC,IAAAvB,EAAAsH,EAAA/F,GACAnC,EAAAY,EAAAuB,KAGAuG,EAAA,SAAAR,EAAAT,GAGA,IAFA,IAAAkB,EAAA,GACAC,EAAA,GACAzG,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA0G,EAAApB,EAAA7G,EAAAuB,GAAAwG,EAAAC,EACAC,EAAAd,KAAAnH,GAEA,OACA+H,OACAC,SAGA5D,EAAA,SAAAkD,EAAAT,GAEA,IADA,IAAAxE,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAsF,EAAA7G,EAAAuB,IACAc,EAAA8E,KAAAnH,GAGA,OAAAqC,GAEA6F,EAAA,SAAAZ,EAAAlI,EAAA+I,GAIA,OAHAN,EAAAP,EAAA,SAAAtH,GACAmI,EAAA/I,EAAA+I,EAAAnI,KAEAmI,GAEAC,EAAA,SAAAd,EAAAlI,EAAA+I,GAIA,OAHAnE,EAAAsD,EAAA,SAAAtH,GACAmI,EAAA/I,EAAA+I,EAAAnI,KAEAmI,GAEAE,EAAA,SAAAf,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,GAAAsF,EAAA7G,EAAAuB,GACA,OAAA0D,EAAAP,KAAA1E,GAGA,OAAAiF,EAAArC,QAEA0F,EAAA,SAAAhB,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,GAAAsF,EAAA7G,EAAAuB,GACA,OAAA0D,EAAAP,KAAAnD,GAGA,OAAA0D,EAAArC,QAEA2F,EAAA,SAAAjB,GAEA,IADA,IAAAjF,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,IAASvF,EAAA,CAC/C,IAAAiF,EAAAc,EAAA/F,IACA,UAAAb,MAAA,oBAAAa,EAAA,6BAAA+F,GAEAJ,EAAAtH,MAAAyC,EAAAiF,EAAA/F,IAEA,OAAAc,GAEA4B,EAAA,SAAAqD,EAAAlI,GACA,IAAAoJ,EAAAzE,EAAAuD,EAAAlI,GACA,OAAAmJ,EAAAC,IAEArE,EAAA,SAAAmD,EAAAT,GACA,QAAAtF,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,IAASvF,EAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACA,QAAAsF,EAAA7G,EAAAuB,GACA,SAGA,UAEAkH,EAAA,SAAAnB,GACA,IAAAjF,EAAA0E,EAAAnF,KAAA0F,EAAA,GAEA,OADAjF,EAAAoG,UACApG,GAEAqG,EAAA,SAAAC,EAAAC,GACA,OAAAxE,EAAAuE,EAAA,SAAA3I,GACA,OAAAuH,EAAAqB,EAAA5I,MAGA62P,EAAA,SAAAvvP,EAAAlI,GAEA,IADA,IAAAiD,EAAA,GACAd,EAAA,EAAAuF,EAAAQ,EAAA3H,OAAsC4B,EAAAuF,EAASvF,IAAA,CAC/C,IAAAvB,EAAAsH,EAAA/F,GACAc,EAAAsD,OAAA3F,IAAAZ,EAAAY,EAAAuB,GAEA,OAAAc,GAEAyG,EAAA,SAAAxB,EAAAyB,GACA,IAAAC,EAAAjC,EAAAnF,KAAA0F,EAAA,GAEA,OADA0B,EAAAF,KAAAC,GACAC,GAEAC,EAAA,SAAA3B,GACA,WAAAA,EAAA3H,OAAAsF,EAAArC,OAAAqC,EAAAP,KAAA4C,EAAA,KAEA4B,EAAA,SAAA5B,GACA,WAAAA,EAAA3H,OAAAsF,EAAArC,OAAAqC,EAAAP,KAAA4C,IAAA3H,OAAA,KAEAwJ,EAAAzC,EAAApE,MAAA0C,MAAA1C,MAAA0C,KAAA,SAAAhF,GACA,OAAA+G,EAAAnF,KAAA5B,IAGAkB,EAAA,WAUA,OATAA,EAAAC,OAAAC,QAAA,SAAAC,GACA,QAAAC,EAAAC,EAAA,EAAAC,EAAA9B,UAAAC,OAAgD4B,EAAAC,EAAOD,IAEvD,QAAAE,KADAH,EAAA5B,UAAA6B,GACAD,EACAH,OAAAO,UAAAC,eAAAC,KAAAN,EAAAG,KACAJ,EAAAI,GAAAH,EAAAG,IAEA,OAAAJ,GAEAH,EAAAtB,MAAAiC,KAAAnC,YAEA,SAAAoC,EAAAR,EAAAS,GACA,IAAAV,EAAA,GACA,QAAAI,KAAAH,EACAH,OAAAO,UAAAC,eAAAC,KAAAN,EAAAG,IAAAM,EAAAC,QAAAP,GAAA,IACAJ,EAAAI,GAAAH,EAAAG,IACA,SAAAH,GAAA,oBAAAH,OAAAc,sBACA,KAAAV,EAAA,MAAAE,EAAAN,OAAAc,sBAAAX,GAA4DC,EAAAE,EAAA9B,OAAc4B,IAC1EQ,EAAAC,QAAAP,EAAAF,IAAA,GAAAJ,OAAAO,UAAAQ,qBAAAN,KAAAN,EAAAG,EAAAF,MACAF,EAAAI,EAAAF,IAAAD,EAAAG,EAAAF,KAEA,OAAAF,EAGA,IAAAy1P,GAAA,SAAAzwP,GACA,gBAAA6S,GACA,QAAAA,KAAAsI,WAAAnb,IAGA0wP,GAAA,SAAA79O,GACA,QAAAA,IAAA/X,OAAA61P,eAAA99O,IAEAkO,GAAA0vO,GAAA,GACAG,GAAA,SAAA9pM,GACA,IAAA+pM,EAAA/pM,EAAAppD,IAAA,SAAAzC,GACA,OAAAA,EAAA0Z,gBAEA,gBAAA9B,GACA,GAAAA,KAAAgO,SAAA,CACA,IAAAA,EAAAhO,EAAAgO,SAAAlM,cACA,OAAAzT,EAAA2vP,EAAAhwO,GAEA,WAGAiwO,GAAA,SAAAhxP,EAAA0D,GACA,IAAAg9C,EAAAh9C,EAAAmR,cAAAyW,MAAA,KACA,gBAAAvY,GACA,IAAA3X,EAAA61P,EACA,GAAAhwO,GAAAlO,GACA,IAAA3X,EAAA,EAAqBA,EAAAslD,EAAAlnD,OAAkB4B,IAAA,CACvC,IAAA81P,EAAAn+O,EAAAsO,cAAAyD,YAAAoO,iBAAAngB,EAAA,MAEA,GADAk+O,EAAAC,IAAA3+N,iBAAAvyB,GAAA,KACAixP,IAAAvwM,EAAAtlD,GACA,SAIA,WAGA+1P,GAAA,SAAAC,EAAAC,GACA,gBAAAt+O,GACA,OAAAkO,GAAAlO,MAAAq+O,KAAAC,IAGArpO,GAAA,SAAAuqL,EAAAC,GACA,gBAAAz/L,GACA,OAAAkO,GAAAlO,MAAAiV,aAAAuqL,KAGA++C,GAAA,SAAA/+C,EAAAC,GACA,gBAAAz/L,GACA,OAAAkO,GAAAlO,MAAA+U,aAAAyqL,KAAAC,IAGA++C,GAAA,SAAAx+O,GACA,OAAAkO,GAAAlO,MAAAiV,aAAA,mBAEAwpO,GAAA,SAAAz+O,GACA,OAAAkO,GAAAlO,IAAA,QAAAA,EAAA+U,aAAA,mBAEAulN,GAAA,SAAAt6N,GACA,OAAAkO,GAAAlO,IAAA,UAAAA,EAAAkrL,SAEAzlD,GAAA,SAAA7+I,GACA,gBAAAoZ,GACA,GAAAkO,GAAAlO,GAAA,CACA,GAAAA,EAAA0lI,kBAAA9+I,EACA,SAEA,GAAAoZ,EAAA+U,aAAA,8BAAAnuB,EACA,SAGA,WAGA83P,GAAAX,GAAA,CACA,WACA,UAEA5vO,GAAAyvO,GAAA,GACAl8C,GAAAk8C,GAAA,GACAe,GAAAf,GAAA,GACAgB,GAAAhB,GAAA,IACA31D,GAAA81D,GAAA,QACAp4G,GAAAF,GAAA,QACAG,GAAAH,GAAA,SACAojD,GAAA,CACA16K,UACAD,aACAwzL,aACAi9C,cACAC,sBACA32D,QACAtiD,yBACAC,0BACAi4G,oBACAE,kBACAK,gBACAnpO,gBACAspO,qBACAN,oBACAO,WACAC,cACAnkB,WACAokB,sBAGA3/O,GAAA,SAAAC,GACA,IAAApY,EAAAoY,EACApO,EAAA,WACA,OAAAhK,GAEAqY,EAAA,SAAAtT,GACA/E,EAAA+E,GAEAuT,EAAA,WACA,OAAAH,GAAAnO,MAEA,OACAA,MACAqO,MACAC,UAIA8B,GAAA,SAAAC,EAAA7Y,GACA,QAAAC,EAAA,EAAqBA,EAAA4Y,EAAAxa,OAAoB4B,IAAA,CACzC,IAAAvB,EAAAma,EAAA5Y,GACA,GAAAvB,EAAAoa,KAAA9Y,GACA,OAAAtB,IAKA4J,GAAA,SAAAuQ,EAAAG,GACA,IAAAjY,EAAA6X,GAAAC,EAAAG,GACA,IAAAjY,EACA,OACAkY,MAAA,EACAC,MAAA,GAGA,IAAAC,EAAA,SAAAlZ,GACA,OAAAmZ,OAAAJ,EAAAK,QAAAtY,EAAA,IAAAd,KAEA,OAAAiK,GAAAiP,EAAA,GAAAA,EAAA,KAEAI,GAAA,SAAAC,EAAAR,GACA,IAAAS,EAAApV,OAAA2U,GAAAU,cACA,WAAAF,EAAAnb,OACAsb,KAEArR,GAAAkR,EAAAC,IAEAE,GAAA,WACA,OAAAzP,GAAA,MAEAA,GAAA,SAAA+O,EAAAC,GACA,OACAD,QACAC,UAGAU,GAAA,CACA1P,MACAqP,UACAI,YAGAE,GAAA,OACAC,GAAA,SACAC,GAAA,KACAC,GAAA,QACAC,GAAA,UACAC,GAAA,SACAC,GAAA,SAAAtV,EAAAuV,GACA,kBACA,OAAAA,IAAAvV,IAGAwV,GAAA,WACA,OAAAf,GAAA,CACAc,aAAA9X,EACAiY,QAAAX,GAAAD,aAGAL,GAAA,SAAAkB,GACA,IAAAJ,EAAAI,EAAAJ,QACAG,EAAAC,EAAAD,QACA,OACAH,UACAG,UACAE,OAAAN,GAAAN,GAAAO,GACAM,SAAAP,GAAAL,GAAAM,GACAO,KAAAR,GAAAJ,GAAAK,GACAQ,QAAAT,GAAAH,GAAAI,GACAS,UAAAV,GAAAF,GAAAG,GACAU,SAAAX,GAAAD,GAAAE,KAGAW,GAAA,CACApB,QAAAU,GACAnQ,GAAAoP,GACAO,KAAAtb,EAAAsb,IACAC,OAAAvb,EAAAub,IACAC,GAAAxb,EAAAwb,IACAC,MAAAzb,EAAAyb,IACAC,QAAA1b,EAAA0b,IACAC,OAAA3b,EAAA2b,KAGAc,GAAA,UACAC,GAAA,MACAC,GAAA,UACAC,GAAA,QACAC,GAAA,MACAC,GAAA,UACAC,GAAA,UACAC,GAAA,SAAA1W,EAAAuV,GACA,kBACA,OAAAA,IAAAvV,IAGA2W,GAAA,WACA,OAAAlB,GAAA,CACAF,aAAA9X,EACAiY,QAAAX,GAAAD,aAGAW,GAAA,SAAAE,GACA,IAAAJ,EAAAI,EAAAJ,QACAG,EAAAC,EAAAD,QACA,OACAH,UACAG,UACAmB,UAAAH,GAAAP,GAAAZ,GACAuB,MAAAJ,GAAAN,GAAAb,GACAwB,UAAAL,GAAAL,GAAAd,GACAyB,MAAAN,GAAAH,GAAAhB,GACA0B,QAAAP,GAAAJ,GAAAf,GACA2B,UAAAR,GAAAF,GAAAjB,GACA4B,UAAAT,GAAAD,GAAAlB,KAGA6B,GAAA,CACAtC,QAAA6B,GACAtR,GAAAoQ,GACAU,QAAAzc,EAAAyc,IACAC,IAAA1c,EAAA0c,IACAC,QAAA3c,EAAA2c,IACAC,MAAA5c,EAAA4c,IACAC,IAAA7c,EAAA6c,IACAC,QAAA9c,EAAA8c,IACAC,QAAA/c,EAAA+c,KAGAY,GAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAJ,EAAAR,UAAA,YAAA7C,KAAAuD,GACAG,EAAAL,EAAAR,UAAAY,EACAE,EAAAN,EAAAR,SAAAQ,EAAAP,YACAc,EAAAD,GAAAH,EAAA,oBACAK,EAAAJ,IAAAC,GAAAC,GAAAH,EAAA,4BACAM,EAAAJ,GAAAC,IAAAE,EACAE,EAAAT,EAAAtB,YAAAqB,EAAAR,UAAA,cAAA7C,KAAAuD,GACAS,GAAAF,IAAAD,IAAAE,EACA,OACAN,OAAAhe,EAAAge,GACAC,SAAAje,EAAAie,GACAG,SAAApe,EAAAoe,GACAC,QAAAre,EAAAqe,GACAF,QAAAne,EAAAme,GACAd,UAAAO,EAAAP,UACAD,MAAAQ,EAAAR,MACAoB,UAAAxe,EAAAse,GACAC,UAAAve,EAAAue,KAIAE,GAAA,SAAAC,EAAAZ,GACA,IAAArD,EAAA3U,OAAAgY,GAAA3C,cACA,OAAA3S,EAAAkW,EAAA,SAAAC,GACA,OAAAA,EAAAC,OAAAnE,MAGAoE,GAAA,SAAAC,EAAAhB,GACA,OAAAW,GAAAK,EAAAhB,GAAA5Z,IAAA,SAAA2Z,GACA,IAAA7B,EAAAX,GAAAL,OAAA6C,EAAA5C,eAAA6C,GACA,OACAjC,QAAAgC,EAAAvX,KACA0V,cAIA+C,GAAA,SAAAC,EAAAlB,GACA,OAAAW,GAAAO,EAAAlB,GAAA5Z,IAAA,SAAA0Z,GACA,IAAA5B,EAAAX,GAAAL,OAAA4C,EAAA3C,eAAA6C,GACA,OACAjC,QAAA+B,EAAAtX,KACA0V,cAIAiD,GAAA,CACAJ,iBACAE,aAGAG,GAAA,SAAAC,EAAAC,EAAAC,GACA,QAAAD,EACA,SAEA,GAAAD,EAAArf,OAAAsf,EAAAtf,OACA,SAEA,IAAAK,EAAAgf,EAAAC,OAAAC,IAAAD,EAAAtf,QACA,OAAAK,IAAAif,GAEAE,GAAA,SAAAH,EAAAC,GACA,WAAAD,EAAAhd,QAAAid,IAEA47L,GAAA,SAAA77L,EAAAiQ,GACA,OAAAlQ,GAAAC,EAAAiQ,EAAA,IAEA3P,GAAA,SAAAN,GACA,OAAAA,EAAArE,QAAA,kBAEAo9O,GAAA,SAAA/4O,GACA,OAAAA,EAAArE,QAAA,aAEAq9O,GAAA,SAAAh5O,GACA,OAAAA,EAAArE,QAAA,aAGA4E,GAAA,sCACAC,GAAA,SAAAzU,GACA,gBAAA0U,GACA,OAAAN,GAAAM,EAAA1U,KAGA4T,GAAA,CACA,CACAxY,KAAA,OACA2U,eAAA,mCACA2D,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,UAAAN,GAAAM,EAAA,WAAAN,GAAAM,EAAA,WAAAN,GAAAM,EAAA,iBAGA,CACAtZ,KAAA,SACA2U,eAAA,CACA,kCACAyE,IAEAd,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,YAAAN,GAAAM,EAAA,iBAGA,CACAtZ,KAAA,KACA2U,eAAA,CACA,iCACA,8BAEA2D,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,SAAAN,GAAAM,EAAA,aAGA,CACAtZ,KAAA,QACA2U,eAAA,CACAyE,GACA,kCAEAd,OAAAe,GAAA,UAEA,CACArZ,KAAA,UACA2U,eAAA,wCACA2D,OAAAe,GAAA,YAEA,CACArZ,KAAA,SACA2U,eAAA,CACAyE,GACA,iCAEAd,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,WAAAN,GAAAM,EAAA,aAAAN,GAAAM,EAAA,kBAIAZ,GAAA,CACA,CACA1Y,KAAA,UACAsY,OAAAe,GAAA,OACA1E,eAAA,2CAEA,CACA3U,KAAA,MACAsY,OAAA,SAAAgB,GACA,OAAAN,GAAAM,EAAA,WAAAN,GAAAM,EAAA,SAEA3E,eAAA,CACA,sCACA,+BACA,wCAGA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,WACA1E,eAAA,uCAEA,CACA3U,KAAA,MACAsY,OAAAe,GAAA,QACA1E,eAAA,oCAEA,CACA3U,KAAA,QACAsY,OAAAe,GAAA,SACA1E,eAAA,IAEA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,SACA1E,eAAA,IAEA,CACA3U,KAAA,UACAsY,OAAAe,GAAA,WACA1E,eAAA,KAGA4E,GAAA,CACAf,SAAA9e,EAAA8e,IACAE,KAAAhf,EAAAgf,KAGAc,GAAA,SAAAhC,EAAAC,GACA,IAAAe,EAAAe,GAAAf,WACAE,EAAAa,GAAAb,OACAnB,EAAAoB,GAAAJ,cAAAC,EAAAhB,GAAAva,KAAAiZ,GAAApB,QAAAoB,GAAA7Q,IACAiS,EAAAqB,GAAAF,SAAAC,EAAAlB,GAAAva,KAAAma,GAAAtC,QAAAsC,GAAA/R,IACAoU,EAAApC,GAAAC,EAAAC,EAAAC,EAAAC,GACA,OACAF,UACAD,KACAmC,eAGAC,GAAA,CAA6BhF,OAAA8E,IAE7B/B,GAAA,SAAAkC,GACA,OAAA7gB,EAAA8gB,OAAAC,WAAAF,GAAAG,SAEAC,GAAAjI,GAAA4H,GAAAhF,OAAA5b,EAAAkhB,UAAAxC,UAAAC,KACAwC,GAAA,WACA,OAAAF,GAAApW,OAGAuO,GAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAC,EAAAF,EAAAG,cAAA,OAEA,GADAD,EAAAE,UAAAN,GACAI,EAAAG,iBAAAH,EAAAI,WAAAnZ,OAAA,EAEA,MADAV,EAAAiM,QAAAzF,MAAA,wCAAA6S,GACA,IAAA5X,MAAA,qCAEA,OAAAqY,GAAAL,EAAAI,WAAA,KAEAE,GAAA,SAAAC,EAAAV,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAS,EAAAV,EAAAG,cAAAM,GACA,OAAAF,GAAAG,IAEAC,GAAA,SAAAC,EAAAb,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAS,EAAAV,EAAAa,eAAAD,GACA,OAAAL,GAAAG,IAEAH,GAAA,SAAAG,GACA,UAAAA,QAAAtV,IAAAsV,EACA,UAAAxY,MAAA,oCAEA,OAAc4Y,IAAAzZ,EAAAqZ,KAEdK,GAAA,SAAAC,EAAAxZ,EAAAyZ,GACA,IAAAjB,EAAAgB,EAAAF,MACA,OAAArU,EAAAD,KAAAwT,EAAAkB,iBAAA1Z,EAAAyZ,IAAA1V,IAAAgV,KAEAY,GAAA,CACAtB,YACAW,WACAG,YACAJ,WACAQ,cAMA8G,IAHAphB,EAAA6a,KAAAwG,eACArhB,EAAA6a,KAAAyG,mBACAthB,EAAA6a,KAAA0G,aACAvhB,EAAA6a,KAAA2G,eAGAC,IAFAzhB,EAAA6a,KAAA6G,mBACA1hB,EAAA6a,KAAA8G,uBACA3hB,EAAA6a,KAAA+G,cACAC,GAAA7hB,EAAA6a,KAAAiH,UAQA5a,IAPAlH,EAAA6a,KAAAmH,4BACAhiB,EAAA6a,KAAAoH,sBACAjiB,EAAA6a,KAAAqH,YACAliB,EAAA6a,KAAAsH,cAEA,qBAAAniB,EAAA8gB,OAAA9gB,EAAA8gB,OAAAkH,SAAA,eAAAA,GAEA,SAAA3F,GACA,IAAAjf,EAAAif,EAAAhI,MAAA4N,SACA,OAAA7kB,EAAA2Y,gBAEA3U,GAAA,SAAAib,GACA,OAAAA,EAAAhI,MAAAkI,UAEA2F,GAAA,SAAA9lB,GACA,gBAAAigB,GACA,OAAAjb,GAAAib,KAAAjgB,IAGAk6E,GAAAp0D,GAAAzG,IACAo3D,GAAA3wD,GAAArG,IAEA1X,GAAAjI,OAAAiI,KACAzH,GAAAR,OAAAQ,eACA0H,GAAA,SAAAC,EAAAlK,GAEA,IADA,IAAAmK,EAAAH,GAAAE,GACA/G,EAAA,EAAAuE,EAAAyC,EAAA5J,OAAyC4C,EAAAuE,EAASvE,IAAA,CAClD,IAAAhB,EAAAgI,EAAAhH,GACAvC,EAAAsJ,EAAA/H,GACAnC,EAAAY,EAAAuB,KAGAiI,GAAA,SAAAF,EAAAlK,GACA,OAAAqK,GAAAH,EAAA,SAAAtJ,EAAAuB,GACA,OACAgB,EAAAhB,EACAsD,EAAAzF,EAAAY,EAAAuB,OAIAkI,GAAA,SAAAH,EAAAlK,GACA,IAAAiD,EAAA,GAKA,OAJAgH,GAAAC,EAAA,SAAAtJ,EAAAuB,GACA,IAAAmI,EAAAtK,EAAAY,EAAAuB,GACAc,EAAAqH,EAAAnH,GAAAmH,EAAA7E,IAEAxC,GAEA41P,GAAA,SAAA3uP,EAAAzC,GACA,IAAAxF,EAAA,GACAjC,EAAA,GAKA,OAJAiK,GAAAC,EAAA,SAAAtJ,EAAAuB,GACA,IAAA2P,EAAArK,EAAA7G,EAAAuB,GAAAF,EAAAjC,EACA8R,EAAA3P,GAAAvB,IAEA,CACAqB,IACAjC,MAGA0K,GAAA,SAAAR,EAAAS,GACA,OAAAC,GAAAV,EAAAS,GAAA9E,EAAAD,KAAAsE,EAAAS,IAAA9E,EAAArC,QAEAoH,GAAA,SAAAV,EAAAS,GACA,OAAApI,GAAAC,KAAA0H,EAAAS,IAGAyuB,GAAA,SAAAlf,GACA,YAAA1V,IAAA0V,EAAAmf,OAAA/xB,EAAA4S,EAAAmf,MAAAC,mBAGApR,GAAA,SAAAhG,GACA,IAAAhI,EAAAw+D,GAAAx2D,KAAAhI,MAAAiO,WAAAjG,EAAAhI,MACA,YAAA1V,IAAA0V,GAAA,OAAAA,KAAAkO,cAAAC,KAAAlgB,SAAA+R,IAGAqU,GAAA,SAAArU,EAAAvP,EAAAjK,GACA,KAAAwG,EAAAxG,IAAA2G,EAAA3G,IAAA6G,EAAA7G,IAIA,MADAb,EAAAiM,QAAAzF,MAAA,iCAAAsE,EAAA,YAAAjK,EAAA,cAAAwZ,GACA,IAAA5Y,MAAA,kCAHA4Y,EAAAsU,aAAA7jB,EAAAjK,EAAA,KAMAqY,GAAA,SAAAmJ,EAAAvX,EAAAjK,GACA6tB,GAAArM,EAAAhI,MAAAvP,EAAAjK,IAEAguB,GAAA,SAAAxM,EAAAyM,GACA,IAAAzU,EAAAgI,EAAAhI,MACAjQ,GAAA0kB,EAAA,SAAAlpB,EAAAtC,GACAorB,GAAArU,EAAA/W,EAAAsC,MAGAooB,GAAA,SAAA3L,EAAAvX,GACA,IAAAlF,EAAAyc,EAAAhI,MAAA2U,aAAAlkB,GACA,cAAAlF,OAAAjB,EAAAiB,GAEAqpB,GAAA,SAAA5M,EAAAvX,GACA,IAAAuP,EAAAgI,EAAAhI,MACA,SAAAA,MAAA6U,eAAA7U,EAAA6U,aAAApkB,IAEA6iB,GAAA,SAAAtL,EAAAvX,GACAuX,EAAAhI,MAAA+U,gBAAAtkB,IAGAikB,GAAA,SAAA1M,EAAAsX,GACA,IAAAtf,EAAAgI,EAAAhI,MACAsa,EAAA30B,EAAA8gB,OAAAsZ,iBAAA/f,GACAjX,EAAAuxB,EAAA8E,iBAAAE,GACA/zB,EAAA,KAAAxC,GAAAilB,GAAAhG,GAAAjf,EAAAi3B,GAAAhgB,EAAAsf,GACA,cAAA/zB,OAAAjB,EAAAiB,GAEAy0B,GAAA,SAAAhgB,EAAAsf,GACA,OAAAJ,GAAAlf,KAAAmf,MAAAC,iBAAAE,GAAA,IAEAW,GAAA,SAAAjY,EAAAsX,GACA,IAAAtf,EAAAgI,EAAAhI,MACAkgB,EAAAF,GAAAhgB,EAAAsf,GACA,OAAA3zB,EAAAD,KAAAw0B,GAAAp1B,OAAA,SAAA/B,GACA,OAAAA,EAAA1C,OAAA,KAGAg6B,GAAA,SAAA53B,GACA,OAAAA,EAAAuX,MAAAsgB,aAGA5P,GAAA,WAEA,IADA,IAAAld,EAAA,GACArN,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CqN,EAAArN,GAAAC,UAAAD,GAEA,kBAEA,IADA,IAAAoK,EAAA,GACApK,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CoK,EAAApK,GAAAC,UAAAD,GAEA,GAAAqN,EAAAnN,SAAAkK,EAAAlK,OACA,UAAAe,MAAA,mDAAAoM,EAAAnN,OAAA,WAAAkK,EAAAlK,OAAA,cAEA,IAAAsqB,EAAA,GAIA,OAHAjmB,EAAA8I,EAAA,SAAA3G,EAAA5E,GACA0oB,EAAA9jB,GAAAtG,EAAAgK,EAAAtI,MAEA0oB,IAIA1lB,GAAA,SAAAwG,EAAA3L,GACA,IAAAiD,EAAA,GACAs2E,EAAA,SAAA52E,GAEA,OADAM,EAAA8E,KAAApF,GACA3C,EAAA2C,IAEAm2P,EAAA94P,EAAA2L,GACA,GACAmtP,IAAAj0P,KAAA00E,SACOu/K,EAAA50P,UACP,OAAAjB,GAEA81P,GAAA,CAAmB5zP,YAEnBqV,GAAA,SAAApX,EAAAuC,EAAA0F,GACA,YAAAjI,EAAAoX,wBAAA7U,GAAA0F,IAEAoP,GAAA,SAAArX,EAAAuC,GACA,OAAA6U,GAAApX,EAAAuC,EAAA9F,EAAA6a,KAAAC,8BAEAC,GAAA,SAAAxX,EAAAuC,GACA,OAAA6U,GAAApX,EAAAuC,EAAA9F,EAAA6a,KAAAG,iCAEAH,GAAA,CACAD,6BACAG,gCAGAgH,GAAAN,GACAW,GAAAhB,GACAhd,GAAA,SAAAie,EAAAC,GACA,IAAAjI,EAAAgI,EAAAhI,MACA,GAAAA,EAAAkI,WAAAR,GACA,SAEA,IAAAS,EAAAnI,EACA,QAAA1V,IAAA6d,EAAAxB,QACA,OAAAwB,EAAAxB,QAAAsB,GACS,QAAA3d,IAAA6d,EAAAC,kBACT,OAAAD,EAAAC,kBAAAH,GACS,QAAA3d,IAAA6d,EAAAE,sBACT,OAAAF,EAAAE,sBAAAJ,GACS,QAAA3d,IAAA6d,EAAAG,mBACT,OAAAH,EAAAG,mBAAAL,GAEA,UAAA7gB,MAAA,mCAIAmhB,GAAA,SAAAvI,GACA,OAAAA,EAAAkI,WAAAR,IAAA1H,EAAAkI,WAAAH,IAAA,IAAA/H,EAAAwI,mBAEAzhB,GAAA,SAAAkhB,EAAAhJ,GACA,IAAA3L,OAAAhJ,IAAA2U,EAAAtZ,EAAAwZ,SAAAF,EAAAe,MACA,OAAAuI,GAAAjV,GAAA,GAAA7I,EAAA6I,EAAAmV,iBAAAR,GAAA5H,GAAAZ,UAEAiJ,GAAA,SAAAT,EAAAhJ,GACA,IAAA3L,OAAAhJ,IAAA2U,EAAAtZ,EAAAwZ,SAAAF,EAAAe,MACA,OAAAuI,GAAAjV,GAAA3H,EAAArC,OAAAqC,EAAAD,KAAA4H,EAAAqV,cAAAV,IAAAxd,IAAA4V,GAAAZ,UAGAjW,GAAA,SAAAof,EAAAC,GACA,OAAAD,EAAA5I,QAAA6I,EAAA7I,OAEA8I,GAAA,SAAAF,EAAAC,GACA,IAAAE,EAAAH,EAAA5I,MACAgJ,EAAAH,EAAA7I,MACA,OAAA+I,IAAAC,GAAAD,EAAA9a,SAAA+a,IAEAC,GAAA,SAAAL,EAAAC,GACA,OAAArI,GAAAE,4BAAAkI,EAAA5I,MAAA6I,EAAA7I,QAEAoE,GAAA0C,KAAA1C,QACA8E,GAAA9E,GAAAzB,OAAAsG,GAAAH,GAEA2I,GAAA,SAAAzJ,GACA,OAAA3H,GAAAZ,QAAAuI,EAAAhI,MAAAkO,gBAEAwD,GAAA,SAAA1J,GACA,OAAA3H,GAAAZ,QAAAuI,EAAAhI,MAAAkO,cAAAwD,kBAEAC,GAAA,SAAA3J,GACA,OAAA3H,GAAAZ,QAAAuI,EAAAhI,MAAAkO,cAAAyD,cAEAC,GAAA,SAAA5J,GACA,OAAArc,EAAAD,KAAAsc,EAAAhI,MAAAiO,YAAAxjB,IAAA4V,GAAAZ,UAEA2hJ,GAAA,SAAAp5I,EAAA0F,GACA,IAAAY,EAAAlhB,EAAAsgB,KAAArmB,EACA2Y,EAAAgI,EAAAhI,MACAvN,EAAA,GACA,aAAAuN,EAAAiO,iBAAA3jB,IAAA0V,EAAAiO,WAAA,CACA,IAAA0zL,EAAA3hM,EAAAiO,WACA9lB,EAAAkY,GAAAZ,QAAAkiM,GAEA,GADAlvM,EAAA5E,KAAA1F,IACA,IAAAmmB,EAAAnmB,GACA,MAEA6X,EAAA2hM,EAGA,OAAAlvM,GAEAmvM,GAAA,SAAA55L,GACA,OAAArc,EAAAD,KAAAsc,EAAAhI,MAAAooL,iBAAA39L,IAAA4V,GAAAZ,UAEAqS,GAAA,SAAA9J,GACA,OAAArc,EAAAD,KAAAsc,EAAAhI,MAAA8R,aAAArnB,IAAA4V,GAAAZ,UAEAq/O,GAAA,SAAA92O,GACA,OAAA7Y,EAAA0vP,GAAA5zP,QAAA+c,EAAA45L,MAEAm9C,GAAA,SAAA/2O,GACA,OAAA62O,GAAA5zP,QAAA+c,EAAA8J,KAEAC,GAAA,SAAA/J,GACA,OAAAvd,EAAAud,EAAAhI,MAAAR,WAAAa,GAAAZ,UAEAuS,GAAA,SAAAhK,EAAAiK,GACA,IAAAC,EAAAlK,EAAAhI,MAAAR,WACA,OAAA7T,EAAAD,KAAAwmB,EAAAD,IAAAxnB,IAAA4V,GAAAZ,UAEA0S,GAAA,SAAAnK,GACA,OAAAgK,GAAAhK,EAAA,IAEAg/K,GAAA,SAAAh/K,GACA,OAAAgK,GAAAhK,IAAAhI,MAAAR,WAAAnZ,OAAA,IAEA24P,GAAA,SAAAh3O,GACA,OAAAA,EAAAhI,MAAAR,WAAAnZ,QAIA44P,IAFAvuO,GAAA,oBAEA5J,KAAA1C,SACA86O,GAAA,SAAAlkN,GACA,OAAAjsC,EAAAisC,EAAAinC,KAEAk9K,GAAA,SAAAl/K,GACA,OAAAg/K,GAAAp8O,aAAA,UAAAhW,GAAAozE,GACAi/K,GAAAntO,GAAAkuD,IAAAn1E,OAAA,SAAAm1E,GACA,kBAAApzE,GAAAozE,KACSt1E,KAAA,SAAA8jO,GACT,OAAAywB,GAAAH,GAAAtwB,IAAAhkO,IAAA,SAAA0jB,GACA,IAAAixO,EAAAjxO,EAAAnO,MAAAilB,UACAo6N,EAAA5wB,EAAAzuN,MAAAilB,UACAq6N,EAAA7wB,EAAAzuN,MAAAikB,aACA,OAAAm7N,GAAAC,GAAAC,EAAA,MAESr1P,MAAA,GAET,GAGAs1P,GAAA,SAAAt/K,EAAAjuD,GACA,OAAAiuD,EAAAluD,UAAA9jB,EAAAgyE,EAAAluD,SAAAC,IAEA+rJ,GAAA,SAAA5vJ,EAAA8xD,EAAAivF,GACA,IAAAr9I,EAEAoiB,EAFAvtC,EAAA,EAAAyZ,EAAA,EACAjB,EAAAiP,EAAAD,cAGA,GADAghJ,KAAA/gJ,EACA8xD,EAAA,CACA,GAAAivF,IAAA/gJ,GAAA8xD,EAAAl8C,uBAAA,WAAArP,GAAArU,GAAAZ,QAAA0O,GAAA,YAIA,OAHA8lB,EAAAgsC,EAAAl8C,wBACAr9B,EAAAutC,EAAA1P,MAAArlB,EAAAwS,gBAAA0T,YAAAjX,EAAAiX,YAAAlmB,EAAAwS,gBAAA6T,WACAplB,EAAA8zB,EAAAzP,KAAAtlB,EAAAwS,gBAAAwT,WAAA/W,EAAA+W,WAAAhmB,EAAAwS,gBAAA4T,UACA,CACA5+B,IACAyZ,KAGA0R,EAAAouD,EACA,MAAApuD,OAAAq9I,GAAAr9I,EAAA3J,WAAAq3O,GAAA1tO,EAAAq9I,GACAxoK,GAAAmrB,EAAAmT,YAAA,EACA7kB,GAAA0R,EAAAoT,WAAA,EACApT,iBAEAA,EAAAouD,EAAAhyD,WACA,MAAA4D,OAAAq9I,GAAAr9I,EAAA3J,WAAAq3O,GAAA1tO,EAAAq9I,GACAxoK,GAAAmrB,EAAAuT,YAAA,EACAjlB,GAAA0R,EAAAqT,WAAA,EACArT,IAAA5D,WAEA9N,GAAAg/O,GAAA9+O,GAAAZ,QAAAwgE,IAEA,OACAv5E,IACAyZ,MAGAukB,GAAA,CAAoBq5I,WAEpB9wE,GAAA,GAAsBuyJ,GAAA,CAAcryJ,QAAAF,KACpC,SAAAG,EAAAD,EAAAD,EAAAG,IACA,SAAAvnG,GACA,qBAAAqnG,GAAA,qBAAAD,EACAA,EAAAC,QAAArnG,SACS,uBAAAsnG,KAAAE,IACTF,EAAA,GAAAtnG,OACS,CACT,IAAA2tD,EAEAA,EADA,qBAAAhtC,OACAA,OACW,qBAAA/gB,EACXA,EACW,qBAAA4F,KACXA,KAEA/C,KAEAkrD,EAAA85C,oBAAAznG,MAhBA,CAkBO,WACP,kBACA,SAAAiD,EAAAN,EAAAP,EAAAH,GACA,SAAA0B,EAAAxB,EAAAnC,GACA,IAAAoC,EAAAD,GAAA,CACA,IAAAQ,EAAAR,GAAA,CACA,IAAAgoB,EAAA,mBAAAo9E,KACA,IAAAvnG,GAAAmqB,EACA,OAAAA,EAAAhoB,GAAA,GACA,GAAAqrD,EACA,OAAAA,EAAArrD,GAAA,GACA,IAAAiB,EAAA,IAAA9B,MAAA,uBAAAa,EAAA,KACA,MAAAiB,EAAAskG,KAAA,mBAAAtkG,EAEA,IAAAf,EAAAD,EAAAD,GAAA,CAAgCklG,QAAA,IAChC1kG,EAAAR,GAAA,GAAAK,KAAAH,EAAAglG,QAAA,SAAApkG,GACA,IAAAb,EAAAO,EAAAR,GAAA,GAAAc,GACA,OAAAU,EAAAvB,GAAAa,IACiBZ,IAAAglG,QAAApkG,EAAAN,EAAAP,EAAAH,GAEjB,OAAAG,EAAAD,GAAAklG,QAEA,QAAA75C,EAAA,mBAAA+5C,KAAAplG,EAAA,EAAwEA,EAAAF,EAAA1B,OAAc4B,IACtFwB,EAAA1B,EAAAE,IACA,OAAAwB,EAEA,OAAAV,EAzBA,GA0BS,CACT0kG,EAAA,CACA,SAAAJ,EAAAH,EAAAC,GACA,IACAO,EACAC,EAFA1uB,EAAAiuB,EAAAC,QAAA,GAGA,SAAAS,IACA,UAAAxmG,MAAA,mCAEA,SAAAymG,IACA,UAAAzmG,MAAA,qCAsBA,SAAA0mG,EAAA9L,GACA,GAAA0L,IAAAjwB,WACA,OAAAA,WAAAukB,EAAA,GAEA,IAAA0L,IAAAE,IAAAF,IAAAjwB,WAEA,OADAiwB,EAAAjwB,WACAA,WAAAukB,EAAA,GAEA,IACA,OAAA0L,EAAA1L,EAAA,GACiB,MAAAv5F,GACjB,IACA,OAAAilG,EAAAplG,KAAA,KAAA05F,EAAA,GACmB,MAAAv5F,GACnB,OAAAilG,EAAAplG,KAAAC,KAAAy5F,EAAA,KAIA,SAAA+L,EAAAz7E,GACA,GAAAq7E,IAAAvvB,aACA,OAAAA,aAAA9rD,GAEA,IAAAq7E,IAAAE,IAAAF,IAAAvvB,aAEA,OADAuvB,EAAAvvB,aACAA,aAAA9rD,GAEA,IACA,OAAAq7E,EAAAr7E,GACiB,MAAA7pB,GACjB,IACA,OAAAklG,EAAArlG,KAAA,KAAAgqB,GACmB,MAAA7pB,GACnB,OAAAklG,EAAArlG,KAAAC,KAAA+pB,MApDA,WACA,IAEAo7E,EADA,oBAAAjwB,WACAA,WAEAmwB,EAEiB,MAAAnlG,GACjBilG,EAAAE,EAEA,IAEAD,EADA,oBAAAvvB,aACAA,aAEAyvB,EAEiB,MAAAplG,GACjBklG,EAAAE,IAjBA,GAwDA,IAEAG,EAFAC,EAAA,GACAC,GAAA,EAEAC,GAAA,EACA,SAAAC,IACAF,GAAAF,IAGAE,GAAA,EACAF,EAAA3nG,OACA4nG,EAAAD,EAAAhnG,OAAAinG,GAEAE,GAAA,EAEAF,EAAA5nG,QACAgoG,KAGA,SAAAA,IACA,IAAAH,EAAA,CAGA,IAAA1wB,EAAAswB,EAAAM,GACAF,GAAA,EACA,IAAA1gG,EAAAygG,EAAA5nG,OACA,MAAAmH,EAAA,CACAwgG,EAAAC,EACAA,EAAA,GACA,QAAAE,EAAA3gG,EACAwgG,GACAA,EAAAG,GAAAnkF,MAGAmkF,GAAA,EACA3gG,EAAAygG,EAAA5nG,OAEA2nG,EAAA,KACAE,GAAA,EACAH,EAAAvwB,IAcA,SAAA8wB,EAAAtM,EAAA3zF,GACA9F,KAAAy5F,MACAz5F,KAAA8F,QAWA,SAAAzI,KAzBAq5E,EAAAsvB,SAAA,SAAAvM,GACA,IAAA97F,EAAA,IAAA8C,MAAA5C,UAAAC,OAAA,GACA,GAAAD,UAAAC,OAAA,EACA,QAAA4B,EAAA,EAAiCA,EAAA7B,UAAAC,OAAsB4B,IACvD/B,EAAA+B,EAAA,GAAA7B,UAAA6B,GAGAgmG,EAAApgG,KAAA,IAAAygG,EAAAtM,EAAA97F,IACA,IAAA+nG,EAAA5nG,QAAA6nG,GACAJ,EAAAO,IAOAC,EAAAlmG,UAAA4hB,IAAA,WACAzhB,KAAAy5F,IAAA17F,MAAA,KAAAiC,KAAA8F,QAEA4wE,EAAA6L,MAAA,UACA7L,EAAA76D,SAAA,EACA66D,EAAAuvB,IAAA,GACAvvB,EAAAwvB,KAAA,GACAxvB,EAAA18D,QAAA,GACA08D,EAAAyvB,SAAA,GAGAzvB,EAAA5oC,GAAAzwC,EACAq5E,EAAA0vB,YAAA/oG,EACAq5E,EAAA2vB,KAAAhpG,EACAq5E,EAAAj7B,IAAAp+C,EACAq5E,EAAA4vB,eAAAjpG,EACAq5E,EAAA6vB,mBAAAlpG,EACAq5E,EAAAnyD,KAAAlnB,EACAq5E,EAAA8vB,gBAAAnpG,EACAq5E,EAAA+vB,oBAAAppG,EACAq5E,EAAAqmB,UAAA,SAAAz4F,GACA,UAEAoyE,EAAAgwB,QAAA,SAAApiG,GACA,UAAAzF,MAAA,qCAEA63E,EAAAiwB,IAAA,WACA,WAEAjwB,EAAAkwB,MAAA,SAAAv9B,GACA,UAAAxqE,MAAA,mCAEA63E,EAAAmwB,MAAA,WACA,WAGA,IAEAC,EAAA,CACA,SAAAhC,EAAAH,EAAAC,IACA,SAAAmC,IACA,SAAA3wD,GACA,IAAA4wD,EAAA9xB,WACA,SAAA73E,KAEA,SAAA+E,EAAA/D,EAAA4oG,GACA,kBACA5oG,EAAAN,MAAAkpG,EAAAppG,YAGA,SAAAqpG,EAAA7oG,GACA,qBAAA2B,KACA,UAAAmnG,UAAA,wCACA,uBAAA9oG,EACA,UAAA8oG,UAAA,kBACAnnG,KAAAonG,OAAA,EACApnG,KAAAqnG,UAAA,EACArnG,KAAAsnG,YAAAvlG,EACA/B,KAAAunG,WAAA,GACAC,EAAAnpG,EAAA2B,MAEA,SAAA04F,EAAA31F,EAAA0kG,GACA,UAAA1kG,EAAAqkG,OACArkG,IAAAukG,OAEA,IAAAvkG,EAAAqkG,QAIArkG,EAAAskG,UAAA,EACAH,EAAAQ,aAAA,WACA,IAAAC,EAAA,IAAA5kG,EAAAqkG,OAAAK,EAAAG,YAAAH,EAAAI,WACA,UAAAF,EAAA,CAIA,IAAAz9F,EACA,IACAA,EAAAy9F,EAAA5kG,EAAAukG,QACuB,MAAApnG,GAEvB,YADA4nG,EAAAL,EAAAM,QAAA7nG,GAGAd,EAAAqoG,EAAAM,QAAA79F,QAVA,IAAAnH,EAAAqkG,OAAAhoG,EAAA0oG,GAAAL,EAAAM,QAAAhlG,EAAAukG,WAPAvkG,EAAAwkG,WAAAjiG,KAAAmiG,GAoBA,SAAAroG,EAAA2D,EAAA++C,GACA,IACA,GAAAA,IAAA/+C,EACA,UAAAokG,UAAA,6CACA,GAAArlD,IAAA,kBAAAA,GAAA,oBAAAA,GAAA,CACA,IAAAk5B,EAAAl5B,EAAAk5B,KACA,GAAAl5B,aAAAolD,EAIA,OAHAnkG,EAAAqkG,OAAA,EACArkG,EAAAukG,OAAAxlD,OACAkmD,EAAAjlG,GAEyB,uBAAAi4E,EAEzB,YADAwsB,EAAAplG,EAAA44E,EAAAl5B,GAAA/+C,GAIAA,EAAAqkG,OAAA,EACArkG,EAAAukG,OAAAxlD,EACAkmD,EAAAjlG,GACqB,MAAA7C,GACrB4nG,EAAA/kG,EAAA7C,IAGA,SAAA4nG,EAAA/kG,EAAA++C,GACA/+C,EAAAqkG,OAAA,EACArkG,EAAAukG,OAAAxlD,EACAkmD,EAAAjlG,GAEA,SAAAilG,EAAAjlG,GACA,IAAAA,EAAAqkG,QAAA,IAAArkG,EAAAwkG,WAAAzpG,QACAopG,EAAAQ,aAAA,WACA3kG,EAAAskG,UACAH,EAAAe,sBAAAllG,EAAAukG,UAIA,QAAA5nG,EAAA,EAAAuF,EAAAlC,EAAAwkG,WAAAzpG,OAAiE4B,EAAAuF,EAASvF,IAC1Eg5F,EAAA31F,IAAAwkG,WAAA7nG,IAEAqD,EAAAwkG,WAAA,KAEA,SAAAW,EAAAN,EAAAC,EAAAE,GACA/nG,KAAA4nG,YAAA,oBAAAA,IAAA,KACA5nG,KAAA6nG,WAAA,oBAAAA,IAAA,KACA7nG,KAAA+nG,UAEA,SAAAP,EAAAnpG,EAAA0E,GACA,IAAAmR,GAAA,EACA,IACA7V,EAAA,SAAAJ,GACAiW,IAEAA,GAAA,EACA9U,EAAA2D,EAAA9E,KACuB,SAAAkqG,GACvBj0F,IAEAA,GAAA,EACA4zF,EAAA/kG,EAAAolG,MAEqB,MAAAC,GACrB,GAAAl0F,EACA,OACAA,GAAA,EACA4zF,EAAA/kG,EAAAqlG,IAGAlB,EAAArnG,UAAA,kBAAAgoG,GACA,OAAA7nG,KAAAg7E,KAAA,KAAA6sB,IAEAX,EAAArnG,UAAAm7E,KAAA,SAAA4sB,EAAAC,GACA,IAAAQ,EAAA,IAAAroG,KAAAqE,YAAAhH,GAEA,OADAq7F,EAAA14F,KAAA,IAAAkoG,EAAAN,EAAAC,EAAAQ,IACAA,GAEAnB,EAAA1oG,IAAA,SAAA4H,GACA,IAAAzI,EAAA8C,MAAAZ,UAAAsF,MAAApF,KAAAqG,GACA,WAAA8gG,EAAA,SAAA9nG,EAAA0oG,GACA,OAAAnqG,EAAAG,OACA,OAAAsB,EAAA,IACA,IAAAkpG,EAAA3qG,EAAAG,OACA,SAAAgP,EAAApN,EAAAyN,GACA,IACA,GAAAA,IAAA,kBAAAA,GAAA,oBAAAA,GAAA,CACA,IAAA6tE,EAAA7tE,EAAA6tE,KACA,uBAAAA,EAIA,YAHAA,EAAAj7E,KAAAoN,EAAA,SAAAA,GACAL,EAAApN,EAAAyN,IAC+B26F,GAI/BnqG,EAAA+B,GAAAyN,EACA,MAAAm7F,GACAlpG,EAAAzB,GAEyB,MAAAyqG,GACzBN,EAAAM,IAGA,QAAA1oG,EAAA,EAAqCA,EAAA/B,EAAAG,OAAiB4B,IACtDoN,EAAApN,EAAA/B,EAAA+B,OAIAwnG,EAAA9nG,QAAA,SAAAnB,GACA,OAAAA,GAAA,kBAAAA,KAAAoG,cAAA6iG,EACAjpG,EAEA,IAAAipG,EAAA,SAAA9nG,GACAA,EAAAnB,MAGAipG,EAAAY,OAAA,SAAA7pG,GACA,WAAAipG,EAAA,SAAA9nG,EAAA0oG,GACAA,EAAA7pG,MAGAipG,EAAAqB,KAAA,SAAAvgG,GACA,WAAAk/F,EAAA,SAAA9nG,EAAA0oG,GACA,QAAApoG,EAAA,EAAAuF,EAAA+C,EAAAlK,OAA0D4B,EAAAuF,EAASvF,IACnEsI,EAAAtI,GAAAs7E,KAAA57E,EAAA0oG,MAIAZ,EAAAQ,aAAA,oBAAAX,EAAA,SAAA1oG,GACA0oG,EAAA1oG,IACmB,SAAAA,GACnB2oG,EAAA3oG,EAAA,IAEA6oG,EAAAe,sBAAA,SAAAhkG,GACA,qBAAAoF,kBACAA,QAAA2jB,KAAA,wCAAA/oB,IAGAijG,EAAAsB,gBAAA,SAAAnqG,GACA6oG,EAAAQ,aAAArpG,GAEA6oG,EAAAuB,yBAAA,SAAApqG,GACA6oG,EAAAe,sBAAA5pG,GAEA,qBAAAsmG,KAAAC,QACAD,EAAAC,QAAAsC,EACmB9wD,EAAA8wD,UACnB9wD,EAAA8wD,YA7LA,CA+LiBlnG,QACFD,KAAAC,KAAA8kG,EAAA,UAAAiC,eAEf,CAAa2B,OAAA,IAEbC,EAAA,CACA,SAAA7D,EAAAH,EAAAC,IACA,SAAAmC,EAAA6B,GACA,IAAA5C,EAAAlB,EAAA,sBAAAkB,SACAjoG,EAAAqnB,SAAAvlB,UAAA9B,MACAoH,EAAA1E,MAAAZ,UAAAsF,MACA0jG,EAAA,GACAC,EAAA,EAUA,SAAAC,EAAA1nG,EAAA2nG,GACAhpG,KAAAipG,IAAA5nG,EACArB,KAAAkpG,SAAAF,EAXApE,EAAA1vB,WAAA,WACA,WAAA6zB,EAAAhrG,EAAAgC,KAAAm1E,WAAAh3D,OAAArgB,WAAAg4E,eAEA+uB,EAAAuE,YAAA,WACA,WAAAJ,EAAAhrG,EAAAgC,KAAAopG,YAAAjrF,OAAArgB,WAAAurG,gBAEAxE,EAAA/uB,aAAA+uB,EAAAwE,cAAA,SAAAn0B,GACAA,EAAA3zB,SAMAynD,EAAAlpG,UAAAwpG,MAAAN,EAAAlpG,UAAA65F,IAAA,aAEAqP,EAAAlpG,UAAAyhD,MAAA,WACAthD,KAAAkpG,SAAAnpG,KAAAme,OAAAle,KAAAipG,MAEArE,EAAA0E,OAAA,SAAAjwE,EAAAkwE,GACA1zB,aAAAx8C,EAAAmwE,gBACAnwE,EAAAowE,aAAAF,GAEA3E,EAAA8E,SAAA,SAAArwE,GACAw8C,aAAAx8C,EAAAmwE,gBACAnwE,EAAAowE,cAAA,GAEA7E,EAAA+E,aAAA/E,EAAA5+D,OAAA,SAAA3M,GACAw8C,aAAAx8C,EAAAmwE,gBACA,IAAAD,EAAAlwE,EAAAowE,aACAF,GAAA,IACAlwE,EAAAmwE,eAAAt0B,WAAA,WACA77C,EAAAuwE,YACAvwE,EAAAuwE,cACqBL,KAGrB3E,EAAAmC,aAAA,oBAAAA,IAAA,SAAA1oG,GACA,IAAAgD,EAAAynG,IACAnrG,IAAAE,UAAAC,OAAA,IAAAqH,EAAApF,KAAAlC,UAAA,GAYA,OAXAgrG,EAAAxnG,IAAA,EACA2kG,EAAA,WACA6C,EAAAxnG,KACA1D,EACAU,EAAAN,MAAA,KAAAJ,GAEAU,EAAA0B,KAAA,MAEA6kG,EAAAgE,eAAAvnG,MAGAA,GAEAujG,EAAAgE,eAAA,oBAAAA,IAAA,SAAAvnG,UACAwnG,EAAAxnG,MAEetB,KAAAC,KAAA8kG,EAAA,UAAAiC,aAAAjC,EAAA,UAAA8D,iBAEf,CACAiB,qBAAA,EACAnB,OAAA,IAGAoB,EAAA,CACA,SAAAhF,EAAAH,EAAAC,GACA,IAAAmF,EAAAjF,EAAA,oBACAkF,EAAA,WACA,2BAAA9rF,OACAA,OAEAkH,SAAA,eAAAA,GAJA,GAOAu/E,EAAAC,QAAA,CAAgCqF,WAAAD,EAAA9C,SAAA6C,IAEhC,CAAaG,mBAAA,KAEJ,GAAI,IAvdb,CAuda,MA3eb,MA6eKnoG,EAAA2iG,GAAAuyJ,QAAAl1P,GACL,IAyaAm1P,GAzaAhwJ,GAAA+vJ,GAAAryJ,QAAAqF,WAEA/uF,GAAA,SAAAmvF,GACA,IAAAxlF,EAAAzhB,EAAArC,OACAupG,EAAA,GACApoG,EAAA,SAAA3E,GACA,OAAA2d,GAAA,SAAAqvF,GACAtiG,EAAA,SAAA4c,GACA0lF,EAAAhtG,EAAAsnB,SAIA5c,EAAA,SAAAsiG,GACAC,IACAzqG,EAAAwqG,GAEAD,EAAAhlG,KAAAilG,IAGAj0F,EAAA,SAAAnY,GACA0mB,EAAAzhB,EAAAP,KAAA1E,GACAsjB,EAAA6oF,GACAA,EAAA,IAEAE,EAAA,WACA,OAAA3lF,EAAApjB,UAEAggB,EAAA,SAAAgpF,GACAtoG,EAAAsoG,EAAA1qG,IAEAA,EAAA,SAAA4nG,GACA9iF,EAAA1iB,KAAA,SAAAhE,GACAf,EAAA83E,WAAA,WACAyyB,EAAAxpG,IACW,MAIX,OADAksG,EAAA/zF,GACA,CACArO,MACA/F,MACAsoG,YAGAxjG,GAAA,SAAArG,GACA,OAAAua,GAAA,SAAAm1E,GACAA,EAAA1vF,MAGAgqG,GAAA,CACAhhG,GAAAuR,GACAlU,SAGA4jG,GAAA,SAAA3mG,GACA7G,EAAA83E,WAAA,WACA,MAAAjxE,GACO,IAEPoqB,GAAA,SAAA5M,GACA,IAAAxZ,EAAA,SAAAooF,GACA5uE,IAAAu5D,KAAAqV,EAAAua,KAEA1oG,EAAA,SAAA4oG,GACA,OAAAz8E,GAAA,WACA,OAAA5M,IAAAu5D,KAAA8vB,MAGA1oG,EAAA,SAAA2oG,GACA,OAAA18E,GAAA,WACA,OAAA5M,IAAAu5D,KAAA,SAAAh4E,GACA,OAAA+nG,EAAA/nG,GAAAgoG,iBAIAC,EAAA,SAAAC,GACA,OAAA78E,GAAA,WACA,OAAA5M,IAAAu5D,KAAA,WACA,OAAAkwB,EAAAF,iBAIAG,EAAA,WACA,OAAAR,GAAAhhG,GAAA1B,IAEAmjG,EAAA,WACA,IAAAlf,EAAA,KACA,OAAA79D,GAAA,WAIA,OAHA,OAAA69D,IACAA,EAAAzqE,KAEAyqE,KAGA8e,EAAAvpF,EACA,OACAvf,MACAE,OACA6oG,WACAE,SACAC,WACAJ,YACA/iG,QAGA+Y,GAAA,SAAAqpF,GACA,OAAAh8E,GAAA,WACA,WAAA64E,GAAAmD,MAGAK,GAAA,SAAA/pG,GACA,OAAA0tB,GAAA,WACA,OAAA64E,GAAA9nG,QAAAuB,MAGA4qG,GAAA,CACA5hG,GAAAqX,GACAha,KAAA0jG,IAGAysJ,GAAA,SAAAC,EAAAztP,GACA,OAAAA,EAAA,SAAA0mF,GACA,IAAA7vF,EAAA,GACAiI,EAAA,EACAk/F,EAAA,SAAAjoG,GACA,gBAAAzB,GACAuC,EAAAd,GAAAzB,EACAwK,IACAA,GAAA2uP,EAAAt5P,QACAuyF,EAAA7vF,KAIA,IAAA42P,EAAAt5P,OACAuyF,EAAA,IAEAluF,EAAAi1P,EAAA,SAAAC,EAAA33P,GACA23P,EAAApvP,IAAA0/F,EAAAjoG,SAMA43P,GAAA,SAAAC,GACA,OAAAJ,GAAAI,EAAAhsJ,GAAA5hG,KAGA1L,GAAA,SAAAiD,GACA,IAAAM,EAAA,SAAAwB,GACA,OAAA9B,IAAA8B,GAEAhB,EAAA,SAAAqB,GACA,OAAApF,GAAAiD,IAEAe,EAAA,SAAA1E,GACA,OAAAU,GAAAiD,IAEAgB,EAAA,SAAA3E,GACA,OAAAU,GAAAV,EAAA2D,KAEAoC,EAAA,SAAA/F,GACA,OAAAU,GAAAiD,IAEAiB,EAAA,SAAA5E,GACAA,EAAA2D,IAEAkB,EAAA,SAAA7E,GACA,OAAAA,EAAA2D,IAEAK,EAAA,SAAAgC,EAAAC,GACA,OAAAA,EAAAtC,IAEAmB,EAAA,SAAA9E,GACA,OAAAA,EAAA2D,IAEAoB,EAAA,SAAA/E,GACA,OAAAA,EAAA2D,IAEAuC,EAAA,WACA,OAAAL,EAAAP,KAAA3B,IAEA,OACAM,KACAkC,QAAA3E,EACA4E,QAAA7E,EACA4C,MAAA1D,EAAAkD,GACAS,WAAA3D,EAAAkD,GACAU,SAAA5D,EAAAkD,GACAc,KACAC,UACAV,OACAW,MACAoB,WACAnB,OACAC,OACAC,SACAC,SACAmB,aAGAG,GAAA,SAAAC,GACA,IAAAlC,EAAA,SAAApE,GACA,OAAAA,KAEAqE,EAAA,WACA,OAAAjD,EAAAmF,OAAAD,GAAAlF,IAEAqD,EAAA,SAAAqB,GACA,OAAAA,GAEApB,EAAA,SAAA1E,GACA,OAAAA,KAEA2E,EAAA,SAAA3E,GACA,OAAAqG,GAAAC,IAEAP,EAAA,SAAA/F,GACA,OAAAqG,GAAArG,EAAAsG,KAEAzB,EAAA,SAAA7E,GACA,OAAAqG,GAAAC,IAEAtC,EAAA,SAAAwC,EAAAR,GACA,OAAAQ,EAAAF,IAEA,OACArC,GAAA1C,EACA4E,QAAA5E,EACA6E,QAAA5E,EACA2C,MAAAxD,EACAyD,aACAC,WACAI,KACAC,UACAV,OACAW,MACAoB,WACAnB,KAAA9E,EACA+E,OACAC,OAAAvD,EACAwD,OAAAvD,EACA0E,SAAAL,EAAArC,OAGAiD,GAAA,SAAAX,EAAAY,GACA,OAAAZ,EAAA9B,KAAA,WACA,OAAAqC,GAAAK,IACOhG,KAEPiG,GAAA,CACAjG,SACA2F,SACAI,eAGA+jG,GAAA,WACA,SAAA3lG,EAAA/D,EAAA4oG,GACA,kBACA5oG,EAAAN,MAAAkpG,EAAAppG,YAGA,IAAA8G,EAAAlE,MAAAkE,SAAA,SAAA1G,GACA,yBAAAqB,OAAAO,UAAA8C,SAAA5C,KAAA9B,IAEAipG,EAAA,SAAA7oG,GACA,qBAAA2B,KACA,UAAAmnG,UAAA,wCAEA,uBAAA9oG,EACA,UAAA8oG,UAAA,kBAEAnnG,KAAAonG,OAAA,KACApnG,KAAAsnG,OAAA,KACAtnG,KAAAunG,WAAA,GACAC,EAAAnpG,EAAA+D,EAAAhD,EAAAY,MAAAoC,EAAA0lG,EAAA9nG,QAEAqsH,EAAAnlB,EAAAolB,aAAA,oBAAAlvH,EAAA2pG,cAAA3pG,EAAA2pG,cAAA,SAAA1oG,GACAjB,EAAA83E,WAAA72E,EAAA,IAEA,SAAAq6F,EAAA+O,GACA,IAAAnmG,EAAAtB,KACA,OAAAA,KAAAonG,OAIAilB,EAAA,WACA,IAAA1kB,EAAArmG,EAAA8lG,OAAAK,EAAAG,YAAAH,EAAAI,WACA,UAAAF,EAAA,CAIA,IAAAz9F,EACA,IACAA,EAAAy9F,EAAArmG,EAAAgmG,QACW,MAAApnG,GAEX,YADAunG,EAAAK,OAAA5nG,GAGAunG,EAAAroG,QAAA8K,QAVA5I,EAAA8lG,OAAAK,EAAAroG,QAAAqoG,EAAAK,QAAAxmG,EAAAgmG,UANAtnG,KAAAunG,WAAAjiG,KAAAmiG,GAmBA,SAAAroG,EAAA0iD,GACA,IACA,GAAAA,IAAA9hD,KACA,UAAAmnG,UAAA,6CAEA,GAAArlD,IAAA,kBAAAA,GAAA,oBAAAA,GAAA,CACA,IAAAk5B,EAAAl5B,EAAAk5B,KACA,uBAAAA,EAEA,YADAwsB,EAAAplG,EAAA44E,EAAAl5B,GAAA1/C,EAAAhD,EAAAY,MAAAoC,EAAA0lG,EAAA9nG,OAIAA,KAAAonG,QAAA,EACApnG,KAAAsnG,OAAAxlD,EACAkmD,EAAAjoG,KAAAC,MACS,MAAAE,GACT4nG,EAAA/nG,KAAAC,KAAAE,IAGA,SAAA4nG,EAAAhmD,GACA9hD,KAAAonG,QAAA,EACApnG,KAAAsnG,OAAAxlD,EACAkmD,EAAAjoG,KAAAC,MAEA,SAAAgoG,IACA,QAAAtoG,EAAA,EAAAuF,EAAAjF,KAAAunG,WAAAzpG,OAAqD4B,EAAAuF,EAASvF,IAC9Dg5F,EAAA34F,KAAAC,UAAAunG,WAAA7nG,IAEAM,KAAAunG,WAAA,KAEA,SAAAW,EAAAN,EAAAC,EAAAzoG,EAAA0oG,GACA9nG,KAAA4nG,YAAA,oBAAAA,IAAA,KACA5nG,KAAA6nG,WAAA,oBAAAA,IAAA,KACA7nG,KAAAZ,UACAY,KAAA8nG,SAEA,SAAAN,EAAAnpG,EAAAupG,EAAAC,GACA,IAAA3zF,GAAA,EACA,IACA7V,EAAA,SAAAJ,GACAiW,IAGAA,GAAA,EACA0zF,EAAA3pG,KACW,SAAAkqG,GACXj0F,IAGAA,GAAA,EACA2zF,EAAAM,MAES,MAAAC,GACT,GAAAl0F,EACA,OAEAA,GAAA,EACA2zF,EAAAO,IA+DA,OA5DAlB,EAAArnG,UAAA0sH,MAAA,SAAA1kB,GACA,OAAA7nG,KAAAg7E,KAAA,KAAA6sB,IAEAX,EAAArnG,UAAAm7E,KAAA,SAAA4sB,EAAAC,GACA,IAAAvmG,EAAAtB,KACA,WAAAknG,EAAA,SAAA9nG,EAAA0oG,GACApP,EAAA34F,KAAAuB,EAAA,IAAA4mG,EAAAN,EAAAC,EAAAzoG,EAAA0oG,OAGAZ,EAAA1oG,IAAA,WACA,IAAAb,EAAA8C,MAAAZ,UAAAsF,MAAApF,KAAA,IAAAlC,UAAAC,QAAA6G,EAAA9G,UAAA,IAAAA,UAAA,GAAAA,WACA,WAAAqpG,EAAA,SAAA9nG,EAAA0oG,GACA,OAAAnqG,EAAAG,OACA,OAAAsB,EAAA,IAEA,IAAAkpG,EAAA3qG,EAAAG,OACA,SAAAgP,EAAApN,EAAAyN,GACA,IACA,GAAAA,IAAA,kBAAAA,GAAA,oBAAAA,GAAA,CACA,IAAA6tE,EAAA7tE,EAAA6tE,KACA,uBAAAA,EAIA,YAHAA,EAAAj7E,KAAAoN,EAAA,SAAAA,GACAL,EAAApN,EAAAyN,IACmB26F,GAInBnqG,EAAA+B,GAAAyN,EACA,MAAAm7F,GACAlpG,EAAAzB,GAEa,MAAAyqG,GACbN,EAAAM,IAGA,QAAA1oG,EAAA,EAAyBA,EAAA/B,EAAAG,OAAiB4B,IAC1CoN,EAAApN,EAAA/B,EAAA+B,OAIAwnG,EAAA9nG,QAAA,SAAAnB,GACA,OAAAA,GAAA,kBAAAA,KAAAoG,cAAA6iG,EACAjpG,EAEA,IAAAipG,EAAA,SAAA9nG,GACAA,EAAAnB,MAGAipG,EAAAY,OAAA,SAAA7pG,GACA,WAAAipG,EAAA,SAAA9nG,EAAA0oG,GACAA,EAAA7pG,MAGAipG,EAAAqB,KAAA,SAAAvgG,GACA,WAAAk/F,EAAA,SAAA9nG,EAAA0oG,GACA,QAAApoG,EAAA,EAAAuF,EAAA+C,EAAAlK,OAA8C4B,EAAAuF,EAASvF,IACvDsI,EAAAtI,GAAAs7E,KAAA57E,EAAA0oG,MAIAZ,GAEAswJ,GAAAt5O,OAAAgpF,QAAAhpF,OAAAgpF,QAAAa,KAGAqqF,GAAA,SAAA/hG,EAAA5wE,GACA,IAAA/f,EAAA+3P,EAAAr6P,EAAA8gB,OAAAk0K,sBACAslE,EAAA,CACA,KACA,MACA,UAEAC,EAAA,SAAAtnK,GACAjzF,EAAA8gB,OAAAg3D,WAAAmb,EAAA,IAEA,IAAA3wF,EAAA,EAAiBA,EAAAg4P,EAAA55P,SAAA25P,EAAkD/3P,IACnE+3P,EAAAr6P,EAAA8gB,OAAAw5O,EAAAh4P,GAAA,yBAEA+3P,IACAA,EAAAE,GAEAF,EAAApnK,EAAA5wE,IAEAm4O,GAAA,SAAAvnK,EAAA9iE,GAIA,MAHA,kBAAAA,IACAA,EAAA,GAEAnwB,EAAA83E,WAAAmb,EAAA9iE,IAEAsqO,GAAA,SAAAxnK,EAAA9iE,GAIA,MAHA,kBAAAA,IACAA,EAAA,GAEAnwB,EAAA+rG,YAAA9Y,EAAA9iE,IAEAuqO,GAAA,SAAAz2P,GACA,OAAAjE,EAAAy4E,aAAAx0E,IAEA02P,GAAA,SAAA12P,GACA,OAAAjE,EAAAgsG,cAAA/nG,IAEA22P,GAAA,SAAA3nK,EAAA9iE,GACA,IAAAooD,EAAArnE,EAcA,OAbAA,EAAA,WAEA,IADA,IAAA3Q,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEAR,EAAAy4E,aAAAF,GACAA,EAAAiiL,GAAA,WACAvnK,EAAAtyF,MAAAiC,KAAArC,IACS4vB,IAETjf,EAAAyX,KAAA,WACA3oB,EAAAy4E,aAAAF,IAEArnE,GAEA2pP,GAAA,CACA7lE,sBAAA,SAAA/hG,EAAA5wE,GACAy3O,GACAA,GAAAl8K,KAAAqV,GAGA6mK,GAAA,IAAAM,GAAA,SAAAp4P,GACAqgB,IACAA,EAAAriB,EAAAwZ,SAAAgP,MAEAwsK,GAAAhzL,EAAAqgB,KACSu7D,KAAAqV,IAETnb,WAAA0iL,GACAzuJ,YAAA0uJ,GACA95F,iBAAA,SAAAlqF,EAAAwc,EAAA9iE,GACA,OAAAqqO,GAAA,WACA/jL,EAAA81D,SACAt5C,KAES9iE,IAET2qO,kBAAA,SAAArkL,EAAAwc,EAAA9iE,GACA,IAAAooD,EAQA,OAPAA,EAAAkiL,GAAA,WACAhkL,EAAA81D,QAGAvsI,EAAAgsG,cAAAzzB,GAFA0a,KAIS9iE,GACTooD,GAEAqiL,YACAliL,SAAAkiL,GACA5uJ,cAAA2uJ,GACAliL,aAAAiiL,IAGAh8O,GAAA1e,EAAAkhB,UAAAxC,UACAy3F,GAAAh1F,KACA45O,GAAA5kJ,GAAA13F,QACAD,GAAA23F,GAAA33F,GACAmC,GAAAw1F,GAAAx1F,WACAq6O,GAAA,SAAA7/O,KAAAuD,MAAAq8O,GAAAj+O,SACAm+O,GAAA,aAAAj7P,EAAA8gB,QAAA,eAAA9gB,EAAA8gB,QAAA,QAAA9gB,EAAA8gB,UAAA9gB,EAAAwvH,IAAAC,gBACAyrI,IAAA,IAAAx8O,GAAA3b,QAAA,iBACAo4P,GAAA,CACA9+O,MAAA0+O,GAAA99O,UACA+9O,UACA5+O,MAAA2+O,GAAA/9O,SAAA+9O,GAAAj+O,WAAAi+O,GAAAn+O,QAAAtB,MACA8/O,MAAAL,GAAA79O,YACAqmE,IAAA/kE,GAAAN,SAAAM,GAAAR,QACAq9O,IAAA16O,GAAA/B,UAAA+B,GAAA9B,WACAtB,QAAAiB,GAAAP,YACA0hI,iBAAA,EACAo5D,eAAA,iFACAuiD,YAAA,EACA/yP,MAAAvI,EAAA8gB,OAAAm3B,cAAA,UAAAj4C,EAAA8gB,OACAy6O,aAAAR,GAAA/9O,OAAAhd,EAAAwZ,SAAA+hP,cAAA,KACAN,WACA/gD,SAAA,EACAshD,YAAA,KACAhtO,UAAA,KACAitO,uBAAA,EACAC,YAAAX,GAAA/9O,OACA2+O,QAAAh7O,GAAAxB,YACA+7O,gBACAz8O,QAAA,CACAhC,QAAAs+O,GAAAt+O,QACAG,QAAAm+O,GAAAn+O,QACAG,SAAAg+O,GAAAh+O,SACAD,OAAAi+O,GAAAj+O,OACAI,UAAA69O,GAAA79O,UACAF,KAAA+9O,GAAA/9O,KACAC,QAAA89O,GAAA99O,QACAE,SAAA49O,GAAA59O,UAEAqB,GAAA,CACA/B,QAAA+B,GAAA/B,QACAG,QAAA4B,GAAA5B,QACAqB,UAAAO,GAAAP,UACAI,UAAAG,GAAAH,UACAL,MAAAQ,GAAAR,MACAG,QAAAK,GAAAL,QACAD,MAAAM,GAAAN,MACAE,UAAAI,GAAAJ,UACAL,UAAAS,GAAAT,WAEA4C,WAAA,CACAxB,UAAAwB,GAAAxB,UACAP,OAAA+B,GAAA/B,OACAC,SAAA8B,GAAA9B,SACAI,QAAA0B,GAAA1B,QACAD,SAAA2B,GAAA3B,SACAD,QAAA4B,GAAA5B,QACAK,UAAAuB,GAAAvB,YAIAw8O,GAAAv4P,MAAAkE,QACAs0P,GAAA,SAAAxxP,GACA,IAAA/H,EAAAo0G,EAAAhuG,EAAA2B,EACA,IAAAuxP,GAAAvxP,GAEA,IADA3B,EAAA,GACApG,EAAA,EAAAo0G,EAAArsG,EAAA3J,OAAmC4B,EAAAo0G,EAAOp0G,IAC1CoG,EAAApG,GAAA+H,EAAA/H,GAGA,OAAAoG,GAEAqqN,GAAA,SAAAjvN,EAAAymG,EAAAloG,GACA,IAAAE,EAAAm0G,EACA,IAAA5yG,EACA,SAGA,GADAzB,KAAAyB,OACAa,IAAAb,EAAApD,QACA,IAAA6B,EAAA,EAAAm0G,EAAA5yG,EAAApD,OAAiC6B,EAAAm0G,EAAOn0G,IACxC,QAAAgoG,EAAA5nG,KAAAN,EAAAyB,EAAAvB,KAAAuB,GACA,cAIA,IAAAvB,KAAAuB,EACA,GAAAA,EAAApB,eAAAH,KACA,IAAAgoG,EAAA5nG,KAAAN,EAAAyB,EAAAvB,KAAAuB,GACA,SAKA,UAEAkM,GAAA,SAAAtH,EAAAuqF,GACA,IAAAggC,EAAA,GAIA,OAHA8/F,GAAArqN,EAAA,SAAAuzB,EAAA3P,GACA2mG,EAAA/qH,KAAA+qF,EAAAh3D,EAAA3P,EAAA5jB,MAEAuqH,GAEAl3B,GAAA,SAAAx4F,EAAApD,GACA,IAAA2D,EAAA,GAMA,OALAivN,GAAAxvN,EAAA,SAAAqC,EAAA0mB,GACAnsB,MAAAyF,EAAA0mB,EAAA/oB,IACAO,EAAAoE,KAAAtC,KAGA9B,GAEAg4P,GAAA,SAAAv4P,EAAAqC,GACA,IAAAtD,EAAAo0G,EACA,GAAAnzG,EACA,IAAAjB,EAAA,EAAAo0G,EAAAnzG,EAAA7C,OAAiC4B,EAAAo0G,EAAOp0G,IACxC,GAAAiB,EAAAjB,KAAAsD,EACA,OAAAtD,EAIA,UAEAy5P,GAAA,SAAA9hH,EAAA+hH,EAAAC,EAAApyJ,GACA,IAAAvnG,EAAA,EAIA,IAHA7B,UAAAC,OAAA,IACAu7P,EAAAhiH,EAAA,IAEY33I,EAAA23I,EAAAv5I,OAAuB4B,IACnC25P,EAAAD,EAAAr5P,KAAAknG,EAAAoyJ,EAAAhiH,EAAA33I,MAEA,OAAA25P,GAEAthM,GAAA,SAAAjyD,EAAAggB,EAAAmhF,GACA,IAAAvnG,EAAAo0G,EACA,IAAAp0G,EAAA,EAAAo0G,EAAAhuG,EAAAhI,OAAmC4B,EAAAo0G,EAAOp0G,IAC1C,GAAAomB,EAAA/lB,KAAAknG,EAAAnhG,EAAApG,KAAAoG,GACA,OAAApG,EAGA,UAEA8Y,GAAA,SAAA1S,EAAAggB,EAAAmhF,GACA,IAAA3a,EAAAv0B,GAAAjyD,EAAAggB,EAAAmhF,GACA,QAAA3a,EACA,OAAAxmF,EAAAwmF,IAIAh5C,GAAA,SAAA+jG,GACA,OAAAA,IAAAv5I,OAAA,IAEAw7P,GAAA,CACA30P,QAAAq0P,GACAt2P,QAAAu2P,GACA92P,KAAAguN,GACAjuN,IAAAkL,GACA7K,OAAA42F,GACAh5F,QAAA+4P,GACAC,UACA1yP,UAAAsxD,GACAvxD,KAAAgS,GACAnR,KAAAisC,IAGAimN,GAAA,aACA18G,GAAA,SAAA1/H,GACA,cAAAA,QAAApb,IAAAob,EAAA,OAAAA,GAAArE,QAAAygP,GAAA,KAEAh7D,GAAA,SAAA92L,EAAAjD,GACA,OAAAA,IAGA,UAAAA,IAAA80P,GAAA30P,QAAA8C,YAGAA,IAAAjD,OALAzC,IAAA0F,GAOA63I,GAAA,SAAAt6F,EAAAw0M,EAAAt3P,GACA,IAAAxC,EACAslD,KAAA,GACAw0M,KAAA,IACA,kBAAAx0M,IACAA,IAAAp1B,MAAA4pO,IAEAt3P,KAAA,GACAxC,EAAAslD,EAAAlnD,OACA,MAAA4B,IACAwC,EAAA8iD,EAAAtlD,IAAA,GAEA,OAAAwC,GAEAsH,GAAA,SAAA/B,EAAA0I,GACA,OAAA7Q,OAAAO,UAAAC,eAAAC,KAAA0H,EAAA0I,IAEA41B,GAAA,SAAAtmC,EAAAG,EAAAw2C,GACA,IACAqjN,EAAAxZ,EAAAyZ,EAAAC,EAAAjyO,EADA3kB,EAAA/C,KACA45P,EAAA,EAIA,GAHAn6P,EAAA,oCAAAuqF,KAAAvqF,GACAi6P,EAAAj6P,EAAA,GAAAmJ,MAAA,oBACAq3O,EAAAl9O,EAAA82P,SAAAp6P,EAAA,GAAAqZ,QAAA,aAAAs9B,IACA6pM,EAAAyZ,GAAA,CAGA,cAAAj6P,EAAA,GAKA,OAJAwgP,EAAAyZ,GAAA95P,OACAI,KAAA85P,UACA95P,KAAA85P,SAAAr6P,EAAA,GAAAA,EAAA,GAAAwgP,EAAAyZ,KAIA95P,EAAA85P,KACA95P,EAAA85P,GAAA,aAEAE,EAAA,GAEA3Z,EAAAyZ,GAAA95P,EAAA85P,GACA32P,EAAA2kI,OAAAu4G,EAAAyZ,GAAA75P,UAAAD,GACAH,EAAA,KACAg6P,EAAA12P,EAAA3D,QAAAK,EAAA,IAAAI,UACA85P,EAAAl6P,EAAA,GAAAmJ,MAAA,gBACA8e,EAAAu4N,EAAAyZ,GAEAzZ,EAAAyZ,GADAE,EACA,WACA,OAAAH,EAAAE,GAAA57P,MAAAiC,KAAAnC,YAGA,WAEA,OADAmC,KAAAqpB,OAAAowO,EAAAE,GACAjyO,EAAA3pB,MAAAiC,KAAAnC,YAGAoiP,EAAAyZ,GAAA75P,UAAA65P,GAAAzZ,EAAAyZ,GACA32P,EAAAZ,KAAAs3P,EAAA,SAAAl8P,EAAAoC,GACAsgP,EAAAyZ,GAAA75P,UAAAF,GAAA85P,EAAA95P,KAEAoD,EAAAZ,KAAAvC,EAAA,SAAArC,EAAAoC,GACA85P,EAAA95P,GACAsgP,EAAAyZ,GAAA75P,UAAAF,GAAA,WAEA,OADAK,KAAAqpB,OAAAowO,EAAA95P,GACApC,EAAAQ,MAAAiC,KAAAnC,YAGA8B,IAAA+5P,IACAzZ,EAAAyZ,GAAA75P,UAAAF,GAAApC,MAKAwF,EAAAZ,KAAAvC,EAAAmiK,OAAA,SAAAxkK,EAAAoC,GACAsgP,EAAAyZ,GAAA/5P,GAAApC,MAGAmqI,GAAA,SAAAjgI,EAAAsyP,GAEA,IADA,IAIAr6P,EAAAo0G,EAAAxvG,EAJAnG,EAAA,GACAP,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CO,EAAAP,EAAA,GAAAC,UAAAD,GAGA,IACAK,EADAN,EAAAE,UAEA,IAAA6B,EAAA,EAAAo0G,EAAAn2G,EAAAG,OAAkC4B,EAAAo0G,EAAOp0G,IAEzC,IAAA4E,KADAy1P,EAAAp8P,EAAA+B,GACAq6P,EACAA,EAAAj6P,eAAAwE,KACArG,EAAA87P,EAAAz1P,QACAvC,IAAA9D,IACAwJ,EAAAnD,GAAArG,IAKA,OAAAwJ,GAEAuyP,GAAA,SAAA94P,EAAA3D,EAAAoC,EAAAF,GACAA,KAAAO,KACAkB,IACAvB,IACAuB,IAAAvB,IAEA25P,GAAAn3P,KAAAjB,EAAA,SAAAA,EAAAxB,GACA,QAAAnC,EAAAwC,KAAAN,EAAAyB,EAAAxB,EAAAC,GACA,SAEAq6P,GAAA94P,EAAA3D,EAAAoC,EAAAF,OAIAo6P,GAAA,SAAAl6P,EAAAuB,GACA,IAAAxB,EAAAsD,EAGA,IAFA9B,KAAA9D,EAAA8gB,OACAve,IAAAiwB,MAAA,KACAlwB,EAAA,EAAiBA,EAAAC,EAAA7B,OAAc4B,IAC/BsD,EAAArD,EAAAD,GACAwB,EAAA8B,KACA9B,EAAA8B,GAAA,IAEA9B,IAAA8B,GAEA,OAAA9B,GAEA9B,GAAA,SAAAO,EAAAuB,GACA,IAAAxB,EAAAo0G,EAGA,IAFA5yG,KAAA9D,EAAA8gB,OACAve,IAAAiwB,MAAA,KACAlwB,EAAA,EAAAo0G,EAAAn0G,EAAA7B,OAA+B4B,EAAAo0G,EAAOp0G,IAEtC,GADAwB,IAAAvB,EAAAD,KACAwB,EACA,MAGA,OAAAA,GAEA+4P,GAAA,SAAAx6P,EAAAqpB,GACA,OAAArpB,GAAA8+L,GAAA9+L,EAAA,SACAA,EAEA65P,GAAAp3P,IAAAzC,EAAAmwB,MAAA9G,GAAA,KAAA+zH,KAEAq9G,GAAA,SAAAj3J,GACA,IAAA21J,EAAAL,GAAAK,YAIA,OAHAA,IACA31J,KAAA,IAAAA,EAAA9iG,QAAA,cAAAy4P,GAEA31J,GAEA9jG,GAAA,CACAse,KAAAo/H,GACAl4I,QAAA20P,GAAA30P,QACAnD,GAAA+8L,GACA77L,QAAA42P,GAAA52P,QACA48I,WACAn9I,KAAAm3P,GAAAn3P,KACAD,IAAAo3P,GAAAp3P,IACAy+L,KAAA24D,GAAA/2P,OACA6rM,QAAAkrD,GAAAn5P,QACAg6P,OAAA3wP,GACAk+H,UACA3hG,UACAi0N,QACAH,YACAz6P,WACA66P,WACAC,oBAGA,SAAAE,GAAAxjP,EAAA89D,QACA,IAAAA,IACAA,EAAA,IAEA,IAEA2lL,EAFAC,EAAA,EACAC,EAAA,GAEAF,EAAA3lL,EAAA2lL,aAAA,IACA,IAAAG,EAAA,SAAAhU,GACA9xK,EAAA8xK,kBAEAiU,EAAA,SAAApjP,GACAT,EAAA8jP,qBAAA,WAAAnwO,YAAAlT,IAEA2sD,EAAA,SAAAi/B,EAAA03J,EAAAC,GACA,IAAA16N,EAAAtJ,EAAAsK,EAAAzyB,EACArP,EAAA,SAAAsiC,GACAjzB,EAAAizB,SACAjzB,EAAAosP,OAAA,GACApsP,EAAAqsP,OAAA,GACA56N,IACAA,EAAAyoN,OAAA,KACAzoN,EAAA6sN,QAAA,KACA7sN,EAAA,OAGA26N,EAAA,WACA,IAAAvwJ,EAAA77F,EAAAosP,OACAn7P,EAAA4qG,EAAAxsG,OACA,MAAA4B,IACA4qG,EAAA5qG,KAEAN,EAAA,IAEA07P,EAAA,WACA,IAAAxwJ,EAAA77F,EAAAqsP,OACAp7P,EAAA4qG,EAAAxsG,OACA,MAAA4B,IACA4qG,EAAA5qG,KAEAN,EAAA,IAEA27P,EAAA,WACA,IAAAC,EAAA59P,EAAAkhB,UAAAxC,UAAAlT,MAAA,iBACA,SAAAoyP,GAAA//N,SAAA+/N,EAAA,aAEAC,EAAA,SAAAC,EAAAC,GACAD,OACA,IAAA5tO,MAAAE,UAAA0T,EAAAm5N,EACApC,GAAA/iL,WAAAimL,GAEAL,MAIAM,EAAA,WACAH,EAAA,WACA,IACAI,EAAAnyO,EADAoyO,EAAA1kP,EAAA0kP,YACA57P,EAAA47P,EAAAx9P,OACA,MAAA4B,IAGA,GAFA27P,EAAAC,EAAA57P,GACAwpB,EAAAmyO,EAAAE,UAAAF,EAAAE,UAAAF,EAAAG,cACAtyO,KAAA7nB,KAAA6+B,EAAA7+B,GAEA,OADAw5P,KACA,GAGWO,IAEXK,EAAA,WACAR,EAAA,WACA,IACA,IAAAS,EAAA9kO,EAAA+kO,MAAAD,SAEA,OADAb,MACAa,EACa,MAAAtzJ,MAEFqzJ,IAkBX,GAhBAx4J,EAAA9jG,GAAA+6P,gBAAAj3J,GACAs3J,EAAAt3J,GAOAx0F,EAAA8rP,EAAAt3J,IANAx0F,EAAA,CACAosP,OAAA,GACAC,OAAA,IAEAP,EAAAt3J,GAAAx0F,GAIAksP,GACAlsP,EAAAosP,OAAAv1P,KAAAq1P,GAEAC,GACAnsP,EAAAqsP,OAAAx1P,KAAAs1P,GAEA,IAAAnsP,EAAAizB,OAGA,OAAAjzB,EAAAizB,OAIA,OAAAjzB,EAAAizB,OAAA,CAkBA,GAdAjzB,EAAAizB,OAAA,EACAxB,EAAAtpB,EAAAE,cAAA,QACAopB,EAAAsL,IAAA,aACAtL,EAAA17B,KAAA,WACA07B,EAAA7+B,GAAA,IAAAi5P,IACAp6N,EAAA07N,OAAA,EACA17N,EAAA27N,OAAA,EACA36N,GAAA,IAAA5T,MAAAE,UACAknD,EAAAonL,iBACA57N,EAAA67N,YAAA,aAEArnL,EAAA8xK,gBACAlwO,GAAAwB,GAAAZ,QAAAgpB,GAAA,iBAAAw0C,EAAA8xK,gBAEA,WAAAtmN,IAAA66N,IACA76N,EAAAyoN,OAAAyS,EACAl7N,EAAA6sN,QAAA+N,MACS,CACT,GAAA19P,EAAAkhB,UAAAxC,UAAA3b,QAAA,aAKA,OAJAy2B,EAAAhgB,EAAAE,cAAA,SACA8f,EAAA/L,YAAA,YAAAo4E,EAAA,IACAw4J,SACAhB,EAAA7jO,GAGAwkO,IAEAX,EAAAv6N,GACAA,EAAAs7J,KAAAv4F,OA/BA63J,SAJAD,KAqCAmB,EAAA,SAAA/4J,GACA,OAAAsI,GAAA5hG,GAAA,SAAAvK,GACA4kE,EAAAi/B,EAAAzlG,EAAA4B,EAAApB,EAAAkG,GAAAjG,MAAAglG,KAAAzlG,EAAA4B,EAAApB,EAAAkG,GAAAN,MAAAq/F,SAGAg5J,EAAA,SAAAhwP,GACA,OAAAA,EAAA1K,KAAArD,MAEAg+P,EAAA,SAAAC,EAAA7pL,EAAA8kK,GACAkgB,GAAAp1P,EAAAi6P,EAAAH,IAAA/zP,IAAA,SAAAgE,GACA,IAAAgV,EAAAhb,EAAAgG,EAAA,SAAAzL,GACA,OAAAA,EAAAkD,YAEAud,EAAA9a,KAAArI,OAAA,EACAs5O,EAAAn2N,EAAA9a,KAAAjE,IAAA+5P,IAEA3pL,EAAArxD,EAAA/a,KAAAhE,IAAA+5P,OAIA,OACAj4L,OACAk4L,UACA1B,sBAIA,IAmMA4B,GAAAC,GAAAC,GAnMAC,GAAA,CACA,UACA,QACA,UACA,MACA,KACA,aACA,SACA,OACA,WACA,SACA,SACA,OACA,OACA,MACA,UACA,UACA,OACA,IACA,KACA,WACA,KACA,SACA,UACA,SACA,aACA,KACA,KACA,KACA,KACA,KACA,KACA,UACA,MACA,MACA,YACA,OACA,MACA,KACA,KACA,KACA,KACA,QACA,QACA,QACA,QACA,KACA,KACA,KACA,WAEAC,GAAA,CACA,OACA,OACA,WACA,KACA,MACA,QACA,KACA,MACA,QACA,UACA,OACA,OACA,QACA,QACA,SACA,MACA,SAEAC,GAAA,CACA,KACA,MAEAC,GAAA,CACA,QACA,QACA,SAEAtzD,GAAA,CACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,UACA,MACA,OACA,aACA,SACA,MACA,WACA,SACA,SACA,UACA,UACA,SACA,QACA,MACA,UAEAuzD,GAAA,CACA,KACA,KACA,KACA,KACA,KACA,MAEAC,GAAA,CACA,KACA,KACA,MAEAh7D,GAAA,CACA,KACA,KACA,MAEAi7D,GAAA,CACA,MACA,SACA,WACA,SAEAC,GAAA,SAAA93M,GACA,IAAAH,EACA,gBAAAxtC,GAEA,OADAwtC,KAAAmwM,EAAAhwM,EAAAhnD,GAAA,IACA6mD,EAAA/kD,eAAAwE,GAAA+S,MAGAklN,GAAAugC,GAAAH,IACAxmL,GAAA2mL,GAAAP,IACAQ,GAAA,SAAA1lP,GACA,gBAAA/S,GAAA+S,IAEAm3J,GAAA,SAAAn3J,GACA,OAAAqiE,GAAAriE,KAAA8+D,GAAA9+D,IAEA2lP,GAAA,SAAA3lP,GACA,OAAAqiE,GAAAriE,IAAA,OAAA/S,GAAA+S,IAEAooL,GAAAq9D,GAAA1zD,IACAtH,GAAAg7D,GAAAl7D,IACA07B,GAAAw/B,GAAAF,IACAK,GAAAH,GAAAN,IACAU,GAAAJ,GAAAJ,IACAS,GAAAL,GAAAL,IACAW,GAAAN,GAAAD,IAEAQ,GAAA,SAAAhmP,GACA,IAAAimP,EAAAjmP,EAAAwoL,iBAAA,SAAAxoL,EAAAwoL,gBAAAx6K,SACAk4O,EAAAlmP,EAAAkS,aAAA,SAAAlS,EAAAkS,YAAAlE,SACA,OAAAi4O,GAAAC,GAEAh0D,GAAA,SAAAlyL,GACA,OAAAA,GAAA,SAAAA,EAAAkrL,SAAA,aAAAlrL,EAAA+U,aAAA,kBAEAoxO,GAAA,SAAA/lP,EAAAJ,GACA,IAAA3X,EAAA8pB,EAAAnS,EAAAJ,WACA,IAAAipL,GAAA36K,UAAAlO,KAAAkyL,GAAAlyL,GAAA,CAGA,IAAA3X,EAAA8pB,EAAA1rB,OAAA,EAAmC4B,GAAA,EAAQA,IAC3C89P,GAAA/lP,EAAA+R,EAAA9pB,IAEA,QAAAwgM,GAAA81D,WAAA3+O,GAAA,CACA,GAAA6oL,GAAA16K,OAAAnO,MAAAy6B,UAAAh0C,OAAA,GACA,IAAA2/P,EAAAt+P,GAAAse,KAAApG,EAAAy6B,WAAAh0C,OACA,GAAA2Z,EAAA0+D,QAAA9+D,EAAAqO,aAAA+3O,EAAA,EACA,OAEA,OAAAA,GAAAJ,GAAAhmP,GACA,YAES,GAAA6oL,GAAA36K,UAAAlO,KACTmS,EAAAnS,EAAAJ,WACA,IAAAuS,EAAA1rB,QAAAyrM,GAAA//K,EAAA,KACAnS,EAAAqO,WAAAuE,aAAAT,EAAA,GAAAnS,GAEAmS,EAAA1rB,QAAAm/P,GAAAnlP,GAAAZ,QAAAG,KACA,OAGAI,EAAAsT,OAAA1T,GAEA,OAAAA,IAEAqmP,GAAA,CAAoBF,aAEpBG,GAAAx+P,GAAAmgJ,QAEAs+G,GAAA,0EACAC,GAAA,kEACAC,GAAA,aACAC,GAAA,kCACAC,GAAA,CACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KAEAtD,GAAA,CACAuD,IAAA,SACAC,IAAA,QACAC,IAAA,OACAC,IAAA,OACAC,IAAA,QACAC,IAAA,SAEA3D,GAAA,CACA4D,OAAW,IACXC,OAAW,IACXC,QAAY,IACZC,SAAa,IACbC,SAAa,KAEb,IAAAC,GAAA,SAAAhpP,GACA,IAAAmgE,EAGA,OAFAA,EAAA5/D,GAAAX,QAAA,OAAAM,MACAigE,EAAA3gE,UAAAQ,EACAmgE,EAAA7sD,aAAA6sD,EAAA2lE,WAAA9lI,GAEAipP,GAAA,SAAAx7M,EAAAy7M,GACA,IAAA/gQ,EAAAghQ,EAAAC,EACA97M,EAAA,GACA,GAAAG,EAAA,CAGA,IAFAA,IAAAp1B,MAAA,KACA6wO,KAAA,GACA/gQ,EAAA,EAAmBA,EAAAslD,EAAAlnD,OAAkB4B,GAAA,EACrCghQ,EAAA58P,OAAA88P,aAAA3lO,SAAA+pB,EAAAtlD,GAAA+gQ,IACApE,GAAAqE,KACAC,EAAA,IAAA37M,EAAAtlD,EAAA,OACAmlD,EAAA67M,GAAAC,EACA97M,EAAA87M,GAAAD,GAGA,OAAA77M,IAGAu3M,GAAAoE,GAAA,msEACA,IAAAK,GAAA,SAAAtpP,EAAAqe,GACA,OAAAre,EAAAuB,QAAA8c,EAAAgoO,GAAAC,GAAA,SAAA6C,GACA,OAAArE,GAAAqE,SAGAI,GAAA,SAAAvpP,GACA,UAAAA,GAAAuB,QAAAglP,GAAA,SAAA4C,GACA,OAAArE,GAAAqE,SAGAK,GAAA,SAAAxpP,EAAAqe,GACA,OAAAre,EAAAuB,QAAA8c,EAAAgoO,GAAAC,GAAA,SAAA6C,GACA,OAAAA,EAAA5iQ,OAAA,EACA,YAAA4iQ,EAAA1yI,WAAA,WAAA0yI,EAAA1yI,WAAA,qBAEAquI,GAAAqE,IAAA,KAAAA,EAAA1yI,WAAA,UAGAgzI,GAAA,SAAAzpP,EAAAqe,EAAAqrO,GAEA,OADAA,KAAA7E,GACA7kP,EAAAuB,QAAA8c,EAAAgoO,GAAAC,GAAA,SAAA6C,GACA,OAAArE,GAAAqE,IAAAO,EAAAP,SAGAQ,GAAA,SAAA58P,EAAA28P,GACA,IAAAE,EAAAX,GAAAS,IAAA7E,GACAgF,EAAA,SAAA7pP,EAAAqe,GACA,OAAAre,EAAAuB,QAAA8c,EAAAgoO,GAAAC,GAAA,SAAA6C,GACA,YAAA3+P,IAAAs6P,GAAAqE,GACArE,GAAAqE,QAEA3+P,IAAAo/P,EAAAT,GACAS,EAAAT,GAEAA,EAAA5iQ,OAAA,EACA,YAAA4iQ,EAAA1yI,WAAA,WAAA0yI,EAAA1yI,WAAA,qBAEA,KAAA0yI,EAAA1yI,WAAA,UAGAqzI,EAAA,SAAA9pP,EAAAqe,GACA,OAAAorO,GAAAzpP,EAAAqe,EAAAurO,IAEAG,EAAA3D,GAAAr5P,EAAAwU,QAAA,YACA,OAAAwoP,EAAAC,OAAAD,EAAAE,QACAJ,EAEAE,EAAAC,MACAN,EACAI,EAEAL,GAEAM,EAAAE,QACAT,GAEAF,IAEAY,GAAA,SAAAlqP,GACA,OAAAA,EAAAuB,QAAAilP,GAAA,SAAAv/P,EAAAgjQ,GACA,OAAAA,GAEAA,EADA,MAAAA,EAAAtpL,OAAA,GAAA/+D,cACA8hB,SAAAumO,EAAApkP,OAAA,OAEA6d,SAAAumO,EAAA,IAEAA,EAAA,OACAA,GAAA,MACA19P,OAAA88P,aAAA,OAAAY,GAAA,gBAAAA,KAEAxD,GAAAwD,IAAA19P,OAAA88P,aAAAY,IAEAlF,GAAA99P,IAAA49P,GAAA59P,IAAA+hQ,GAAA/hQ,MAGAkjQ,GAAA,CACAb,aACAC,gBACAC,iBACAC,eACAE,iBACAO,WAGAE,GAAA,GAAqBC,GAAA,GACrBC,GAAA1iQ,GAAAmgJ,QAAA2sF,GAAA9sO,GAAAgD,KAAA2/P,GAAA3iQ,GAAAuoI,OAAAq6H,GAAA5iQ,GAAA86P,QAAA7rD,GAAAjvM,GAAAivM,QACAx+K,GAAA,SAAAo1B,EAAAw0M,GAEA,OADAx0M,EAAA7lD,GAAAse,KAAAunC,GACAA,IAAAp1B,MAAA4pO,GAAA,SAEAwI,GAAA,SAAAx9P,GACA,IACAy9P,EAAAC,EACAC,EAAAC,EAAAC,EAAAC,EAFA1wP,EAAA,GAGAikB,EAAA,SAAAvxB,EAAAwtB,EAAAtI,GACA,IAAA+4O,EAAAC,EAAA/iP,EACAgjP,EAAA,SAAA38P,EAAA2B,GACA,IACA/H,EAAAo0G,EADA5xG,EAAA,GAEA,IAAAxC,EAAA,EAAAo0G,EAAAhuG,EAAAhI,OAAuC4B,EAAAo0G,EAAOp0G,IAC9CwC,EAAA4D,EAAApG,IAAA+H,GAAA,GAEA,OAAAvF,GAEAsnB,KAAA,GACAsI,KAAA,GACA,kBAAAtI,IACAA,EAAAoG,GAAApG,IAEAllB,EAAAsrB,GAAAtrB,GACAi+P,EAAAj+P,EAAAxG,OACA,MAAAykQ,IACAC,EAAA5yO,GAAA,CACAqyO,EACAnwO,GACA/oB,KAAA,MACA0W,EAAA,CACAqS,WAAA2wO,EAAAD,GACAA,kBACAh5O,SAAAi5O,EAAAj5O,EAAAo4O,KAEAhwP,EAAAtN,EAAAi+P,IAAA9iP,GAGAijP,EAAA,SAAAp+P,EAAAwtB,GACA,IAAAywO,EAAAI,EAAAjjQ,EAAAo0G,EACAxvG,EAAAsrB,GAAAtrB,GACAi+P,EAAAj+P,EAAAxG,OACAg0B,EAAAlC,GAAAkC,GACA,MAAAywO,IAEA,IADAI,EAAA/wP,EAAAtN,EAAAi+P,IACA7iQ,EAAA,EAAAo0G,EAAAhiF,EAAAh0B,OAA4C4B,EAAAo0G,EAAOp0G,IACnDijQ,EAAA7wO,aAAApyB,IAAA,GACAijQ,EAAAH,gBAAAl9P,KAAAwsB,EAAApyB,KAIA,OAAAiiQ,GAAAn9P,GACAm9P,GAAAn9P,IAEAy9P,EAAA,wDACAC,EAAA,sFACAC,EAAA,wLACA,UAAA39P,IACAy9P,GAAA,8EACAC,GAAA,6EACAC,GAAA,oGAEA,iBAAA39P,IACAy9P,GAAA,YACAK,EAAA,6CACAH,EAAA,CACAA,EACAG,GACAv5P,KAAA,KACAkjO,GAAAr8M,GAAA0yO,GAAA,SAAAh+P,GACAuxB,EAAAvxB,EAAA,GAAA69P,KAEAE,EAAA,8BACAH,EAAA,CACAA,EACAG,GACAt5P,KAAA,KACAq5P,EAAA,CACAF,EACAC,GACAp5P,KAAA,KACAkjO,GAAAr8M,GAAAyyO,GAAA,SAAA/9P,GACAuxB,EAAAvxB,EAAA,GAAA89P,MAGAA,KAAA,CACAF,EACAC,GACAp5P,KAAA,KACA8sB,EAAA,+BACAA,EAAA,gEACAA,EAAA,wBACAA,EAAA,sBACAA,EAAA,sDACAA,EAAA,0CACAA,EAAA,6BACAA,EAAA,yCACAA,EAAA,iMAAAusO,GACAvsO,EAAA,+BAAAusO,GACAvsO,EAAA,6GAAAssO,GACAtsO,EAAA,oBAAAusO,GACAvsO,EAAA,iCACAA,EAAA,cACAA,EAAA,aAAAusO,GACAvsO,EAAA,iBACAA,EAAA,0CAAAssO,GACAtsO,EAAA,WAAAssO,GACAtsO,EAAA,0BAAAusO,GACAvsO,EAAA,wDACAA,EAAA,iCAAAusO,GACAvsO,EAAA,iCACAA,EAAA,kEACAusO,EACA,SACAr5P,KAAA,MACA8sB,EAAA,sBACAA,EAAA,cACAusO,EACA,QACAr5P,KAAA,MACA8sB,EAAA,+DACAA,EAAA,oEAAArxB,EAAA,YACAqxB,EAAA,yBACAA,EAAA,cACAA,EAAA,6BACAA,EAAA,iBACAA,EAAA,+BAAAusO,GACAvsO,EAAA,0CAAAusO,GACAvsO,EAAA,kFAAAusO,GACAvsO,EAAA,iCACAusO,EACA,UACAr5P,KAAA,MACA8sB,EAAA,mBAAAssO,GACAtsO,EAAA,kOACAA,EAAA,+GAAArxB,EAAA49P,EAAAD,GACAtsO,EAAA,wEACAA,EAAA,sCACAA,EAAA,0CACAA,EAAA,oFACAA,EAAA,qBACAusO,EACA,MACAr5P,KAAA,MACA8sB,EAAA,cAAAusO,GACA,UAAA59P,IACAqxB,EAAA,OACAA,EAAA,WACAssO,EACA,SACAp5P,KAAA,MACA8sB,EAAA,gBAAAusO,GACAvsO,EAAA,4BAAAssO,GACAtsO,EAAA,wBAAAusO,GACAvsO,EAAA,wGACAusO,EACA,gBACAr5P,KAAA,MACA8sB,EAAA,2FACAusO,EACA,gBACAr5P,KAAA,MACA8sB,EAAA,2BACAA,EAAA,wCACAA,EAAA,0CACAA,EAAA,eACAssO,EACA,UACAp5P,KAAA,MACA8sB,EAAA,kDAAAusO,GACAvsO,EAAA,iCACAA,EAAA,aACAusO,EACA,cACAr5P,KAAA,MACA8sB,EAAA,kBAAAssO,GACAtsO,EAAA,gBAAAusO,GACAvsO,EAAA,iEACAA,EAAA,yBAAAssO,GACAtsO,EAAA,uBAAAssO,GACAtsO,EAAA,yCAAAssO,GACAtsO,EAAA,kBACAusO,EACA,WACAr5P,KAAA,MACA8sB,EAAA,4DAEA,iBAAArxB,IACAk+P,EAAA,+BACAA,EAAA,qBACAA,EAAA,8FACAA,EAAA,oCACAA,EAAA,0BACAA,EAAA,qCACAA,EAAA,cACAA,EAAA,mFACAA,EAAA,kDACAA,EAAA,0EACAA,EAAA,mCACAA,EAAA,wBACAA,EAAA,qBACAA,EAAA,YACAA,EAAA,kDACAA,EAAA,qBACAA,EAAA,aACAA,EAAA,4BACAA,EAAA,yBACAA,EAAA,iCACAA,EAAA,oBACAA,EAAA,2EACAA,EAAA,yCACAA,EAAA,8CACAA,EAAA,qCACAA,EAAA,0CACAA,EAAA,mEACAA,EAAA,iBACAA,EAAA,8EACAA,EAAA,qCACAA,EAAA,qCACAA,EAAA,iBACAA,EAAA,oDAEA,UAAAl+P,IACAk+P,EAAA,4CACAA,EAAA,gCACAA,EAAA,gBACAA,EAAA,iCACAA,EAAA,8CAEAz2B,GAAAr8M,GAAA,sCAAAtrB,GACAsN,EAAAtN,WACAsN,EAAAtN,GAAAklB,SAAAllB,YAGAsN,EAAAs0N,QAAA18M,SAAAyuH,aACArmI,EAAAgxP,OACAjB,GAAAn9P,GAAAoN,EACAA,IAEAixP,GAAA,SAAA5kQ,EAAAsmD,GACA,IAAAxyB,EAUA,OATA9zB,IACA8zB,EAAA,GACA,kBAAA9zB,IACAA,EAAA,CAAmB6kQ,IAAA7kQ,IAEnBguO,GAAAhuO,EAAA,SAAAA,EAAAiK,GACA6pB,EAAA7pB,GAAA6pB,EAAA7pB,EAAAmlF,eAAA,QAAA9oC,EAAAs9M,GAAA5jQ,EAAA,QAAA8jQ,GAAA9jQ,EAAA,WAGA8zB,GAEA,SAAAgxO,GAAAruL,GACA,IAGAsuL,EACAC,EACAC,EACAC,EAAAC,EAAAC,EAAAC,EAAAC,EACAC,EAAAC,EAAAC,EAAAC,EAAAC,EAPAl5O,EAAA,GACAlB,EAAA,GACAq6O,EAAA,GAMAC,EAAA,GAAgCtsD,EAAA,GAChCusD,EAAA,SAAA9uP,EAAAuqI,EAAAwkH,GACA,IAAA/lQ,EAAAy2E,EAAAz/D,GAWA,OAVAhX,EAQAA,EAAA4jQ,GAAA5jQ,EAAA,OAAA4jQ,GAAA5jQ,EAAAovF,cAAA,UAPApvF,EAAA0jQ,GAAA1sP,GACAhX,IACAA,EAAA4jQ,GAAAriH,EAAA,IAAAqiH,GAAAriH,EAAAnyD,cAAA,MACApvF,EAAA6jQ,GAAA7jQ,EAAA+lQ,GACArC,GAAA1sP,GAAAhX,IAKAA,GAEAy2E,KAAA,GACAwuL,EAAAlB,GAAAttL,EAAA9iE,SACA,IAAA8iE,EAAAuvL,cACAvvL,EAAAwvL,eAAA,QAEAlB,EAAAH,GAAAnuL,EAAAyvL,cACAlB,EAAAJ,GAAAnuL,EAAA0vL,eAAA,OACAb,EAAAV,GAAAnuL,EAAA2vL,cAAA,OACAlB,EAAAY,EAAA,2FACAX,EAAAW,EAAA,2EACAV,EAAAU,EAAA,sHACAT,EAAAS,EAAA,sJACAN,EAAAM,EAAA,uEAAAV,GACAK,EAAAK,EAAA,8CAAAN,GACAE,EAAAI,EAAA,4JACAP,EAAAO,EAAA,kKAAAJ,GACAC,EAAAG,EAAA,iGACA93B,IAAAv3J,EAAAnU,SAAA,6DAAA3wC,MAAA,cAAAtrB,GACAkzM,EAAAlzM,GAAA,IAAAojF,OAAA,KAAApjF,EAAA,iBAEA,IAAAggQ,EAAA,SAAAnnP,GACA,WAAAuqE,OAAA,IAAAvqE,EAAArE,QAAA,wBAEAyrP,EAAA,SAAAC,GACA,IAAAC,EAAAz+O,EAAAgxL,EAAA0tD,EAAAtmP,EAAAqB,EAAAmW,EAAA+uO,EAAAC,EAAA/tD,EAAAguD,EAAA/yO,EAAA0wO,EAAAp1O,EAAA03O,EAAA7C,EAAA8C,EAAA78P,EAAAjK,EACA+mQ,EAAA,8DAAAC,EAAA,oDAAAC,EAAA,QACA,GAAAV,EAMA,IALAA,EAAA50O,GAAA40O,EAAA,KACA95O,EAAA,OACAu3O,EAAAv3O,EAAA,KAAAoH,WACAizO,EAAAr6O,EAAA,KAAA83O,iBAEAiC,EAAA,EAAAz+O,EAAAw+O,EAAA1mQ,OAAiD2mQ,EAAAz+O,EAASy+O,IAE1D,GADArmP,EAAA4mP,EAAAh7K,KAAAw6K,EAAAC,IACArmP,EAAA,CAoBA,GAnBAgP,EAAAhP,EAAA,GACAwmP,EAAAxmP,EAAA,GACA0mP,EAAA1mP,EAAA,GACAumP,EAAAvmP,EAAA,GACA0T,EAAA,GACA0wO,EAAA,GACA/iP,EAAA,CACAqS,aACA0wO,mBAEA,MAAAp1O,IACA3N,EAAA0lP,WAAA,GAEA,MAAA/3O,IACA3N,EAAA2lP,aAAA,GAEA,MAAAhnP,EAAA,KACAqB,EAAA4lP,kBAAA,GAEApD,EAAA,CACA,IAAA/5P,KAAA+5P,EACAnwO,EAAA5pB,GAAA+5P,EAAA/5P,GAEAs6P,EAAAl9P,KAAAvH,MAAAykQ,EAAAuC,GAEA,GAAAJ,EAEA,IADAA,EAAA/0O,GAAA+0O,EAAA,KACA3tD,EAAA,EAAA0tD,EAAAC,EAAA7mQ,OAAkDk5M,EAAA0tD,EAAS1tD,IAE3D,GADA54L,EAAA6mP,EAAAj7K,KAAA26K,EAAA3tD,IACA54L,EAAA,CAWA,GAVAwX,EAAA,GACAivO,EAAAzmP,EAAA,GACAy4L,EAAAz4L,EAAA,GAAAtF,QAAA,eACAsU,EAAAhP,EAAA,GACAngB,EAAAmgB,EAAA,GACA,MAAAymP,IACAplP,EAAA6lP,mBAAA7lP,EAAA6lP,oBAAA,GACA7lP,EAAA6lP,mBAAAhgQ,KAAAuxM,GACAjhL,EAAArN,UAAA,GAEA,MAAAs8O,EAAA,QACA/yO,EAAA+kL,GACA2rD,EAAAj2K,OAAA6hH,GAAAo0D,EAAA3rD,GAAA,GACA,SAEAzpL,IACA,MAAAA,IACA3N,EAAA8lP,kBAAA9lP,EAAA8lP,mBAAA,GACA9lP,EAAA8lP,kBAAAjgQ,KAAA,CACAhB,KAAAuyM,EACA54M,UAEA23B,EAAA4pH,aAAAvhJ,GAEA,MAAAmvB,IACA3N,EAAA+lP,iBAAA/lP,EAAA+lP,kBAAA,GACA/lP,EAAA+lP,iBAAAlgQ,KAAA,CACAhB,KAAAuyM,EACA54M,UAEA23B,EAAA6vO,YAAAxnQ,GAEA,MAAAmvB,IACAwI,EAAA8vO,YAAA7D,GAAA5jQ,EAAA,OAGAinQ,EAAA3sP,KAAAs+L,IACAp3L,EAAAkmP,kBAAAlmP,EAAAkmP,mBAAA,GACA/vO,EAAAiyF,QAAAy8I,EAAAztD,GACAp3L,EAAAkmP,kBAAArgQ,KAAAswB,KAEA9D,EAAA+kL,IACA2rD,EAAAl9P,KAAAuxM,GAEA/kL,EAAA+kL,GAAAjhL,GAKAqsO,GAAA,MAAA2C,IACA3C,EAAAnwO,EACAizO,EAAAvC,GAEAsC,IACArlP,EAAAqlP,WAAAF,EACAl6O,EAAAo6O,GAAArlP,GAEAylP,EAAA3sP,KAAAqsP,IACAnlP,EAAAooG,QAAAy8I,EAAAM,GACAf,EAAAv+P,KAAAma,IAEAiL,EAAAk6O,GAAAnlP,IAMAmmP,EAAA,SAAApB,GACA95O,EAAA,GACAm5O,EAAA,GACAU,EAAAC,GACAv4B,GAAAi3B,EAAA,SAAAzjP,EAAAnb,GACAklB,EAAAllB,GAAAmb,EAAA+J,YAGAq8O,EAAA,SAAAC,GACA,IAAAC,EAAA,aACAD,IACAnE,GAAAqE,oBAAArE,GAAAsE,eAAA,KACAh6B,GAAAr8M,GAAAk2O,EAAA,cAAAh0M,GACA,IAAA1zC,EAAA2nP,EAAA/7K,KAAAl4B,GAAAwvC,EAAA,MAAAljF,EAAA,GAAA8nP,EAAA5kK,EAAA,aAAAh9F,EAAA8Z,EAAA,GAOA,GANAoL,EAAAllB,GAAAklB,EAAA08O,GACApC,EAAAx/P,GAAA4hQ,EACA5kK,IACAkiK,EAAAl/P,EAAA+oF,eAAA,GACAm2K,EAAAl/P,GAAA,KAEAomB,EAAApmB,GAAA,CACA,IAAA6hQ,EAAAz7O,EAAAw7O,GACAC,EAAArE,GAAA,GAAsCqE,UACtCA,EAAAd,wBACAc,EAAAf,YACA16O,EAAApmB,GAAA6hQ,EAEAl6B,GAAAziN,EAAA,SAAA/J,EAAA2mP,GACA3mP,EAAAymP,KACA18O,EAAA48O,GAAA3mP,EAAAqiP,GAAA,GAAyDt4O,EAAA48O,IACzD3mP,EAAAnb,GAAAmb,EAAAymP,UAMAG,EAAA,SAAAC,GACA,IAAAC,EAAA,8BACA5E,GAAAjtL,EAAA9iE,QAAA,KACA00P,GACAr6B,GAAAr8M,GAAA02O,EAAA,cAAAx0M,GACA,IACAzoC,EAAA+D,EADAhP,EAAAmoP,EAAAv8K,KAAAl4B,GAEA1zC,IACAgP,EAAAhP,EAAA,GAEAiL,EADA+D,EACA5D,EAAApL,EAAA,IAEAoL,EAAApL,EAAA,KAAiDooP,WAAA,IAEjDn9O,EAAAG,EAAApL,EAAA,IACA6tN,GAAAr8M,GAAAxR,EAAA,iBAAAqL,GACA,MAAA2D,SACA/D,EAAAI,GAEAJ,EAAAI,GAAA,SAOAg9O,EAAA,SAAAniQ,GACA,IAAA5E,EAAA+f,EAAAiL,EAAApmB,GACA,GAAAmb,EACA,OAAAA,EAEA/f,EAAAmkQ,EAAA/lQ,OACA,MAAA4B,IAEA,GADA+f,EAAAokP,EAAAnkQ,GACA+f,EAAAooG,QAAAtvG,KAAAjU,GACA,OAAAmb,GAIAi1D,EAAAwvL,eA0BA0B,EAAAlxL,EAAAwvL,iBAzBAj4B,GAAAi3B,EAAA,SAAAzjP,EAAAnb,GACAomB,EAAApmB,GAAA,CACAwtB,WAAArS,EAAAqS,WACA0wO,gBAAA/iP,EAAA+iP,iBAEAh5O,EAAAllB,GAAAmb,EAAA+J,WAEA,UAAAkrD,EAAA9iE,QACAq6N,GAAAr8M,GAAA,0BAAAyJ,GACAA,EAAAzJ,GAAAyJ,EAAA,KACA3O,EAAA2O,EAAA,IAAAyrO,WAAAzrO,EAAA,KAGA4yM,GAAAr8M,GAAA,8EAAAtrB,GACAomB,EAAApmB,KACAomB,EAAApmB,GAAA8gQ,aAAA,KAGAn5B,GAAAr8M,GAAA,iEAAAtrB,GACAomB,EAAApmB,GAAA6gQ,WAAA,IAEAl5B,GAAAr8M,GAAA,iBAAAtrB,GACAomB,EAAApmB,GAAA+gQ,kBAAA,KAKAQ,EAAAnxL,EAAAgyL,iBACAL,EAAA3xL,EAAAiyL,gBACApC,EAAA7vL,EAAAkyL,yBACAP,EAAA,yBACAp6B,GAAA,CACA46B,GAAA,KACAC,GAAA,KACAviE,GAAA,QACAxlB,GAAA,KACAgoF,GAAA,KACA55C,GAAA,oBACA8c,MAAA,QACA+8B,MAAA,QACAC,MAAA,QACAC,OAAA,WACAC,KAAA,MACAC,MAAA,sBACO,SAAAvuG,EAAAx/H,GACP3O,EAAA2O,KACA3O,EAAA2O,GAAAguO,gBAAAz3O,GAAAipI,MAGAnkF,EAAA4yL,kBACAr7B,GAAA81B,GAAArtL,EAAA4yL,kBAAA,SAAAjuO,GACA3O,EAAA2O,WACA3O,EAAA2O,KAIAotO,EAAA,SACAlC,EAAA,0BAEA,IAAAgD,EAAA,WACA,OAAAvE,GAEAwE,EAAA,WACA,OAAAvE,GAEAwE,EAAA,WACA,OAAAlE,GAEA5rD,EAAA,WACA,OAAA2rD,GAEAlhE,EAAA,WACA,OAAAohE,GAEA9jE,EAAA,WACA,OAAAikE,GAEA+D,EAAA,WACA,OAAA9D,GAEA+D,EAAA,WACA,OAAAtE,GAEAuE,EAAA,WACA,OAAAxE,GAEA33D,EAAA,WACA,OAAAg4D,GAEAoE,EAAA,WACA,OAAAnE,GAEAoE,EAAA,WACA,OAAA3E,GAEA1rD,EAAA,WACA,OAAAD,GAEAuwD,EAAA,SAAAzjQ,EAAAmlB,GACA,IAAAJ,EAAAG,EAAAllB,EAAA6U,eACA,SAAAkQ,MAAAI,EAAAtQ,iBAEAuoG,EAAA,SAAAp9G,EAAAsxB,GACA,IAAAoyO,EAAAtoQ,EACAoyD,EAAA20M,EAAAniQ,GACA,GAAAwtD,EAAA,CACA,IAAAl8B,EAcA,SAbA,GAAAk8B,EAAAhgC,WAAA8D,GACA,SAGA,GADAoyO,EAAAl2M,EAAA6zM,kBACAqC,EAAA,CACAtoQ,EAAAsoQ,EAAAlqQ,OACA,MAAA4B,IACA,GAAAsoQ,EAAAtoQ,GAAAmoH,QAAAtvG,KAAAjU,GACA,UAQA,UAEA2jQ,EAAA,WACA,OAAAnE,GAEA,OACAt6O,WACAkB,WACA68O,iBACAE,kBACArlE,mBACAolE,mBACAG,wBACAjoE,uBACAgoE,wBACA/vD,eACA8uD,iBACAmB,yBACAn8D,sBACAo8D,oCACAC,wBACArwD,qBACAswD,eACArmJ,UACAumJ,oBACA1D,mBACAqB,mBACAC,oBACAQ,oBAIA,IAwkBA3mQ,GAAAwoQ,GAAAC,GAAAhwL,GAAAiwL,GAAAC,GAAAC,GAAAt3K,GAAAu3K,GAAAC,GAAAC,GAAAC,GAAA9xP,GAAAs0I,GAAAy9G,GAAAC,GAAAC,GAAAzqP,GAAA0qP,GAxkBA7+K,GAAA,SAAArhF,EAAApI,EAAA0qD,EAAAhoD,GACA,IAAAwmF,EAAA,SAAAv8E,GAEA,OADAA,EAAA8tB,SAAA9tB,EAAA,IAAAxK,SAAA,IACAwK,EAAArP,OAAA,EAAAqP,EAAA,IAAAA,GAEA,UAAAu8E,EAAAlpF,GAAAkpF,EAAAx+B,GAAAw+B,EAAAxmF,IAEAyrN,GAAA,SAAAj6I,EAAA9iE,GACA,IAIAlS,EAEAqpQ,EACA/F,EACAC,EARA+F,EAAA,2DACAC,EAAA,+HACAC,EAAA,2BACAC,EAAA,OAEAC,EAAA,GAIAC,EAAA,SAOA,IANA30L,KAAA,GACA9iE,IACAoxP,EAAApxP,EAAA21P,iBACAtE,EAAArxP,EAAA41P,oBAEAuB,GAAA,wBAA0CM,GAAAz5O,MAAA,KAC1ClwB,EAAA,EAAiBA,EAAAqpQ,EAAAjrQ,OAA0B4B,IAC3C0pQ,EAAAL,EAAArpQ,IAAA2pQ,EAAA3pQ,EACA0pQ,EAAAC,EAAA3pQ,GAAAqpQ,EAAArpQ,GAEA,OACAuqF,MAAA,SAAApK,GACA,OAAAA,EAAA/mE,QAAAkwP,EAAA/+K,KAEAlS,MAAA,SAAA1gD,GACA,IACAjZ,EAAA9Z,EAAArG,EAAAqrQ,EADAv3O,EAAA,GAEAw3O,EAAA70L,EAAA80L,cACAC,EAAA/0L,EAAAg1L,qBAAA1pQ,KACA2pQ,EAAA,SAAAv8O,EAAA5P,EAAAosP,GACA,IAAA3tO,EAAA0B,EAAAC,EAAA5B,EAEA,GADAC,EAAAlK,EAAA3E,EAAA,OAAA5P,GACAye,IAGA0B,EAAA5L,EAAA3E,EAAA,SAAA5P,GACAmgB,IAGAC,EAAA7L,EAAA3E,EAAA,UAAA5P,GACAogB,IAGA5B,EAAAjK,EAAA3E,EAAA,QAAA5P,GACAwe,KAAA,CAGA,IAAAK,EAAA,CACAJ,EACA0B,EACAC,EACA5B,GAEAt8B,EAAA28B,EAAAv+B,OAAA,EACA,MAAA4B,IACA,GAAA28B,EAAA38B,KAAA28B,EAAA38B,EAAA,GACA,MAGAA,GAAA,GAAAkqQ,IAGA73O,EAAA3E,EAAA5P,IAAA,IAAA9d,EAAA28B,EAAA,GAAAA,EAAAtzB,KAAA,YACAgpB,EAAA3E,EAAA,OAAA5P,UACAuU,EAAA3E,EAAA,SAAA5P,UACAuU,EAAA3E,EAAA,UAAA5P,UACAuU,EAAA3E,EAAA,QAAA5P,MAEAqsP,EAAA,SAAA3hQ,GACA,IAAAxI,EAAAzB,EAAA8zB,EAAA7pB,GACA,GAAAjK,EAAA,CAGAA,IAAA2xB,MAAA,KACAlwB,EAAAzB,EAAAH,OACA,MAAA4B,IACA,GAAAzB,EAAAyB,KAAAzB,EAAA,GACA,SAIA,OADA8zB,EAAA7pB,GAAAjK,EAAA,IACA,IAEA6rQ,EAAA,SAAA5gQ,EAAAvI,EAAAuC,EAAAwkB,GACAmiP,EAAAlpQ,IAGAkpQ,EAAA3mQ,IAGA2mQ,EAAAniP,KAGAqK,EAAA7oB,GAAA6oB,EAAApxB,GAAA,IAAAoxB,EAAA7uB,GAAA,IAAA6uB,EAAArK,UACAqK,EAAApxB,UACAoxB,EAAA7uB,UACA6uB,EAAArK,KAEA2/D,EAAA,SAAAlqE,GAEA,OADAmsP,GAAA,EACAF,EAAAjsP,IAEAskP,EAAA,SAAAtkP,EAAA4sP,GASA,OARAT,IACAnsP,IAAArE,QAAA,wBAAAqE,GACA,OAAAisP,EAAAjsP,MAGA4sP,IACA5sP,IAAArE,QAAA,gBAA0C,OAE1CqE,GAEA6sP,EAAA,SAAAC,GACA,OAAAnmQ,OAAA88P,aAAA3lO,SAAAgvO,EAAA9kQ,MAAA,SAEA+kQ,EAAA,SAAAjsQ,GACA,OAAAA,EAAA6a,QAAA,gBAAAkxP,IAEAG,EAAA,SAAAvhQ,EAAAq6F,EAAAmnK,EAAAC,EAAAltP,EAAAmtP,GAEA,GADAntP,KAAAmtP,EACAntP,EAEA,OADAA,EAAAskP,EAAAtkP,GACA,IAAAA,EAAArE,QAAA,iBAGA,GADAmqF,EAAAw+J,EAAAx+J,GAAAmnK,GAAAC,IACA31L,EAAA61L,kBAAA,CACA,IAAAliJ,EAAAplB,EAAAnqF,QAAA,iBACA,uBAAAP,KAAA8vG,GACA,SAEA,IAAA3zC,EAAA81L,qBAAA,oBAAAjyP,KAAA8vG,GACA,SAMA,OAHAkhJ,IACAtmK,EAAAsmK,EAAAxpQ,KAAA0pQ,EAAAxmK,EAAA,UAEA,QAAAA,EAAAnqF,QAAA,mBAEA,GAAAue,EAAA,CACAA,IAAAve,QAAA,uBACAue,IAAAve,QAAA,oBAAuCuuE,GAAAvuE,QAAA,kCAAAqE,GACvC,OAAAA,EAAArE,QAAA,QAAoCuuE,KAEpC,MAAAjpE,EAAA8qP,EAAAl/K,KAAA3yD,GAIA,GAHA6xO,EAAAuB,UAAArsP,EAAAsL,MAAAtL,EAAA,GAAAtgB,OACAwG,EAAA8Z,EAAA,GAAAtF,QAAAqwP,EAAA,IAAAhwP,cACAlb,EAAAmgB,EAAA,GAAAtF,QAAAqwP,EAAA,IACA7kQ,GAAArG,EAAA,CAGA,GAFAqG,EAAA4lQ,EAAA5lQ,GACArG,EAAAisQ,EAAAjsQ,IACA,IAAAqG,EAAAnE,QAAAkpQ,KAAA,IAAA/kQ,EAAAnE,QAAA,KACA,SAEA,IAAAu0E,EAAA61L,oBAAA,aAAAjmQ,GAAA,4BAAAiU,KAAAta,IACA,SAEA,gBAAAqG,GAAA,QAAArG,EACAA,EAAA,OACiB,UAAAqG,GAAA,qBAAAA,IACjBrG,IAAAkb,eAEAlb,IAAA6a,QAAAkwP,EAAA/+K,IACAhsF,IAAA6a,QAAAmwP,EAAAkB,GACAp4O,EAAAztB,GAAAglQ,EAAA7H,EAAAxjQ,GAAA,GAAAA,EAGA0rQ,EAAA,gBACAA,EAAA,mBACAA,EAAA,mBACAA,EAAA,mBACAA,EAAA,cACAA,EAAA,aACAG,EAAA,uDACA,gBAAA/3O,EAAAizJ,eACAjzJ,EAAAizJ,OAEA,SAAAjzJ,EAAA,wBACAA,EAAA,gBAGA,OAAAA,GAEAqiL,UAAA,SAAAriL,EAAA6yO,GACA,IAAAtgQ,EAAArG,EAAAo5B,EAAA,GACAqzO,EAAA,SAAApmQ,GACA,IAAAqmQ,EAAAjrQ,EAAAo0G,EAAA71G,EAEA,GADA0sQ,EAAA3H,EAAA1+P,GACAqmQ,EACA,IAAAjrQ,EAAA,EAAAo0G,EAAA62J,EAAA7sQ,OAA+C4B,EAAAo0G,EAAOp0G,IACtD4E,EAAAqmQ,EAAAjrQ,GACAzB,EAAA8zB,EAAAztB,GACArG,IACAo5B,MAAAv5B,OAAA,UAAAwG,EAAA,KAAArG,EAAA,MAKAyjH,EAAA,SAAAp9G,EAAAsgQ,GACA,IAAAgG,EAEA,OADAA,EAAA3H,EAAA,OACA2H,MAAAtmQ,MAGAsmQ,EAAA3H,EAAA2B,IACAgG,MAAAtmQ,KAKA,GAAAsgQ,GAAA5B,EACA0H,EAAA,KACAA,EAAA9F,QAEA,IAAAtgQ,KAAAytB,EACA9zB,EAAA8zB,EAAAztB,IACArG,GAAAglQ,IAAAvhJ,EAAAp9G,EAAAsgQ,KACAvtO,MAAAv5B,OAAA,UAAAwG,EAAA,KAAArG,EAAA,KAIA,OAAAo5B,KAKAwzO,GAAA,YACAC,GAAA,+BACAC,GAAA,CACAC,YAAA,EACAC,OAAA,EACAC,OAAA,EACAC,YAAA,EACAC,gBAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,YAAA,GAEAC,GAAA,SAAAzqP,GACA,OAAAA,EAAAqhF,qBAAAqpK,IAAA1qP,EAAAqhF,qBAAAspK,IAEAA,GAAA,WACA,UAEAD,GAAA,WACA,UAEAE,GAAA,SAAAziQ,EAAA5E,EAAA+rF,EAAA4I,GACA/vF,EAAA4vF,iBACA5vF,EAAA4vF,iBAAAx0F,EAAA+rF,EAAA4I,IAAA,GACO/vF,EAAA0iQ,aACP1iQ,EAAA0iQ,YAAA,KAAAtnQ,EAAA+rF,IAGAw7K,GAAA,SAAA3iQ,EAAA5E,EAAA+rF,EAAA4I,GACA/vF,EAAAgwF,oBACAhwF,EAAAgwF,oBAAA50F,EAAA+rF,EAAA4I,IAAA,GACO/vF,EAAA4iQ,aACP5iQ,EAAA4iQ,YAAA,KAAAxnQ,EAAA+rF,IAGA07K,GAAA,SAAAhrP,EAAAirP,GACA,GAAAjrP,EAAAkrP,aAAA,CACA,IAAAA,EAAAlrP,EAAAkrP,eACA,GAAAA,KAAAnuQ,OAAA,EACA,OAAAmuQ,EAAA,GAGA,OAAAD,GAEAE,GAAA,SAAAC,EAAAtnP,GACA,IAAAvgB,EACAyc,EAAA8D,GAAA,GACA,IAAAvgB,KAAA6nQ,EACApB,GAAAzmQ,KACAyc,EAAAzc,GAAA6nQ,EAAA7nQ,IASA,GANAyc,EAAA7X,SACA6X,EAAA7X,OAAA6X,EAAAqrP,YAAAhvQ,EAAAwZ,UAEA2hP,GAAAM,wBACA93O,EAAA7X,OAAA6iQ,GAAAI,EAAAprP,EAAA7X,SAEAijQ,GAAArB,GAAAvyP,KAAA4zP,EAAA3nQ,YAAAzC,IAAAoqQ,EAAAh3F,YAAApzK,IAAAoqQ,EAAA3zK,QAAA,CACA,IAAA6zK,EAAAtrP,EAAA7X,OAAAyc,eAAAvoB,EAAAwZ,SACAD,EAAA01P,EAAAljP,gBACAvD,EAAAymP,EAAAzmP,KACA7E,EAAAo0J,MAAAg3F,EAAA3zK,SAAA7hF,KAAAkmB,YAAAjX,KAAAiX,YAAA,IAAAlmB,KAAAqmB,YAAApX,KAAAoX,YAAA,GACAjc,EAAAq0J,MAAA+2F,EAAA1zK,SAAA9hF,KAAAgmB,WAAA/W,KAAA+W,WAAA,IAAAhmB,KAAAomB,WAAAnX,KAAAmX,WAAA,GAkCA,OAhCAhc,EAAA0F,eAAA,WACA1F,EAAAqhF,mBAAAqpK,GACAU,IACAA,EAAA1lP,eACA0lP,EAAA1lP,iBAEA0lP,EAAAhB,aAAA,IAIApqP,EAAAw3E,gBAAA,WACAx3E,EAAA2hK,qBAAA+oF,GACAU,IACAA,EAAA5zK,gBACA4zK,EAAA5zK,kBAEA4zK,EAAAG,cAAA,IAIAvrP,EAAAq4D,yBAAA,WACAr4D,EAAAwrP,8BAAAd,GACA1qP,EAAAw3E,oBAEA,IAAAizK,GAAAzqP,KACAA,EAAAqhF,mBAAAspK,GACA3qP,EAAA2hK,qBAAAgpF,GACA3qP,EAAAwrP,8BAAAb,IAEA,qBAAA3qP,EAAAyrP,UACAzrP,EAAAyrP,SAAA,GAEAzrP,GAEA0rP,GAAA,SAAAjwO,EAAA6zD,EAAAq8K,GACA,IAAA/1P,EAAA6lB,EAAA5lB,SAAAmK,EAAA,CAAuCvc,KAAA,SACvC,GAAAkoQ,EAAAC,UACAt8K,EAAAtvE,OADA,CAIA,IAAA6rP,EAAA,WACA,mBAAAj2P,EAAAk2P,YAAA,gBAAAl2P,EAAAk2P,YAAAl2P,EAAAiP,MAEAknP,EAAA,WACAjB,GAAArvO,EAAA,mBAAAswO,GACAjB,GAAArvO,EAAA,OAAAswO,GACAJ,EAAAC,YACAD,EAAAC,WAAA,EACAt8K,EAAAtvE,KAGA6rP,IACAE,IAEAnB,GAAAnvO,EAAA,mBAAAswO,GAEAnB,GAAAnvO,EAAA,OAAAswO,KAEAC,GAAA,WACA,SAAAA,IACA/sQ,KAAA2sQ,WAAA,EACA3sQ,KAAA+sB,OAAA,GACA/sB,KAAAyI,MAAA,EACAzI,KAAAgtQ,QAAAnC,KAAA,IAAAv9O,MAAA3qB,SAAA,IACA3C,KAAAitQ,mBAAA,iBAAA7vQ,EAAAwZ,SAAAuS,gBACAnpB,KAAAktQ,WAAA,cAAA9vQ,EAAAwZ,SAAAuS,gBACAnpB,KAAAyI,MAAA,EAuNA,OArNAskQ,EAAAltQ,UAAAuC,KAAA,SAAA8G,EAAAoiD,EAAA+kC,EAAA35E,GACA,IACArV,EAAA8rQ,EAAAztQ,EAAA4E,EAAA8oQ,EAAAC,EAAAp0K,EADAl2F,EAAA/C,KAEAw8B,EAAAp/B,EAAA8gB,OACAovP,EAAA,SAAAn4J,GACApyG,EAAAwqQ,gBAAArB,GAAA/2J,GAAA34E,EAAAzb,OAAA1f,IAEA,GAAA6H,GAAA,IAAAA,EAAAyW,UAAA,IAAAzW,EAAAyW,SAAA,CAGAzW,EAAAnG,EAAAiqQ,SAKA3rQ,EAAA6H,EAAAnG,EAAAiqQ,UAJA3rQ,EAAA0B,EAAA0F,QACAS,EAAAnG,EAAAiqQ,SAAA3rQ,EACA0B,EAAAgqB,OAAA1rB,GAAA,IAIAqV,KAAAxN,EACA,IAAAskQ,EAAAliN,EAAA17B,MAAA,KACAlwB,EAAA8tQ,EAAA1vQ,OACA,MAAA4B,IACA4E,EAAAkpQ,EAAA9tQ,GACA2tQ,EAAAC,EACAF,EAAAn0K,GAAA,EACA,qBAAA30F,IACAA,EAAA,SAEAvB,EAAA4pQ,WAAA,UAAAroQ,GAAA,aAAA4E,EAAA2jQ,WACAx8K,EAAAtwF,KAAA2W,EAAAw1P,GAAA,CAAsC1nQ,KAAAF,MAGtCvB,EAAAkqQ,qBACAG,EAAArqQ,EAAA0qQ,gBAAAnpQ,GACA8oQ,IACAC,EAAA,SAAAl4J,GACA,IAAAt7F,EAAA+1D,EAGA,GAFA/1D,EAAAs7F,EAAAu4J,cACA99L,EAAAulC,EAAAw4J,cACA/9L,GAAA/1D,EAAAnU,SACAkqE,EAAA/1D,EAAAnU,SAAAkqE,QAEA,MAAAA,OAAA/1D,EACA+1D,IAAAlqD,WAGAkqD,IACAulC,EAAA+2J,GAAA/2J,GAAA34E,EAAAzb,OACAo0F,EAAA3wG,KAAA,aAAA2wG,EAAA3wG,KAAA,0BACA2wG,EAAAjsG,OAAA2Q,EACA9W,EAAAwqQ,gBAAAp4J,EAAA9zG,OAKA0B,EAAAmqQ,YAAA,YAAA5oQ,GAAA,aAAAA,IACA20F,GAAA,EACAm0K,EAAA,YAAA9oQ,EAAA,eACA+oQ,EAAA,SAAAl4J,GACAA,EAAA+2J,GAAA/2J,GAAA34E,EAAAzb,OACAo0F,EAAA3wG,KAAA,UAAA2wG,EAAA3wG,KAAA,qBACAzB,EAAAwqQ,gBAAAp4J,EAAA9zG,KAGA8rQ,EAAApqQ,EAAAgqB,OAAA1rB,GAAAiD,GACA6oQ,EAcA,UAAA7oQ,GAAAvB,EAAA4pQ,UACAt8K,EAAA67K,GAAA,CAA4B1nQ,KAAAF,KAE5B6oQ,EAAA7nQ,KAAA,CACAgJ,KAAA+hF,EACA35E,WAlBA3T,EAAAgqB,OAAA1rB,GAAAiD,GAAA6oQ,EAAA,EACA7+P,KAAA+hF,EACA35E,UAEAy2P,EAAAC,WACAD,EAAAl0K,UACAk0K,EAAAE,gBACA,UAAA/oQ,EACAmoQ,GAAAvjQ,EAAAmkQ,EAAAtqQ,GAEA4oQ,GAAAziQ,EAAAkkQ,GAAA9oQ,EAAA+oQ,EAAAp0K,KAcA,OADA/vF,EAAAikQ,EAAA,EACA98K,IAEA08K,EAAAltQ,UAAAk5F,OAAA,SAAA7vF,EAAAoiD,EAAA+kC,GACA,IAAAhvF,EAAA8rQ,EAAAztQ,EAAAmyN,EAAAvtN,EAAAspQ,EACA,IAAA1kQ,GAAA,IAAAA,EAAAyW,UAAA,IAAAzW,EAAAyW,SACA,OAAA3f,KAGA,GADAqB,EAAA6H,EAAAlJ,KAAAgtQ,SACA3rQ,EAAA,CAEA,GADAusQ,EAAA5tQ,KAAA+sB,OAAA1rB,GACAiqD,EAAA,CACA,IAAAkiN,EAAAliN,EAAA17B,MAAA,KACAlwB,EAAA8tQ,EAAA1vQ,OACA,MAAA4B,IAGA,GAFA4E,EAAAkpQ,EAAA9tQ,GACAytQ,EAAAS,EAAAtpQ,GACA6oQ,EAAA,CACA,GAAA98K,EAAA,CACAwhI,EAAAs7C,EAAArvQ,OACA,MAAA+zN,IACA,GAAAs7C,EAAAt7C,GAAAvjN,OAAA+hF,EAAA,CACA,IAAAg9K,EAAAF,EAAAE,cACAD,EAAAD,EAAAC,SAAAn0K,EAAAk0K,EAAAl0K,QACAk0K,IAAAhoQ,MAAA,EAAA0sN,GAAApzN,OAAA0uQ,EAAAhoQ,MAAA0sN,EAAA,IACAs7C,EAAAE,gBACAF,EAAAC,WACAD,EAAAl0K,UACA20K,EAAAtpQ,GAAA6oQ,GAIA98K,GAAA,IAAA88K,EAAArvQ,gBACA8vQ,EAAAtpQ,GACAunQ,GAAA3iQ,EAAAikQ,EAAAC,UAAA9oQ,EAAA6oQ,EAAAE,cAAAF,EAAAl0K,eAIW,CACX,IAAA30F,KAAAspQ,EACAT,EAAAS,EAAAtpQ,GACAunQ,GAAA3iQ,EAAAikQ,EAAAC,UAAA9oQ,EAAA6oQ,EAAAE,cAAAF,EAAAl0K,SAEA20K,EAAA,GAEA,IAAAtpQ,KAAAspQ,EACA,OAAA5tQ,YAEAA,KAAA+sB,OAAA1rB,GACA,WACA6H,EAAAlJ,KAAAgtQ,SACW,MAAA5kK,GACXl/F,EAAAlJ,KAAAgtQ,SAAA,MAGA,OAAAhtQ,MAEA+sQ,EAAAltQ,UAAAyuF,KAAA,SAAAplF,EAAA5E,EAAA3G,GACA,IAAA0D,EACA,IAAA6H,GAAA,IAAAA,EAAAyW,UAAA,IAAAzW,EAAAyW,SACA,OAAA3f,KAEA,IAAA+gB,EAAAmrP,GAAA,KAAAvuQ,GACAojB,EAAAvc,KAAAF,EACAyc,EAAA7X,SACA,GACA7H,EAAA6H,EAAAlJ,KAAAgtQ,SACA3rQ,GACArB,KAAAutQ,gBAAAxsP,EAAA1f,GAEA6H,IAAAwc,YAAAxc,EAAAyc,eAAAzc,EAAAkgB,aAAAlgB,EAAA2kQ,mBACS3kQ,IAAA6X,EAAA2hK,wBACT,OAAA1iL,MAEA+sQ,EAAAltQ,UAAAy9M,MAAA,SAAAp0M,GACA,IAAAxJ,EAAA8pB,EACA,IAAAtgB,GAAA,IAAAA,EAAAyW,UAAA,IAAAzW,EAAAyW,SACA,OAAA3f,KAQA,GANAkJ,EAAAlJ,KAAAgtQ,UACAhtQ,KAAA+4F,OAAA7vF,GAEAA,EAAAwxP,uBACAxxP,IAAA0N,UAEA1N,KAAAwxP,qBAAA,CACA16P,KAAA+4F,OAAA7vF,GACAsgB,EAAAtgB,EAAAwxP,qBAAA,KACAh7P,EAAA8pB,EAAA1rB,OACA,MAAA4B,IACAwJ,EAAAsgB,EAAA9pB,GACAwJ,EAAAlJ,KAAAgtQ,UACAhtQ,KAAA+4F,OAAA7vF,GAIA,OAAAlJ,MAEA+sQ,EAAAltQ,UAAAg/F,QAAA,WACA7+F,KAAA+sB,OAAA,IAEAggP,EAAAltQ,UAAA+1E,OAAA,SAAA11E,GAKA,OAJAA,IACAA,EAAAumB,iBACAvmB,EAAAk5E,6BAEA,GAEA2zL,EAAAltQ,UAAA0tQ,gBAAA,SAAAp4J,EAAA9zG,GACA,IAAA8rQ,EAAAztQ,EAAAo0G,EAAAzjB,EACAzkE,EAAA5rB,KAAA+sB,OAAA1rB,GAEA,GADA8rQ,EAAAvhP,KAAAupF,EAAA3wG,MACA2oQ,EACA,IAAAztQ,EAAA,EAAAo0G,EAAAq5J,EAAArvQ,OAA8C4B,EAAAo0G,EAAOp0G,IAKrD,GAJA2wF,EAAA88K,EAAAztQ,GACA2wF,IAAA,IAAAA,EAAA/hF,KAAAvO,KAAAswF,EAAA35E,MAAAy+F,IACAA,EAAA1uF,iBAEA0uF,EAAAo3J,gCACA,QAKAQ,EAAA7+B,MAAA,IAAA6+B,EACAA,EA/NA,GAkOAC,GAAA,cAAA1/O,KAAAwgP,GAAA1wQ,EAAA8gB,OAAAtH,SAAAm3P,GAAA,EAAA75P,GAAA,EAAA85P,GAAAC,KAAAC,GAAAD,KAAAE,GAAAF,KAAAG,GAAA,SAAAztQ,EAAAuC,GAIA,OAHAvC,IAAAuC,IACAulQ,IAAA,GAEA,GACO4F,GAAA,YAAAC,GAAA,MAAAnU,GAAA,GAAsEr6P,eAAAsG,GAAA,GAAAgmF,GAAAhmF,GAAAgmF,IAAAmiL,GAAAnoQ,GAAAd,QAAAc,GAAAd,KAAAH,GAAAiB,GAAAjB,MAAAqpQ,GAAApoQ,GAAAjG,SAAA,SAAAyf,GAE7E,IADA,IAAAlgB,EAAA,EAAAuF,EAAAjF,KAAAlC,OACc4B,EAAAuF,EAASvF,IACvB,GAAAM,KAAAN,KAAAkgB,EACA,OAAAlgB,EAGA,UACO+uQ,GAAA,6HAAAC,GAAA,sBAAAC,GAAA,mCAAA78O,GAAA,MAAA48O,GAAA,KAAAC,GAAA,OAAAD,GAAA,gBAAAA,GAAA,2DAAAC,GAAA,OAAAD,GAAA,OAAAE,GAAA,KAAAD,GAAA,wFAAA78O,GAAA,eAAA+8O,GAAA,IAAAnnL,OAAA,IAAAgnL,GAAA,8BAAAA,GAAA,UAAAI,GAAA,IAAApnL,OAAA,IAAAgnL,GAAA,KAAAA,GAAA,KAAAK,GAAA,IAAArnL,OAAA,IAAAgnL,GAAA,WAAAA,GAAA,IAAAA,GAAA,KAAAM,GAAA,IAAAtnL,OAAA,IAAAgnL,GAAA,iBAAAA,GAAA,YAAAO,GAAA,IAAAvnL,OAAAknL,IAAAM,GAAA,IAAAxnL,OAAA,IAAAinL,GAAA,KAAAQ,GAAA,CACPC,GAAA,IAAA1nL,OAAA,MAAAinL,GAAA,KACAU,MAAA,IAAA3nL,OAAA,QAAAinL,GAAA,KACAW,IAAA,IAAA5nL,OAAA,KAAAinL,GAAA,SACAY,KAAA,IAAA7nL,OAAA,IAAA51D,IACA09O,OAAA,IAAA9nL,OAAA,IAAAknL,IACAa,MAAA,IAAA/nL,OAAA,yDAAAgnL,GAAA,+BAAAA,GAAA,cAAAA,GAAA,aAAAA,GAAA,cACAgB,KAAA,IAAAhoL,OAAA,OAAA+mL,GAAA,UACAkB,aAAA,IAAAjoL,OAAA,IAAAgnL,GAAA,mDAAAA,GAAA,mBAAAA,GAAA,yBACOkB,GAAA,sCAAAC,GAAA,SAAAC,GAAA,yBAA0FC,GAAA,mCAAAC,GAAA,OAAAC,GAAA,QAAAC,GAAA,IAAAxoL,OAAA,qBAAkJgnL,GAAA,MAAAA,GAAA,aAAAyB,GAAA,SAAA5sQ,EAAA6sQ,EAAAC,GACnP,IAAAC,EAAA,KAAAF,EAAA,MACA,OAAAE,OAAAD,EAAAD,EAAAE,EAAA,EAAAxsQ,OAAA88P,aAAA0P,EAAA,OAAAxsQ,OAAA88P,aAAA0P,GAAA,cAAAA,EAAA,QAEA,IACAhrQ,GAAAvH,MAAAqI,GAAAjB,GAAApF,KAAA+tQ,GAAA72P,YAAA62P,GAAA72P,YACA7Q,GAAA0nQ,GAAA72P,WAAAnZ,QAAA6hB,SACK,MAAAzf,IACLoF,GAAA,CACAvH,MAAAqI,GAAAtI,OAAA,SAAAoL,EAAAqnQ,GACAhC,GAAAxwQ,MAAAmL,EAAA/D,GAAApF,KAAAwwQ,KACS,SAAArnQ,EAAAqnQ,GACT,IAAA3vQ,EAAAsI,EAAApL,OAAA4B,EAAA,EACA,MAAAwJ,EAAAtI,KAAA2vQ,EAAA7wQ,MAEAwJ,EAAApL,OAAA8C,EAAA,IAIA,IAAA4vQ,GAAA,SAAA9wP,EAAA06D,EAAAruE,EAAA0kQ,GACA,IAAA7nQ,EAAAgX,EAAAgqE,EAAAjqE,EAAAjgB,EAAA6hJ,EAAA73I,EAAAgnQ,EAAA54K,EAAA64K,EAMA,IALAv2L,IAAAz0D,eAAAy0D,EAAA0zL,MAAAl3P,IACA8xP,GAAAtuL,GAEAA,KAAAxjE,GACA7K,KAAA,IACA2T,GAAA,kBAAAA,EACA,OAAA3T,EAEA,QAAA4T,EAAAy6D,EAAAz6D,WAAA,IAAAA,EACA,SAEA,GAAAgpP,KAAA8H,EAAA,CACA,GAAA7nQ,EAAAmnQ,GAAA/lL,KAAAtqE,GACA,GAAAkqE,EAAAhhF,EAAA,IACA,OAAA+W,EAAA,CAEA,GADAC,EAAAw6D,EAAAyqD,eAAAj7C,IACAhqE,MAAA8F,WAMA,OAAA3Z,EALA,GAAA6T,EAAAve,KAAAuoF,EAEA,OADA79E,EAAAzG,KAAAsa,GACA7T,OAMA,GAAAquE,EAAAz0D,gBAAA/F,EAAAw6D,EAAAz0D,cAAAk/G,eAAAj7C,KAAAk/K,GAAA1uL,EAAAx6D,MAAAve,KAAAuoF,EAEA,OADA79E,EAAAzG,KAAAsa,GACA7T,MAGW,IAAAnD,EAAA,GAEX,OADAtD,GAAAvH,MAAAgO,EAAAquE,EAAAsgL,qBAAAh7O,IACA3T,EACW,IAAA69E,EAAAhhF,EAAA,KAAAs/P,GAAA0I,uBAEX,OADAtrQ,GAAAvH,MAAAgO,EAAAquE,EAAAw2L,uBAAAhnL,IACA79E,EAGA,GAAAm8P,GAAA2I,OAAAjI,QAAArwP,KAAAmH,IAAA,CAIA,GAHAgxP,EAAAhnQ,EAAAsjQ,GACAl1K,EAAA1d,EACAu2L,EAAA,IAAAhxP,GAAAD,EACA,IAAAC,GAAA,WAAAy6D,EAAA/0D,SAAAlM,cAAA,CACAooI,EAAA8mH,GAAA3oP,IACAhW,EAAA0wE,EAAAhuD,aAAA,OACAskP,EAAAhnQ,EAAAoP,QAAAm3P,GAAA,QAEA71L,EAAAruD,aAAA,KAAA2kP,GAEAA,EAAA,QAAAA,EAAA,MACAhxQ,EAAA6hJ,EAAAzjJ,OACA,MAAA4B,IACA6hJ,EAAA7hJ,GAAAgxQ,EAAAI,GAAAvvH,EAAA7hJ,IAEAo4F,EAAAk4K,GAAAz3P,KAAAmH,IAAAqxP,GAAA32L,EAAA10D,aAAA00D,EACAu2L,EAAApvH,EAAAx4I,KAAA,KAEA,GAAA4nQ,EACA,IAEA,OADArrQ,GAAAvH,MAAAgO,EAAA+rF,EAAA53E,iBAAAywP,IACA5kQ,EACa,MAAAilQ,IACA,QACbtnQ,GACA0wE,EAAA5tD,gBAAA,QAMA,OAAAwkE,GAAAtxE,EAAA5G,QAAA+1P,GAAA,MAAAz0L,EAAAruE,EAAA0kQ,IAEA,SAAAxC,KACA,IAAA1mQ,EAAA,GACA,SAAA2kF,EAAAhkF,EAAAjK,GAIA,OAHAsJ,EAAAjC,KAAA4C,EAAA,KAAAigQ,GAAA8I,oBACA/kL,EAAA3kF,EAAAu5E,SAEAoL,EAAAhkF,EAAA,KAAAjK,EAEA,OAAAiuF,EAEA,SAAAglL,GAAA7yQ,GAEA,OADAA,EAAA2uQ,KAAA,EACA3uQ,EAEA,SAAA8yQ,GAAAxwQ,EAAAuC,GACA,IAAAmzP,EAAAnzP,GAAAvC,EAAAsrF,EAAAoqK,GAAA,IAAA11P,EAAAgf,UAAA,IAAAzc,EAAAyc,YAAAzc,EAAAkuQ,aAAA9C,MAAA3tQ,EAAAywQ,aAAA9C,IACA,GAAAriL,EACA,OAAAA,EAEA,GAAAoqK,EACA,MAAAA,IAAA9sO,YACA,GAAA8sO,IAAAnzP,EACA,SAIA,OAAAvC,EAAA,KAEA,SAAA0wQ,GAAA7sQ,GACA,gBAAAob,GACA,IAAAtb,EAAAsb,EAAAyF,SAAAlM,cACA,gBAAA7U,GAAAsb,EAAApb,UAGA,SAAA8sQ,GAAA9sQ,GACA,gBAAAob,GACA,IAAAtb,EAAAsb,EAAAyF,SAAAlM,cACA,iBAAA7U,GAAA,WAAAA,IAAAsb,EAAApb,UAGA,SAAA+sQ,GAAAlzQ,GACA,OAAA6yQ,GAAA,SAAAM,GAEA,OADAA,KACAN,GAAA,SAAAT,EAAAryP,GACA,IAAAxd,EAAA6wQ,EAAApzQ,EAAA,GAAAoyQ,EAAA3yQ,OAAA0zQ,GAAA9xQ,EAAA+xQ,EAAA3zQ,OACA,MAAA4B,IACA+wQ,EAAA7vQ,EAAA6wQ,EAAA/xQ,MACA+wQ,EAAA7vQ,KAAAwd,EAAAxd,GAAA6vQ,EAAA7vQ,SAMA,SAAAmwQ,GAAA32L,GACA,OAAAA,YAAAsgL,uBAAA2T,IAAAj0L,EA0fA,IAAA16E,MAxfAwoQ,GAAAsI,GAAAtI,QAAA,GACAE,GAAAoI,GAAApI,MAAA,SAAAxoP,GACA,IAAAuJ,EAAAvJ,MAAA+F,eAAA/F,GAAAuJ,gBACA,QAAAA,GAAA,SAAAA,EAAA9D,UAEAqjP,GAAA8H,GAAA9H,YAAA,SAAArxP,GACA,IAAAq6P,EAAA/6P,EAAAU,IAAAsO,eAAAtO,EAAAy2P,GAAAzkP,EAAA1S,EAAAyS,YACA,SAAAwiM,EAAApvL,GACA,IACA,OAAAA,EAAAP,IACS,MAAAmsE,IAET,YAEA,OAAAzxF,IAAAC,IAAA,IAAAD,EAAAgJ,UAAAhJ,EAAAwS,iBAGAvS,GAAAD,EACAu0I,GAAAv0I,EAAAwS,gBACAw/O,IAAAP,GAAAzxP,GACA0S,OAAAuiM,EAAAviM,KACAA,EAAAyvE,iBACAzvE,EAAAyvE,iBAAA,oBACA4vK,OACW,GACFr/O,EAAAuiP,aACTviP,EAAAuiP,YAAA,sBACAlD,QAIAR,GAAAp2O,YAAA,EACAo2O,GAAAxN,sBAAA,EACAwN,GAAA0I,uBAAAd,GAAAv3P,KAAA5B,EAAAi6P,wBACA1I,GAAA/pK,SAAA,EACAgqK,GAAA3hQ,KAAA4oQ,GAAA,SAAA/tQ,EAAA+4E,GACA,UAAAA,EAAAyqD,iBAAAwpI,IAAA1F,GAAA,CACA,IAAA/+K,EAAAxP,EAAAyqD,eAAAxjI,GACA,OAAAuoF,KAAAlkE,WAAA,CAAAkkE,GAAA,KAGAu+K,GAAA5lQ,OAAA6sQ,GAAA,SAAA/tQ,GACA,IAAAswQ,EAAAtwQ,EAAAyX,QAAAo3P,GAAAC,IACA,gBAAAvwP,GACA,OAAAA,EAAAwM,aAAA,QAAAulP,IAGAxJ,GAAA3hQ,KAAA8oQ,IAAApH,GAAAxN,qBAAA,SAAAtjP,EAAAgjE,GACA,UAAAA,EAAAsgL,uBAAA2T,GACA,OAAAj0L,EAAAsgL,qBAAAtjP,IAEO,SAAAA,EAAAgjE,GACP,IAAAx6D,EAAAgyP,EAAA,GAAAlyQ,EAAA,EAAAqM,EAAAquE,EAAAsgL,qBAAAtjP,GACA,SAAAA,EAAA,CACA,MAAAwI,EAAA7T,EAAArM,KACA,IAAAkgB,EAAAD,UACAiyP,EAAAtsQ,KAAAsa,GAGA,OAAAgyP,EAEA,OAAA7lQ,GAEAo8P,GAAA3hQ,KAAA6oQ,MAAAnH,GAAA0I,wBAAA,SAAAn7H,EAAAr7D,GACA,GAAAuuL,GACA,OAAAvuL,EAAAw2L,uBAAAn7H,IAGAozH,GAAA,GACAD,GAAA,GACAV,GAAA2J,mBAAA,EACAjJ,MAAA9qQ,QAAA,IAAA4pF,OAAAkhL,GAAA7/P,KAAA,MACA8/P,MAAA/qQ,QAAA,IAAA4pF,OAAAmhL,GAAA9/P,KAAA,MACA2oQ,EAAA5B,GAAAv3P,KAAA2yI,GAAAnzI,yBACA+wP,GAAA4I,GAAA5B,GAAAv3P,KAAA2yI,GAAAxlJ,UAAA,SAAA/E,EAAAuC,GACA,IAAA4uQ,EAAA,IAAAnxQ,EAAAgf,SAAAhf,EAAAwoB,gBAAAxoB,EAAAoxQ,EAAA7uQ,KAAAwiB,WACA,OAAA/kB,IAAAoxQ,SAAA,IAAAA,EAAApyP,YAAAmyP,EAAApsQ,SAAAosQ,EAAApsQ,SAAAqsQ,GAAApxQ,EAAAoX,yBAAA,GAAApX,EAAAoX,wBAAAg6P,MACO,SAAApxQ,EAAAuC,GACP,GAAAA,EACA,MAAAA,IAAAwiB,WACA,GAAAxiB,IAAAvC,EACA,SAIA,UAEAytQ,GAAAsD,EAAA,SAAA/wQ,EAAAuC,GACA,GAAAvC,IAAAuC,EAEA,OADAulQ,IAAA,EACA,EAEA,IAAA75B,GAAAjuO,EAAAoX,yBAAA7U,EAAA6U,wBACA,OAAA62N,IAGAA,GAAAjuO,EAAAglB,eAAAhlB,MAAAuC,EAAAyiB,eAAAziB,GAAAvC,EAAAoX,wBAAA7U,GAAA,EACA,EAAA0rO,IAAAs5B,GAAA8J,cAAA9uQ,EAAA6U,wBAAApX,KAAAiuO,EACAjuO,IAAAgW,GAAAhW,EAAAglB,gBAAAmoP,IAAAhF,GAAAgF,GAAAntQ,IACA,EAEAuC,IAAAyT,GAAAzT,EAAAyiB,gBAAAmoP,IAAAhF,GAAAgF,GAAA5qQ,GACA,EAEAslQ,GAAAgG,GAAAzuQ,KAAAyoQ,GAAA7nQ,GAAA6tQ,GAAAzuQ,KAAAyoQ,GAAAtlQ,GAAA,EAEA,EAAA0rO,GAAA,MACO,SAAAjuO,EAAAuC,GACP,GAAAvC,IAAAuC,EAEA,OADAulQ,IAAA,EACA,EAEA,IAAApS,EAAA32P,EAAA,EAAAuyQ,EAAAtxQ,EAAA+kB,WAAAqsP,EAAA7uQ,EAAAwiB,WAAAwsP,EAAA,CAAAvxQ,GAAAwxQ,EAAA,CAAAjvQ,GACA,IAAA+uQ,IAAAF,EACA,OAAApxQ,IAAAgW,GAAA,EAAAzT,IAAAyT,EAAA,EAAAs7P,GAAA,EAAAF,EAAA,EAAAvJ,GAAAgG,GAAAzuQ,KAAAyoQ,GAAA7nQ,GAAA6tQ,GAAAzuQ,KAAAyoQ,GAAAtlQ,GAAA,EACS,GAAA+uQ,IAAAF,EACT,OAAAZ,GAAAxwQ,EAAAuC,GAEAmzP,EAAA11P,EACA,MAAA01P,IAAA3wO,WACAwsP,EAAA/lL,QAAAkqK,GAEAA,EAAAnzP,EACA,MAAAmzP,IAAA3wO,WACAysP,EAAAhmL,QAAAkqK,GAEA,MAAA6b,EAAAxyQ,KAAAyyQ,EAAAzyQ,GACAA,IAEA,OAAAA,EAAAyxQ,GAAAe,EAAAxyQ,GAAAyyQ,EAAAzyQ,IAAAwyQ,EAAAxyQ,KAAAouQ,IAAA,EAAAqE,EAAAzyQ,KAAAouQ,GAAA,KAEAn3P,GApHAC,IAsHA45P,GAAApyP,QAAA,SAAAg0P,EAAA1nP,GACA,OAAA8lP,GAAA4B,EAAA,UAAA1nP,IAEA8lP,GAAA6B,gBAAA,SAAAzyP,EAAAwyP,GAKA,IAJAxyP,EAAA+F,eAAA/F,KAAAhJ,IACA8xP,GAAA9oP,GAEAwyP,IAAAt5P,QAAAk2P,GAAA,UACA9G,GAAAmK,iBAAA1J,MAAAE,QAAAtwP,KAAA65P,OAAAxJ,QAAArwP,KAAA65P,IACA,IACA,IAAAloQ,EAAAkU,GAAAre,KAAA6f,EAAAwyP,GACA,GAAAloQ,GAAAg+P,GAAA2J,mBAAAjyP,EAAAhJ,UAAA,KAAAgJ,EAAAhJ,SAAA+I,SACA,OAAAzV,EAES,MAAAhK,KAGT,OAAAswQ,GAAA4B,EAAAx7P,GAAA,MAAAgJ,IAAA9hB,OAAA,GAEA0yQ,GAAA9qQ,SAAA,SAAA00E,EAAAx6D,GAIA,OAHAw6D,EAAAz0D,eAAAy0D,KAAAxjE,IACA8xP,GAAAtuL,GAEA0uL,GAAA1uL,EAAAx6D,IAEA4wP,GAAA56O,KAAA,SAAAhW,EAAAtb,IACAsb,EAAA+F,eAAA/F,KAAAhJ,IACA8xP,GAAA9oP,GAEA,IAAAvhB,EAAA8pQ,GAAAmK,WAAAhuQ,EAAA6U,eAAAhM,EAAA9O,GAAA87P,GAAAp6P,KAAAooQ,GAAAmK,WAAAhuQ,EAAA6U,eAAA9a,EAAAuhB,EAAAtb,GAAAqkQ,SAAA5mQ,EACA,YAAAA,IAAAoL,IAAA+6P,GAAAp2O,aAAA62O,GAAA/oP,EAAAwM,aAAA9nB,IAAA6I,EAAAyS,EAAA2yP,iBAAAjuQ,KAAA6I,EAAAqlQ,UAAArlQ,EAAAlP,MAAA,MAEAuyQ,GAAA5sQ,MAAA,SAAAhF,GACA,UAAAC,MAAA,0CAAAD,IAEA4xQ,GAAAiC,WAAA,SAAA1mQ,GACA,IAAA6T,EAAA8yP,EAAA,GAAA9xQ,EAAA,EAAAlB,EAAA,EAIA,GAHA+oQ,IAAAP,GAAAyK,iBACAnK,IAAAN,GAAA0K,YAAA7mQ,EAAA5G,MAAA,GACA4G,EAAA9E,KAAAmnQ,IACA3F,GAAA,CACA,MAAA7oP,EAAA7T,EAAArM,KACAkgB,IAAA7T,EAAArM,KACAkB,EAAA8xQ,EAAAptQ,KAAA5F,IAGA,MAAAkB,IACAmL,EAAAwgF,OAAAmmL,EAAA9xQ,GAAA,GAIA,OADA4nQ,GAAA,KACAz8P,GAEAosE,GAAAq4L,GAAAr4L,QAAA,SAAAv4D,GACA,IAAAvI,EAAAnN,EAAA,GAAAxK,EAAA,EAAAigB,EAAAC,EAAAD,SACA,GAAAA,GAIO,OAAAA,GAAA,IAAAA,GAAA,KAAAA,EAAA,CACP,qBAAAC,EAAAiL,YACA,OAAAjL,EAAAiL,YAEA,IAAAjL,IAAAgK,WAAsChK,EAAMA,IAAA2J,YAC5Crf,GAAAiuE,GAAAv4D,QAGO,OAAAD,GAAA,IAAAA,EACP,OAAAC,EAAAkyB,eAZA,MAAAz6B,EAAAuI,EAAAlgB,KACAwK,GAAAiuE,GAAA9gE,GAaA,OAAAnN,GAEAi+P,GAAAqI,GAAAlzM,UAAA,CACA2zM,YAAA,GACA4B,aAAA3B,GACAtoQ,MAAAumQ,GACAmD,WAAA,GACA9rQ,KAAA,GACAkkC,SAAA,CACAq1N,IAAA,CACA12L,IAAA,aACAh2B,OAAA,GAEAy/N,IAAA,CAAczpM,IAAA,cACd0pM,IAAA,CACA1pM,IAAA,kBACAh2B,OAAA,GAEA2/N,IAAA,CAAc3pM,IAAA,oBAEd4pM,UAAA,CACA1D,KAAA,SAAA3mQ,GAMA,OALAA,EAAA,GAAAA,EAAA,GAAAkQ,QAAAo3P,GAAAC,IACAvnQ,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,QAAAkQ,QAAAo3P,GAAAC,IACA,OAAAvnQ,EAAA,KACAA,EAAA,OAAAA,EAAA,QAEAA,EAAAzD,MAAA,MAEAsqQ,MAAA,SAAA7mQ,GAWA,OAVAA,EAAA,GAAAA,EAAA,GAAAuQ,cACA,QAAAvQ,EAAA,GAAAzD,MAAA,MACAyD,EAAA,IACA4nQ,GAAA5sQ,MAAAgF,EAAA,IAEAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,mBAAAA,EAAA,YAAAA,EAAA,KACAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,YAAAA,EAAA,KACWA,EAAA,IACX4nQ,GAAA5sQ,MAAAgF,EAAA,IAEAA,GAEA4mQ,OAAA,SAAA5mQ,GACA,IAAAsqQ,EAAAC,GAAAvqQ,EAAA,IAAAA,EAAA,GACA,OAAAumQ,GAAAM,MAAAl3P,KAAA3P,EAAA,IACA,MAEAA,EAAA,GACAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,OACWuqQ,GAAAlE,GAAA12P,KAAA46P,KAAAD,EAAA7K,GAAA8K,GAAA,MAAAD,EAAAC,EAAAhzQ,QAAA,IAAAgzQ,EAAAr1Q,OAAAo1Q,GAAAC,EAAAr1Q,UACX8K,EAAA,GAAAA,EAAA,GAAAzD,MAAA,EAAA+tQ,GACAtqQ,EAAA,GAAAuqQ,EAAAhuQ,MAAA,EAAA+tQ,IAEAtqQ,EAAAzD,MAAA,QAGA5C,OAAA,CACA+sQ,IAAA,SAAA8D,GACA,IAAA/tP,EAAA+tP,EAAAt6P,QAAAo3P,GAAAC,IAAAh3P,cACA,YAAAi6P,EAAA,WACA,UACW,SAAAxzP,GACX,OAAAA,EAAAyF,UAAAzF,EAAAyF,SAAAlM,gBAAAkM,IAGAgqP,MAAA,SAAA55H,GACA,IAAA5tB,EAAAmmJ,GAAAv4H,EAAA,KACA,OAAA5tB,MAAA,IAAAngC,OAAA,MAAAgnL,GAAA,IAAAj5H,EAAA,IAAAi5H,GAAA,SAAAV,GAAAv4H,EAAA,SAAA71H,GACA,OAAAioG,EAAAtvG,KAAA,kBAAAqH,EAAA61H,WAAA71H,EAAA61H,kBAAA71H,EAAAwM,eAAAiiP,IAAAzuP,EAAAwM,aAAA,iBAGAmjP,KAAA,SAAAjrQ,EAAA+uQ,EAAAC,GACA,gBAAA1zP,GACA,IAAA3T,EAAAukQ,GAAA56O,KAAAhW,EAAAtb,GACA,aAAA2H,EACA,OAAAonQ,GAEAA,IAGApnQ,GAAA,GACA,MAAAonQ,EAAApnQ,IAAAqnQ,EAAA,OAAAD,EAAApnQ,IAAAqnQ,EAAA,OAAAD,EAAAC,GAAA,IAAArnQ,EAAA9L,QAAAmzQ,GAAA,OAAAD,EAAAC,GAAArnQ,EAAA9L,QAAAmzQ,IAAA,SAAAD,EAAAC,GAAArnQ,EAAA9G,OAAAmuQ,EAAAx1Q,UAAAw1Q,EAAA,OAAAD,GAAA,IAAApnQ,EAAA,KAAA9L,QAAAmzQ,IAAA,SAAAD,IAAApnQ,IAAAqnQ,GAAArnQ,EAAA9G,MAAA,EAAAmuQ,EAAAx1Q,OAAA,KAAAw1Q,EAAA,QAGA7D,MAAA,SAAAjrQ,EAAA+uQ,EAAA/B,EAAAn+N,EAAAhsC,GACA,IAAAu2C,EAAA,QAAAp5C,EAAAW,MAAA,KAAAyuO,EAAA,SAAApvO,EAAAW,OAAA,GAAAquQ,EAAA,YAAAD,EACA,WAAAlgO,GAAA,IAAAhsC,EAAA,SAAAuY,GACA,QAAAA,EAAA8F,YACW,SAAA9F,EAAAw6D,EAAAq5L,GACX,IAAAvnL,EAAAwnL,EAAAr8P,EAAA40E,EAAAu8G,EAAAnrL,EAAAgsD,EAAAzrB,IAAAg2L,EAAA,gCAAAvqN,EAAAzJ,EAAA8F,WAAAphB,EAAAkvQ,GAAA5zP,EAAAyF,SAAAlM,cAAAw6P,GAAAF,IAAAD,EACA,GAAAnqP,EAAA,CACA,GAAAu0B,EAAA,CACA,MAAAyrB,EAAA,CACAhyD,EAAAuI,EACA,MAAAvI,IAAAgyD,GACA,GAAAmqM,EAAAn8P,EAAAgO,SAAAlM,gBAAA7U,EAAA,IAAA+S,EAAAsI,SACA,SAGAtC,EAAAgsD,EAAA,SAAA7kE,IAAA6Y,GAAA,cAEA,SAGA,GADAA,EAAA,CAAAu2N,EAAAvqN,EAAAO,WAAAP,EAAAo1K,WACAm1C,GAAA+/B,EAAA,CACAD,EAAArqP,EAAA2jP,MAAA3jP,EAAA2jP,IAAA,IACA9gL,EAAAwnL,EAAAlvQ,IAAA,GACAgkM,EAAAt8G,EAAA,KAAA6hL,IAAA7hL,EAAA,GACAD,EAAAC,EAAA,KAAA6hL,IAAA7hL,EAAA,GACA70E,EAAAmxL,GAAAn/K,EAAApS,WAAAuxL,GACA,MAAAnxL,IAAAmxL,GAAAnxL,KAAAgyD,KAAA4iB,EAAAu8G,EAAA,IAAAnrL,EAAA+uE,MACA,OAAA/0E,EAAAsI,YAAAssE,GAAA50E,IAAAuI,EAAA,CACA8zP,EAAAlvQ,GAAA,CACAupQ,GACAvlE,EACAv8G,GAEA,YAGe,GAAA0nL,IAAAznL,GAAAtsE,EAAAotP,MAAAptP,EAAAotP,IAAA,KAAoExoQ,KAAA0nF,EAAA,KAAA6hL,GACnF9hL,EAAAC,EAAA,QAEA,MAAA70E,IAAAmxL,GAAAnxL,KAAAgyD,KAAA4iB,EAAAu8G,EAAA,IAAAnrL,EAAA+uE,MACA,IAAAonL,EAAAn8P,EAAAgO,SAAAlM,gBAAA7U,EAAA,IAAA+S,EAAAsI,aAAAssE,IACA0nL,KACAt8P,EAAA21P,MAAA31P,EAAA21P,IAAA,KAA2DxoQ,GAAA,CAC3DupQ,GACA9hL,IAGA50E,IAAAuI,GACA,MAMA,OADAqsE,GAAA5kF,EACA4kF,IAAA54C,GAAA44C,EAAA54C,IAAA,GAAA44C,EAAA54C,GAAA,KAIAm8N,OAAA,SAAAoE,EAAApC,GACA,IAAA7zQ,EAAAU,EAAA8pQ,GAAAyG,QAAAgF,IAAAzL,GAAA0L,WAAAD,EAAAz6P,gBAAAq3P,GAAA5sQ,MAAA,uBAAAgwQ,GACA,OAAAv1Q,EAAA2uQ,IACA3uQ,EAAAmzQ,GAEAnzQ,EAAAP,OAAA,GACAH,EAAA,CACAi2Q,EACAA,EACA,GACApC,GAEArJ,GAAA0L,WAAA/zQ,eAAA8zQ,EAAAz6P,eAAA+3P,GAAA,SAAAT,EAAAryP,GACA,IAAAkuE,EAAAwnL,EAAAz1Q,EAAAoyQ,EAAAe,GAAA9xQ,EAAAo0Q,EAAAh2Q,OACA,MAAA4B,IACA4sF,EAAAkiL,GAAAzuQ,KAAA0wQ,EAAAqD,EAAAp0Q,IACA+wQ,EAAAnkL,KAAAluE,EAAAkuE,GAAAwnL,EAAAp0Q,MAEa,SAAAkgB,GACb,OAAAvhB,EAAAuhB,EAAA,EAAAjiB,KAGAU,IAGAuwQ,QAAA,CACAlwQ,IAAAwyQ,GAAA,SAAAxxP,GACA,IAAA/Q,EAAA,GAAA5C,EAAA,GAAAgoQ,EAAAzL,GAAA5oP,EAAA5G,QAAA+1P,GAAA,OACA,OAAAkF,EAAA/G,IAAAkE,GAAA,SAAAT,EAAAryP,EAAAg8D,EAAAq5L,GACA,IAAA7zP,EAAAo0P,EAAAD,EAAAtD,EAAA,KAAAgD,EAAA,IAAA/zQ,EAAA+wQ,EAAA3yQ,OACA,MAAA4B,KACAkgB,EAAAo0P,EAAAt0Q,MACA+wQ,EAAA/wQ,KAAA0e,EAAA1e,GAAAkgB,MAGW,SAAAA,EAAAw6D,EAAAq5L,GAGX,OAFA9kQ,EAAA,GAAAiR,EACAm0P,EAAAplQ,EAAA,KAAA8kQ,EAAA1nQ,IACAA,EAAAqgF,SAGAjkF,IAAA+oQ,GAAA,SAAAxxP,GACA,gBAAAE,GACA,OAAA4wP,GAAA9wP,EAAAE,GAAA9hB,OAAA,KAGA4H,SAAAwrQ,GAAA,SAAA35P,GAEA,OADAA,IAAAuB,QAAAo3P,GAAAC,IACA,SAAAvwP,GACA,OAAAA,EAAAiL,aAAAjL,EAAAy9H,WAAAllE,GAAAv4D,IAAAzf,QAAAoX,IAAA,KAGA08P,KAAA/C,GAAA,SAAA+C,GAKA,OAJA/E,GAAA32P,KAAA07P,GAAA,KACAzD,GAAA5sQ,MAAA,qBAAAqwQ,GAEAA,IAAAn7P,QAAAo3P,GAAAC,IAAAh3P,cACA,SAAAyG,GACA,IAAAs0P,EACA,GACA,GAAAA,EAAAvL,GAAA/oP,EAAAq0P,KAAAr0P,EAAAwM,aAAA,aAAAxM,EAAAwM,aAAA,QAEA,OADA8nP,IAAA/6P,cACA+6P,IAAAD,GAAA,IAAAC,EAAA/zQ,QAAA8zQ,EAAA,YAEar0P,IAAA8F,aAAA,IAAA9F,EAAAD,UACb,YAGAzW,OAAA,SAAA0W,GACA,IAAAu0P,EAAA/2Q,EAAA8gB,OAAA0zJ,UAAAx0K,EAAA8gB,OAAA0zJ,SAAAuiG,KACA,OAAAA,KAAAhvQ,MAAA,KAAAya,EAAAve,IAEA+0C,KAAA,SAAAx2B,GACA,OAAAA,IAAAsrI,IAEApoI,MAAA,SAAAlD,GACA,OAAAA,IAAAhJ,GAAAkyB,iBAAAlyB,GAAAiyB,UAAAjyB,GAAAiyB,gBAAAjpB,EAAApb,MAAAob,EAAA47K,OAAA57K,EAAAw0P,WAEAjrI,QAAA,SAAAvpH,GACA,WAAAA,EAAAskE,UAEAA,SAAA,SAAAtkE,GACA,WAAAA,EAAAskE,UAEAtf,QAAA,SAAAhlD,GACA,IAAAyF,EAAAzF,EAAAyF,SAAAlM,cACA,gBAAAkM,KAAAzF,EAAAglD,SAAA,WAAAv/C,KAAAzF,EAAAqwC,UAEAA,SAAA,SAAArwC,GAIA,OAHAA,EAAA8F,YACA9F,EAAA8F,WAAA2uP,eAEA,IAAAz0P,EAAAqwC,UAEArlC,MAAA,SAAAhL,GACA,IAAAA,IAAAgK,WAAsChK,EAAMA,IAAA2J,YAC5C,GAAA3J,EAAAD,SAAA,EACA,SAGA,UAEA0J,OAAA,SAAAzJ,GACA,OAAAuoP,GAAAyG,QAAAhkP,MAAAhL,IAEA+2H,OAAA,SAAA/2H,GACA,OAAAiwP,GAAAt3P,KAAAqH,EAAAyF,WAEA1W,MAAA,SAAAiR,GACA,OAAAgwP,GAAAr3P,KAAAqH,EAAAyF,WAEAmgE,OAAA,SAAA5lE,GACA,IAAAtb,EAAAsb,EAAAyF,SAAAlM,cACA,gBAAA7U,GAAA,WAAAsb,EAAApb,MAAA,WAAAF,GAEAiT,KAAA,SAAAqI,GACA,IAAAgW,EACA,gBAAAhW,EAAAyF,SAAAlM,eAAA,SAAAyG,EAAApb,OAAA,OAAAoxB,EAAAhW,EAAAwM,aAAA,mBAAAwJ,EAAAzc,gBAEAk6B,MAAAk+N,GAAA,WACA,YAEAlqQ,KAAAkqQ,GAAA,SAAAE,EAAA3zQ,GACA,OAAAA,EAAA,KAEAmD,GAAAswQ,GAAA,SAAAE,EAAA3zQ,EAAA0zQ,GACA,OAAAA,EAAA,EAAAA,EAAA1zQ,EAAA0zQ,KAEA8C,KAAA/C,GAAA,SAAAE,EAAA3zQ,GAEA,IADA,IAAA4B,EAAA,EACgBA,EAAA5B,EAAY4B,GAAA,EAC5B+xQ,EAAAnsQ,KAAA5F,GAEA,OAAA+xQ,IAEA8C,IAAAhD,GAAA,SAAAE,EAAA3zQ,GAEA,IADA,IAAA4B,EAAA,EACgBA,EAAA5B,EAAY4B,GAAA,EAC5B+xQ,EAAAnsQ,KAAA5F,GAEA,OAAA+xQ,IAEA+C,GAAAjD,GAAA,SAAAE,EAAA3zQ,EAAA0zQ,GAEA,IADA,IAAA9xQ,EAAA8xQ,EAAA,EAAAA,EAAA1zQ,EAAA0zQ,IACgB9xQ,GAAA,GAChB+xQ,EAAAnsQ,KAAA5F,GAEA,OAAA+xQ,IAEAgD,GAAAlD,GAAA,SAAAE,EAAA3zQ,EAAA0zQ,GAEA,IADA,IAAA9xQ,EAAA8xQ,EAAA,EAAAA,EAAA1zQ,EAAA0zQ,IACgB9xQ,EAAA5B,GAChB2zQ,EAAAnsQ,KAAA5F,GAEA,OAAA+xQ,MAIAtJ,GAAAyG,QAAA8F,IAAAvM,GAAAyG,QAAA3tQ,GACA,CACA0zQ,OAAA,EACAl9H,UAAA,EACA9tB,MAAA,EACAirJ,UAAA,EACA3oJ,OAAA,GAEAk8I,GAAAyG,QAAAlvQ,IAAA2xQ,GAAA3xQ,IAEA,IAAAA,KAAA,CACAmyF,QAAA,EACAmzE,OAAA,GAEAmjG,GAAAyG,QAAAlvQ,IAAA4xQ,GAAA5xQ,IAEA,SAAAm0Q,MA+CA,SAAA/C,GAAA+D,GAEA,IADA,IAAAn1Q,EAAA,EAAAuF,EAAA4vQ,EAAA/2Q,OAAA4hB,EAAA,GACYhgB,EAAAuF,EAASvF,IACrBggB,GAAAm1P,EAAAn1Q,GAAAzB,MAEA,OAAAyhB,EAEA,SAAAo1P,GAAAf,EAAAgB,EAAAhqQ,GACA,IAAAs+D,EAAA0rM,EAAA1rM,IAAA2rM,EAAAjqQ,GAAA,eAAAs+D,EAAA4rM,EAAA/gQ,KACA,OAAA6gQ,EAAA1hO,MAAA,SAAAzzB,EAAAw6D,EAAAq5L,GACA,MAAA7zP,IAAAypD,GACA,OAAAzpD,EAAAD,UAAAq1P,EACA,OAAAjB,EAAAn0P,EAAAw6D,EAAAq5L,IAGO,SAAA7zP,EAAAw6D,EAAAq5L,GACP,IAAAyB,EAAAxB,EAAAyB,EAAA,CACApH,GACAkH,GAEA,GAAAxB,GACA,MAAA7zP,IAAAypD,GACA,QAAAzpD,EAAAD,UAAAq1P,IACAjB,EAAAn0P,EAAAw6D,EAAAq5L,GACA,cAKA,MAAA7zP,IAAAypD,GACA,OAAAzpD,EAAAD,UAAAq1P,EAAA,CAEA,GADAtB,EAAA9zP,EAAAotP,MAAAptP,EAAAotP,IAAA,KACAkI,EAAAxB,EAAArqM,KAAA6rM,EAAA,KAAAnH,IAAAmH,EAAA,KAAAD,EACA,OAAAE,EAAA,GAAAD,EAAA,GAGA,GADAxB,EAAArqM,GAAA8rM,EACAA,EAAA,GAAApB,EAAAn0P,EAAAw6D,EAAAq5L,GACA,WAQA,SAAA2B,GAAAC,GACA,OAAAA,EAAAv3Q,OAAA,WAAA8hB,EAAAw6D,EAAAq5L,GACA,IAAA/zQ,EAAA21Q,EAAAv3Q,OACA,MAAA4B,IACA,IAAA21Q,EAAA31Q,GAAAkgB,EAAAw6D,EAAAq5L,GACA,SAGA,UACO4B,EAAA,GAEP,SAAAC,GAAA51P,EAAA61P,EAAAxpQ,GAEA,IADA,IAAArM,EAAA,EAAAuF,EAAAswQ,EAAAz3Q,OACY4B,EAAAuF,EAASvF,IACrB8wQ,GAAA9wP,EAAA61P,EAAA71Q,GAAAqM,GAEA,OAAAA,EAEA,SAAAypQ,GAAAxB,EAAA9xQ,EAAAK,EAAA63E,EAAAq5L,GAEA,IADA,IAAA7zP,EAAA61P,EAAA,GAAA/1Q,EAAA,EAAAuF,EAAA+uQ,EAAAl2Q,OAAA43Q,EAAA,MAAAxzQ,EACYxC,EAAAuF,EAASvF,KACrBkgB,EAAAo0P,EAAAt0Q,MACA6C,MAAAqd,EAAAw6D,EAAAq5L,KACAgC,EAAAnwQ,KAAAsa,GACA81P,GACAxzQ,EAAAoD,KAAA5F,KAKA,OAAA+1Q,EAEA,SAAAE,GAAA1C,EAAAvzP,EAAAq0P,EAAA6B,EAAAC,EAAAC,GAOA,OANAF,MAAA5I,MACA4I,EAAAD,GAAAC,IAEAC,MAAA7I,MACA6I,EAAAF,GAAAE,EAAAC,IAEA5E,GAAA,SAAAT,EAAA1kQ,EAAAquE,EAAAq5L,GACA,IAAAnpI,EAAA5qI,EAAAkgB,EAAAm2P,EAAA,GAAAC,EAAA,GAAAC,EAAAlqQ,EAAAjO,OAAAo4Q,EAAAzF,GAAA6E,GAAA51P,GAAA,IAAA06D,EAAAz6D,SAAA,CAAAy6D,KAAA,IAAA+7L,GAAAlD,IAAAxC,GAAA/wP,EAAAw2P,EAAAV,GAAAU,EAAAH,EAAA9C,EAAA74L,EAAAq5L,GAAA2C,EAAArC,EAAA8B,IAAApF,EAAAwC,EAAAgD,GAAAL,GAAA,GAAA7pQ,EAAAoqQ,EAIA,GAHApC,GACAA,EAAAoC,EAAAC,EAAAh8L,EAAAq5L,GAEAmC,EAAA,CACAtrI,EAAAkrI,GAAAY,EAAAJ,GACAJ,EAAAtrI,EAAA,GAAAlwD,EAAAq5L,GACA/zQ,EAAA4qI,EAAAxsI,OACA,MAAA4B,KACAkgB,EAAA0qH,EAAA5qI,MACA02Q,EAAAJ,EAAAt2Q,MAAAy2Q,EAAAH,EAAAt2Q,IAAAkgB,IAIA,GAAA6wP,GACA,GAAAoF,GAAA5C,EAAA,CACA,GAAA4C,EAAA,CACAvrI,EAAA,GACA5qI,EAAA02Q,EAAAt4Q,OACA,MAAA4B,KACAkgB,EAAAw2P,EAAA12Q,KACA4qI,EAAAhlI,KAAA6wQ,EAAAz2Q,GAAAkgB,GAGAi2P,EAAA,KAAAO,EAAA,GAAA9rI,EAAAmpI,GAEA/zQ,EAAA02Q,EAAAt4Q,OACA,MAAA4B,KACAkgB,EAAAw2P,EAAA12Q,MAAA4qI,EAAAurI,EAAArH,GAAAzuQ,KAAA0wQ,EAAA7wP,GAAAm2P,EAAAr2Q,KAAA,IACA+wQ,EAAAnmI,KAAAv+H,EAAAu+H,GAAA1qH,UAKAw2P,EAAAZ,GAAAY,IAAArqQ,EAAAqqQ,EAAA7pL,OAAA0pL,EAAAG,EAAAt4Q,QAAAs4Q,GACAP,EACAA,EAAA,KAAA9pQ,EAAAqqQ,EAAA3C,GAEAnuQ,GAAAvH,MAAAgO,EAAAqqQ,KAKA,SAAAC,GAAAxB,GAQA,IAPA,IAAAyB,EAAAvC,EAAAnzQ,EAAAqE,EAAA4vQ,EAAA/2Q,OAAAy4Q,EAAApO,GAAAz9N,SAAAmqO,EAAA,GAAArwQ,MAAAgyQ,EAAAD,GAAApO,GAAAz9N,SAAA,KAAAhrC,EAAA62Q,EAAA,IAAAE,EAAA3B,GAAA,SAAAl1P,GACA,OAAAA,IAAA02P,GACSE,GAAA,GAAAE,EAAA5B,GAAA,SAAAl1P,GACT,OAAA4uP,GAAAzuQ,KAAAu2Q,EAAA12P,IAAA,GACS42P,GAAA,GAAAnB,EAAA,UAAAz1P,EAAAw6D,EAAAq5L,GACT,OAAA8C,IAAA9C,GAAAr5L,IAAAmuL,OAAA+N,EAAAl8L,GAAAz6D,SAAA82P,EAAA72P,EAAAw6D,EAAAq5L,GAAAiD,EAAA92P,EAAAw6D,EAAAq5L,MAEY/zQ,EAAAuF,EAASvF,IACrB,GAAAq0Q,EAAA5L,GAAAz9N,SAAAmqO,EAAAn1Q,GAAA8E,MACA6wQ,EAAA,CAAAP,GAAAM,GAAAC,GAAAtB,QACS,CAET,GADAA,EAAA5L,GAAA5lQ,OAAAsyQ,EAAAn1Q,GAAA8E,MAAAzG,MAAA,KAAA82Q,EAAAn1Q,GAAA0e,SACA21P,EAAA/G,IAAA,CAEA,IADApsQ,IAAAlB,EACkBkB,EAAAqE,EAASrE,IAC3B,GAAAunQ,GAAAz9N,SAAAmqO,EAAAj0Q,GAAA4D,MACA,MAGA,OAAAmxQ,GAAAj2Q,EAAA,GAAA01Q,GAAAC,GAAA31Q,EAAA,GAAAoxQ,GAAA+D,EAAA1vQ,MAAA,EAAAzF,EAAA,GAAAjB,OAAA,CAAoHR,MAAA,MAAA42Q,EAAAn1Q,EAAA,GAAA8E,KAAA,UAA+CsU,QAAA+1P,GAAA,MAAAkF,EAAAr0Q,EAAAkB,GAAAy1Q,GAAAxB,EAAA1vQ,MAAAzF,EAAAkB,MAAAqE,GAAAoxQ,GAAAxB,IAAA1vQ,MAAAvE,MAAAqE,GAAA6rQ,GAAA+D,IAEnKQ,EAAA/vQ,KAAAyuQ,GAGA,OAAAqB,GAAAC,GAEA,SAAAsB,GAAAC,EAAAC,GACA,IAAAC,EAAAD,EAAA/4Q,OAAA,EAAAi5Q,EAAAH,EAAA94Q,OAAA,EAAAk5Q,EAAA,SAAAvG,EAAAr2L,EAAAq5L,EAAA1nQ,EAAAkrQ,GACA,IAAAr3P,EAAAhf,EAAAmzQ,EAAAmD,EAAA,EAAAx3Q,EAAA,IAAAs0Q,EAAAvD,GAAA,GAAA0G,EAAA,GAAAC,EAAA7O,GAAA2N,EAAAzF,GAAAsG,GAAA5O,GAAA3hQ,KAAA8oQ,IAAA,IAAA2H,GAAAI,EAAAtJ,IAAA,MAAAqJ,EAAA,EAAA1pP,KAAAD,UAAA,GAAAxoB,EAAAixQ,EAAAp4Q,OAIA,IAHAm5Q,IACA1O,GAAAnuL,IAAAxjE,IAAAwjE,GAEgB16E,IAAAuF,GAAA,OAAA2a,EAAAs2P,EAAAx2Q,IAAwCA,IAAA,CACxD,GAAAq3Q,GAAAn3P,EAAA,CACAhf,EAAA,EACA,MAAAmzQ,EAAA6C,EAAAh2Q,KACA,GAAAmzQ,EAAAn0P,EAAAw6D,EAAAq5L,GAAA,CACA1nQ,EAAAzG,KAAAsa,GACA,MAGAq3P,IACAlJ,GAAAsJ,GAGAP,KACAl3P,GAAAm0P,GAAAn0P,IACAs3P,IAEAzG,GACAuD,EAAA1uQ,KAAAsa,IAKA,GADAs3P,GAAAx3Q,EACAo3Q,GAAAp3Q,IAAAw3Q,EAAA,CACAt2Q,EAAA,EACA,MAAAmzQ,EAAA8C,EAAAj2Q,KACAmzQ,EAAAC,EAAAmD,EAAA/8L,EAAAq5L,GAEA,GAAAhD,EAAA,CACA,GAAAyG,EAAA,EACA,MAAAx3Q,IACAs0Q,EAAAt0Q,IAAAy3Q,EAAAz3Q,KACAy3Q,EAAAz3Q,GAAA0sF,GAAArsF,KAAAgM,IAIAorQ,EAAA3B,GAAA2B,GAEA7xQ,GAAAvH,MAAAgO,EAAAorQ,GACAF,IAAAxG,GAAA0G,EAAAr5Q,OAAA,GAAAo5Q,EAAAL,EAAA/4Q,OAAA,GACA0yQ,GAAAiC,WAAA1mQ,GAOA,OAJAkrQ,IACAlJ,GAAAsJ,EACA9O,GAAA6O,GAEApD,GAEA,OAAA8C,EAAA5F,GAAA8F,KA/PAnD,GAAAh0Q,UAAAsoQ,GAAAmP,QAAAnP,GAAAyG,QACAzG,GAAA0L,WAAA,IAAAA,GACAxL,GAAAmI,GAAAnI,SAAA,SAAA3oP,EAAA63P,GACA,IAAAzD,EAAAlrQ,EAAAisQ,EAAArwQ,EAAAgzQ,EAAAj2H,EAAAk2H,EAAAptQ,EAAA6jQ,GAAAxuP,EAAA,KACA,GAAArV,EACA,OAAAktQ,EAAA,EAAAltQ,EAAAlF,MAAA,GAEAqyQ,EAAA93P,EACA6hI,EAAA,GACAk2H,EAAAtP,GAAA8K,UACA,MAAAuE,EAAA,CAgBA,IAAAhzQ,KAfAsvQ,KAAAlrQ,EAAAkmQ,GAAA9kL,KAAAwtL,MACA5uQ,IACA4uQ,IAAAryQ,MAAAyD,EAAA,GAAA9K,SAAA05Q,GAEAj2H,EAAAj8I,KAAAuvQ,EAAA,KAEAf,GAAA,GACAlrQ,EAAAmmQ,GAAA/kL,KAAAwtL,MACA1D,EAAAlrQ,EAAAk4E,QACA+zL,EAAAvvQ,KAAA,CACArH,MAAA61Q,EACAtvQ,KAAAoE,EAAA,GAAAkQ,QAAA+1P,GAAA,OAEA2I,IAAAryQ,MAAA2uQ,EAAAh2Q,SAEAqqQ,GAAA5lQ,OACA4lQ,GAAA5lQ,OAAAzC,eAAA0E,OAEAoE,EAAAumQ,GAAA3qQ,GAAAwlF,KAAAwtL,KAAAC,EAAAjzQ,MAAAoE,EAAA6uQ,EAAAjzQ,GAAAoE,MACAkrQ,EAAAlrQ,EAAAk4E,QACA+zL,EAAAvvQ,KAAA,CACArH,MAAA61Q,EACAtvQ,OACA4Z,QAAAxV,IAEA4uQ,IAAAryQ,MAAA2uQ,EAAAh2Q,UAGA,IAAAg2Q,EACA,MAGA,OAAAyD,EAAAC,EAAA15Q,OAAA05Q,EAAAhH,GAAA5sQ,MAAA8b,GAAAwuP,GAAAxuP,EAAA6hI,GAAAp8I,MAAA,IAsNAmjQ,GAAAkI,GAAAlI,QAAA,SAAA5oP,EAAA9W,GACA,IAAAlJ,EAAAm3Q,EAAA,GAAAD,EAAA,GAAAvsQ,EAAA8jQ,GAAAzuP,EAAA,KACA,IAAArV,EAAA,CACAzB,IACAA,EAAAy/P,GAAA3oP,IAEAhgB,EAAAkJ,EAAA9K,OACA,MAAA4B,IACA2K,EAAAgsQ,GAAAztQ,EAAAlJ,IACA2K,EAAA2iQ,IACA6J,EAAAvxQ,KAAA+E,GAEAusQ,EAAAtxQ,KAAA+E,GAGAA,EAAA8jQ,GAAAzuP,EAAAi3P,GAAAC,EAAAC,IACAxsQ,EAAAqV,WAEA,OAAArV,GAEA2mF,GAAAw/K,GAAAx/K,OAAA,SAAAtxE,EAAA06D,EAAAruE,EAAA0kQ,GACA,IAAA/wQ,EAAAm1Q,EAAAvsB,EAAA9jP,EAAAgC,EAAAkxQ,EAAA,oBAAAh4P,KAAA9W,GAAA6nQ,GAAApI,GAAA3oP,EAAAg4P,EAAAh4P,aAEA,GADA3T,KAAA,GACA,IAAAnD,EAAA9K,OAAA,CAEA,GADA+2Q,EAAAjsQ,EAAA,GAAAA,EAAA,GAAAzD,MAAA,GACA0vQ,EAAA/2Q,OAAA,WAAAwqP,EAAAusB,EAAA,IAAArwQ,MAAA0jQ,GAAA/pK,SAAA,IAAA/jB,EAAAz6D,UAAAgpP,IAAAR,GAAAz9N,SAAAmqO,EAAA,GAAArwQ,MAAA,CAEA,GADA41E,GAAA+tL,GAAA3hQ,KAAA4oQ,GAAA9mB,EAAAlqO,QAAA,GAAAtF,QAAAo3P,GAAAC,IAAA/1L,IAAA,QACAA,EACA,OAAAruE,EACW2rQ,IACXt9L,IAAA10D,YAEAhG,IAAAva,MAAA0vQ,EAAA/zL,QAAA7iF,MAAAH,QAEA4B,EAAAyvQ,GAAAQ,aAAAp3P,KAAAmH,GAAA,EAAAm1P,EAAA/2Q,OACA,MAAA4B,IAAA,CAEA,GADA4oP,EAAAusB,EAAAn1Q,GACAyoQ,GAAAz9N,SAAAlmC,EAAA8jP,EAAA9jP,MACA,MAEA,IAAAgC,EAAA2hQ,GAAA3hQ,KAAAhC,MACAisQ,EAAAjqQ,EAAA8hP,EAAAlqO,QAAA,GAAAtF,QAAAo3P,GAAAC,IAAAH,GAAAz3P,KAAAs8P,EAAA,GAAArwQ,OAAAusQ,GAAA32L,EAAA10D,aAAA00D,IAAA,CAGA,GAFAy6L,EAAAtoL,OAAA7sF,EAAA,GACAggB,EAAA+wP,EAAA3yQ,QAAAgzQ,GAAA+D,IACAn1P,EAEA,OADApa,GAAAvH,MAAAgO,EAAA0kQ,GACA1kQ,EAEA,QAMA,OADA2rQ,GAAApP,GAAA5oP,EAAA9W,IAAA6nQ,EAAAr2L,GAAAuuL,GAAA58P,EAAAikQ,GAAAz3P,KAAAmH,IAAAqxP,GAAA32L,EAAA10D,aAAA00D,GACAruE,GAEAm8P,GAAA0K,WAAA5F,GAAAp9O,MAAA,IAAA3oB,KAAAmnQ,IAAArlQ,KAAA,MAAAikQ,GACA9E,GAAAyK,mBAAAlK,GACAC,KACAR,GAAA8J,cAAA,EAEA,IAAAr7P,GAAAvZ,EAAAwZ,SAAA+gQ,GAAAl3Q,MAAAZ,UAAAyF,KAAAsyQ,GAAAn3Q,MAAAZ,UAAAsF,MACA0yQ,GAAA,2CACA3pC,GAAA6+B,GAAA7+B,MACA4pC,GAAA34Q,GAAAmgJ,QAAA,+BACAy4H,GAAA,SAAAtwQ,GACA,2BAAAA,GAEAuwQ,GAAA,SAAAvwQ,GACA,wBAAAA,GAEAwwQ,GAAA,SAAAxwQ,GACA,OAAAA,SAAAyW,QAEAmkL,GAAA,SAAA5rL,EAAAyhQ,GACA,IAAAC,EAAA9gQ,EAAAuU,EACAssP,KAAAvhQ,GACAiV,EAAAssP,EAAAphQ,cAAA,OACAqhQ,EAAAD,EAAAzsP,yBACAG,EAAA7U,UAAAN,EACA,MAAAY,EAAAuU,EAAAhC,WACAuuP,EAAA5tP,YAAAlT,GAEA,OAAA8gQ,GAEAC,GAAA,SAAAC,EAAAC,EAAAjoL,EAAAzpF,GACA,IAAAlH,EACA,GAAAs4Q,GAAAM,GACAA,EAAAj2E,GAAAi2E,EAAAC,GAAAF,EAAA,UACO,GAAAC,EAAAx6Q,SAAAw6Q,EAAA34P,SAAA,CAEP,GADA24P,EAAAE,GAAAC,UAAAH,GACA1xQ,EACA,IAAAlH,EAAA44Q,EAAAx6Q,OAAA,EAAyC4B,GAAA,EAAQA,IACjD04Q,GAAAC,EAAAC,EAAA54Q,GAAA2wF,EAAAzpF,QAGA,IAAAlH,EAAA,EAAqBA,EAAA44Q,EAAAx6Q,OAAuB4B,IAC5C04Q,GAAAC,EAAAC,EAAA54Q,GAAA2wF,EAAAzpF,GAGA,OAAAyxQ,EAEA,GAAAC,EAAA34P,SAAA,CACAjgB,EAAA24Q,EAAAv6Q,OACA,MAAA4B,IACA2wF,EAAAtwF,KAAAs4Q,EAAA34Q,GAAA44Q,GAGA,OAAAD,GAEA//D,GAAA,SAAAjhM,EAAAo+H,GACA,OAAAp+H,GAAAo+H,IAAA,SAAAp+H,EAAAo+H,UAAA,KAAAt1I,QAAA,IAAAs1I,EAAA,MAEAnqI,GAAA,SAAAof,EAAAQ,EAAA1sB,GACA,IAAAk6Q,EAAAC,EAaA,OAZAztP,EAAAstP,GAAAttP,GAAA,GACAR,EAAAvoB,KAAA,WACA,IAAAY,EAAA/C,KACAxB,GAAAk6Q,IAAA31Q,EAAA2iB,WAMAizP,EAAApuP,YAAAxnB,IALA21Q,EAAA31Q,EAAA2iB,WACAizP,EAAAztP,EAAAW,WAAA,GACA9oB,EAAA2iB,WAAAuE,aAAA0uP,EAAA51Q,GACA41Q,EAAApuP,YAAAxnB,MAKA2nB,GAEAkuP,GAAAz5Q,GAAAmgJ,QAAA,4EACAu5H,GAAA15Q,GAAAmgJ,QAAA,qGACAw5H,GAAA,CACAC,IAAA,UACA1iE,MAAA,YACA7sD,SAAA,YAEAwvH,GAAA,CAAkBC,MAAA,YAClBC,GAAA,GAAsBC,GAAA,GACtBC,GAAA,SAAA15P,EAAA06D,GACA,WAAAo+L,GAAAn6Q,GAAAsyB,KAAAjR,EAAA06D,IAEAi/L,GAAA,SAAAhgP,EAAAvzB,GACA,IAAApG,EACA,GAAAoG,EAAA3F,QACA,OAAA2F,EAAA3F,QAAAk5B,GAEA35B,EAAAoG,EAAAhI,OACA,MAAA4B,IACA,GAAAoG,EAAApG,KAAA25B,EACA,OAAA35B,EAGA,UAEA45Q,GAAA,aACAC,GAAA,SAAAp8P,GACA,cAAAA,QAAApb,IAAAob,EAAA,OAAAA,GAAArE,QAAAwgQ,GAAA,KAEAE,GAAA,SAAA/xQ,EAAA4oF,GACA,IAAAvyF,EAAAoK,EAAAxI,EAAAzB,EACA,GAAAwJ,EAEA,GADA3J,EAAA2J,EAAA3J,YACAiE,IAAAjE,GACA,IAAAoK,KAAAT,EACA,GAAAA,EAAA3H,eAAAoI,KACAjK,EAAAwJ,EAAAS,IACA,IAAAmoF,EAAAtwF,KAAA9B,EAAAiK,EAAAjK,IACA,WAKA,IAAAyB,EAAA,EAAqBA,EAAA5B,EAAY4B,IAEjC,GADAzB,EAAAwJ,EAAA/H,IACA,IAAA2wF,EAAAtwF,KAAA9B,EAAAyB,EAAAzB,GACA,MAKA,OAAAwJ,GAEAk5L,GAAA,SAAA76L,EAAAuqF,GACA,IAAAggC,EAAA,GAMA,OALAmpJ,GAAA1zQ,EAAA,SAAApG,EAAA25B,GACAg3D,EAAAh3D,EAAA35B,IACA2wH,EAAA/qH,KAAA+zB,KAGAg3F,GAEAkoJ,GAAA,SAAA94P,GACA,OAAAA,EAGA,IAAAA,EAAAE,SACAF,EAEAA,EAAAkG,cALAhP,IAOAyiQ,GAAA/6Q,GAAA+6Q,GAAAv5Q,UAAA,CACAwE,YAAA+0Q,GACA15P,SAAA,GACA06D,QAAA,KACAt8E,OAAA,EACA6yB,KAAA,SAAAjR,EAAA06D,GACA,IACAxxE,EAAAyO,EADAtU,EAAA/C,KAEA,IAAA0f,EACA,OAAA3c,EAEA,GAAA2c,EAAAC,SAGA,OAFA5c,EAAAq3E,QAAAr3E,EAAA,GAAA2c,EACA3c,EAAAjF,OAAA,EACAiF,EAEA,GAAAq3E,KAAAz6D,SACA5c,EAAAq3E,cACS,CACT,GAAAA,EACA,OAAAo+L,GAAA94P,GAAAkW,KAAAwkD,GAEAr3E,EAAAq3E,UAAAh9E,EAAAwZ,SAEA,GAAAohQ,GAAAt4P,GAAA,CAWA,GAVA3c,EAAA2c,WAEA9W,EADA,MAAA8W,EAAAw4D,OAAA,UAAAx4D,EAAAw4D,OAAAx4D,EAAA5hB,OAAA,IAAA4hB,EAAA5hB,QAAA,EACA,CACA,KACA4hB,EACA,MAGAm4P,GAAA7tL,KAAAtqE,IAEA9W,EAmBA,OAAA4vQ,GAAAp+L,GAAA5zE,KAAAkZ,GAlBA,GAAA9W,EAAA,IACAyO,EAAAgrL,GAAA3iL,EAAA64P,GAAAn+L,IAAAxwD,WACA,MAAAvS,EACAsgQ,GAAA53Q,KAAAgD,EAAAsU,GACAA,IAAAkS,gBAEa,CAEb,GADAlS,EAAAkhQ,GAAAn+L,GAAAyqD,eAAAj8H,EAAA,KACAyO,EACA,OAAAtU,EAEA,GAAAsU,EAAAhW,KAAAuH,EAAA,GACA,OAAA7F,EAAAyD,KAAAkZ,GAEA3c,EAAAjF,OAAA,EACAiF,EAAA,GAAAsU,QAMArX,KAAA61B,IAAAnW,GAAA,GAEA,OAAA3c,GAEAL,QAAA,WACA,OAAAvD,GAAAuD,QAAA1C,OAEA61B,IAAA,SAAAmvB,EAAA/9C,GACA,IACAwrC,EAAA/yC,EADAqD,EAAA/C,KAEA,GAAAg4Q,GAAAhzN,GACA,OAAAjiD,EAAA8yB,IAAA2iP,GAAAxzN,IAEA,QAAA/9C,EAGA,IAFAwrC,EAAA+lO,GAAAtrP,OAAAnqB,EAAAL,UAAAjE,OAAA+5Q,GAAAC,UAAAzzN,KACAjiD,EAAAjF,OAAA20C,EAAA30C,OACA4B,EAAA,EAAqBA,EAAA+yC,EAAA30C,OAAkB4B,IACvCqD,EAAArD,GAAA+yC,EAAA/yC,QAGAi4Q,GAAA55Q,MAAAgF,EAAAy1Q,GAAAC,UAAAzzN,IAEA,OAAAjiD,GAEA6yB,KAAA,SAAAtxB,EAAArG,GACA,IACAw7Q,EADA12Q,EAAA/C,KAEA,qBAAAsE,EACAk1Q,GAAAl1Q,EAAA,SAAAA,EAAArG,GACA8E,EAAA6yB,KAAAtxB,EAAArG,SAES,KAAA85Q,GAAA95Q,GAgBA,CACT,GAAA8E,EAAA,QAAAA,EAAA,GAAA4c,SAAA,CAEA,GADA85P,EAAAP,GAAA50Q,GACAm1Q,KAAAxxQ,IACA,OAAAwxQ,EAAAxxQ,IAAAlF,EAAA,GAAAuB,GAEA,GAAAu0Q,GAAAv0Q,GACA,OAAAvB,EAAAoN,KAAA7L,UAAAvC,EAEA9D,EAAA8E,EAAA,GAAAqpB,aAAA9nB,EAAA,GACA,OAAArG,IACAA,OAAA8D,GAGA,OAAA9D,EA7BA+B,KAAAmC,KAAA,WACA,IAAAs3Q,EACA,OAAAz5Q,KAAA2f,SAAA,CAEA,GADA85P,EAAAP,GAAA50Q,GACAm1Q,KAAAnjQ,IAEA,YADAmjQ,EAAAnjQ,IAAAtW,KAAA/B,GAGA,OAAAA,EACA+B,KAAAwsB,gBAAAloB,EAAA,GAEAtE,KAAA+rB,aAAAznB,EAAArG,EAAA,MAoBA,OAAA8E,GAEA22Q,WAAA,SAAAp1Q,GACA,OAAAtE,KAAA41B,KAAAtxB,EAAA,OAEA6L,KAAA,SAAA7L,EAAArG,GACA,IAAA8E,EAAA/C,KAEA,GADAsE,EAAAw0Q,GAAAx0Q,MACA,kBAAAA,EACAk1Q,GAAAl1Q,EAAA,SAAAA,EAAArG,GACA8E,EAAAoN,KAAA7L,EAAArG,SAES,KAAA85Q,GAAA95Q,GAOT,OAAA8E,EAAA,IAAAA,EAAA,GAAA4c,UAAArb,KAAAvB,EAAA,GACAA,EAAA,GAAAuB,GAEArG,EATA+B,KAAAmC,KAAA,WACA,IAAAnC,KAAA2f,WACA3f,KAAAsE,GAAArG,KASA,OAAA8E,GAEAs0B,IAAA,SAAA/yB,EAAArG,GACA,IACAy5E,EAAA+hM,EADA12Q,EAAA/C,KAEA25Q,EAAA,SAAAr1Q,GACA,OAAAA,EAAAwU,QAAA,kBAAAnY,EAAAuC,GACA,OAAAA,EAAAmqF,iBAGAusL,EAAA,SAAAt1Q,GACA,OAAAA,EAAAwU,QAAA,kBAAAnY,GACA,UAAAA,KAGA,qBAAA2D,EACAk1Q,GAAAl1Q,EAAA,SAAAA,EAAArG,GACA8E,EAAAs0B,IAAA/yB,EAAArG,UAGA,GAAA85Q,GAAA95Q,GACAqG,EAAAq1Q,EAAAr1Q,GACA,kBAAArG,GAAA26Q,GAAAt0Q,KACArG,IAAA0E,WAAA,MAEAI,EAAAZ,KAAA,WACA,IAAAy0B,EAAA52B,KAAA42B,MAEA,GADA6iP,EAAAN,GAAA70Q,GACAm1Q,KAAAnjQ,IACAmjQ,EAAAnjQ,IAAAtW,KAAA/B,OADA,CAIA,IACA+B,KAAA42B,MAAAoiP,GAAA10Q,OAAArG,EACe,MAAAmqG,IAEf,OAAAnqG,GAAA,KAAAA,IACA24B,EAAAM,eACAN,EAAAM,eAAA0iP,EAAAt1Q,IAEAsyB,EAAApK,gBAAAloB,WAIW,CAGX,GAFAozE,EAAA30E,EAAA,GACA02Q,EAAAN,GAAA70Q,GACAm1Q,KAAAxxQ,IACA,OAAAwxQ,EAAAxxQ,IAAAyvE,GAEA,IAAAA,EAAA/xD,cAAAyD,YAMa,OAAAsuD,EAAA+rJ,aACb/rJ,EAAA+rJ,aAAAk2C,EAAAr1Q,IAEA,GARA,IACA,OAAAozE,EAAA/xD,cAAAyD,YAAAoO,iBAAAkgD,EAAA,MAAA7gD,iBAAA+iP,EAAAt1Q,IACe,MAAA8jG,GACf,QASA,OAAArlG,GAEAgoB,OAAA,WACA,IACA1T,EADAtU,EAAA/C,KACAN,EAAAM,KAAAlC,OACA,MAAA4B,IACA2X,EAAAtU,EAAArD,GACAwuO,GAAA5wB,MAAAjmM,GACAA,EAAAqO,YACArO,EAAAqO,WAAAsF,YAAA3T,GAGA,OAAArX,MAEA4qB,MAAA,WACA,IACAvT,EADAtU,EAAA/C,KACAN,EAAAM,KAAAlC,OACA,MAAA4B,IAAA,CACA2X,EAAAtU,EAAArD,GACA,MAAA2X,EAAAuS,WACAvS,EAAA2T,YAAA3T,EAAAuS,YAGA,OAAA5pB,MAEAyW,KAAA,SAAAxY,GACA,IACAyB,EADAqD,EAAA/C,KAEA,GAAA+3Q,GAAA95Q,GAAA,CACAyB,EAAAqD,EAAAjF,OACA,IACA,MAAA4B,IACAqD,EAAArD,GAAAqX,UAAA9Y,EAEW,MAAAmqG,GACXowK,GAAAz1Q,EAAArD,IAAAkrB,QAAAR,OAAAnsB,GAEA,OAAA8E,EAEA,OAAAA,EAAA,GAAAA,EAAA,GAAAgU,UAAA,IAEAQ,KAAA,SAAAtZ,GACA,IACAyB,EADAqD,EAAA/C,KAEA,GAAA+3Q,GAAA95Q,GAAA,CACAyB,EAAAqD,EAAAjF,OACA,MAAA4B,IACA,cAAAqD,EAAArD,GACAqD,EAAArD,GAAA29I,UAAAp/I,EAEA8E,EAAA,GAAA8nB,YAAA5sB,EAGA,OAAA8E,EAEA,OAAAA,EAAA,GAAAA,EAAA,GAAAs6I,WAAAt6I,EAAA,GAAA8nB,YAAA,IAEAT,OAAA,WACA,OAAAguP,GAAAp4Q,KAAAnC,UAAA,SAAAwZ,IACA,IAAArX,KAAA2f,UAAA3f,KAAA27L,MAAA,IAAA37L,KAAA27L,KAAAh8K,WACA3f,KAAAuqB,YAAAlT,MAIAgT,QAAA,WACA,OAAA+tP,GAAAp4Q,KAAAnC,UAAA,SAAAwZ,IACA,IAAArX,KAAA2f,UAAA3f,KAAA27L,MAAA,IAAA37L,KAAA27L,KAAAh8K,WACA3f,KAAAiqB,aAAA5S,EAAArX,KAAA4pB,cAES,IAETE,OAAA,WACA,IAAA/mB,EAAA/C,KACA,OAAA+C,EAAA,IAAAA,EAAA,GAAA2iB,WACA0yP,GAAAr1Q,EAAAlF,UAAA,SAAAwZ,GACArX,KAAA0lB,WAAAuE,aAAA5S,EAAArX,QAGA+C,GAEAmnB,MAAA,WACA,IAAAnnB,EAAA/C,KACA,OAAA+C,EAAA,IAAAA,EAAA,GAAA2iB,WACA0yP,GAAAr1Q,EAAAlF,UAAA,SAAAwZ,GACArX,KAAA0lB,WAAAuE,aAAA5S,EAAArX,KAAAupB,eACW,GAEXxmB,GAEAuiI,SAAA,SAAAn4H,GAEA,OADAqrQ,GAAArrQ,GAAAid,OAAApqB,MACAA,MAEA65Q,UAAA,SAAA1sQ,GAEA,OADAqrQ,GAAArrQ,GAAAkd,QAAArqB,MACAA,MAEA85Q,YAAA,SAAAzuP,GACA,OAAArrB,KAAA8pB,OAAAuB,GAAAN,UAEAzf,KAAA,SAAA+f,GACA,OAAA/f,GAAAtL,KAAAqrB,IAEA9f,QAAA,SAAA8f,GACA,OAAA/f,GAAAtL,KAAAqrB,GAAA,IAEA0uP,UAAA,SAAA1uP,GAIA,OAHArrB,KAAAmC,KAAA,WACAq2Q,GAAAx4Q,MAAA0iD,WAAAn3C,QAAA8f,KAEArrB,MAEAirB,OAAA,WACA,OAAAjrB,KAAAqpB,SAAAlnB,KAAA,WACAq2Q,GAAAx4Q,MAAA85Q,YAAA95Q,KAAAiX,eAGAV,MAAA,WACA,IAAAtK,EAAA,GAIA,OAHAjM,KAAAmC,KAAA,WACA8J,EAAA3G,KAAAtF,KAAA6rB,WAAA,MAEA2sP,GAAAvsQ,IAEA+lK,SAAA,SAAAv8B,GACA,OAAAz1I,KAAAujE,YAAAkyE,GAAA,IAEAw8B,YAAA,SAAAx8B,GACA,OAAAz1I,KAAAujE,YAAAkyE,GAAA,IAEAlyE,YAAA,SAAAkyE,EAAAhnI,GACA,IAAA1L,EAAA/C,KACA,wBAAAy1I,EACA1yI,IAEA,IAAA0yI,EAAAt1I,QAAA,KACAq5Q,GAAA/jI,EAAA7lH,MAAA,gBACA7sB,EAAAwgE,YAAAvjE,KAAAyO,KAGA1L,EAAAZ,KAAA,SAAAunB,EAAArS,GACA,IAAA2iQ,EAAAC,EACAA,EAAA3hE,GAAAjhM,EAAAo+H,GACAwkI,IAAAxrQ,IACAurQ,EAAA3iQ,EAAAo+H,UACAwkI,EACA5iQ,EAAAo+H,UAAA8jI,IAAA,IAAAS,EAAA,KAAAlhQ,QAAA,IAAA28H,EAAA,UAEAp+H,EAAAo+H,WAAAukI,EAAA,IAAAvkI,OAKA1yI,IAEAu1M,SAAA,SAAA7iE,GACA,OAAA6iE,GAAAt4M,KAAA,GAAAy1I,IAEAtzI,KAAA,SAAAkuF,GACA,OAAAmpL,GAAAx5Q,KAAAqwF,IAEAviD,GAAA,SAAAxpC,EAAA+rF,GACA,OAAArwF,KAAAmC,KAAA,WACA+rO,GAAA9rO,KAAApC,KAAAsE,EAAA+rF,MAGA50C,IAAA,SAAAn3C,EAAA+rF,GACA,OAAArwF,KAAAmC,KAAA,WACA+rO,GAAAn1I,OAAA/4F,KAAAsE,EAAA+rF,MAGA89I,QAAA,SAAA7pO,GACA,OAAAtE,KAAAmC,KAAA,WACA,kBAAAmC,EACA4pO,GAAA5/I,KAAAtuF,KAAAsE,EAAAE,KAAAF,GAEA4pO,GAAA5/I,KAAAtuF,KAAAsE,MAIAy6E,KAAA,WACA,OAAA/+E,KAAAq3B,IAAA,eAEA+4C,KAAA,WACA,OAAApwE,KAAAq3B,IAAA,mBAEAlyB,MAAA,WACA,WAAAqzQ,GAAAZ,GAAA75Q,MAAAiC,KAAAnC,aAEAoD,GAAA,SAAAyoB,GACA,WAAAA,EAAA1pB,KAAAmF,MAAAukB,GAAA1pB,KAAAmF,MAAAukB,KAAA,IAEA2pB,MAAA,WACA,OAAArzC,KAAAiB,GAAA,IAEAoG,KAAA,WACA,OAAArH,KAAAiB,IAAA,IAEAuF,KAAA,SAAAkZ,GACA,IAAAhgB,EAAAo0G,EACA5pG,EAAA,GACA,IAAAxK,EAAA,EAAAo0G,EAAA9zG,KAAAlC,OAAoC4B,EAAAo0G,EAAOp0G,IAC3C84Q,GAAAhyQ,KAAAkZ,EAAA1f,KAAAN,GAAAwK,GAEA,OAAAsuQ,GAAAtuQ,IAEA3H,OAAA,SAAAmd,GACA,OACA84P,GADA,oBAAA94P,EACAihL,GAAA3gM,KAAA0C,UAAA,SAAA22B,EAAA35B,GACA,OAAAggB,EAAAhgB,EAAA25B,KAGAm/O,GAAAj2Q,OAAAmd,EAAA1f,KAAA0C,aAEAujB,QAAA,SAAAvG,GACA,IAAAzT,EAAA,GAgBA,OAfAyT,aAAA84P,KACA94P,IAAA,IAEA1f,KAAAmC,KAAA,SAAAzC,EAAA2X,GACA,MAAAA,EAAA,CACA,qBAAAqI,GAAA84P,GAAAnhQ,GAAA7V,GAAAke,GAAA,CACAzT,EAAA3G,KAAA+R,GACA,MACa,GAAAA,IAAAqI,EAAA,CACbzT,EAAA3G,KAAA+R,GACA,MAEAA,IAAAqO,cAGA8yP,GAAAvsQ,IAEA8yB,OAAA,SAAAA,GACA,IAAA24C,EAAA/gE,EAAAgB,EACA+zB,EAAAvtC,EAAA,EAAAyZ,EAAA,EACA,OAAAmnB,EAgBA/+B,KAAAq3B,IAAA0H,IAfA24C,EAAA13E,KAAA,GACA03E,IACA/gE,EAAA+gE,EAAA/xD,cACAhO,EAAAhB,EAAAwS,gBACAuuD,EAAAl8C,wBACAkQ,EAAAgsC,EAAAl8C,wBACAr9B,EAAAutC,EAAA1P,MAAArkB,EAAAklB,YAAAlmB,EAAAiP,KAAAiX,YAAAllB,EAAAqlB,WACAplB,EAAA8zB,EAAAzP,KAAAtkB,EAAAglB,WAAAhmB,EAAAiP,KAAA+W,WAAAhlB,EAAAolB,YAGA,CACAf,KAAA79B,EACA89B,IAAArkB,KAKAtS,KAAAqyQ,GACA1wQ,KAAAxG,MAAAZ,UAAAoH,KACAslF,OAAA9rF,MAAAZ,UAAA0sF,QAEAptF,GAAAuoI,OAAA0xI,GAAA,CACA1xI,OAAAvoI,GAAAuoI,OACA+wI,UAAA,SAAAyB,GACA,OAAAjC,GAAAiC,MAAAv6P,SACA,CAAAu6P,GAEA/6Q,GAAAuD,QAAAw3Q,IAEA9rE,QAAAirE,GACA10Q,QAAAxF,GAAAwF,QACAxC,KAAAq3Q,GACA/7P,KAAA87P,GACA54E,QACAn6L,KAAAgqQ,GACA4B,KAAA5B,GAAAlzM,UACApwC,OAAAsjP,GAAAiC,WACAl7P,KAAAi5P,GAAAr4L,QACAzyE,SAAA8qQ,GAAA9qQ,SACAnD,OAAA,SAAA6vQ,EAAA8D,EAAAx3Q,GACA,IAAAgB,EAAAw2Q,EAAAp4Q,OACAY,IACA0zQ,EAAA,QAAAA,EAAA,KAEA,MAAA1yQ,IACA,IAAAw2Q,EAAAx2Q,GAAAigB,UACAu2P,EAAA3pL,OAAA7sF,EAAA,GAQA,OAJAw2Q,EADA,IAAAA,EAAAp4Q,OACA06Q,GAAAhyQ,KAAA6rQ,gBAAA6D,EAAA,GAAA9D,GAAA,CAAA8D,EAAA,OAEAsC,GAAAhyQ,KAAA4X,QAAAg0P,EAAA8D,GAEAA,KAGA,IAAA7sM,GAAA,SAAArjD,EAAA7V,EAAAgqQ,GACA,IAAArG,EAAA,GACAzd,EAAArwO,EAAA7V,GACA,kBAAAgqQ,gBAAA3B,KACA2B,IAAA,IAEA,MAAA9jB,GAAA,IAAAA,EAAA12O,SAAA,CACA,QAAA5d,IAAAo4Q,EAAA,CACA,GAAA9jB,IAAA8jB,EACA,MAEA,qBAAAA,GAAA3B,GAAAniB,GAAA70P,GAAA24Q,GACA,MAGA,IAAA9jB,EAAA12O,UACAm0P,EAAAxuQ,KAAA+wP,GAEAA,IAAAlmP,GAEA,OAAA2jQ,GAEA3pP,GAAA,SAAA9S,EAAA+iQ,EAAAz6P,EAAAw6P,GACA,IAAAluQ,EAAA,GAIA,IAHAkuQ,aAAA3B,KACA2B,IAAA,IAEY9iQ,EAAMA,IAAA+iQ,GAClB,IAAAz6P,GAAAtI,EAAAsI,aAAA,CAGA,QAAA5d,IAAAo4Q,EAAA,CACA,GAAA9iQ,IAAA8iQ,EACA,MAEA,qBAAAA,GAAA3B,GAAAnhQ,GAAA7V,GAAA24Q,GACA,MAGAluQ,EAAA3G,KAAA+R,GAEA,OAAApL,GAEAouQ,GAAA,SAAAhjQ,EAAA+iQ,EAAAz6P,GACA,IAAAtI,IAAA+iQ,GAAoC/iQ,EAAMA,IAAA+iQ,GAC1C,GAAA/iQ,EAAAsI,aACA,OAAAtI,EAGA,aAEAmiQ,GAAA,CACAnwP,OAAA,SAAAhS,GACA,IAAAgS,EAAAhS,EAAAqO,WACA,OAAA2D,GAAA,KAAAA,EAAA1J,SAAA0J,EAAA,MAEAwvI,QAAA,SAAAxhJ,GACA,OAAAgyD,GAAAhyD,EAAA,eAEApD,KAAA,SAAAoD,GACA,OAAAgjQ,GAAAhjQ,EAAA,kBAEA6/D,KAAA,SAAA7/D,GACA,OAAAgjQ,GAAAhjQ,EAAA,sBAEAmS,SAAA,SAAAnS,GACA,OAAA8S,GAAA9S,EAAAuS,WAAA,kBAEA84B,SAAA,SAAArrC,GACA,OAAAlY,GAAAuD,SAAA,WAAA2U,EAAAgO,SAAAhO,EAAAuuL,iBAAAvuL,EAAAi0G,cAAA10G,SAAAS,GAAAJ,cAEK,SAAA3S,EAAAjG,GACL+6Q,GAAA/6Q,GAAAiG,GAAA,SAAAob,GACA,IAAA3c,EAAA/C,KACAiM,EAAA,GACAlJ,EAAAZ,KAAA,WACA,IAAAswC,EAAAp0C,EAAA0B,KAAAkM,EAAAjM,KAAA0f,EAAAzT,GACAwmC,IACA+lO,GAAA7zQ,QAAA8tC,GACAxmC,EAAA3G,KAAAvH,MAAAkO,EAAAwmC,GAEAxmC,EAAA3G,KAAAmtC,MAIAzyC,KAAAlC,OAAA,IACAg6Q,GAAAxzQ,KACA2H,EAAAusQ,GAAAtrP,OAAAjhB,IAEA,IAAA3H,EAAAnE,QAAA,aACA8L,IAAArF,YAGA,IAAA0zQ,EAAA9B,GAAAvsQ,GACA,OAAAyT,EACA46P,EAAA/3Q,OAAAmd,GAEA46P,KAGAd,GAAA,CACAe,aAAA,SAAAljQ,EAAA8iQ,GACA,OAAA9wM,GAAAhyD,EAAA,aAAA8iQ,IAEAK,UAAA,SAAAnjQ,EAAA8iQ,GACA,OAAAhwP,GAAA9S,EAAA,gBAAA8iQ,GAAAh1Q,MAAA,IAEAs1Q,UAAA,SAAApjQ,EAAA8iQ,GACA,OAAAhwP,GAAA9S,EAAA,oBAAA8iQ,GAAAh1Q,MAAA,KAEK,SAAAb,EAAAjG,GACL+6Q,GAAA/6Q,GAAAiG,GAAA,SAAAob,EAAAnd,GACA,IAAAQ,EAAA/C,KACAiM,EAAA,GACAlJ,EAAAZ,KAAA,WACA,IAAAswC,EAAAp0C,EAAA0B,KAAAkM,EAAAjM,KAAA0f,EAAAzT,GACAwmC,IACA+lO,GAAA7zQ,QAAA8tC,GACAxmC,EAAA3G,KAAAvH,MAAAkO,EAAAwmC,GAEAxmC,EAAA3G,KAAAmtC,MAIAzyC,KAAAlC,OAAA,IACAmO,EAAAusQ,GAAAtrP,OAAAjhB,GACA,IAAA3H,EAAAnE,QAAA,0BAAAmE,IACA2H,IAAArF,YAGA,IAAA0zQ,EAAA9B,GAAAvsQ,GACA,OAAA1J,EACA+3Q,EAAA/3Q,UAEA+3Q,KAGAlB,GAAA/6Q,GAAAmD,GAAA,SAAAke,GACA,QAAAA,GAAA1f,KAAAuC,OAAAmd,GAAA5hB,OAAA,GAEAs7Q,GAAA/6Q,GAAAsyB,KAAA9wB,UAAAu5Q,GAAA/6Q,GACA+6Q,GAAAsB,iBAAA,SAAArqL,GACA,IAAA9lC,EACA6qK,EAAA,SAAA11M,EAAA06D,GAQA,OAPA7vB,KAAA8lC,IACA,IAAAxyF,UAAAC,SACA4hB,EAAA6qC,EAAA9qC,SAEA26D,IACAA,EAAA7vB,EAAA6vB,SAEA,IAAAg7I,EAAA/2N,GAAAsyB,KAAAjR,EAAA06D,IAGA,OADAo+L,GAAA9wI,OAAA0tF,EAAAp1N,MACAo1N,GAEAgkD,GAAAF,aACAE,GAAAD,YACA,IAAAX,GAAAY,GAEAuB,GAAA,WACA,SAAAA,EAAAhoH,EAAA37E,GACAh3E,KAAAqX,KAAAs7I,EACA3yJ,KAAAg3E,WACAh3E,KAAA6Z,QAAA7Z,KAAA6Z,QAAAzX,KAAApC,MACAA,KAAAiU,KAAAjU,KAAAiU,KAAA7R,KAAApC,MACAA,KAAAk3E,KAAAl3E,KAAAk3E,KAAA90E,KAAApC,MACAA,KAAA46Q,MAAA56Q,KAAA46Q,MAAAx4Q,KAAApC,MA4DA,OA1DA26Q,EAAA96Q,UAAAga,QAAA,WACA,OAAA7Z,KAAAqX,MAEAsjQ,EAAA96Q,UAAAoU,KAAA,SAAAxK,GAEA,OADAzJ,KAAAqX,KAAArX,KAAA66Q,YAAA76Q,KAAAqX,KAAA,2BAAA5N,GACAzJ,KAAAqX,MAEAsjQ,EAAA96Q,UAAAq3E,KAAA,SAAAztE,GAEA,OADAzJ,KAAAqX,KAAArX,KAAA66Q,YAAA76Q,KAAAqX,KAAA,8BAAA5N,GACAzJ,KAAAqX,MAEAsjQ,EAAA96Q,UAAA+6Q,MAAA,SAAAnxQ,GAEA,OADAzJ,KAAAqX,KAAArX,KAAA86Q,iBAAA96Q,KAAAqX,KAAA,8BAAA5N,GACAzJ,KAAAqX,MAEAsjQ,EAAA96Q,UAAAg7Q,YAAA,SAAAxjQ,EAAA0jQ,EAAAX,EAAA3wQ,GACA,IAAA0gB,EAAAd,EACA,GAAAhS,EAAA,CACA,IAAA5N,GAAA4N,EAAA0jQ,GACA,OAAA1jQ,EAAA0jQ,GAEA,GAAA1jQ,IAAArX,KAAAg3E,SAAA,CAEA,GADA7sD,EAAA9S,EAAA+iQ,GACAjwP,EACA,OAAAA,EAEA,IAAAd,EAAAhS,EAAAqO,WAA0C2D,OAAArpB,KAAAg3E,SAAoC3tD,IAAA3D,WAE9E,GADAyE,EAAAd,EAAA+wP,GACAjwP,EACA,OAAAA,KAMAwwP,EAAA96Q,UAAAi7Q,iBAAA,SAAAzjQ,EAAA0jQ,EAAAX,EAAA3wQ,GACA,IAAA0gB,EAAAd,EAAAI,EACA,GAAApS,EAAA,CAEA,GADA8S,EAAA9S,EAAA+iQ,GACAp6Q,KAAAg3E,UAAA7sD,IAAAnqB,KAAAg3E,SACA,OAEA,GAAA7sD,EAAA,CACA,IAAA1gB,EACA,IAAAggB,EAAAU,EAAA4wP,GAA8CtxP,EAAOA,IAAAsxP,GACrD,IAAAtxP,EAAAsxP,GACA,OAAAtxP,EAIA,OAAAU,EAGA,GADAd,EAAAhS,EAAAqO,WACA2D,OAAArpB,KAAAg3E,SACA,OAAA3tD,IAIAsxP,EAnEA,GAsEA7wP,GAAA,SAAAC,EAAAtK,GACA,IAAAuK,EAAAX,GAAAU,GACAC,EAAA7nB,KAAA,SAAAa,GACAA,EAAAyU,MAAAwS,aAAAxK,EAAAhI,MAAAsS,EAAAtS,UAGAyS,GAAA,SAAAH,EAAAtK,GACA,IAAA0K,EAAAZ,GAAAQ,GACAI,EAAA5oB,KAAA,WACA,IAAAyoB,EAAAX,GAAAU,GACAC,EAAA7nB,KAAA,SAAAa,GACAonB,GAAApnB,EAAAyc,MAEO,SAAAzc,GACP8mB,GAAA9mB,EAAAyc,MAGA4K,GAAA,SAAAhB,EAAA5J,GACA,IAAA6K,EAAAV,GAAAP,GACAiB,EAAA/oB,KAAA,WACA6oB,GAAAf,EAAA5J,IACO,SAAAzc,GACPqmB,EAAA5R,MAAAwS,aAAAxK,EAAAhI,MAAAzU,EAAAyU,UAGA2S,GAAA,SAAAf,EAAA5J,GACA4J,EAAA5R,MAAA8S,YAAA9K,EAAAhI,QAEAnL,GAAA,SAAAmT,EAAAyL,GACApB,GAAArK,EAAAyL,GACAd,GAAAc,EAAAzL,IAGAgL,GAAA,SAAAV,EAAAW,GACAvoB,EAAAuoB,EAAA,SAAAvsB,GACA2rB,GAAAC,EAAA5rB,MAGAwsB,GAAA,SAAAtB,EAAAqB,GACAvoB,EAAAuoB,EAAA,SAAAvsB,GACAisB,GAAAf,EAAAlrB,MAIAysB,GAAA,SAAAnL,GACAA,EAAAhI,MAAAoT,YAAA,GACA1oB,EAAAqnB,GAAA/J,GAAA,SAAAqL,GACAyB,GAAAzB,MAGAyB,GAAA,SAAA9M,GACA,IAAAhI,EAAAgI,EAAAhI,MACA,OAAAA,EAAAiO,YACAjO,EAAAiO,WAAAsF,YAAAvT,IAGAwT,GAAA,SAAAC,GACA,IAAAC,EAAA3B,GAAA0B,GACAC,EAAArtB,OAAA,GACA2sB,GAAAS,EAAAC,GAEAoB,GAAArB,IAGA1qB,GAAA,SAAAw7B,EAAAC,GACA,IAAAC,EAAA,SAAA/9B,EAAAyZ,GACA,OAAApX,GAAAw7B,EAAA79B,EAAA89B,EAAArkB,IAEA,OACAokB,KAAAh+B,EAAAg+B,GACAC,IAAAj+B,EAAAi+B,GACAC,cAGA8+O,GAAAx6Q,GAEA47B,GAAA,SAAA3kB,GACA,IAAA4kB,EAAA5kB,EAAA+jB,wBACA,OAAAw/O,GAAA3+O,EAAAL,KAAAK,EAAAJ,MAEAK,GAAA,SAAA37B,EAAAuC,GACA,YAAAnB,IAAApB,SAAAoB,IAAAmB,IAAA,GAEAq5B,GAAA,SAAA9c,GACA,IAAA9I,EAAA8I,EAAAhI,MAAAkO,cACAC,EAAAjP,EAAAiP,KACA4W,EAAA7lB,EAAAyS,YACA3S,EAAAE,EAAAwS,gBACA,GAAAvD,IAAAnG,EAAAhI,MACA,OAAAujQ,GAAAp1P,EAAA6W,WAAA7W,EAAA8W,WAEA,IAAAC,EAAAL,GAAAE,EAAAI,YAAAnmB,EAAAkmB,WACAE,EAAAP,GAAAE,EAAAM,YAAArmB,EAAAomB,YACAE,EAAAT,GAAA7lB,EAAAsmB,UAAAnX,EAAAmX,WACAC,EAAAV,GAAA7lB,EAAAumB,WAAApX,EAAAoX,YACA,OAAAC,GAAAxd,GAAAyc,UAAAW,EAAAG,EAAAL,EAAAI,IAEAE,GAAA,SAAAxd,GACA,IAAAhI,EAAAgI,EAAAhI,MACAd,EAAAc,EAAAkO,cACAC,EAAAjP,EAAAiP,KACA,OAAAA,IAAAnO,EACAujQ,GAAAp1P,EAAA6W,WAAA7W,EAAA8W,WAEAjX,GAAAhG,GAGA2c,GAAA3kB,GAFAujQ,GAAA,MAKAzgQ,GAAAgE,KAAA1C,QAAAtB,WACA0b,GAAA,SAAAuH,GACA,IAAA7mB,OAAA5U,IAAAy7B,IAAA/lB,MAAAra,EAAAwZ,SACAzY,EAAAwY,EAAAiP,KAAAiX,YAAAlmB,EAAAwS,gBAAA0T,WACAjlB,EAAAjB,EAAAiP,KAAA+W,WAAAhmB,EAAAwS,gBAAAwT,UACA,OAAAq+O,GAAA78Q,EAAAyZ,IAEAqjQ,GAAA,SAAA98Q,EAAAyZ,EAAA4lB,GACA,IAAA7mB,OAAA5U,IAAAy7B,IAAA/lB,MAAAra,EAAAwZ,SACA4lB,EAAA7lB,EAAAyS,YACAoT,EAAA0+O,SAAA/8Q,EAAAyZ,IAEAujQ,GAAA,SAAA17P,EAAA27P,GACA7gQ,IAAA1V,EAAA4a,EAAAhI,MAAA4jQ,wBACA57P,EAAAhI,MAAA4jQ,wBAAA,GAEA57P,EAAAhI,MAAA6jQ,eAAAF,IAIA39O,GAAA,SAAAt/B,EAAAyZ,EAAA8lB,EAAAjC,GACA,OACAt9B,EAAAH,EAAAG,GACAyZ,EAAA5Z,EAAA4Z,GACA8lB,MAAA1/B,EAAA0/B,GACAjC,OAAAz9B,EAAAy9B,GACAkC,MAAA3/B,EAAAG,EAAAu/B,GACAE,OAAA5/B,EAAA4Z,EAAA6jB,KAGAoC,GAAA,SAAAC,GACA,IAAAtB,OAAAz6B,IAAA+7B,EAAA1gC,EAAA8gB,OAAA4f,EACAnnB,EAAA6lB,EAAA5lB,SACAmnB,EAAA9H,GAAAne,GAAAZ,QAAAP,IACAqnB,EAAAxB,EAAA,kBACA,QAAAz6B,IAAAi8B,EACA,OAAAP,GAAA/P,KAAAyN,IAAA6C,EAAAC,SAAAF,EAAA/B,QAAAtO,KAAAyN,IAAA6C,EAAAE,QAAAH,EAAA9B,OAAA+B,EAAAN,MAAAM,EAAAvC,QAEA,IAAAhlB,EAAAE,EAAAwS,gBACAuU,EAAAjnB,EAAA0nB,YACA1C,EAAAhlB,EAAA2nB,aACA,OAAAX,GAAAM,EAAA/B,OAAA+B,EAAA9B,MAAAyB,EAAAjC,IAIA8/O,GAAAp8Q,GAAAgD,KACAq5Q,GAAAr8Q,GAAAwhM,KACAvmL,GAAAm+O,GAAA/+O,GACAiiQ,GAAA,mBACAC,GAAA,eACAC,GAAA,SAAA5pP,EAAA2iD,EAAAiE,GACA,IAAAijM,EAAAlnM,EAAAmnM,YACAC,EAAA,CACAxlQ,IAAA,SAAA4hM,EAAAj6M,EAAAqG,GACAowE,EAAA80L,gBACAvrQ,EAAAy2E,EAAA80L,cAAAzpQ,KAAA20E,EAAAg1L,qBAAA/wL,IAAA16E,EAAAqG,EAAA4zM,EAAA,KAEAA,EAAAtiL,KAAA,YAAAtxB,EAAArG,GAAA23B,KAAAtxB,EAAArG,IAEAgK,IAAA,SAAAiwM,EAAA5zM,GACA,OAAA4zM,EAAAtiL,KAAA,YAAAtxB,IAAA4zM,EAAAtiL,KAAAtxB,KAGA40Q,EAAA,CACAtiP,MAAA,CACAtgB,IAAA,SAAA4hM,EAAAj6M,GACA,OAAAA,GAAA,kBAAAA,GAIA29Q,GACA1jE,EAAAtiL,KAAA,iBAAA33B,GAEAi6M,EAAAtiL,KAAA,QAAA33B,IANAi6M,EAAA7gL,IAAAp5B,IAQAgK,IAAA,SAAAiwM,GACA,IAAAj6M,EAAAi6M,EAAAtiL,KAAA,mBAAAsiL,EAAAtiL,KAAA,SAEA,OADA33B,EAAA8zB,EAAAqiL,UAAAriL,EAAAgmD,MAAA95E,GAAAi6M,EAAA,GAAA7yL,UACApnB,KAOA,OAHA29Q,IACA1C,EAAA19E,KAAA09E,EAAAjsJ,IAAA6uJ,GAEA5C,GAEA6C,GAAA,SAAAhqP,EAAAmmL,GACA,IAAAtvF,EAAAsvF,EAAAtiL,KAAA,SACA33B,EAAA8zB,EAAAqiL,UAAAriL,EAAAgmD,MAAA6wC,GAAAsvF,EAAA,GAAA7yL,UACApnB,IACAA,EAAA,MAEAi6M,EAAAtiL,KAAA,iBAAA33B,IAEA+9Q,GAAA,SAAA3kQ,EAAA83O,GACA,IAAA8sB,EAAAt8P,EAAA2sE,EAAA,EACA,GAAAj1E,EACA,IAAA4kQ,EAAA5kQ,EAAAsI,SAAAtI,IAAAwoL,gBAAuExoL,EAAMA,IAAAwoL,gBAC7ElgL,EAAAtI,EAAAsI,WACAwvO,GAAA,IAAAxvO,GACAA,IAAAs8P,GAAA5kQ,EAAAy6B,UAAAh0C,UAIAwuF,IACA2vL,EAAAt8P,GAGA,OAAA2sE,GAEA,SAAA4vL,GAAAvlQ,EAAA+9D,GACA,IAIAwkM,EAJA5uB,EAAAtqP,UACA,IAAA00E,IACAA,EAAA,IAGA,IAAAynM,EAAA,GACA3/O,EAAAp/B,EAAA8gB,OACAurG,EAAA,GACA2yJ,EAAA,EACAC,GAAA,EACAC,GAAA,EACA3tG,EAAAyrF,GAAAzjP,EAAA,CACAmlP,eAAApnL,EAAAonL,eACAtV,eAAA9xK,EAAA8xK,iBAEA+1B,EAAA,GACA3qQ,EAAA8iE,EAAA9iE,OAAA8iE,EAAA9iE,OAAAmxP,GAAA,IACAhxO,EAAA48L,GAAA,CACA66C,cAAA90L,EAAA80L,cACAE,oBAAAh1L,EAAAg1L,qBACOh1L,EAAA9iE,QACPmb,EAAA2nD,EAAA8nM,UAAA,IAAAzP,MAAA7+B,MACAs1B,EAAA5xP,EAAAwwL,mBACA6J,EAAAusE,GAAAkC,iBAAA,WACA,OACAtgM,QAAAzjE,EACA8I,QAAA1c,GAAAk0E,aAGAd,EAAA,SAAA9+D,GACA,qBAAAA,EACA,QAAAmsP,EAAAnsP,GACS,GAAAA,EAAA,CACT,IAAA7S,EAAA6S,EAAAsI,SACA,GAAAnb,EACA,YAAAA,IAAAg/P,EAAAnsP,EAAAgO,WAGA,UAEApd,EAAA,SAAAyvE,GACA,GAAAA,GAAA/gE,GAAA,kBAAA+gE,EAAA,CACA,IAAArgE,EAAAV,EAAAkuH,eAAAntD,GACA,OAAArgE,KAAAhW,KAAAq2E,EACA/gE,EAAA8lQ,kBAAA/kM,GAAA,GAEArgE,EAGA,OAAAqgE,GAEAglM,EAAA,SAAAhlM,GAIA,MAHA,kBAAAA,IACAA,EAAAzvE,EAAAyvE,IAEAu0H,EAAAv0H,IAEA83H,EAAA,SAAA93H,EAAApzE,EAAAq4Q,GACA,IAAAlD,EAAAx7Q,EACAi6M,EAAAwkE,EAAAhlM,GAYA,OAXAwgI,EAAAp6M,SACA27Q,EAAAP,EAAA50Q,GAEArG,EADAw7Q,KAAAxxQ,IACAwxQ,EAAAxxQ,IAAAiwM,EAAA5zM,GAEA4zM,EAAAtiL,KAAAtxB,IAGA,qBAAArG,IACAA,EAAA0+Q,GAAA,IAEA1+Q,GAEA2+Q,EAAA,SAAAllM,GACA,IAAArgE,EAAApP,EAAAyvE,GACA,OAAArgE,EAGAA,EAAAya,WAFA,IAIAs1M,EAAA,SAAA1vJ,EAAApzE,EAAArG,GACA,IAAA4+Q,EAAApD,EACA,KAAAx7Q,IACAA,EAAA,MAEA,IAAAi6M,EAAAwkE,EAAAhlM,GACAmlM,EAAA3kE,EAAAtiL,KAAAtxB,GACA4zM,EAAAp6M,SAGA27Q,EAAAP,EAAA50Q,GACAm1Q,KAAAnjQ,IACAmjQ,EAAAnjQ,IAAA4hM,EAAAj6M,EAAAqG,GAEA4zM,EAAAtiL,KAAAtxB,EAAArG,GAEA4+Q,IAAA5+Q,GAAAy2E,EAAAooM,aACApoM,EAAAooM,YAAA,CACAC,QAAA7kE,EACArB,SAAAvyM,EACAwyM,UAAA74M,MAIAsY,EAAA,SAAAc,EAAAzN,GACA,IAAAwQ,IAAA,IAAA/C,EAAAsI,UAAA/V,EACA,OAAAyN,EAAAwU,UAAAjiB,GAEA,IAAAA,EAAA,CACA,IAAAozQ,EAAArmQ,EAAAG,cAAAO,EAAAgO,UAIA,OAHAk2P,GAAAqB,EAAAvlQ,GAAA,SAAAue,GACAwxM,EAAA41C,EAAApnP,EAAAvQ,SAAAmqL,EAAAn4L,EAAAue,EAAAvQ,aAEA23P,EAEA,aAEA/lM,EAAA,WACA,OAAAvC,EAAAuoM,cAAAtmQ,EAAAiP,MAEAs3P,EAAA,SAAAC,GACA,IAAAjrQ,EAAA2rB,GAAAs/O,GACA,OACAh/Q,EAAA+T,EAAA/T,IACAyZ,EAAA1F,EAAA0F,IACAynB,EAAAntB,EAAAwrB,QACA5C,EAAA5oB,EAAAupB,WAGA+5I,EAAA,SAAA99F,EAAAivF,GACA,OAAAxqI,GAAAq5I,OAAA7+J,EAAAiP,KAAA3d,EAAAyvE,GAAAivF,IAEAmiC,EAAA,SAAApxH,EAAApzE,EAAArG,GACA,IAAAi6M,EAAAzzM,EAAAH,GAAAo4Q,EAAAhlM,GAAArgD,IAAA/yB,EAAArG,GAAAy+Q,EAAAhlM,GAAArgD,IAAA/yB,GACAowE,EAAA0oM,eACArB,GAAAhqP,EAAAmmL,IAGAmlE,EAAA,SAAA3lM,EAAAi9K,GACA,IAAAz8C,EAAAwkE,EAAAhlM,GAAArgD,IAAAs9N,GACAjgL,EAAA0oM,eACArB,GAAAhqP,EAAAmmL,IAGAp4G,EAAA,SAAApoB,EAAApzE,EAAAkxP,GACA,IAAAt9C,EAAAwkE,EAAAhlM,GACA,OAAA89K,EACAt9C,EAAA7gL,IAAA/yB,IAEAA,IAAAwU,QAAA,kBAAAnY,EAAAuC,GACA,OAAAA,EAAAmqF,gBAEA,UAAA/oF,IACAA,EAAAi0P,GAAA18O,QAAAzB,OAAA,yBAEA89L,EAAA,IAAAA,EAAA,GAAAthL,MAAAshL,EAAA,GAAAthL,MAAAtyB,QAAAvC,IAEAktM,EAAA,SAAAv3H,GACA,IAAAr4C,EAAAvE,EAUA,OATA48C,EAAAzvE,EAAAyvE,GACAr4C,EAAAygE,EAAApoB,EAAA,SACA58C,EAAAglE,EAAApoB,EAAA,WACA,IAAAr4C,EAAAl/B,QAAA,QACAk/B,EAAA,IAEA,IAAAvE,EAAA36B,QAAA,QACA26B,EAAA,GAEA,CACAuE,EAAApE,SAAAoE,EAAA,KAAAq4C,EAAA3/C,aAAA2/C,EAAAv5C,YACArD,EAAAG,SAAAH,EAAA,KAAA48C,EAAAh8C,cAAAg8C,EAAAt5C,eAGAqiG,EAAA,SAAA/oD,GACA,IAAAhsC,EAAA3lC,EAIA,OAHA2xE,EAAAzvE,EAAAyvE,GACAhsC,EAAA8pI,EAAA99F,GACA3xE,EAAAkpM,EAAAv3H,GACA,CACAv5E,EAAAutC,EAAAvtC,EACAyZ,EAAA8zB,EAAA9zB,EACAynB,EAAAt5B,EAAAs5B,EACAvE,EAAA/0B,EAAA+0B,IAGAt5B,EAAA,SAAAk2E,EAAAh4D,GACA,IAAAhgB,EACA,IAAAg4E,EACA,SAEA,IAAAj3E,MAAAkE,QAAA+yE,GAAA,CACA,SAAAh4D,EACA,WAAAg4D,EAAA/3D,SAEA,GAAA87P,GAAAljQ,KAAAmH,GAAA,CACA,IAAA49C,EAAA59C,EAAAvG,cAAAyW,MAAA,KACAw2O,EAAA1uL,EAAAryD,SAAAlM,cACA,IAAAzZ,EAAA49D,EAAAx/D,OAAA,EAA0C4B,GAAA,EAAQA,IAClD,GAAA49D,EAAA59D,KAAA0mQ,EACA,SAGA,SAEA,GAAA1uL,EAAA/3D,UAAA,IAAA+3D,EAAA/3D,SACA,SAGA,IAAAw+H,EAAA19I,MAAAkE,QAAA+yE,KAAA,CAAAA,GACA,OAAA84L,GAAA9wP,EAAAy+H,EAAA,GAAAx4H,eAAAw4H,EAAA,QAAAA,GAAArgJ,OAAA,GAEAixF,EAAA,SAAArX,EAAAh4D,EAAA02B,EAAAi7M,GACA,IACAisB,EADArxQ,EAAA,GAEAoL,EAAApP,EAAAyvE,GACA25K,OAAAtvP,IAAAsvP,EACAj7M,MAAA,SAAA6gC,IAAA5xD,SAAA4xD,IAAAvxD,WAAA,MACAvmB,GAAAqC,GAAAke,EAAA,YACA49P,EAAA59P,EAEAA,EADA,MAAAA,EACA,SAAArI,GACA,WAAAA,EAAAsI,UAGA,SAAAtI,GACA,OAAA7V,EAAA6V,EAAAimQ,KAIA,MAAAjmQ,EAAA,CACA,GAAAA,IAAA++B,IAAA/+B,EAAAsI,UAAA,IAAAtI,EAAAsI,SACA,MAEA,IAAAD,GAAA,oBAAAA,KAAArI,GAAA,CACA,IAAAg6O,EAGA,OAAAh6O,GAFApL,EAAA3G,KAAA+R,GAKAA,IAAAqO,WAEA,OAAA2rO,EAAAplP,EAAA,MAEAo0L,EAAA,SAAAhpL,EAAAqI,EAAA02B,GACA,IAAAyiH,EAAA9pE,EAAA13E,EAAAqI,EAAA02B,GAAA,GACA,OAAAyiH,KAAA/6J,OAAA,EAAA+6J,EAAA,SAEA0kH,EAAA,SAAAlmQ,EAAAqI,EAAApb,GACA,IAAAgK,EAAAoR,EACA,GAAArI,EAMA,IALA,kBAAAqI,IACApR,EAAA,SAAA+I,GACA,OAAA7V,EAAA6V,EAAAqI,KAGArI,IAAA/S,GAAiC+S,EAAMA,IAAA/S,GACvC,uBAAAgK,KAAA+I,GACA,OAAAA,EAIA,aAEA+4C,EAAA,SAAA/4C,EAAAqI,GACA,OAAA69P,EAAAlmQ,EAAAqI,EAAA,gBAEA89P,EAAA,SAAAnmQ,EAAAqI,GACA,OAAA69P,EAAAlmQ,EAAAqI,EAAA,oBAEAsxE,EAAA,SAAAtxE,EAAAhJ,GACA,OAAA85P,GAAA9wP,EAAAzX,EAAAyO,IAAAg+D,EAAAuoM,cAAAtmQ,EAAA,KAEA8K,EAAA,SAAAi2D,EAAAppE,EAAAoI,GACA,IAAAzK,EACAoL,EAAA,kBAAAqgE,EAAAzvE,EAAAyvE,KACA,IAAArgE,EACA,SAEA,GAAAlY,GAAAwF,QAAA0S,OAAAvZ,QAAA,IAAAuZ,EAAAvZ,QAUA,OATAmO,EAAA,GACAsvQ,GAAAlkQ,EAAA,SAAAqgE,EAAAh4E,GACAg4E,IACA,kBAAAA,IACAA,EAAAzvE,EAAAyvE,IAEAzrE,EAAA3G,KAAAgJ,EAAAvO,KAAA2W,EAAAghE,EAAAh4E,OAGAuM,EAEA,IAAAmuE,EAAA1jE,GAAA4zO,EACA,OAAAh8O,EAAAvO,KAAAq6E,EAAA/iE,IAEAmrL,EAAA,SAAA9qH,EAAAxrD,GACAwwP,EAAAhlM,GAAAv1E,KAAA,SAAAzC,EAAA2X,GACAkkQ,GAAArvP,EAAA,SAAAjuB,EAAAqG,GACA8iO,EAAA/vN,EAAA/S,EAAArG,QAIAw/Q,EAAA,SAAA/lM,EAAAjhE,GACA,IAAAyhM,EAAAwkE,EAAAhlM,GACAt9D,GACA89L,EAAA/1M,KAAA,SAAAzC,EAAAwJ,GACA,QAAAA,EAAAw0Q,YAAA,CAGA,MAAAx0Q,EAAA0gB,WACA1gB,EAAA8hB,YAAA9hB,EAAA0gB,YAEA,IACA1gB,EAAA6N,UAAA,OAAAN,EACAvN,EAAA8hB,YAAA9hB,EAAA0gB,YACa,MAAAw+E,GACbowK,GAAA,eAAA/hQ,KAAA,OAAAA,GAAAisC,WAAAv9C,MAAA,GAAAmgI,SAAAp8H,GAEA,OAAAuN,KAGAyhM,EAAAzhM,SAGAof,EAAA,SAAAizM,EAAAxkO,EAAA4nB,EAAAzV,EAAAsvB,GACA,OAAAtkB,EAAAqnN,EAAA,SAAAA,GACA,IAAA60C,EAAA,kBAAAr5Q,EAAAqS,EAAAG,cAAAxS,KASA,OARAk+L,EAAAm7E,EAAAzxP,GACAzV,IACA,kBAAAA,KAAAkJ,SACAg+P,EAAApzP,YAAA9T,GACa,kBAAAA,GACbgnQ,EAAAE,EAAAlnQ,IAGAsvB,EAAA43O,EAAA70C,EAAAv+M,YAAAozP,MAGA53O,EAAA,SAAAzhC,EAAA4nB,EAAAzV,GACA,OAAAof,EAAAlf,EAAAG,cAAAxS,KAAA4nB,EAAAzV,GAAA,IAEAgrP,EAAAC,GAAAD,OACAp6K,EAAAq6K,GAAAZ,aACA8c,EAAA,SAAAt5Q,EAAA4nB,EAAAzV,GACA,IAAAvO,EAAA21Q,EAAA,GAEA,IAAA31Q,KADA21Q,GAAA,IAAAv5Q,EACA4nB,EACAA,EAAApsB,eAAAoI,IAAA,OAAAgkB,EAAAhkB,IAAA,qBAAAgkB,EAAAhkB,KACA21Q,GAAA,IAAA31Q,EAAA,KAAAm/E,EAAAn7D,EAAAhkB,IAAA,KAGA,2BAAAuO,EACAonQ,EAAA,IAAApnQ,EAAA,KAAAnS,EAAA,IAEAu5Q,EAAA,OAEAx7E,EAAA,SAAA5rL,GACA,IAAAY,EACAuU,EAAAjV,EAAAG,cAAA,OACAqhQ,EAAAxhQ,EAAA8U,yBACAhV,IACAmV,EAAA7U,UAAAN,GAEA,MAAAY,EAAAuU,EAAAhC,WACAuuP,EAAA5tP,YAAAlT,GAEA,OAAA8gQ,GAEAptP,EAAA,SAAA1T,EAAAymQ,GACA,IAAAC,EAAArB,EAAArlQ,GAeA,OAdAymQ,EACAC,EAAA57Q,KAAA,WACA,IAAAsnB,EACA,MAAAA,EAAAzpB,KAAA4pB,WACA,IAAAH,EAAA9J,UAAA,IAAA8J,EAAA5E,KAAA/mB,OACAkC,KAAAgrB,YAAAvB,GAEAzpB,KAAA0lB,WAAAuE,aAAAR,EAAAzpB,QAGW+qB,SAEXgzP,EAAAhzP,SAEAgzP,EAAAjgR,OAAA,EAAAigR,EAAAr7Q,UAAAq7Q,EAAA,IAEAC,EAAA,SAAA99Q,GACA,OAAAuhB,EAAAvhB,EAAA,SAAAA,GACA,IAAAR,EACAwsB,EAAAhsB,EAAA4xB,WACA,IAAApyB,EAAAwsB,EAAApuB,OAAA,EAAoC4B,GAAA,EAAQA,IAC5CQ,EAAA+9Q,oBAAA/xP,EAAAmN,KAAA35B,OAIAm2M,EAAA,SAAAsD,GACA,OAAApnL,EAAAgmD,MAAAohI,IAEAvD,GAAA,SAAA++C,EAAArwP,GACA,OAAAytB,EAAAqiL,UAAAugD,EAAArwP,IAEA45Q,GAAA,SAAA/kE,GACA,IAAA/xM,EAAA+2Q,EACA,GAAAp7Q,KAAAm5Q,GAAA90L,KAAAzwE,IAAAvZ,EAAAwZ,SAAA,CACA,GAAAulQ,EAAAhjE,GACA,OAEAgjE,EAAAhjE,IAAA,EAEAglE,EAAAxnQ,EAAAkuH,eAAA,oBACAs5I,IACAA,EAAAxnQ,EAAAG,cAAA,SACAqnQ,EAAA98Q,GAAA,mBACA88Q,EAAA35Q,KAAA,WACA4C,EAAAuP,EAAA+jP,qBAAA,WACAtzP,EAAAwiB,WACAxiB,EAAA6iB,aAAAk0P,EAAA/2Q,EAAAwiB,YAEAxiB,EAAAmjB,YAAA4zP,IAGAA,EAAA9iB,WACA8iB,EAAA9iB,WAAAliD,WAEAglE,EAAA5zP,YAAA5T,EAAAa,eAAA2hM,KAGAilE,GAAA,SAAAn7K,GACA,IAAA77F,EACArE,KAAAm5Q,GAAA90L,KAAAzwE,IAAAvZ,EAAAwZ,UAIAqsF,IACAA,EAAA,IAEA77F,EAAAuP,EAAA+jP,qBAAA,WACA6gB,GAAAt4K,EAAArzE,MAAA,cAAAqzE,GACA,IAAA/iE,EACA+iE,EAAA9jG,GAAA+6P,gBAAAj3J,GACAwmB,EAAAxmB,KAGAwmB,EAAAxmB,IAAA,EACA/iE,EAAA6F,EAAA,OAAA1mC,IAAA,CACAmsC,IAAA,aACAhnC,KAAA,WACAg3L,KAAAv4F,GACWvuB,EAAAonL,eAAA,CAA6BC,YAAA,aAA2B,IAAKrnL,EAAA8xK,eAAA,CAA8BA,eAAA9xK,EAAA8xK,gBAA0C,KAChJp/O,EAAAmjB,YAAA2V,OAnBAg8O,GAAA90L,IAAAg3L,QAAAn7K,IAsBA1/B,GAAA,SAAAmU,EAAA2mM,EAAA5vQ,GACAiuQ,EAAAhlM,GAAAnU,YAAA86M,EAAA5vQ,GAAAtM,KAAA,WACA,KAAAnC,KAAAy1I,WACA+iI,GAAAx4Q,MAAA41B,KAAA,iBAIAo8I,GAAA,SAAAt6F,EAAA2mM,GACA3B,EAAAhlM,GAAAs6F,SAAAqsG,IAEApsG,GAAA,SAAAv6F,EAAA2mM,GACA96M,GAAAmU,EAAA2mM,GAAA,IAEA/lE,GAAA,SAAA5gI,EAAA2mM,GACA,OAAA3B,EAAAhlM,GAAA4gI,SAAA+lE,IAEAt/L,GAAA,SAAArH,GACAglM,EAAAhlM,GAAAqH,QAEA3O,GAAA,SAAAsH,GACAglM,EAAAhlM,GAAAtH,QAEA1Y,GAAA,SAAAggB,GACA,eAAAglM,EAAAhlM,GAAArgD,IAAA,YAEAinP,GAAA,SAAAlxP,GACA,OAAAA,GAAA,QAAAgvP,KAEAmC,GAAA,SAAA7mM,GACA,IAAArgE,EAAA,kBAAAqgE,EAAAzvE,EAAAyvE,KACA,OAAAwoH,GAAA36K,UAAAlO,KAAAu6L,UAAA4mE,GAAA,eAAApuP,OAAAouP,GAAAnhQ,GAAAd,SAAAE,QAEA+nQ,GAAA,SAAA9mM,EAAAjhE,GACAimQ,EAAAhlM,GAAAv1E,KAAA,WACA,IACA,iBAAAnC,KAEA,YADAA,KAAA4xM,UAAAn7L,GAGW,MAAA2xF,IAEXr9E,EAAAytP,GAAAx4Q,MAAAyW,SAAA,MAGAowL,GAAA,SAAAxvL,EAAAonQ,GACA,IAAAC,EAAAz2Q,EAAAw2Q,GACA,OAAAh9P,EAAApK,EAAA,SAAAA,GACA,IAAAgS,EAAAE,EAQA,OAPAF,EAAAq1P,EAAAh5P,WACA6D,EAAAm1P,EAAAn1P,YACAA,EACAF,EAAAY,aAAA5S,EAAAkS,GAEAF,EAAAkB,YAAAlT,GAEAA,KAGAyB,GAAA,SAAA6kQ,EAAAgB,EAAAb,GACA,OAAAr8P,EAAAk9P,EAAA,SAAAA,GASA,OARAx/Q,GAAAqC,GAAAm9Q,EAAA,WACAhB,IAAA9xP,WAAA,IAEAiyP,GACAvC,GAAAC,GAAAmD,EAAA1nQ,YAAA,SAAAI,GACAsmQ,EAAApzP,YAAAlT,KAGAsnQ,EAAAj5P,WAAAk5P,aAAAjB,EAAAgB,MAGA50E,GAAA,SAAAryH,EAAApzE,GACA,IAAAq5Q,EAQA,OAPAjmM,EAAAryD,WAAA/gB,EAAA+oF,gBACAswL,EAAA53O,EAAAzhC,GACAi3Q,GAAAqB,EAAAllM,GAAA,SAAAmnM,GACAz3C,EAAAu2C,EAAAkB,EAAAx5P,SAAAmqL,EAAA93H,EAAAmnM,EAAAx5P,aAEAvM,GAAA6kQ,EAAAjmM,GAAA,IAEAimM,GAAAjmM,GAEAonM,GAAA,SAAAn+Q,EAAAuC,GACA,IAAA67Q,EAAAr2N,EAAA/nD,EACA,MAAA+nD,EAAA,CACAq2N,EAAA77Q,EACA,MAAA67Q,GAAAr2N,IAAAq2N,EACAA,IAAAr5P,WAEA,GAAAgjC,IAAAq2N,EACA,MAEAr2N,IAAAhjC,WAEA,OAAAgjC,GAAA/nD,EAAAglB,cACAhlB,EAAAglB,cAAAwD,gBAEAu/B,GAEAuhC,GAAA,SAAA+0L,GACA,OAAAjtP,EAAAk4D,MAAA9qF,GAAAse,KAAAuhQ,KAEAl/E,GAAA,SAAAzoL,EAAAqT,GACA,IAAAhrB,EAAAoyB,EAAAttB,EAAAF,EAAA26Q,EAAA,EAEA,GADA5nQ,IAAAuS,WACAvS,EAAA,CACA,IAAAs/D,EAAA,IAAAgkM,GAAAtjQ,IAAAqO,YACAgpP,EAAA98P,IAAAk2P,wBAAA,GACAp9O,MAAA9Y,IAAA65L,sBAAA,MACA,GAEA,GADAjnM,EAAA6S,EAAAsI,SACAugL,GAAA36K,UAAAlO,GAAA,CACA,IAAA6nQ,EAAA7nQ,EAAA+U,aAAA,kBACA,GAAA8yP,EAAA,CACA7nQ,EAAAs/D,EAAA1iE,KAAA,QAAAirQ,GACA,SAGA,GADA56Q,EAAA+S,EAAAgO,SAAAlM,cACAuR,KAAApmB,GAAA,CACA,UAAAA,EAAA,CACA26Q,IACA5nQ,EAAAs/D,EAAA1iE,OACA,SAEA,SAEA6d,EAAA8qP,EAAAvlQ,GACA3X,EAAAoyB,EAAAh0B,OACA,MAAA4B,IAEA,GADA4E,EAAAwtB,EAAApyB,GAAA2lB,SACA,SAAA/gB,GAAA,sBAAAA,EACA,SAIA,OAAAE,EACA,SAEA,OAAAA,IAAAk3Q,GAAAnjQ,KAAAlB,EAAAy6B,WACA,SAEA,OAAAttC,GAAA6S,EAAAqO,YAAAgpP,EAAAr3P,EAAAqO,WAAAL,WAAAq2P,GAAAnjQ,KAAAlB,EAAAy6B,WACA,SAEAz6B,EAAAs/D,EAAA1iE,aACWoD,GAEX,OAAA4nQ,GAAA,GAEArmM,GAAA,WACA,OAAAjiE,EAAAu5B,eAEAtgB,GAAA,SAAAk5M,EAAAq2C,EAAAC,GACA,IAAAC,EAAAC,EAAAC,EAAA/+Q,EAAAo4E,KACA,GAAAkwJ,GAAAq2C,EAiBA,OAhBA3+Q,EAAAkvC,SAAAo5L,EAAApjN,WAAAs2P,GAAAlzC,IACAtoO,EAAAuvC,OAAAovO,EAAAz5P,WAAAs2P,GAAAmD,IACAE,EAAA7+Q,EAAAg3E,kBACAh3E,EAAAo4E,KACAp4E,EAAAkvC,SAAAyvO,EAAAz5P,WAAAs2P,GAAAmD,GAAA,GACA3+Q,EAAAuvC,OAAA+4L,EAAApjN,WAAAs2P,GAAAlzC,GAAA,GACAw2C,EAAA9+Q,EAAAg3E,kBACA+nM,EAAAz2C,EAAApjN,WACA65P,EAAAt1P,aAAAyzO,GAAAF,SAAAz6P,GAAAs8Q,GAAAv2C,GACAs2C,EACAG,EAAAt1P,aAAAm1P,EAAAt2C,GAEAy2C,EAAAt1P,aAAAk1P,EAAAr2C,GAEAy2C,EAAAt1P,aAAAyzO,GAAAF,SAAAz6P,GAAAu8Q,GAAAx2C,GACA/9M,EAAA+9M,GACAs2C,GAAAD,GAGA/8Q,GAAA,SAAA8G,EAAA5E,EAAAgK,EAAAoI,GACA,GAAAvX,GAAAwF,QAAAuE,GAAA,CACA,IAAAxJ,EAAAwJ,EAAApL,OACA0hR,EAAA,GACA,MAAA9/Q,IACA8/Q,EAAA9/Q,GAAA0C,GAAA8G,EAAAxJ,GAAA4E,EAAAgK,EAAAoI,GAEA,OAAA8oQ,EAUA,OARA9qM,EAAA28K,SAAAnoP,IAAAyN,GAAAzN,IAAAszB,GACA+/O,EAAAj3Q,KAAA,CACA4D,EACA5E,EACAgK,EACAoI,IAGAqW,EAAA3qB,KAAA8G,EAAA5E,EAAAgK,EAAAoI,GAAA3T,KAEAg2F,GAAA,SAAA7vF,EAAA5E,EAAAgK,GACA,IAAA5O,EACA,GAAAP,GAAAwF,QAAAuE,GAAA,CACAxJ,EAAAwJ,EAAApL,OACA,IAAA0hR,EAAA,GACA,MAAA9/Q,IACA8/Q,EAAA9/Q,GAAAq5F,GAAA7vF,EAAAxJ,GAAA4E,EAAAgK,GAEA,OAAAkxQ,EAEA,GAAAjD,IAAArzQ,IAAAyN,GAAAzN,IAAAszB,GAAA,CACA98B,EAAA68Q,EAAAz+Q,OACA,MAAA4B,IAAA,CACA,IAAA25B,EAAAkjP,EAAA78Q,GACAwJ,IAAAmwB,EAAA,IAAA/0B,OAAA+0B,EAAA,IAAA/qB,OAAA+qB,EAAA,IACAtM,EAAAgsE,OAAA1/D,EAAA,GAAAA,EAAA,GAAAA,EAAA,KAIA,OAAAtM,EAAAgsE,OAAA7vF,EAAA5E,EAAAgK,IAEAggF,GAAA,SAAAplF,EAAA5E,EAAA6wG,GACA,OAAApoF,EAAAuhE,KAAAplF,EAAA5E,EAAA6wG,IAEA/+B,GAAA,SAAA/+D,GACA,GAAAA,GAAA6oL,GAAA36K,UAAAlO,GAAA,CACA,IAAA0lI,EAAA1lI,EAAA+U,aAAA,4BACA,OAAA2wH,GAAA,YAAAA,EACAA,EAEA,YAAA1lI,EAAA0lI,gBAAA1lI,EAAA0lI,gBAAA,KAEA,aAGA0iI,GAAA,SAAApoQ,GAGA,IAFA,IAAA++B,EAAA6gC,IACAxoE,EAAA,KACc4I,OAAA++B,EAAuB/+B,IAAAqO,WAErC,GADAjX,EAAA2nE,GAAA/+D,GACA,OAAA5I,EACA,MAGA,OAAAA,GAEAowF,GAAA,WACA,GAAA09K,EAAA,CACA,IAAA78Q,EAAA68Q,EAAAz+Q,OACA,MAAA4B,IAAA,CACA,IAAA25B,EAAAkjP,EAAA78Q,GACAqtB,EAAAgsE,OAAA1/D,EAAA,GAAAA,EAAA,GAAAA,EAAA,KAGAm3O,GAAA9H,aACA8H,GAAA9H,eAGAzoE,GAAA,SAAA5oL,EAAAgS,GACA,MAAAhS,EAAA,CACA,GAAAgS,IAAAhS,EACA,SAEAA,IAAAqO,WAEA,UAEAg6P,GAAA,SAAAl/Q,GACA,yBAAAA,EAAA2uC,eAAA9pB,SAAA,kBAAA7kB,EAAAkwC,YAAA,mBAAAlwC,EAAAmwC,aAAAtrB,SAAA,gBAAA7kB,EAAAowC,WAEA7tC,GAAA,CACA4T,MACA+9D,WACAl4C,MACAitF,QACA4yJ,UACAC,WACA3tG,mBACA4tG,cACAxqP,SACAngB,SACAmb,SACAopD,UACA81H,IACAywE,KACAtmO,KAAA,KACA7/B,QACA0gE,UACAimM,cACAz8I,UACAwuE,UACA5O,YACAtxG,aACA9mF,MACAmoD,UACAotN,UACAxsL,SACAxvF,KACAq0B,MACAkQ,SACA63O,aACAv7E,iBACAt3K,SACA+9K,WACAhpG,WACAu9K,YACAW,mBACA52C,YACA5kC,aACAgN,YACAh6B,SACAqgC,aACAD,kBACAsoE,YACAE,WACApsG,YACAC,eACAqmC,YACA/0I,eACAwb,QACA3O,QACA1Y,YACA4mN,YACAb,UACAc,gBACAC,gBACA/c,SACAp6K,SACAw/G,eACA/tL,WACAixL,UACA+0E,sBACA70L,SACAxoE,MACAm7P,aACA98E,WACAlnH,aACA4vH,UAAAwzE,GACApsP,SACAxtB,QACA22F,UACAzK,QACAlY,sBACAqpM,4BACA5gL,WACAohG,aACAy/E,YAKA,OAHAxG,EAAAyC,GAAA5pP,EAAA2iD,EAAA,WACA,OAAA3xE,KAEAA,IAEA,SAAAm5Q,GACAA,EAAA90L,IAAA80L,EAAA9+Q,EAAAwZ,UACAslQ,EAAA1zE,UAAAwzE,IAFA,CAGKE,QAAA,KACL,IAAAyD,GAAAzD,GAEA90L,GAAAu4L,GAAAv4L,IACAw4L,GAAAzgR,GAAAgD,KAAA09Q,GAAA1gR,GAAAwhM,KACAm/E,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,WACA,SAAAA,EAAAxrM,QACA,IAAAA,IACAA,EAAA,IAEA10E,KAAA6qI,OAAA,GACA7qI,KAAA0lG,MAAA,GACA1lG,KAAAmgR,sBAAA,GACAngR,KAAAogR,qBAAA,GACApgR,KAAAqgR,QAAA,EACArgR,KAAA00E,WAsIA,OApIAwrM,EAAArgR,UAAA26P,mBAAA,SAAAhU,GACAxmP,KAAA00E,SAAA8xK,kBAEA05B,EAAArgR,UAAAygR,WAAA,SAAAr9K,EAAA3wB,EAAA8kK,GACA,IACA1/J,EAAAr2E,EADAoW,EAAA2vE,GAEAlzE,EAAA,WACAuD,EAAAsT,OAAA1pB,GACAq2E,IACAA,EAAA6oM,mBAAA7oM,EAAAixK,OAAAjxK,EAAA,MAEApF,KAEA1uE,EAAA,WACAiB,EAAAuyO,GACAA,IAEA,qBAAAh6O,EAAAiM,SAAAjM,EAAAiM,QAAAF,KACA/L,EAAAiM,QAAAF,IAAA,0BAAA85F,IAIA5hG,EAAAoW,EAAA6mQ,WACA5mM,EAAAt6E,EAAAwZ,SAAAE,cAAA,UACA4gE,EAAAr2E,KACAq2E,EAAAlzE,KAAA,kBACAkzE,EAAAu1C,IAAA9tH,GAAA+6P,gBAAAj3J,GACAjjG,KAAA00E,SAAA8xK,gBACA/uO,EAAA2vN,UAAA1vJ,EAAA,iBAAA13E,KAAA00E,SAAA8xK,gBAEA9uK,EAAAixK,OAAAz0O,EACAwjE,EAAAq1K,QAAAnpP,GACAxG,EAAAwZ,SAAA8jP,qBAAA,YAAAt9P,EAAAwZ,SAAAgP,MAAA2E,YAAAmtD,IAEAwoM,EAAArgR,UAAA2gR,OAAA,SAAAv9K,GACA,OAAAjjG,KAAA6qI,OAAA5nC,KAAA+8K,IAEAE,EAAArgR,UAAA4gR,SAAA,SAAAx9K,GACAjjG,KAAA6qI,OAAA5nC,GAAA+8K,IAEAE,EAAArgR,UAAAg2B,IAAA,SAAAotE,EAAA3wB,EAAA57D,EAAA0gO,GACA,IAAA3oO,EAAAzO,KAAA6qI,OAAA5nC,QACAlhG,IAAA0M,IACAzO,KAAA0lG,MAAApgG,KAAA29F,GACAjjG,KAAA6qI,OAAA5nC,GAAA68K,IAEAxtM,IACAtyE,KAAAmgR,sBAAAl9K,KACAjjG,KAAAmgR,sBAAAl9K,GAAA,IAEAjjG,KAAAmgR,sBAAAl9K,GAAA39F,KAAA,CACAgtE,UACA8kK,UACA1gO,SAAA1W,SAIAkgR,EAAArgR,UAAAmkE,KAAA,SAAAi/B,EAAA3wB,EAAA57D,EAAA0gO,GACA,OAAAp3O,KAAA61B,IAAAotE,EAAA3wB,EAAA57D,EAAA0gO,IAEA8oC,EAAArgR,UAAAkrB,OAAA,SAAAk4E,UACAjjG,KAAA6qI,OAAA5nC,UACAjjG,KAAAmgR,sBAAAl9K,IAEAi9K,EAAArgR,UAAA6gR,UAAA,SAAApuM,EAAA57D,EAAA0gO,GACAp3O,KAAA2gR,YAAA3gR,KAAA0lG,MAAApzB,EAAA57D,EAAA0gO,IAEA8oC,EAAArgR,UAAA8gR,YAAA,SAAAC,EAAAtuM,EAAA57D,EAAA0gO,GACA,IACAupC,EADA59Q,EAAA/C,KAEA6gR,EAAA,GACAC,EAAA,SAAAx8Q,EAAA2+F,GACA28K,GAAA78Q,EAAAo9Q,sBAAAl9K,GAAA,SAAA5S,GACAxrF,EAAAwrF,EAAA/rF,KACA+rF,EAAA/rF,GAAAvE,KAAAswF,EAAA35E,SAGA3T,EAAAo9Q,sBAAAl9K,QAAAlhG,GAEAgB,EAAAq9Q,qBAAA96Q,KAAA,CACAgtE,UACA8kK,UACA1gO,SAAA1W,OAEA2gR,EAAA,WACA,IAAAI,EAAAlB,GAAAe,GA4BA,GA3BAA,EAAA9iR,OAAA,EACA8hR,GAAAmB,EAAA,SAAA99K,GACAlgG,EAAA8nI,OAAA5nC,KAAA+8K,GAIAj9Q,EAAA8nI,OAAA5nC,KAAAg9K,GAIAl9Q,EAAA8nI,OAAA5nC,KAAA88K,KACAh9Q,EAAA8nI,OAAA5nC,GAAA88K,GACAh9Q,EAAAs9Q,UACAt9Q,EAAAu9Q,WAAAr9K,EAAA,WACAlgG,EAAA8nI,OAAA5nC,GAAA+8K,GACAj9Q,EAAAs9Q,UACAS,EAAA,UAAA79K,GACA09K,KACe,WACf59Q,EAAA8nI,OAAA5nC,GAAAg9K,GACAl9Q,EAAAs9Q,UACAQ,EAAAv7Q,KAAA29F,GACA69K,EAAA,UAAA79K,GACA09K,OAhBAG,EAAA,UAAA79K,GAJA69K,EAAA,UAAA79K,MAwBAlgG,EAAAs9Q,QAAA,CACA,IAAAW,EAAAj+Q,EAAAq9Q,qBAAAj7Q,MAAA,GACApC,EAAAq9Q,qBAAAtiR,OAAA,EACA8hR,GAAAoB,EAAA,SAAA3wL,GACA,IAAAwwL,EAAA/iR,OACA+G,EAAAwrF,EAAA/d,UACA+d,EAAA/d,QAAAvyE,KAAAswF,EAAA35E,OAGA7R,EAAAwrF,EAAA+mJ,UACA/mJ,EAAA+mJ,QAAAr3O,KAAAswF,EAAA35E,MAAAmqQ,OAMAF,KAEAT,eAAA,IAAAA,EACAA,EAhJA,GAmJAe,GAAA,SAAA9jQ,GACA,OAAAzY,EAAAyY,IAAAhV,GAAAgV,EAAA,QAEA+jQ,GAAA,SAAA/jQ,GACA,OAAAxY,EAAAwY,MAAArf,OAAA,GAEA+mB,GAAA,GACAs8P,GAAA/qQ,GAAA,MACAob,GAAA,WACA,OAAA7pB,GAAAkd,GAAA,SAAA5mB,GACA,OAAAoB,EAAA,GAA0BpB,MAG1BmjR,GAAA,SAAAC,GACAA,GACAF,GAAA7qQ,IAAA+qQ,IAGAC,GAAA,WACA,OAAAH,GAAAl5Q,OAEA4tB,GAAA,SAAAovE,EAAAjgD,GACA,IAAAu8N,EAAA18P,GAAAogF,GAIA,QAAA3gG,KAHAi9Q,IACA18P,GAAAogF,GAAAs8K,EAAA,IAEAv8N,EACAu8N,EAAAj9Q,EAAA6U,eAAA6rC,EAAA1gD,IAGA43B,GAAA,SAAA3kB,GACA,IAAAgqQ,EAAA18P,GAAAs8P,GAAAl5Q,QAAA,GACAtF,EAAA,SAAA8E,GACA,OAAA5C,EAAA4C,GACAnI,OAAAO,UAAA8C,SAAA5C,KAAA0H,GAEAq4L,EAAAr4L,GAAA,MAAAA,GAEAq4L,EAAA,SAAAvoL,GACA,WAAAA,GAAA,OAAAA,QAAAxV,IAAAwV,GAEAiqQ,EAAA,SAAAjqQ,GACA,IAAAkqQ,EAAA9+Q,EAAA4U,GACAmqQ,EAAAD,EAAAtoQ,cACA,OAAAhR,GAAAo5Q,EAAAG,GAAA/+Q,EAAA4+Q,EAAAG,IAAAD,GAEAE,EAAA,SAAAxkQ,GACA,OAAAA,EAAArE,QAAA,iBAAyC,KAEzCyuE,EAAA,SAAAhwE,GACA,OAAAA,GAEA,GAAAuoL,EAAAvoL,GACA,OAAAgwE,EAAA,IAEA,GAAA05L,GAAA1pQ,GACA,OAAAgwE,EAAA5kF,EAAA4U,EAAAogB,MAEA,GAAAupP,GAAA3pQ,GAAA,CACA,IAAAi1G,EAAAj1G,EAAApS,MAAA,GACAy8Q,EAAAJ,EAAAjqQ,EAAA,IAAAuB,QAAA,gBAAmE,SAAA+oQ,EAAAC,GACnE,OAAA35Q,GAAAqkH,EAAAs1J,GAAAn/Q,EAAA6pH,EAAAs1J,IAAAD,IAEA,OAAAt6L,EAAAo6L,EAAAC,IAEA,OAAAr6L,EAAAo6L,EAAAH,EAAAjqQ,MAEA60B,GAAA,WACA,OAAAnkC,GAAA4c,GAAAs8P,GAAAl5Q,OAAA7F,KAAA,SAAA4iD,GACA,OAAA/8C,GAAA+8C,EAAA,UACO3iD,OAAA,SAAAgnE,GACP,cAAAA,KAGA04M,GAAA,SAAA98K,GACA,OAAA98F,GAAA0c,GAAAogF,IAEA+8K,GAAA,CACAxwP,WACA4vP,WACAE,WACAzrP,OACAqG,aACAkQ,SACA21O,YAGAE,GAAA9iR,GAAAgD,KACA,SAAA+/Q,KACA,IAAA53B,EAAAtqP,KACAglD,EAAA,GACAm3M,EAAA,GACAt3M,EAAA,GACAs9N,EAAA,GACAl6Q,EAAA,SAAA3D,GACA,GAAAugD,EAAAvgD,GACA,OAAAugD,EAAAvgD,GAAAwhI,UAIAs8I,EAAA,SAAA99Q,GACA,IAAA2H,EAIA,OAHA44C,EAAAvgD,KACA2H,EAAA44C,EAAAvgD,GAAA89Q,cAEAn2Q,GAAA,IAEAo2Q,EAAA,SAAA/9Q,EAAAg+Q,GACA,IAAAv6B,EAAAi6B,GAAAV,UACA,GAAAv5B,IAAA,IAAAm6B,GAAAK,aAAA,CACA,GAAAD,EAEA,GADAA,EAAA,IAAAA,EAAA,KACA,IAAAA,EAAAniR,QAAA,IAAA4nP,EAAA3qO,OAAA,UACA2qO,IAAA3qO,OAAA,UACa,QAAAklQ,EAAAniR,QAAA,IAAA4nP,EAAA,KACb,OAGAm4B,gBAAArqP,IAAAsmO,EAAA73P,GAAA,UAAAyjP,EAAA,SAGAlyN,EAAA,SAAAx0B,EAAAmhR,EAAAJ,GACAp9N,EAAA1/C,KAAAk9Q,GACA39N,EAAAxjD,GAAA,CACAykI,SAAA08I,EACAJ,gBAEA,IAAAn2Q,EAAAhG,EAAAk8Q,EAAA,SAAAnlL,GACA,OAAAA,EAAA14F,OAAAjD,IAMA,OAJA8gR,EAAAl2Q,EAAA9F,KACA87Q,GAAAh2Q,EAAA/F,KAAA,SAAA82F,GACAA,EAAA3M,aAEAmyL,GAEAz3P,EAAA,SAAAzmB,UACA63P,EAAA73P,UACAugD,EAAAvgD,IAEAm+Q,EAAA,SAAA36B,EAAA/nN,GACA,wBAAAA,EACAA,EAEA,kBAAA+nN,EAAA,CACA16N,OAAA,GACAs1P,SAAA3iP,EACAviB,OAAA,IACS,CACT4P,OAAA06N,EAAA16N,OACAs1P,SAAA3iP,EACAviB,OAAAsqO,EAAAtqO,SAGAmlQ,EAAA,SAAAC,EAAAhC,GACA,IAAAiC,EAAAv4B,EAAA6R,KAAAymB,GACAX,GAAArB,EAAA,SAAAhe,GACAsd,gBAAArqP,IAAAgtP,EAAA,IAAAjgB,MAGAkgB,EAAA,SAAAx+Q,EAAAy+Q,EAAAzwM,EAAA57D,GACA,IAAAssQ,EAAAZ,EAAA99Q,GACA29Q,GAAAe,EAAA,SAAAjjP,GACA,IAAAoyK,EAAAswE,EAAAM,EAAAhjP,GACAikC,EAAAmuI,EAAAuwE,SAAAvwE,OAAApwM,YAEAuwE,IACA57D,EACA47D,EAAAvyE,KAAA2W,GAEA47D,EAAAvyE,KAAAmgR,MAIAl8M,EAAA,SAAA1/D,EAAAy+Q,EAAAzwM,EAAA57D,EAAA0gO,GACA,IAAA+kB,EAAA73P,GAAA,CAGA,IAAA2+Q,EAAA,kBAAAF,MAAA31P,OAAA21P,EAAAL,SAAAK,EAAAvlQ,OACA,IAAAylQ,EAAA9iR,QAAA,WAAA8iR,EAAA9iR,QAAA,SACA8iR,EAAAf,GAAA1iL,QAAA,IAAAyjL,GAEA9mB,EAAA73P,GAAA2+Q,EAAAtzP,UAAA,EAAAszP,EAAAC,YAAA,MACAr+N,EAAAvgD,GACAw+Q,EAAAx+Q,EAAAy+Q,EAAAzwM,EAAA57D,GAEAwpQ,gBAAArqP,IAAAotP,EAAA,WACA,OAAAH,EAAAx+Q,EAAAy+Q,EAAAzwM,EAAA57D,IACWA,EAAA0gO,KAGX+rC,EAAA,SAAA7+Q,EAAA+rF,GACAxrC,EAAA/kD,eAAAwE,GACA+rF,IAEA8xL,EAAA78Q,KAAA,CACAhB,OACA+rF,cAIA,OACArrC,QACAm3M,OACAt3M,SACAs9N,aACAl6Q,MACAm6Q,eACAC,kBACAxsP,MACA9K,SACA03P,YACAE,gBACA3+M,OACAm/M,YAGA,SAAAjB,GACAA,EAAAkB,cAAAlB,IACAA,EAAAmB,aAAAnB,KAFA,CAGKA,QAAA,KACL,IAAAoB,GAAApB,GAEA7uO,GAAA,SAAAh1C,EAAAq3E,GACA,IAAAC,EAAA,KACAC,EAAA,WACA,OAAAD,IACAv4E,EAAAy4E,aAAAF,GACAA,EAAA,OAGAG,EAAA,WAEA,IADA,IAAAn4E,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,OAAA+3E,IACAA,EAAAv4E,EAAA83E,WAAA,WACA72E,EAAAN,MAAA,KAAAJ,GACAg4E,EAAA,MACWD,KAGX,OACAE,SACAE,aAGAC,GAAA,SAAA13E,EAAAq3E,GACA,IAAAC,EAAA,KACAC,EAAA,WACA,OAAAD,IACAv4E,EAAAy4E,aAAAF,GACAA,EAAA,OAGAG,EAAA,WAEA,IADA,IAAAn4E,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEA,OAAA+3E,GACAv4E,EAAAy4E,aAAAF,GAEAA,EAAAv4E,EAAA83E,WAAA,WACA72E,EAAAN,MAAA,KAAAJ,GACAg4E,EAAA,MACSD,IAET,OACAE,SACAE,aAIAx0D,GAAA,SAAA7B,EAAAmW,GACA,IAAA33B,EAAAmtB,GAAA3L,EAAAmW,GACA,YAAA7zB,IAAA9D,GAAA,KAAAA,EAAA,GAAAA,EAAA2xB,MAAA,MAEAsG,GAAA,SAAAzW,EAAAmW,EAAAv0B,GACA,IAAAqI,EAAA4X,GAAA7B,EAAAmW,GACAjsB,EAAAD,EAAAjL,OAAA,CAAA4C,IAEA,OADAiV,GAAAmJ,EAAAmW,EAAAjsB,EAAAZ,KAAA,OACA,GAEA+sB,GAAA,SAAArW,EAAAmW,EAAAv0B,GACA,IAAAsI,EAAApH,EAAA+e,GAAA7B,EAAAmW,GAAA,SAAA5yB,GACA,OAAAA,IAAA3B,IAOA,OALAsI,EAAA7L,OAAA,EACAwY,GAAAmJ,EAAAmW,EAAAjsB,EAAAZ,KAAA,MAEAgiB,GAAAtL,EAAAmW,IAEA,GAGAG,GAAA,SAAAtW,GACA,YAAA1d,IAAA0d,EAAAhI,MAAAue,WAEAuB,GAAA,SAAA9X,GACA,OAAA6B,GAAA7B,EAAA,UAEA4W,GAAA,SAAA5W,EAAA0W,GACA,OAAAD,GAAAzW,EAAA,QAAA0W,IAEAC,GAAA,SAAA3W,EAAA0W,GACA,OAAAL,GAAArW,EAAA,QAAA0W,IAGAM,GAAA,SAAAhX,EAAA0W,GACAJ,GAAAtW,GACAA,EAAAhI,MAAAue,UAAAH,IAAAM,GAEAE,GAAA5W,EAAA0W,IAGAG,GAAA,SAAA7W,GACA,IAAAuW,EAAAD,GAAAtW,KAAAhI,MAAAue,UAAAuB,GAAA9X,GACA,IAAAuW,EAAAl4B,QACAitB,GAAAtL,EAAA,UAGA8W,GAAA,SAAA9W,EAAA0W,GACA,GAAAJ,GAAAtW,GAAA,CACA,IAAAuW,EAAAvW,EAAAhI,MAAAue,UACAA,EAAAjL,OAAAoL,QAEAC,GAAA3W,EAAA0W,GAEAG,GAAA7W,IAEA+W,GAAA,SAAA/W,EAAA0W,GACA,OAAAJ,GAAAtW,MAAAhI,MAAAue,UAAAtwB,SAAAywB,IAGAme,GAAA,SAAA59B,EAAAoP,GACA,IAAA7Z,EAAA,GAOA,OANA9J,EAAAqnB,GAAA9S,GAAA,SAAAvY,GACA2nB,EAAA3nB,KACA8N,IAAAxN,OAAA,CAAAN,KAEA8N,IAAAxN,OAAA61C,GAAAn2C,EAAA2nB,MAEA7Z,GAGAixE,GAAA,SAAAxmE,EAAAgJ,GACA,OAAAlhB,GAAAkhB,EAAAhJ,IAGA,SAAAuO,GAAAzjB,EAAA0jB,EAAAxO,EAAA/V,EAAAwkB,GACA,OAAA3jB,EAAAkV,EAAA/V,GAAAyC,EAAAP,KAAA6T,GAAA7R,EAAAsgB,MAAAzO,GAAAtT,EAAArC,OAAAmkB,EAAAxO,EAAA/V,EAAAwkB,GAGA,IAAAD,GAAA,SAAAxO,EAAAoP,EAAAX,GACA,IAAA1F,EAAA/I,EAAAe,MACAsO,EAAAlhB,EAAAsgB,KAAAnnB,GAAA,GACA,MAAAyhB,EAAAiG,WAAA,CACAjG,IAAAiG,WACA,IAAAM,EAAAlO,GAAAZ,QAAAuI,GACA,GAAAqG,EAAAE,GACA,OAAA5iB,EAAAP,KAAAmjB,GACS,GAAAD,EAAAC,GACT,MAGA,OAAA5iB,EAAArC,QAEAklB,GAAA,SAAAvP,EAAAoP,EAAAX,GACA,IAAA3jB,EAAA,SAAA/B,EAAA8Y,GACA,OAAAA,EAAA9Y,IAEA,OAAAwlB,GAAAzjB,EAAA0jB,GAAAxO,EAAAoP,EAAAX,IAGAsa,GAAA,SAAA/oB,EAAAgJ,EAAAyF,GACA,OAAAD,GAAAxO,EAAA,SAAAxW,GACA,OAAAsB,GAAAtB,EAAAwf,IACOyF,IAEPe,GAAA,SAAAxP,EAAAgJ,GACA,OAAAS,GAAAT,EAAAhJ,IAEA2P,GAAA,SAAA3P,EAAAgJ,EAAAyF,GACA,OAAAF,GAAAzjB,GAAAi+B,GAAA/oB,EAAAgJ,EAAAyF,IAGAo+P,GAAAvlR,EAAA,kBACAwlR,GAAAxlR,EAAA,uBACAylR,GAAAzlR,EAAA,2BAEAqnN,GAAA,SAAAxxI,EAAA6vM,GACA,IAAAx0O,EAAA2kC,EAAA5kC,UAAAkrC,SACA98D,EAAAvF,GAAAZ,QAAAg4B,EAAAC,gBACAiH,EAAAt+B,GAAAZ,QAAA28D,EAAAhuD,WACAnG,EAAAgkQ,EAAAniR,KAAA,WACA,UAAAgiR,MACO,SAAAI,GACP,UAAAH,KAAA,KAAAG,EAAA,OAEAC,EAAAn6P,GAAApM,EAAA6xB,EAAAwB,aAAAhvC,MAAA2b,GACA4I,EAAAI,GAAAu9P,EAAAlkQ,EAAA,SAAA/f,GACA,OAAAsB,GAAAtB,EAAAy2C,KAEAssH,EAAA,SAAAh7I,EAAAqP,GACA,OAAA1K,GAAA3E,EAAAqP,GACA3zB,EAAAP,KAAAuoB,GAAA1D,EAAAqP,IAEA3zB,EAAArC,QAGA,OAAAklB,EAAA7jB,KAAA,SAAAslB,GACA,OAAAg7I,EAAAh7I,EAAA,GAAA+7P,MAAArhR,KAAA,SAAA4kB,GACA,OAAA07I,EAAAh7I,EAAA,GAAA87P,MAAAthR,IAAA,SAAAoC,GACA,IAAAomB,EAAAm5P,GAAAhwM,EAAA7sD,GACA,OACAA,MACA1iB,OACAomB,mBAMAo5P,GAAA,SAAAlkQ,GACA,OAAA85D,GAAA95D,IAAA4W,GAAA5W,EAAA2jQ,OAEAM,GAAA,SAAAhwM,EAAA7sD,GACA,IAAApB,EAAA9N,GAAAZ,QAAA28D,EAAAhuD,WACA,OAAAq3D,GAAAt3D,EAAA,IAAA69P,KAAA,KAAAz8P,EAAA,OAEA+8P,GAAA,SAAAlwM,EAAAvvE,GACA,IAAAshB,EAAA9N,GAAAZ,QAAA28D,EAAAhuD,WACAgd,EAAAq6C,GAAAt3D,EAAA,IAAA49P,KAAA,KAAAl/Q,EAAA,MACAukE,EAAA,GAMA,OALA1mE,EAAA0gC,EAAA,SAAA+mD,GACA,IAAA5iE,EAAAoE,GAAAw+D,EAAA65L,MACAO,EAAAn7M,EAAA/oE,eAAAknB,GAAA6hD,EAAA7hD,GAAA,GACA6hD,EAAA7hD,GAAAg9P,EAAAvlR,OAAA,CAAAmrF,MAEA/gB,GAGA8C,GAAA,SAAAkI,EAAAiI,GACA,IAAAmoM,EAAA7tQ,GAAA,IACA8tQ,EAAA,WACA,OACAnnL,UAAA,GACAihF,SAAA5nK,GAAAhT,EAAArC,UAGAojR,EAAA,SAAA7/Q,EAAA/G,GACA6mR,EAAA9/Q,EAAA,SAAAugB,GAEA,OADAtnB,EAAAsnB,GACAA,KAGAu/P,EAAA,SAAA9/Q,EAAA/G,GACA,IAAA8mR,EAAAJ,EAAAh8Q,MACA4c,EAAAw/P,EAAAvkR,eAAAwE,GAAA+/Q,EAAA//Q,GAAA4/Q,IACAI,EAAA/mR,EAAAsnB,GACAw/P,EAAA//Q,GAAAggR,EACAL,EAAA3tQ,IAAA+tQ,IAEAE,EAAA,SAAAjgR,EAAA0iB,EAAA0D,GACAy5P,EAAA7/Q,EAAA,SAAAugB,GACA1iB,EAAA0iB,EAAAk4E,UAAA,SAAAx/F,GACA,OAAAA,GAAA,EAAA+G,EAAA,CACA0iB,MACAyrB,MAAAvwC,EAAAwoB,EAAA,SAAA9K,GACA,OAAAA,EAAAnI,eAMA+sQ,EAAA,SAAAlgR,GACA6/Q,EAAA7/Q,EAAA,SAAAugB,GACA1iB,EAAA0iB,EAAAk4E,UAAA,SAAAx/F,GACA,OAAAA,GAAA,EAAA+G,QAIA+vK,EAAAt+F,GAAA,WACA,IAAAsuM,EAAAJ,EAAAh8Q,MACA6sO,EAAA7tO,EAAAM,GAAA88Q,IACAliR,EAAA2yO,EAAA,SAAAxwO,GACA8/Q,EAAA9/Q,EAAA,SAAAugB,GACA,IAAAqyD,EAAAryD,EAAAm5J,SAAA/1K,MAaA,OAZAo9M,GAAAxxI,EAAAzwE,EAAAP,KAAAyB,IAAA/C,KAAA,WACA21E,EAAAz1E,WACA+iR,EAAAlgR,GACAugB,EAAAm5J,SAAA1nK,IAAAlT,EAAArC,UAEa,SAAAo5B,GACb,IAAAnT,EAAAmT,EAAAnT,IAAA1iB,EAAA61B,EAAA71B,KAAAomB,EAAAyP,EAAAzP,SACAwsD,EAAA11E,GAAAwlB,KACAu9P,EAAAjgR,EAAA0iB,EAAA0D,GACA7F,EAAAm5J,SAAA1nK,IAAAlT,EAAAP,KAAAmkB,OAGA,CACAg3J,SAAAn5J,EAAAm5J,SACAjhF,UAAAl4E,EAAAk4E,gBAIO,IACPlpB,EAAA/lC,GAAA,oBACAumI,EAAAz+F,WAEA/B,EAAA/lC,GAAA,wBACAumI,EAAAv+F,aAEA,IAAAswB,EAAA,SAAA9hG,EAAA/G,GACA6mR,EAAA9/Q,EAAA,SAAAugB,GACA,OACAm5J,SAAAn5J,EAAAm5J,SACAjhF,UAAAl4E,EAAAk4E,UAAAt+F,OAAA,CAAAlB,QAIA,OAAc6oG,gBAGdlL,GAAA,SAAArnB,EAAAiI,GACA,IAAA2oM,EAAA,SAAAjyK,GACA,OAAApvG,EAAAD,KAAAqvG,EAAA58E,KAAA4tP,OAAAphR,KAAA05E,EAAAj3B,SAEAgvB,EAAA/lC,GAAA,kBACA+lC,EAAAsgI,WAAAyD,cAAA,gBAAA8sE,GACAviR,EAAAuiR,EAAA,SAAAlyK,GACAiyK,EAAAjyK,GAAArwG,KAAA,SAAAuyE,IACA,IAAAA,EAAAiwM,YACAnyK,EAAAvnF,kBAQAsc,GAAA,WACA,IAAAutM,EAAA,GACAn5J,EAAA,SAAAr3E,EAAAowE,GACAogK,EAAAxwO,GAAA,CACAA,OACAowE,aAGA7vB,EAAA,SAAAvgD,GACA,OAAAwwO,EAAAh1O,eAAAwE,GAAAlB,EAAAD,KAAA2xO,EAAAxwO,IAAApC,IAAA,SAAAvB,GACA,OAAAA,EAAA+zE,WACStxE,EAAArC,QAET,OACA46E,WACA92B,WAIA33B,GAAA,EACA9kB,GAAA,SAAAglB,GACA,IAAAC,EAAA,IAAAC,KACAC,EAAAF,EAAAG,UACAC,EAAAC,KAAAC,MAAA,IAAAD,KAAAD,UAEA,OADAP,KACAE,EAAA,IAAAK,EAAAP,GAAAppB,OAAAypB,IAGAizI,GAAA,SAAA/gJ,EAAAoS,GACA1vB,EAAA0vB,EAAA,SAAA1zB,GACAs4B,GAAAhX,EAAAthB,MAIAoY,GAAA,SAAAkW,EAAAC,GACA,OAAA5U,GAAAZ,QAAAuV,EAAAhV,MAAAoU,UAAAa,KAEAjjB,GAAA,SAAAgjB,GACA,OAAAlW,GAAAkW,GAAA,IAEA7iB,GAAA,SAAA6iB,GACA,OAAAlW,GAAAkW,GAAA,IAGA5C,GAAA,SAAApT,EAAAC,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACAC,EAAAF,EAAAG,cAAA,OAEA,OADAD,EAAAE,UAAAN,EACA+S,GAAA1R,GAAAZ,QAAAL,KAGAmhB,GAAA,SAAAvY,GACA,OAAAA,EAAAhI,MAAAV,WAEAiV,GAAA,SAAAvM,EAAA4L,GACA,IAAAC,EAAApC,GAAAzJ,GACA8L,EAAAD,EAAA7T,MACA+T,EAAA1T,GAAAZ,QAAAqU,EAAAE,0BACAC,EAAA7B,GAAAwB,EAAAE,GACAZ,GAAAa,EAAAE,GACAd,GAAAnL,GACA2K,GAAA3K,EAAA+L,IAGAo5P,GAAA,SACAC,GAAA,SAAAnkB,GACA,OAAAA,IAAAkkB,IAEAE,GAAA,SAAAvtQ,GACA,OAAAA,EAAAuB,QAAA,IAAA4uE,OAAAk9L,GAAA,UAEAG,GAAA,CACAF,UACAD,QACAnnQ,KAAAqnQ,IAGAE,GAAA9kF,GAAA36K,UACAk0D,GAAAymH,GAAA16K,OACAy/P,GAAA,SAAA5tQ,GAIA,OAHAoiE,GAAApiE,KACAA,IAAAqO,YAEAs/P,GAAA3tQ,MAAAiV,aAAA,mBAEA44P,GAAA,SAAA7tQ,GACA,OAAAoiE,GAAApiE,IAAA0tQ,GAAAF,OAAAxtQ,EAAAwN,OAEAsgQ,GAAA,SAAA9tQ,GACA,OAAA4tQ,GAAA5tQ,IAAA6tQ,GAAA7tQ,IAEA+tQ,GAAA,SAAA/tQ,GACA,OAAAA,EAAAuS,aAAAvS,EAAAonL,YAAAyB,GAAAZ,KAAAjoL,EAAAuS,aAEAy7P,GAAA,SAAAhuQ,EAAAyS,GACA,IAAAnT,EAAAwT,EAAAm7P,EAAA5/P,EAIA,GAHA/O,EAAAU,EAAAsO,cACA2/P,EAAA3uQ,EAAAa,eAAAutQ,GAAAH,MACAl/P,EAAArO,EAAAqO,WACAoE,EAgBO,CAEP,GADAK,EAAA9S,EAAAwoL,gBACApmH,GAAAtvD,GAAA,CACA,GAAAg7P,GAAAh7P,GACA,OAAAA,EAEA,GAAAo7P,GAAAp7P,GACA,OAAAA,EAAAq7P,UAAAr7P,EAAAtF,KAAA/mB,OAAA,GAGA4nB,EAAAuE,aAAAq7P,EAAAjuQ,OA1BA,CAEA,GADA8S,EAAA9S,EAAAkS,YACAkwD,GAAAtvD,GAAA,CACA,GAAAg7P,GAAAh7P,GACA,OAAAA,EAEA,GAAAs7P,GAAAt7P,GAEA,OADAA,EAAAq7P,UAAA,GACAr7P,EAGA9S,EAAAkS,YACA7D,EAAAuE,aAAAq7P,EAAAjuQ,EAAAkS,aAEA7D,EAAA6E,YAAA+6P,GAcA,OAAAA,GAEAI,GAAA,SAAAh6O,GACA,IAAA9f,EAAA8f,EAAA9f,YACA,SAAA8f,IAAAw0J,GAAA16K,OAAAoG,MAGAA,EAAA/G,KAAAqzD,OAAAxsC,EAAA3M,YAAAgmP,GAAAH,MAAAl5O,EAAAi6O,aAAAT,GAAAt5P,EAAAi0K,mBAEA+lF,GAAA,SAAAl6O,GACA,IAAA9f,EAAA8f,EAAA9f,YACA,SAAA8f,IAAAw0J,GAAA16K,OAAAoG,MAGAA,EAAA/G,KAAAqzD,OAAAxsC,EAAA3M,SAAA,KAAAgmP,GAAAH,MAAAl5O,EAAAm6O,WAAAX,GAAAt5P,EAAArC,eAEAu8P,GAAA,WACA,IAAA1tC,EAAAh7O,EAAAwZ,SAAAE,cAAA,MAEA,OADAshO,EAAArsN,aAAA,sBACAqsN,GAEA2tC,GAAA,SAAA7jF,EAAA7qL,EAAAyS,GACA,IAAAnT,EAAAqvQ,EAAAtgQ,EAgBA,OAfA/O,EAAAU,EAAAsO,cACAqgQ,EAAArvQ,EAAAG,cAAAorL,GACA8jF,EAAAj6P,aAAA,iBAAAjC,EAAA,kBACAk8P,EAAAj6P,aAAA,wBACAi6P,EAAAz7P,YAAAu7P,MACApgQ,EAAArO,EAAAqO,WACAoE,EAOApE,EAAAuE,aAAA+7P,EAAA3uQ,GANAA,EAAAkS,YACA7D,EAAAuE,aAAA+7P,EAAA3uQ,EAAAkS,aAEA7D,EAAA6E,YAAAy7P,GAKAA,GAEAP,GAAA,SAAApuQ,GACA,OAAAoiE,GAAApiE,MAAAwN,KAAA,KAAAkgQ,GAAAH,MAEAW,GAAA,SAAAluQ,GACA,OAAAoiE,GAAApiE,MAAAwN,KAAAxN,EAAAwN,KAAA/mB,OAAA,KAAAinR,GAAAH,MAEAqB,GAAA,SAAAvuM,GACA,IAAAwuM,EAAAxuM,EAAAgjL,qBAAA,MACAyrB,EAAAD,IAAApoR,OAAA,GACAoiM,GAAA21D,QAAAswB,IACAA,EAAAzgQ,WAAAsF,YAAAm7P,IAGAC,GAAA,SAAAC,GACA,OAAAA,KAAA/5P,aAAA,mBACA25P,GAAAI,GACAA,EAAA75P,gBAAA,kBACA65P,EAAA75P,gBAAA,kBACA65P,EAAA75P,gBAAA,SACA65P,EAAA75P,gBAAA,eACA65P,GAEA,MAEAC,GAAA,SAAA3gR,GACA,OAAAs/Q,GAAAt/Q,EAAAwpC,iBAGAo3O,GAAArmF,GAAAljD,sBACAwpI,GAAAtmF,GAAAjjD,uBACAwpI,GAAAvmF,GAAAZ,KACAonF,GAAAxmF,GAAA16K,OACAmhQ,GAAAzmF,GAAAk1D,eAAA,CACA,SACA,QACA,aAEAwxB,GAAA1mF,GAAAk1D,eAAA,CACA,MACA,QACA,WACA,KACA,SACA,QACA,QACA,WAEAyxB,GAAA3mF,GAAAk1D,eAAA,WACA0xB,GAAA3B,GACA4B,GAAA,SAAA1vQ,GACA,OAAAyvQ,GAAAzvQ,KAGAqvQ,GAAArvQ,IACAsvQ,GAAAtvQ,EAAAqO,YAKAkhQ,GAAAvvQ,IAAAovQ,GAAApvQ,IAAAwvQ,GAAAxvQ,IAAA2vQ,GAAA3vQ,KAEA4vQ,GAAA,SAAA5vQ,GACA,OAAA6oL,GAAA36K,UAAAlO,IAAA,SAAAA,EAAA+U,aAAA,iBAEA46P,GAAA,SAAA3vQ,GACA,WAAA4vQ,GAAA5vQ,IAAAmvQ,GAAAnvQ,IAEA6vQ,GAAA,SAAA7vQ,EAAA++B,GACA,IAAA/+B,IAAAqO,WAAkCrO,OAAA++B,EAAuB/+B,IAAAqO,WAAA,CACzD,GAAAshQ,GAAA3vQ,GACA,SAEA,GAAAkvQ,GAAAlvQ,GACA,SAGA,UAEA8vQ,GAAA,SAAA9vQ,GACA,QAAA2vQ,GAAA3vQ,KAKO,IAFP9Q,EAAAe,EAAA+P,EAAAqjP,qBAAA,eAAAzuP,EAAAyrE,GACA,OAAAzrE,GAAAs6Q,GAAA7uM,KACO,IAEP0vM,GAAA,SAAA/vQ,GACA,OAAAuvQ,GAAAvvQ,IAAA8vQ,GAAA9vQ,IAEAgwQ,GAAA,SAAAhwQ,EAAA++B,GACA,OAAA2wO,GAAA1vQ,IAAA6vQ,GAAA7vQ,EAAA++B,IAGAm0C,GAAA78D,KAAA68D,MACAqhC,GAAA,SAAA1sF,GACA,OAAAA,EAUA,CACAlD,KAAAuuD,GAAArrD,EAAAlD,MACAC,IAAAsuD,GAAArrD,EAAAjD,KACA2B,OAAA2sD,GAAArrD,EAAAtB,QACAD,MAAA4sD,GAAArrD,EAAAvB,OACAD,MAAA6sD,GAAArrD,EAAAxB,OACAjC,OAAA8uD,GAAArrD,EAAAzD,SAfA,CACAO,KAAA,EACAC,IAAA,EACA2B,OAAA,EACAD,MAAA,EACAD,MAAA,EACAjC,OAAA,IAYA2W,GAAA,SAAAlT,EAAAy+M,GASA,OARAz+M,EAAA0sF,GAAA1sF,GACAy+M,EACAz+M,EAAAvB,MAAAuB,EAAAlD,MAEAkD,EAAAlD,KAAAkD,EAAAlD,KAAAkD,EAAAxB,MACAwB,EAAAvB,MAAAuB,EAAAlD,MAEAkD,EAAAxB,MAAA,EACAwB,GAEAooP,GAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAvrP,OAAAwrP,EAAAxrP,MAAAurP,EAAAtrP,MAAAurP,EAAAvrP,KAAAsrP,EAAA3pP,SAAA4pP,EAAA5pP,QAAA2pP,EAAA5pP,QAAA6pP,EAAA7pP,OAEA8pP,GAAA,SAAAC,EAAAH,EAAAC,GACA,OAAAE,GAAA,GAAAA,GAAAh6P,KAAAmlB,IAAA00O,EAAA9rP,OAAA+rP,EAAA/rP,QAAA,GAEAglJ,GAAA,SAAA8mG,EAAAC,GACA,OAAAD,EAAA3pP,OAAA2pP,EAAA9rP,OAAA,EAAA+rP,EAAAvrP,OAGAsrP,EAAAtrP,IAAAurP,EAAA5pP,SAGA6pP,GAAAD,EAAAvrP,IAAAsrP,EAAA3pP,OAAA2pP,EAAAC,IAEA9mG,GAAA,SAAA6mG,EAAAC,GACA,OAAAD,EAAAtrP,IAAAurP,EAAA5pP,UAGA2pP,EAAA3pP,OAAA4pP,EAAAvrP,MAGAwrP,GAAAD,EAAA5pP,OAAA2pP,EAAAtrP,IAAAsrP,EAAAC,IAEAG,GAAA,SAAAzoP,EAAAs5D,EAAAC,GACA,OAAAD,GAAAt5D,EAAAlD,MAAAw8D,GAAAt5D,EAAAvB,OAAA86D,GAAAv5D,EAAAjD,KAAAw8D,GAAAv5D,EAAAtB,QAGAgqP,GAAA,SAAAjiR,GACA,IAAAwpC,EAAAxpC,EAAAwpC,eAAAuB,EAAA/qC,EAAA+qC,YACA,OAAAvB,EAAAn4B,iBAAArR,EAAAirC,YAAAF,EAAA,EACAvB,EAAAl4B,WAAAy5B,GAEA,MAEA4mC,GAAA,SAAA1rD,EAAAmT,GAOA,OANA,IAAAnT,EAAAjM,UAAAiM,EAAA5U,kBACA+nB,GAAAnT,EAAA3U,WAAAnZ,SACAihC,EAAAnT,EAAA3U,WAAAnZ,OAAA,GAEA8tB,IAAA3U,WAAA8nB,IAEAnT,GAGAi8P,GAAA,IAAAngM,OAAA,weACAogM,GAAA,SAAA71Q,GACA,wBAAAA,KAAA+7G,WAAA,SAAA65J,GAAAtvQ,KAAAtG,IAGAwuB,GAAA,SAAAC,EAAAC,EAAApjC,GACA,OAAAmjC,EAAAj/B,UAAAk/B,EAAAl/B,SAAA2B,EAAAP,KAAAtF,EAAAmjC,EAAA9+B,WAAA++B,EAAA/+B,aAAAwB,EAAArC,QAEA6/B,GAAA,SAAAF,EAAAC,EAAAE,EAAAtjC,GACA,OAAAmjC,EAAAj/B,UAAAk/B,EAAAl/B,UAAAo/B,EAAAp/B,SAAA2B,EAAAP,KAAAtF,EAAAmjC,EAAA9+B,WAAA++B,EAAA/+B,WAAAi/B,EAAAj/B,aAAAwB,EAAArC,QAEAgnR,GAAA,SAAA7kR,EAAAvC,GACA,OAAAuC,EAAAE,EAAAP,KAAAlC,GAAAyC,EAAArC,QAGAinR,GAAA,GAAA7iR,MACAnD,GAAA,WAEA,IADA,IAAA7D,EAAA,GACAP,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CO,EAAAP,GAAAC,UAAAD,GAEA,IAAAD,EAAAqqR,GAAAjoR,KAAAlC,WACA,gBAAAM,GACA,QAAAuB,EAAA,EAAuBA,EAAA/B,EAAAG,OAAiB4B,IACxC,GAAA/B,EAAA+B,GAAAvB,GACA,SAGA,WAGAozD,GAAA,WAEA,IADA,IAAApzD,EAAA,GACAP,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CO,EAAAP,GAAAC,UAAAD,GAEA,IAAAD,EAAAqqR,GAAAjoR,KAAAlC,WACA,gBAAAM,GACA,QAAAuB,EAAA,EAAuBA,EAAA/B,EAAAG,OAAiB4B,IACxC,IAAA/B,EAAA+B,GAAAvB,GACA,SAGA,WAGA8pR,GAAA,CACA12N,OACAvvD,OAGAkmR,GAAAhoF,GAAA36K,UACA4iQ,GAAApB,GACAnqD,GAAA18B,GAAAo1D,iBAAA,yBACA8yB,GAAAloF,GAAAo1D,iBAAA,sBACA+yB,GAAAJ,GAAA12N,IAAA22N,GAAAC,GAAAzpR,EAAA0pR,KACAE,GAAA5pR,EAAAwhM,GAAAo1D,iBAAA,wCACAizB,GAAAroF,GAAA16K,OACAgjQ,GAAAtoF,GAAAZ,KACAkJ,GAAAm3E,GAAAn3E,UACAigF,GAAAnxM,GACApnC,GAAA,SAAAv5B,GACA,sBAAAA,IAAAu5B,cAAAyvO,GAAAv4L,IAAAxO,aAEA8vM,GAAA,SAAAhoB,GACA,OAAAA,GAAA,YAAAnoP,KAAAmoP,IAEAioB,GAAA,SAAAz5O,GACA,QAAAA,EAAAQ,YAAAR,EAAAa,QAEA64O,GAAA,SAAAjjR,GACA,IAEA4R,EAFAqU,EAAAjmB,EAAAwpC,eACApQ,EAAAp5B,EAAA+qC,YAEA,SAAAg4O,GAAA/iR,EAAAhD,aAAA2lR,GAAA18P,EAAAlG,aAAAw6K,GAAA16K,OAAAoG,KACArU,EAAAqU,EAAA/G,KACA6jQ,GAAAnxQ,EAAAwnB,EAAA,KAAA2pP,GAAAnxQ,EAAAwnB,EAAA,OAMA8pP,GAAA,SAAAC,GACA,IAIAC,EAJApyQ,EAAAmyQ,EAAAnjQ,cACAupB,EAAAgB,GAAAv5B,GACAqyQ,EAAAryQ,EAAAa,eAAA,KACAkO,EAAAojQ,EAAApjQ,WAOA,OALAA,EAAAuE,aAAA++P,EAAAF,GACA55O,EAAAQ,SAAAs5O,EAAA,GACA95O,EAAAa,OAAAi5O,EAAA,GACAD,EAAAn9J,GAAA18E,EAAA1T,yBACA9V,EAAAsF,YAAAg+P,GACAD,GAEAE,GAAA,SAAA/5O,GACA,IAAA4wK,EAAA5wK,EAAAC,eACA+5O,EAAAh6O,EAAAyB,aACAw4O,EAAAj6O,EAAAwB,YACA04O,EAAAl6O,EAAA0B,UACA,GAAAkvK,IAAAopE,GAAAhpF,GAAA16K,OAAA0jQ,IAAA,IAAAC,GAAA,IAAAC,EAAA,CACA,IAAAC,EAAAn6O,EAAAupC,aAEA,OADA4wM,EAAAr5O,YAAAk5O,GACA1tP,GAAA6tP,GAEA,aAGAC,GAAA,SAAA9oR,GACA,WAAAA,EAAAw7B,MAAA,IAAAx7B,EAAAm9B,OAAA,IAAAn9B,EAAAy7B,KAAA,IAAAz7B,EAAAo9B,QAEApC,GAAA,SAAAnC,GACA,IAAA0vP,EAAAQ,EAOA,OANAA,EAAAlwP,EAAAkX,iBAEAw4O,EADAQ,EAAAzrR,OAAA,EACA8tH,GAAA29J,EAAA,IAEA39J,GAAAvyF,EAAAmC,0BAEAmtP,GAAAtvP,IAAAmvP,GAAAnvP,IAAAiwP,GAAAP,GACAF,GAAAxvP,GAEAiwP,GAAAP,IAAAJ,GAAAtvP,GACA4vP,GAAA5vP,GAEA0vP,GAEAS,GAAA,SAAAT,EAAAprC,GACA,IAAA8rC,EAAAr3O,GAAA22O,EAAAprC,GAGA,OAFA8rC,EAAA/rP,MAAA,EACA+rP,EAAA9rP,MAAA8rP,EAAAztP,KAAA,EACAytP,GAEAC,GAAA,SAAAC,GACA,IACAC,EAAAvyQ,EADAkyQ,EAAA,GAEAM,EAAA,SAAAd,GACA,IAAAA,EAAAttP,SAGA8tP,EAAAzrR,OAAA,GACAwpR,GAAAyB,EAAAQ,IAAAzrR,OAAA,KAIAyrR,EAAAjkR,KAAAyjR,KAEAe,EAAA,SAAAl+P,EAAAmT,GACA,IAAAp5B,EAAAuqC,GAAAtkB,EAAAjG,eACA,GAAAoZ,EAAAnT,EAAA/G,KAAA/mB,OAAA,CACA,GAAAgqR,GAAAl8P,EAAA/G,KAAAka,IACA,OAAAwqP,EAEA,GAAAzB,GAAAl8P,EAAA/G,KAAAka,EAAA,MACAp5B,EAAA+pC,SAAA9jB,EAAAmT,GACAp5B,EAAAoqC,OAAAnkB,EAAAmT,EAAA,IACA6pP,GAAAjjR,IAEA,OADAkkR,EAAAL,GAAAhuP,GAAA71B,IAAA,IACA4jR,EAIAxqP,EAAA,IACAp5B,EAAA+pC,SAAA9jB,EAAAmT,EAAA,GACAp5B,EAAAoqC,OAAAnkB,EAAAmT,GACA6pP,GAAAjjR,IACAkkR,EAAAL,GAAAhuP,GAAA71B,IAAA,KAGAo5B,EAAAnT,EAAA/G,KAAA/mB,SACA6H,EAAA+pC,SAAA9jB,EAAAmT,GACAp5B,EAAAoqC,OAAAnkB,EAAAmT,EAAA,GACA6pP,GAAAjjR,IACAkkR,EAAAL,GAAAhuP,GAAA71B,IAAA,MAIA,GAAA4iR,GAAAoB,EAAA/9P,aAEA,OADAk+P,EAAAH,EAAA/9P,YAAA+9P,EAAA5qP,UACAwqP,EAEA,GAAArB,GAAAyB,EAAA/9P,aACA,GAAA+9P,EAAA9D,UACAxuQ,EAAAoxQ,GAAAkB,EAAA/9P,YAAA+9P,EAAA5qP,UACAwpP,GAAAlxQ,IACAyyQ,EAAAzyQ,IAAAwN,KAAA/mB,QAEAuqR,GAAAhxQ,KAAAmxQ,GAAAnxQ,IACAwyQ,EAAAL,GAAAhuP,GAAAnkB,IAAA,QAES,CAKT,GAJAA,EAAAoxQ,GAAAkB,EAAA/9P,YAAA+9P,EAAA5qP,UACAwpP,GAAAlxQ,IACAyyQ,EAAAzyQ,EAAA,GAEAgxQ,GAAAhxQ,IAAAsyQ,EAAA9D,UAEA,OADAgE,EAAAL,GAAAhuP,GAAAnkB,IAAA,IACAkyQ,EAEAK,EAAAnB,GAAAkB,EAAA/9P,YAAA+9P,EAAA5qP,SAAA,GACAspP,GAAAuB,KAAApB,GAAAoB,KACAhtD,GAAAgtD,IAAAhtD,GAAAvlN,KAAAgxQ,GAAAhxQ,KACAwyQ,EAAAL,GAAAhuP,GAAAouP,IAAA,IAGAvB,GAAAhxQ,IACAwyQ,EAAAL,GAAAhuP,GAAAnkB,IAAA,IAIA,OAAAkyQ,GAEA,SAAAQ,GAAAn+P,EAAAmT,EAAAwqP,GACA,IAAA5D,EAAA,WACA,OAAA4C,GAAA38P,GACA,IAAAmT,GAIA8mP,EAAA,WACA,OAAA0C,GAAA38P,GACAmT,GAAAnT,EAAA/G,KAAA/mB,OAEAihC,GAAAnT,EAAA3U,WAAAnZ,QAEAksR,EAAA,WACA,IAAArkR,EAIA,OAHAA,EAAAuqC,GAAAtkB,EAAAjG,eACAhgB,EAAA+pC,SAAA9jB,EAAAmT,GACAp5B,EAAAoqC,OAAAnkB,EAAAmT,GACAp5B,GAEA4qC,EAAA,WAIA,OAHAg5O,IACAA,EAAAG,GAAAK,GAAAn+P,EAAAmT,KAEAwqP,GAEA31N,EAAA,WACA,OAAArjB,IAAAzyC,OAAA,GAEAwpR,EAAA,SAAAqC,GACA,OAAAA,GAAA/9P,IAAA+9P,EAAA/9P,aAAAmT,IAAA4qP,EAAA5qP,UAEAu4C,EAAA,SAAAxtD,GACA,OAAA2+P,GAAA78P,EAAA9B,EAAAiV,EAAA,EAAAA,IAEA,OACAnT,UAAA5tB,EAAA4tB,GACAmT,OAAA/gC,EAAA+gC,GACAirP,UACAz5O,iBACAqjB,YACA+xN,YACAE,UACAyB,UACAhwM,YAGA,SAAAyyM,GACAA,EAAAE,eAAA,SAAAtkR,GACA,OAAAokR,EAAApkR,EAAAwpC,eAAAxpC,EAAA+qC,cAEAq5O,EAAAG,aAAA,SAAAvkR,GACA,OAAAokR,EAAApkR,EAAAgrC,aAAAhrC,EAAAirC,YAEAm5O,EAAA7/P,MAAA,SAAA7S,GACA,OAAA0yQ,EAAA1yQ,EAAAqO,WAAA8iL,GAAAnxL,GAAA,IAEA0yQ,EAAAjgQ,OAAA,SAAAzS,GACA,OAAA0yQ,EAAA1yQ,EAAAqO,WAAA8iL,GAAAnxL,KAEA0yQ,EAAAtpG,QAAA,SAAA0pG,EAAAC,GACA,OAAA3pP,GAAAr5B,EAAAgjR,EAAA75O,kBAAAlpC,EAAA8iR,EAAA55O,kBAAAkwI,IAAA/+K,OAAA,IAEAqoR,EAAArpG,QAAA,SAAAypG,EAAAC,GACA,OAAA3pP,GAAAp5B,EAAA+iR,EAAA75O,kBAAAnpC,EAAA+iR,EAAA55O,kBAAAmwI,IAAAh/K,OAAA,IAEAqoR,EAAApE,UAAA,SAAAj6O,GACA,QAAAA,KAAAi6O,aAEAoE,EAAAlE,QAAA,SAAAn6O,GACA,QAAAA,KAAAm6O,WAEAkE,EAAAM,eAAA,SAAA3+O,GACA,QAAAA,GAAAw0J,GAAA16K,OAAAkmB,EAAA9f,cAEAm+P,EAAAO,kBAAA,SAAA5+O,GACA,WAAAq+O,EAAAM,eAAA3+O,KA7BA,CA+BKq+O,QAAA,KACL,IAy0BAQ,GAz0BAC,GAAAT,GAEAU,GAAAvqF,GAAA16K,OACAklQ,GAAAxqF,GAAA21D,QACA80B,GAAAhL,GAAAn3E,UACAoiF,GAAA,SAAAvzQ,GACA,IAAAqO,EAAArO,EAAAqO,WACA,OAAAglQ,GAAAhlQ,GACAklQ,GAAAllQ,GAEAA,GAEAmlQ,GAAA,SAAAxzQ,GACA,OAAAA,EAGAiiP,GAAAH,OAAA9hP,EAAAJ,WAAA,SAAAhL,EAAAoL,GAMA,OALAqzQ,GAAArzQ,IAAA,OAAAA,EAAAgO,SACApZ,IAAAxN,OAAAosR,GAAAxzQ,IAEApL,EAAA3G,KAAA+R,GAEApL,GACO,IATP,IAWA6+Q,GAAA,SAAAzzQ,EAAA0nB,GACA,MAAA1nB,IAAAwoL,gBAAA,CACA,IAAA4qF,GAAApzQ,GACA,MAEA0nB,GAAA1nB,EAAAwN,KAAA/mB,OAEA,OAAAihC,GAEAgsP,GAAA,SAAApqR,GACA,gBAAAuC,GACA,OAAAvC,IAAAuC,IAGA8nR,GAAA,SAAA3zQ,GACA,IAAAo7B,EAAA/oB,EAAAuhQ,EAYA,OAXAx4O,EAAAo4O,GAAAD,GAAAvzQ,IACAqS,EAAA4vO,GAAA7yP,UAAAgsC,EAAAs4O,GAAA1zQ,MACAo7B,IAAAttC,MAAA,EAAAukB,EAAA,GACAuhQ,EAAA3xB,GAAAH,OAAA1mN,EAAA,SAAAxmC,EAAAoL,EAAA3X,GAIA,OAHA+qR,GAAApzQ,IAAAozQ,GAAAh4O,EAAA/yC,EAAA,KACAuM,IAEAA,GACO,GACPwmC,EAAA6mN,GAAA/2P,OAAAkwC,EAAAytJ,GAAAk1D,eAAA,CAAA/9O,EAAAgO,YACAqE,EAAA4vO,GAAA7yP,UAAAgsC,EAAAs4O,GAAA1zQ,MACAqS,EAAAuhQ,GAEAC,GAAA,SAAA7zQ,GACA,IAAA/S,EAMA,OAJAA,EADAmmR,GAAApzQ,GACA,SAEAA,EAAAgO,SAAAlM,cAEA7U,EAAA,IAAA0mR,GAAA3zQ,GAAA,KAEAkjQ,GAAA,SAAAnkO,EAAA/+B,EAAAyO,GACA,IAAA+yI,EAAA,GACA,IAAAxhJ,IAAAqO,WAAkCrO,IAAA++B,EAAe/+B,IAAAqO,WAAA,CACjD,GAAAI,KAAAzO,GACA,MAEAwhJ,EAAAvzJ,KAAA+R,GAEA,OAAAwhJ,GAEAlrH,GAAA,SAAAyI,EAAAuzO,GACA,IAAA/9P,EAAAmT,EAAAosP,EAAAl0Q,EAAA4hJ,EAAA7pJ,EAAA,GAqBA,OApBA4c,EAAA+9P,EAAA/9P,YACAmT,EAAA4qP,EAAA5qP,SACA0rP,GAAA7+P,GACAu/P,EAAAL,GAAAl/P,EAAAmT,IAEA9nB,EAAA2U,EAAA3U,WACA8nB,GAAA9nB,EAAAnZ,QACAqtR,EAAA,QACApsP,EAAA9nB,EAAAnZ,OAAA,GAEAqtR,EAAA,SAEAv/P,EAAA3U,EAAA8nB,IAEA/vB,EAAA1J,KAAA4lR,GAAAt/P,IACAitI,EAAA0hH,GAAAnkO,EAAAxqB,GACAitI,EAAAygG,GAAA/2P,OAAAs2J,EAAAn6J,EAAAwhM,GAAA21D,UACA7mP,IAAAvQ,OAAA66P,GAAAp3P,IAAA22J,EAAA,SAAAxhJ,GACA,OAAA6zQ,GAAA7zQ,MAEArI,EAAApI,UAAAmC,KAAA,SAAAoiR,GAEAC,GAAA,SAAA/zQ,EAAA/S,EAAAolB,GACA,IAAA+oB,EAAAo4O,GAAAxzQ,GAKA,OAJAo7B,EAAA6mN,GAAA/2P,OAAAkwC,EAAA,SAAAp7B,EAAAqS,GACA,OAAA+gQ,GAAApzQ,KAAAozQ,GAAAh4O,EAAA/oB,EAAA,MAEA+oB,EAAA6mN,GAAA/2P,OAAAkwC,EAAAytJ,GAAAk1D,eAAA,CAAA9wP,KACAmuC,EAAA/oB,IAEA2hQ,GAAA,SAAAz/P,EAAAmT,GACA,IAAAusP,EAAAj0Q,EAAAuU,EAAA2/P,EAAA,EACA,MAAAd,GAAApzQ,GAAA,CAEA,GADAi0Q,EAAAj0Q,EAAAwN,KAAA/mB,OACAihC,GAAAwsP,GAAAxsP,GAAAwsP,EAAAD,EAAA,CACA1/P,EAAAvU,EACA0nB,GAAAwsP,EACA,MAEA,IAAAd,GAAApzQ,EAAAkS,aAAA,CACAqC,EAAAvU,EACA0nB,EAAAusP,EACA,MAEAC,GAAAD,EACAj0Q,IAAAkS,YAKA,OAHAkhQ,GAAA7+P,IAAAmT,EAAAnT,EAAA/G,KAAA/mB,SACAihC,EAAAnT,EAAA/G,KAAA/mB,QAEA0sR,GAAA5+P,EAAAmT,IAEAysP,GAAA,SAAAp1O,EAAApnC,GACA,IAAAiS,EAAA2K,EAAAmT,EACA,OAAA/vB,GAGAiS,EAAAjS,EAAA4gB,MAAA,KACA5gB,EAAAiS,EAAA,GAAA2O,MAAA,KACAmP,EAAA9d,EAAAnjB,OAAA,EAAAmjB,EAAA,YACA2K,EAAA0tO,GAAAH,OAAAnqP,EAAA,SAAA/C,EAAAhO,GAEA,OADAA,EAAA,4BAAA+rF,KAAA/rF,GACAA,GAGA,WAAAA,EAAA,KACAA,EAAA,YAEAmtR,GAAAn/Q,EAAAhO,EAAA,GAAAg9B,SAAAh9B,EAAA,SALA,MAMOm4C,GACPxqB,EAGA6+P,GAAA7+P,GAQAy/P,GAAAz/P,EAAAqP,SAAA8D,EAAA,MANAA,EADA,UAAAA,EACA4rP,GAAA/+P,GAAA,EAEA++P,GAAA/+P,GAEA4+P,GAAA5+P,EAAAlG,WAAAqZ,IARA,MAhBA,MA6BA0sP,GAAA,SAAAh0Q,EAAAJ,GACA6oL,GAAA16K,OAAAnO,IAAA,IAAAA,EAAAwN,KAAA/mB,QACA2Z,EAAAsT,OAAA1T,IAGAogE,GAAA,SAAAhgE,EAAAy3B,EAAA73B,GACA63B,EAAAuoC,WAAApgE,GACAo0Q,GAAAh0Q,EAAAJ,EAAAwoL,iBACA4rF,GAAAh0Q,EAAAJ,EAAAkS,cAEAmiQ,GAAA,SAAAj0Q,EAAAy3B,EAAAipO,GACA,IAAAvuP,EAAAxmB,EAAAD,KAAAg1Q,EAAAvuP,YACA60K,EAAAr7L,EAAAD,KAAAg1Q,EAAA15E,WACAvvJ,EAAAuoC,WAAA0gM,GACAvuP,EAAAznB,KAAA,SAAAsnB,GACA,OAAAgiQ,GAAAh0Q,EAAAgS,EAAAo2K,mBAEApB,EAAAt8L,KAAA,SAAAsnB,GACA,OAAAgiQ,GAAAh0Q,EAAAgS,EAAAF,gBAGAoiQ,GAAA,SAAAl0Q,EAAAy3B,EAAA73B,GACA6oL,GAAA+1D,mBAAA5+O,GACAq0Q,GAAAj0Q,EAAAy3B,EAAA73B,GAEAogE,GAAAhgE,EAAAy3B,EAAA73B,IAIAu0Q,GAAA1rF,GAAAjjD,uBACA4uI,GAAA,SAAApuQ,EAAAmO,EAAAmT,GACA,IAAA1nB,EAAAy0Q,EAEA,IADAA,EAAAruQ,EAAAmO,EAAA/G,KAAA1f,MAAA,EAAA45B,IAAAjhC,OACAuZ,EAAAuU,EAAAi0K,gBAA4CxoL,GAAA6oL,GAAA16K,OAAAnO,GAA+BA,IAAAwoL,gBAC3EisF,GAAAruQ,EAAApG,EAAAwN,MAAA/mB,OAEA,OAAAguR,GAEAC,GAAA,SAAAt0Q,EAAAgG,EAAA0xO,EAAAjgN,EAAA7xB,GACA,IAGApG,EAHA2U,EAAAsjB,EAAA7xB,EAAA,iCACA0hB,EAAAmQ,EAAA7xB,EAAA,2BACAm4B,EAAA,GACAtrB,EAAA,EACAksB,EAAA3+B,EAAAw/D,UAWA,IAVAipH,GAAA16K,OAAAoG,GACA4pB,EAAAlwC,KAAA6pP,EAAA08B,GAAApuQ,EAAAmO,EAAAmT,OAEA9nB,EAAA2U,EAAA3U,WACA8nB,GAAA9nB,EAAAnZ,QAAAmZ,EAAAnZ,SACAosB,EAAA,EACA6U,EAAArR,KAAAyN,IAAA,EAAAlkB,EAAAnZ,OAAA,IAEA03C,EAAAlwC,KAAAmS,EAAA+wL,UAAAvxL,EAAA8nB,GAAAowN,GAAAjlO,IAEY0B,OAAAwqB,EAAiCxqB,IAAAlG,WAC7C8vB,EAAAlwC,KAAAmS,EAAA+wL,UAAA58K,EAAAujO,IAEA,OAAA35M,GAEAw2O,GAAA,SAAAvuQ,EAAAwxB,EAAAkgN,EAAAjgN,GACA,IAAAz3B,EAAAw3B,EAAAx3B,IAAAmwL,EAAA,GAKA,OAJAA,EAAAvqL,MAAA0uQ,GAAAt0Q,EAAAgG,EAAA0xO,EAAAjgN,GAAA,GACAD,EAAAw4G,gBACAmgD,EAAA95E,IAAAi+J,GAAAt0Q,EAAAgG,EAAA0xO,EAAAjgN,GAAA,IAEA04J,GAEAqkF,GAAA,SAAAx0Q,EAAAnT,EAAAmb,GACA,IAAAhX,EAAA,EAUA,OATAtJ,GAAAgD,KAAAsV,EAAAu5E,OAAA1sF,GAAA,SAAA+S,GACA,WAAAA,EAAA+U,aAAA,kBAGA,OAAA/U,IAAAoI,QAGAhX,MAEAA,GAEAyjR,GAAA,SAAAh9O,EAAA7xB,GACA,IAAAuO,EAAAmT,EAAA9nB,EACAmW,EAAA/P,EAAA,cACAuO,EAAAsjB,EAAA9hB,EAAA,aACA2R,EAAAmQ,EAAA9hB,EAAA,UACA8yK,GAAA36K,UAAAqG,IAAA,OAAAA,EAAAvG,WACApO,EAAA2U,EAAA3U,WACA2U,EAAA3U,EAAAyW,KAAAmlB,IAAAx1B,EAAA0hB,IAAA,EAAA9nB,EAAAnZ,OAAA,IACA8tB,IACAmT,EAAA1hB,EAAA,EAAAuO,EAAA3U,WAAAnZ,OACAoxC,EAAA,OAAA7xB,EAAA,gBAAAuO,EAAAmT,MAIAotP,GAAA,SAAAj9O,GAGA,OAFAg9O,GAAAh9O,GAAA,GACAg9O,GAAAh9O,GAAA,GACAA,GAEA2rO,GAAA,SAAAxjQ,EAAA0nB,GACA,IAAA5U,EACA,GAAA+1K,GAAA36K,UAAAlO,KACAA,EAAAigE,GAAAjgE,EAAA0nB,GACA6sP,GAAAv0Q,IACA,OAAAA,EAGA,GAAA8tQ,GAAA9tQ,GAAA,CAKA,GAJA6oL,GAAA16K,OAAAnO,IAAA4tQ,GAAA5tQ,KACAA,IAAAqO,YAEAyE,EAAA9S,EAAAwoL,gBACA+rF,GAAAzhQ,GACA,OAAAA,EAGA,GADAA,EAAA9S,EAAAkS,YACAqiQ,GAAAzhQ,GACA,OAAAA,IAIAiiQ,GAAA,SAAAl9O,GACA,OAAA2rO,GAAA3rO,EAAAC,eAAAD,EAAAwB,cAAAmqO,GAAA3rO,EAAAyB,aAAAzB,EAAA0B,YAEAy7O,GAAA,SAAA5uQ,EAAA0xO,EAAAlgN,GACA,IAAAxvB,EAAAwvB,EAAAqoC,UACAhzE,EAAAmb,IAAA4F,SAAA,KACA6pB,EAAAD,EAAAkrC,SACA,GAAAyxM,GAAAnsQ,IAAA,QAAAnb,EACA,OACAA,OACAolB,MAAAuiQ,GAAAh9O,EAAAx3B,IAAAnT,EAAAmb,IAGA,IAAA0K,EAAAiiQ,GAAAl9O,GACA,OAAA/kB,GACA7lB,EAAA6lB,EAAAo4K,QACA,CACAj+L,OACAolB,MAAAuiQ,GAAAh9O,EAAAx3B,IAAAnT,EAAA6lB,KAGA6hQ,GAAAvuQ,EAAAwxB,EAAAkgN,EAAAjgN,IAEAo9O,GAAA,SAAAr9O,GACA,IAAAC,EAAAD,EAAAkrC,SACA,OACA98D,MAAAswB,GAAAsB,EAAAx3B,IAAAw/D,UAAAuzM,GAAAP,eAAA/6O,IACA4+E,IAAAngF,GAAAsB,EAAAx3B,IAAAw/D,UAAAuzM,GAAAN,aAAAh7O,MAGAq9O,GAAA,SAAAt9O,GACA,OAAcC,IAAAD,EAAAkrC,WAEdqyM,GAAA,SAAA/0Q,EAAApW,EAAAorR,GACA,IAAA9uR,EAAA,CACA0qM,gBAAA,WACAhnM,KACAu1B,MAAA,mCAEA,OAAA61P,EAAAh1Q,EAAAsuB,OAAA,OAAApoC,EAAA,YAAwD8Z,EAAAsuB,OAAA,OAAApoC,IAExD+uR,GAAA,SAAAz9O,EAAAw9O,GACA,IAAAh1Q,EAAAw3B,EAAAx3B,IACAy3B,EAAAD,EAAAkrC,SACA94E,EAAAoW,EAAA6mQ,WACAttO,EAAA/B,EAAAw4G,cACAhoI,EAAAwvB,EAAAqoC,UACAhzE,EAAAmb,EAAA4F,SACA,WAAA/gB,EACA,OACAA,OACAolB,MAAAuiQ,GAAAx0Q,EAAAnT,EAAAmb,IAGA,IAAAktQ,EAAAR,GAAAj9O,EAAAupC,cACA,IAAAznC,EAAA,CACA27O,EAAAv6O,UAAA,GACA,IAAAw6O,EAAAJ,GAAA/0Q,EAAApW,EAAA,OAAAorR,GACAd,GAAAl0Q,EAAAk1Q,EAAAC,GAEA19O,EAAAi9O,GAAAj9O,GACAA,EAAAkD,UAAA,GACA,IAAAy6O,EAAAL,GAAA/0Q,EAAApW,EAAA,SAAAorR,GAMA,OALAd,GAAAl0Q,EAAAy3B,EAAA29O,GACA59O,EAAA64J,eAAA,CACAzmM,KACAyrR,KAAA,IAEA,CAAczrR,OAEdwmM,GAAA,SAAA54J,EAAAzqC,EAAA2qP,GACA,WAAA3qP,EACA6nR,GAAAtH,GAAAtnQ,KAAA0xO,EAAAlgN,GACO,IAAAzqC,EACP8nR,GAAAr9O,GACOzqC,EACP+nR,GAAAt9O,GAEAy9O,GAAAz9O,GAAA,IAGA89O,GAAA,CACAllF,eACAmlF,gBAAA5uR,EAAAiuR,GAAAnuR,GAAA,GACAwuR,0BAGAO,GAAA,aACAC,GAAA,SAAA71Q,GACA,OAAA6oL,GAAA36K,UAAAlO,MAAAhW,KAAA4rR,IAEAE,GAAA,SAAAvnQ,EAAAvO,GACA,MAAAA,OAAAuO,EAAA,CACA,GAAAvO,EAAAhW,KAAA4rR,GACA,OAAA51Q,EAEAA,IAAAqO,WAEA,aAGA0nQ,GAAAltF,GAAA36K,UACA8nQ,GAAAntF,GAAA16K,OACA8nQ,GAAA,SAAAj2Q,GACA,IAAAqO,EAAArO,EAAAqO,WACAA,GACAA,EAAAsF,YAAA3T,IAGAk2Q,GAAA,SAAAl2Q,GACA,IACA,OAAAA,EAAAy6B,UACO,MAAAs2D,GACP,WAGAolL,GAAA,SAAAn2Q,EAAAE,GACA,IAAAA,EAAAzZ,OACAwvR,GAAAj2Q,GAEAA,EAAAy6B,UAAAv6B,GAGAk2Q,GAAA,SAAAl2Q,GACA,IAAAm2Q,EAAA3I,GAAAtnQ,KAAAlG,GACA,OACA9O,MAAA8O,EAAAzZ,OAAA4vR,EAAA5vR,OACAyZ,KAAAm2Q,IAGAC,GAAA,SAAAtH,EAAA36O,GAEA,OADAhV,GAAA2vP,GACA36O,GAEAkiP,GAAA,SAAAvH,EAAA36O,GACA,IAAA5hB,EAAA2jQ,GAAApH,EAAAxhQ,KAAAzH,OAAA,EAAAsuB,EAAA3M,WACA7U,EAAAujQ,GAAApH,EAAAxhQ,KAAAzH,OAAAsuB,EAAA3M,WACAxnB,EAAAuS,EAAAvS,KAAA2S,EAAA3S,KACA,OAAAA,EAAAzZ,OAAA,GACA0vR,GAAAnH,EAAA9uQ,GACAizQ,GAAAnE,EAAA36O,EAAA3M,SAAAjV,EAAArhB,QAEAijC,GAGAmiP,GAAA,SAAAxH,EAAA36O,GACA,IAAAhmB,EAAAgmB,EAAA9f,YACAsxB,EAAA/8C,EAAAmH,EAAAoe,EAAAzO,YAAAovQ,GAAAnkR,IAAA,SAAAwnB,GACA,OAAAA,EAAAgiB,EAAA3M,SAAAyrP,GAAA9kQ,EAAAgmB,EAAA3M,SAAA,GAAA2M,IACOhqC,MAAAgqC,GAEP,OADAhV,GAAA2vP,GACAnpO,GAEA4wO,GAAA,SAAAzH,EAAA36O,GACA,OAAA2hP,GAAAhH,IAAA36O,EAAA9f,cAAAy6P,EAAAuH,GAAAvH,EAAA36O,GAAAiiP,GAAAtH,EAAA36O,IAEAqiP,GAAA,SAAA1H,EAAA36O,GACA,OAAAA,EAAA9f,cAAAy6P,EAAA3gQ,WAAAmoQ,GAAAxH,EAAA36O,GAAAiiP,GAAAtH,EAAA36O,IAEAsiP,GAAA,SAAApiQ,EAAA8f,GACA,OAAA8+O,GAAAH,eAAA3+O,GAAAoiP,GAAAliQ,EAAA8f,GAAAqiP,GAAAniQ,EAAA8f,IAEAhV,GAAA,SAAAu3P,GAQA,GAPAb,GAAAa,IAAA9I,GAAA8I,KACA7I,GAAA6I,GACAA,EAAAzhQ,gBAAA,kBAEA8gQ,GAAAW,IAGAZ,GAAAY,GAAA,CACA,IAAA12Q,EAAAwtQ,GAAAtnQ,KAAA8vQ,GAAAU,IACAT,GAAAS,EAAA12Q,KAGA22Q,GAAA,CACAF,uBACAjjQ,OAAA2L,IAGAy3P,GAAA5vQ,KAAA1C,QACAuyQ,GAAAluF,GAAAjjD,uBACAoxI,GAAA,SAAAh3Q,GACA,OAAA6oL,GAAA36K,UAAAlO,IAAA,aAAAkB,KAAAlB,EAAAkrL,UAEA+rF,GAAA,SAAAl4O,EAAA32B,EAAAqK,GACA,IACAnS,EAAA42Q,EAAAC,EAAAxxM,EAAAyxM,EADA1F,EAAA32O,GAAA3yB,EAAA+b,wBAAA1R,GAwBA,MAtBA,SAAAssB,EAAAmsJ,SACA5qL,EAAAy+B,EAAAzwB,cAAAwD,gBACAolQ,EAAAn4O,EAAAvZ,YAAAllB,EAAAklB,WACA2xP,EAAAp4O,EAAAzZ,WAAAhlB,EAAAglB,YAEA8xP,EAAAr4O,EAAA5a,wBACA+yP,EAAAn4O,EAAAvZ,WAAA4xP,EAAAzyP,KACAwyP,EAAAp4O,EAAAzZ,UAAA8xP,EAAAxyP,KAEA8sP,EAAA/sP,MAAAuyP,EACAxF,EAAAprP,OAAA4wP,EACAxF,EAAA9sP,KAAAuyP,EACAzF,EAAAnrP,QAAA4wP,EACAzF,EAAArrP,MAAA,EACAs/C,EAAAv9D,EAAAsY,YAAAtY,EAAA0e,YACA6+C,EAAA,IACAlzD,IACAkzD,IAAA,GAEA+rM,EAAA/sP,MAAAghD,EACA+rM,EAAAprP,OAAAq/C,GAEA+rM,GAEA2F,GAAA,SAAAt4O,GACA,IAAAu4O,EAAAt3Q,EAAA8S,EAAAzqB,EAAAmlB,EAEA,IADA8pQ,EAAAnW,GAAA,2BAAApiO,GACA12C,EAAA,EAAiBA,EAAAivR,EAAA7wR,OAAsC4B,IACvD2X,EAAAs3Q,EAAAjvR,GACAyqB,EAAA9S,EAAAwoL,gBACA0lF,GAAAp7P,KACAtF,EAAAsF,EAAAtF,KACA,IAAAA,EAAA/mB,OACAqsB,EAAAzE,WAAAsF,YAAAb,GAEAA,EAAAykQ,WAAA/pQ,EAAA/mB,OAAA,MAGAqsB,EAAA9S,EAAAkS,YACAk8P,GAAAt7P,KACAtF,EAAAsF,EAAAtF,KACA,IAAAA,EAAA/mB,OACAqsB,EAAAzE,WAAAsF,YAAAb,GAEAA,EAAAykQ,WAAA,OAKAC,GAAA,SAAAz4O,EAAA+/B,EAAAttC,GACA,IACAimP,EAAAb,EADAc,EAAA34Q,GAAAhT,EAAArC,QAEAg+E,EAAA,SAAAj1D,EAAArK,GACA,IAAAspQ,EAAA75O,EAEA,GADAkhC,IACAi+M,GAAA5uQ,GACA,YAEA,IAAA02D,EAAA12D,GA6BA,OATAwuQ,EAAA5I,GAAA5lQ,EAAAqK,GACAolB,EAAAzvB,EAAAkG,cAAAuqB,cACAk+O,GAAAH,EAAA1kQ,cACA2lB,EAAAQ,SAAAu+O,EAAA,GACA/+O,EAAAa,OAAAk+O,EAAA,KAEA/+O,EAAAQ,SAAAu+O,EAAA,GACA/+O,EAAAa,OAAAk+O,EAAA,IAEA/+O,EA5BA++O,EAAAlI,GAAA,IAAAtmQ,EAAAqK,GACAi/P,EAAAuF,GAAAl4O,EAAA32B,EAAAqK,GACA0uP,GAAAyV,GAAA52P,IAAA,MAAA0xP,EAAA9sP,KACA,IAAAmnD,EAAAo1L,GAAA,6DAAAnhP,IAAA0xP,GAAAzjJ,SAAAlvF,GAAA,GA2BA,OA1BA24O,EAAAz4Q,IAAAlT,EAAAP,KAAA,CACAugF,QACA3jE,UACAqK,YAEAilQ,EAAA9mR,MAAA9F,KAAA,SAAA6sR,GACAllQ,GACA0uP,GAAAwW,EAAA5rM,OAAA4uF,SAAA,6BAGAi9G,IACA//O,EAAAzvB,EAAAkG,cAAAuqB,cACAhB,EAAAQ,SAAAu+O,EAAA,GACA/+O,EAAAa,OAAAk+O,EAAA,GAaA/+O,GAEAkhC,EAAA,WACAs+M,GAAAt4O,GACA63O,IACAC,GAAAnjQ,OAAAkjQ,GACAA,EAAA,MAEAc,EAAA9mR,MAAA9F,KAAA,SAAA6sR,GACAxW,GAAAwW,EAAA5rM,OAAAr4D,SACAgkQ,EAAAz4Q,IAAAlT,EAAArC,UAEAk3P,GAAA7uJ,cAAA0lL,IAEAG,EAAA,WACAH,EAAA72B,GAAA9uJ,YAAA,WACAtgE,IACA2vO,GAAA,uBAAApiO,GAAAmtB,YAAA,2BAEAi1M,GAAA,uBAAApiO,GAAA47H,SAAA,4BAES,MAET3mI,EAAA,WACA0jP,EAAA9mR,MAAA9F,KAAA,SAAA6sR,GACA,IAAAjG,EAAAuF,GAAAl4O,EAAA44O,EAAAvvQ,QAAAuvQ,EAAAllQ,QACA0uP,GAAAwW,EAAA5rM,OAAA/rD,IAAAh4B,EAAA,GAAoD0pR,OAGpDlqL,EAAA,WACA,OAAAo5J,GAAA7uJ,cAAA0lL,IAEAI,EAAA,WACA,8OAEA,OACAnwM,OACA3O,OACA8+M,SACA7jP,aACAwzD,YAGAswL,GAAA,WACA,OAAAhB,GAAA/zQ,QAAA+zQ,GAAAj0Q,UAAAi0Q,GAAA7zQ,aAEA80Q,GAAA,SAAA/3Q,GACA,OAAA+2Q,GAAA/2Q,IAAA6oL,GAAAyxC,QAAAt6N,IAAA83Q,MAGAE,GAAAnvF,GAAAjjD,uBACAqyI,GAAApvF,GAAAo1D,iBAAA,4DACAi6B,GAAApK,GACAqK,GAAAvK,GACAwK,GAAAvvF,GAAA36K,UACAmqQ,GAAA3I,GACA4I,GAAA,SAAAvkP,GACA,OAAAA,EAAA,GAEAwkP,GAAA,SAAAxkP,GACA,OAAAA,EAAA,GAEAykP,GAAA,SAAA71B,EAAAvwP,GACA,IAAA4N,EACA,MAAAA,EAAA2iP,EAAAvwP,GACA,IAAA+lR,GAAAn4Q,GACA,OAAAA,EAGA,aAEAy4Q,GAAA,SAAAz4Q,EAAA+zB,EAAA2kP,EAAA/4M,EAAAvtE,GACA,IAAAktE,EAAA,IAAAgkM,GAAAtjQ,EAAA2/D,GACA,GAAA44M,GAAAxkP,GAAA,CACA,IAAAikP,GAAAh4Q,IAAAm4Q,GAAAn4Q,MACAA,EAAAw4Q,GAAAl5M,EAAAO,MAAA,GACA64M,EAAA14Q,IACA,OAAAA,EAGA,MAAAA,EAAAw4Q,GAAAl5M,EAAAO,KAAAztE,GACA,GAAAsmR,EAAA14Q,GACA,OAAAA,EAIA,GAAAs4Q,GAAAvkP,GAAA,CACA,IAAAikP,GAAAh4Q,IAAAm4Q,GAAAn4Q,MACAA,EAAAw4Q,GAAAl5M,EAAA1iE,MAAA,GACA87Q,EAAA14Q,IACA,OAAAA,EAGA,MAAAA,EAAAw4Q,GAAAl5M,EAAA1iE,KAAAxK,GACA,GAAAsmR,EAAA14Q,GACA,OAAAA,EAIA,aAEA24Q,GAAA,SAAA34Q,EAAA2/D,GACA,MAAA3/D,OAAA2/D,EAAA,CACA,GAAAs4M,GAAAj4Q,GACA,OAAAA,EAEAA,IAAAqO,WAEA,aAEAuqQ,GAAA,SAAAC,EAAAC,EAAAn5M,GACA,OAAAg5M,GAAAE,EAAAtkQ,YAAAorD,KAAAg5M,GAAAG,EAAAvkQ,YAAAorD,IAEAo5M,GAAA,SAAAC,EAAA1G,GACA,IAAA/9P,EAAAmT,EACA,OAAA4qP,GAGA/9P,EAAA+9P,EAAA/9P,YACAmT,EAAA4qP,EAAA5qP,SACA0wP,GAAA7jQ,GAGAA,EAAA3U,WAAA8nB,EAAAsxP,GAFA,MALA,MASAC,GAAA,SAAAxmQ,EAAAzS,GACA,IAAA1R,EAAA0R,EAAAsO,cAAAuqB,cAQA,OAPApmB,GACAnkB,EAAAgqC,eAAAt4B,GACA1R,EAAAmqC,aAAAz4B,KAEA1R,EAAAiqC,cAAAv4B,GACA1R,EAAAqqC,YAAA34B,IAEA1R,GAEA4qR,GAAA,SAAAn6O,EAAAo6O,EAAAC,GACA,OAAAT,GAAAQ,EAAAp6O,KAAA45O,GAAAS,EAAAr6O,IAEAs6O,GAAA,SAAA10P,EAAAoa,EAAA/+B,GACA,IAAA8S,EAAAiwP,EAEAA,EADAp+O,EACA,kBAEA,cAEA,MAAA3kB,OAAA++B,EAAA,CAKA,GAJAjsB,EAAA9S,EAAA+iQ,GACAmV,GAAAplQ,KACAA,IAAAiwP,IAEAiV,GAAAllQ,GAAA,CACA,GAAAomQ,GAAAn6O,EAAAjsB,EAAA9S,GACA,OAAA8S,EAEA,MAEA,GAAAulQ,GAAAvlQ,GACA,MAEA9S,IAAAqO,WAEA,aAEA2oB,GAAAjwC,EAAAkyR,IAAA,GACAhiP,GAAAlwC,EAAAkyR,IAAA,GACAjpF,GAAA,SAAAj8J,EAAAgL,EAAAzwC,GACA,IAAA0R,EAAAuU,EAAAmT,EAAA6yI,EACA++G,EAAAvyR,EAAAsyR,IAAA,EAAAt6O,GACAw6O,EAAAxyR,EAAAsyR,IAAA,EAAAt6O,GAGA,GAFAxqB,EAAAjmB,EAAAwpC,eACApQ,EAAAp5B,EAAA+qC,YACAu0O,GAAAr5P,GAAA,CAKA,GAJA6jQ,GAAA7jQ,KACAA,IAAAlG,YAEAksJ,EAAAhmJ,EAAAQ,aAAA,kBACA,WAAAwlJ,IACAv6J,EAAAuU,EAAArC,YACA6lQ,GAAA/3Q,IACA,OAAAg3B,GAAAh3B,GAGA,aAAAu6J,IACAv6J,EAAAuU,EAAAi0K,gBACAuvF,GAAA/3Q,IACA,OAAAi3B,GAAAj3B,GAIA,IAAA1R,EAAAqrC,UACA,OAAArrC,EAEA,GAAAu6L,GAAA16K,OAAAoG,GAAA,CACA,GAAA2jQ,GAAA3jQ,GAAA,CACA,OAAAwf,EAAA,CAEA,GADA/zB,EAAAu5Q,EAAAhlQ,GACAvU,EACA,OAAAg3B,GAAAh3B,GAGA,GADAA,EAAAs5Q,EAAA/kQ,GACAvU,EACA,OAAAi3B,GAAAj3B,GAGA,QAAA+zB,EAAA,CAEA,GADA/zB,EAAAs5Q,EAAA/kQ,GACAvU,EACA,OAAAi3B,GAAAj3B,GAGA,GADAA,EAAAu5Q,EAAAhlQ,GACAvU,EACA,OAAAg3B,GAAAh3B,GAGA,OAAA1R,EAEA,GAAA4/Q,GAAA35P,IAAAmT,GAAAnT,EAAA/G,KAAA/mB,OAAA,EACA,WAAAstC,IACA/zB,EAAAu5Q,EAAAhlQ,GACAvU,GACAg3B,GAAAh3B,GAGA1R,EAEA,GAAA8/Q,GAAA75P,IAAAmT,GAAA,EACA,WAAAqM,IACA/zB,EAAAs5Q,EAAA/kQ,GACAvU,GACAi3B,GAAAj3B,GAGA1R,EAEA,GAAAo5B,IAAAnT,EAAA/G,KAAA/mB,OAEA,OADAuZ,EAAAu5Q,EAAAhlQ,GACAvU,EACAg3B,GAAAh3B,GAEA1R,EAEA,OAAAo5B,EAEA,OADA1nB,EAAAs5Q,EAAA/kQ,GACAvU,EACAi3B,GAAAj3B,GAEA1R,EAGA,OAAAA,GAEAkrR,GAAA,SAAAj9C,EAAA+1C,GACA,OAAAvmR,EAAAD,KAAAitR,GAAAx8C,EAAA,KAAA+1C,IAAApnR,OAAA8sR,KAEAyB,GAAA,SAAA1lP,EAAAgL,EAAAzwC,GACA,IAAAorR,EAAA1pF,GAAAj8J,EAAAgL,EAAAzwC,GACA,WAAAylC,EACA2+O,GAAAE,eAAA8G,GAEAhH,GAAAG,aAAA6G,IAEAC,GAAA,SAAAtlP,GACA,OAAAtoC,EAAAD,KAAAuoC,EAAA4rC,WAAAp1E,IAAA4V,GAAAZ,UAEA+5Q,GAAA,SAAAvlP,GACA,OAAAtoC,EAAAD,KAAAuoC,EAAA4rC,SAAA,IAAAp1E,IAAA4V,GAAAZ,UAEAg6Q,GAAA,SAAAC,EAAAxH,GACA,MAAAA,EAAAwH,EAAAxH,GACA,GAAAA,EAAA/1N,YACA,OAAA+1N,EAGA,OAAAA,GAEAyH,GAAA,SAAAjuR,EAAA83Q,GACA,IAAAoW,EAAApB,GAAA9sR,EAAA83Q,GACA,QAAAoW,IAAAnxF,GAAAZ,KAAAn8L,EAAAm0E,aAGA+5M,IAIA,SAAA9G,GACAA,IAAA,6BACAA,IAAA,2BAFA,CAGKA,QAAA,KACL,IAAA+G,GAAApxF,GAAAjjD,uBACAs0I,GAAArxF,GAAA16K,OACAgsQ,GAAAtxF,GAAA36K,UACAksQ,GAAAvxF,GAAAZ,KACAoyF,GAAA3K,GACA4K,GAAAvK,GACAwK,GAAAvK,GACAt4L,GAAA,SAAA13E,EAAA++B,GACA,IAAAyiH,EAAA,GACA,MAAAxhJ,OAAA++B,EACAyiH,EAAAvzJ,KAAA+R,GACAA,IAAAqO,WAEA,OAAAmzI,GAEAg5H,GAAA,SAAAjmQ,EAAAmT,GACA,OAAAnT,EAAA5U,iBAAA+nB,EAAAnT,EAAA3U,WAAAnZ,OACA8tB,EAAA3U,WAAA8nB,GAEA,MAEA+yP,GAAA,SAAA1mP,EAAA/zB,GACA,GAAAs4Q,GAAAvkP,GAAA,CACA,GAAAsmP,GAAAr6Q,EAAAwoL,mBAAA0xF,GAAAl6Q,EAAAwoL,iBACA,OAAA2qF,GAAA1gQ,OAAAzS,GAEA,GAAAk6Q,GAAAl6Q,GACA,OAAAmzQ,GAAAnzQ,EAAA,GAGA,GAAAu4Q,GAAAxkP,GAAA,CACA,GAAAsmP,GAAAr6Q,EAAAkS,eAAAgoQ,GAAAl6Q,EAAAkS,aACA,OAAAihQ,GAAAtgQ,MAAA7S,GAEA,GAAAk6Q,GAAAl6Q,GACA,OAAAmzQ,GAAAnzQ,IAAAwN,KAAA/mB,QAGA,OAAA8xR,GAAAxkP,GACAqmP,GAAAp6Q,GACAmzQ,GAAA1gQ,OAAAzS,GAEAmzQ,GAAAtgQ,MAAA7S,GAEAmzQ,GAAA1gQ,OAAAzS,IAEA06Q,GAAA,SAAA37O,EAAA47O,GACA,IAAAzoQ,EAAAyoQ,EAAAzoQ,YACA,OAAAA,GAAAmoQ,GAAAnoQ,GACAgoQ,GAAAhoQ,GACAihQ,GAAAjhQ,EAAA,GAEAihQ,GAAA1gQ,OAAAP,GAGA0oQ,GAAA1H,GAAA2H,SAAA1H,GAAAtgQ,MAAA8nQ,GAAA57O,IAGA67O,GAAA,SAAA7mP,EAAA+mP,EAAA/7O,GACA,IAAA/+B,EAAA26Q,EAAAj6E,EACAq6E,EAAAzI,EACA,IAAA6H,GAAAp7O,KAAA+7O,EACA,YAEA,GAAAA,EAAA7K,QAAAkD,GAAAtgQ,MAAAksB,OAAAqoJ,WAEA,GADAkrF,EAAAa,GAAAtgQ,MAAAksB,EAAAqoJ,WACAmxF,GAAAxkP,IAAAsmP,GAAAt7O,EAAAqoJ,YAAA+yF,GAAAp7O,EAAAqoJ,WACA,OAAAgzF,GAAAr7O,EAAAqoJ,WAAA+rF,GAAA1gQ,OAAAssB,EAAAqoJ,WAAAkrF,OAGAA,EAAAwI,EAEA,IAAAvmQ,EAAA+9P,EAAA/9P,YACAmT,EAAA4qP,EAAA5qP,SACA,GAAAwyP,GAAA3lQ,GAAA,CACA,GAAAgkQ,GAAAxkP,IAAArM,EAAA,EACA,OAAAyrP,GAAA5+P,IAAAmT,GAEA,GAAA4wP,GAAAvkP,IAAArM,EAAAnT,EAAA9tB,OACA,OAAA0sR,GAAA5+P,IAAAmT,GAEA1nB,EAAAuU,MACO,CACP,GAAAgkQ,GAAAxkP,IAAArM,EAAA,IACAizP,EAAAH,GAAAjmQ,EAAAmT,EAAA,GACA2yP,GAAAM,IACA,OAAAL,GAAAK,KACAj6E,EAAA+3E,GAAAkC,EAAA5mP,EAAAwmP,GAAAI,GACAj6E,GACAw5E,GAAAx5E,GACAyyE,GAAAzyE,IAAAlzL,KAAA/mB,QAEA0sR,GAAAtgQ,MAAA6tL,GAGAw5E,GAAAS,GACAxH,GAAAwH,IAAAntQ,KAAA/mB,QAEA0sR,GAAA1gQ,OAAAkoQ,GAGA,GAAArC,GAAAvkP,IAAArM,EAAAnT,EAAA3U,WAAAnZ,SACAk0R,EAAAH,GAAAjmQ,EAAAmT,GACA2yP,GAAAM,IACA,OAAAP,GAAAO,GACAD,GAAA37O,EAAA47O,IAEAL,GAAAK,KACAj6E,EAAA+3E,GAAAkC,EAAA5mP,EAAAwmP,GAAAI,GACAj6E,GACAw5E,GAAAx5E,GACAyyE,GAAAzyE,EAAA,GAEAyyE,GAAA1gQ,OAAAiuL,GAGAw5E,GAAAS,GACAxH,GAAAwH,EAAA,GAEAxH,GAAAtgQ,MAAA8nQ,GAGA36Q,EAAA26Q,GAAArI,EAAAryM,UAEA,OAAAq4M,GAAAvkP,IAAAu+O,EAAA9D,WAAA+J,GAAAxkP,IAAAu+O,EAAAhE,eACAtuQ,EAAAy4Q,GAAAz4Q,EAAA+zB,EAAAptC,GAAA,GAAAo4C,GAAA,GACAw7O,GAAAv6Q,EAAA++B,IACA07O,GAAA1mP,EAAA/zB,IAGA26Q,EAAAlC,GAAAz4Q,EAAA+zB,EAAAwmP,GAAAx7O,GACAg8O,EAAA94B,GAAAjyP,KAAA9E,EAAAwsF,GAAAnjE,EAAAwqB,GAAAk7O,MACAc,GAAAJ,GAAAI,EAAA1sR,SAAAssR,GAQAA,EACAF,GAAA1mP,EAAA4mP,GAEA,MATArI,EADAgG,GAAAvkP,GACAo/O,GAAAtgQ,MAAAkoQ,GAEA5H,GAAA1gQ,OAAAsoQ,GAEAzI,KAOA0I,GAAA,SAAAj8O,GACA,OACAniC,KAAA,SAAA01Q,GACA,OAAAsI,GAAA1H,GAAA2H,SAAAvI,EAAAvzO,IAEA8gC,KAAA,SAAAyyM,GACA,OAAAsI,GAAA1H,GAAA+H,UAAA3I,EAAAvzO,MAKAm8O,GAAA,SAAA3+C,EAAAx9L,EAAA/4B,GACA,IAAAkiB,EAAAq0M,EAAA42C,GAAA1gQ,OAAAzM,GAAAmtQ,GAAAtgQ,MAAA7M,GACA,OAAAm1Q,GAAA5+C,EAAAx9L,EAAA7W,IAEAkzP,GAAA,SAAAp7Q,GACA,OAAA6oL,GAAAZ,KAAAjoL,GAAAmzQ,GAAA1gQ,OAAAzS,GAAAmzQ,GAAAtgQ,MAAA7S,IAEAq7Q,GAAA,SAAAnzP,GACA,OAAAirP,GAAAH,eAAA9qP,GACA,IAAAA,EAAAR,SAEAgoP,GAAAxnP,EAAA+3C,YAGAq7M,GAAA,SAAApzP,GACA,GAAAirP,GAAAH,eAAA9qP,GAAA,CACA,IAAA3T,EAAA2T,EAAA3T,YACA,OAAA2T,EAAAR,WAAAnT,EAAA/G,KAAA/mB,OAEA,OAAAipR,GAAAxnP,EAAA+3C,SAAA,KAGAs7M,GAAA,SAAAzvR,EAAA83Q,GACA,OAAAuP,GAAAH,eAAAlnR,KAAAqnR,GAAAH,eAAApP,IAAA93Q,EAAAm0E,YAAA2jM,EAAA3jM,SAAA,IAEAu7M,GAAA,SAAAtzP,GACA,OAAAirP,GAAAH,eAAA9qP,IAAA2gK,GAAAZ,KAAA//J,EAAA+3C,YAEAw7M,GAAA,SAAAl/C,EAAAzwO,EAAA83Q,GACA,OAAArnC,GACAg/C,GAAAzvR,EAAA83Q,KAAA4X,GAAA1vR,IAAAwvR,GAAAxvR,IAAAuvR,GAAAzX,IAEA2X,GAAA3X,EAAA93Q,IAAAuvR,GAAAvvR,IAAAwvR,GAAA1X,IAGAuX,GAAA,SAAA5+C,EAAAx9L,EAAA1K,GACA,IAAAirC,EAAA07M,GAAAj8O,GACA,OAAAhzC,EAAAD,KAAAywO,EAAAj9J,EAAA1iE,KAAAy3B,GAAAirC,EAAAO,KAAAxrC,KAEAqpB,GAAA,SAAA6+K,EAAAx9L,EAAAjzC,GACA,OAAAqvR,GAAA5+C,EAAAx9L,EAAAjzC,GAAAf,KAAA,SAAA64Q,GACA,OAAAgV,GAAA9sR,EAAA83Q,EAAA7kO,IAAA08O,GAAAl/C,EAAAzwO,EAAA83Q,GACAuX,GAAA5+C,EAAAx9L,EAAA6kO,GAEA73Q,EAAAP,KAAAo4Q,MAIA8X,GAAA,SAAAn/C,EAAAx9L,EAAAjzC,EAAA6vR,GACA,OAAAj+N,GAAA6+K,EAAAx9L,EAAAjzC,GAAAf,KAAA,SAAAspC,GACA,OAAAsnP,EAAAtnP,GAAAqnP,GAAAn/C,EAAAx9L,EAAA1K,EAAAsnP,GAAA5vR,EAAAP,KAAA6oC,MAGAunP,GAAA,SAAAr/C,EAAAn0N,GACA,IAAAkzI,EAAAihF,EAAAn0N,EAAAmK,WAAAnK,EAAAg/K,UACA,OAAAyB,GAAA16K,OAAAmtI,GACAvvJ,EAAAP,KAAA2nR,GAAA73H,EAAAihF,EAAA,EAAAjhF,EAAA9tI,KAAA/mB,SACO60J,EACPo0H,GAAAp0H,GACAvvJ,EAAAP,KAAA+wO,EAAA42C,GAAA1gQ,OAAA6oI,GAAA8/H,GAAA9/H,IAEA4/H,GAAA3+C,EAAAn0N,EAAAkzI,GAGAvvJ,EAAArC,QAGAmyR,GAAA90R,EAAAo0R,IAAA,GACAW,GAAA/0R,EAAAo0R,IAAA,GACAY,GAAA,CACAZ,gBACAU,gBACAC,gBACAp+N,YACAg+N,kBACAE,cACAI,gBAAAj1R,EAAA60R,IAAA,GACAK,eAAAl1R,EAAA60R,IAAA,IAGAM,GAAA,SAAA3rF,GACA,wBAAAA,EAAAvqL,OAEAm2Q,GAAA,SAAA5rF,GACA,OAAAA,EAAA9nM,eAAA,QAEA2zR,GAAA,SAAA7rF,GACA,OAAAA,EAAA9nM,eAAA,OAEA4zR,GAAA,SAAA9rF,GACA,OAAAA,EAAA9nM,eAAA,SAEA6zR,GAAA,SAAA/rF,GACA,OAAAzoM,GAAAwF,QAAAijM,EAAAvqL,QAGAu2Q,GAAA,SAAAn8Q,EAAAJ,GAIA,OAHA6oL,GAAA36K,UAAAlO,IAAAI,EAAA0+D,QAAA9+D,OAAAN,YAAAwhP,GAAA/+O,KACAnC,EAAAN,UAAA,6BAEAM,GAEAw8Q,GAAA,SAAAp8Q,EAAAmwL,GACA,IAAA14J,EAAAxD,EAMA,OALAwD,EAAAz3B,EAAAmhE,YACAltC,EAAA8/O,GAAA/zQ,EAAAw/D,UAAA2wH,EAAAvqL,OACA6xB,EAAAQ,SAAAhE,EAAA9f,YAAA8f,EAAA3M,UACA2M,EAAA8/O,GAAA/zQ,EAAAw/D,UAAA2wH,EAAA95E,KACA5+E,EAAAa,OAAArE,EAAA9f,YAAA8f,EAAA3M,UACAmQ,GAEA4kP,GAAA,SAAAz8Q,EAAA63B,GACA,IAAAo2O,EAAAjuQ,EAAAsO,cAAAnO,eAAAutQ,GAAAH,MACAvtQ,EAAAkT,YAAA+6P,GACAp2O,EAAAQ,SAAA41O,EAAA,GACAp2O,EAAAa,OAAAu1O,EAAA,IAEAxlF,GAAA,SAAAzoL,GACA,WAAAA,EAAAL,iBAEA+8Q,GAAA,SAAA18Q,EAAA63B,GACA,OAAAkkP,GAAAE,eAAAj8Q,GAAA9V,KAAA,WACA,UACO,SAAAmqC,GAGP,OAFAwD,EAAAQ,SAAAhE,EAAA9f,YAAA8f,EAAA3M,UACAmQ,EAAAa,OAAArE,EAAA9f,YAAA8f,EAAA3M,WACA,KAGAi1P,GAAA,SAAA59O,EAAA/+B,EAAA63B,GACA,SAAA4wJ,GAAAzoL,KAAA81Q,GAAA/2O,EAAA/+B,MACAy8Q,GAAAz8Q,EAAA63B,IACA,IAKA+kP,GAAA,SAAAx8Q,EAAA4F,EAAAuqL,EAAA14J,GACA,IACAxvC,EAAA2X,EAAA0nB,EAAAvV,EADAgsB,EAAAoyJ,EAAAvqL,EAAA,eAEA+4B,EAAA3+B,EAAAw/D,UACA,GAAAzhC,EAAA,CAEA,IADAzW,EAAAyW,EAAA,GACAn+B,EAAA++B,EAAA12C,EAAA81C,EAAA13C,OAAA,EAA+C4B,GAAA,EAAQA,IAAA,CAEvD,GADA8pB,EAAAnS,EAAAJ,WACA+8Q,GAAA59O,EAAA/+B,EAAA63B,GACA,SAEA,GAAAsG,EAAA91C,GAAA8pB,EAAA1rB,OAAA,EACA,QAAAk2R,GAAA59O,EAAA/+B,EAAA63B,IAGA6kP,GAAA18Q,EAAA63B,GAEA73B,EAAAmS,EAAAgsB,EAAA91C,IAEA,IAAA2X,EAAAsI,WACAof,EAAArR,KAAAmlB,IAAA2C,EAAA,GAAAn+B,EAAAy6B,UAAAh0C,SAEA,IAAAuZ,EAAAsI,WACAof,EAAArR,KAAAmlB,IAAA2C,EAAA,GAAAn+B,EAAAJ,WAAAnZ,SAEAuf,EACA6xB,EAAAQ,SAAAr4B,EAAA0nB,GAEAmQ,EAAAa,OAAA14B,EAAA0nB,GAGA,UAEAm1P,GAAA,SAAA78Q,GACA,OAAA6oL,GAAA16K,OAAAnO,MAAAwN,KAAA/mB,OAAA,GAEAyqM,GAAA,SAAA9wL,EAAA+F,EAAAoqL,GACA,IAAAvwL,EAAAi1E,EAAAr4E,EAAAijE,EAEAtrD,EAAAmT,EAFAhV,EAAAtS,EAAAxP,IAAA2/L,EAAAvmM,GAAA,IAAAmc,GACAsvQ,EAAAllF,EAAAklF,KAEA,GAAA/iQ,EAAA,CAwCA,GAvCA1S,EAAA0S,EAAArE,WACA,UAAAlI,GACAsvQ,EAGA/iQ,EAAA/S,iBACAK,EAAA0S,EAAAH,WACA0iE,EAAA,GACa4nM,GAAAnqQ,EAAAR,cACblS,EAAA0S,EAAAR,YACA+iE,EAAA,GACa4nM,GAAAnqQ,EAAA81K,kBACbxoL,EAAA0S,EAAA81K,gBACAvzG,EAAAviE,EAAA81K,gBAAAh7K,KAAA/mB,SAEAuZ,EAAA0S,EAAArE,WACA4mE,EAAA70E,EAAA+wL,UAAAz+K,GAAA,GAbAuiE,EAAA70E,EAAA+wL,UAAAz+K,GAgBA6B,EAAAvU,EACA0nB,EAAAutD,IAEAwgM,EAGA/iQ,EAAA/S,iBACAK,EAAA0S,EAAAH,WACA0iE,EAAA,GACa4nM,GAAAnqQ,EAAA81K,kBACbxoL,EAAA0S,EAAA81K,gBACAvzG,EAAAviE,EAAA81K,gBAAAh7K,KAAA/mB,SAEAuZ,EAAA0S,EAAArE,WACA4mE,EAAA70E,EAAA+wL,UAAAz+K,IAVAuiE,EAAA70E,EAAA+wL,UAAAz+K,GAaA6B,EAAAvU,EACA0nB,EAAAutD,IAEAwgM,EAAA,CACA51M,EAAAntD,EAAA81K,gBACA5rL,EAAA8V,EAAAR,YACApqB,GAAAgD,KAAAhD,GAAAwhM,KAAA52K,EAAA9S,YAAA,SAAAI,GACA6oL,GAAA16K,OAAAnO,KACAA,EAAAy6B,UAAAz6B,EAAAy6B,UAAAh5B,QAAA,iBAGA,MAAAiR,EAAAtS,EAAAxP,IAAA2/L,EAAAvmM,GAAA,IAAAmc,GACA/F,EAAAsT,OAAAhB,GAAA,GAEAmtD,GAAAjjE,GAAAijE,EAAAv3D,WAAA1L,EAAA0L,UAAAugL,GAAA16K,OAAA0xD,KAAAqhL,GAAA9+O,QACA6yE,EAAApV,EAAAplC,UAAAh0C,OACAo5E,EAAAi9M,WAAAlgR,EAAA69B,WACAr6B,EAAAsT,OAAA9W,GAEA2X,EAAAsrD,EACAn4C,EAAAutD,GAOA,OAAAlpF,EAAAP,KAAA2nR,GAAA5+P,EAAAmT,IAEA,OAAA37B,EAAArC,QAGAqzR,GAAA,SAAA38Q,EAAAmwL,GACA,IAAA14J,EAAAz3B,EAAAmhE,YACA,OAAAq7M,GAAAx8Q,GAAA,EAAAmwL,EAAA14J,IAAA+kP,GAAAx8Q,GAAA,EAAAmwL,EAAA14J,GACA9rC,EAAAP,KAAAqsC,GAEA9rC,EAAArC,QAGAszR,GAAA,SAAA58Q,EAAAmwL,GACA,IAAAuqF,EAAA5pF,GAAA9wL,EAAA,QAAAmwL,GACA0sF,EAAA/rF,GAAA9wL,EAAA,MAAAmwL,GACA,OAAAnnK,GAAA0xP,EAAAmC,EAAAtyR,GAAAmwR,GAAA,SAAAoC,EAAAC,GACA,IAAAtlP,EAAAz3B,EAAAmhE,YAGA,OAFA1pC,EAAAQ,SAAAkkP,GAAAn8Q,EAAA88Q,EAAA3oQ,aAAA2oQ,EAAAx1P,UACAmQ,EAAAa,OAAA6jP,GAAAn8Q,EAAA+8Q,EAAA5oQ,aAAA4oQ,EAAAz1P,UACAmQ,KAGAulP,GAAA,SAAAh9Q,EAAAmwL,GACA,OAAAxkM,EAAAD,KAAAsU,EAAAu5E,OAAA42G,EAAAtjM,MAAAsjM,EAAAl+K,QAAAxnB,IAAA,SAAAw1E,GACA,IAAAxoC,EAAAz3B,EAAAmhE,YAEA,OADA1pC,EAAAoD,WAAAolC,GACAxoC,KAGAwlP,GAAA,SAAAzlP,EAAA24J,GACA,IAAAnwL,EAAAw3B,EAAAx3B,IACA,GAAAmwL,EAAA,CACA,GAAA+rF,GAAA/rF,GACA,OAAAwsF,GAAA38Q,EAAAmwL,GACS,GAAA2rF,GAAA3rF,GACT,OAAAxkM,EAAAP,KAAAgxR,GAAAp8Q,EAAAmwL,IACS,GAAA6rF,GAAA7rF,GACT,OAAAysF,GAAA58Q,EAAAmwL,GACS,GAAA8rF,GAAA9rF,GACT,OAAA6sF,GAAAh9Q,EAAAmwL,GACS,GAAA4rF,GAAA5rF,GACT,OAAAxkM,EAAAP,KAAA+kM,EAAA14J,KAGA,OAAA9rC,EAAArC,QAEA4zR,GAAA,CAA2Bv1R,QAAAs1R,IAE3BE,GAAA,SAAA3lP,EAAAzqC,EAAA2qP,GACA,OAAA49B,GAAAllF,YAAA54J,EAAAzqC,EAAA2qP,IAEArnD,GAAA,SAAA74J,EAAA24J,GACA+sF,GAAAv1R,QAAA6vC,EAAA24J,GAAAzlM,KAAA,SAAA+sC,GACAD,EAAA2nI,OAAA1nI,MAGA2lP,GAAA,SAAAx9Q,GACA,OAAA6oL,GAAA36K,UAAAlO,IAAA,SAAAA,EAAAkrL,SAAA,aAAAlrL,EAAA+U,aAAA,kBAEA0oQ,GAAA,CACAjtF,YAAA+sF,GACA9sF,kBACAyB,eAAAsrF,IAGAE,GAAA,SAAA19Q,GACA,OAAAA,GAAA,UAAAkB,KAAAlB,EAAAgO,WAEA2vQ,GAAA,SAAAv9Q,EAAAw3B,EAAAC,GACA,IACAynC,EAAAt/D,EAAAo7B,EADA1T,EAAAmQ,EAAAwB,YACA9kB,EAAAsjB,EAAAC,eACA,IAAAD,EAAAC,iBAAAD,EAAAyB,eACAokP,GAAA7lP,EAAAC,eAAAl4B,WAAAi4B,EAAAwB,gBAIA,IAAA9kB,EAAAjM,SAUA,IATA8yB,EAAA7mB,EAAA3U,WACA8nB,EAAA0T,EAAA30C,QACA8tB,EAAA6mB,EAAA1T,GACA43C,EAAA,IAAAgkM,GAAA/uP,EAAAnU,EAAA4oL,UAAAz0K,EAAAnU,EAAA0+D,YAEAvqD,EAAA6mB,IAAA30C,OAAA,GACA64E,EAAA,IAAAgkM,GAAA/uP,EAAAnU,EAAA4oL,UAAAz0K,EAAAnU,EAAA0+D,UACAQ,EAAA1iE,MAAA,IAEAoD,EAAAs/D,EAAA98D,UAAqCxC,EAAMA,EAAAs/D,EAAA1iE,OAC3C,OAAAoD,EAAAsI,WAAAs1Q,GAAA59Q,GAGA,OAFA63B,EAAAQ,SAAAr4B,EAAA,QACA43B,EAAA2nI,OAAA1nI,IAMAgmP,GAAA,SAAA79Q,EAAApD,EAAAkhR,GACA,GAAA99Q,EAEA,IADApD,IAAA,gCACAoD,EAAA89Q,EAAA99Q,IAAApD,GAA4CoD,EAAMA,IAAApD,GAClD,OAAAoD,EAAAsI,WAAAs1Q,GAAA59Q,GACA,OAAAA,GAKA+9Q,GAAA,SAAAvhN,EAAAvvE,GAIA,OAHAA,EAAAqb,WACArb,IAAA+gB,YAEAwuD,EAAAjiE,OAAA8tL,uBAAAp7L,EAAA6U,gBAEAuoG,GAAA,SAAA8G,EAAAn/F,EAAAI,GACA,OAAA++F,EAAA52G,OAAAm2P,aAAA1+O,EAAAI,IAEAwrQ,GAAA,SAAA59Q,GACA,OAAAA,GAAA,IAAAA,EAAAsI,UAAA,kBAAApH,KAAAlB,EAAAy6B,YAEAujP,GAAA,SAAAp3R,EAAAq3R,GAQA,MAPA,kBAAAr3R,EACAA,IAAAq3R,GACOA,IACPr3R,IAAA6a,QAAA,mBAAAqE,EAAA7Y,GACA,OAAAgxR,EAAAhxR,IAAA6Y,KAGAlf,GAEAs3R,GAAA,SAAAC,EAAAlrB,GAKA,OAJAkrB,KAAA,GACAlrB,KAAA,GACAkrB,EAAA,IAAAA,EAAAnwQ,UAAAmwQ,GACAlrB,EAAA,IAAAA,EAAAjlP,UAAAilP,GACAkrB,EAAAr8Q,gBAAAmxP,EAAAnxP,eAEAs8Q,GAAA,SAAAh+Q,EAAAxZ,EAAAqG,GAUA,MATA,UAAAA,GAAA,oBAAAA,IACArG,EAAAwZ,EAAAwyE,MAAAhsF,IAEA,eAAAqG,GAAA,MAAArG,IACAA,EAAA,QAEA,eAAAqG,IACArG,IAAA6a,QAAA,cAAAA,QAAA,cAEA,GAAA7a,GAEA6hG,GAAA,SAAAroF,EAAAJ,EAAA/S,GACA,OAAAmxR,GAAAh+Q,IAAAqoF,SAAAzoF,EAAA/S,OAEAoxR,GAAA,SAAAj+Q,EAAAJ,GACA,IAAAs+Q,EAKA,OAJAl+Q,EAAA4oL,UAAAhpL,EAAA,SAAA1X,GAEA,OADAg2R,EAAAl+Q,EAAAqoF,SAAAngG,EAAA,mBACAg2R,GAAA,SAAAA,IAEAA,GAEAC,GAAA,SAAAn+Q,EAAAJ,EAAAqI,GACA,OAAAjI,EAAAs3E,WAAA13E,EAAAqI,EAAAjI,EAAAw/D,YAEA4+M,GAAA,CACAd,iBACAC,aACAE,2BACAz1F,YAAA21F,GACA1zK,WACAuzK,oBACAI,eACAE,QACAE,uBACA31L,YACA41L,qBACA3mM,WAAA6mM,IAGAE,GAAAhB,GAAAvrF,eACAwsF,GAAAF,GAAA9mM,WAAAinM,GAAAH,GAAAZ,iBAAAgB,GAAAJ,GAAAp2F,YACAy2F,GAAA,SAAA7+Q,EAAA0nB,GACA,qBAAAA,IACAA,EAAA,IAAA1nB,EAAAsI,SAAAtI,EAAAvZ,OAAAuZ,EAAAJ,WAAAnZ,QAEA,MAAAuZ,KAAAL,gBACAK,IAAAJ,WAAA8nB,GACA1nB,IACA0nB,EAAA,IAAA1nB,EAAAsI,SAAAtI,EAAAvZ,OAAAuZ,EAAAJ,WAAAnZ,QAGA,OACAuZ,OACA0nB,WAGAo3P,GAAA,SAAAxlP,EAAAC,GACA,IAAAkpC,EAAAo8M,GAAAvlP,EAAAC,GACA,GAAAkpC,EAAAziE,KAAA,CACA,MAAAyiE,EAAAziE,MAAA,IAAAyiE,EAAA/6C,QAAA+6C,EAAAziE,KAAAwoL,gBACA/lH,EAAAo8M,GAAAp8M,EAAAziE,KAAAwoL,iBAEA/lH,EAAAziE,MAAAyiE,EAAA/6C,OAAA,OAAA+6C,EAAAziE,KAAAsI,UAAA,MAAAm6D,EAAAziE,KAAAy6B,UAAAomC,OAAA4B,EAAA/6C,OAAA,IACA+6C,EAAA/6C,OAAA,IACA4R,EAAAmpC,EAAAziE,KACAs5B,EAAA60O,UAAA1rM,EAAA/6C,OAAA,IAIA,OAAA4R,GAEAivJ,GAAA,SAAAvoL,GACA,aAAAA,EAAAgO,UAAAhO,EAAA+U,aAAA,oBAAA/U,EAAAkS,aAEA6sQ,GAAA,SAAA3+Q,EAAAJ,GACA,IAAAgS,EAAAhS,EACA,MAAAgS,EAAA,CACA,OAAAA,EAAA1J,UAAAlI,EAAA2+D,mBAAA/sD,GACA,gBAAA5R,EAAA2+D,mBAAA/sD,KAAAhS,EAEAgS,IAAA3D,WAEA,OAAArO,GAEAg/Q,GAAA,SAAAh5Q,EAAA0N,EAAA1T,EAAA0nB,GACA,IAAA2M,EAAA0+O,EACAjtQ,EAAA9F,EAAAy6B,UAgBA,MAfA,qBAAA/S,IACAA,EAAA1hB,EAAAF,EAAArf,OAAA,GAEAuf,GACAquB,EAAAvuB,EAAA+lQ,YAAA,IAAAnkP,GACAqrP,EAAAjtQ,EAAA+lQ,YAAA,IAAAnkP,GACA2M,IAAA0+O,EAAA1+O,EAAA0+O,GACA,IAAA1+O,IAAA3gB,IAAA2gB,EAAA3M,IAAA1hB,IAAAquB,GAAAvuB,EAAArf,QACA4tC,MAGAA,EAAAvuB,EAAAhd,QAAA,IAAA4+B,GACAqrP,EAAAjtQ,EAAAhd,QAAA,IAAA4+B,GACA2M,GAAA,IAAAA,KAAA,IAAA0+O,GAAA1+O,EAAA0+O,GAAA1+O,EAAA0+O,GAEA1+O,GAEA4qP,GAAA,SAAA7+Q,EAAAmO,EAAAgG,EAAAmT,EAAA1hB,EAAA0N,GACA,IAAA1T,EAAAq0B,EAAA6qP,EACA,OAAA3qQ,EAAAjM,SAAA,CAEA,GADA+rB,EAAA2qP,GAAAh5Q,EAAA0N,EAAAa,EAAAmT,IACA,IAAA2M,EACA,OACA9f,YACAmT,OAAA2M,GAGA6qP,EAAA3qQ,EAEA,IAAA+qD,EAAA,IAAAgkM,GAAA/uP,EAAAnU,EAAA4oL,UAAAz0K,EAAAnU,EAAA0+D,UAAAvwD,GACA,MAAAvO,EAAAs/D,EAAAt5D,EAAA,iBACA,OAAAhG,EAAAsI,UAAAm2Q,GAAAz+Q,EAAAqO,aASS,GAAAjO,EAAA0+D,QAAA9+D,IAAAw+Q,GAAAN,KAAAl+Q,EAAA,MACT,WAPA,GAFAk/Q,EAAAl/Q,EACAq0B,EAAA2qP,GAAAh5Q,EAAA0N,EAAA1T,IACA,IAAAq0B,EACA,OACA9f,UAAAvU,EACA0nB,OAAA2M,GAOA,GAAA6qP,EAMA,OAJAx3P,EADA1hB,EACA,EAEAk5Q,EAAAz4R,OAEA,CACA8tB,UAAA2qQ,EACAx3P,WAIAy3P,GAAA,SAAA/+Q,EAAAq3E,EAAA5/C,EAAAtjB,EAAAwuP,GACA,IAAAvhH,EAAAn5J,EAAAkY,EAAA6+Q,EAKA,IAJA,IAAA7qQ,EAAAjM,UAAA,IAAAiM,EAAAkmB,UAAAh0C,QAAA8tB,EAAAwuP,KACAxuP,IAAAwuP,IAEAvhH,EAAAk9H,GAAAt+Q,EAAAmU,GACAlsB,EAAA,EAAiBA,EAAAm5J,EAAA/6J,OAAoB4B,IACrC,IAAAkY,EAAA,EAAmBA,EAAAk3E,EAAAhxF,OAAmB8Z,IAEtC,GADA6+Q,EAAA3nM,EAAAl3E,KACA,cAAA6+Q,KAAAzlP,YAAA9B,EAAA8B,YAGAv5B,EAAAjW,GAAAq3J,EAAAn5J,GAAA+2R,EAAA/2Q,UACA,OAAAm5I,EAAAn5J,GAIA,OAAAksB,GAEA8qQ,GAAA,SAAA7iN,EAAAib,EAAAljE,EAAAwuP,GACA,IAAA/iQ,EACAI,EAAAo8D,EAAAp8D,IACA2+B,EAAA3+B,EAAAw/D,UAIA,GAHA6X,EAAA,GAAA5jE,UACA7T,EAAAI,EAAA4oL,UAAAz0K,EAAAkjE,EAAA,GAAA68C,MAAAv1F,KAEA/+B,EAAA,CACA,IAAAs/Q,EAAAl/Q,EAAA4oL,UAAAz0K,EAAA,YACAvU,EAAAI,EAAA4oL,UAAA,IAAAz0K,EAAAjM,SAAAiM,EAAAlG,WAAAkG,EAAA,SAAAvU,GACA,OAAAA,IAAA++B,GAAA6/O,GAAApiN,EAAAx8D,IACSs/Q,GAKT,GAHAt/Q,GAAAy3E,EAAA,GAAA5jE,UACA7T,EAAA0+Q,GAAAt+Q,EAAAJ,EAAA,SAAAzQ,UAAA,IAAAyQ,IAEAA,EAAA,CACAA,EAAAuU,EACA,MAAAvU,EAAA+iQ,KAAA3iQ,EAAA0+D,QAAA9+D,EAAA+iQ,IAEA,GADA/iQ,IAAA+iQ,GACAyb,GAAAN,KAAAl+Q,EAAA,MACA,MAIA,OAAAA,GAAAuU,GAEAgrQ,GAAA,SAAAn/Q,EAAAq3E,EAAA3/C,EAAAuB,EAAAC,EAAAC,EAAAvzB,GACA,IAAAuO,EAAAvC,EAAAc,EAAAiwP,EAAAhkO,EAIA,GAHAxqB,EAAAvC,EAAAhM,EAAA8xB,EAAAwB,EACAypO,EAAA/8P,EAAA,gCACA+4B,EAAA3+B,EAAAw/D,UACA,IAAArrD,EAAAjM,WAAAq2Q,GAAApqQ,KACAvO,EAAAqzB,EAAA,EAAAE,EAAAhlB,EAAAkmB,UAAAh0C,QACA,OAAA8tB,EAGA,SACA,IAAAkjE,EAAA,GAAA+nM,cAAAp/Q,EAAA0+D,QAAA9sD,GACA,OAAAA,EAEA,IAAAc,EAAAd,EAAA+wP,GAA2CjwP,EAASA,IAAAiwP,GACpD,IAAA0b,GAAA3rQ,KAAA6rQ,GAAA7rQ,KAAAy1K,GAAAz1K,GACA,OAAAd,EAGA,GAAAA,IAAA+sB,GAAA/sB,EAAA3D,aAAA0wB,EAAA,CACAxqB,EAAAvC,EACA,MAEAA,IAAA3D,WAEA,OAAAkG,GAEAkrQ,GAAA,SAAAjjN,EAAA3kC,EAAA4/C,EAAA/jE,GACA,IAAAgsQ,EAAA5nP,EAAAD,EAAAC,eAAAuB,EAAAxB,EAAAwB,YAAAC,EAAAzB,EAAAyB,aAAAC,EAAA1B,EAAA0B,UACAn5B,EAAAo8D,EAAAp8D,IAoFA,OAnFA,IAAA03B,EAAAxvB,UAAAwvB,EAAAn4B,kBACAm4B,EAAAmoC,GAAAnoC,EAAAuB,GACA,IAAAvB,EAAAxvB,WACA+wB,EAAA,IAGA,IAAAC,EAAAhxB,UAAAgxB,EAAA35B,kBACA25B,EAAA2mC,GAAA3mC,EAAAzB,EAAA8B,UAAAJ,IAAA,GACA,IAAAD,EAAAhxB,WACAixB,EAAAD,EAAAmB,UAAAh0C,SAGAqxC,EAAAinP,GAAA3+Q,EAAA03B,GACAwB,EAAAylP,GAAA3+Q,EAAAk5B,IACAmlP,GAAA3mP,EAAAzpB,aAAAowQ,GAAA3mP,MACAA,EAAA2mP,GAAA3mP,OAAAzpB,WAEAypB,EADAD,EAAA8B,UACA7B,EAAA0wJ,iBAAA1wJ,EAEAA,EAAA5lB,aAAA4lB,EAEA,IAAAA,EAAAxvB,WACA+wB,EAAAxB,EAAA8B,UAAA7B,EAAArxC,OAAA,KAGAg4R,GAAAnlP,EAAAjrB,aAAAowQ,GAAAnlP,MACAA,EAAAmlP,GAAAnlP,OAAAjrB,WAEAirB,EADAzB,EAAA8B,UACAL,EAAApnB,aAAAonB,EAEAA,EAAAkvJ,iBAAAlvJ,EAEA,IAAAA,EAAAhxB,WACAixB,EAAA1B,EAAA8B,UAAA,EAAAL,EAAA7yC,SAGAoxC,EAAA8B,YACA+lP,EAAAT,GAAA7+Q,EAAAo8D,EAAAhuD,UAAAspB,EAAAuB,GAAA,EAAA3lB,GACAgsQ,IACA5nP,EAAA4nP,EAAAnrQ,UACA8kB,EAAAqmP,EAAAh4P,QAEAg4P,EAAAT,GAAA7+Q,EAAAo8D,EAAAhuD,UAAA8qB,EAAAC,GAAA,EAAA7lB,GACAgsQ,IACApmP,EAAAomP,EAAAnrQ,UACAglB,EAAAmmP,EAAAh4P,SAGA+vD,EAAA,GAAAwS,SACA3wD,EAAA5lB,EAAA4lB,EAAAwlP,GAAAxlP,EAAAC,KAEAk+C,EAAA,GAAAwS,QAAAxS,EAAA,GAAA+nM,gBACA/nM,EAAA,GAAAwS,QAAA,IAAAnyD,EAAAxvB,UAAA,IAAA+wB,IACAvB,EAAAynP,GAAAn/Q,EAAAq3E,EAAA3/C,EAAAuB,EAAAC,EAAAC,GAAA,IAEAk+C,EAAA,GAAAwS,QAAA,IAAA3wD,EAAAhxB,UAAAixB,IAAAD,EAAAmB,UAAAh0C,SACA6yC,EAAAimP,GAAAn/Q,EAAAq3E,EAAA3/C,EAAAuB,EAAAC,EAAAC,GAAA,KAGAk+C,EAAA,GAAApvE,WAAA,IAAAovE,EAAA,GAAAtkB,SAAAskB,EAAA,GAAAwS,SACAnyD,EAAAqnP,GAAA/+Q,EAAAq3E,EAAA5/C,EAAAC,EAAA,mBACAwB,EAAA6lP,GAAA/+Q,EAAAq3E,EAAA5/C,EAAAyB,EAAA,iBAEAm+C,EAAA,GAAA68C,OAAA78C,EAAA,GAAApvE,YACAyvB,EAAAunP,GAAA7iN,EAAAib,EAAA3/C,EAAA,mBACAwB,EAAA+lP,GAAA7iN,EAAAib,EAAAn+C,EAAA,eACAm+C,EAAA,GAAA68C,QACAl0H,EAAA0+D,QAAAhnC,KACAA,EAAAynP,GAAAn/Q,EAAAq3E,EAAA3/C,EAAAuB,EAAAC,EAAAC,GAAA,IAEAn5B,EAAA0+D,QAAAxlC,KACAA,EAAAimP,GAAAn/Q,EAAAq3E,EAAA3/C,EAAAuB,EAAAC,EAAAC,GAAA,MAIA,IAAAzB,EAAAxvB,WACA+wB,EAAAj5B,EAAA+wL,UAAAr5J,GACAA,IAAAzpB,YAEA,IAAAirB,EAAAhxB,WACAixB,EAAAn5B,EAAA+wL,UAAA73J,GAAA,EACAA,IAAAjrB,YAEA,CACAypB,iBACAuB,cACAC,eACAC,cAGAomP,GAAA,CAAuBF,cAEvBG,GAAA93R,GAAAgD,KACA+0R,GAAA,SAAAtrQ,EAAAlC,GACA,IAAAzS,EAAA2U,EAAA3U,WAOA,OANAyS,IACAA,EAAAzS,EAAAnZ,OAAA,EACA4rB,EAAAzS,EAAAnZ,OAAA,EACO4rB,EAAA,IACPA,EAAA,GAEAzS,EAAAyS,IAAAkC,GAEAurQ,GAAA,SAAA1/Q,EAAAy3B,EAAAmhD,GACA,IAIAnrE,EACAkyQ,EACAL,EACA1/Q,EACAgS,EACAigL,EACA72J,EAVAtD,EAAAD,EAAAC,eACAuB,EAAAxB,EAAAwB,YACAC,EAAAzB,EAAAyB,aACAC,EAAA1B,EAAA0B,UASA,GADA6B,EAAAh7B,EAAAu5E,OAAA,+CACAv+C,EAAA30C,OAAA,EACAm5R,GAAAxkP,EAAA,SAAAp7B,GACAg5E,EAAA,CAAAh5E,UAFA,CAMA,IAAArM,EAAA,SAAAynC,GACA,IAAAp7B,EASA,OARAA,EAAAo7B,EAAA,GACA,IAAAp7B,EAAAsI,UAAAtI,IAAA83B,GAAAuB,GAAAr5B,EAAAy6B,UAAAh0C,QACA20C,EAAA85C,OAAA,KAEAl1E,EAAAo7B,IAAA30C,OAAA,GACA,IAAA8yC,GAAA6B,EAAA30C,OAAA,GAAAuZ,IAAAs5B,GAAA,IAAAt5B,EAAAsI,UACA8yB,EAAA85C,OAAA95C,EAAA30C,OAAA,KAEA20C,GAEA4kP,EAAA,SAAAhgR,EAAA/S,EAAA+kM,GAEA,IADA,IAAAC,EAAA,GACcjyL,OAAAgyL,EAA0BhyL,IAAA/S,GACxCglM,EAAAhkM,KAAA+R,GAEA,OAAAiyL,GAEAguF,EAAA,SAAAjgR,EAAA++B,GACA,GACA,GAAA/+B,EAAAqO,aAAA0wB,EACA,OAAA/+B,EAEAA,IAAAqO,iBACSrO,IAETkgR,EAAA,SAAA5kI,EAAA02C,EAAAp1L,GACA,IAAAmmQ,EAAAnmQ,EAAA,gCACA,IAAAoD,EAAAs7I,EAAAtpI,EAAAhS,EAAAqO,WAAwDrO,OAAAgyL,EAA0BhyL,EAAAgS,EAClFA,EAAAhS,EAAAqO,WACA4jL,EAAA+tF,EAAAhgR,IAAAs7I,EAAAt7I,IAAA+iQ,MACA9wE,EAAAxrM,SACAmW,GACAq1L,EAAA1iM,UAEAypF,EAAArlF,EAAAs+L,MAUA,GANA,IAAAn6J,EAAAxvB,UAAAwvB,EAAAn4B,kBACAm4B,IAAAl4B,WAAAy5B,IAEA,IAAAC,EAAAhxB,UAAAgxB,EAAA35B,kBACA25B,EAAAumP,GAAAvmP,EAAAC,IAEAzB,IAAAwB,EACA,OAAA0/C,EAAArlF,EAAA,CAAAmkC,KAGA,IADAjqB,EAAAzN,EAAAqnQ,mBAAA3vO,EAAAwB,GACAt5B,EAAA83B,EAAiC93B,EAAMA,IAAAqO,WAAA,CACvC,GAAArO,IAAAs5B,EACA,OAAA4mP,EAAApoP,EAAAjqB,GAAA,GAEA,GAAA7N,IAAA6N,EACA,MAGA,IAAA7N,EAAAs5B,EAA+Bt5B,EAAMA,IAAAqO,WAAA,CACrC,GAAArO,IAAA83B,EACA,OAAAooP,EAAA5mP,EAAAzrB,GAEA,GAAA7N,IAAA6N,EACA,MAGAkyQ,EAAAE,EAAAnoP,EAAAjqB,IAAAiqB,EACA4nP,EAAAO,EAAA3mP,EAAAzrB,IAAAyrB,EACA4mP,EAAApoP,EAAAioP,GAAA,GACA9tF,EAAA+tF,EAAAD,IAAAjoP,EAAAioP,IAAA7tQ,YAAA,cAAAwtQ,IAAApmP,EAAAomP,EAAAxtQ,YAAAwtQ,GACAztF,EAAAxrM,QACAuyF,EAAArlF,EAAAs+L,IAEAiuF,EAAA5mP,EAAAomP,KAEAS,GAAA,CAAqBx9B,KAAAm9B,IAErBzpP,GAAA,WACA,gBAGA,SAAAkE,GAAApwC,EAAA8C,GACA,IAAA2D,EAAA,SAAAwX,GACA,IAAAje,EAAAie,GACA,UAAA5gB,MAAA,gBAAAyF,EAAA,eAAAA,EAAA,SAEA,OAAAutC,EAAApyB,GAAA/d,MAAA,KAEAmwC,EAAA,SAAApyB,GACA,OAAAje,EAAAie,GAAArc,EAAAD,KAAAsc,EAAAhI,MAAAq6B,WAAA1uC,EAAArC,QAEAuV,EAAA,SAAAmJ,EAAAxhB,GACA,IAAAuD,EAAAie,GACA,UAAA5gB,MAAA,oBAAAyF,EAAA,eAAAA,EAAA,SAEAmb,EAAAhI,MAAAq6B,UAAA7zC,GAEA,OACAgK,MACA4pC,YACAv7B,OAIA,IAAAilB,GAAAqW,GAAAqkC,GAAA,QACAt6C,GAAA,SAAAlc,GACA,OAAA8b,GAAAtzB,IAAAwX,IAGAg4Q,GAAA,SAAA73Q,GACA,OAAAq2D,GAAAr2D,IAAA+b,GAAA/b,KAAA8tB,MAEA0sC,GAAA,SAAAvG,EAAAj0D,EAAA83Q,EAAAryQ,GACA,OAAAgE,GAAAzJ,GAAAre,KAAA,WACA,kBACO,SAAA8nB,GACP,aAAAhE,GAAAoyQ,GAAA73Q,GACA,QACSkkQ,GAAAlkQ,GACT,WACSstQ,GAAAttQ,GACT,QACSi2Q,GAAAn0K,QAAA7tC,EAAA6jN,EAAAryQ,IAAAwwQ,GAAAn0K,QAAA7tC,EAAAvvE,GAAA+kB,GAAAquQ,GAGT,QAFA,mBAOAC,GAAA,SAAAzoP,GACA,WAAAA,EAAAC,eAAAxvB,UAAAuvB,EAAAC,eAAA2C,UAAAh0C,QAAAoxC,EAAAwB,aAAA,MAAAxB,EAAAC,eAAA2C,UAAA5C,EAAAwB,cAEAknP,GAAA,SAAA/jN,EAAA3kC,GACA,IAAA1uC,EAAAw2R,GAAAF,UAAAjjN,EAAA3kC,EAAA,EAAmDoyD,QAAA,IAAeq2L,GAAAzoP,IAClEA,EAAAQ,SAAAlvC,EAAA2uC,eAAA3uC,EAAAkwC,aACAxB,EAAAa,OAAAvvC,EAAAmwC,aAAAnwC,EAAAowC,WACAijC,EAAA5kC,UAAA2nI,OAAA1nI,IAEA2oP,GAAA,SAAAC,EAAA39P,EAAAupP,EAAAqU,GACA,IAAA39F,EAAAjgK,EAAAnT,WAAA,IAAAozK,EAAAhyL,GAAA,kBAAAgyL,EAAAv1K,EAAA5kB,EAAAk6B,EAAA,SACA69P,EAAAlgR,GAAAX,QAAA,OAAA2gR,GACArhQ,GAAAuhQ,EAAAzU,MACAjtQ,GAAA0hR,EAAA,GAAAvU,KAAAz8P,GACA1Q,GAAA0hR,EAAA,GAAAxU,KAAAE,GACA,IAAA7uF,EAAAkjG,EAAA/wQ,EAAAnC,GAAAozQ,EAAApjG,EAAA/iK,kBAAA,IAAAmmQ,EAAA,GAAuFA,EAAAz/G,EAAAqc,EAAAhjK,eAAA,IAAA2mJ,EAAA,GAAAA,EAGvF,OAFAvsJ,GAAA+rQ,EAAAlmQ,GACA0uI,GAAAw3H,EAAAnmQ,GACAmmQ,GAEAE,GAAA,SAAArkN,EAAA3kC,EAAAw0O,EAAAqU,EAAAlzQ,GACA,IAAAszQ,EAAA,GACAH,EAAAH,GAAAhkN,EAAA0D,SAAA1yD,EAAA6+P,EAAAqU,GACA7sQ,EAAA9U,GAAAhT,EAAArC,QACAq3R,EAAA,WACAltQ,EAAA5U,IAAAlT,EAAArC,SAEAs3R,EAAA,WACA,OAAAntQ,EAAAjjB,MAAAtG,WAAA,WACA,IAAAgI,EAAAF,GAAAuuR,GAGA,OAFAG,EAAA7yR,KAAAqE,GACAuhB,EAAA5U,IAAAlT,EAAAP,KAAA8G,IACAA,KAGA2uR,EAAA,SAAApiB,GACA/zQ,EAAA+zQ,EAAAqiB,IAEAA,EAAA,SAAA34Q,GACA,IAAAmtE,EAAA3S,GAAAvG,EAAAj0D,EAAA,OAAAtb,GAAAsb,IACA,OAAAmtE,GACA,oBACAqrM,IACA,IAAAjtQ,EAAA3B,GAAA5J,GACA04Q,EAAAntQ,GACAitQ,IACA,MAEA,YACA,IAAA/4P,EAAAg5P,IACA/rR,GAAAsT,EAAAyf,GACA,MAEA,eACA,eACA,eAGAm5P,EAAA,SAAA/lP,GACA,IAAAyjO,EAAAh0Q,EAAAuwC,EAAA36B,GAAAZ,SACAohR,EAAApiB,IAMA,OAJAshB,GAAAx9B,KAAAnmL,EAAAp8D,IAAAy3B,EAAA,SAAAuD,GACA2lP,IACAI,EAAA/lP,KAEA0lP,GAEAM,GAAA,SAAA5kN,EAAAvvE,EAAAowE,EAAA7vD,GACAgvD,EAAAob,YAAAC,SAAA,WACA,IAAAwpM,EAAA7kN,EAAA5kC,UAAAkrC,SAIA,GAHAu+M,EAAA1nP,WACA4mP,GAAA/jN,EAAA6kN,GAEA7kN,EAAA5kC,UAAAkrC,SAAAnpC,UAAA,CACA,IAAA9lB,EAAA2sQ,GAAAhkN,EAAA0D,SAAA1yD,EAAAvgB,EAAAowE,EAAAqjN,UACA/rQ,GAAAd,EAAA,KACA2oD,EAAA5kC,UAAAkrC,SAAA1C,WAAAvsD,EAAAzT,OACAo8D,EAAA5kC,UAAA+hD,OAAA9lE,EAAAzT,WACS,CACT,IAAAmwL,EAAAmlF,GAAAL,sBAAA74M,EAAA5kC,WAAA,GACAC,EAAA2kC,EAAA5kC,UAAAkrC,SACA+9M,GAAArkN,EAAA3kC,EAAA5qC,EAAAowE,EAAAqjN,SAAAlzQ,GACAgvD,EAAA5kC,UAAA64J,eAAAF,OAKA+wF,GAAA,SAAA9kN,GACA,IAAAiI,EAAAv0C,KACA2zD,GAAArnB,EAAAiI,GACA,IAAA4kF,EAAA/0F,GAAAkI,GACA,OACA8H,SAAA,SAAAr3E,EAAAowE,GACAoH,EAAAH,SAAAr3E,EAAAowE,IAEAwjN,SAAA,SAAA5zR,EAAAugB,GACAi3D,EAAAj3B,OAAAvgD,GAAAnC,KAAA,SAAAuyE,GACA+jN,GAAA5kN,EAAAvvE,EAAAowE,EAAA7vD,MAGA+zQ,kBAAA,SAAAt0R,EAAA+rF,GACAqwE,EAAAt6D,YAAA9hG,EAAA+rF,IAEAtlE,OAAA,SAAAzmB,GACA+gN,GAAAxxI,EAAAzwE,EAAAP,KAAAyB,IAAAnC,KAAA,SAAAg4B,GACA,IAAAzP,EAAAyP,EAAAzP,SACAvoB,EAAAuoB,EAAAO,OAGA8wD,OAAA,SAAAz3E,GACA,IAAAukE,EAAAk7M,GAAAlwM,EAAAvvE,GACA,OAAAqD,GAAAkhE,EAAA,SAAAqtM,GACA,OAAAh0Q,EAAAg0Q,EAAA,SAAAt2P,GACA,OAAAA,EAAAnI,aAOAohR,GAAA,eACAC,GAAA,CACAC,QAAA,EACAvyB,WAAA,EACAwyB,SAAA,EACAC,MAAA,EACAC,WAAA,GACAC,qBAAA,IAEAC,GAAA,SAAA/hR,EAAA++B,EAAA8gC,GACA,IAAA6jM,EAAA7jM,EAAA,yBACAkjM,EAAAljM,EAAA,cACA,GAAA7/D,EAAA0jQ,GACA,OAAA1jQ,EAAA0jQ,GAEA,GAAA1jQ,IAAA++B,EAAA,CACA,IAAAjsB,EAAA9S,EAAA+iQ,GACA,GAAAjwP,EACA,OAAAA,EAEA,QAAAd,EAAAhS,EAAAgS,OAAsCA,OAAA+sB,EAA2B/sB,WAEjE,GADAc,EAAAd,EAAA+wP,GACAjwP,EACA,OAAAA,IAKAkvQ,GAAA,WACA,SAAAphR,EAAA3T,EAAAE,GACAxE,KAAAsE,OACAtE,KAAAwE,OACA,IAAAA,IACAxE,KAAA8xB,WAAA,GACA9xB,KAAA8xB,WAAA5vB,IAAA,IA6OA,OA1OA+V,EAAA8tB,OAAA,SAAAzhC,EAAA4nB,GACA,IAAA7U,EAAA,IAAAY,EAAA3T,EAAAw0R,GAAAx0R,IAAA,GACA,GAAA4nB,EACA,QAAA2qL,KAAA3qL,EACA7U,EAAAue,KAAAihL,EAAA3qL,EAAA2qL,IAGA,OAAAx/L,GAEAY,EAAApY,UAAAiZ,QAAA,SAAAzB,GACA,IAAAtU,EAAA/C,KAMA,OALAqX,EAAAgS,QACAhS,EAAA0T,SAEAhoB,EAAAi+D,OAAA3pD,EAAAtU,GACAA,EAAAgoB,SACAhoB,GAEAkV,EAAApY,UAAA+1B,KAAA,SAAAtxB,EAAArG,GACA,IACAiuB,EADAnpB,EAAA/C,KAEA,qBAAAsE,EAAA,CACA,QAAA4D,KAAA5D,EACAvB,EAAA6yB,KAAA1tB,EAAA5D,EAAA4D,IAEA,OAAAnF,EAEA,GAAAmpB,EAAAnpB,EAAA+uB,WAAA,CACA,QAAA/vB,IAAA9D,EAAA,CACA,UAAAA,EAAA,CACA,GAAAqG,KAAA4nB,EAAAhqB,IAAA,QACAgqB,EAAAhqB,IAAAoC,GACA,IAAA5E,EAAAwsB,EAAApuB,OACA,MAAA4B,IACA,GAAAwsB,EAAAxsB,GAAA4E,SAEA,OADA4nB,EAAAqgE,OAAA7sF,EAAA,GACAqD,EAIA,OAAAA,EAEA,GAAAuB,KAAA4nB,EAAAhqB,IAAA,CACAxC,EAAAwsB,EAAApuB,OACA,MAAA4B,IACA,GAAAwsB,EAAAxsB,GAAA4E,SAAA,CACA4nB,EAAAxsB,GAAAzB,QACA,YAIAiuB,EAAA5mB,KAAA,CACAhB,OACArG,UAIA,OADAiuB,EAAAhqB,IAAAoC,GAAArG,EACA8E,EAEA,OAAAmpB,EAAAhqB,IAAAoC,KAGA2T,EAAApY,UAAA0W,MAAA,WACA,IAEA+iR,EAFAv2R,EAAA/C,KACAuW,EAAA,IAAA0B,EAAAlV,EAAAuB,KAAAvB,EAAAyB,MAEA,GAAA80R,EAAAv2R,EAAA+uB,WAAA,CACA,IAAAynQ,EAAA,GACAA,EAAAr3R,IAAA,GACA,QAAAxC,EAAA,EAAAo0G,EAAAwlL,EAAAx7R,OAA+C4B,EAAAo0G,EAAOp0G,IAAA,CACtD,IAAA85R,EAAAF,EAAA55R,GACA,OAAA85R,EAAAl1R,OACAi1R,IAAAz7R,QAAA,CACAwG,KAAAk1R,EAAAl1R,KACArG,MAAAu7R,EAAAv7R,OAEAs7R,EAAAr3R,IAAAs3R,EAAAl1R,MAAAk1R,EAAAv7R,OAGAsY,EAAAub,WAAAynQ,EAIA,OAFAhjR,EAAAtY,MAAA8E,EAAA9E,MACAsY,EAAA0/L,WAAAlzM,EAAAkzM,WACA1/L,GAEA0B,EAAApY,UAAAyL,KAAA,SAAA4f,GACA,IAAAnoB,EAAA/C,KAGA,OAFA+C,EAAAsmB,OAAA23C,OAAA91C,EAAAnoB,GACAmoB,EAAAd,OAAArnB,GACAA,GAEAkV,EAAApY,UAAAorB,OAAA,WAEA,IADA,IAAAloB,EAAA/C,KACAqX,EAAAtU,EAAA6mB,WAAwCvS,GAAM,CAC9C,IAAApD,EAAAoD,EAAApD,KACAlR,EAAAi+D,OAAA3pD,EAAAtU,GAAA,GACAsU,EAAApD,EAEAlR,EAAAgoB,UAEA9S,EAAApY,UAAAkrB,OAAA,WACA,IAAAhoB,EAAA/C,KAAAqpB,EAAAtmB,EAAAsmB,OAAApV,EAAAlR,EAAAkR,KAAAijE,EAAAn0E,EAAAm0E,KAoBA,OAnBA7tD,IACAA,EAAAO,aAAA7mB,GACAsmB,EAAAO,WAAA3V,EACAA,IACAA,EAAAijE,KAAA,OAGAA,EAAAjjE,OAEAoV,EAAAo1K,YAAA17L,GACAsmB,EAAAo1K,UAAAvnH,EACAA,IACAA,EAAAjjE,KAAA,OAGAA,EAAAijE,OAEAn0E,EAAAsmB,OAAAtmB,EAAAkR,KAAAlR,EAAAm0E,KAAA,MAEAn0E,GAEAkV,EAAApY,UAAAuqB,OAAA,SAAA/S,GACA,IAAAtU,EAAA/C,KACAqX,EAAAgS,QACAhS,EAAA0T,SAEA,IAAA1jB,EAAAtE,EAAA07L,UASA,OARAp3L,GACAA,EAAA4M,KAAAoD,EACAA,EAAA6/D,KAAA7vE,EACAtE,EAAA07L,UAAApnL,GAEAtU,EAAA07L,UAAA17L,EAAA6mB,WAAAvS,EAEAA,EAAAgS,OAAAtmB,EACAsU,GAEAY,EAAApY,UAAAmhE,OAAA,SAAA3pD,EAAAoiR,EAAA3vQ,GACAzS,EAAAgS,QACAhS,EAAA0T,SAEA,IAAA1B,EAAAowQ,EAAApwQ,QAAArpB,KAqBA,OApBA8pB,GACA2vQ,IAAApwQ,EAAAO,WACAP,EAAAO,WAAAvS,EAEAoiR,EAAAviN,KAAAjjE,KAAAoD,EAEAA,EAAA6/D,KAAAuiN,EAAAviN,KACA7/D,EAAApD,KAAAwlR,EACAA,EAAAviN,KAAA7/D,IAEAoiR,IAAApwQ,EAAAo1K,UACAp1K,EAAAo1K,UAAApnL,EAEAoiR,EAAAxlR,KAAAijE,KAAA7/D,EAEAA,EAAApD,KAAAwlR,EAAAxlR,KACAoD,EAAA6/D,KAAAuiN,EACAA,EAAAxlR,KAAAoD,GAEAA,EAAAgS,SACAhS,GAEAY,EAAApY,UAAAk8E,OAAA,SAAAz3E,GAGA,IAFA,IAAAvB,EAAA/C,KACAq3I,EAAA,GACAhgI,EAAAtU,EAAA6mB,WAAwCvS,EAAMA,EAAA+hR,GAAA/hR,EAAAtU,GAC9CsU,EAAA/S,UACA+yI,EAAA/xI,KAAA+R,GAGA,OAAAggI,GAEAp/H,EAAApY,UAAA+qB,MAAA,WACA,IAAA7nB,EAAA/C,KACA,GAAA+C,EAAA6mB,WAAA,CAEA,IADA,IAAA6oB,EAAA,GACAp7B,EAAAtU,EAAA6mB,WAA0CvS,EAAMA,EAAA+hR,GAAA/hR,EAAAtU,GAChD0vC,EAAAntC,KAAA+R,GAEA,IAAA3X,EAAA+yC,EAAA30C,OACA,MAAA4B,IAAA,CACA2X,EAAAo7B,EAAA/yC,GACA2X,EAAAgS,OAAAhS,EAAAuS,WAAAvS,EAAAonL,UAAApnL,EAAApD,KAAAoD,EAAA6/D,KAAA,MAIA,OADAn0E,EAAA6mB,WAAA7mB,EAAA07L,UAAA,KACA17L,GAEAkV,EAAApY,UAAAigM,QAAA,SAAAp1K,EAAAgkP,EAAA5oP,QACA,IAAA4oP,IACAA,EAAA,IAEA,IAAA3rQ,EAAA/C,KACAqX,EAAAtU,EAAA6mB,WACA,GAAAvS,EACA,GACA,OAAAA,EAAA7S,KAAA,CACA,GAAA6S,EAAAue,KAAA,kBACA,SAEA,GAAAlL,EAAArT,EAAA/S,MACA,SAEA,IAAA5E,EAAA2X,EAAAya,WAAAh0B,OACA,MAAA4B,IAAA,CACA,IAAA4E,EAAA+S,EAAAya,WAAApyB,GAAA4E,KACA,YAAAA,GAAA,IAAAA,EAAAnE,QAAA,qBACA,UAIA,OAAAkX,EAAA7S,KACA,SAEA,OAAA6S,EAAA7S,OAAAq0R,GAAAtgR,KAAAlB,EAAApZ,OACA,SAEA,OAAAoZ,EAAA7S,MAAA6S,EAAAgS,QAAAqlP,EAAAr3P,EAAAgS,OAAA/kB,OAAAu0R,GAAAtgR,KAAAlB,EAAApZ,OACA,SAEA,GAAA6nB,KAAAzO,GACA,eAEWA,EAAA+hR,GAAA/hR,EAAAtU,IAEX,UAEAkV,EAAApY,UAAAm6P,KAAA,SAAA9iL,GACA,OAAAkiN,GAAAp5R,KAAA,KAAAk3E,IAEAj/D,EAnPA,GAsPAyhR,GAAA,SAAAp1R,GACA,WAAAA,EAAAnE,QAAA,cAAAmE,EAAAnE,QAAA,UAEAw5R,GAAA,SAAApiR,GACA,OAAAA,EAAAuB,QAAA,iBAEA8gR,GAAA,SAAAllN,EAAAy4C,GACA,OAAAz4C,EAAAmlN,uBAEO,iBAAAthR,KAAA40G,IACP,IAAAz4C,EAAA81L,qBAAA,yBAAAjyP,KAAA40G,GAEA,UAAA50G,KAAA40G,KAGA2sK,GAAA,SAAAloR,EAAA6E,EAAAitM,GACA,IAAAh6L,EAAAtL,EAAA27Q,EAAAC,EAAAvxR,EAAA,EACAuxR,EAAApoR,EAAA+1P,wBACAoyB,EAAA,iGACAA,EAAAtvB,UAAA/gP,EAAAg6L,EACA,MAAAtlM,EAAA27Q,EAAA/vM,KAAAvzE,GAAA,CAEA,GADAiT,EAAAqwQ,EAAAtvB,UACA,MAAArsP,EAAA,GACA3V,SACS,IAAA2V,EAAA,IACT,GAAAA,EAAA,KAAA47Q,EACA,SAEAvxR,IAEA,OAAAA,EACA,MAGA,OAAAihB,GAEAuwQ,GAAA,SAAAC,EAAAC,GACA,IAAA/7Q,EAAA87Q,EAAAlwM,KAAAmwM,GACA,GAAA/7Q,EAAA,CACA,IAAA9Z,EAAA8Z,EAAA,GACAngB,EAAAmgB,EAAA,GACA,wBAAA9Z,GAAA,mBAAAA,EAAA6U,cAAAlb,EAAA,KAEA,aAGA,SAAAm8R,GAAA1lN,EAAA9iE,QACA,IAAAA,IACAA,EAAAmxP,MAEA,IAAA1lQ,EAAA,aAEAq3E,KAAA,IACA,IAAAA,EAAA2lN,mBACA3lN,EAAA2lN,kBAAA,GAEA,IAAA9oF,EAAA78H,EAAA68H,QAAA78H,EAAA68H,QAAAl0M,EACAm0M,EAAA98H,EAAA88H,MAAA98H,EAAA88H,MAAAn0M,EACAka,EAAAm9D,EAAAn9D,KAAAm9D,EAAAn9D,KAAAla,EACAggB,EAAAq3D,EAAAr3D,MAAAq3D,EAAAr3D,MAAAhgB,EACAywH,EAAAp5C,EAAAo5C,IAAAp5C,EAAAo5C,IAAAzwH,EACAi9R,EAAA5lN,EAAA4lN,GAAA5lN,EAAA4lN,GAAAj9R,EACAk9R,EAAA7lN,EAAA6lN,QAAA7lN,EAAA6lN,QAAAl9R,EACA06E,EAAA,SAAAthE,GACA,IAAA2H,EAAAngB,EAAAu8R,EAEAC,EAAA/6R,EAAAg7R,EAAAp2R,EACAq2R,EAAAC,EAAAZ,EAAAa,EAAAC,EACAxuL,EAAAyuL,EAAAC,EAAAplQ,EAAAqlQ,EAAAC,EAAAC,EACA71B,EAAAC,EAAAC,EAAA41B,EACAC,EAAAC,EAAAvB,EAAAwB,EAAA/jF,EAAAV,EAEA0kF,EARA9xQ,EAAA,EACAwY,EAAA,GAKAo4N,EAAA,EACAmH,EAAAC,GAAAD,OAEAg6B,EAAAt8R,GAAAmgJ,QAAA,yDACAo8I,EAAA,4BACAC,EAAA,SAAAr3R,GACA,IAAAonC,EAAAhsC,EACAgsC,EAAAxJ,EAAApkC,OACA,MAAA4tC,IACA,GAAAxJ,EAAAwJ,GAAApnC,SACA,MAGA,GAAAonC,GAAA,GACA,IAAAhsC,EAAAwiC,EAAApkC,OAAA,EAAsC4B,GAAAgsC,EAAUhsC,IAChD4E,EAAA49B,EAAAxiC,GACA4E,EAAAmoG,OACAqhB,EAAAxpH,QAGA49B,EAAApkC,OAAA4tC,IAGAkwP,EAAA,SAAAhzR,EAAAtE,EAAArG,EAAA4uP,EAAAgvC,GACA,IAAAC,EAAAp8R,EACAq8R,EAAA,sBAGA,GAFAz3R,IAAA6U,cACAlb,EAAAqG,KAAAu2R,EAAAv2R,EAAAm9P,EAAAxjQ,GAAA4uP,GAAAgvC,GAAA,IACAvvL,IAAAquL,IAAA,IAAAjB,GAAAp1R,GAAA,CAEA,GADAw3R,EAAAZ,EAAA52R,IACAw3R,GAAAX,EAAA,CACAz7R,EAAAy7R,EAAAr9R,OACA,MAAA4B,IAEA,GADAo8R,EAAAX,EAAAz7R,GACAo8R,EAAAj0K,QAAAtvG,KAAAjU,GACA,OAGA,IAAA5E,IACAo8R,EAAA,MAGA,IAAAA,EACA,OAEA,GAAAA,EAAAp2B,eAAAznQ,KAAA69R,EAAAp2B,aACA,OAGA,GAAA+1B,EAAAn3R,KAAAowE,EAAA61L,kBAAA,CACA,IAAAp9I,EAAAlvH,EAAA6a,QAAAijR,EAAA,IACA,IACA5uK,EAAA6uK,mBAAA7uK,GACa,MAAA/kB,GACb+kB,EAAA8qF,SAAA9qF,GAEA,GAAAuuK,EAAAnjR,KAAA40G,GACA,OAEA,GAAAysK,GAAAllN,EAAAy4C,GACA,OAGAwtK,IAAAr2R,KAAAm3R,GAAA,IAAAn3R,EAAAnE,QAAA,SAGAs6R,EAAAv4R,IAAAoC,GAAArG,EACAw8R,EAAAn1R,KAAA,CACAhB,OACArG,YAGA87R,EAAA,IAAAryM,OAAA,2RACA6zM,EAAA,iFACAvB,EAAApoR,EAAA+1P,wBACA2zB,EAAA5mN,EAAAunN,uBAAArqR,EAAAg2P,yBACAizB,EAAAjpR,EAAA+lM,eACArrG,EAAA53B,EAAA43B,SACAsuL,EAAAlmN,EAAAwnN,iBACAV,EAAA9mN,EAAA2lN,iBACA7iF,EAAA5lM,EAAA6lM,qBACA2jF,EAAA3kR,EAAA,IACA,MAAA2H,EAAA27Q,EAAA/vM,KAAAoxM,GAAA,CAIA,GAHA1xQ,EAAAtL,EAAAsL,OACAnS,EAAAkqP,EAAAhrP,EAAA2G,OAAAsM,EAAAtL,EAAAsL,WAEAzrB,EAAAmgB,EAAA,GACAngB,IAAAkb,cACA,MAAAlb,EAAAi6E,OAAA,KACAj6E,IAAAmf,OAAA,IAEAu+Q,EAAA19R,QACW,GAAAA,EAAAmgB,EAAA,IACX,GAAAA,EAAAsL,MAAAtL,EAAA,GAAAtgB,OAAA2Y,EAAA3Y,OAAA,CACAyZ,EAAAkqP,EAAAhrP,EAAA2G,OAAAgB,EAAAsL,SACAA,EAAAtL,EAAAsL,MAAAtL,EAAA,GAAAtgB,OACA,SAEAG,IAAAkb,cACA,MAAAlb,EAAAi6E,OAAA,KACAj6E,IAAAmf,OAAA,IAEA09Q,EAAA78R,KAAA+7R,EACAwB,GAAAF,EAAAr9R,IAAAikC,EAAApkC,OAAA,GAAAokC,IAAApkC,OAAA,GAAAwG,OAAArG,GACA09R,EAAA19R,GAEA,IAAAk+R,EAAAlC,GAAAsB,EAAAn9Q,EAAA,IACA,UAAA+9Q,EAAA,CACA,WAAAA,EAAA,CACAzyQ,EAAAowQ,GAAAloR,EAAA6E,EAAAsjR,EAAAtvB,WACAsvB,EAAAtvB,UAAA/gP,EACA,SAEAsxQ,GAAA,EAEA,IAAA1uL,IAAAyuL,EAAAnpR,EAAA60P,eAAAxoQ,IAAA,CAkBA,GAjBA+8R,GAAA,EACA1uL,IACA4uL,EAAAH,EAAAjpQ,WACAqpQ,EAAAJ,EAAAp1B,oBAEAs1B,EAAA78Q,EAAA,KACAu8Q,GAAA,IAAAM,EAAA96R,QAAA,iBACAw6R,GAAAC,IACAI,GAAA,GAEAP,EAAA,GACAA,EAAAv4R,IAAA,GACA+4R,EAAAniR,QAAAyiR,EAAAK,KAEAnB,EAAA,GACAA,EAAAv4R,IAAA,IAEAoqG,IAAAquL,EAAA,CAQA,GAPAr1B,EAAAy1B,EAAAz1B,mBACAC,EAAAw1B,EAAAx1B,kBACAC,EAAAu1B,EAAAv1B,iBACA61B,EAAAN,EAAA11B,iBACAg2B,IAAAZ,EAAA38R,SACAk9R,GAAA,GAEAx1B,EAAA,CACA9lQ,EAAA8lQ,EAAA1nQ,OACA,MAAA4B,IACAk2B,EAAA4vO,EAAA9lQ,GACA4E,EAAAsxB,EAAAtxB,KACAwyM,EAAAlhL,EAAA33B,MACA,WAAA64M,IACAA,EAAA,OAAAwjD,KAEAmgC,EAAAv4R,IAAAoC,GAAAwyM,EACA2jF,EAAAn1R,KAAA,CACAhB,OACArG,MAAA64M,IAIA,GAAAyuD,EAAA,CACA7lQ,EAAA6lQ,EAAAznQ,OACA,MAAA4B,IACAk2B,EAAA2vO,EAAA7lQ,GACA4E,EAAAsxB,EAAAtxB,KACAA,KAAAm2R,EAAAv4R,MACA40M,EAAAlhL,EAAA33B,MACA,WAAA64M,IACAA,EAAA,OAAAwjD,KAEAmgC,EAAAv4R,IAAAoC,GAAAwyM,EACA2jF,EAAAn1R,KAAA,CACAhB,OACArG,MAAA64M,KAKA,GAAAwuD,EAAA,CACA5lQ,EAAA4lQ,EAAAxnQ,OACA,MAAA4B,IACA,GAAA4lQ,EAAA5lQ,KAAA+6R,EAAAv4R,IACA,OAGA,IAAAxC,IACAs7R,GAAA,GAGA,GAAAplQ,EAAA6kQ,EAAAv4R,IAAA,mBACA,WAAA0zB,EAAA,CACAlM,EAAAowQ,GAAAloR,EAAA6E,EAAAsjR,EAAAtvB,WACAsvB,EAAAtvB,UAAA/gP,EACA,SAEAsxQ,GAAA,GAGAA,GACA39Q,EAAApf,EAAAw8R,EAAAK,QAGAE,GAAA,EAEA,GAAAR,EAAAhjF,EAAAv5M,GAAA,CACAu8R,EAAA/vB,UAAA/gP,EAAAtL,EAAAsL,MAAAtL,EAAA,GAAAtgB,QACAsgB,EAAAo8Q,EAAAxwM,KAAAvzE,KACAukR,IACAN,EAAAjkR,EAAA2G,OAAAsM,EAAAtL,EAAAsL,UAEAA,EAAAtL,EAAAsL,MAAAtL,EAAA,GAAAtgB,SAEA48R,EAAAjkR,EAAA2G,OAAAsM,GACAA,EAAAjT,EAAA3Y,QAEAk9R,IACAN,EAAA58R,OAAA,GACAyZ,EAAAmjR,GAAA,GAEA5sK,EAAA7vH,IAEA87R,EAAAtvB,UAAA/gP,EACA,SAEAoxQ,IACAG,KAAA96R,QAAA,OAAA86R,EAAAn9R,OAAA,EAKek9R,GACfltK,EAAA7vH,GALAikC,EAAA58B,KAAA,CACAhB,KAAArG,EACAwuG,MAAAuuL,UAMW/8R,EAAAmgB,EAAA,KACX,MAAAngB,EAAAi6E,OAAA,KACAj6E,EAAA,IAAAA,GAEAy2E,EAAAi7H,4BAAA,QAAA1xM,EAAAmf,OAAA,KAAAjE,gBACAlb,EAAA,IAAAA,GAEAszM,EAAAtzM,KACWA,EAAAmgB,EAAA,IACXozL,EAAAmoF,GAAA17R,KACWA,EAAAmgB,EAAA,IACXm8Q,EAAAt8R,IACWA,EAAAmgB,EAAA,KACXk8Q,EAAAr8R,EAAAmgB,EAAA,IAEAsL,EAAAtL,EAAAsL,MAAAtL,EAAA,GAAAtgB,OAKA,IAHA4rB,EAAAjT,EAAA3Y,QACAyZ,EAAAkqP,EAAAhrP,EAAA2G,OAAAsM,KAEAhqB,EAAAwiC,EAAApkC,OAAA,EAAkC4B,GAAA,EAAQA,IAC1CzB,EAAAikC,EAAAxiC,GACAzB,EAAAwuG,OACAqhB,EAAA7vH,EAAAqG,OAIA,OAAcyzE,UAEd,SAAAqiN,GACAA,EAAAgC,WAAAtC,IADA,CAEKM,QAAA,KACL,IA2wBAiC,GA3wBAC,GAAAlC,GAEAmC,GAAA,SAAAC,EAAA/lR,GACA,IAAAgmR,EAAA,IAAA/0M,OAAA,SAAA80M,EAAAzzR,KAAA,kBAAAA,KAAA,WACA,OAAA0N,EAAAqC,QAAA2jR,EAAA,KAEAC,GAAA,SAAAvoF,EAAA19L,GACA,IAEAkmR,EAAAjzQ,EAAAguE,EAAAt5E,EAAA47Q,EAFA3uQ,EAAA5U,EACAmmR,EAAA,0CAEAhrR,EAAAuiM,EAAAviM,OACAyZ,EAAAkxQ,GAAApoF,EAAA0oF,eAAAxxQ,GACA2uQ,EAAApoR,EAAA+1P,wBACA,MAAAvpP,EAAAw+Q,EAAA5yM,KAAA3+D,GACA3B,EAAAkzQ,EAAAnyB,UACA/yK,EAAAt5E,EAAA,GAAAtgB,OAEA6+R,EADA3C,EAAA57Q,EAAA,IACAsL,EAEA4yQ,GAAAF,WAAAxqR,EAAAyZ,EAAA3B,GAEA2B,IAAAsE,UAAA,EAAAjG,EAAAguE,GAAArsE,EAAAsE,UAAAgtQ,GACAC,EAAAnyB,UAAA/gP,EAAAguE,EAEA,OAAAqtL,GAAAtnQ,KAAA4N,IAEAyxQ,GAAAJ,GACAK,GAAA,CACAD,gBACAJ,iBAGAM,GAAA,SAAAnpN,EAAAvvE,EAAAk7I,GACA,IAAAvhJ,EAAA41E,EAAAga,SAAAvpF,EAAAk7I,GACA,QAAAvhJ,EAAAkC,QAAA,MACA,IAAA88R,EAAAppN,EAAAga,SAAAvpF,EAAA,WACA,OAAA24R,EAAAn9R,eAAA+zE,EAAAxyE,IAAA47R,EAAAppN,EAAAxyE,IAAAm+I,EAEA,OAAAvhJ,GAGAi/R,GAAA,SAAArpN,GACA,OAAAA,EAAAga,SAAA,oBAEAsvM,GAAA,SAAAtpN,GACA,OAAAA,EAAAga,SAAA,8BAEAuvM,GAAA,SAAAvpN,GACA,OAAAA,EAAAga,SAAA,yBAEAwvM,GAAA,SAAAxpN,GACA,OAAAmpN,GAAAnpN,EAAA,sBAEAypN,GAAA,SAAAzpN,GACA,OAAAmpN,GAAAnpN,EAAA,kBAEA0pN,GAAA,SAAA1pN,GACA,OAAAA,EAAAga,SAAA,+BAEA2vM,GAAA,SAAA3pN,GACA,OAAAA,EAAAga,SAAA,iBAEA4vM,GAAA,SAAA5pN,GACA,GAAAA,EAAAga,SAAA,uBACA,UAEA,IAAA89C,EAAA93D,EAAAga,SAAA,yBACA,WAAA89C,EACA,IACO,IAAAA,EACP,IAEAA,GAGA+xJ,GAAA,SAAA7pN,GACA,OAAAA,EAAAga,SAAA,+BAEA8vM,GAAA,SAAA9pN,GACA,OAAAA,EAAAga,SAAA,yDAEA+vM,GAAA,SAAA/pN,GACA,OAAAA,EAAAga,SAAA,2BAEAgwM,GAAA,SAAAhqN,GACA,OAAAA,EAAAga,SAAA,mBAEAiwM,GAAA,SAAAjqN,GACA,OAAAA,EAAAga,SAAA,oCAEAkwM,GAAA,SAAAlqN,GACA,OAAA10E,GAAA86P,QAAApmL,EAAAga,SAAA,mFAEAmwM,GAAA,SAAAnqN,GACA,OAAA10E,GAAA86P,QAAApmL,EAAAga,SAAA,0BAEAowM,GAAA,SAAApqN,GACA,OAAAA,EAAAga,SAAA,wBAAA7vF,GAAA,gBAEAkgS,GAAA,SAAArqN,GACA,OAAAA,EAAAga,SAAA,mCAEAswM,GAAA,SAAAtqN,GACA,OAAAA,EAAAga,SAAA,uCAEAuwM,GAAA,SAAAvqN,GACA,OAAAA,EAAAga,SAAA,0CAEAwwM,GAAA,SAAAxqN,GACA,OAAAA,EAAAga,SAAA,sBAEAywM,GAAA,SAAAzqN,GACA,OAAAA,EAAAga,SAAA,0BAEA0wM,GAAA,SAAA1qN,GACA,OAAAA,EAAAga,SAAA,kCAEA2wM,GAAA,SAAA3qN,GACA,OAAAA,EAAAga,SAAA,wCAEA4wM,GAAA,SAAA5qN,GACA,OAAAA,EAAAga,SAAA,2CAEA6wM,GAAA,SAAA7qN,GACA,OAAAA,EAAAga,SAAA,0CAEA8wM,GAAA,SAAA9qN,GACA,OAAAA,EAAAga,SAAA,kCAEA+wM,GAAA,SAAA/qN,GACA,OAAAA,EAAAga,SAAA,gCAEAgxM,GAAA,SAAAhrN,GACA,OAAAA,EAAAga,SAAA,2BAEAixM,GAAA,SAAAjrN,GACA,OAAAA,EAAAga,SAAA,6BAEAkxM,GAAA,SAAAlrN,GACA,OAAAA,EAAAga,SAAA,yBAEAmxM,GAAA,SAAAnrN,GACA,OAAAA,EAAAga,SAAA,gCAEAoxM,GAAA,SAAAprN,GACA,IAAAqrN,EAAArrN,EAAAa,SAAAuzK,YACA,OAAAxjP,EAAAy6R,GACAh9R,EAAAg9R,EAAAtvQ,MAAA,KAAAnS,IACO9Y,EAAAu6R,GACPA,GACO,IAAAA,GAAArrN,EAAAytB,OACP,GAEA,aAGA69L,GAAA,SAAAtrN,GACA,OAAAA,EAAAga,SAAA,iBAAAm0L,GAAA51O,QAAA,WAAArqC,IAEAq9R,GAAA,SAAAvrN,GACA,OAAAA,EAAAga,SAAA,uEAEAO,GAAA,CACA8uM,kBACAC,cACAC,sBACAC,aACAC,gBACAC,4BACAC,oBACAC,sBACAC,2BACAC,wBACAC,wBACAC,oBACAC,kCACAC,sBACAC,sBACAK,mBACAC,eACAL,0BACAC,6BACAC,uBACAC,yBACAG,qBACAC,0BACAC,8BACAC,0BACAC,2BACAC,qBACAC,mBACAC,kBACAC,yBACAC,kBACAC,iBACAE,qBACAC,8BAGAC,GAAA,OACAC,GAAA,SAAAzrN,EAAAp9D,GACA,IAAAyrL,EAAA9zG,GAAAqvM,mBAAA5pN,GACA0rN,EAAA,IAAA73M,OAAA,MAAAw6G,EAAA,4CAA4EA,EAAA,8BAC5E,OAAAzrL,EAAAqC,QAAAymR,EAAA,KAEAC,GAAA,SAAA3rN,EAAAl2E,EAAAioB,GACA,IAAAyF,EAOA,GANA1tB,EAAAmxF,OAAAnxF,EAAAmxF,OAAAnxF,EAAAmxF,OAAAuwM,GACA1hS,EAAAsK,KAAA,EACAtK,EAAA8hS,UAAA,EACA9hS,EAAA+hS,WACA7rN,EAAAya,KAAA,mBAAA3wF,GAEA,QAAAA,EAAAmxF,OACAzjE,EAAAlsB,GAAAse,KAAAs/Q,GAAAD,aAAAjpN,EAAAsgI,WAAAvuL,EAAA7O,iBACO,YAAApZ,EAAAmxF,OACPzjE,EAAA05P,GAAAtnQ,KAAAmI,EAAAy3H,WAAAz3H,EAAAiF,iBACO,aAAAltB,EAAAmxF,OACP,OAAAjb,EAAAsgI,WAAAC,UAAAxuL,EAAAjoB,GAEA0tB,EAAAi0Q,GAAAzrN,IAAAsgI,WAAAC,UAAAxuL,EAAAjoB,IAUA,MARA,SAAAA,EAAAmxF,QAAAsuK,GAAAtlP,GAAAZ,QAAA0O,IAGAjoB,EAAA0tB,UAFA1tB,EAAA0tB,QAAAlsB,GAAAse,KAAA4N,GAIA1tB,EAAA+hS,WACA7rN,EAAAya,KAAA,aAAA3wF,GAEAA,EAAA0tB,SAEAglD,GAAA,SAAAwD,EAAAl2E,GAIA,YAHA,IAAAA,IACAA,EAAA,IAEAyF,EAAAD,KAAA0wE,EAAAhuD,WAAAtkB,KAAAvD,EAAA,SAAAL,EAAAmxF,OAAA,IAAAuqM,GAAA,wBAAAzzQ,GACA,OAAA45Q,GAAA3rN,EAAAl2E,EAAAioB,MAIA+5Q,GAAAxgS,GAAAmgJ,QACAsgJ,GAAA,SAAAlrN,GACA,IACAmrN,EAAAC,EAAAC,EAAA14M,EAAA24M,EADAvpR,EAAA,GAQA,OANAi+D,KAAA,GACAmrN,EAAAnrN,EAAAmrN,OACAC,EAAAH,GAAAjrN,EAAAurN,eAAA,IACAF,EAAAJ,GAAAjrN,EAAAwrN,cAAA,IACA74M,EAAAq6K,GAAAR,cAAAxsL,EAAAyrN,iBAAA,MAAAzrN,EAAAusL,UACA++B,EAAA,SAAAtrN,EAAA0rN,eACA,CACA/iR,MAAA,SAAA/Y,EAAA4nB,EAAAtB,GACA,IAAAlrB,EAAAo0G,EAAAl+E,EAAA33B,EAQA,GAPA4hS,GAAAC,EAAAx7R,IAAAmS,EAAA3Y,OAAA,IACAG,EAAAwY,IAAA3Y,OAAA,GACAG,EAAAH,OAAA,UAAAG,GACAwY,EAAAnR,KAAA,OAGAmR,EAAAnR,KAAA,IAAAhB,GACA4nB,EACA,IAAAxsB,EAAA,EAAAo0G,EAAA5nF,EAAApuB,OAAyC4B,EAAAo0G,EAAOp0G,IAChDk2B,EAAA1J,EAAAxsB,GACA+W,EAAAnR,KAAA,IAAAswB,EAAAtxB,KAAA,KAAA+iF,EAAAzxD,EAAA33B,OAAA,QAIAwY,IAAA3Y,SADA8sB,GAAAo1Q,EACA,IAEA,MAEAp1Q,GAAAi1Q,GAAAE,EAAAz7R,IAAAmS,EAAA3Y,OAAA,IACAG,EAAAwY,IAAA3Y,OAAA,GACAG,EAAAH,OAAA,UAAAG,GACAwY,EAAAnR,KAAA,QAIAwoH,IAAA,SAAAxpH,GACA,IAAArG,EACAwY,EAAAnR,KAAA,KAAAhB,EAAA,KACAu7R,GAAAE,EAAAz7R,IAAAmS,EAAA3Y,OAAA,IACAG,EAAAwY,IAAA3Y,OAAA,GACAG,EAAAH,OAAA,UAAAG,GACAwY,EAAAnR,KAAA,QAIAiS,KAAA,SAAAA,EAAAogB,GACApgB,EAAAzZ,OAAA,IACA2Y,IAAA3Y,QAAA65B,EAAApgB,EAAA8vE,EAAA9vE,KAGAi6L,MAAA,SAAAj6L,GACAd,EAAAnR,KAAA,YAAAiS,EAAA,QAEAg6L,QAAA,SAAAh6L,GACAd,EAAAnR,KAAA,UAAAiS,EAAA,WAEA+iR,GAAA,SAAAh2R,EAAAiT,GACAA,EACAd,EAAAnR,KAAA,KAAAhB,EAAA,IAAA+iF,EAAA9vE,GAAA,MAEAd,EAAAnR,KAAA,KAAAhB,EAAA,MAEAu7R,GACAppR,EAAAnR,KAAA,OAGAi1R,QAAA,SAAAhjR,GACAd,EAAAnR,KAAA,YAAAiS,EAAA,IAAAsoR,EAAA,UAEA76H,MAAA,WACAvuJ,EAAA3Y,OAAA,GAEAuyE,WAAA,WACA,OAAA55D,EAAA1N,KAAA,IAAA+P,QAAA,aAKAunR,GAAA,SAAA3rN,EAAA9iE,QACA,IAAAA,IACAA,EAAAmxP,MAEA,IAAA7xD,EAAA0uF,GAAAlrN,GACAA,KAAA,GACAA,EAAA43B,WAAA,aAAA53B,MAAA43B,SACA,IAAA8nG,EAAA,SAAA/8L,GACA,IAAA8J,EAAAmrF,EACAA,EAAA53B,EAAA43B,SACAnrF,EAAA,CACAwnF,EAAA,SAAAtxF,GACA65L,EAAA35L,KAAAF,EAAApZ,MAAAoZ,EAAAsgB,MAEA2oQ,EAAA,SAAAjpR,GACA65L,EAAAK,QAAAl6L,EAAApZ,QAEAsiS,EAAA,SAAAlpR,GACA65L,EAAAopF,GAAAjjR,EAAA/S,KAAA+S,EAAApZ,QAEAuiS,GAAA,SAAAnpR,GACA65L,EAAAqpF,QAAAljR,EAAApZ,QAEA6rG,EAAA,SAAAzyF,GACA65L,EAAAM,MAAAn6L,EAAApZ,QAEAwiS,GAAA,SAAAppR,GACA,GAAAA,IAAAuS,WACA,GACAowO,EAAA3iP,SACeA,IAAApD,QAIfi9L,EAAAlsC,QACA,IAAAg1F,EAAA,SAAA3iP,GACA,IACA/S,EAAAw7L,EAAA5zK,EAAA2qL,EAAAC,EAAA4pF,EAAAhhS,EAAAo0G,EAAAinL,EADA35Q,EAAAD,EAAA9J,EAAA7S,MAEA,GAAA4c,EA4CAA,EAAA/J,OA5CA,CAIA,GAHA/S,EAAA+S,EAAA/S,KACAw7L,EAAAzoL,EAAA4+L,WACA/pL,EAAA7U,EAAAya,WACAw6E,GAAApgF,KAAApuB,OAAA,IACA4iS,EAAA,GACAA,EAAAx+R,IAAA,GACA64R,EAAAnpR,EAAA60P,eAAApvP,EAAA/S,MACAy2R,GAAA,CACA,IAAAr7R,EAAA,EAAAo0G,EAAAinL,EAAAv4B,gBAAA1kQ,OAAmE4B,EAAAo0G,EAAOp0G,IAC1Em3M,EAAAkkF,EAAAv4B,gBAAA9iQ,GACAm3M,KAAA3qL,EAAAhqB,MACA40M,EAAA5qL,EAAAhqB,IAAA20M,GACA6pF,EAAAx+R,IAAA20M,GAAAC,EACA4pF,EAAAp7R,KAAA,CACAhB,KAAAuyM,EACA54M,MAAA64M,KAIA,IAAAp3M,EAAA,EAAAo0G,EAAA5nF,EAAApuB,OAA6C4B,EAAAo0G,EAAOp0G,IACpDm3M,EAAA3qL,EAAAxsB,GAAA4E,KACAuyM,KAAA6pF,EAAAx+R,MACA40M,EAAA5qL,EAAAhqB,IAAA20M,GACA6pF,EAAAx+R,IAAA20M,GAAAC,EACA4pF,EAAAp7R,KAAA,CACAhB,KAAAuyM,EACA54M,MAAA64M,KAIA5qL,EAAAw0Q,EAIA,GADAxvF,EAAA7zL,MAAAhG,EAAA/S,KAAA4nB,EAAA4zK,IACAA,EAAA,CACA,GAAAzoL,IAAAuS,WACA,GACAowO,EAAA3iP,SACiBA,IAAApD,MAEjBi9L,EAAApjF,IAAAxpH,MAWA,OALA,IAAA+S,EAAA7S,MAAAkwE,EAAA86F,MAGAruJ,EAAA,IAAA9J,GAFA2iP,EAAA3iP,GAIA65L,EAAA7gI,cAEA,OAAc+jI,cAGd+gC,GAAA,SAAA99N,EAAAhZ,GACAA,EAAAgZ,GACAA,EAAAuS,YACAurN,GAAA99N,EAAAuS,WAAAvrB,GAEAgZ,EAAApD,MACAkhO,GAAA99N,EAAApD,KAAA5V,IAGAsiS,GAAA,SAAAC,EAAAC,EAAAxpR,GACA,IAAAypR,EAAA,GACAC,EAAA,GACA3iR,EAAA,GA6BA,QAAA9Z,KA5BA+S,EAAAuS,YACAurN,GAAA99N,EAAAuS,WAAA,SAAAvS,GACAlV,EAAAy+R,EAAA,SAAAr+R,GACAA,EAAA+B,OAAA+S,EAAA/S,OACAw8R,EAAAv+R,EAAA+B,MACAw8R,EAAAv+R,EAAA+B,MAAAmuC,MAAAntC,KAAA+R,GAEAypR,EAAAv+R,EAAA+B,MAAA,CACA/B,SACAkwC,MAAA,CAAAp7B,OAKAlV,EAAA0+R,EAAA,SAAAt+R,GACA,kBAAA8U,EAAAue,KAAArzB,EAAA+B,QACAy8R,EAAAx+R,EAAA+B,MACAy8R,EAAAx+R,EAAA+B,MAAAmuC,MAAAntC,KAAA+R,GAEA0pR,EAAAx+R,EAAA+B,MAAA,CACA/B,SACAkwC,MAAA,CAAAp7B,SAOAypR,EACAA,EAAAhhS,eAAAwE,IACA8Z,EAAA9Y,KAAAw7R,EAAAx8R,IAGA,QAAAA,KAAAy8R,EACAA,EAAAjhS,eAAAwE,IACA8Z,EAAA9Y,KAAAy7R,EAAAz8R,IAGA,OAAA8Z,GAEA4iR,GAAA,SAAAJ,EAAAC,EAAAxpR,GACA,IAAA+G,EAAAuiR,GAAAC,EAAAC,EAAAxpR,GACAlV,EAAAic,EAAA,SAAAxV,GACAzG,EAAAyG,EAAArG,OAAA+nG,UAAA,SAAAja,GACAA,EAAAznF,EAAA6pC,MAAA7pC,EAAArG,OAAA+B,KAAA,SAKAukC,GAAA,SAAAppB,GACA,IAAA9I,EAAAuS,GAAAzJ,GAAAhI,MACA,OAAAgI,EAAAhI,QAAAd,EAAAmyB,eAEA9C,GAAA,SAAA+C,GACA,IAAApyB,OAAA5U,IAAAgnC,IAAAtxB,MAAAra,EAAAwZ,SACA,OAAAxT,EAAAD,KAAAwT,EAAAmyB,eAAA5mC,IAAA4V,GAAAZ,UAEA0F,GAAA,SAAA6C,GACA,OAAAumB,GAAA9c,GAAAzJ,IAAAld,OAAA,SAAArC,GACA,OAAAuf,EAAAhI,MAAA/R,SAAAxF,EAAAuX,UAIA0V,GAAA,SAAA9kB,GACA,IAAA1D,EAAA0D,GACA,UAAAxJ,MAAA,0BAEA,OAAAwJ,EAAAvK,OACA,UAAAe,MAAA,mCAEA,IAAAyJ,EAAA,GACAC,EAAA,GAyDA,OAxDApG,EAAAkG,EAAA,SAAAG,EAAAC,GACA,IAAAC,EAAAnB,GAAAiB,GACA,OAAAE,EAAA5K,OACA,UAAAe,MAAA,kCAEA,IAAAqJ,EAAAQ,EAAA,GACAzK,EAAAuK,EAAAN,GACA,QAAAnG,IAAAwG,EAAAL,GACA,UAAArJ,MAAA,0BAAAqJ,GACS,YAAAA,EACT,UAAArJ,MAAA,yCACS,IAAA8F,EAAA1G,GACT,UAAAY,MAAA,mCAEAyJ,EAAAhD,KAAA4C,GACAK,EAAAL,GAAA,WACA,IAAAS,EAAA9K,UAAAC,OACA,GAAA6K,IAAA1K,EAAAH,OACA,UAAAe,MAAA,qCAAAqJ,EAAA,cAAAjK,EAAAH,OAAA,KAAAG,EAAA,UAAA0K,GAGA,IADA,IAAAhL,EAAA,IAAA8C,MAAAkI,GACAjJ,EAAA,EAAyBA,EAAA/B,EAAAG,OAAiB4B,IAC1C/B,EAAA+B,GAAA7B,UAAA6B,GAEA,IAAAkJ,EAAA,SAAAC,GACA,IAAAC,EAAAvB,GAAAsB,GACA,GAAAP,EAAAxK,SAAAgL,EAAAhL,OACA,UAAAe,MAAA,iDAAAyJ,EAAAS,KAAA,kBAAAD,EAAAC,KAAA,MAEA,IAAAC,EAAA1G,EAAAgG,EAAA,SAAAW,GACA,OAAAvD,EAAAoD,EAAAG,KAEA,IAAAD,EACA,UAAAnK,MAAA,gEAAAiK,EAAAC,KAAA,qBAAAT,EAAAS,KAAA,OAEA,OAAAF,EAAAX,GAAAnK,MAAA,KAAAJ,IAEA,OACA4D,KAAA,WACA,GAAA1D,UAAAC,SAAAuK,EAAAvK,OACA,UAAAe,MAAA,+CAAAwJ,EAAAvK,OAAA,SAAAD,UAAAC,QAEA,IAAAoL,EAAArL,UAAA4K,GACA,OAAAS,EAAAnL,MAAA,KAAAJ,IAEAiL,QACAO,IAAA,SAAAC,GACAhM,EAAAiM,QAAAF,IAAAC,EAAA,CACAd,eACAjE,YAAA6D,EACAoB,OAAA3L,SAMA4K,GAEAgB,GAAA,CAAenB,SAAA+kB,IAEfumC,GAAAvrC,GAAA,sCACAylB,GAAA,CAAoB7H,OAAA2tB,IAEpBnrD,GAAAgB,GAAAnB,SAAA,CACA,CAAO0hB,OAAA,aACP,CACAgkB,GAAA,CACA,UACA,WAGA,CAAO5jB,MAAA,eAEP8Z,GAAA,SAAA5L,EAAA4V,EAAAC,EAAAC,GACA,OAAA9V,EAAA72B,KAAAysC,EAAAC,EAAAC,IAEAC,GAAA,SAAAC,GACA,OAAAA,EAAA7sC,KAAArD,QAEA+3O,GAAA1tO,GAAAuhB,OACAgkB,GAAAvlC,GAAAulC,GACA0G,GAAAjsC,GAAA2hB,MACAqkB,GAAA,CACAzkB,OAAAmsN,GACAnoM,MACA5jB,MAAAsqB,GACAxQ,QACAmK,aAGA1+B,GAAAlG,GAAAnB,SAAA,CACA,CAAOqmC,SAAA,SACP,CACA/D,SAAA,CACA,YACA,eAGA,CACAgE,MAAA,CACA,QACA,UACA,SACA,cAIAC,GAAA,SAAAC,GACA,OAAAn/B,GAAAi/B,MAAAE,EAAAvxB,QAAAuxB,EAAAC,UAAAD,EAAAE,SAAAF,EAAAG,YAEAC,GAAA,SAAAC,GACA,OAAAA,EAAArmC,MAAA,CACA6lC,SAAA,SAAAS,GACA,OAAAp3B,GAAAZ,QAAAg4B,EAAAC,iBAEAzE,SAAA,SAAA0E,EAAAC,GACA,OAAAd,GAAAJ,SAAAiB,IAEAV,MAAA,SAAArxB,EAAAwxB,EAAAC,EAAAC,GACA,OAAA1xB,MAIAoxB,GAAAh/B,GAAAg/B,SACA/D,GAAAj7B,GAAAi7B,SACAgE,GAAAj/B,GAAAi/B,MACAa,GAAA,SAAAN,GACA,IAAA5xB,EAAA2xB,GAAAC,GACA,OAAA7lB,GAAA/L,IAEA1X,GAAAioC,GAAA7H,OACA0J,GAAA,CACAhB,YACA/D,YACAgE,SACAC,kBACAY,UACA5pC,UAGAs7R,GAAA1iR,KAAA1C,QACAi0G,GAAA,SAAA/wF,EAAAtf,GACA,IAAA0b,EAAA86C,GAAAx2D,GAAAkc,GAAAlc,GAAA3hB,OAAA0rB,GAAA/J,GAAA3hB,OAAA,EACA,OAAAihC,EAAA5D,EACAA,EACO4D,EAAA,EACP,EAEAA,GAEAmiQ,GAAA,SAAAhyP,GACA,OAAAO,GAAA9pC,MAAAupC,EAAA7xB,QAAAyyG,GAAA5gF,EAAAL,UAAAK,EAAA7xB,SAAA6xB,EAAAJ,SAAAghF,GAAA5gF,EAAAH,UAAAG,EAAAJ,YAEAqyP,GAAA,SAAA/qP,EAAAshC,GACA,OAAAwoH,GAAAg1D,iBAAAx9K,EAAAjgE,SAAAkJ,GAAAy1B,EAAAshC,IAAAz2E,GAAAm1C,EAAAshC,KAEA0pN,GAAA,SAAAhrP,GACA,gBAAAlH,GACA,OAAAiyP,GAAA/qP,EAAAlH,EAAA7xB,UAAA8jR,GAAA/qP,EAAAlH,EAAAJ,YAGAuyP,GAAA,SAAAxtN,GACA,WAAAA,EAAAytB,QAAA2/L,GAAA7mR,QAEAknR,GAAA,SAAA9gS,GACA,OAAAivC,GAAA9pC,MAAAmS,GAAAZ,QAAA1W,EAAA2uC,gBAAA3uC,EAAAkwC,YAAA54B,GAAAZ,QAAA1W,EAAAmwC,cAAAnwC,EAAAowC,YAEA8D,GAAA,SAAAlY,GACA,IAAAyS,EAAAzS,EAAA6Y,eACAnG,EAAAD,GAAA,IAAAA,EAAA0F,WAAAvxC,EAAAD,KAAA8rC,EAAA4F,WAAA,IAAAzxC,EAAArC,OACA,OAAAmuC,EAAAhtC,IAAAo/R,KAEAC,GAAA,SAAAnrP,GACA,IAAA5Z,EAAApT,GAAAgtB,GACA,OAAA1B,GAAAlY,EAAA/kB,OAAAlV,OAAA6+R,GAAAhrP,KAEAk2D,GAAA,SAAAl2D,EAAAwxJ,GACA,OAAAxkM,EAAAD,KAAAykM,GAAArlM,OAAA6+R,GAAAhrP,IAAAl0C,IAAAg/R,KAEAM,GAAA,SAAA55F,GACA,IAAA14J,EAAA9xC,EAAAwZ,SAAAs5B,cACA,IAGA,OAFAhB,EAAAQ,SAAAk4J,EAAAvqL,QAAA5F,MAAAmwL,EAAA/4J,WACAK,EAAAa,OAAA63J,EAAA94J,SAAAr3B,MAAAmwL,EAAA74J,WACA3rC,EAAAP,KAAAqsC,GACO,MAAA3rC,GACP,OAAAH,EAAArC,SAGA6gD,GAAA,SAAAiyB,GACA,IAAA4tN,EAAAJ,GAAAxtN,GAAA0tN,GAAAzpR,GAAAZ,QAAA28D,EAAAhuD,YAAAziB,EAAArC,OACA8yE,EAAA+zH,SAAA65F,EAAAhgS,SAAAggS,EAAA5tN,EAAA+zH,UAEA85F,GAAA,SAAA7tN,EAAA3kC,GACA,IAAAkH,EAAAt+B,GAAAZ,QAAA28D,EAAAhuD,WACAlgB,EAAA07R,GAAAxtN,GAAAzwE,EAAAD,KAAA+rC,GAAA9rC,EAAArC,OACA0gS,EAAA97R,EAAAzD,IAAAo/R,IAAA/+R,OAAA6+R,GAAAhrP,IACAy9B,EAAA+zH,SAAA65F,EAAAhgS,SAAAggS,EAAA5tN,EAAA+zH,UAEAztH,GAAA,SAAAtG,GACA,IAAA+zH,EAAA/zH,EAAA+zH,SAAA/zH,EAAA+zH,SAAAxkM,EAAArC,OACA,OAAA6mM,EAAAxlM,KAAA,SAAAjE,GACA,OAAAmuG,GAAAx0F,GAAAZ,QAAA28D,EAAAhuD,WAAA1nB,KACOiE,KAAAo/R,KAEPz/O,GAAA,SAAA8xB,GACAsG,GAAAtG,GAAA1xE,KAAA,SAAA+sC,GACA2kC,EAAA5kC,UAAA2nI,OAAA1nI,MAGAyyP,GAAA,CACA//O,SACA8/O,eACAhtP,aACAqN,WACAo4B,UACA0tH,YAAA05F,GACAj1L,aAGAs1L,GAAA,SAAAlqN,GACA,IAAA+9D,EAAA/9D,EAAA+9D,UAAA9yI,WACA,WAAA8yI,EAAAt1I,QAAA,cAAAs1I,EAAAt1I,QAAA,SAEA0hS,GAAA,CAAwBD,sBAExBE,GAAA,SAAA5hS,GACA,qBAAAA,EAAAsE,MAAAtE,EAAA6hS,iBAEAC,GAAA,SAAAnuN,EAAAouN,GACA,IAAAC,EAAA,WACAD,EAAAnsN,YAEA6pM,GAAAv4L,IAAAhlF,KAAAhF,EAAAwZ,SAAA,UAAAsrR,GACAruN,EAAA/lC,GAAA,oBACA6xO,GAAAv4L,IAAA2R,OAAA37F,EAAAwZ,SAAA,UAAAsrR,MAGAC,GAAA,SAAAtuN,GACAA,EAAA/lC,GAAA,sBACA6zP,GAAA//O,MAAAiyB,MAGAuuN,GAAA,SAAAvuN,EAAAouN,GACApuN,EAAA/lC,GAAA,4BAAA5tC,GACA+hS,EAAAnsN,cAGAusN,GAAA,SAAAxuN,EAAAouN,GACA,IAAApmR,EAAA0C,KAAA1C,QACAA,EAAAzB,OACA+nR,GAAAtuN,GAEAuuN,GAAAvuN,EAAAouN,GAEApuN,EAAA/lC,GAAA,4BAAA5tC,GACA4hS,GAAA5hS,IACAyhS,GAAA//O,MAAAiyB,MAIA8H,GAAA,SAAA9H,GACA,IAAAouN,EAAA5uP,GAAA,WACAsuP,GAAA//O,MAAAiyB,IACO,GACPA,EAAA/lC,GAAA,kBACA+lC,EAAAytB,QACA0gM,GAAAnuN,EAAAouN,GAEAI,GAAAxuN,EAAAouN,KAEApuN,EAAA/lC,GAAA,oBACAm0P,EAAArsN,YAGA0sN,GAAA,CAA4B3mN,aAG5BusH,GAAAy3E,GAAAv4L,IACAm7M,GAAA,SAAA7qN,GACA,OAAAmqN,GAAAD,kBAAAlqN,IAEA8qN,GAAA,SAAA9qN,GACA,IAAA1hD,EAAA0hD,EAAA1hD,UACA,YAAAj0B,IAAAi0B,IACAA,EAAAtwB,SAAA,kBAAAswB,EAAAtwB,SAAA,0BAAAswB,EAAAtwB,SAAA,sBAKA+8R,GAAA,SAAA5uN,EAAA6D,GACA,IAAAgrN,EAAA7uN,IAAAa,SAAAiuN,mBAAA,GACAt5Q,EAAA6+K,GAAA7H,UAAA3oH,EAAA,SAAAA,GACA,OAAA6qN,GAAA7qN,MAAAgrN,GAAA7uN,EAAAp8D,IAAAjW,GAAAk2E,EAAAgrN,KAEA,cAAAr5Q,GAEAu5Q,GAAA,WACA,IACA,OAAAxlS,EAAAwZ,SAAAkyB,cACO,MAAAs/D,GACP,OAAAhrG,EAAAwZ,SAAAgP,OAGA4iM,GAAA,SAAAq6E,EAAA3iS,GACA,IAAA2zE,EAAA3zE,EAAA2zE,OACAyuN,GAAA3mN,SAAA9H,GACAA,EAAA/lC,GAAA,qBACA,IAAA/qC,EAAA/C,KACA8iS,EAAAD,EAAAC,cACAA,IAAA//R,IACA+/R,GACAA,EAAAx0M,KAAA,QAAwCw0M,cAAA//R,IAExC8/R,EAAA56M,UAAAllF,GACA8/R,EAAAC,cAAA//R,EACAA,EAAAurF,KAAA,SAA8By0M,cAAAD,IAC9B//R,EAAA+f,OAAA,MAGA+wD,EAAA/lC,GAAA,sBACA,IAAA/qC,EAAA/C,KACAi4P,GAAAl6F,iBAAAh7J,EAAA,WACA,IAAA+/R,EAAAD,EAAAC,cACAL,GAAA1/R,EAAA6/R,OAAAE,IAAA//R,IACAA,EAAAurF,KAAA,QAA+Bw0M,cAAA,OAC/BD,EAAAC,cAAA,UAIAzG,KACAA,GAAA,SAAAn8R,GACA,IACAgJ,EADA85R,EAAAH,EAAAG,aAEA95R,EAAAhJ,EAAAgJ,OACA85R,GAAA95R,EAAAyc,gBAAAvoB,EAAAwZ,WACA1N,IAAA9L,EAAAwZ,SAAAgP,MAAA68Q,GAAAO,EAAA95R,IAAA25R,EAAAC,gBAAAE,IACAA,EAAA10M,KAAA,QAAyCw0M,cAAA,OACzCD,EAAAC,cAAA,QAIA56F,GAAA9lM,KAAAhF,EAAAwZ,SAAA,UAAAylR,MAGA4G,GAAA,SAAAJ,EAAA3iS,GACA2iS,EAAAC,gBAAA5iS,EAAA2zE,SACAgvN,EAAAC,cAAA,MAEAD,EAAAG,eACA96F,GAAAnvG,OAAA37F,EAAAwZ,SAAA,UAAAylR,IACAA,GAAA,OAGAp6L,GAAA,SAAA4gM,GACAA,EAAA/0P,GAAA,YAAA1vC,EAAAoqN,GAAAq6E,IACAA,EAAA/0P,GAAA,eAAA1vC,EAAA6kS,GAAAJ,KAEAK,GAAA,CACAv3N,MAAAs2B,GACA2/L,kBAAAW,GACAC,8BACAC,gBAGAU,GAAA,SAAAtvN,EAAAx8D,GACA,OAAAw8D,EAAAp8D,IAAA4oL,UAAAhpL,EAAA,SAAAA,GACA,eAAAw8D,EAAAp8D,IAAA2+D,mBAAA/+D,MAGA+rR,GAAA,SAAAl0P,GACA,OAAAA,EAAA8B,UAAA5tC,EAAAD,KAAAm0E,GAAApoC,EAAAC,eAAAD,EAAAwB,cAAAxuC,IAAA4V,GAAAZ,SAAA9T,EAAArC,QAEAsiS,GAAA,SAAAjtP,EAAAlH,GACA,OAAAk0P,GAAAl0P,GAAA9sC,KAAA,SAAAiV,GACA,OAAA6lP,GAAA7lP,GACAjU,EAAAP,KAAAwU,IACS,IAAAsJ,GAAAy1B,EAAA/+B,GACTjU,EAAAP,KAAAuzC,GAEAhzC,EAAArC,UAIAuiS,GAAA,SAAAzvN,EAAA3kC,GACAm0P,GAAAvrR,GAAAZ,QAAA28D,EAAAhuD,WAAAqpB,GAAA9sC,KAAA,SAAAs1E,GACA,OAAA07M,GAAAC,gBAAA37M,EAAAjgE,SACOlW,KAAA,WACPsyE,EAAA5kC,UAAA0oC,aAEO,SAAA4rN,GACP,OAAA1vN,EAAA5kC,UAAA2nI,OAAA2sH,EAAAvZ,cAGAwZ,GAAA,SAAA59Q,GACA,GAAAA,EAAAqiE,UACA,IACAriE,EAAAqiE,YACS,MAAAmgB,GACTxiF,EAAA9C,aAGA8C,EAAA9C,SAGA2gR,GAAA,SAAA/rN,GACA,OAAA7uC,GAAA6uC,IAAA96D,GAAA86D,GAAAj2E,UAEAiiS,GAAA,SAAA7vN,GACA,OAAAA,EAAA8vN,eAAA96P,GAAA/wB,GAAAZ,QAAA28D,EAAA8vN,iBAEAC,GAAA,SAAA/vN,GACA,IAAAgwN,EAAAhwN,EAAAhuD,UACA,OAAAg+Q,GAAAJ,GAAA3rR,GAAAZ,QAAA2sR,KAEAC,GAAA,SAAAjwN,GACA,OAAA7tC,KAAAzjC,OAAA,SAAAqd,GACA,OAAAsjR,GAAAV,2BAAA5iR,EAAAnI,QAAAyrR,GAAAT,YAAA5uN,EAAAj0D,EAAAnI,SACOhW,UAEPsiS,GAAA,SAAAlwN,GACA,OAAAA,EAAAytB,OAAAsiM,GAAA/vN,GAAA6vN,GAAA7vN,IAEAmwN,GAAA,SAAAnwN,GACA,OAAAkwN,GAAAlwN,IAAAiwN,GAAAjwN,IAEAowN,GAAA,SAAApwN,GACA,IAAA5kC,EAAA4kC,EAAA5kC,UACArpB,EAAAiuD,EAAAhuD,UACAqpB,EAAAD,EAAAkrC,SACAtG,EAAAqwN,OAAAC,8BACApiS,IAAA8xE,EAAA+zH,WAAA,IAAAm8F,GAAAlwN,IACA8tN,GAAAxnN,OAAAtG,GAAA1xE,KAAA,SAAAiiS,GACAvwN,EAAA5kC,UAAA2nI,OAAAwtH,GACAl1P,EAAAk1P,IAGA,IAAAC,EAAAlB,GAAAtvN,EAAA5kC,EAAAqoC,WACA,GAAAzD,EAAAo4H,EAAAvmM,SAAAkgB,EAAAy+Q,GAIA,OAHAb,GAAAa,GACAf,GAAAzvN,EAAA3kC,QACAo1P,GAAAzwN,GAGAA,EAAAytB,SACAi3J,GAAA9+O,OACA+pR,GAAA59Q,GAEAiuD,EAAAtkC,SAAAzsB,UAEAy1O,GAAAC,OAAA3kL,EAAAytB,UACAkiM,GAAA59Q,GACA09Q,GAAAzvN,EAAA3kC,IAEAo1P,GAAAzwN,IAEAywN,GAAA,SAAAzwN,GACA,OAAAA,EAAAgvN,cAAA56M,UAAApU,IAEA/wD,GAAA,SAAA+wD,EAAA0wN,GACA1wN,EAAA81D,UAGA46J,EAAAD,GAAAzwN,GAAAowN,GAAApwN,KAEA2wN,GAAA,CACA1hR,SACA+lB,SAAAk7P,GACAC,uBAGAS,GAAA,OACAC,GAAA,SAAAr5Q,GACA,OAAAA,aAAAguQ,IAEAsL,GAAA,SAAA9wN,GACA2wN,GAAA37P,SAAAgrC,IACAu/M,GAAAC,gBAAAx/M,EAAAhuD,WAAA1jB,KAAA,SAAAupC,GACA,IAAAr0B,EAAAq0B,EAAA4rC,UACAisN,EAAArjG,GAAAyxC,QAAAt6N,GAAA+7Q,GAAAC,gBAAAh8Q,GAAA3V,MAAAgqC,KACAmoC,EAAA5kC,UAAA2nI,OAAA2sH,EAAAvZ,cAIA4a,GAAA,SAAA/wN,EAAAp9D,GACAo9D,EAAAp8D,IAAAgmQ,QAAA5pM,EAAAhuD,UAAApP,GACAkuR,GAAA9wN,IAEAgxN,GAAA,SAAAhxN,EAAAjuD,EAAAyF,EAAA1tB,GACA,IAAAmnS,EAAAC,EA8BA,OA7BA,IAAA15Q,EAAAvtB,QAAA,QAAAya,KAAA8S,IACA05Q,EAAA,0BACA,UAAAn/Q,EAAAP,SACAgG,EAAA,WAAA05Q,EAAA,aACS,YAAAxsR,KAAAqN,EAAAP,YACTgG,EAAA,OAAA05Q,EAAA,SAEAD,EAAA12M,GAAAqvM,mBAAA5pN,GACAixN,GAAAjxN,EAAAjiE,OAAAm2P,aAAAniP,EAAAP,SAAAlM,cAAA2rR,EAAA3rR,gBACAkS,EAAA05Q,EACA15Q,EAAAwoD,EAAAp8D,IAAAmmQ,WAAAknB,EAAAjxN,EAAAa,SAAA+tH,wBAAAp3K,IACSA,IACTA,EAAA,2BAEAu5Q,GAAA/wN,EAAAxoD,GACAwoD,EAAAya,KAAA,aAAA3wF,KAEA,QAAAA,EAAAmxF,SACAzjE,EAAAg1Q,GAAA,CAAgC/zL,SAAAz4B,EAAAy4B,UAA4Bz4B,EAAAjiE,QAAAwiM,UAAAvgI,EAAAwxH,OAAAttH,MAAA1sD,EAAA,CAC5D25Q,eAAA,EACAhkO,QAAA,MAGArjE,EAAA0tB,QAAA+xO,GAAAtlP,GAAAZ,QAAA0O,IAAAyF,EAAAlsB,GAAAse,KAAA4N,GACAu5Q,GAAA/wN,EAAAl2E,EAAA0tB,SACA1tB,EAAA+hS,WACA7rN,EAAAya,KAAA,aAAA3wF,IAGAA,EAAA0tB,SAEA45Q,GAAA,SAAApxN,EAAAjuD,EAAAyF,EAAA1tB,GACAqjS,GAAAntN,EAAAwxH,OAAA6/F,iBAAArxN,EAAAwxH,OAAA8/F,sBAAA95Q,GACA,IAAA5U,EAAA4pR,GAAA,CAA6B/zL,SAAAz4B,EAAAy4B,UAA4Bz4B,EAAAjiE,QAAAwiM,UAAA/oL,GAMzD,OALA1tB,EAAA0tB,QAAA+xO,GAAAtlP,GAAAZ,QAAA0O,IAAAnP,EAAAtX,GAAAse,KAAAhH,GACAmuR,GAAA/wN,EAAAl2E,EAAA0tB,SACA1tB,EAAA+hS,WACA7rN,EAAAya,KAAA,aAAA3wF,GAEA0tB,GAEA41B,GAAA,SAAA4yB,EAAAxoD,EAAA1tB,GAWA,YAVA,IAAAA,IACAA,EAAA,IAEAA,EAAAmxF,OAAAnxF,EAAAmxF,OAAAnxF,EAAAmxF,OAAA21M,GACA9mS,EAAA2Y,KAAA,EACA3Y,EAAA0tB,QAAAq5Q,GAAAr5Q,GAAA,GAAAA,EACAq5Q,GAAAr5Q,IAAA1tB,EAAA+hS,YACA7rN,EAAAya,KAAA,mBAAA3wF,GACA0tB,EAAA1tB,EAAA0tB,SAEAjoB,EAAAD,KAAA0wE,EAAAhuD,WAAAtkB,KAAAvD,EAAAqtB,GAAA,SAAAzF,GACA,OAAA8+Q,GAAAr5Q,GAAA45Q,GAAApxN,EAAAjuD,EAAAyF,EAAA1tB,GAAAknS,GAAAhxN,EAAAjuD,EAAAyF,EAAA1tB,MAIAynS,GAAA,SAAAvxN,EAAAl2E,GACA,OAAAk2E,EAAAya,KAAA,aAAA3wF,IAEA0nS,GAAA,SAAAxxN,EAAAl2E,GACA,OAAAk2E,EAAAya,KAAA,cAAA3wF,IAEA2nS,GAAA,SAAAzxN,GACA,OAAAA,EAAAya,KAAA,WAEAi3M,GAAA,SAAA1xN,GACA,OAAAA,EAAAya,KAAA,WAEAk3M,GAAA,SAAA3xN,EAAAtvB,GACA,OAAAsvB,EAAAya,KAAA,cAAwC/pC,UAExC89K,GAAA,SAAAxuJ,EAAA3qE,EAAAw0B,EAAAjC,GACAo4C,EAAAya,KAAA,qBACAplF,SACAw0B,QACAjC,YAGA6mM,GAAA,SAAAzuJ,EAAA3qE,EAAAw0B,EAAAjC,GACAo4C,EAAAya,KAAA,iBACAplF,SACAw0B,QACAjC,YAGAmzD,GAAA,CACAw2M,kBACAC,mBACAC,cACAC,cACAC,kBACAnjE,yBACAC,sBAGAp3B,GAAAy0E,GAAAv4L,IACAq+M,GAAA,SAAA5xN,GACAq3H,GAAApC,SAAAj1H,EAAAxyE,GAAA,UAAAwyE,EAAA6xN,aAEAC,GAAA,SAAAxnS,GACA,OAAAiF,EAAAD,KAAAhF,GAAAgE,KAAA,SAAAhE,GACA,OAAAA,EAAA0gG,aAGA+mM,GAAA,SAAA/xN,GACAA,EAAAgyN,qBAAAhyN,EAAAiyN,YAAAjyN,EAAAjoD,UAAAioD,EAAAyyF,gBAAA,KACAzyF,EAAAmlE,YAAAnlE,EAAA+xH,gBAAA/xH,EAAAy3C,cAAA,KACAz3C,EAAA8vN,cAAA9vN,EAAA09F,UAAA,KACA19F,EAAA5kC,YACA4kC,EAAA5kC,UAAA4kC,EAAA5kC,UAAAzS,IAAAq3C,EAAA5kC,UAAAx3B,IAAAo8D,EAAA5kC,UAAAx3B,IAAAd,IAAA,OAGAovR,GAAA,SAAAlyN,GACA,IAAAgtC,EAAAhtC,EAAAiyN,YACAjlL,IACAA,EAAAmlL,gBACAnlL,EAAAhvB,OAAAgvB,EAAAmlL,cACAnlL,EAAAmlL,cAAA,MAEA96F,GAAAnyG,OAAA8nB,EAAA,eAAAhtC,EAAAoyN,qBAGApuQ,GAAA,SAAAg8C,GACA,IAAAA,EAAA81D,QAAA,CACA,IAAAu8J,EAAAryN,EAAAqyN,oBAAA3xC,EAAA1gL,EAAA0gL,aACA3uO,EAAAiuD,EAAAhuD,UACApG,EAAAo0D,EAAA+rB,aACAh6E,GACAiuD,EAAAsyN,KAAA,CAAuBC,aAAA,IAEvBvyN,EAAA81D,SAAA,EACA91D,EAAAwyN,wBACAxyN,EAAAyyN,gBAAA7mR,GACAyrL,GAAAngL,OAAAtL,EAAA8J,aAEAqlE,GAAA02M,WAAAzxN,GACAA,EAAAgvN,cAAA93Q,OAAA8oD,IACAA,EAAAytB,QAAA17E,GACA6/Q,GAAA5xN,GAEA+a,GAAA22M,WAAA1xN,GACAq3H,GAAAngL,OAAA8oD,EAAAk4B,gBACA45L,GAAAO,GACAP,GAAApxC,GACA1gL,EAAAgrB,YAGAA,GAAA,SAAAhrB,EAAA0yN,GACA,IAAAt3P,EAAA4kC,EAAA5kC,UAAAx3B,EAAAo8D,EAAAp8D,IACAo8D,EAAA2yN,YAGAD,GAAA1yN,EAAA81D,SAIA48J,IACA1yN,EAAAgvN,cAAApnP,IAAA,eAAAo4B,EAAA4yN,eACA5yN,EAAA6yN,OAAA7yN,EAAA6yN,MAAA7nM,SACAhrB,EAAA6yN,MAAA7nM,UAEA8mM,GAAA12P,GACA02P,GAAAluR,IAEAsuR,GAAAlyN,GACA+xN,GAAA/xN,GACAA,EAAA2yN,WAAA,GAbA3yN,EAAA9oD,WAgBAq0H,GAAA9/I,OAAAO,UAAAC,eACA6sB,GAAA,SAAAjjB,EAAAC,GACA,OAAAA,GAEAg9R,GAAA,SAAAj9R,EAAAC,GACA,IAAAE,EAAAnF,EAAAgF,IAAAhF,EAAAiF,GACA,OAAAE,EAAAC,GAAAJ,EAAAC,MAEAI,GAAA,SAAAC,GACA,kBAEA,IADA,IAAAC,EAAA,IAAAxJ,MAAA5C,UAAAC,QACA4B,EAAA,EAAuBA,EAAAuK,EAAAnM,OAAoB4B,IAC3CuK,EAAAvK,GAAA7B,UAAA6B,GAEA,OAAAuK,EAAAnM,OACA,UAAAe,MAAA,4BAGA,IADA,IAAAqL,EAAA,GACAtJ,EAAA,EAAuBA,EAAAqJ,EAAAnM,OAAoB8C,IAAA,CAC3C,IAAAuJ,EAAAF,EAAArJ,GACA,QAAAsH,KAAAiC,EACAi1I,GAAAr/I,KAAAoK,EAAAjC,KACAgC,EAAAhC,GAAA8B,EAAAE,EAAAhC,GAAAiC,EAAAjC,KAIA,OAAAgC,IAGAJ,GAAAC,GAAA48R,IACAv8R,GAAAL,GAAA4iB,IAEAi6Q,GAAAz+Q,GAAA,uBACA0+Q,GAAAtoR,KAAAR,WACA5B,GAAA0qR,GAAA1qR,UACAE,GAAAwqR,GAAAxqR,UACAD,GAAAyqR,GAAAzqR,WACA0qR,GAAA,CACA,QACA,WACA,YAEAC,GAAA,CACAC,YAAA,EACAC,iBAAA,EACAt7K,QAAA,GAEAu7K,GAAA,SAAA1jH,GACA,IAAA2jH,EAAAxiS,EAAA6+K,KAAAz6K,KAAA,KAAAy6K,EACA4jH,EAAAllS,EAAAuC,EAAA0iS,KAAAv3Q,MAAA,QAAAnS,IACA,OAAAlb,EAAA6kS,EAAA,SAAA/tQ,GACA,OAAAA,EAAAv7B,OAAA,KAGAupS,GAAA,SAAA7jH,GACA,OAAAjhL,EAAAihL,EAAAplL,EAAAsH,EAAAohS,MAEAQ,GAAA,SAAA//R,EAAAmtE,GACA,IAAAzoE,EAAAmqP,GAAA1hL,EAAA,SAAAz2E,EAAAiK,GACA,OAAAxC,EAAA6B,EAAAW,KAEA,OAAA0+R,GAAA36R,EAAAzM,EAAAyM,EAAA1O,IAEAgqS,GAAA,SAAAX,EAAAtiS,EAAAimD,QACA,IAAAA,IACAA,EAAA,IAEA,IAAA4tH,EAAAyuH,EAAAzuH,WACAqvH,EAAArvH,EAAAr4K,eAAAwE,GAAA6zK,EAAA7zK,GAAA,GACA,OAAAnF,GAAAuoI,OAAA,GAA4Bn9E,EAAAi9O,IAE5BC,GAAA,SAAAb,EAAAtiS,GACA,OAAAsiS,EAAAzuH,WAAAr4K,eAAAwE,IAEAojS,GAAA,SAAAd,EAAAtiS,EAAAoiS,GACA,IAAAx2G,EAAA02G,EAAAzuH,WACA,OAAAsvH,GAAAb,EAAAtiS,IAAA4rL,EAAA5rL,GAAAoiS,WAEAiB,GAAA,SAAAf,EAAAtiS,GACA,OAAAmjS,GAAAb,EAAAtiS,GAAAsiS,EAAAzuH,WAAA7zK,GAAA,IAEAsjS,GAAA,SAAAvmS,EAAAwmS,EAAA1rR,EAAA03D,GACA,IAAAi0N,EAAA,CACAzmS,KACAqlS,MAAA,SACAqB,eAAA,WACAvkH,QAAA,GACAwkH,kBAAAH,EACAI,yBAAA,EACAC,cAAA,EACAC,oBAAA,EACAC,cAAA,EACAC,eAAA,EACAC,oBAAA,EACArB,iBAAA,EACA1M,QAAA,kBACAgO,QAAA,EACAC,wBAAA,oDACAlmG,kBAAA,IACAmmG,cAAA,EACAC,eAAA,EACAC,wBAAA,EACA9I,QAAA,EACAI,cAAA,oMACAC,aAAA,oMACAC,gBAAA,QACA32B,cAAA31L,EAAAo/H,WACAy2D,oBAAA71L,GAEA,OAAAx0E,IAAA,GAAiCyoS,GAAA3rR,EAAA4qR,GAAA,KAEjC6B,GAAA,SAAAvsR,GACA,IAAAwsR,EAAA,CACAl9K,QAAA,EACAo8K,eAAA,YACAe,gBAAA,GAEAC,EAAA,CAAkC98H,SAAA,GAClC,OAAA5sK,MAAA,GAA0C0nS,IAAA8B,GAAAxsR,EAAA0sR,EAAA,KAE1CC,GAAA,SAAAC,EAAAv0N,GACA,IAAAw0N,EAAAx0N,EAAAy0N,iBAAAz0N,EAAAy0N,iBAAA,GACA,OAAAF,KAAAE,iBACAhqS,GAAAuoI,OAAA,GAA8BuhK,EAAAE,iBAAAD,GAE9BA,GAGAE,GAAA,SAAAC,EAAA7lH,GACA,SAAA/kL,OAAAyoS,GAAAmC,IAAA5qS,OAAAyoS,GAAA1jH,KAEA8lH,GAAA,SAAAC,EAAA3C,EAAA4C,EAAA90N,GACA,IAAA20N,EAAAnC,GAAAsC,EAAAC,gBACAC,EAAAxC,GAAAxyN,EAAA8uG,SACAmmH,EAAAhC,GAAAf,EAAA,UACAgD,EAAAD,EAAAnmH,QAAA0jH,GAAAyC,EAAAnmH,SAAAkmH,EACAG,EAAAN,GAAA7B,GAAAd,EAAA,mBAAAS,GAAAuC,GAAAL,GAAA9B,GAAAb,EAAA,UAAAgD,EAAAF,EACAI,EAAAV,GAAAC,EAAAQ,GACA,OAAA1qS,GAAAuoI,OAAAhzD,EAAA,CAAqC8uG,QAAAsmH,EAAA/gS,KAAA,QAErCghS,GAAA,SAAAR,EAAA3C,GACA,OAAA2C,GAAA9B,GAAAb,EAAA,WAEAoD,GAAA,SAAAT,EAAAltR,EAAA4tR,EAAAT,EAAA90N,GACA,IAAAw1N,EAAAX,EAAA,CAAoDY,OAAAvB,GAAAvsR,IAA4C,GAChGuqR,EAAAU,GAAA,WAAAx9R,GAAAogS,EAAAx1N,IACA01N,EAAAjrS,GAAAuoI,OAAAuiK,EAAAT,EAAA5C,EAAAlyN,WAAAq1N,GAAAR,EAAA3C,GAAAW,GAAAX,EAAA,aAAkM,CAClMt6L,UAAA,EACA68L,iBAAAH,GAAAQ,EAAA5C,EAAAlyN,cAEA,OAAA40N,GAAAC,EAAA3C,EAAA4C,EAAAY,IAEAC,GAAA,SAAAx2N,EAAAxyE,EAAAwmS,EAAA2B,EAAA90N,GACA,IAAAu1N,EAAArC,GAAAvmS,EAAAwmS,EAAA1rR,GAAA03D,GACA,OAAAm2N,GAAA3tR,IAAAD,GAAAC,GAAA4tR,EAAAT,EAAA90N,IAEA41N,GAAA,SAAAxkR,EAAA+tD,EAAAvvE,GACA,OAAAlB,EAAAD,KAAA0wE,EAAAa,SAAApwE,IAAA/B,OAAAujB,IAEAykR,GAAA,SAAAtsS,GACA,IAAA0I,EAAA,GAaA,MAZA,kBAAA1I,EACAkE,EAAAlE,EAAAkC,QAAA,OAAAlC,EAAA2xB,MAAA,6BAAsE3xB,EAAA2xB,MAAA,cAAAziB,GACtE,IAAA/G,EAAA+G,EAAAyiB,MAAA,KACAxpB,EAAAtI,OAAA,EACA6I,EAAAxH,GAAAse,KAAArX,EAAA,KAAAjH,GAAAse,KAAArX,EAAA,IAEAO,EAAAxH,GAAAse,KAAArX,EAAA,KAAAjH,GAAAse,KAAArX,EAAA,MAIAO,EAAA1I,EAEA0I,GAEA5B,GAAA,SAAAnF,GACA,gBAAAe,GACA,OAAAgE,EAAAhE,IAAA2B,EAAA3B,EAAAf,KAGAiuF,GAAA,SAAAha,EAAAvvE,EAAAq4Q,EAAAn4Q,GACA,IAAAvG,EAAAqG,KAAAuvE,EAAAa,SAAAb,EAAAa,SAAApwE,GAAAq4Q,EACA,eAAAn4Q,EACA+lS,GAAAtsS,GACO,WAAAuG,EACP8lS,GAAA7lS,EAAAovE,EAAAvvE,GAAA5C,MAAAi7Q,GACO,WAAAn4Q,EACP8lS,GAAAxlS,EAAA+uE,EAAAvvE,GAAA5C,MAAAi7Q,GACO,YAAAn4Q,EACP8lS,GAAA1lS,EAAAivE,EAAAvvE,GAAA5C,MAAAi7Q,GACO,WAAAn4Q,EACP8lS,GAAA5lS,EAAAmvE,EAAAvvE,GAAA5C,MAAAi7Q,GACO,UAAAn4Q,EACP8lS,GAAA3lS,EAAAkvE,EAAAvvE,GAAA5C,MAAAi7Q,GACO,aAAAn4Q,EACP8lS,GAAAvlS,GAAAN,GAAAovE,EAAAvvE,GAAA5C,MAAAi7Q,GACO,aAAAn4Q,EACP8lS,GAAAzlS,EAAAgvE,EAAAvvE,GAAA5C,MAAAi7Q,GAEA1+Q,GAIA+qN,GAAA,SAAA0sC,EAAAh+K,GACA,IAAA8yN,EAAA9yN,EAAAjgE,MACA,OAAA+yR,EAAA90C,IAEA+0C,GAAA,SAAA/0C,EAAAh+K,GACA,OAAAz8C,SAAA9O,GAAAurD,EAAAg+K,GAAA,KAEAg1C,GAAAtsS,EAAA4qN,GAAA,eACA2hF,GAAAvsS,EAAA4qN,GAAA,gBACA4hF,GAAAxsS,EAAAqsS,GAAA,cACAI,GAAAzsS,EAAAqsS,GAAA,eACAK,GAAA,SAAApzN,GACA,OAAAA,EAAAjgE,MAAA+jB,yBAEAuvQ,GAAA,SAAAC,EAAAxyM,EAAAC,GACA,IAAAt6D,EAAAusQ,GAAAM,GACA5sQ,EAAAusQ,GAAAK,GACA,OAAAxyM,GAAA,GAAAC,GAAA,GAAAD,GAAAr6D,GAAAs6D,GAAAr6D,GAEA2pC,GAAA,SAAAu5B,EAAA5pB,EAAA8gB,EAAAC,GACA,IAAAswL,EAAA+hB,GAAApzN,GACA6tD,EAAAjkC,EAAAynL,EAAA/sP,KAAA07C,EAAAjgE,MAAAulB,WAAA6tQ,GAAAnzN,GAAA,EACA8tD,EAAAlkC,EAAAynL,EAAA9sP,IAAAy7C,EAAAjgE,MAAAslB,UAAA6tQ,GAAAlzN,GAAA,EACAv5E,EAAAq6F,EAAA+sC,EACA3tH,EAAA6gF,EAAA+sC,EACA,OACArnI,IACAyZ,MAGAqzR,GAAA,SAAAp3N,EAAA2kB,EAAAC,GACA,IAAAuyM,EAAAlzR,GAAAZ,QAAA28D,EAAAhuD,WACA0rJ,EAAA19F,EAAAytB,OAAA0pM,EAAA7hR,GAAA6hR,GACAE,EAAAnjO,GAAA8L,EAAAytB,OAAAiwE,EAAA/4E,EAAAC,GACA,OAAAsyM,GAAAx5H,EAAA25H,EAAA/sS,EAAA+sS,EAAAtzR,IAEAuzR,GAAA,SAAA9zR,GACA,OAAAjU,EAAAD,KAAAkU,GAAAnV,IAAA4V,GAAAZ,UAEAk0R,GAAA,SAAAv3N,GACA,IAAAw3N,EAAAx3N,EAAAytB,OAAAztB,EAAAhuD,UAAAguD,EAAAu+E,0BACA,OAAA+4I,GAAAE,GAAAnpS,IAAA,SAAA0pB,GACA,OAAAjL,GAAAuI,GAAA0C,QACOlqB,OAAA,IAEP4pS,GAAA,CACAL,qBACAG,0BAGA,SAAAx3N,KACA,IAAA23N,EAAA,WACA,UAAA1sS,MAAA,gEAEA,OACAiiD,KAAAyqP,EACAjqP,MAAAiqP,EACAlgQ,WAAAkgQ,EACAh2N,QAAAg2N,GAIA,SAAAC,GAAA33N,GACA,IAAAM,EAAA,GACAs3N,EAAA,WACA,IAAA/E,EAAA7yN,EAAA6yN,MACA,OAAAA,KAAAvoG,2BAAAuoG,EAAAvoG,6BAAAvqH,MAEA83N,EAAA,WACA,OAAAtoS,EAAAD,KAAAgxE,EAAA,KAEAmzM,EAAA,SAAA3mR,EAAAuC,GACA,OAAAvC,EAAA6D,OAAAtB,EAAAsB,MAAA7D,EAAA4W,OAAArU,EAAAqU,OAAA5W,EAAAk0E,cAAAl0E,EAAAs0E,UAAA/xE,EAAA2xE,cAAA3xE,EAAA+xE,SAEA5pC,EAAA,WACA8oC,EAAAr2E,OAAA,GACA2tS,IAAApgQ,WAAA8oC,IAGAw3N,EAAA,SAAAv3N,GACAD,EAAA7uE,KAAA8uE,IAEAw3N,EAAA,SAAAx3N,GACA3tE,EAAA0tE,EAAA,SAAA03N,GACA,OAAAA,IAAAz3N,IACSjyE,KAAA,SAAAunB,GACTyqD,EAAAoY,OAAA7iE,EAAA,MAGAo3B,EAAA,SAAAxwB,GACA,IAAAujD,EAAA81D,SAAA2hK,GAAAF,sBAAAv3N,GAGA,OAAArtE,EAAA2tE,EAAA,SAAAC,GACA,OAAAkzM,EAAAmkB,IAAAl2N,QAAAnB,GAAA9jD,KACS3uB,WAAA,WACTkyE,EAAAgvN,cAAA56M,UAAApU,GACA,IAAAO,EAAAq3N,IAAA3qP,KAAAxwB,EAAA,WACAs7Q,EAAAx3N,GACA/oC,MAIA,OAFAsgQ,EAAAv3N,GACA/oC,IACA+oC,KAGA9yB,EAAA,WACAoqP,IAAAvpS,KAAA,SAAAiyE,GACAq3N,IAAAnqP,MAAA8yB,GACAw3N,EAAAx3N,GACA/oC,OAGAygQ,EAAA,WACA,OAAA33N,GAEAq0I,EAAA,SAAA30I,GACAA,EAAA/lC,GAAA,wBACA,IAAAi+P,EAAAl4N,EAAAa,SAAAs3N,gBACAD,GACAjrP,EAAA,CACAvpC,KAAAw0R,EACAvnS,KAAA,UACAywE,QAAA,MAIApB,EAAA/lC,GAAA,kDACAmqN,GAAA7lE,sBAAA/mJ,KAEAwoC,EAAA/lC,GAAA,oBACA3rC,EAAAgyE,EAAAhvE,QAAA,SAAAivE,GACAq3N,IAAAnqP,MAAA8yB,QAKA,OADAo0I,EAAA30I,GACA,CACA/yB,OACAQ,QACAwqP,oBAIA,SAAAG,KACA,IAAAV,EAAA,WACA,UAAA1sS,MAAA,0DAEA,OACAiiD,KAAAyqP,EACAj+G,QAAAi+G,EACAztG,MAAAytG,EACA1tG,QAAA0tG,EACAjqP,MAAAiqP,EACAW,UAAAX,EACAY,UAAAZ,GAIA,IAAAxtG,GAAA,SAAAlqH,GACA,IAAAu4N,EAAA,GACAX,EAAA,WACA,IAAA/E,EAAA7yN,EAAA6yN,MACA,OAAAA,KAAAxoG,qBAAAwoG,EAAAxoG,uBAAA+tG,MAEAI,EAAA,SAAA31R,EAAAnZ,GACA,kBACA,OAAAA,IAAAQ,MAAA2Y,EAAA7Y,gBAAAkE,IAGAuqS,EAAA,SAAAv8M,GACAlc,EAAAya,KAAA,cAAmCyB,YAEnCw8M,EAAA,SAAAx8M,GACAlc,EAAAya,KAAA,eAAoCyB,YAEpCy8M,EAAA,SAAAz8M,GACAq8M,EAAA9mS,KAAAyqF,GACAu8M,EAAAv8M,IAEAssG,EAAA,SAAAtsG,GACAw8M,EAAAx8M,GACAq8M,EAAA7pS,EAAA6pS,EAAA,SAAAK,GACA,OAAAA,IAAA18M,IAEA,IAAAq8M,EAAAtuS,QACA+1E,EAAA/wD,SAGA4pR,EAAA,WACA,OAAAtpS,EAAAD,KAAAipS,IAAAtuS,OAAA,KAEA6uS,EAAA,SAAAC,GACA/4N,EAAAgvN,cAAA56M,UAAApU,GACA8tN,GAAA//O,MAAAiyB,GACA,IAAAkc,EAAA68M,IAEA,OADAJ,EAAAz8M,GACAA,GAEAjvC,EAAA,SAAAnjD,EAAA2L,GACA,OAAAqjS,EAAA,WACA,OAAAlB,IAAA3qP,KAAAnjD,EAAA2L,EAAA+yL,MAGA/O,EAAA,SAAA3vL,GACA,OAAAgvS,EAAA,WACA,OAAAlB,IAAAn+G,QAAA3vL,EAAA0+L,MAGAyB,EAAA,SAAAj6L,EAAAwsF,EAAA35E,GACA+0R,IAAA3tG,MAAAj6L,EAAAwoS,EAAA31R,GAAA1W,KAAAqwF,KAEAwtG,EAAA,SAAAh6L,EAAAwsF,EAAA35E,GACA+0R,IAAA5tG,QAAAh6L,EAAAwoS,EAAA31R,GAAA1W,KAAAqwF,KAEA/uC,EAAA,WACAorP,IAAAvqS,KAAA,SAAA4tF,GACA07M,IAAAnqP,MAAAyuC,GACAssG,EAAAtsG,MAQA,OALAlc,EAAA/lC,GAAA,oBACA3rC,EAAAiqS,EAAA,SAAAr8M,GACA07M,IAAAnqP,MAAAyuC,OAGA,CACAjvC,OACAwsI,UACAwQ,QACAD,UACAv8I,UAIAurP,GAAA,SAAAh5N,EAAAhwE,GACAgwE,EAAAggI,oBAAA/yJ,KAAA,CACAt8C,KAAA,QACA+S,KAAA1T,KAGAipS,GAAA,SAAAj5N,EAAAhwE,GACAgwE,EAAAw6F,YACAw+H,GAAAh5N,EAAAhwE,GAEAgwE,EAAA/lC,GAAA,wBACA++P,GAAAh5N,EAAAhwE,MAIAkpS,GAAA,SAAAl5N,EAAAhwE,GACAipS,GAAAj5N,EAAAmuM,GAAA9lP,UAAA,CACA,8BACAr4B,MAGAmpS,GAAA,SAAApuS,GACAxB,EAAAiM,QAAAzF,MAAAhF,IAEAquS,GAAA,SAAAzoS,EAAAy+F,EAAA3+F,GACA,OAAAA,EAAA,kBAAAE,EAAA,KAAAF,EAAA,aAAA2+F,EAAA,kBAAAz+F,EAAA,SAAAy+F,GAEAiqM,GAAA,SAAAjqM,EAAA3+F,GACA0oS,GAAAC,GAAA,SAAAhqM,EAAA3+F,KAEA6oS,GAAA,SAAAlqM,EAAA3+F,GACA0oS,GAAAC,GAAA,QAAAhqM,EAAA3+F,KAEA8oS,GAAA,SAAAnqM,EAAA3+F,GACA0oS,GAAAC,GAAA,WAAAhqM,EAAA3+F,KAEA+oS,GAAA,SAAAx5N,EAAAvvE,EAAAL,GACA,IAAAJ,EAAAm+Q,GAAA9lP,UAAA,CACA,mCACA53B,IAEAgpS,GAAAzpS,EAAAI,GACA6oS,GAAAj5N,EAAAhwE,IAEAypS,GAAA,SAAAzpS,GAEA,IADA,IAAA1F,EAAA,GACAP,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CO,EAAAP,EAAA,GAAAC,UAAAD,GAEA,IAAAyL,EAAAjM,EAAA8gB,OAAA7U,QACAA,IACAA,EAAAzF,MACAyF,EAAAzF,MAAA7F,MAAAsL,EAAAxL,WAEAwL,EAAAF,IAAApL,MAAAsL,EAAAxL,aAIA0vS,GAAA,CACAL,mBACAC,kBACAC,qBACAC,mBACAN,eACAD,gBACAQ,cAGAvxN,GAAA,WACA,OACAyxN,sBAAA,oRACAC,cAAA,kJACAC,cAAA,mJACAC,eAAA,oQACAC,gBAAA,qQACAC,aAAA,mQACAC,aAAA,oXACAC,cAAA,sQACAC,aAAA,2IACAC,cAAA,2IACAC,KAAA,ubACAtmG,SAAA,qHACAwjC,eAAA,uTACApgJ,WAAA,w0CACAmjN,OAAA,2QACAv4N,OAAA,yPACAw4N,cAAA,0dACAC,kBAAA,y7BACAC,gBAAA,ohBACAC,UAAA,ygBACAC,UAAA,6JACAC,eAAA,0LACAC,eAAA,qLACAC,gBAAA,2LACAC,aAAA,0LACAttP,MAAA,wNACAutP,cAAA,qkCACAC,eAAA,4fACAC,eAAA,2VACAC,4BAAA,8GACAC,eAAA,0GACAC,cAAA,4UACA39F,QAAA,wOACAt9E,SAAA,oJACA9sH,KAAA,8LACAsuH,KAAA,qOACA7tG,IAAA,07BACAunR,sBAAA,8JACA1qK,KAAA,uLACA2qK,UAAA,gSACAC,aAAA,sTACAC,aAAA,4OACAC,aAAA,qbACAv8F,MAAA,mOACAw8F,MAAA,6TACAx7E,KAAA,kRACAy7E,oBAAA,uPACAC,kBAAA,qPACAC,iBAAA,4LACAC,WAAA,mbACAC,QAAA,qYACAz7K,MAAA,6UACAo5C,KAAA,gjBACAsiI,qBAAA,2TACAC,KAAA,wGACAC,kBAAA,kFACAC,gBAAA,+PACAhkL,MAAA,gTACA4zK,OAAA,mVACA5lR,KAAA,8JACAi2R,mBAAA,8cACAC,cAAA,oOACAn8K,OAAA,8aACAo8K,OAAA,uOACAhuQ,KAAA,+JACAlC,KAAA,qWACAmwQ,mBAAA,kXACAC,oBAAA,mOACAC,mBAAA,sLACAC,uBAAA,mwBACAC,mBAAA,gwBACAC,2BAAA,82BACAC,uBAAA,o4BACAC,2BAAA,k+BACAC,uBAAA,i/BACAC,2BAAA,4bACAC,uBAAA,uaACAC,2BAAA,ixBACAC,uBAAA,ixBACAC,2BAAA,mWACAC,uBAAA,8UACAt2K,KAAA,uVACAnuF,IAAA,oTACA0kQ,cAAA,+PACAC,eAAA,8JACAC,UAAA,mJACAC,eAAA,uPACAC,OAAA,wLACAC,mBAAA,0iBACAC,eAAA,goBACAC,YAAA,iTACAC,QAAA,iVACAC,aAAA,wbACAC,aAAA,mWACAnzF,MAAA,ySACAozF,gBAAA,iNACAC,KAAA,0KACAC,YAAA,4qBACA1vL,QAAA,0eACA2vL,MAAA,iOACAC,MAAA,2RACA3zK,KAAA,qQACAjnC,OAAA,6bACA66M,oBAAA,6VACArnR,OAAA,oVACAsnR,gBAAA,4KACA1mL,OAAA,qZACA2mL,gBAAA,mYACAC,cAAA,0RACAC,eAAA,oRACA1lQ,IAAA,0QACAq5P,KAAA,oRACAvpR,OAAA,wKACA61R,aAAA,iXACAxiP,SAAA,iOACAykB,SAAA,knBACAy/C,QAAA,0XACAu+K,WAAA,8TACAC,cAAA,mbACAC,iBAAA,kcACAC,UAAA,oWACAC,YAAA,yWACAC,wBAAA,4MACAC,wBAAA,8JACAC,0BAAA,yLACAC,sBAAA,gaACAC,mBAAA,mQACAC,qBAAA,2MACAC,4BAAA,kSACAC,6BAAA,kSACAC,yBAAA,6RACAC,yBAAA,ySACAC,oBAAA,8KACAC,oBAAA,6KACAC,uBAAA,6KACAC,oBAAA,0VACAC,mBAAA,6KACA57J,MAAA,yNACA67J,SAAA,6LACAC,wBAAA,mVACAC,aAAA,yZACAC,IAAA,mbACA/3Q,UAAA,ogBACAg4Q,UAAA,4WACA31K,KAAA,qQACAp+F,OAAA,6oBACAg0Q,OAAA,gVACAC,iBAAA,imBACAC,WAAA,kNACAvjD,OAAA,2PACAwjD,KAAA,oPACAC,aAAA,uaACAC,YAAA,6NACAjiO,QAAA,2ZACAkiO,UAAA,oPACAC,WAAA,gNAIAC,GAAA,WACA,IAAA9vP,EAAA,GACAhvB,EAAA,SAAAx0B,EAAAuzS,GACA/vP,EAAAxjD,GAAAuzS,GAEA3sS,EAAA,SAAA5G,GACA,OAAAwjD,EAAAxjD,GACAwjD,EAAAxjD,GAEA,CAAgB6wE,MAAA,KAEhB7lD,EAAA,SAAAhrB,GACA,OAAA8G,GAAA08C,EAAAxjD,IAEA,OACAw0B,MACA5tB,MACAE,IAAAkkB,IAGAwoR,GAAAF,KAEAvxB,GAAAE,GAAAF,cAEAC,GAAAC,GAAAD,aAEA,SAAA1yB,GAAAmkD,EAAApgO,GACA,IAAAqgO,EAAA,GACAvkD,EAAA,SAAAC,EAAAC,GACA,OAAAD,EACAA,EAAA33O,QAAA,cAAA43O,EAAA53O,QAAA,UAEA43O,GAEAE,EAAA,SAAAxI,EAAA91K,EAAA8kK,EAAArkK,GACA,IAAAs1K,EAAAz1D,EACAy1D,EAAA,IAAAjrP,EAAAorP,eACAH,EAAAvnM,KAAA,OAAA4zB,EAAAuuB,KACAolJ,EAAAI,gBAAA/zK,EAAAm8K,YACAxI,EAAAyI,OAAAC,WAAA,SAAA7wP,GACA6yE,EAAA7yE,EAAA8sH,OAAA9sH,EAAA6hJ,MAAA,MAEAsmG,EAAA0E,QAAA,WACA3V,EAAA,2DAAAiR,EAAA3mN,SAEA2mN,EAAAM,OAAA,WACA,IAAAC,EACAP,EAAA3mN,OAAA,KAAA2mN,EAAA3mN,QAAA,IACA01M,EAAA,eAAAiR,EAAA3mN,SAGAknN,EAAAh6O,KAAAmpE,MAAAswK,EAAAQ,cACAD,GAAA,kBAAAA,EAAAh3E,SAIAt/F,EAAAk+K,EAAA97K,EAAAs8K,SAAApI,EAAAh3E,WAHAwlE,EAAA,iBAAAiR,EAAAQ,gBAKAj2D,EAAA,IAAAx1L,EAAA0rP,SACAl2D,EAAAxoK,OAAA,OAAAg+N,EAAAh3N,OAAAg3N,EAAAW,YACAV,EAAAW,KAAAp2D,IAEAoiH,EAAA,WACA,WAAAx9C,GAAA,SAAAp4P,GACAA,EAAA,OAGA61S,EAAA,SAAA7sD,EAAAnlJ,GACA,OACAA,MACAmlJ,WACA1mN,QAAA,IAGAwzQ,EAAA,SAAA9sD,EAAAxkP,GACA,OACAq/F,IAAA,GACAmlJ,WACA1mN,QAAA,EACA99B,UAGAuxS,EAAA,SAAAxhD,EAAA1nP,GACA9M,GAAAgD,KAAA4yS,EAAAphD,GAAA,SAAAv0P,GACAA,EAAA6M,YAEA8oS,EAAAphD,IAEAyhD,EAAA,SAAAhtD,EAAAhnO,EAAAi0R,GAEA,OADAP,EAAAQ,YAAAltD,EAAAuL,WACA,IAAA6D,GAAA,SAAAp4P,GACA,IAAAg1E,EAAArB,EACA11E,EAAA,aAEA,IACA,IAAAk4S,EAAA,WACAnhO,IACAA,EAAA9yB,QACAyxB,EAAA11E,IAGAi1E,EAAA,SAAA2wB,GACAsyM,IACAT,EAAAU,aAAAptD,EAAAuL,UAAA1wJ,GACAkyM,EAAA/sD,EAAAuL,UAAAshD,EAAA7sD,EAAAnlJ,IACA7jG,EAAA61S,EAAA7sD,EAAAnlJ,KAEAm0I,EAAA,SAAAxzO,GACA2xS,IACAT,EAAAW,aAAArtD,EAAAuL,WACAwhD,EAAA/sD,EAAAuL,UAAAuhD,EAAA9sD,EAAAxkP,IACAxE,EAAA81S,EAAA9sD,EAAAxkP,KAEAmvE,EAAA,SAAAH,GACAA,EAAA,GAAAA,EAAA,MAGAwB,IACAA,EAAAihO,KAEAjhO,EAAAS,YAAA52E,MAAA20E,KAEAxxD,EAAAgnO,EAAA91K,EAAA8kK,EAAArkK,GACW,MAAAq1B,GACXhpG,EAAA81S,EAAA9sD,EAAAhgJ,EAAAvkG,cAIAqtP,EAAA,SAAA9vO,GACA,OAAAA,IAAAwvO,GAEA8kD,EAAA,SAAAttD,GACA,IAAAuL,EAAAvL,EAAAuL,UACA,WAAA6D,GAAA,SAAAp4P,GACA21S,EAAAphD,GAAAohD,EAAAphD,IAAA,GACAohD,EAAAphD,GAAAruP,KAAAlG,MAGAu2S,EAAA,SAAAC,EAAAP,GAIA,OAHAO,EAAAz2S,GAAAwhM,KAAAi1G,EAAA,SAAAxtD,GACA,OAAA0sD,EAAAe,WAAAztD,EAAAuL,aAEA6D,GAAAh5P,IAAAW,GAAA+C,IAAA0zS,EAAA,SAAAxtD,GACA,OAAA0sD,EAAAgB,UAAA1tD,EAAAuL,WAAA+hD,EAAAttD,GAAAgtD,EAAAhtD,EAAA1zK,EAAAtzD,QAAAi0R,OAGAvkD,EAAA,SAAA8kD,EAAAP,GACA,OAAA3gO,EAAAuuB,KAAAiuJ,EAAAx8K,EAAAtzD,SAAA4zR,IAAAW,EAAAC,EAAAP,IAKA,OAHA,IAAAxwS,EAAA6vE,EAAAtzD,WACAszD,EAAAtzD,QAAAwvO,GAEA,CAAcE,UAGd,IAAAilD,GAAA,SAAA9yM,GACA,WAAAu0J,GAAA,SAAAp4P,EAAA0oG,GACA,IAAAkuM,EAAA,WACAluM,EAAA,kBAAA7E,EAAA,2DAEA,IACA,IAAAolJ,EAAA,IAAAjrP,EAAAorP,eACAH,EAAAvnM,KAAA,MAAAmiD,GAAA,GACAolJ,EAAA4tD,aAAA,OACA5tD,EAAAM,OAAA,WACA,MAAA3oP,KAAA0hC,OACAtiC,EAAAY,KAAA20J,UAEAqhJ,KAGA3tD,EAAA0E,QAAAipD,EACA3tD,EAAAW,OACS,MAAA5gJ,GACT4tM,QAIAE,GAAA,SAAA/oL,GACA,IAAA3oH,EAAA4Z,EACA+3R,EAAAna,mBAAA7uK,GAAAv9F,MAAA,KAKA,OAJAxR,EAAA,eAA0B4rE,KAAAmsN,EAAA,IAC1B/3R,IACA5Z,EAAA4Z,EAAA,IAEA,CACA5Z,OACAqgB,KAAAsxR,EAAA,KAGAhoL,GAAA,SAAAhB,GACA,WAAAqqI,GAAA,SAAAp4P,GACA,IAAA+d,EAAA/W,EAAA1G,EACAy2S,EAAAD,GAAA/oL,GACA,IACAhwG,EAAA/f,EAAAowH,KAAA2oL,EAAAtxR,MACS,MAAA3kB,IAET,YADAd,EAAA,IAAAhC,EAAA8wH,KAAA,KAIA,IADA9nH,EAAA,IAAA6nH,WAAA9wG,EAAArf,QACA4B,EAAA,EAAmBA,EAAA0G,EAAAtI,OAAgB4B,IACnC0G,EAAA1G,GAAAyd,EAAA6wG,WAAAtuH,GAEAN,EAAA,IAAAhC,EAAA8wH,KAAA,CAAA9nH,GAAA,CAA4C5B,KAAA2xS,EAAA3xS,WAG5C4xS,GAAA,SAAAnzM,GACA,WAAAA,EAAA9iG,QAAA,SACA41S,GAAA9yM,GAEA,IAAAA,EAAA9iG,QAAA,SACAguH,GAAAlrB,GAEA,MAEA2rB,GAAA,SAAAx9F,GACA,WAAAomO,GAAA,SAAAp4P,GACA,IAAAm+F,EAAA,IAAAngG,EAAAyxH,WACAtxB,EAAAuxB,UAAA,WACA1vH,EAAAm+F,EAAAtxF,SAEAsxF,EAAAwxB,cAAA39F,MAGAilR,GAAA,CACAD,aACAxnL,iBACAsnL,iBAGAztS,GAAA,EACA61Q,GAAA,SAAAlxP,GACA,OAAAA,GAAA,UAAA3kB,MAEA6tS,GAAA,SAAA7hD,EAAApsH,EAAAjpI,EAAA0oG,GACA,IAAAulB,EAAA+6H,EACA,OAAA//G,EAAApb,IAAA9sH,QAAA,SAsBA,OArBAioP,EAAAqM,EAAA8hD,SAAAluK,EAAApb,UACAm7H,EACAhpP,EAAA,CACA6sH,MAAAoc,EACA+/G,aAGAiuD,GAAAD,UAAA/tK,EAAApb,KAAAjyC,KAAA,SAAA5pD,GACAilR,GAAAznL,cAAAx9F,GAAA4pD,KAAA,SAAAw7N,GACAnpL,EAAAgpL,GAAAH,aAAAM,GAAA3xR,KACAujO,EAAAqM,EAAA1uN,OAAAu4O,KAAAltP,EAAAi8F,GACAonI,EAAA5+N,IAAAuyN,GACAhpP,EAAA,CACA6sH,MAAAoc,EACA+/G,gBAGW,SAAAnkP,GACX6jG,EAAA7jG,MAKAopH,EAAAgpL,GAAAH,aAAA7tK,EAAApb,KAAApoG,KACAujO,EAAAqM,EAAAgiD,UAAA,SAAAC,GACA,OAAAA,EAAArpL,eAEA+6H,EACAhpP,EAAA,CACA6sH,MAAAoc,EACA+/G,aAGAiuD,GAAAD,UAAA/tK,EAAApb,KAAAjyC,KAAA,SAAA5pD,GACAg3N,EAAAqM,EAAA1uN,OAAAu4O,KAAAltP,EAAAi8F,GACAonI,EAAA5+N,IAAAuyN,GACAhpP,EAAA,CACA6sH,MAAAoc,EACA+/G,cAES,SAAAnkP,GACT6jG,EAAA7jG,MAIA0yS,GAAA,SAAAj/N,GACA,OAAAA,EAAApwE,EAAAowE,EAAAgjL,qBAAA,YAEA,SAAAk8C,GAAA9B,EAAArgD,GACA,IAAAoiD,EAAA,GACA9yB,EAAA,SAAArsM,EAAA5xD,GACA,IAAAisO,EACAjsO,IACAA,EAAA9nB,GAAA,IAEA+zP,EAAAxvP,EAAAo0S,GAAAj/N,GAAA,SAAA2wD,GACA,IAAApb,EAAAob,EAAApb,IACA,QAAAsrI,GAAAF,WAGAhwH,EAAA/7G,aAAA,qBAGA+7G,EAAA/7G,aAAA,6BAGA2gG,OAAAsrI,GAAApiD,kBAGA,IAAAlpF,EAAA9sH,QAAA,UACA20S,EAAAe,WAAA5oL,IAAAnnG,EAAAuiH,GAEA,IAAApb,EAAA9sH,QAAA,UACA2lB,EAAAuiH,SAIA,IAAAyuK,EAAA50S,EAAA6vP,EAAA,SAAA1pH,GACA,GAAAwuK,EAAAxuK,EAAApb,KACA,WAAAuqI,GAAA,SAAAp4P,GACAy3S,EAAAxuK,EAAApb,KAAAjyC,KAAA,SAAA+7N,GACA,qBAAAA,EACA,OAAAA,EAEA33S,EAAA,CACA6sH,MAAAoc,EACA+/G,SAAA2uD,EAAA3uD,eAKA,IAAA4uD,EAAA,IAAAx/C,GAAA,SAAAp4P,EAAA0oG,GACAwuM,GAAA7hD,EAAApsH,EAAAjpI,EAAA0oG,KACW9sB,KAAA,SAAA/uE,GAEX,cADA4qS,EAAA5qS,EAAAggH,MAAAgB,KACAhhH,IACWsgH,MAAA,SAAA3oH,GAEX,cADAizS,EAAAxuK,EAAApb,KACArpH,IAGA,OADAizS,EAAAxuK,EAAApb,KAAA+pL,EACAA,IAEA,OAAAx/C,GAAAh5P,IAAAs4S,IAEA,OAAc/yB,WAGd,IAAAkzB,GAAA,EACAxmC,GAAA,WACA,IAAAymC,EAAA,WACA,OAAAxpR,KAAA68D,MAAA,WAAA78D,KAAAD,UAAA9qB,SAAA,KAEAqjP,GAAA,IAAA14N,MAAAE,UACA,UAAAw4N,EAAArjP,SAAA,IAAAu0S,aAEAnxD,GAAA,SAAA34N,GACA,OAAAA,EAAA6pR,KAAAxmC,MAEA0mC,GAAA,CAAgBpxD,SAEhBqxD,GAAA,WACA,IAAAlrN,EAAA,GACAmrN,EAAA,SAAAxmG,GACA,IAAAT,EAAA,CACAknG,aAAA,MACAC,YAAA,MACAC,YAAA,MACAC,YAAA,OAEA,OAAArnG,EAAAS,EAAA13L,gBAAA,OAEA4sB,EAAA,SAAA7kC,EAAAkwB,EAAAi8F,EAAA07H,GACA,GAAAtkP,EAAAvD,GAAA,CACA,IAAAG,EAAAH,EACA,OAAAw2S,EAAA,CACAr2S,KACAiD,KAAAykP,EACA33N,OACAi8F,WAES,GAAA3oH,EAAAxD,GACT,OAAAw2S,EAAAx2S,GAEA,UAAArC,MAAA,uBAGA64S,EAAA,SAAAx2S,GACA,IAAAG,EAAAiD,EACA,IAAApD,EAAAkwB,OAAAlwB,EAAAmsH,OACA,UAAAxuH,MAAA,wFAIA,OAFAwC,EAAAH,EAAAG,IAAA81S,GAAApxD,KAAA,UACAzhP,EAAApD,EAAAoD,MAAAjD,EACA,CACAA,GAAArD,EAAAqD,GACAiD,KAAAtG,EAAAsG,GACAykP,SAAA/qP,EAAAsG,EAAA,IAAA+yS,EAAAn2S,EAAAkwB,KAAA5sB,OACA4sB,KAAApzB,EAAAkD,EAAAkwB,MACAi8F,OAAArvH,EAAAkD,EAAAmsH,QACAsmI,QAAA31P,EAAAkD,EAAAyyP,SAAAv2P,EAAAwvH,IAAAC,gBAAA3rH,EAAAkwB,OACA+7F,IAAAnvH,EAAAkD,EAAAisH,OAGAt3F,EAAA,SAAAuyN,GACAngP,EAAAmgP,EAAA/mP,OACA6qF,EAAA5mF,KAAA8iP,IAGAngP,EAAA,SAAA5G,GACA,OAAAo1S,EAAA,SAAAC,GACA,OAAAA,EAAAr1S,YAGAo1S,EAAA,SAAA3wR,GACA,OAAAvjB,EAAA2pF,EAAApmE,GAAA,IAEAywR,EAAA,SAAA5iD,GACA,OAAA8iD,EAAA,SAAAruD,GACA,OAAAA,EAAAuL,iBAGAgkD,EAAA,SAAAhkD,GACAznK,EAAA3pF,EAAA2pF,EAAA,SAAAk8J,GACA,OAAAA,EAAAuL,gBACAv2P,EAAAwvH,IAAAoC,gBAAAo5H,EAAAuL,YACA,MAKA90J,EAAA,WACA18F,EAAA+pF,EAAA,SAAAwqN,GACAt5S,EAAAwvH,IAAAoC,gBAAA0nL,EAAA/iD,aAEAznK,EAAA,IAEA,OACAnmD,SACAlQ,MACA5tB,MACAsuS,WACAE,YACAkB,cACA94M,YAIA,SAAA+4M,KACA,IAAAC,EAAA,EAAAC,EAAA,EACAC,EAAA,GACAC,EAAA,SAAAt2Q,EAAAu2Q,GACA,OACAv2Q,SACAu2Q,cAGAC,EAAA,SAAAvkD,GACA,OAAAA,KAAAokD,GAEAI,EAAA,SAAAxkD,GACA,IAAA1nP,EAAA8rS,EAAApkD,GACA,OAAA1nP,IAAAgsS,UAAA,MAEAnC,EAAA,SAAAniD,GACA,QAAAukD,EAAAvkD,IAAAokD,EAAApkD,GAAAjyN,SAAAm2Q,GAEAhC,EAAA,SAAAliD,GACA,QAAAukD,EAAAvkD,IAAAokD,EAAApkD,GAAAjyN,SAAAo2Q,GAEAxC,EAAA,SAAA3hD,GACAokD,EAAApkD,GAAAqkD,EAAAH,EAAA,OAEArC,EAAA,SAAA7hD,EAAAskD,GACAF,EAAApkD,GAAAqkD,EAAAF,EAAAG,IAEAxC,EAAA,SAAA9hD,UACAokD,EAAApkD,IAEA90J,EAAA,WACAk5M,EAAA,IAEA,OACAG,aACAC,eACArC,YACAD,aACAP,cACAE,eACAC,eACA52M,WAIA,IAojBAu5M,GApjBAC,GAAA,SAAAxkO,GACA,IACA+/K,EAAA0kD,EADA7jD,EAAA2iD,KAEAtC,EAAA8C,KACAW,EAAA,GACAC,EAAA,SAAAnoN,GACA,gBAAApkF,GACA,OAAA4nE,EAAA5kC,UACAohD,EAAApkF,GAEA,KAGAwsS,EAAA,WACA,eAAAnrR,MAAAE,WAEAkrR,EAAA,SAAArtR,EAAAzO,EAAA9D,GACA,IAAA4Q,EAAA,EACA,GACAA,EAAA2B,EAAAlrB,QAAAyc,EAAA8M,IACA,IAAAA,IACA2B,IAAAsE,UAAA,EAAAjG,GAAA5Q,EAAAuS,EAAAjO,OAAAsM,EAAA9M,EAAA9e,QACA4rB,GAAA5Q,EAAAhb,OAAA8e,EAAA9e,OAAA,UAES,IAAA4rB,GACT,OAAA2B,GAEAstR,EAAA,SAAAttR,EAAAutR,EAAAC,GAGA,OAFAxtR,EAAAqtR,EAAArtR,EAAA,QAAAutR,EAAA,YAAAC,EAAA,KACAxtR,EAAAqtR,EAAArtR,EAAA,iBAAAutR,EAAA,qBAAAC,EAAA,KACAxtR,GAEAytR,EAAA,SAAAF,EAAAC,GACA12S,EAAA0xE,EAAAob,YAAApqE,KAAA,SAAAyuD,GACA,eAAAA,EAAA9uE,KACA8uE,EAAAylO,UAAA72S,EAAAoxE,EAAAylO,UAAA,SAAAvtR,GACA,OAAAmtR,EAAAntR,EAAAotR,EAAAC,KAGAvlO,EAAAjoD,QAAAstR,EAAArlO,EAAAjoD,QAAAutR,EAAAC,MAIAxD,EAAA,WACA,OAAAxhO,EAAAggI,oBAAA/yJ,KAAA,CACAvpC,KAAAs8D,EAAA33C,UAAA,sBACA13B,KAAA,OACAywE,SAAA,EACAJ,aAAA,KAGAmkO,EAAA,SAAA/sL,EAAAgsL,GACAxjD,EAAAkjD,YAAA1rL,EAAAgB,KACA6rL,EAAA7sL,EAAAgB,IAAAgrL,GACApkO,EAAAo4H,EAAAhgF,GAAAr2F,KAAA,CACAq3F,IAAA7+B,GAAA+vM,oBAAAtqN,GAAAokO,EAAAQ,IAAAR,EACAgB,eAAAplO,EAAAo/H,WAAAglG,EAAA,UAGAiB,EAAA,SAAA7oN,GASA,OARAujK,IACAA,EAAAjD,GAAAmkD,EAAA,CACA7xM,IAAA7U,GAAAmwM,kBAAA1qN,GACAm9K,SAAA5iK,GAAAowM,uBAAA3qN,GACAg9K,YAAAziK,GAAAqwM,2BAAA5qN,GACAzyD,QAAAgtE,GAAAswM,uBAAA7qN,MAGAslO,IAAAn+N,KAAAw9N,EAAA,SAAAY,GACA,IAAAxD,EAIA,OAHAA,EAAA1zS,EAAAk3S,EAAA,SAAArC,GACA,OAAAA,EAAA3uD,WAEAwL,EAAA9C,OAAA8kD,EAAAP,GAAAr6N,KAAAw9N,EAAA,SAAAvsS,GACA,IAAAotS,EAAAn3S,EAAA+J,EAAA,SAAAqtS,EAAA5vR,GACA,IAAAuiG,EAAAmtL,EAAA1vR,GAAAuiG,MAMA,OALAqtL,EAAA53Q,QAAA0sD,GAAAgwM,sBAAAvqN,GACAmlO,EAAA/sL,EAAAqtL,EAAAr2M,KACeq2M,EAAA11S,OACf2pS,GAAAR,YAAAl5N,EAAAylO,EAAA11S,OAEA,CACA6b,QAAAwsG,EACAvqF,OAAA43Q,EAAA53Q,UAMA,OAHA2uD,GACAA,EAAAgpN,GAEAA,SAIA7kD,EAAA,SAAAnkK,GACA,GAAAjC,GAAA8vM,0BAAArqN,GACA,OAAAqlO,EAAA7oN,IAGAkpN,EAAA,SAAAjsD,GACA,IAEW,IAFXhrP,EAAAi2S,EAAA,SAAAh2S,GACA,OAAAA,EAAA+qP,KAEA,SAEA,OAAAA,EAAAlhO,aAAA,OAAAjsB,QAAA,UACA,IAAAq5S,EAAAprN,GAAA6vM,uBAAApqN,GACA,OAAA2lO,EAAAlsD,GAEA,UAEAmsD,EAAA,SAAAl3S,GACAg2S,EAAAjzS,KAAA/C,IAEA42S,EAAA,WAIA,OAHAb,IACAA,EAAA1B,GAAA9B,EAAArgD,IAEA6jD,EAAAv0B,QAAAlwM,EAAAhuD,UAAA0zR,GAAAv+N,KAAAw9N,EAAA,SAAAvsS,GAaA,OAZAA,EAAA1J,EAAA0J,EAAA,SAAAytS,GACA,wBAAAA,IACAnM,GAAAT,aAAAj5N,EAAA6lO,IACA,KAIAv3S,EAAA8J,EAAA,SAAAytS,GACAZ,EAAAY,EAAAztL,MAAAgB,IAAAysL,EAAAtxD,SAAAuL,WACA+lD,EAAAztL,MAAAgB,IAAAysL,EAAAtxD,SAAAuL,UACA+lD,EAAAztL,MAAAz/F,gBAAA,kBAEAvgB,MAGA4yF,EAAA,WACA41J,EAAA51J,UACAi2M,EAAAj2M,UACAy5M,EAAA1kD,EAAA,MAEA+lD,EAAA,SAAAtuR,GACA,OAAAA,EAAAvS,QAAA,+BAAAlQ,EAAA+qP,GACA,IAAAskD,EAAAnD,EAAAqD,aAAAxkD,GACA,GAAAskD,EACA,cAAAA,EAAA,IAEA,IAAA7vD,EAAAqM,EAAA8hD,SAAA5iD,GAMA,GALAvL,IACAA,EAAA7hP,EAAAstE,EAAAgvN,cAAA56R,MAAA,SAAAgE,EAAA4nE,GACA,OAAA5nE,GAAA4nE,EAAA0gL,cAAA1gL,EAAA0gL,aAAAE,UAAA8hD,SAAA5iD,IACa,OAEbvL,EAAA,CACA,IAAAh3N,EAAAg3N,EAAAh3N,OACA,mBAAAA,EAAA5sB,KAAA,WAAgD4jP,EAAA/6H,SAAA,IAEhD,OAAAzkH,KAiCA,OA9BAirE,EAAA/lC,GAAA,wBACAsgD,GAAA8vM,0BAAArqN,GACA2gL,IAEA2kD,MAGAtlO,EAAA/lC,GAAA,0BAAA5tC,GACAA,EAAAmrB,QAAAsuR,EAAAz5S,EAAAmrB,WAEAwoD,EAAA/lC,GAAA,sBAAA5tC,GACAA,EAAA05S,aAAA,QAAA15S,EAAA4uF,SAGA5uF,EAAAmrB,QAAAsuR,EAAAz5S,EAAAmrB,YAEAwoD,EAAA/lC,GAAA,wBACA+lC,EAAAwxH,OAAAuS,cAAA,eAAAm6C,GACA5vP,EAAA4vP,EAAA,SAAA1pH,GACA,IAAApb,EAAAob,EAAAzyG,KAAA,OACA,IAAA6+N,EAAA8hD,SAAAtpL,GAAA,CAGA,IAAAgrL,EAAAnD,EAAAqD,aAAAlrL,GACAgrL,GACA5vK,EAAAzyG,KAAA,MAAAqiR,UAKA,CACAxjD,YACAglD,YACAP,eACA1kD,mBACA2kD,gBACAt6M,YAIAg7M,GAAA,SAAAp0S,GACA,OAAAA,EAAAN,MAAA,OAEA20S,GAAA,SAAAz8R,EAAA+4B,EAAAtwB,GACA,OAAAnF,GAAAy1B,EAAA/4B,GACAw8R,GAAAhhJ,GAAAx7I,EAAA,SAAAq6D,GACA,OAAA5xD,EAAA4xD,IAAAz2E,GAAAy2E,EAAAthC,MAGA,IAGA2jQ,GAAA,SAAA18R,EAAA+4B,GACA,OAAA0jQ,GAAAz8R,EAAA+4B,EAAAp4C,GAAA,KAEAg8S,GAAA,SAAA38R,EAAA+4B,GACA,OAAA/4B,GAAA5e,OAAAs7S,GAAA18R,EAAA+4B,KAEA6jQ,GAAA,CACA1/B,aAAAu/B,GACAjhJ,QAAAkhJ,GACAC,mBAGAE,GAAA,SAAAv6G,EAAAtoL,GACA,OAAAsoL,EAAA7/L,eAAAuX,EAAAgO,WAEA80R,GAAA,SAAAx6G,EAAAtoL,GACA,QAAA6oL,GAAA16K,OAAAnO,MAEO6oL,GAAA36K,UAAAlO,MACP6iS,GAAAv6G,EAAAtoL,KAAAy9Q,GAAAvrF,eAAAlyL,KAKA+iS,GAAA,SAAAz6G,EAAAvpJ,EAAA/+B,GACA,OAAAhV,EAAA43S,GAAAphJ,QAAA/gJ,GAAAZ,QAAAG,GAAAS,GAAAZ,QAAAk/B,IAAA,SAAAshC,GACA,OAAAwiO,GAAAv6G,EAAAjoH,EAAAjgE,UAGA4iS,GAAA,SAAA16G,EAAAtoL,GACA,GAAA6oL,GAAA16K,OAAAnO,GAAA,CACA,OAAAA,EAAAy6B,UAAAh0C,OACA,SACS,WAAAya,KAAAlB,EAAAy6B,cAAAz6B,EAAAkS,aAAA2wR,GAAAv6G,EAAAtoL,EAAAkS,cACT,SAGA,UAEA+wR,GAAA,SAAAzmO,GACA,IAIA3kC,EACAC,EAAAuB,EAAAC,EAAAC,EAAA2pQ,EACAC,EAAA3hN,EAAA4hN,EACAC,EAPAjjS,EAAAo8D,EAAAp8D,IAAAw3B,EAAA4kC,EAAA5kC,UACAr9B,EAAAiiE,EAAAjiE,OAAA+tL,EAAA/tL,EAAAwwL,mBACA/qL,EAAA43B,EAAAd,WACA6oC,EAAAnD,EAAAhuD,UAKA80R,EAAAvsN,GAAAqvM,mBAAA5pN,GACA,GAAAx8D,GAAA6oL,GAAA36K,UAAAlO,IAAAsjS,IAGAD,EAAA1jO,EAAA3xD,SAAAlM,cACAvH,EAAAm2P,aAAA2yC,EAAAC,EAAAxhS,iBAAAihS,GAAAz6G,EAAA3oH,EAAA3/D,IAAA,CAGA63B,EAAAD,EAAAkrC,SACAhrC,EAAAD,EAAAC,eACAuB,EAAAxB,EAAAwB,YACAC,EAAAzB,EAAAyB,aACAC,EAAA1B,EAAA0B,UACA6pQ,EAAAjW,GAAA37P,SAAAgrC,GACAx8D,EAAA2/D,EAAAptD,WACA,MAAAvS,EACA,GAAA8iS,GAAAx6G,EAAAtoL,GAAA,CACA,GAAAgjS,GAAA16G,EAAAtoL,GAAA,CACAmjS,EAAAnjS,EACAA,IAAAkS,YACA9R,EAAAsT,OAAAyvR,GACA,SAEAD,IACAA,EAAA9iS,EAAAsuB,OAAA40Q,EAAAvsN,GAAAsvM,wBAAA7pN,IACAx8D,EAAAqO,WAAAuE,aAAAswR,EAAAljS,GACAwhF,GAAA,GAEA2hN,EAAAnjS,EACAA,IAAAkS,YACAgxR,EAAAhwR,YAAAiwR,QAEAD,EAAA,KACAljS,IAAAkS,YAGAsvE,GAAA4hN,IACAvrQ,EAAAQ,SAAAP,EAAAuB,GACAxB,EAAAa,OAAAY,EAAAC,GACA3B,EAAA2nI,OAAA1nI,GACA2kC,EAAAub,iBAGAk/C,GAAA,SAAAz6D,GACAua,GAAAqvM,mBAAA5pN,IACAA,EAAA/lC,GAAA,aAAA1vC,EAAAk8S,GAAAzmO,KAGA+mO,GAAA,CAAuBjvO,MAAA2iE,IAEvBusK,GAAA,SAAAC,EAAAnuB,GACA,OAAAmuB,GAAAnuB,GAAAmuB,EAAA3rQ,iBAAAw9O,EAAAx9O,gBAAA2rQ,EAAApqQ,cAAAi8O,EAAAj8O,aAAAoqQ,EAAAnqQ,eAAAg8O,EAAAh8O,cAAAmqQ,EAAAlqQ,YAAA+7O,EAAA/7O,WAEAmqQ,GAAA,CAAwBxlB,KAAAslB,IAExBG,GAAA,SAAA9rQ,GACA,IAAA4wK,EAAA5wK,EAAAC,eAAAg6O,EAAAj6O,EAAAwB,YACA,OAAAwvJ,GAAA16K,OAAAs6L,GACA,IAAAqpE,EAAA/lR,EAAAP,KAAAiV,GAAAZ,QAAA4oM,IAAA18M,EAAArC,OAEAqC,EAAAD,KAAA28M,EAAA7oM,WAAAkyQ,IAAAjnR,IAAA4V,GAAAZ,UAGA+jS,GAAA,SAAA/rQ,GACA,IAAAg6O,EAAAh6O,EAAAyB,aAAAy4O,EAAAl6O,EAAA0B,UACA,OAAAsvJ,GAAA16K,OAAA0jQ,GACAE,IAAAF,EAAArkQ,KAAA/mB,OAAAsF,EAAAP,KAAAiV,GAAAZ,QAAAgyQ,IAAA9lR,EAAArC,OAEAqC,EAAAD,KAAA+lR,EAAAjyQ,WAAAmyQ,EAAA,IAAAlnR,IAAA4V,GAAAZ,UAGAgkS,GAAA,SAAA7jS,GACA,OAAAuS,GAAAvS,GAAA9V,KAAAvD,EAAA,CAAAqZ,IAAA,SAAAoS,GACA,OAAApS,GAAA5Y,OAAAy8S,GAAAzxR,OAGA0xR,GAAA,SAAA9jS,GACA,OAAAonL,GAAApnL,GAAA9V,KAAAvD,EAAA,CAAAqZ,IAAA,SAAAoS,GACA,aAAAnlB,GAAAmlB,GACA4vL,GAAA5vL,GAAAvnB,IAAA,SAAAioB,GACA,OAAA9S,GAAA5Y,OAAA08S,GAAAhxR,MACWzoB,MAAA,IAEX,CAAA2V,GAAA5Y,OAAA08S,GAAA1xR,OAIA2xR,GAAA,SAAA1jO,EAAAxoC,GACA,OAAAzO,GAAAu6Q,GAAA9rQ,GAAA+rQ,GAAA/rQ,GAAA,SAAAyjH,EAAA02C,GACA,IAAAhsL,EAAA7W,EAAA00S,GAAAxjO,GAAAt5E,EAAA6C,GAAA0xJ,IACA7kC,EAAAtnH,EAAA20S,GAAAzjO,GAAAt5E,EAAA6C,GAAAooM,IACA,OAAAhsL,EAAA5b,UAAAqsH,EAAArsH,WACOC,OAAA,IAEP25S,GAAA,SAAA5jS,EAAAy3B,EAAA73B,EAAAgG,GACA,IAAA+4B,EAAA/+B,EAAAs/D,EAAA,IAAAgkM,GAAAtjQ,EAAA++B,GACAqtN,EAAAhsP,EAAA7F,OAAA65L,sBACA,GACA,OAAAp0L,EAAAsI,UAAA,IAAAxgB,GAAAse,KAAApG,EAAAy6B,WAAAh0C,OAMA,YALAuf,EACA6xB,EAAAQ,SAAAr4B,EAAA,GAEA63B,EAAAa,OAAA14B,IAAAy6B,UAAAh0C,SAIA,GAAA2lQ,EAAApsP,EAAAgO,YAAA,YAAA9M,KAAAlB,EAAAgO,UAUA,YATAhI,EACA6xB,EAAAS,eAAAt4B,GAEA,OAAAA,EAAAgO,SACA6pB,EAAAY,aAAAz4B,GAEA63B,EAAAc,YAAA34B,UAKOA,EAAAgG,EAAAs5D,EAAA1iE,OAAA0iE,EAAAO,QACP,SAAA9gC,EAAA/wB,WACAhI,EACA6xB,EAAAQ,SAAA0G,EAAA,GAEAlH,EAAAa,OAAAqG,IAAAn/B,WAAAnZ,UAIAw9S,GAAA,SAAAznO,GACA,IAAAv+B,EAAAu+B,EAAA5kC,UAAAssQ,SACA,OAAAjmQ,KAAAX,WAAA,GAGA6mQ,GAAA,WACA,SAAAA,EAAA3nO,GAGA,IAAA/+B,EAFA90C,KAAAy7S,SAAA,GACAz7S,KAAA6zE,SAEA,IAAA9wE,EAAA/C,KACA,sBAAA6zE,EAAA0D,UACA1D,EAAA/lC,GAAA,gDAAA5tC,GACA,IAAAw7S,EAAAC,EACAD,EAAA7nO,EAAA5kC,UAAAkrC,SACAwhO,EAAA,CACAxsQ,eAAAusQ,EAAAvsQ,eACAuB,YAAAgrQ,EAAAhrQ,YACAC,aAAA+qQ,EAAA/qQ,aACAC,UAAA8qQ,EAAA9qQ,WAEA,eAAA1wC,EAAAsE,MAAAu2S,GAAAxlB,KAAAomB,EAAA7mQ,IACA++B,EAAAya,KAAA,mBAEAx5C,EAAA6mQ,IAGA9nO,EAAA/lC,GAAA,yBACA+lC,EAAAya,KAAA,qBAEAza,EAAA/lC,GAAA,6BACA,IAAA8tQ,EAAA/nO,EAAA5kC,UAAAd,UAAA,IACAytQ,IAAArjD,GAAA5yP,OAAAkuE,EAAA5kC,UAAAw4G,eAGA6zJ,GAAAznO,KAAA9wE,EAAA84S,kBAAAD,IAAA/nO,EAAAp8D,IAAAwoL,UAAA27G,EAAA/nO,EAAAhuD,YACAguD,EAAAub,YAAA,CAAgC2yM,iBAAA,MAGhCluN,EAAA/lC,GAAA,mBAAA5tC,IACAA,EAAAkiG,sBAAAk5M,GAAAznO,KACA,QAAAA,EAAA5kC,UAAAqoC,UAAAjyD,SACA4yO,GAAAl6F,iBAAAlqF,EAAA,WACAA,EAAAub,gBAGAvb,EAAAub,iBA4CA,OAvCAosN,EAAA37S,UAAAuvF,YAAA,SAAAzxF,GACA,IACA0Z,EAAAwhJ,EAAAziH,EADAnH,EAAAjvC,KAAA6zE,OAAA5kC,UAEAjvC,KAAA6zE,OAAAygF,aAAArlH,IAAAjvC,KAAA6zE,OAAAa,SAAAonO,qBAAA97S,KAAA6zE,OAAA21E,WACApzG,EAAAp2C,KAAA6zE,OAAAhuD,UACAxO,EAAA43B,EAAAd,UAAA,IAAAiI,EACA/+B,EAAAsO,gBAAA3lB,KAAA6zE,OAAA0D,UAAAv3E,KAAA6zE,OAAAp8D,IAAAwoL,UAAA5oL,EAAA++B,KACA/+B,EAAA++B,GAEAyiH,EAAA,GACA74J,KAAA6zE,OAAAp8D,IAAA4oL,UAAAhpL,EAAA,SAAAA,GACA,GAAAA,IAAA++B,EACA,SAEAyiH,EAAAvzJ,KAAA+R,KAEA1Z,KAAA,GACAA,EAAA8hB,QAAApI,EACA1Z,EAAAk7J,UACA74J,KAAA6zE,OAAAya,KAAA,aAAA3wF,KAGA69S,EAAA37S,UAAAg8S,kBAAA,SAAAD,GACA,IAAAl8S,EAAAq8S,EAEA,GADAA,EAAA/7S,KAAA6zE,OAAAo4H,EAAA2vG,GAAArhC,aAAAv6Q,KAAA6zE,OAAAhuD,WAAAgQ,IAAA+lR,GACAG,EAAAj+S,SAAAkC,KAAAy7S,SAAA39S,OAAA,CACA,IAAA4B,EAAAq8S,EAAAj+S,OAAsC4B,GAAA,EAAQA,IAC9C,GAAAq8S,EAAAr8S,KAAAM,KAAAy7S,SAAA/7S,GACA,MAGA,QAAAA,EAEA,OADAM,KAAAy7S,SAAAM,GACA,EAIA,OADA/7S,KAAAy7S,SAAAM,GACA,GAEAP,EArFA,GAwFAQ,GAAA,CACAxrP,UAAA,EACA68I,OAAA,GACAr8I,KAAA,GACAN,MAAA,GACAG,KAAA,GACAE,MAAA,GACAo2E,SAAA,GACA12E,IAAA,EACAK,GAAA,GACAmrP,IAAA,GACAC,KAAA,GACAC,gBAAA,SAAAj8S,GACA,OAAAA,EAAAwxD,UAAAxxD,EAAA0xD,SAAA1xD,EAAAk8S,QAAAp8S,KAAA8tM,eAAA5tM,IAEA4tM,eAAA,SAAA5tM,GACA,OAAAq4P,GAAA53K,IAAAzgF,EAAAssQ,QAAAtsQ,EAAA0xD,UAAA1xD,EAAAk8S,SAIAC,GAAA,SAAAC,GACA,gBAAA19G,GACA,OAAA09G,IAAA19G,IAGA29G,GAAAF,GAAA,KACAG,GAAA,SAAA97C,GACA,oBAAAnoP,KAAAmoP,IAEA+7C,GAAA,SAAA/7C,GACA,OAAA87C,GAAA97C,KAAA67C,GAAA77C,IAGAg8C,GAAA,SAAA9oE,EAAA9tN,EAAA4lB,GACA,OAAAtoC,EAAAD,KAAAuoC,EAAA9f,aAAArpB,OAAA29L,GAAA16K,QAAAnjB,OAAA,SAAAkV,GACA,IAAA+hC,EAAAs6L,EAAA,KACA,OAAA9tN,EAAAvO,EAAAsN,KAAAqzD,OAAAxsC,EAAA3M,SAAAua,OAGAqjQ,GAAAv+S,EAAAs+S,IAAA,EAAAF,IACAI,GAAAx+S,EAAAs+S,IAAA,EAAAF,IACAK,GAAA,SAAAnxQ,GACA,IAAA9f,EAAA8f,EAAA9f,YACA,OAAAs0K,GAAA16K,OAAAoG,IAAA,IAAAA,EAAA/G,KAAA/mB,QAEAg/S,GAAA,SAAAhzR,EAAAhE,GACA,gBAAA4lB,GACA,OAAAtoC,EAAAD,KAAAitR,GAAAtmQ,EAAA,KAAA4hB,IAAAnpC,OAAAujB,GAAArkB,WAGAs7S,GAAA,SAAA1lS,GACA,cAAAA,EAAAgO,UAAA,UAAA8G,GAAArU,GAAAZ,QAAAG,GAAA,YAEA2lS,GAAA,SAAA3lS,GACA,OAAA6oL,GAAAjjD,uBAAA5lI,KAAA6oL,GAAA41D,WAAAz+O,IAEA4lS,GAAAH,IAAA,EAAAC,IACAG,GAAAJ,IAAA,EAAAC,IACAI,GAAAL,IAAA,EAAA58G,GAAAyxC,SACAyrE,GAAAN,IAAA,EAAA58G,GAAAyxC,SACA0rE,GAAAP,IAAA,EAAAE,IACAM,GAAAR,IAAA,EAAAE,IAEAO,GAAA,SAAAlmS,GACA,IAAAmmS,EAAA,SAAAj0B,GACA,OAAArnR,EAAAqnR,EAAA,SAAAR,GAGA,OAFAA,EAAAn9J,GAAAm9J,GACAA,EAAA1xQ,OACA0xQ,KAGA,GAAA7oF,GAAA36K,UAAAlO,GACA,OAAAmmS,EAAAnmS,EAAAk5B,kBAEA,GAAA2vJ,GAAA16K,OAAAnO,GAAA,CACA,IAAA63B,EAAA73B,EAAAsO,cAAAuqB,cAGA,OAFAhB,EAAAQ,SAAAr4B,EAAA,GACA63B,EAAAa,OAAA14B,IAAAwN,KAAA/mB,QACA0/S,EAAAtuQ,EAAAqB,oBAGAA,GAAA,SAAAl5B,GACA,OAAA9Q,EAAA8Q,EAAA,SAAApL,EAAAoL,GACA,OAAApL,EAAAxN,OAAA8+S,GAAAlmS,KACO,MAIP,SAAA+gS,GACAA,IAAA,eACAA,IAAA,mBAFA,CAGKA,QAAA,KACL,IAAAqF,GAAA,SAAAryQ,EAAAgL,EAAA25O,EAAA14Q,GACA,MAAAA,EAAAy4Q,GAAAz4Q,EAAA+zB,EAAAi8O,GAAAjxO,GACA,GAAA25O,EAAA14Q,GACA,QAIAqmS,GAAA,SAAAtyQ,EAAAuyQ,EAAAC,EAAAxnQ,EAAA25O,EAAApG,GACA,IAAAtyQ,EAEAwmS,EAFAz7Q,EAAA,EACAn2B,EAAA,GAEA4pB,EAAA,SAAAxe,GACA,IAAA3X,EAAAqpR,EAAAQ,EAKA,IAJAA,EAAAh5O,GAAA,CAAAl5B,KACA,IAAA+zB,IACAm+O,IAAA3iR,WAEAlH,EAAA,EAAmBA,EAAA6pR,EAAAzrR,OAAwB4B,IAE3C,GADAqpR,EAAAQ,EAAA7pR,IACAk+S,EAAA70B,EAAA80B,GAAA,CAOA,GAJA5xS,EAAAnO,OAAA,GAAA6/S,EAAA50B,EAAAzvB,GAAAjyP,KAAA4E,KACAm2B,IAEA2mP,EAAA3mP,OACA2tP,EAAAhH,GACA,SAEA98Q,EAAA3G,KAAAyjR,KAIA,OADA80B,EAAAvkD,GAAAjyP,KAAAsiR,EAAAp5O,kBACAstQ,GAGAxmS,EAAAsyQ,EAAAryM,UACAzhD,EAAAxe,GACAomS,GAAAryQ,EAAAgL,EAAAvgB,EAAAxe,GACApL,GALAA,GAOA6xS,GAAA,SAAAC,EAAAh1B,GACA,OAAAA,EAAA3mP,KAAA27Q,GAEAC,GAAA,SAAAD,EAAAh1B,GACA,OAAAA,EAAA3mP,OAAA27Q,GAEAE,GAAA7/S,EAAAs/S,GAAAtF,GAAA8F,GAAAz9H,GAAAC,IACAy9H,GAAA//S,EAAAs/S,GAAAtF,GAAAgG,KAAA19H,GAAAD,IACA49H,GAAA,SAAAjzQ,EAAAgL,EAAA25O,EAAA14Q,GACA,IACA85Q,EAAAmtB,EAAAX,EAAAh0B,EAEAZ,EAAA80B,EAHAU,EAAAlsB,GAAAj8O,GAEAnqC,EAAA,GACAm2B,EAAA,EACAo8Q,EAAA,SAAA70B,GACA,OACArwB,GAAAjyP,KAAAsiR,EAAAp5O,mBAIA,IAAAnF,GACA+lP,EAAAotB,EAAAtqS,KACAqqS,EAAA59H,GACAi9H,EAAAl9H,GACAkpG,EAAAa,GAAAtgQ,MAAA7S,KAEA85Q,EAAAotB,EAAArnO,KACAonO,EAAA79H,GACAk9H,EAAAj9H,GACAipG,EAAAa,GAAA1gQ,OAAAzS,IAEAwmS,EAAAW,EAAA70B,GACA,GACA,GAAAA,EAAA/1N,cAGAm1N,EAAAy1B,EAAA70B,IACAg0B,EAAA50B,EAAA80B,IAAA,CASA,GANA5xS,EAAAnO,OAAA,GAAAwgT,EAAAv1B,EAAAzvB,GAAAjyP,KAAA4E,KACAm2B,IAEA2mP,EAAAn9J,GAAAm9J,GACAA,EAAAxpP,SAAAoqP,EACAZ,EAAA3mP,OACA2tP,EAAAhH,GACA,OAAA98Q,EAEAA,EAAA3G,KAAAyjR,UACOY,EAAAwH,EAAAxH,IACP,OAAA19Q,GAEAwyS,GAAA,SAAAV,GACA,gBAAAh1B,GACA,OAAA+0B,GAAAC,EAAAh1B,KAGA21B,GAAA,SAAAX,GACA,gBAAAh1B,GACA,OAAAi1B,GAAAD,EAAAh1B,KAIA41B,GAAAz+G,GAAAjjD,uBACA2hK,GAAA9uB,GACA+uB,GAAA,SAAA91B,EAAAvwL,GACA,OAAA9qE,KAAAgkB,IAAAq3O,EAAA/sP,KAAAw8D,IAEAsmN,GAAA,SAAA/1B,EAAAvwL,GACA,OAAA9qE,KAAAgkB,IAAAq3O,EAAAprP,MAAA66D,IAEAumN,GAAA,SAAAvmN,EAAAuwL,GACA,OAAAvwL,GAAAuwL,EAAA/sP,MAAAw8D,GAAAuwL,EAAAprP,OAEAqhR,GAAA,SAAAz1B,EAAA/wL,GACA,OAAA8gK,GAAAH,OAAAowB,EAAA,SAAA01B,EAAAl2B,GACA,IAAAm2B,EAAAC,EAGA,OAFAD,EAAAxxR,KAAAmlB,IAAAgsQ,GAAAI,EAAAzmN,GAAAsmN,GAAAG,EAAAzmN,IACA2mN,EAAAzxR,KAAAmlB,IAAAgsQ,GAAA91B,EAAAvwL,GAAAsmN,GAAA/1B,EAAAvwL,IACAumN,GAAAvmN,EAAAuwL,GACAA,EAEAg2B,GAAAvmN,EAAAymN,GACAA,EAEAE,IAAAD,GAAAP,GAAA51B,EAAA1xQ,MACA0xQ,EAEAo2B,EAAAD,EACAn2B,EAEAk2B,KAGAG,GAAA,SAAAh0Q,EAAAgL,EAAA25O,EAAA14Q,GACA,MAAAA,EAAAunS,GAAAvnS,EAAA+zB,EAAAi8O,GAAAjxO,GACA,GAAA25O,EAAA14Q,GACA,QAIAgoS,GAAA,SAAAjpQ,EAAAkpQ,GACA,IAAA/1B,EAAA,GACAl4B,EAAA,SAAAkuD,EAAAloS,GACA,IAAAmoS,EAKA,OAJAA,EAAAj9S,EAAAguC,GAAA,CAAAl5B,IAAA,SAAA0xQ,GACA,OAAAw2B,EAAAx2B,EAAAu2B,KAEA/1B,IAAA9qR,OAAA+gT,GACA,IAAAA,EAAA1hT,QAKA,OAHAyrR,EAAAjkR,KAAAg6S,GACAF,GAAAhH,GAAA8F,GAAA9nQ,EAAAh4C,EAAAizP,EAAA5wE,IAAA6+H,EAAAjoS,MACA+nS,GAAAhH,GAAAgG,KAAAhoQ,EAAAh4C,EAAAizP,EAAA3wE,IAAA4+H,EAAAjoS,MACAkyQ,GAEAk2B,GAAA,SAAArpQ,GACA,OAAA7zC,EAAA+E,EAAA8uC,EAAAskN,qBAAA,MAAA00B,KAEAswB,GAAA,SAAA32B,EAAAvwL,GACA,OACAnhF,KAAA0xQ,EAAA1xQ,KACAyS,OAAA+0R,GAAA91B,EAAAvwL,GAAAsmN,GAAA/1B,EAAAvwL,KAGAmnN,GAAA,SAAAvpQ,EAAAoiD,EAAAC,GACA,IAAAmnN,EACAC,EAAAtvQ,GAAAkvQ,GAAArpQ,IACA0pQ,EAAAv9S,EAAAs9S,EAAA,SAAA3gR,GACA,OAAAu5D,GAAAv5D,EAAAjD,KAAAw8D,GAAAv5D,EAAAtB,SAGA,OADAgiR,EAAAZ,GAAAc,EAAAtnN,GACAonN,IACAA,EAAAZ,GAAAK,GAAAjpQ,EAAAwpQ,GAAApnN,GACAonN,GAAAxwB,GAAAwwB,EAAAvoS,OACAqoS,GAAAE,EAAApnN,GAGA,MAGAunN,GAAA,SAAAvnN,EAAAC,EAAA9yF,GACA,GAAAA,EAAAqrC,UACA,SAEA,GAAAunN,GAAA18O,QAAAzB,QAAAzU,EAAA+qC,cAAA/qC,EAAAirC,UAAA,GAAAjrC,EAAAwpC,iBAAAxpC,EAAAgrC,aAAA,CACA,IAAA+mC,EAAA/xE,EAAAwpC,eAAAl4B,WAAAtR,EAAA+qC,aACA,GAAAwvJ,GAAA36K,UAAAmyD,GACA,OAAAr1E,EAAAq1E,EAAAnnC,iBAAA,SAAArR,GACA,OAAAyoP,GAAAzoP,EAAAs5D,EAAAC,KAIA,OAAAp2F,EAAAsD,EAAA4qC,iBAAA,SAAArR,GACA,OAAAyoP,GAAAzoP,EAAAs5D,EAAAC,MAGAunN,GAAA,CAAsBD,oBAEtBE,GAAA,SAAAvoO,GACA,IAAA/gE,EAAAu0I,EAAA1uH,EAAAusP,EAKA,OAJAA,EAAArxM,EAAAl8C,wBACA7kB,EAAA+gE,EAAA/xD,cACAulI,EAAAv0I,EAAAwS,gBACAqT,EAAA7lB,EAAAyS,YACA,CACA6S,IAAA8sP,EAAA9sP,IAAAO,EAAAI,YAAAsuH,EAAAnuH,UACAf,KAAA+sP,EAAA/sP,KAAAQ,EAAAM,YAAAouH,EAAAluH,aAGAkjR,GAAA,SAAArsO,GACA,OAAAA,EAAAytB,OAAA2+M,GAAApsO,EAAAhuD,WAAA,CACAmW,KAAA,EACAC,IAAA,IAGAkkR,GAAA,SAAAtsO,GACA,IAAAjuD,EAAAiuD,EAAAhuD,UACA,OAAAguD,EAAAytB,OAAA,CACAtlE,KAAApW,EAAAiX,WACAZ,IAAArW,EAAA+W,WACO,CACPX,KAAA,EACAC,IAAA,IAGAmkR,GAAA,SAAAvsO,GACA,IAAAjuD,EAAAiuD,EAAAhuD,UAAAlO,EAAAk8D,EAAA0D,SAAApuD,gBACAk3R,EAAA,CACArkR,KAAApW,EAAAiX,WACAZ,IAAArW,EAAA+W,WAEA2jR,EAAA,CACAtkR,KAAApW,EAAAiX,YAAAllB,EAAAklB,WACAZ,IAAArW,EAAA+W,WAAAhlB,EAAAglB,WAEA,OAAAk3C,EAAAytB,OAAA++M,EAAAC,GAEAC,GAAA,SAAA1sO,EAAA9yD,GACA,GAAAA,EAAA7X,OAAAyc,gBAAAkuD,EAAA0D,SAAA,CACA,IAAAipO,EAAAP,GAAApsO,EAAAu+E,2BACAquJ,EAAAL,GAAAvsO,GACA,OACA73C,KAAAjb,EAAAo0J,MAAAqrI,EAAAxkR,KAAAykR,EAAAzkR,KACAC,IAAAlb,EAAAq0J,MAAAorI,EAAAvkR,IAAAwkR,EAAAxkR,KAGA,OACAD,KAAAjb,EAAAo0J,MACAl5I,IAAAlb,EAAAq0J,QAGAsrI,GAAA,SAAAC,EAAAF,EAAAG,GACA,OACAzrI,MAAAyrI,EAAA5kR,KAAA2kR,EAAA3kR,KAAAykR,EAAAzkR,KACAo5I,MAAAwrI,EAAA3kR,IAAA0kR,EAAA1kR,IAAAwkR,EAAAxkR,MAGA4kR,GAAA,SAAAhtO,EAAA9yD,GACA,OAAA2/R,GAAAR,GAAArsO,GAAAssO,GAAAtsO,GAAA0sO,GAAA1sO,EAAA9yD,KAEA+/R,GAAA,CAAyBD,SAEzBE,GAAA7gH,GAAAjjD,uBAAA+jK,GAAA9gH,GAAAljD,sBACAikK,GAAA,SAAAt6I,EAAAjvF,GACA,OAAAqpO,GAAArpO,QAAAivF,GAEAu6I,GAAA,SAAArtO,EAAA97B,EAAAopQ,GACA,OAAAppQ,IAAAopQ,IAAAttO,EAAAp8D,IAAAwoL,UAAAloJ,EAAAopQ,KAGAJ,GAAAhpQ,IAEAqpQ,GAAA,SAAA1pO,GACA,IAAA2pO,EAAA3pO,EAAA7rD,WAAA,GAEA,OADAw1R,EAAA70R,gBAAA,qBACA60R,GAEAC,GAAA,SAAAztO,EAAA6D,EAAAh6C,EAAAjC,GACA,IAAA8lR,EAAA7pO,EAAA7rD,WAAA,GACAgoD,EAAAp8D,IAAA4lQ,UAAAkkC,EAAA,CACA7jR,QACAjC,WAEAo4C,EAAAp8D,IAAA2vN,UAAAm6E,EAAA,0BACA,IAAAC,EAAA3tO,EAAAp8D,IAAAsuB,OAAA,OACAswK,MAAA,qBACA3T,iBAAA,MACA7wF,aAAA,KACA4vM,gBAAA,UAiBA,OAfA5tO,EAAAp8D,IAAA4lQ,UAAAmkC,EAAA,CACAjiR,SAAA,WACA8lG,QAAA,GACAid,SAAA,SACA0iC,OAAA,EACAuhD,QAAA,EACAvpJ,OAAA,EACAt/C,QACAjC,WAEAo4C,EAAAp8D,IAAA4lQ,UAAAkkC,EAAA,CACAvkO,OAAA,EACAssI,UAAA,eAEAk4F,EAAAj3R,YAAAg3R,GACAC,GAEAE,GAAA,SAAAF,EAAAxW,GACAwW,EAAA97R,aAAAslR,GACAA,EAAAzgR,YAAAi3R,IAGAG,GAAA,SAAAH,EAAAjiR,EAAA7B,EAAAjC,EAAA+V,EAAAmkE,GACA,IAAAisM,EAAA,EAAAl6B,EAAA,EACA85B,EAAA5qR,MAAAoF,KAAAuD,EAAA41I,MAAA,KACAqsI,EAAA5qR,MAAAqF,IAAAsD,EAAA61I,MAAA,KACA71I,EAAA41I,MAAAz3I,EAAA8T,IACAowQ,EAAAriR,EAAA41I,MAAAz3I,EAAA8T,GAEAjS,EAAA61I,MAAA35I,EAAAk6E,IACA+xK,EAAAnoP,EAAA61I,MAAA35I,EAAAk6E,GAEA6rM,EAAA5qR,MAAA8G,QAAAkkR,EAAA,KACAJ,EAAA5qR,MAAA6E,SAAAisP,EAAA,MAEAm6B,GAAA,SAAAnqO,GACAA,KAAAhyD,YACAgyD,EAAAhyD,WAAAsF,YAAA0sD,IAGAoqO,GAAA,SAAA5hT,GACA,WAAAA,EAAAslF,QAEAu8N,GAAA,SAAAtzS,GACA,OAAAA,EAAAgR,SAEAuiS,GAAA,SAAAvzS,EAAA8wB,GACA,OACA41I,MAAA51I,EAAA41I,MAAA1mK,EAAAwzS,KACA7sI,MAAA71I,EAAA61I,MAAA,IAGA/3J,GAAA,SAAA5O,EAAAolE,GACA,gBAAA3zE,GACA,GAAA4hT,GAAA5hT,GAAA,CACA,IAAAgiT,EAAA17S,EAAAqtE,EAAAp8D,IAAAs3E,WAAA7uF,EAAAgJ,QAAA++Q,GAAAjmR,GAAA++S,GAAAC,KAAAt/S,MAAA,MACA,GAAAu/S,GAAAptO,EAAAhuD,UAAAq8R,GAAA,CACA,IAAAC,EAAAtuO,EAAAp8D,IAAA+9J,OAAA0sI,GACAlX,EAAAn3N,EAAAhuD,UACAlO,EAAAk8D,EAAA0D,SAAApuD,gBACA1a,EAAAgR,QAAAyiS,EACAzzS,EAAAw2H,QAAA/kI,EAAA+kI,QACAx2H,EAAAy2H,QAAAhlI,EAAAglI,QACAz2H,EAAA+iC,MAAAqiC,EAAAytB,OAAA0pM,EAAA9mK,YAAAvsH,EAAAogB,aAAA,EACAtpB,EAAAknG,MAAA9hC,EAAAytB,OAAA0pM,EAAA7mK,aAAAxsH,EAAA+jB,cAAA,EACAjtB,EAAAwzS,KAAA/hT,EAAAi1K,MAAAgtI,EAAAhkT,EACAsQ,EAAA2zS,KAAAliT,EAAAk1K,MAAA+sI,EAAAvqS,EACAnJ,EAAAivB,MAAAwkR,EAAAnqR,YACAtpB,EAAAgtB,OAAAymR,EAAAxmR,aACAjtB,EAAA4zS,MAAAf,GAAAztO,EAAAquO,EAAAzzS,EAAAivB,MAAAjvB,EAAAgtB,YAKAw7B,GAAA,SAAAxoD,EAAAolE,GACA,IAAAyuO,EAAArqD,GAAAniL,SAAA,SAAA0iB,EAAAC,GACA5kB,EAAAqyN,oBAAAqc,gBACA1uO,EAAA5kC,UAAAuzQ,aAAAhqN,EAAAC,IACO,GACP,gBAAAv4F,GACA,IAAA82D,EAAAtpC,KAAAyN,IAAAzN,KAAAgkB,IAAAxxC,EAAA+kI,QAAAx2H,EAAAw2H,SAAAv3G,KAAAgkB,IAAAxxC,EAAAglI,QAAAz2H,EAAAy2H,UACA,GAAA68K,GAAAtzS,OAAAg0S,UAAAzrP,EAAA,IACA,IAAAr5D,EAAAk2E,EAAAya,KAAA,aAA+CplF,OAAAuF,EAAAgR,UAC/C,GAAA9hB,EAAAykG,qBACA,OAEA3zF,EAAAg0S,UAAA,EACA5uO,EAAA/wD,QAEA,GAAArU,EAAAg0S,SAAA,CACA,IAAAC,EAAAV,GAAAvzS,EAAAqyS,GAAAD,KAAAhtO,EAAA3zE,IACAwhT,GAAAjzS,EAAA4zS,MAAAxuO,EAAAhuD,WACA87R,GAAAlzS,EAAA4zS,MAAAK,EAAAj0S,EAAAivB,MAAAjvB,EAAAgtB,OAAAhtB,EAAA+iC,KAAA/iC,EAAAknG,MACA2sM,EAAApiT,EAAAs4F,QAAAt4F,EAAAu4F,YAIAkqN,GAAA,SAAA1zQ,GACA,IAAAC,EAAAD,EAAAssQ,SAAA1mQ,WAAA,GACA1F,EAAAD,EAAAC,eACA,WAAAA,EAAAxvB,SAAAwvB,EAAAzpB,WAAAypB,GAEAytI,GAAA,SAAAnuK,EAAAolE,GACA,gBAAA3zE,GACA,GAAAuO,EAAAg0S,UACAvB,GAAArtO,EAAA8uO,GAAA9uO,EAAA5kC,WAAAxgC,EAAAgR,SAAA,CACA,IAAAmjS,EAAAxB,GAAA3yS,EAAAgR,SACA9hB,EAAAk2E,EAAAya,KAAA,QACAu0N,YAAAD,EACApqN,QAAAt4F,EAAAs4F,QACAC,QAAAv4F,EAAAu4F,UAEA96F,EAAAykG,uBACAwgN,EAAAjlT,EAAAklT,YACAhvO,EAAAob,YAAAC,SAAA,WACA2yN,GAAApzS,EAAAgR,SACAo0D,EAAAqnH,cAAArnH,EAAAp8D,IAAA8mQ,aAAAqkC,IACA/uO,EAAAqyN,oBAAAqc,mBAKAO,GAAAr0S,KAGAsX,GAAA,SAAAtX,EAAAolE,GACA,kBACAplE,EAAAg0S,UACA5uO,EAAAya,KAAA,WAEAw0N,GAAAr0S,KAGAq0S,GAAA,SAAAr0S,GACAA,EAAAg0S,UAAA,EACAh0S,EAAAgR,QAAA,KACAoiS,GAAApzS,EAAA4zS,QAEAU,GAAA,SAAAlvO,GACA,IACAmvO,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EADA50S,EAAA,GAEAu0S,EAAArjC,GAAAv4L,IACAi8N,EAAAjmT,EAAAwZ,SACAqsS,EAAA5lS,GAAA5O,EAAAolE,GACAqvO,EAAAjsP,GAAAxoD,EAAAolE,GACAsvO,EAAAvmI,GAAAnuK,EAAAolE,GACAuvO,EAAAr9R,GAAAtX,EAAAolE,GACAA,EAAA/lC,GAAA,YAAAm1Q,GACApvO,EAAA/lC,GAAA,YAAAo1Q,GACArvO,EAAA/lC,GAAA,UAAAq1Q,GACAH,EAAA5gT,KAAAihT,EAAA,YAAAH,GACAF,EAAA5gT,KAAAihT,EAAA,UAAAD,GACAvvO,EAAA/lC,GAAA,oBACAk1Q,EAAAjqN,OAAAsqN,EAAA,YAAAH,GACAF,EAAAjqN,OAAAsqN,EAAA,UAAAD,MAGAE,GAAA,SAAAzvO,GACAA,EAAA/lC,GAAA,gBAAA5tC,GACA,IAAAqjT,EAAA,qBAAArjT,EAAAs4F,QAAA3kB,EAAA0D,SAAA1/D,iBAAA3X,EAAAs4F,QAAAt4F,EAAAu4F,SAAA,MACAsoN,GAAAwC,IAAAxC,GAAAltO,EAAAp8D,IAAAgoQ,yBAAA8jC,MACArjT,EAAAumB,oBAIAkK,GAAA,SAAAkjD,GACAkvO,GAAAlvO,GACAyvO,GAAAzvO,IAEA2vO,GAAA,CAA6B7yR,SAE7B8yR,GAAAvjH,GAAAljD,sBACA0mK,GAAAxjH,GAAAjjD,uBACA0mK,GAAA,SAAAv4Q,EAAAyoC,EAAAx8D,EAAAyS,EAAAwxP,GACA,OAAAznM,EAAAqyN,oBAAAyd,UAAAv4Q,EAAA/zB,EAAAyS,EAAAwxP,IAEAsoC,GAAA,SAAAvsS,GACA,IAAA63B,EAAA73B,EAAAsO,cAAAuqB,cAEA,OADAhB,EAAAoD,WAAAj7B,GACA63B,GAEAoD,GAAA,SAAAuhC,EAAAx8D,GACA,IAAAnX,EAAA2zE,EAAAya,KAAA,wBAAmDplF,OAAAmO,IACnD,OAAAnX,EAAAkiG,qBACA,KAEAwhN,GAAAvsS,IAEAwsS,GAAA,SAAAhwO,EAAAluE,EAAA21Q,GACA,IAAAyV,EAAA1pF,GAAA,EAAAxzH,EAAAhuD,UAAAlgB,GACAgkR,EAAAa,GAAAP,eAAA8G,GACA+yB,EAAAn6B,EAAAryM,UACA,GAAAosO,GAAAI,GACA,OAAAH,GAAA,EAAA9vO,EAAAiwO,GAAAn6B,EAAA9D,WAAA,GAEA,IAAAk+B,EAAAp6B,EAAAryM,SAAA,GACA,GAAAosO,GAAAK,GACA,OAAAJ,GAAA,EAAA9vO,EAAAkwO,GAAA,MAEA,IAAAC,EAAAnwO,EAAAp8D,IAAA4oL,UAAAspF,EAAAryM,UAAA,SAAAjgE,GACA,OAAAqsS,GAAArsS,IAAAosS,GAAApsS,KAEA,OAAAqsS,GAAAM,GACAL,GAAA,EAAA9vO,EAAAmwO,GAAA,EAAA1oC,GAEA,MAEA2oC,GAAA,SAAApwO,EAAAluE,EAAA21Q,GACA,IAAA31Q,MAAAqrC,UACA,OAAArrC,EAEA,IAAAu+S,EAAAL,GAAAhwO,EAAAluE,EAAA21Q,GACA,OAAA4oC,GAGAv+S,GAGAs4J,GAAA,SAAApqF,GACA,IAAAswO,EAAA9wQ,GAAA,WACA,IAAAwgC,EAAA81D,SAAA91D,EAAAhuD,UAAAngB,SAAAtI,EAAAwZ,SAAAkyB,eAAA,CACA,IAAAoG,EAAA2kC,EAAA5kC,UAAAkrC,SACA,GAAAjrC,EAAA8B,UAAA,CACA,IAAAkzQ,EAAAD,GAAApwO,IAAA5kC,UAAAkrC,UAAA,GACAtG,EAAA5kC,UAAA2nI,OAAAstI,MAGO,GACPrwO,EAAA/lC,GAAA,mBACAq2Q,EAAAruO,aAEAjC,EAAA/lC,GAAA,kBACAq2Q,EAAAvuO,YAGAwuO,GAAA,CAAoBz4O,MAAAsyF,IAEpBomJ,GAAAnkH,GAAAljD,sBACAsnK,GAAApkH,GAAAjjD,uBACAsnK,GAAA,SAAA1wO,EAAAx8D,GACA,IAAA++B,EAAAy9B,EAAAhuD,UACA,MAAAxO,OAAA++B,EAAA,CACA,GAAAiuQ,GAAAhtS,IAAAitS,GAAAjtS,GACA,OAAAA,EAEAA,IAAAqO,WAEA,aAEA8+R,GAAA,SAAA3wO,GACA,IAQA4wO,EARAtuO,EAAA,SAAA9+D,GACA,OAAAw8D,EAAAp8D,IAAA0+D,QAAA9+D,IAEA2/D,EAAAnD,EAAAhuD,UACA6+R,EAAA71B,GAAAh7M,EAAAhuD,UAAAswD,EAAA,WACA,OAAAquN,GAAA37P,SAAAgrC,KAEA8wO,EAAA,OAAA9wO,EAAAp8D,IAAA6mQ,WAEAsmC,EAAA,SAAAltO,GACA,OAAA7D,EAAAp8D,IAAA6gM,SAAA5gI,EAAA,4BAEAmtO,EAAA,WACA,IAAAj5R,EAAAioD,EAAAp8D,IAAAxP,IAAA08S,GACA,OAAA/4R,IAAA8uO,qBAAA,QAAA9uO,GAEAk5R,EAAA,SAAAn/S,GACAA,GACAkuE,EAAA5kC,UAAA2nI,OAAAjxK,IAGAo/S,EAAA,WACA,OAAAlxO,EAAA5kC,UAAAkrC,UAEAwpO,EAAA,SAAAv4Q,EAAA/zB,EAAAyS,EAAAwxP,GAIA,IAAAp7Q,EAMA,YATA,IAAAo7Q,IACAA,GAAA,GAGAp7Q,EAAA2zE,EAAAya,KAAA,aACAplF,OAAAmO,EACA+zB,YACAthB,WAEA5pB,EAAAkiG,qBACA,MAEAk5K,GACAznM,EAAA5kC,UAAAqsO,eAAAjkQ,GAAA,IAAA+zB,GAEAs5Q,EAAA3lO,KAAAj1D,EAAAzS,KAEA2tS,EAAA,SAAAC,GACAA,EAAA34R,aAAA,oBACA85P,GAAA6+B,GACAH,EAAAC,KACAlxO,EAAA5kC,UAAAqsO,eAAA2pC,EAAA,MAGAz8F,EAAA,WACA30I,EAAA/lC,GAAA,mBAAA5tC,GACA,IAAAyF,EAAAo/S,IACAp/S,EAAAqrC,WAAAs6P,GAAAL,kBAAAp3N,EAAA3zE,EAAAs4F,QAAAt4F,EAAAu4F,UACAqsN,EAAAjB,GAAAhwO,EAAAluE,GAAA,MAGAkuE,EAAA/lC,GAAA,iBAAA5tC,GACA,IAAAglT,EACAA,EAAAX,GAAA1wO,EAAA3zE,EAAAgJ,QACAg8S,IACAZ,GAAAY,KACAhlT,EAAAumB,iBACAotD,EAAA/wD,SAEAuhS,GAAAa,IACArxO,EAAAp8D,IAAAwoL,UAAAilH,EAAArxO,EAAA5kC,UAAAqoC,YACA6tO,OAKAtxO,EAAA/lC,GAAA,2BACAq3Q,MAEAtxO,EAAA/lC,GAAA,iDACA,OAAA42Q,EAAAr5Q,eAEA,IAAA+5Q,EAAA,SAAAvxO,GACA,IAAAgnK,GAAA,EACAhnK,EAAA/lC,GAAA,wBACA+sM,GAAA,IAEAhnK,EAAA/lC,GAAA,uBACA+sM,GAAA,IAEAhnK,EAAA/lC,GAAA,oBAAA5tC,GACA,IAAA26O,EAAA,CACA,IAAAqqE,EAAAX,GAAA1wO,EAAA3zE,EAAAgJ,QACAo7S,GAAAY,KACAhlT,EAAAumB,iBACA4+R,EAAA/yQ,GAAAuhC,EAAAqxO,QAGW,IAEXI,EAAA,SAAA5tO,GACA,IAAA6mO,EAAAlsB,GAAA36M,GACA,IAAAA,EAAA9tD,WACA,SAEA,IAAAuoQ,EAAA3H,GAAA1gQ,OAAA4tD,EAAA9tD,YACA27R,EAAAhH,EAAAtqS,KAAAk+Q,GACA,OAAAozB,IAAAlI,GAAAkI,KAAAjI,GAAAiI,IAEAt1B,EAAA,SAAAO,EAAAC,GACA,IAAA+0B,EAAA3xO,EAAAp8D,IAAA4oL,UAAAmwF,EAAA38M,EAAAp8D,IAAA0+D,SACAsvO,EAAA5xO,EAAAp8D,IAAA4oL,UAAAowF,EAAA58M,EAAAp8D,IAAA0+D,SACA,OAAAqvO,IAAAC,GAEAC,EAAA,SAAA/1I,EAAAg2I,GACA,IAAAC,EAAA/xO,EAAAp8D,IAAA4oL,UAAA1wB,EAAA97F,EAAAp8D,IAAA0+D,SACA0vO,EAAAhyO,EAAAp8D,IAAA4oL,UAAAslH,EAAA9xO,EAAAp8D,IAAA0+D,SACA,SAAAyvO,IAAA/xO,EAAAp8D,IAAAwoL,UAAA2lH,EAAAC,KAAA,IAAAvB,GAAAC,GAAA1wO,EAAA+xO,MAGAA,IAAA31B,EAAA21B,EAAAC,IAAAP,EAAAM,IAEAR,EAAAvxO,GACAA,EAAA/lC,GAAA,qBAAA5tC,GACA,IAAAglT,EACA3zI,EAAArxK,EAAAgJ,OACA,IAAAqoK,IAAAv6F,GAAA,SAAAu6F,EAAAlsJ,UAAAwuD,EAAAp8D,IAAAwoL,UAAA1uB,EAAAv6F,MAGA,IAAAs0N,GAAAL,kBAAAp3N,EAAA3zE,EAAAs4F,QAAAt4F,EAAAu4F,SAIA,GADAysN,EAAAX,GAAA1wO,EAAA09F,GACA2zI,EACAZ,GAAAY,IACAhlT,EAAAumB,iBACA4+R,EAAA/yQ,GAAAuhC,EAAAqxO,MAEAC,IACAd,GAAAa,IAAAhlT,EAAAwxD,UAAAsuP,GAAAD,gBAAA7/S,EAAAs4F,QAAAt4F,EAAAu4F,QAAA5kB,EAAA5kC,UAAAkrC,YACAooO,IACA1uO,EAAA5kC,UAAAuzQ,aAAAtiT,EAAAs4F,QAAAt4F,EAAAu4F,gBAGW,QAAA22L,GAAA79G,GAAA,CACX4zI,IACA5C,IACA,IAAA7C,EAAAC,GAAA3oO,EAAA92E,EAAAs4F,QAAAt4F,EAAAu4F,SACA,GAAAinN,IACAgG,EAAAxlT,EAAAgJ,OAAAw2S,EAAAroS,MAAA,CACAnX,EAAAumB,iBACA,IAAA9gB,EAAAg+S,EAAA,EAAAjE,EAAAroS,KAAAqoS,EAAA51R,QAAA,GACA+pD,EAAAhuD,UAAA/C,QACAgiS,EAAAn/S,OAKAkuE,EAAA/lC,GAAA,oBAAA5tC,GACA,IAAA87S,GAAAG,gBAAAj8S,GAGA,OAAAA,EAAAgnI,SACA,QACAo9K,GAAAzwO,EAAA5kC,UAAAqoC,YACAp3E,EAAAumB,iBAEA,SAGAotD,EAAA/lC,GAAA,6BAAA5tC,GACA,IAAAgvC,EAAAhvC,EAAAyF,MACA,GAAA8+S,EAAA,CACA,IAAAA,EAAA/+R,WAEA,YADA++R,EAAA,MAGAv1Q,IAAAupC,aACAvpC,EAAAoD,WAAAmyQ,GACAvkT,EAAAyF,MAAAupC,KAGA2kC,EAAA/lC,GAAA,6BAAA5tC,GACAA,EAAAyF,MAAAmgT,EAAA5lT,EAAAyF,OACA,IAAAupC,EAAAm2Q,EAAAnlT,EAAAyF,MAAAzF,EAAA0zO,SACA1kM,IACAhvC,EAAAyF,MAAAupC,KAGA,IAAA62Q,EAAA,SAAA1uS,GACA,sBAAAA,EAAAhW,IAEAwyE,EAAA/lC,GAAA,kCAAA5tC,GACA,IAAAgvC,EAAAhvC,EAAAyF,MACAqgT,EAAA92Q,IAAA62Q,EAAA72Q,EAAAC,eAAAzpB,aACA68R,IAEAqC,EAAA11Q,EAAAC,eAAAzpB,aACAy/R,MAGAtxO,EAAA/lC,GAAA,gBAAA5tC,GACA,IAAA+lT,EAAA/lT,EAAA+lT,cACA,IAAA/lT,EAAAkiG,sBAAAliG,EAAA+lT,gBAAA1tD,GAAA/+O,GAAA,CACA,IAAA0sS,EAAArB,IACAqB,IACAhmT,EAAAumB,iBACAw/R,EAAAE,YACAF,EAAA/uH,QAAA,YAAAgvH,EAAAt0G,WACAq0G,EAAA/uH,QAAA,aAAAgvH,EAAAE,eAIA5C,GAAA7yR,KAAAkjD,GACAuwO,GAAAz4O,MAAAkI,IAEAwyO,EAAA,SAAAhvS,GACA,OAAA8tQ,GAAA9tQ,IAAAouQ,GAAApuQ,IAAAkuQ,GAAAluQ,IAEA2uS,EAAA,SAAA92Q,GACA,OAAAm3Q,EAAAn3Q,EAAAC,iBAAAk3Q,EAAAn3Q,EAAAyB,eAEAm1Q,EAAA,SAAA52Q,GACA,IAAA8qP,EAAAnmN,EAAAjiE,OAAA+1P,wBACA0hB,EAAAx1M,EAAAp8D,IAAAmhE,YACAzpC,EAAAD,EAAAC,eACAuB,EAAAxB,EAAAwB,YACAC,EAAAzB,EAAAyB,aACAC,EAAA1B,EAAA0B,UAmBA,OAlBAzoC,GAAA6xR,EAAA7qP,EAAA9pB,SAAAlM,eACA,IAAAu3B,EACA24O,EAAA15O,eAAAR,GAEAk6O,EAAAz5O,cAAAT,GAGAk6O,EAAA35O,SAAAP,EAAAuB,GAEAvoC,GAAA6xR,EAAArpP,EAAAtrB,SAAAlM,eACA,IAAAy3B,EACAy4O,EAAAv5O,aAAAa,GAEA04O,EAAAr5O,YAAAW,GAGA04O,EAAAt5O,OAAAY,EAAAC,GAEAy4O,GAEAg8B,EAAA,SAAA1/S,EAAAiuO,GACA,IAAAv8N,EAGAivS,EAAAhxQ,EAAAnG,EAAAuB,EAAAE,EAAA1wC,EAAAypR,EAAAk5B,EAAA0D,EAFAt6G,EAAAp4H,EAAAo4H,EACAx0L,EAAAo8D,EAAAp8D,IAEA,IAAA9R,EACA,YAEA,GAAAA,EAAAqrC,UAAA,CACA,IAAAg1Q,EAAArgT,GACA,QAAAiuO,EAAA,CAEA,GADA+1C,EAAAmH,IAAA,EAAA95M,EAAArxE,GACAypR,GAAAzF,EAAAryM,SAAA,IACA,OAAAqsO,GAAA,EAAAh6B,EAAAryM,SAAA,UAEA,GAAA83M,GAAAzF,EAAAryM,WACA,OAAAqsO,GAAA,EAAAh6B,EAAAryM,WAAAqyM,EAAA9D,WAAA,OAEa,CAEb,GADA8D,EAAAmH,GAAA,EAAA95M,EAAArxE,GACAypR,GAAAzF,EAAAryM,WACA,OAAAqsO,EAAA,EAAAh6B,EAAAryM,WAAAqyM,EAAA9D,WAAA,GAEA,GAAAuJ,GAAAzF,EAAAryM,SAAA,IACA,OAAAqsO,EAAA,EAAAh6B,EAAAryM,SAAA,UAIA,YAUA,GARAnoC,EAAAxpC,EAAAwpC,eACAuB,EAAA/qC,EAAA+qC,YACAE,EAAAjrC,EAAAirC,UACA,IAAAzB,EAAAxvB,UAAA,IAAA+wB,GAAA4zQ,GAAAn1Q,EAAAzpB,cACAypB,IAAAzpB,WACAgrB,EAAAj5B,EAAA+wL,UAAAr5J,GACAA,IAAAzpB,YAEA,IAAAypB,EAAAxvB,SACA,YAKA,GAHAixB,IAAAF,EAAA,GAAAvB,IAAAxpC,EAAAgrC,eACAt5B,EAAA83B,EAAAl4B,WAAAy5B,KAEA4zQ,GAAAjtS,GACA,YAOA,GALAwrS,EAAA0D,EAAAlvS,EAAAwU,WAAA,GACA3rB,EAAA2zE,EAAAya,KAAA,kBACAplF,OAAAmO,EACAwrS,gBAEA3iT,EAAAkiG,qBACA,YAEAkkN,EAAApgS,GAAApO,GAAAZ,QAAA28D,EAAAhuD,WAAA,IAAA8+R,GAAApjT,KAAA,WACA,OAAA0qM,EAAA,KACS,SAAAv0H,GACT,OAAAu0H,EAAA,CAAAv0H,EAAAjgE,UAEAorS,EAAA3iT,EAAA2iT,YACA,IAAAyD,EAAAxoT,SACAwoT,EAAAr6G,EAAA,oEAAAr2K,KAAA,KAAA+uR,GACA2B,EAAAhhL,SAAAzxD,EAAAhuD,YAEAlgB,EAAAkuE,EAAAp8D,IAAAmhE,YACAiqO,IAAA0D,GAAAhuD,GAAA/+O,IACA8sS,EAAA17R,QAAAR,OAAA,sDAAAA,OAAAy4R,GACAl9S,EAAAiqC,cAAA02Q,EAAA,GAAA18R,uBACAjkB,EAAAqqC,YAAA6yQ,KAEAyD,EAAA17R,QAAAR,OAAA,KAAAA,OAAAy4R,GAAAz4R,OAAA,KACAzkB,EAAA+pC,SAAA42Q,EAAA,GAAA18R,WAAA,GACAjkB,EAAAoqC,OAAAu2Q,EAAA,GAAA7nH,UAAA,IAEA6nH,EAAAjvR,IAAA,CAAqC4E,IAAAxkB,EAAA+9J,OAAAn+J,EAAAw8D,EAAAhuD,WAAAjO,IACrC0uS,EAAA,GAAAxjS,QACAwyB,EAAAu+B,EAAA5kC,UAAAssQ,SACAjmQ,EAAA09L,kBACA19L,EAAA29L,SAAAttO,GACA,IAAA6gT,EAAA1uS,GAAAZ,QAAAG,GAWA,OAVAlV,EAAA+6E,GAAAplE,GAAAZ,QAAA28D,EAAAhuD,WAAA,iCAAA6xD,GACAz2E,GAAAulT,EAAA9uO,IACA3sD,GAAA2sD,EAAA,uBAGA7D,EAAAp8D,IAAA+3L,UAAAn4L,EAAA,sBACAA,EAAA0U,aAAA,yBAEA04R,EAAAptS,EACAkrS,IACA58S,GAEAw/S,EAAA,WACAV,IACAA,EAAAj4R,gBAAA,qBACAtG,GAAApO,GAAAZ,QAAA28D,EAAAhuD,WAAA,IAAA8+R,GAAAxiT,KAAAoqB,IACAk4R,EAAA,MAEAv+R,GAAApO,GAAAZ,QAAA28D,EAAAhuD,WAAA,IAAA8+R,GAAAxiT,KAAAoqB,IACAk4R,EAAA,MAEA5lN,EAAA,WACA6lN,EAAA7lN,UACA4lN,EAAA,MAEAlC,EAAA,WACAmC,EAAAt0O,QAKA,OAHAmoL,GAAAjhD,SACAkR,IAEA,CACAm7F,YACAqB,0BACAzC,gBACA1jN,YAIA4nN,GAAA,EAAAC,GAAA,EAAAr5G,GAAA,EACAphH,GAAA,SAAAjwD,EAAA2B,GACA,IAAA53B,EAAAi2B,EAAAl+B,OAAA6/B,EAAA7/B,OAAA,EACA6oT,EAAA,IAAAlmT,MAAAsF,GACA6gT,EAAA,IAAAnmT,MAAAsF,GACA8gT,EAAA,SAAAxpS,EAAAywG,EAAAg5L,GACA,OACAzpS,QACAywG,MACAg5L,SAGAC,EAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAvkD,GACA,IAAA1+N,EAAAkjR,EAAAJ,EAAAC,EAAAC,EAAAC,GACA,UAAAjjR,KAAA7mB,QAAA4pS,GAAA/iR,EAAA4iR,OAAAG,EAAAE,GAAAjjR,EAAA4pF,MAAAk5L,GAAA9iR,EAAA4iR,OAAAE,EAAAE,EAAA,CACA,IAAAxnT,EAAAsnT,EACApmT,EAAAsmT,EACA,MAAAxnT,EAAAunT,GAAArmT,EAAAumT,EACAznT,EAAAunT,GAAArmT,EAAAumT,GAAAnrR,EAAAt8B,KAAAi+B,EAAA/8B,IACAgiQ,EAAAt9P,KAAA,CACAmhT,GACAzqR,EAAAt8B,OAEAA,IACAkB,GAEAqmT,EAAAD,EAAAG,EAAAD,GACAtkD,EAAAt9P,KAAA,CACA+nM,GACArxK,EAAAt8B,OAEAA,IAEAkjQ,EAAAt9P,KAAA,CACAohT,GACA/oR,EAAA/8B,OAEAA,OAIS,CACTmmT,EAAAC,EAAA9iR,EAAA7mB,MAAA6pS,EAAAhjR,EAAA7mB,MAAA6mB,EAAA4iR,KAAAlkD,GACA,QAAAykD,EAAAnjR,EAAA7mB,MAAqCgqS,EAAAnjR,EAAA4pF,MAAiBu5L,EACtDzkD,EAAAt9P,KAAA,CACAmhT,GACAzqR,EAAAqrR,KAGAN,EAAA7iR,EAAA4pF,IAAAm5L,EAAA/iR,EAAA4pF,IAAA5pF,EAAA4iR,KAAAK,EAAAvkD,KAGA0kD,EAAA,SAAAjqS,EAAAypS,EAAAG,EAAAE,GACA,IAAAr5L,EAAAzwG,EACA,MAAAywG,EAAAg5L,EAAAK,GAAAr5L,EAAAm5L,GAAAjrR,EAAA8xF,KAAAnwF,EAAAmwF,EAAAg5L,KACAh5L,EAEA,OAAA+4L,EAAAxpS,EAAAywG,EAAAg5L,IAEAM,EAAA,SAAAJ,EAAAC,EAAAC,EAAAC,GACA,IAAAv9N,EAAAq9N,EAAAD,EACArnT,EAAAwnT,EAAAD,EACA,OAAAt9N,GAAA,IAAAjqF,EACA,YAEA,IAKAmpB,EAAApoB,EAAAhB,EAAAvB,EAAAyZ,EALA0hC,EAAAswC,EAAAjqF,EACAm2C,EAAAn2C,EAAAiqF,EACA7qD,GAAA+W,EAAA,MAAAA,IAAA,KAIA,IAHA6wQ,EAAA,EAAA5nR,GAAAioR,EACAJ,EAAA,EAAA7nR,GAAAkoR,EAAA,EAEAn+R,EAAA,EAAmBA,GAAAiW,IAAajW,EAAA,CAChC,IAAApoB,GAAAooB,EAAsBpoB,GAAAooB,EAAQpoB,GAAA,GAC9BhB,EAAAgB,EAAAq+B,EACAr+B,KAAAooB,GAAApoB,IAAAooB,GAAA69R,EAAAjnT,EAAA,GAAAinT,EAAAjnT,EAAA,GACAinT,EAAAjnT,GAAAinT,EAAAjnT,EAAA,GAEAinT,EAAAjnT,GAAAinT,EAAAjnT,EAAA,KAEAvB,EAAAwoT,EAAAjnT,GACAkY,EAAAzZ,EAAA6oT,EAAAE,EAAAxmT,EACA,MAAAvC,EAAA8oT,GAAArvS,EAAAuvS,GAAAnrR,EAAA79B,KAAAw/B,EAAA/lB,GACA+uS,EAAAjnT,KAAAvB,IACAyZ,EAEA,GAAA0hC,EAAA,OAAAA,EAAAxwB,GAAApoB,MAAA44C,EAAAxwB,GACA89R,EAAAlnT,EAAA45C,IAAAqtQ,EAAAjnT,GACA,OAAA4nT,EAAAV,EAAAlnT,EAAA45C,GAAA54C,EAAAsmT,EAAAE,EAAAD,EAAAE,GAIA,IAAAzmT,EAAA44C,EAAAxwB,EAA6BpoB,GAAA44C,EAAAxwB,EAAgBpoB,GAAA,GAC7ChB,EAAAgB,EAAAq+B,EAAAua,EACA54C,IAAA44C,EAAAxwB,GAAApoB,IAAA44C,EAAAxwB,GAAA89R,EAAAlnT,EAAA,IAAAknT,EAAAlnT,EAAA,GACAknT,EAAAlnT,GAAAknT,EAAAlnT,EAAA,KAEAknT,EAAAlnT,GAAAknT,EAAAlnT,EAAA,GAEAvB,EAAAyoT,EAAAlnT,GAAA,EACAkY,EAAAzZ,EAAA6oT,EAAAE,EAAAxmT,EACA,MAAAvC,GAAA6oT,GAAApvS,GAAAsvS,GAAAlrR,EAAA79B,KAAAw/B,EAAA/lB,GACAgvS,EAAAlnT,GAAAvB,IACAyZ,IAEA,GAAA0hC,EAAA,QAAAxwB,GAAApoB,MAAAooB,GACA89R,EAAAlnT,IAAAinT,EAAAjnT,EAAA45C,GACA,OAAAguQ,EAAAV,EAAAlnT,GAAAgB,EAAAsmT,EAAAE,EAAAD,EAAAE,MAMAvkD,EAAA,GAEA,OADAmkD,EAAA,EAAA/qR,EAAAl+B,OAAA,EAAA6/B,EAAA7/B,OAAA8kQ,GACAA,GAEA2kD,GAAA,CACAd,QACAp5G,UACAq5G,UACAz6N,SAGAu7N,GAAA,SAAA9vO,GACA,OAAAwoH,GAAA36K,UAAAmyD,GACAA,EAAAk6H,UACO1R,GAAA16K,OAAAkyD,GACPgqL,GAAAb,UAAAnpL,EAAA7yD,MAAA,GACOq7K,GAAA6Y,UAAArhI,GACP,UAAAA,EAAA7yD,KAAA,SAEA,IAEA4iS,GAAA,SAAAhxS,GACA,IAAA0hQ,EAAA9gQ,EAAAuU,EACAA,EAAAxuB,EAAAwZ,SAAAE,cAAA,OACAqhQ,EAAA/6Q,EAAAwZ,SAAA6U,yBACAhV,IACAmV,EAAA7U,UAAAN,GAEA,MAAAY,EAAAuU,EAAAhC,WACAuuP,EAAA5tP,YAAAlT,GAEA,OAAA8gQ,GAEAuvC,GAAA,SAAAhwO,EAAAjhE,EAAAiT,GACA,IAAA8B,EAAAi8R,GAAAhxS,GACA,GAAAihE,EAAA1gE,iBAAA0S,EAAAguD,EAAAzgE,WAAAnZ,OAAA,CACA,IAAAoL,EAAAwuE,EAAAzgE,WAAAyS,GACAxgB,EAAAwc,WAAAuE,aAAAuB,EAAAtiB,QAEAwuE,EAAAntD,YAAAiB,IAGAm8R,GAAA,SAAAjwO,EAAAhuD,GACA,GAAAguD,EAAA1gE,iBAAA0S,EAAAguD,EAAAzgE,WAAAnZ,OAAA,CACA,IAAAoL,EAAAwuE,EAAAzgE,WAAAyS,GACAxgB,EAAAwc,WAAAsF,YAAA9hB,KAGA0+S,GAAA,SAAA37N,EAAAvU,GACA,IAAAhuD,EAAA,EACAvnB,EAAA8pF,EAAA,SAAArlE,GACAA,EAAA,KAAA2gS,GAAAd,KACA/8R,IACS9C,EAAA,KAAA2gS,GAAAb,QACTgB,GAAAhwO,EAAA9wD,EAAA,GAAA8C,GACAA,KACS9C,EAAA,KAAA2gS,GAAAl6G,QACTs6G,GAAAjwO,EAAAhuD,MAIAyE,GAAA,SAAAupD,GACA,OAAAn1E,EAAAL,EAAAoF,EAAAowE,EAAAzgE,YAAAuwS,IAAA,SAAAnuR,GACA,OAAAA,EAAAv7B,OAAA,KAGAiwB,GAAA,SAAAgrR,EAAArhO,GACA,IAAAmwO,EAAA3lT,EAAAoF,EAAAowE,EAAAzgE,YAAAuwS,IAEA,OADAI,GAAAL,GAAAt7N,KAAA47N,EAAA9O,GAAArhO,GACAA,GAEAowO,GAAA,CACAxmS,KAAA6M,GACAJ,UAGAg6R,GAAA3xS,GAAAhT,EAAArC,QACAinT,GAAA,WACA,OAAAD,GAAA9/S,MAAAtG,WAAA,WACA,IAAAgV,EAAAvZ,EAAAwZ,SAAAqxS,eAAAC,mBAAA,QAEA,OADAH,GAAAzxS,IAAAlT,EAAAP,KAAA8T,IACAA,KAGAwxS,GAAA,SAAA1xS,GACA,WAAAA,EAAAtW,QAAA,cAEAioT,GAAA,SAAArP,GACA,OACAv0S,KAAA,aACAu0S,YACA1tR,QAAA,GACAu8K,SAAA,KACAygH,eAAA,OAGAC,GAAA,SAAAj9R,GACA,OACA7mB,KAAA,WACAu0S,UAAA,KACA1tR,UACAu8K,SAAA,KACAygH,eAAA,OAGAE,GAAA,SAAA10O,GACA,IAAAklO,EAAA1tR,EAAAm9R,EAOA,OANAzP,EAAA+O,GAAAxmS,KAAAuyD,EAAAhuD,WACA2iS,EAAApmT,EAAA22S,EAAA,SAAAtiS,GACA,IAAAgyS,EAAA1rB,GAAAL,aAAA7oN,EAAAsgI,WAAA19L,GACA,OAAAgyS,EAAA3qT,OAAA,GAAA2qT,GAAA,KAEAp9R,EAAAm9R,EAAAz/S,KAAA,IACAo/S,GAAA98R,GAAA+8R,GAAAI,GAAAF,GAAAj9R,IAEAq9R,GAAA,SAAA70O,EAAAP,EAAAxpD,GACA,eAAAwpD,EAAA9uE,KACAsjT,GAAA/5R,MAAAulD,EAAAylO,UAAAllO,EAAAhuD,WAEAguD,EAAA5yB,WAAAqyB,EAAAjoD,QAAA,CAA0CyjE,OAAA,QAE1Cjb,EAAA5kC,UAAA64J,eAAAh+K,EAAAwpD,EAAA+0O,eAAA/0O,EAAAs0H,WAEA+gH,GAAA,SAAAr1O,GACA,qBAAAA,EAAA9uE,KAAA8uE,EAAAylO,UAAAhwS,KAAA,IAAAuqE,EAAAjoD,SAEAu9R,GAAA,SAAAt1O,GACA,IAAAoE,EAAA5/D,GAAAX,QAAA,OAAA6wS,MAGA,OAFAh8R,GAAA0rD,EAAAixO,GAAAr1O,IACAnxE,EAAA+6E,GAAAxF,EAAA,qBAAAzsD,IACA+M,GAAA0/C,IAEAmxO,GAAA,SAAAC,EAAAC,GACA,OAAAJ,GAAAG,KAAAH,GAAAI,IAEAC,GAAA,SAAAF,EAAAC,GACA,OAAAH,GAAAE,KAAAF,GAAAG,IAEAE,GAAA,SAAAH,EAAAC,GACA,SAAAD,IAAAC,OAEOF,GAAAC,EAAAC,IAGPC,GAAAF,EAAAC,KAGAG,GAAA,CACAd,yBACAE,uBACAC,oBACAG,iBACAnzB,KAAA0zB,IAGAE,GAAA,SAAAC,GACA,WAAAA,EAAAnhT,OAGAohT,GAAA,SAAAp6N,EAAAq6N,EAAAF,GACAD,GAAAC,KACAn6N,EAAAq6N,WAGAC,GAAA,SAAAt6N,EAAAm6N,GACAn6N,EAAAq6N,SACAD,GAAAp6N,GAAA,EAAAm6N,GACAn6N,EAAAp5D,QAGA2zR,GAAA,SAAAv6N,GACAA,EAAAq6N,SACAr6N,EAAAq6N,QAAA,EACAr6N,EAAAp5D,QAIA4zR,GAAA,SAAA51O,EAAAu1O,EAAAf,GACAc,GAAAC,IACAf,EAAA/xS,IAAAlT,EAAAP,KAAAkqR,GAAAC,gBAAAn5M,EAAA5kC,cAGAy6Q,GAAA,SAAA71O,EAAAob,EAAAvlE,EAAA0/R,EAAAf,EAAA/0O,EAAAvyD,GACA,IAAA2zD,EAAAb,EAAAa,SACAi1O,EAAAT,GAAAX,iBAAA10O,GAGA,GAFAP,KAAA,GACAA,EAAAn0E,GAAAuoI,OAAAp0D,EAAAq2O,IACA,IAAAR,GAAAC,IAAAv1O,EAAA81D,QACA,YAEA,IAAAigL,EAAA36N,EAAApqE,KAAA6E,EAAAzhB,OACA,GAAA4rE,EAAAya,KAAA,iBACAhb,QACAs2O,YACAz9C,cAAAprP,IACSqhF,qBACT,YAEA,GAAAwnN,GAAAV,GAAA3zB,KAAAq0B,EAAAt2O,GACA,YAOA,GALA2b,EAAApqE,KAAA6E,EAAAzhB,QACAogT,EAAApgT,MAAA9F,KAAA,SAAA0nT,GACA56N,EAAApqE,KAAA6E,EAAAzhB,OAAAogT,eAAAwB,IAGAn1O,EAAAo1O,yBACA76N,EAAApqE,KAAA/mB,OAAA42E,EAAAo1O,wBAAA,CACA,QAAApqT,EAAA,EAAyBA,EAAAuvF,EAAApqE,KAAA/mB,OAAA,EAAiC4B,IAC1DuvF,EAAApqE,KAAAnlB,GAAAuvF,EAAApqE,KAAAnlB,EAAA,GAEAuvF,EAAApqE,KAAA/mB,SACA4rB,EAAApT,IAAA24E,EAAApqE,KAAA/mB,QAGAw1E,EAAAs0H,SAAAmlF,GAAAC,gBAAAn5M,EAAA5kC,WACAvlB,EAAAzhB,MAAAgnF,EAAApqE,KAAA/mB,OAAA,IACAmxF,EAAApqE,KAAA/mB,OAAA4rB,EAAAzhB,MAAA,GAEAgnF,EAAApqE,KAAAvf,KAAAguE,GACA5pD,EAAApT,IAAA24E,EAAApqE,KAAA/mB,OAAA,GACA,IAAAH,EAAA,CACA21E,QACAs2O,YACAz9C,cAAAprP,GAOA,OALA8yD,EAAAya,KAAA,UAAA3wF,GACA+rB,EAAAzhB,MAAA,IACA4rE,EAAAk2O,UAAA,GACAl2O,EAAAya,KAAA,SAAA3wF,IAEA21E,GAEA9xB,GAAA,SAAAqyB,EAAAob,EAAAvlE,GACAulE,EAAApqE,KAAA,GACA6E,EAAApT,IAAA,GACA24E,EAAAq6N,QAAA,EACAz1O,EAAAya,KAAA,eAEA/8E,GAAA,SAAAsiE,EAAAob,EAAAvlE,EAAAsgS,EAAAC,GACA,GAAAh7N,EAAAC,SAAA86N,GAAA,CACA,IAAApiH,EAAA34G,EAAApqE,KAAA6E,EAAAzhB,OAAA2/L,SACAgiH,EAAA36N,EAAApqE,KAAA6E,EAAAzhB,MAAA,GACAihT,GAAAR,cAAA70O,EAAA+1O,GAAA,GACA36N,EAAAC,SAAA+6N,KACAh7N,EAAApqE,KAAA6E,EAAAzhB,MAAA,GAAAogT,eAAAzgH,KAIAppE,GAAA,SAAA3qD,EAAAnqD,EAAA7E,GACA,IAAAyuD,EAQA,OAPA5pD,EAAAzhB,MAAA4c,EAAA/mB,OAAA,IACA4rB,EAAApT,IAAAoT,EAAAzhB,MAAA,GACAqrE,EAAAzuD,EAAA6E,EAAAzhB,OACAihT,GAAAR,cAAA70O,EAAAP,GAAA,GACAO,EAAAk2O,UAAA,GACAl2O,EAAAya,KAAA,QAA6Bhb,WAE7BA,GAEAirD,GAAA,SAAA1qD,EAAAob,EAAAm6N,EAAA1/R,GACA,IAAA4pD,EAaA,OAZA2b,EAAAq6N,SACAr6N,EAAAp5D,MACAo5D,EAAAq6N,QAAA,EACAD,GAAAp6N,GAAA,EAAAm6N,IAEA1/R,EAAAzhB,MAAA,IACAyhB,EAAApT,IAAAoT,EAAAzhB,MAAA,GACAqrE,EAAA2b,EAAApqE,KAAA6E,EAAAzhB,OACAihT,GAAAR,cAAA70O,EAAAP,GAAA,GACAO,EAAAk2O,UAAA,GACAl2O,EAAAya,KAAA,QAA6Bhb,WAE7BA,GAEA0xF,GAAA,SAAA/1E,GACAA,EAAAztC,QACAytC,EAAAp5D,OAEAq0R,GAAA,SAAAr2O,EAAAob,EAAAvlE,GACA,OAAAA,EAAAzhB,MAAA,GAAAgnF,EAAAq6N,QAAAr6N,EAAApqE,KAAA,KAAAqkS,GAAA3zB,KAAA2zB,GAAAX,iBAAA10O,GAAAob,EAAApqE,KAAA,KAEAslS,GAAA,SAAAl7N,EAAAvlE,GACA,OAAAA,EAAAzhB,MAAAgnF,EAAApqE,KAAA/mB,OAAA,IAAAmxF,EAAAq6N,QAEAp6N,GAAA,SAAAD,EAAAm6N,EAAA/4N,GAIA,OAHAk5N,GAAAt6N,EAAAm6N,GACAn6N,EAAAw6N,eACAx6N,EAAA5sB,OAAAguB,GACApB,EAAAp5D,OAEAwsC,GAAA,SAAA+mP,EAAA/4N,GACA,IACA+4N,EAAA9yS,IAAA8yS,EAAAnhT,MAAA,GACAooF,IACO,QACP+4N,EAAA9yS,IAAA8yS,EAAAnhT,MAAA,KAIAmiT,GAAA,SAAAv2O,EAAAob,EAAAm6N,GACA,IAAAiB,EAAAj0S,IAAA,GACAk0S,EAAA,SAAApqT,GACAmpT,GAAAp6N,GAAA,EAAAm6N,GACAn6N,EAAAp5D,IAAA,GAA0B31B,IAE1B2zE,EAAA/lC,GAAA,kBACAmhD,EAAAp5D,QAEAg+C,EAAA/lC,GAAA,6BAAA5tC,GACA,IAAAqyK,EAAAryK,EAAAutM,QACA,SAAAl7B,GAAA,SAAAA,GAAA,eAAAA,IACAg3I,GAAAt6N,EAAAm6N,GACAn6N,EAAAw6N,kBAGA51O,EAAA/lC,GAAA,uBAAA5tC,GACA,IAAAqyK,EAAAryK,EAAAutM,QACA,SAAAl7B,GAAA,SAAAA,GAAA,eAAAA,GACA+3I,EAAApqT,KAGA2zE,EAAA/lC,GAAA,mCACAmhD,EAAAw6N,iBAEA51O,EAAA/lC,GAAA,iCAAAw8Q,GACAz2O,EAAA/lC,GAAA,UAAAw8Q,GACAz2O,EAAA/lC,GAAA,iBAAA5tC,GACA,IAAAgnI,EAAAhnI,EAAAgnI,QACAhnI,EAAAkiG,wBAGA8kC,GAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,GAAA,SAAAA,GAAAhnI,EAAA0xD,WACA04P,IACAz2O,EAAAub,eAEA,KAAA83C,GAAA,IAAAA,GACArzD,EAAAub,cAEAi7N,EAAApiT,OAAAgnF,EAAAq6N,SAAA,IAAAJ,GAAA3zB,KAAA2zB,GAAAX,iBAAA10O,GAAAob,EAAApqE,KAAA,OACA,IAAAgvD,EAAA02O,YACA12O,EAAAk2O,UAAA,GACAl2O,EAAAya,KAAA,UACAhb,MAAA2b,EAAApqE,KAAA,GACA+kS,UAAA,QAGA/1O,EAAAya,KAAA,cACA+7N,EAAA/zS,KAAA,GACAu9D,EAAAub,kBAGAvb,EAAA/lC,GAAA,mBAAA5tC,GACA,IAAAgnI,EAAAhnI,EAAAgnI,QACA,IAAAhnI,EAAAkiG,qBAGA,GAAA8kC,GAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,GAAA,SAAAA,EACAj4C,EAAAq6N,QACAgB,EAAApqT,OAFA,CAMA,IAAAsqT,EAAAtqT,EAAA0xD,UAAA1xD,EAAAk8S,QAAAl8S,EAAAssQ,UACAtlI,EAAA,IAAAA,EAAA,WAAAA,GAAA,KAAAA,GAAAj4C,EAAAq6N,QAAAkB,IACAv7N,EAAAw6N,eACAJ,GAAAp6N,GAAA,EAAAm6N,GACAn6N,EAAAp5D,IAAA,GAA4B31B,GAC5BmqT,EAAA/zS,KAAA,OAGAu9D,EAAA/lC,GAAA,qBAAA5tC,GACA+uF,EAAAq6N,QACAgB,EAAApqT,KAGA,IAAAuqT,EAAA,SAAA1pS,GACA,gCAAAA,EAAA2pS,WAEAC,EAAA,SAAA5pS,GACA,qBAAAA,EAAA2pS,WAAA,OAAA3pS,EAAA8D,MAEAgvD,EAAA/lC,GAAA,iBAAA5tC,GACAA,EAAAwqT,YAAAD,EAAAvqT,IAAAyqT,EAAAzqT,KACAoqT,EAAApqT,KAGA2zE,EAAA/lC,GAAA,wCAAA5tC,GACAA,EAAAkiG,sBACAvuB,EAAAub,iBAIAw7N,GAAA,SAAA/2O,GACAA,EAAAg3O,YAAA,oBACAh3O,EAAAg3O,YAAA,kCAGAC,GAAA,SAAAj3O,GACA,IAAAw0O,EAAAjyS,GAAAhT,EAAArC,QACAqoT,EAAAhzS,GAAA,GACAsT,EAAAtT,GAAA,GACA64E,EAAA,CACApqE,KAAA,GACAykS,QAAA,EACAG,aAAA,WACAA,GAAA51O,EAAAu1O,EAAAf,IAEAxyR,IAAA,SAAAy9C,EAAAvyD,GACA,OAAA2oS,GAAA71O,EAAAob,EAAAvlE,EAAA0/R,EAAAf,EAAA/0O,EAAAvyD,IAEAw9G,KAAA,WACA,OAAAA,GAAA1qD,EAAAob,EAAAm6N,EAAA1/R,IAEA80G,KAAA,WACA,OAAAA,GAAA3qD,EAAAnqD,EAAAulE,EAAApqE,OAEA28B,MAAA,WACAA,GAAAqyB,EAAAob,EAAAvlE,IAEAs7I,MAAA,WACAA,GAAA/1E,IAEAi7N,QAAA,WACA,OAAAA,GAAAr2O,EAAAob,EAAAvlE,IAEAygS,QAAA,WACA,OAAAA,GAAAl7N,EAAAvlE,IAEAwlE,SAAA,SAAAmB,GACA,OAAAnB,GAAAD,EAAAm6N,EAAA/4N,IAEAhuB,OAAA,SAAAguB,GACAhuB,GAAA+mP,EAAA/4N,IAEA9+E,MAAA,SAAAy4S,EAAAC,GACA14S,GAAAsiE,EAAAob,EAAAvlE,EAAAsgS,EAAAC,KAKA,OAFAG,GAAAv2O,EAAAob,EAAAm6N,GACAwB,GAAA/2O,GACAob,GAGA87N,GAAA,SAAArzO,GACA,IAAAluD,EAAA,GACAwhS,EAAAtzO,EAAAjgE,MACA,MAAAuzS,EACAxhS,EAAAlkB,KAAAwS,GAAAZ,QAAA8zS,IACAA,IAAAvsH,UAEA,OAAAj1K,GAEAyhS,GAAA,SAAAvzO,GACA,IAAAwzO,EAAAhuO,GAAAxF,EAAA,MACAwuM,EAAA3jR,EAAAwoT,GAAArzO,GAAAvyE,OAAA,GAAA63P,IACAkuD,EAAAptT,SAAAooR,EAAApoR,QACAqE,EAAA+jR,EAAA35P,KAGA4+R,GAAA,SAAAzzO,GACA9sD,GAAA8sD,GACAttD,GAAAstD,EAAA5/D,GAAAtB,SAAA,6BAEA40S,GAAA,SAAA1zO,GACA,OAAAzB,GAAAyB,GAAA,MAAA/7C,GAAA+7C,GAAAslL,GAAAtlL,IAEA2zO,GAAA,SAAA3zO,GACA,WAAAn1E,EAAAinB,GAAAkuD,GAAA0zO,IAAAttT,QAEAwtT,GAAA,SAAA5zO,GACA+mH,GAAA/mH,GAAAv1E,KAAA,SAAAs8L,GACA4a,GAAA5a,GAAAt8L,KAAA,SAAAopT,GACAp1O,GAAAuB,IAAAslL,GAAAv+D,IAAAtoH,GAAAo1O,IACAh/R,GAAAkyK,QAKA+sH,GAAA,CACAP,oBACAE,qBACAE,mBACAC,wBAGAG,GAAA51B,GAAAN,KACAm2B,GAAA,SAAAljM,EAAAnxG,EAAA/S,GACA,IAAAqnT,EAAAnjM,EAAAr5B,UAAAlnF,IAAA3D,GACA,GAAAqnT,EACA,QAAAjsT,EAAA,EAAuBA,EAAAisT,EAAA7tT,OAAuB4B,IAC9C,QAAAisT,EAAAjsT,GAAAksT,SAAApjM,EAAA/wG,IAAAjW,GAAA6V,EAAAs0S,EAAAjsT,GAAAggB,UACA,SAIA,UAEAmsS,GAAA,SAAAh4O,EAAAx8D,EAAA/S,EAAAgxR,GACA,IAAAl/O,EAAAy9B,EAAAp8D,IAAAw/D,UACA,OAAA5/D,IAAA++B,IAGA/+B,EAAAw8D,EAAAp8D,IAAA4oL,UAAAhpL,EAAA,SAAAA,GACA,QAAAq0S,GAAA73O,EAAAx8D,EAAA/S,KAGA+S,EAAAqO,aAAA0wB,KAAA0iH,GAAAjlF,EAAAx8D,EAAA/S,EAAAgxR,GAAA,MAEAx8H,GAAAjlF,EAAAx8D,EAAA/S,EAAAgxR,KAEAw2B,GAAA,SAAAr0S,EAAAJ,EAAAy3E,GACA,QAAA28N,GAAAp0S,EAAAy3E,EAAAwS,YAGAmqN,GAAAp0S,EAAAy3E,EAAA68C,SAGA78C,EAAApvE,SACA,IAAArI,EAAAsI,UAAAlI,EAAAjW,GAAA6V,EAAAy3E,EAAApvE,eADA,KAIAqsS,GAAA,SAAAt0S,EAAAJ,EAAAy3E,EAAA6+E,EAAAq+I,EAAA12B,GACA,IAAAptR,EAAAjK,EAEAyB,EADAslD,EAAA8pC,EAAA6+E,GAEA,GAAA7+E,EAAAm9N,QACA,OAAAn9N,EAAAm9N,QAAA50S,EAAAy3E,EAAA6+E,GAEA,GAAA3oH,EACA,wBAAAA,EAAAlnD,QACA,IAAAoK,KAAA88C,EACA,GAAAA,EAAAllD,eAAAoI,GAAA,CAMA,GAJAjK,EADA,eAAA0vK,EACAl2J,EAAA+3L,UAAAn4L,EAAAnP,GAEA2tR,GAAA/1L,SAAAroF,EAAAJ,EAAAnP,GAEA8jT,IAAA/tT,IAAA6wF,EAAApgD,MACA,OAEA,KAAAs9Q,GAAAl9N,EAAApgD,SAAA+8Q,GAAAxtT,EAAA43R,GAAAJ,oBAAAh+Q,EAAAo+Q,GAAAR,YAAArwO,EAAA98C,GAAAotR,GAAAptR,IACA,aAKA,IAAAxI,EAAA,EAAqBA,EAAAslD,EAAAlnD,OAAkB4B,IACvC,kBAAAiuK,EAAAl2J,EAAA+3L,UAAAn4L,EAAA2tC,EAAAtlD,IAAAm2R,GAAA/1L,SAAAroF,EAAAJ,EAAA2tC,EAAAtlD,IACA,OAAAovF,EAKA,OAAAA,GAEAgqE,GAAA,SAAAtwC,EAAAnxG,EAAA/S,EAAAgxR,EAAA02B,GACA,IACAl9N,EAAApvF,EAAAvB,EAAA0zB,EADA85R,EAAAnjM,EAAAr5B,UAAAlnF,IAAA3D,GAEAmT,EAAA+wG,EAAA/wG,IACA,GAAAk0S,GAAAt0S,EACA,IAAA3X,EAAA,EAAmBA,EAAAisT,EAAA7tT,OAAuB4B,IAE1C,GADAovF,EAAA68N,EAAAjsT,GACAosT,GAAAtjM,EAAA/wG,IAAAJ,EAAAy3E,IAAAi9N,GAAAt0S,EAAAJ,EAAAy3E,EAAA,aAAAk9N,EAAA12B,IAAAy2B,GAAAt0S,EAAAJ,EAAAy3E,EAAA,SAAAk9N,EAAA12B,GAAA,CACA,GAAAzjQ,EAAAi9D,EAAAj9D,QACA,IAAA1zB,EAAA,EAAyBA,EAAA0zB,EAAA/zB,OAAoBK,IAC7C,IAAAqqH,EAAA/wG,IAAA6gM,SAAAjhM,EAAAwa,EAAA1zB,IACA,OAIA,OAAA2wF,IAKAlmF,GAAA,SAAAirE,EAAAvvE,EAAAgxR,EAAAj+Q,GACA,IAAAs7I,EACA,OAAAt7I,EACAw0S,GAAAh4O,EAAAx8D,EAAA/S,EAAAgxR,IAEAj+Q,EAAAw8D,EAAA5kC,UAAAqoC,YACAu0O,GAAAh4O,EAAAx8D,EAAA/S,EAAAgxR,KAGA3iI,EAAA9+E,EAAA5kC,UAAAd,aACAwkH,IAAAt7I,IACAw0S,GAAAh4O,EAAA8+E,EAAAruJ,EAAAgxR,OAMA42B,GAAA,SAAAr4O,EAAAvoB,EAAAgqO,GACA,IAAA62B,EACAC,EAAA,GACAC,EAAA,GAYA,OAXAF,EAAAt4O,EAAA5kC,UAAAd,WACA0lC,EAAAp8D,IAAA4oL,UAAA8rH,EAAA,SAAA90S,GACA,IAAA3X,EAAA4E,EACA,IAAA5E,EAAA,EAAmBA,EAAA4rD,EAAAxtD,OAAkB4B,IACrC4E,EAAAgnD,EAAA5rD,IACA2sT,EAAA/nT,IAAAw0J,GAAAjlF,EAAAx8D,EAAA/S,EAAAgxR,KACA+2B,EAAA/nT,IAAA,EACA8nT,EAAA9mT,KAAAhB,KAGOuvE,EAAAp8D,IAAAw/D,WACPm1O,GAEAh2J,GAAA,SAAAviF,EAAAvvE,GACA,IACAquJ,EAAAkG,EAAAn5J,EAAAvB,EAAAuhB,EADAisS,EAAA93O,EAAAsb,UAAAlnF,IAAA3D,GAEAmT,EAAAo8D,EAAAp8D,IACA,GAAAk0S,EAGA,IAFAh5J,EAAA9+E,EAAA5kC,UAAAd,WACA0qH,EAAAg9H,GAAA9mM,WAAAt3E,EAAAk7I,GACAx0J,EAAAwtT,EAAA7tT,OAAA,EAAuCK,GAAA,EAAQA,IAAA,CAE/C,GADAuhB,EAAAisS,EAAAxtT,GAAAuhB,UACAA,GAAAisS,EAAAxtT,GAAAmuT,aACA,SAEA,IAAA5sT,EAAAm5J,EAAA/6J,OAAA,EAAsC4B,GAAA,EAAQA,IAC9C,GAAA+X,EAAAjW,GAAAq3J,EAAAn5J,GAAAggB,GACA,SAKA,UAEA6sS,GAAA,CACAzzJ,aACAgzJ,aACAljT,SACAsjT,YACA91J,YACAs1J,qCAGAlmC,GAAA,SAAAnuQ,EAAA0nB,GACA,OAAA1nB,EAAAmuQ,UAAAzmP,IAEAytR,GAAA,SAAAt9Q,GACA,IAAAC,EAAAD,EAAAC,eAAAuB,EAAAxB,EAAAwB,YAAAC,EAAAzB,EAAAyB,aAAAC,EAAA1B,EAAA0B,UAwBA,OAvBAzB,IAAAwB,GAAAuvJ,GAAA16K,OAAA2pB,GACAuB,EAAA,GAAAA,EAAAvB,EAAA2C,UAAAh0C,SACA6yC,EAAA60O,GAAAr2O,EAAAuB,GACAvB,EAAAwB,EAAAkvJ,gBACAjvJ,EAAAF,GACAE,GAAAF,EACAvB,EAAAwB,EAAA60O,GAAA70O,EAAAC,GAAAivJ,gBACAjvJ,EAAAD,EAAAmB,UAAAh0C,OACA4yC,EAAA,GAEAE,EAAA,IAIAsvJ,GAAA16K,OAAA2pB,IAAAuB,EAAA,GAAAA,EAAAvB,EAAA2C,UAAAh0C,SACAqxC,EAAAq2O,GAAAr2O,EAAAuB,GACAA,EAAA,GAEAwvJ,GAAA16K,OAAAmrB,IAAAC,EAAA,GAAAA,EAAAD,EAAAmB,UAAAh0C,SACA6yC,EAAA60O,GAAA70O,EAAAC,GAAAivJ,gBACAjvJ,EAAAD,EAAAmB,UAAAh0C,SAGA,CACAqxC,iBACAuB,cACAC,eACAC,cAIA67Q,GAAA,SAAA/kS,GACA,yBAAAvnB,QAAAunB,IAEAglS,GAAA,SAAArhS,EAAAshS,EAAAC,GACA,IAAA3gT,EAAA1F,EAAA8kB,EAAA,SAAA/kB,EAAAohB,GACA,OAAA+kS,GAAA/kS,IAAA,MAAAA,EACAphB,EAAAumT,qBAAA,KAAAvmT,EAAA6W,KAAAwvS,GAAArmT,EAAA6W,IAAArf,SAAAutB,EAAAvtB,OAAA,GAAA8uT,EACA,CACAC,qBAAA,EACA1vS,IAAA7W,EAAA6W,IAAA,KAGA,CACA0vS,qBAAA,EACA1vS,IAAA7W,EAAA6W,IAAA,KAIA,CACA0vS,qBAAA,EACA1vS,IAAA7W,EAAA6W,IAAAuK,IAGO,CACPmlS,qBAAA,EACA1vS,IAAA,KAEA,OAAAlR,EAAAkR,KAEAw6D,GAAA,SAAAtgE,EAAA0nB,EAAAt2B,GACA,OAAAA,EAAA,CAGA,IAAAimQ,EAAAr3P,EAAAwN,KAAA1f,MAAA45B,IAAAt2B,GACAmkT,EAAA7tR,EAAAt2B,GAAA4O,EAAAwN,KAAA/mB,OACA6uT,EAAA,IAAA5tR,EACA1nB,EAAAy1S,YAAA/tR,EAAAt2B,EAAAikT,GAAAh+C,EAAAi+C,EAAAC,MAEAG,GAAA,SAAA11S,EAAA0nB,GACA,IAAA1T,EAAAhU,EAAAwN,KAAA1f,MAAA45B,GACAiuR,EAAA3hS,EAAAvtB,OAAAo4P,GAAA7qO,GAAAvtB,OACA,OAAA65E,GAAAtgE,EAAA0nB,EAAAiuR,IAEAC,GAAA,SAAA51S,EAAA0nB,GACA,IAAA1T,EAAAhU,EAAAwN,KAAA1f,MAAA,EAAA45B,GACAiuR,EAAA3hS,EAAAvtB,OAAAq4P,GAAA9qO,GAAAvtB,OACA,OAAA65E,GAAAtgE,EAAA0nB,EAAAiuR,MAEAE,GAAA,SAAAC,EAAAn7B,EAAAo7B,GACA,IAAAC,EAAAl3D,GAAAg3D,EAAAtoS,MAAA/mB,OAMA,OALAqvT,EAAAh5B,WAAAnC,EAAAntQ,MACA0H,GAAAzU,GAAAZ,QAAA86Q,IACAo7B,GACAL,GAAAI,EAAAE,GAEAF,GAGA96J,GAAA,SAAA37I,EAAAgJ,EAAAyF,GACA,OAAAsa,GAAA/oB,EAAAgJ,EAAAyF,GAAA1jB,UAGA6rT,GAAA,SAAAt2O,EAAA3/D,GACA,IAAAk2S,EAAAz1S,GAAAZ,QAAA8/D,GACA27E,EAAA76I,GAAAZ,QAAAG,GACA,OAAAg7I,GAAAM,EAAA,WAAAv0J,EAAA6C,GAAAssT,KAEAC,GAAA,SAAAx2O,EAAA3/D,GACA,OAAA6oL,GAAA16K,OAAAnO,IAAA,eAAAkB,KAAAlB,EAAAwN,QAAA,IAAAyoS,GAAAt2O,EAAA3/D,IAEAo2S,GAAA,SAAAp2S,GACA,OAAA6oL,GAAA36K,UAAAlO,IAAA,MAAAA,EAAAgO,UAAAhO,EAAAiV,aAAA,SAEAohS,GAAA,SAAA12O,EAAA3/D,GACA,OAAA0vQ,GAAA1vQ,KAAA,IAAAm2S,GAAAx2O,EAAA3/D,IAAAo2S,GAAAp2S,IAAAs2S,GAAAt2S,IAEAs2S,GAAAztH,GAAA5zK,aAAA,qBACAshS,GAAA1tH,GAAA5zK,aAAA,kBACAuhS,GAAA3tH,GAAA01D,kBAAA,wBACAk4D,GAAA,SAAAn+I,GACA,IAAAt4J,EAAA4nQ,EAAA,EACA,GAAAyuC,GAAA/9I,KACA,SAGA,GADAt4J,EAAAs4J,EAAA/lJ,YACAvS,EACA,SAEA,IAAAs/D,EAAA,IAAAgkM,GAAAtjQ,EAAAs4J,GACA,GACA,GAAAk+I,GAAAx2S,GACAA,EAAAs/D,EAAA1iE,MAAA,QAGA,GAAA25S,GAAAv2S,GACAA,EAAAs/D,EAAA1iE,YAGA,GAAAisL,GAAAZ,KAAAjoL,GACA4nQ,IACA5nQ,EAAAs/D,EAAA1iE,WAFA,CAKA,GAAAy5S,GAAA/9I,EAAAt4J,GACA,SAEAA,EAAAs/D,EAAA1iE,cACSoD,GACT,OAAA4nQ,GAAA,GAGA8uC,GAAA,SAAAr2O,GACA,OAAAo2O,GAAAp2O,EAAAjgE,QAEAu2S,GAAA,CAAiBluH,QAAAiuH,IAEjBE,GAAA,SAAAviR,EAAAgsC,GACA,IAAA9rD,EAAA8f,EAAA9f,YACAmT,EAAA2M,EAAA3M,SACA,WAAAyrP,GAAAH,eAAA3+O,IAAA9f,IAAA8rD,EAAAhyD,YAAAqZ,EAAAyrP,GAAA1gQ,OAAA4tD,GAAA34C,UAEAsM,GAAA,SAAAqsC,EAAAhsC,GACA,OAAAuiR,GAAAviR,EAAAgsC,GAAA8yM,GAAA9+O,EAAA9f,YAAA8f,EAAA3M,SAAA,GAAA2M,GAEAwiR,GAAA,SAAA72S,GACA,OAAA6oL,GAAA16K,OAAAnO,GAAAmzQ,GAAAnzQ,EAAA,GAAAmzQ,GAAA1gQ,OAAAzS,IAEA82S,GAAA,SAAA92S,GACA,OAAA6oL,GAAA16K,OAAAnO,GAAAmzQ,GAAAnzQ,IAAAwN,KAAA/mB,QAAA0sR,GAAAtgQ,MAAA7S,IAEA+2S,GAAA,SAAA12O,GACA,OAAAqvM,GAAArvM,EAAAmoH,iBACAz8L,EAAAP,KAAAsrT,GAAAz2O,EAAAmoH,kBAEAnoH,EAAAmoH,gBAAAuzF,GAAAE,eAAA57M,EAAAmoH,iBAAAz8L,EAAArC,QAGAstT,GAAA,SAAA32O,GACA,OAAAqvM,GAAArvM,EAAAnuD,aACAnmB,EAAAP,KAAAqrT,GAAAx2O,EAAAnuD,cAEAmuD,EAAAnuD,YAAA6pQ,GAAAC,gBAAA37M,EAAAnuD,aAAAnmB,EAAArC,QAGAutT,GAAA,SAAAf,EAAA71O,GACA,IAAA62O,EAAA/jC,GAAA1gQ,OAAA4tD,EAAAmoH,gBAAAnoH,EAAAmoH,gBAAAnoH,EAAAhyD,YACA,OAAA0tQ,GAAAD,aAAAo6B,EAAAgB,GAAAhtT,KAAA,WACA,OAAA6xR,GAAAF,aAAAq6B,EAAA/iC,GAAAtgQ,MAAAwtD,KACOt0E,EAAAP,OAEP2rT,GAAA,SAAAjB,EAAA71O,GACA,OAAA07M,GAAAF,aAAAq6B,EAAA/iC,GAAAtgQ,MAAAwtD,IAAAn2E,KAAA,WACA,OAAA6xR,GAAAD,aAAAo6B,EAAA/iC,GAAA1gQ,OAAA4tD,KACOt0E,EAAAP,OAEP4rT,GAAA,SAAAlB,EAAA71O,GACA,OAAA02O,GAAA12O,GAAAz1E,QAAA,WACA,OAAAosT,GAAA32O,KACOz1E,QAAA,WACP,OAAAqsT,GAAAf,EAAA71O,MAGAg3O,GAAA,SAAAnB,EAAA71O,GACA,OAAA22O,GAAA32O,GAAAz1E,QAAA,WACA,OAAAmsT,GAAA12O,KACOz1E,QAAA,WACP,OAAAusT,GAAAjB,EAAA71O,MAGAi3O,GAAA,SAAA/6E,EAAA25E,EAAA71O,GACA,OAAAk8J,EAAA86E,GAAAnB,EAAA71O,GAAA+2O,GAAAlB,EAAA71O,IAEAk3O,GAAA,SAAAh7E,EAAA25E,EAAA71O,GACA,OAAAi3O,GAAA/6E,EAAA25E,EAAA71O,GAAAx1E,IAAA9D,EAAAitC,GAAAqsC,KAEAkmK,GAAA,SAAA/pK,EAAA+/J,EAAAloM,GACAA,EAAAnqC,KAAA,WACAsyE,EAAA/wD,SACO,SAAA4oB,GACPmoC,EAAA5kC,UAAA2nI,OAAAlrI,EAAAs+O,UAAAp2C,MAGAi7E,GAAA,SAAA7D,GACA,gBAAAtzO,GACA,OAAAA,EAAAjgE,QAAAuzS,IAGA8D,GAAA,SAAAj7O,EAAA6D,GACA,OAAAA,GAAA7D,EAAAjiE,OAAAwwL,mBAAAtiM,eAAAwE,GAAAozE,KAEAq3O,GAAA,SAAAr3O,GACA,GAAAs2O,GAAAluH,QAAApoH,GAAA,CACA,IAAA0gK,EAAAtgO,GAAAtB,SAAA,2BAGA,OAFAoU,GAAA8sD,GACAttD,GAAAstD,EAAA0gK,GACAh1O,EAAAP,KAAA2nR,GAAA1gQ,OAAAsuN,EAAA3gO,QAEA,OAAArU,EAAArC,QAGAiuT,GAAA,SAAAt3O,EAAAu3O,EAAA7B,GACA,IAAA8B,EAAA71G,GAAA3hI,GAAAn1E,OAAA0zE,IACAk5O,EAAA5lS,GAAAmuD,GAAAn1E,OAAA0zE,IAEA,OADA1pD,GAAAmrD,GACA92C,GAAAsuR,EAAAC,EAAAF,EAAA,SAAA/3O,EAAAjjE,EAAAy3B,GACA,IAAAyhR,EAAAj2O,EAAAz/D,MAAAu6Q,EAAA/9Q,EAAAwD,MACAsnB,EAAAouR,EAAAtoS,KAAA/mB,OAEA,OADAovT,GAAAC,EAAAn7B,EAAAo7B,GACA1hR,EAAA9f,cAAAomQ,EAAAxH,GAAA2iC,EAAApuR,GAAA2M,IACOzpC,QAAA,WASP,OARAmrT,IACA8B,EAAA/sT,KAAA,SAAAu1E,GACA,OAAAu1O,GAAAv1O,EAAAjgE,MAAAigE,EAAAjgE,MAAA3Z,UAEAqxT,EAAAhtT,KAAA,SAAAu1E,GACA,OAAAq1O,GAAAr1O,EAAAjgE,MAAA,MAGAw3S,KAGAG,GAAA,SAAAv7O,EAAAp0D,GACA,OAAAtX,GAAA0rE,EAAAjiE,OAAA81P,wBAAApjQ,GAAAmb,KAEA4vS,GAAA,SAAAx7O,EAAA+/J,EAAAl8J,EAAA43O,QACA,IAAAA,IACAA,GAAA,GAEA,IAAAC,EAAAX,GAAAh7E,EAAA//J,EAAAhuD,UAAA6xD,EAAAjgE,OACAq1L,EAAA5nL,GAAAwyD,EAAAt5E,EAAA0wT,GAAAj7O,GAAAg7O,GAAAh7O,EAAAhuD,YACA2pS,EAAAR,GAAAt3O,EAAA63O,EAAAH,GAAAv7O,EAAA6D,IACA7D,EAAAp8D,IAAAqoL,QAAAjsH,EAAAhuD,YACAguD,EAAA5yB,WAAA,IACA4yB,EAAA5kC,UAAA2oC,qBAEAk1H,EAAA1qM,KAAA2sT,IAAAxtT,KAAA,WACA+tT,GACA1xE,GAAA/pK,EAAA+/J,EAAA47E,IAES,SAAAC,GACTH,GACA1xE,GAAA/pK,EAAA+/J,EAAAxwO,EAAAP,KAAA4sT,OAKAC,GAAA,CAAyBL,kBAEzBM,GAAA5qC,GAAAH,KAAAgrC,GAAA,aACAC,GAAA,SAAAlqS,EAAAtO,GACA,OAAAsO,EAAAkqS,WAAAx4S,GAAA,IAEAy4S,GAAA,SAAAz4S,GACA,IAAAo7B,EAAA,GACA,MAAAp7B,EAAA,CACA,OAAAA,EAAAsI,UAAAtI,EAAAy6B,YAAA69Q,IAAAt4S,EAAAJ,WAAAnZ,OAAA,EACA,SAEA,IAAAuZ,EAAAsI,UACA8yB,EAAAntC,KAAA+R,GAEAA,IAAAuS,WAEA,OAAA6oB,GAEAs9Q,GAAA,SAAA14S,GACA,OAAAy4S,GAAAz4S,GAAAvZ,OAAA,GAEAkyT,GAAA,SAAA34S,GACA,GAAAA,EAAA,CACA,IAAAs/D,EAAA,IAAAgkM,GAAAtjQ,KACA,IAAAA,EAAAs/D,EAAA98D,UAAqCxC,EAAMA,EAAAs/D,EAAA1iE,OAC3C,OAAAoD,EAAAsI,SACA,OAAAtI,EAIA,aAEA44S,GAAA,SAAAj8F,GACA,IAAAqyD,EAAAvuQ,GAAAX,QAAA,QASA,OARA8U,GAAAo6P,EAAA,CACAhlR,GAAAuuT,GACAltH,iBAAA,IACA2F,gBAAA,iBAEA2rB,GACA5pM,GAAAi8P,EAAAvuQ,GAAAR,SAAAq4S,KAEAtpC,GAEA6pC,GAAA,SAAAjiC,GACA,IAAA3I,EAAA0qC,GAAA/hC,GAIA,OAHA3I,KAAAxzO,UAAAomC,OAAA,KAAAy3O,IACArqC,EAAAsJ,WAAA,KAEAtJ,GAEA6qC,GAAA,SAAAt8O,EAAAx8D,EAAAi4S,QACA,IAAAA,IACAA,GAAA,GAEA,IAAA73S,EAAAo8D,EAAAp8D,IAAAw3B,EAAA4kC,EAAA5kC,UACA,GAAA8gR,GAAA14S,GACAq4S,GAAAL,cAAAx7O,GAAA,EAAA/7D,GAAAZ,QAAAG,GAAAi4S,OACO,CACP,IAAApgR,EAAAD,EAAAkrC,SACAwxD,EAAAl0H,EAAA4oL,UAAAhpL,EAAAI,EAAA0+D,SACAmvM,EAAA4qC,GAAA74S,GACA63B,EAAAC,iBAAAm2O,GAAAp2O,EAAAwB,YAAA,GACAxB,EAAAQ,SAAA41O,EAAAp2O,EAAAwB,YAAA,GAEAxB,EAAAyB,eAAA20O,GAAAp2O,EAAA0B,UAAA,GACA1B,EAAAa,OAAAu1O,EAAAp2O,EAAA0B,UAAA,GAEAn5B,EAAAsT,OAAA1T,GAAA,GACAs0H,GAAAl0H,EAAAqoL,QAAAn0D,IACA6/K,GAAAL,kBAAArzS,GAAAZ,QAAAy0H,IAEA18F,EAAA2nI,OAAA1nI,KAGAkhR,GAAA,SAAAv8O,EAAAx8D,EAAAi4S,QACA,IAAAA,IACAA,GAAA,GAEA,IAAA73S,EAAAo8D,EAAAp8D,IAAAw3B,EAAA4kC,EAAA5kC,UACA,GAAA53B,EAQA84S,GAAAt8O,EAAAx8D,EAAAi4S,QANA,GADAj4S,EAAA81Q,GAAAt5M,EAAAhuD,UAAAopB,EAAAd,aACA92B,EACA,MAAAA,EAAAI,EAAAxP,IAAA2nT,IACAO,GAAAt8O,EAAAx8D,GAAA,IAOAg5S,GAAA,SAAAx8O,EAAAwyM,EAAAiqC,GACA,IAAA74S,EAAAo8D,EAAAp8D,IAAAk0H,EAAAl0H,EAAA4oL,UAAAiwH,EAAAlyT,EAAAy3R,GAAAp2F,YAAA5rH,IACA83D,GAAAl0H,EAAAqoL,QAAAn0D,GACA2kL,EAAA5qS,WAAAk5P,aAAAyH,EAAAiqC,IAEA9E,GAAAP,iBAAAnzS,GAAAZ,QAAAo5S,IACA74S,EAAAqoL,QAAAwwH,GACAA,EAAA5qS,WAAAk5P,aAAAyH,EAAAiqC,GAEA74S,EAAAovL,YAAAw/E,EAAAiqC,KAIAC,GAAA,SAAA7qS,EAAArO,GAEA,OADAqO,EAAA6E,YAAAlT,GACAA,GAEAm5S,GAAA,SAAAC,EAAApqC,GACA,IAAAqqC,EAAArqT,EAAAoqT,EAAA,SAAA/qS,EAAA4qS,GACA,OAAAC,GAAA7qS,EAAA4qS,EAAAzkS,WAAA,KACOw6P,GACP,OAAAkqC,GAAAG,IAAA/qS,cAAAnO,eAAAm4S,MAEAgB,GAAA,SAAA98O,EAAAvvE,EAAAgxR,GACA,IAAApmP,EAAAm3O,EAAAf,EAAAvmP,EAAA6oK,EAAAh8K,EAAArU,EACA03B,EAAA4kC,EAAA5kC,UACAC,EAAAD,EAAAkrC,SACAp7C,EAAAmQ,EAAAwB,YACA9kB,EAAAsjB,EAAAC,eACA53B,EAAAqU,EAAAkmB,UACAu0O,EAAA8G,GAAAt5M,EAAAhuD,UAAAopB,EAAAd,YACAk4O,IACAf,EAAA0qC,GAAA3pC,IAEA,IAAAuqC,EAAA,gCACAr5S,GAAAwnB,EAAA,GAAAA,EAAAxnB,EAAAzZ,QAAA8yT,EAAAr4S,KAAAhB,EAAA2gE,OAAAn5C,KAAA6xR,EAAAr4S,KAAAhB,EAAA2gE,OAAAn5C,EAAA,KACA6oK,EAAA34J,EAAA44J,cACA34J,EAAAkD,UAAA,GACAlD,EAAA8nP,GAAAF,UAAAjjN,EAAA3kC,EAAA2kC,EAAAsb,UAAAlnF,IAAA3D,IACA4qC,EAAAs9Q,GAAAt9Q,GACA2kC,EAAAsb,UAAApxF,MAAAuG,EAAAgxR,EAAApmP,GACAD,EAAA64J,eAAAF,KAEAy+E,GAAAf,EAAAxzO,YAAA69Q,GAOA97O,EAAAsb,UAAApxF,MAAAuG,EAAAgxR,EAAAjP,IANAA,EAAAwpC,GAAAh8O,EAAA0D,SAAA04O,IAAA,GAAAx4S,OACA6tQ,EAAAe,EAAAz8P,WACAslB,EAAAuoC,WAAA4uM,GACAtnP,EAAA,EACA80C,EAAAsb,UAAApxF,MAAAuG,EAAAgxR,EAAAjP,IAIAp3O,EAAA2oC,kBAAA0tM,EAAAvmP,KAGA8xR,GAAA,SAAAh9O,EAAAvvE,EAAAgxR,EAAA02B,GACA,IACApgS,EAAAmT,EAAA6oK,EACAkpH,EAAAz5S,EAAAi5S,EAEAjqC,EAJA5uQ,EAAAo8D,EAAAp8D,IAAAw3B,EAAA4kC,EAAA5kC,UAGA4pH,EAAA,GAAA3pH,EAAAD,EAAAkrC,SAEAvuD,EAAAsjB,EAAAC,eACApQ,EAAAmQ,EAAAwB,YACAr5B,EAAAuU,EACA,IAAAA,EAAAjM,WACAof,IAAAnT,EAAAkmB,UAAAh0C,SACAgzT,GAAA,GAEAz5S,IAAAqO,YAEA,MAAArO,EAAA,CACA,GAAAk1S,GAAAzzJ,UAAAjlF,EAAAx8D,EAAA/S,EAAAgxR,EAAA02B,GAAA,CACAsE,EAAAj5S,EACA,MAEAA,EAAAkS,cACAunS,GAAA,GAEAj4J,EAAAvzJ,KAAA+R,GACAA,IAAAqO,WAEA,GAAA4qS,EAGA,GAAAQ,EAAA,CACAlpH,EAAA34J,EAAA44J,cACA34J,EAAAkD,UAAA,GACA,IAAA2+Q,EAAA/5B,GAAAF,UAAAjjN,EAAA3kC,EAAA2kC,EAAAsb,UAAAlnF,IAAA3D,IAAA,GACAysT,EAAAvE,GAAAuE,GACAl9O,EAAAsb,UAAApkE,OAAAzmB,EAAAgxR,EAAAy7B,GACA9hR,EAAA64J,eAAAF,OACO,CACPy+E,EAAA8G,GAAAt5M,EAAAhuD,UAAAyqS,GACA,IAAAU,EAAAf,IAAA,GAAAx4S,MACAkuS,EAAA6K,GAAA33J,EAAAm4J,GAEAX,GAAAx8O,EAAAm9O,EADA3qC,GAGAiqC,GAEAH,GAAAt8O,EAAAwyM,GAAA,GACAp3O,EAAA2oC,kBAAA+tO,EAAA,GACAluS,EAAAqoL,QAAAwwH,IACA74S,EAAAsT,OAAAulS,KAIAW,GAAA,SAAAp9O,EAAAqzD,GACA,IAAAj4F,EAAA4kC,EAAA5kC,UAAArpB,EAAAiuD,EAAAhuD,UACAuqS,GAAAv8O,EAAA,SACA,IAAAqzD,GAAA,KAAAA,IAAAj4F,EAAAw4G,eAAAx4G,EAAAd,WAAAp3B,YAAA44S,IACAS,GAAAv8O,EAAAs5M,GAAAvnQ,EAAAqpB,EAAAd,aAEA,KAAA+4F,GAAA,KAAAA,GACAkpL,GAAAv8O,EAAAs5M,GAAAvnQ,EAAAqpB,EAAAd,cAGAy4H,GAAA,SAAA/yF,GACAA,EAAA/lC,GAAA,2BAAA5tC,GACA+wT,GAAAp9O,EAAA3zE,EAAAgnI,YAGAgqL,GAAA,SAAAvhJ,EAAA8gJ,GACA,IAAApqC,EAAA4pC,IAAA,GACAkB,EAAAX,GAAAC,EAAApqC,EAAA5uQ,OAGA,OAFAqS,GAAAhS,GAAAZ,QAAAy4J,GAAA02G,GACA95P,GAAAzU,GAAAZ,QAAAy4J,IACA66G,GAAA2mC,EAAA,IAEAC,GAAA,SAAAv9O,EAAAp0D,GACA,IAAA4xS,EAAAx9O,EAAAjiE,OAAA81P,wBACA,OAAA2pD,EAAAvxT,eAAAwE,GAAAmb,MAAAytQ,GAAAztQ,EAAAhI,SAAAyoL,GAAA21D,QAAAp2O,EAAAhI,QAEA65S,GAAA,SAAA7xS,GACA,OAAAytQ,GAAAztQ,EAAAhI,QAAAs4S,GAAAtwS,EAAAhI,QAGA85S,GAAA,GAA6BC,GAAAl4D,GAAA/2P,OAAAkvT,GAAAn4D,GAAAn3P,KAC7BuvT,GAAA,SAAAptT,EAAAm1Q,GACA,IAAAk4C,EAAAJ,GAAAjtT,GACAqtT,IACAJ,GAAAjtT,GAAAqtT,EAAA,IAEAJ,GAAAjtT,GAAAgB,KAAAm0Q,IAEAm4C,GAAA,SAAAttT,EAAAuvE,GACA49O,GAAAF,GAAAjtT,GAAA,SAAAm1Q,GACAA,EAAA5lM,MAGA69O,GAAA,eAAA79O,GACA,IACAg+O,EAAAt1D,EADArtN,EAAA2kC,EAAA5kC,UAAAkrC,SAEA23O,EAAA,SAAAC,GACA,OAAAF,EAAAE,EAAAlyH,mBAAA,IAAAy5D,GAAAn5P,QAAAo8P,EAAAw1D,EAAAlyH,kBAEAmyH,EAAA,SAAAC,EAAAC,GACA15C,GAAA05C,GAAAnnS,SACAytP,GAAAy5C,GAAA7nS,OAAA,YAAAA,OAAA8nS,EAAAj7S,aAEA46S,EAAA3xH,GAAAk1D,eAAA,SACAlmN,EAAA8B,YACAurN,EAAA1oL,EAAA5kC,UAAA4xJ,oBACA4wH,GAAAD,MAAAj1D,EAAAs1D,GAAAC,GAAA,SAAAC,GACAC,EAAAD,EAAAlyH,gBAAAkyH,QAIA,IAAAI,GAAA,CAAiBP,gBAEjBQ,GAAAjzT,GAAAgD,KACAkwT,GAAA,SAAA56S,GACAzX,KAAA4uO,QAAA,SAAA4hD,EAAAC,GACA,GAAAD,EAAAnrQ,WAAAorQ,EAAAprQ,SACA,SAEA,IAAAu3P,EAAA,SAAAvlQ,GACA,IAAA0/L,EAAA,GAOA,OANAq7G,GAAA36S,EAAAmlQ,WAAAvlQ,GAAA,SAAAue,GACA,IAAAtxB,EAAAsxB,EAAAvQ,SAAAlM,cACA,IAAA7U,EAAAnE,QAAA,gBAAAmE,GAAA,IAAAA,EAAAnE,QAAA,WACA42M,EAAAzyM,GAAAmT,EAAA+3L,UAAAn4L,EAAA/S,MAGAyyM,GAEAu7G,EAAA,SAAAC,EAAAC,GACA,IAAAv0T,EAAAqG,EACA,IAAAA,KAAAiuT,EACA,GAAAA,EAAAzyT,eAAAwE,GAAA,CAEA,GADArG,EAAAu0T,EAAAluT,GACA,qBAAArG,EACA,SAEA,GAAAs0T,EAAAjuT,KAAArG,EACA,gBAEAu0T,EAAAluT,GAGA,IAAAA,KAAAkuT,EACA,GAAAA,EAAA1yT,eAAAwE,GACA,SAGA,UAEA,QAAAguT,EAAA11C,EAAA4T,GAAA5T,EAAA6T,QAGA6hC,EAAA76S,EAAAo+L,WAAAp+L,EAAA+3L,UAAAghF,EAAA,UAAA/4Q,EAAAo+L,WAAAp+L,EAAA+3L,UAAAihF,EAAA,cAGAqE,GAAAvrF,eAAAinF,KAAAsE,GAAAvrF,eAAAknF,OAIAgiC,GAAA,qBACAC,GAAAvzT,GAAAgD,KACAwwT,GAAA98B,GAAAN,KACAq9B,GAAA,SAAAv7S,GACA,kBAAAkB,KAAAlB,EAAAgO,WAEAwtS,GAAA,SAAAp7S,EAAAJ,EAAAgS,GACA,OAAA5R,EAAAwoL,UAAA5oL,EAAAgS,IAAAhS,IAAAgS,IAAA5R,EAAA0+D,QAAA9sD,IAEA0iF,GAAA,SAAAyc,EAAAt5E,EAAA7xB,GACA,IAAAuO,EAAAmT,EAAA+zR,EAgBA,OAfAlnS,EAAAsjB,EAAA7xB,EAAA,iCACA0hB,EAAAmQ,EAAA7xB,EAAA,2BACA6iL,GAAA36K,UAAAqG,KACAknS,EAAAlnS,EAAA3U,WAAAnZ,OAAA,GACAuf,GAAA0hB,GACAA,IAEAnT,IAAA3U,WAAA8nB,EAAA+zR,IAAA/zR,IAEAmhK,GAAA16K,OAAAoG,IAAAvO,GAAA0hB,GAAAnT,EAAAkmB,UAAAh0C,SACA8tB,EAAA,IAAA+uP,GAAA/uP,EAAA48F,EAAA3iG,WAAA5R,QAAA2X,GAEAs0K,GAAA16K,OAAAoG,KAAAvO,GAAA,IAAA0hB,IACAnT,EAAA,IAAA+uP,GAAA/uP,EAAA48F,EAAA3iG,WAAAqxD,QAAAtrD,GAEAA,GAEAklH,GAAA,SAAAr5H,EAAAJ,EAAA/S,EAAA4nB,GACA,IAAAhB,EAAAzT,EAAAsuB,OAAAzhC,EAAA4nB,GAGA,OAFA7U,EAAAqO,WAAAuE,aAAAiB,EAAA7T,GACA6T,EAAAX,YAAAlT,GACA6T,GAEA6nS,GAAA,SAAAt7S,EAAAJ,EAAApD,EAAA3P,EAAA4nB,GACA,IAAA7O,EAAAvF,GAAAZ,QAAAG,GACA6T,EAAApT,GAAAZ,QAAAO,EAAAsuB,OAAAzhC,EAAA4nB,IACAo9K,EAAAr1L,EAAAuiP,GAAAn5O,GAAAk5O,GAAAl5O,GASA,OARAsN,GAAAO,EAAAo+K,GACAr1L,GACA6V,GAAAzM,EAAA6N,GACAb,GAAAa,EAAA7N,KAEA6M,GAAA7M,EAAA6N,GACAd,GAAAc,EAAA7N,IAEA6N,EAAAzT,OAEAu7S,GAAA,SAAAv7S,EAAAJ,EAAAy3E,GACA,QAAA6jO,GAAAt7S,EAAAy3E,EAAAwS,YAGAqxN,GAAAt7S,EAAAy3E,EAAA68C,SAGA78C,EAAApvE,SACAwgL,GAAA36K,UAAAlO,IAAAI,EAAAjW,GAAA6V,EAAAy3E,EAAApvE,eADA,KAIAuzS,GAAA,SAAA57S,EAAAy3E,GACA,OAAAA,EAAAokO,OAAA,MAAA77S,EAAAkrL,SAEA1jK,GAAA,SAAApnB,EAAAJ,EAAApD,EAAAkhR,GAEA,OADA99Q,EAAAw+Q,GAAAX,wBAAA79Q,EAAApD,EAAAkhR,IACA99Q,GAAA,OAAAA,EAAAgO,UAAA5N,EAAA0+D,QAAA9+D,IAEA87S,GAAA,SAAA3qM,EAAAnxG,EAAAy3E,GACA,IACAskO,EADA1tS,EAAArO,EAAAqO,WAEAjO,EAAA+wG,EAAA/wG,IAAAkjS,EAAAvsN,GAAAqvM,mBAAAj1K,GACA15B,EAAA68C,QACAgvK,EAUAj1R,IAAAjO,EAAAw/D,YACA6X,EAAAukO,YAAAV,GAAAt7S,EAAAy3E,EAAAukO,aACAX,GAAAvzT,GAAAwhM,KAAAtpL,EAAAJ,YAAA,SAAAI,GACAw+Q,GAAAn0K,QAAA8G,EAAAmyL,EAAAtjS,EAAAgO,SAAAlM,eACAi6S,EAIAA,EAAA7oS,YAAAlT,IAHA+7S,EAAAtiL,GAAAr5H,EAAAJ,EAAAsjS,GACAljS,EAAA+qL,WAAA4wH,EAAA5qM,EAAA9zC,SAAA+tH,0BAKA2wH,EAAA,KApBA37S,EAAA0+D,QAAA9+D,KAAAI,EAAA0+D,QAAAzwD,KACAmZ,GAAApnB,EAAAJ,GAAA,IAAAwnB,GAAApnB,EAAAJ,EAAAuS,YAAA,MACAvS,EAAA4S,aAAAxS,EAAAsuB,OAAA,MAAA1uB,EAAAuS,YAEAiV,GAAApnB,EAAAJ,GAAA,IAAAwnB,GAAApnB,EAAAJ,EAAAonL,WAAA,MACApnL,EAAAkT,YAAA9S,EAAAsuB,OAAA,SAsBA+oD,EAAApvE,UAAAovE,EAAAwS,SAAAqxN,GAAA7jO,EAAAwS,OAAAjqF,IAGAI,EAAAsT,OAAA1T,EAAA,IAEAg4E,GAAA,SAAAm5B,EAAA15B,EAAAwmM,EAAAj+Q,EAAAi8S,GACA,IAAA5zT,EAAAwsB,EAAAqnS,EACA97S,EAAA+wG,EAAA/wG,IACA,IAAAu7S,GAAAv7S,EAAAJ,EAAAy3E,KAAAmkO,GAAA57S,EAAAy3E,GACA,SAEA,WAAAA,EAAA/jE,OAuDA,IAtDA2nS,GAAA5jO,EAAA/8D,OAAA,SAAA9zB,EAAAqG,GACArG,EAAA43R,GAAAJ,oBAAAh+Q,EAAAo+Q,GAAAR,YAAAp3R,EAAAq3R,GAAAhxR,GACA,kBAAAA,IACAA,EAAArG,EACAq1T,EAAA,IAEAxkO,EAAA0kO,iBAAAF,GAAAX,GAAA98B,GAAA/1L,SAAAroF,EAAA67S,EAAAhvT,GAAArG,KACAwZ,EAAAqxL,SAAAzxL,EAAA/S,EAAA,IAEAivT,EAAA,IAEAA,GAAA,KAAA97S,EAAA+3L,UAAAn4L,EAAA,WACAA,EAAAmV,gBAAA,SACAnV,EAAAmV,gBAAA,mBAEAkmS,GAAA5jO,EAAAh9D,WAAA,SAAA7zB,EAAAqG,GACA,IAAAmvT,EAMA,GALAx1T,EAAA43R,GAAAR,YAAAp3R,EAAAq3R,GACA,kBAAAhxR,IACAA,EAAArG,EACAq1T,EAAA,GAEAxkO,EAAA0kO,iBAAAF,GAAAX,GAAAl7S,EAAA+3L,UAAA8jH,EAAAhvT,GAAArG,GAAA,CACA,aAAAqG,IACArG,EAAAwZ,EAAA+3L,UAAAn4L,EAAA/S,GACArG,IACAw1T,EAAA,GACAf,GAAAz0T,EAAA2xB,MAAA,gBAAAyuP,GACA,WAAA9lQ,KAAA8lQ,KACAo1C,MAAA,QAAAp1C,KAGAo1C,IAEA,YADAh8S,EAAA2vN,UAAA/vN,EAAA/S,EAAAmvT,GAKA,UAAAnvT,GACA+S,EAAAmV,gBAAA,aAEAimS,GAAAl6S,KAAAjU,IACA+S,EAAAmV,gBAAA,YAAAloB,GAEA+S,EAAAmV,gBAAAloB,MAGAouT,GAAA5jO,EAAAj9D,QAAA,SAAA5zB,GACAA,EAAA43R,GAAAR,YAAAp3R,EAAAq3R,GACAg+B,IAAA77S,EAAA6gM,SAAAg7G,EAAAr1T,IACAwZ,EAAAw6J,YAAA56J,EAAApZ,KAGAiuB,EAAAzU,EAAAmlQ,WAAAvlQ,GACA3X,EAAA,EAAmBA,EAAAwsB,EAAApuB,OAAkB4B,IAAA,CACrC,IAAAm3M,EAAA3qL,EAAAxsB,GAAA2lB,SACA,OAAAwxL,EAAA12M,QAAA,UAAA02M,EAAA12M,QAAA,SACA,SAIA,eAAA2uF,EAAA/jE,QACAooS,GAAA3qM,EAAAnxG,EAAAy3E,IACA,QAFA,GAKA4kO,GAAA,SAAA7/O,EAAAjoD,EAAAtnB,EAAAgxR,EAAA02B,GACA,IAAA2H,EAUA,OATAjB,GAAA78B,GAAA9mM,WAAAlb,EAAAp8D,IAAAmU,EAAAlG,YAAA9e,UAAA,SAAAyiB,GACA,IAAAylE,EACA6kO,GAAA,WAAAtqS,EAAAhoB,IAAA,SAAAgoB,EAAAhoB,KACAytF,EAAAy9N,GAAAzzJ,UAAAjlF,EAAAxqD,EAAA/kB,EAAAgxR,EAAA02B,GACAl9N,IAAA,IAAAA,EAAAl/D,QACA+jS,EAAAtqS,MAIAsqS,GAEAC,GAAA,SAAA//O,EAAA83O,EAAAgI,EAAA/nS,EAAA1iB,EAAA0mB,EAAAk/D,EAAAwmM,GACA,IAAAjsQ,EAAA9S,EAAAs9S,EAAAC,EAAAp0T,EAAAq0T,EACAt8S,EAAAo8D,EAAAp8D,IACA,GAAAk8S,EAAA,CAEA,IADAI,EAAAJ,EAAAjuS,WACA2D,EAAAuC,EAAAlG,WAA2C2D,OAAA0qS,EAAuC1qS,IAAA3D,WAAA,CAElF,IADAnP,EAAAkB,EAAAlB,MAAA8S,GAAA,GACA3pB,EAAA,EAAqBA,EAAAisT,EAAA7tT,OAAuB4B,IAC5C,GAAA2vF,GAAAxb,EAAA83O,EAAAjsT,GAAA41R,EAAA/+Q,KAAA,CACAA,EAAA,EACA,MAGAA,IACAs9S,GACAt9S,EAAAgU,YAAAspS,GAEAC,IACAA,EAAAv9S,GAEAs9S,EAAAt9S,IAGAqZ,GAAAk/D,EAAAklO,OAAAv8S,EAAA0+D,QAAAw9O,KACA/nS,EAAAnU,EAAAmY,MAAA+jS,EAAA/nS,IAEAioS,IACA3qT,EAAAwc,WAAAuE,aAAA4pS,EAAA3qT,GACA4qT,EAAAvpS,YAAArhB,IAGA,OAAA0iB,GAEA01C,GAAA,SAAAknD,EAAAlkH,EAAAgxR,EAAAj+Q,EAAA20S,GACA,IACApkH,EAAA14J,EADAy8Q,EAAAnjM,EAAAr5B,UAAAlnF,IAAA3D,GAAAwqF,EAAA68N,EAAA,GACA5uK,GAAA,EACAtlI,EAAA+wG,EAAA/wG,IACAw3B,EAAAu5E,EAAAv5E,UACAglR,EAAA,SAAAroS,GACA,IAAA+nS,EAAAD,GAAAlrM,EAAA58F,EAAAtnB,EAAAgxR,EAAA02B,GACA,OAAA4H,GAAAprM,EAAAmjM,EAAAgI,EAAA/nS,KAAA,EAAAkjE,EAAAwmM,IAEA4+B,EAAA,SAAA78S,GACA,OAAAy9Q,GAAAvrF,eAAAlyL,IAAA6oL,GAAA36K,UAAAlO,KAAA,WAAAA,EAAAhW,IAAA,SAAAgW,EAAAhW,KAEAq1E,EAAA,SAAAr/D,GACA,IAAAmS,EAAA9pB,EAAAo0G,EAAAqgN,EAAAr3K,EAOA,GANAojD,GAAA36K,UAAAlO,IAAAI,EAAA2+D,mBAAA/+D,KACA88S,EAAAp3K,EACAA,EAAA,SAAAtlI,EAAA2+D,mBAAA/+D,GACAylI,GAAA,GAEAtzH,EAAArqB,GAAAwhM,KAAAtpL,EAAAJ,YACA8lI,IAAAD,EACA,IAAAp9I,EAAA,EAAAo0G,EAAA63M,EAAA7tT,OAA4C4B,EAAAo0G,EAAOp0G,IACnD,GAAA2vF,GAAAm5B,EAAAmjM,EAAAjsT,GAAA41R,EAAAj+Q,KACA,MAIA,GAAAy3E,EAAAllF,MACA4f,EAAA1rB,OAAA,CACA,IAAA4B,EAAA,EAAAo0G,EAAAtqF,EAAA1rB,OAA4C4B,EAAAo0G,EAAOp0G,IACnDg3E,EAAAltD,EAAA9pB,IAEAo9I,IACAC,EAAAo3K,KAKAlpS,EAAA,SAAA5N,GACA,IAAAhG,EAAAI,EAAAxP,IAAAoV,EAAA,iBACAgzG,EAAAh5G,EAAAgG,EAAA,0BAQA,OAPA62S,EAAA7jM,KACAA,IAAAhzG,EAAA,2BAEA6iL,GAAA16K,OAAA6qG,IAAA,IAAAA,EAAAxrG,KAAA/mB,SACAuyH,EAAAhzG,EAAAhG,EAAAwoL,iBAAAxoL,EAAAkS,YAAAlS,EAAAkS,aAAAlS,EAAAwoL,iBAEApoL,EAAAsT,OAAA1T,GAAA,GACAg5G,GAEA+jM,EAAA,SAAAllR,GACA,IAAAC,EAAAwB,EACA0jR,EAAAnlR,EAAAmlR,wBAEA,GADAnlR,EAAA8nP,GAAAF,UAAAtuK,EAAAt5E,EAAAy8Q,GAAA,GACA78N,EAAAl/D,MAAA,CAIA,GAHAsf,EAAAs9Q,GAAAt9Q,GACAC,EAAA48D,GAAAyc,EAAAt5E,GAAA,GACAyB,EAAAo7D,GAAAyc,EAAAt5E,GACAC,IAAAwB,EAAA,CAWA,GAVA,eAAAp4B,KAAA42B,EAAA9pB,WAAA8pB,EAAAvlB,aAEAulB,EADA,OAAAA,EAAA9pB,SACA8pB,EAAAvlB,uBAAAulB,EAEAA,EAAAvlB,YAAAulB,GAGAklR,GAAA,wBAAA97S,KAAA87S,EAAAhvS,WAAAutS,GAAAjiR,MAAA/mB,aACA+mB,IAAA/mB,YAAA+mB,GAEAkiR,GAAAp7S,EAAA03B,EAAAwB,GAAA,CACA,IAAA5mB,EAAA3mB,EAAAD,KAAAgsC,EAAAvlB,YAAAloB,MAAAytC,GAMA,OALA8kR,EAAAlB,GAAAt7S,EAAAsS,GAAA,UACA1oB,GAAA,SACAgnM,gBAAA,mBAEAp9K,GAAA,GAGA,GAAA4nS,GAAAp7S,EAAAk5B,EAAAxB,GAAA,CACAplB,EAAA3mB,EAAAD,KAAAwtC,EAAA8tJ,WAAA/8L,MAAAivC,GAMA,OALAsjR,EAAAlB,GAAAt7S,EAAAsS,GAAA,UACA1oB,GAAA,OACAgnM,gBAAA,mBAEAp9K,GAAA,GAGAkkB,EAAA2hG,GAAAr5H,EAAA03B,EAAA,QACA9tC,GAAA,SACAgnM,gBAAA,aAEA13J,EAAAmgG,GAAAr5H,EAAAk5B,EAAA,QACAtvC,GAAA,OACAgnM,gBAAA,aAEA4rH,EAAA9kR,GACA8kR,EAAAtjR,GACAxB,EAAAlkB,GAAA,GACA0lB,EAAA1lB,SAEAkkB,EAAAwB,EAAAsjR,EAAA9kR,GAEAD,EAAAC,iBAAAzpB,WAAAypB,EAAAzpB,WAAAypB,EACAD,EAAAwB,YAAAj5B,EAAA+wL,UAAAr5J,GACAD,EAAAyB,eAAAjrB,WAAAirB,EAAAjrB,WAAAirB,EACAzB,EAAA0B,UAAAn5B,EAAA+wL,UAAA73J,GAAA,EAEA6mP,GAAAx9B,KAAAviP,EAAAy3B,EAAA,SAAAuD,GACAigR,GAAAjgR,EAAA,SAAAp7B,GACAq/D,EAAAr/D,GACA6oL,GAAA36K,UAAAlO,IAAA,cAAAmxG,EAAA/wG,IAAAqoF,SAAAzoF,EAAA,oBAAAA,EAAAqO,YAAA,cAAAmwQ,GAAAH,kBAAAj+Q,EAAAJ,EAAAqO,aACA2pE,GAAAm5B,EAAA,CACA5+G,MAAA,EACA8kC,OAAA,EACA4yD,OAAA,OACAvvE,OAAA,CAAyBuiS,eAAA,cACV,KAAAj9S,QAKf,GAAAA,EACAA,EAAAsI,UACAuvB,EAAAz3B,EAAAmhE,YACA1pC,EAAAS,eAAAt4B,GACA63B,EAAAc,YAAA34B,GACA+8S,EAAAllR,IAEAklR,EAAA/8S,QAIA,aAAAI,EAAA2+D,mBAAAnnC,EAAAqoC,WAWAroC,EAAAw4G,eAAA34D,EAAAwS,SAAA7pF,EAAAu5E,OAAA,+CAAAlzF,OASA+yT,GAAAroM,EAAAlkH,EAAAgxR,EAAA02B,IARApkH,EAAAmlF,GAAAL,sBAAAlkK,EAAAv5E,WAAA,GACAmlR,EAAAnlR,EAAAkrC,UACAlrC,EAAA64J,eAAAF,GACA94G,EAAAwS,QAAAirN,GAAA3jT,MAAA4/G,EAAAlkH,EAAAgxR,EAAArmP,EAAAd,aACA0nP,GAAAb,UAAAv9Q,EAAAw3B,IAAAkrC,UAEAquC,EAAAp5B,mBAlBA,CACA/3E,EAAA43B,EAAAqoC,UACA,QAAA53E,EAAA,EAAAo0G,EAAA63M,EAAA7tT,OAA8C4B,EAAAo0G,EAAOp0G,IACrD,GAAAisT,EAAAjsT,GAAA60T,iBACAllO,GAAAm5B,EAAAmjM,EAAAjsT,GAAA41R,EAAAj+Q,KACA,QAkBAm9S,GAAA,CACAnlO,gBACAtkE,OAAAu2C,IAGAmzP,GAAAt1T,GAAAgD,KACAuyT,GAAA,SAAAr9S,GACA,OAAAA,GAAA,IAAAA,EAAAsI,WAAAm1Q,GAAAvrF,eAAAlyL,KAAA61Q,GAAA71Q,KAAA6oL,GAAA21D,QAAAx+O,IAEAs9S,GAAA,SAAAt9S,EAAA+iQ,GACA,IAAAjwP,EACA,IAAAA,EAAA9S,EAA0B8S,EAASA,IAAAiwP,GAAA,CACnC,OAAAjwP,EAAAxK,UAAA,IAAAwK,EAAA2nB,UAAAh0C,OACA,OAAAuZ,EAEA,OAAA8S,EAAAxK,WAAAm1Q,GAAAvrF,eAAAp/K,GACA,OAAAA,EAGA,OAAA9S,GAEAu9S,GAAA,SAAAn9S,EAAAy/D,EAAAjjE,GACA,IAAAkW,EAAA0qS,EACAC,EAAA,IAAAzC,GAAA56S,GACA,GAAAy/D,GAAAjjE,IACAijE,EAAAy9O,GAAAz9O,EAAA,mBACAjjE,EAAA0gT,GAAA1gT,EAAA,eACA6gT,EAAAlmF,QAAA13J,EAAAjjE,IAAA,CACA,IAAAkW,EAAA+sD,EAAA3tD,YAA0CY,OAAAlW,GAC1C4gT,EAAA1qS,EACAA,IAAAZ,YACA2tD,EAAA3sD,YAAAsqS,GAMA,OAJAp9S,EAAAsT,OAAA9W,GACA9U,GAAAgD,KAAAhD,GAAAwhM,KAAA1sL,EAAAgD,YAAA,SAAAI,GACA6/D,EAAA3sD,YAAAlT,KAEA6/D,EAGA,OAAAjjE,GAEA8gT,GAAA,SAAA19S,EAAA9U,EAAAm0E,GACA+9O,GAAAp9S,EAAAJ,WAAA,SAAAI,GACAq9S,GAAAr9S,KACA9U,EAAA8U,IACAq/D,EAAAr/D,GAEAA,EAAAL,iBACA+9S,GAAA19S,EAAA9U,EAAAm0E,OAKAs+O,GAAA,SAAAv9S,EAAAnT,GACA,OAAAlG,EAAA,SAAAkG,EAAA+S,GACA,SAAAA,IAAAw+Q,GAAA/1L,SAAAroF,EAAAJ,EAAA/S,KACOA,IAEP2wT,GAAA,SAAAx9S,EAAAnT,EAAArG,GACA,OAAAG,EAAA,SAAAkG,EAAArG,EAAAoZ,GACAI,EAAAqxL,SAAAzxL,EAAA/S,EAAArG,GACA,KAAAoZ,EAAA+U,aAAA,UACA/U,EAAAmV,gBAAA,SAEA0oS,GAAAz9S,EAAAJ,IACO/S,EAAArG,IAEPi3T,GAAA,SAAAz9S,EAAAJ,GACA,SAAAA,EAAAgO,UAAA,IAAA5N,EAAAmlQ,WAAAvlQ,GAAAvZ,QACA2Z,EAAAsT,OAAA1T,GAAA,IAGA89S,GAAA,SAAA19S,EAAAJ,GACA,IAAAi9S,EACA,IAAAj9S,EAAAsI,UAAAtI,EAAAqO,YAAA,IAAArO,EAAAqO,WAAA/F,WACA20S,EAAAz+B,GAAAH,kBAAAj+Q,EAAAJ,EAAAqO,YACAjO,EAAAqoF,SAAAzoF,EAAA,UAAAi9S,EACA78S,EAAAqxL,SAAAzxL,EAAA,kBAAAi9S,GACS78S,EAAAqoF,SAAAzoF,EAAA,qBAAAi9S,GACT78S,EAAAqxL,SAAAzxL,EAAA,0BAIA+9S,GAAA,SAAA39S,EAAAq3E,EAAAwmM,EAAAj+Q,IACAy3E,EAAA/8D,OAAA8tD,OAAAiP,EAAA/8D,OAAAuiS,kBACAn1T,GAAA66P,KAAA3iP,EAAAjZ,EAAA+2T,GAAA19S,GAAA,cACA09S,GAAA19S,EAAAJ,KAGAg+S,GAAA,SAAA59S,EAAAq3E,EAAAwmM,EAAAj+Q,GACAy3E,EAAA/8D,QAAA+8D,EAAA/8D,OAAAujS,iBACAP,GAAA19S,EAAA29S,GAAAv9S,EAAA,YAAAw9S,GAAAx9S,EAAA,kBAAAo+Q,GAAAR,YAAAvmM,EAAA/8D,OAAAujS,gBAAAhgC,MAGAigC,GAAA,SAAA99S,EAAAq3E,EAAAwmM,EAAAj+Q,GACA,QAAAy3E,EAAAwS,QAAA,QAAAxS,EAAAwS,SACAyzN,GAAA19S,EAAA29S,GAAAv9S,EAAA,YAAAw9S,GAAAx9S,EAAA,gBACAA,EAAAsT,OAAAtT,EAAAu5E,OAAA,QAAAlC,EAAAwS,OAAA,YAAAjqF,IAAA,KAGAm+S,GAAA,SAAA/9S,EAAAq3E,EAAAwmM,EAAAj+Q,GACAA,IAAA,IAAAy3E,EAAA2mO,iBACAp+S,EAAAu9S,GAAAn9S,EAAAo+Q,GAAAX,wBAAA79Q,MACAA,EAAAu9S,GAAAn9S,EAAAJ,EAAAw+Q,GAAAX,wBAAA79Q,GAAA,MAGAq+S,GAAA,SAAAj+S,EAAAq3E,EAAAz3E,GACA,GAAAy3E,EAAA6mO,mBAAA,CACA,IAAAj2S,EAAAovE,EAAAokO,MAAA,eACAuB,GAAAh9S,EAAAu5E,OAAAtxE,EAAArI,GAAA,SAAAA,GACAq9S,GAAAr9S,IACAo9S,GAAA3lO,EAAA/8D,OAAA,SAAA9zB,EAAAqG,GACAmT,EAAAqxL,SAAAzxL,EAAA/S,EAAA,UAMAsxT,GAAA,SAAA/hP,EAAA83O,EAAAr2B,EAAAj+Q,GACAo9S,GAAA9I,EAAA,SAAA78N,GACA2lO,GAAA5gP,EAAAp8D,IAAAu5E,OAAAlC,EAAAwS,OAAAjqF,GAAA,SAAAoS,GACAirS,GAAAjrS,IAGA+qS,GAAAnlO,aAAAxb,EAAAib,EAAAwmM,EAAA7rQ,EAAAqlE,EAAApgD,MAAAjlB,EAAA,QAEAisS,GAAA7hP,EAAAp8D,IAAAq3E,EAAAz3E,MAGAw+S,GAAA,SAAAhiP,EAAAib,EAAAxqF,EAAAgxR,EAAAj+Q,GACAk1S,GAAAzzJ,UAAAjlF,EAAAx8D,EAAAqO,WAAAphB,EAAAgxR,IACAk/B,GAAAnlO,aAAAxb,EAAAib,EAAAwmM,EAAAj+Q,IAIAy3E,EAAAgnO,oBACAjiP,EAAAp8D,IAAA4oL,UAAAhpL,EAAAqO,WAAA,SAAA2D,GACA,GAAAkjS,GAAAzzJ,UAAAjlF,EAAAxqD,EAAA/kB,EAAAgxR,GAEA,OADAk/B,GAAAnlO,aAAAxb,EAAAib,EAAAwmM,EAAAj+Q,IACA,KAKA0+S,GAAA,CACAH,qBACAR,0BACAC,mCACAE,eACAC,iBACAK,qBAGAG,GAAA,SAAAl2G,EAAAqpE,EAAAD,EAAAE,GACA,IAAAl6O,EAAA9xC,EAAAwZ,SAAAs5B,cAGA,OAFAhB,EAAAQ,SAAAowK,EAAAqpE,GACAj6O,EAAAa,OAAAm5O,EAAAE,GACAl6O,GAEA+mR,GAAA,SAAA/mR,GACA,IAAAijP,EAAA3H,GAAAP,eAAA/6O,GACAolP,EAAA9J,GAAAN,aAAAh7O,GACA8nC,EAAA9nC,EAAAmlR,wBACA,OAAAjhC,GAAAZ,cAAA,EAAAx7M,EAAAs9M,GAAApyR,IAAA,SAAAg0T,GACA,OAAAjmC,GAAAkC,EAAAmC,EAAAt9M,IAAAi5M,GAAAkC,EAAA+jC,EAAAl/O,GACAg/O,GAAA7jC,EAAAvmQ,YAAAumQ,EAAApzP,SAAAm3R,EAAAtqS,YAAAsqS,EAAAn3R,UAEAmQ,IAEOxtC,MAAAwtC,IAEPinR,GAAA,SAAAjnR,GACA,OAAAA,EAAA8B,UAAA9B,EAAA+mR,GAAA/mR,IAEAknR,GAAA,CAA2Bz+O,UAAAw+O,IAE3BE,GAAAl3T,GAAAgD,KACAm0T,GAAA,SAAAj/S,GACA,OAAAA,GAAA,IAAAA,EAAAsI,WAAAm1Q,GAAAvrF,eAAAlyL,KAAA61Q,GAAA71Q,KAAA6oL,GAAA21D,QAAAx+O,IAEA23E,GAAA,SAAAw5B,EAAAlkH,EAAAgxR,EAAAj+Q,GACA,IAEAuwL,EAAA14J,EAFAy8Q,EAAAnjM,EAAAr5B,UAAAlnF,IAAA3D,GACAwqF,EAAA68N,EAAA,GAEAlkK,GAAApwI,GAAAmxG,EAAAv5E,UAAAw4G,cACAhwI,EAAA+wG,EAAA/wG,IAAAw3B,EAAAu5E,EAAAv5E,UACAsnR,EAAA,SAAA7+O,EAAAgjE,GAEA,GADAA,KAAA5rD,EACApX,EAAA,CAOA,GANAgjE,EAAA87K,UACA97K,EAAA87K,SAAA9+O,EAAAgjE,EAAA46I,EAAAj+Q,GAEAg/S,GAAA37K,EAAA3oH,OAAA,SAAA9zB,EAAAqG,GACAmT,EAAAqxL,SAAApxH,EAAApzE,EAAAuxR,GAAAR,YAAAp3R,EAAAq3R,MAEA56I,EAAA3oH,OAAA,CACA,IAAA0kS,EAAAh/S,EAAA+3L,UAAA93H,EAAA,SACA++O,GACA/+O,EAAA3rD,aAAA,iBAAA0qS,GAGAJ,GAAA37K,EAAA5oH,WAAA,SAAA7zB,EAAAqG,GACAmT,EAAA2vN,UAAA1vJ,EAAApzE,EAAAuxR,GAAAR,YAAAp3R,EAAAq3R,MAEA+gC,GAAA37K,EAAA7oH,QAAA,SAAA5zB,GACAA,EAAA43R,GAAAR,YAAAp3R,EAAAq3R,GACA79Q,EAAA6gM,SAAA5gI,EAAAz5E,IACAwZ,EAAAu6J,SAAAt6F,EAAAz5E,OAKAy4T,EAAA,SAAA/K,EAAAt0S,GACA,IAAAm1H,GAAA,EACA,QAAA19C,EAAApvE,WAGA22S,GAAA1K,EAAA,SAAA78N,GACA,mBAAAA,KAAA99C,YAAAy2G,GAGA,OAAAhwI,EAAAjW,GAAA6V,EAAAy3E,EAAApvE,YAAAwtQ,GAAA71Q,IACAk/S,EAAAl/S,EAAAy3E,GACA09C,GAAA,GACA,QAHA,IAMAA,IAEAmqL,EAAA,SAAAl/S,EAAAy3B,EAAA04J,EAAAgvH,GACA,IACAl/B,EAAAm/B,EADA1+B,EAAA,GACAp7I,GAAA,EACA26I,EAAA5oM,EAAAwS,QAAAxS,EAAA68C,MACAkrL,EAAAp/S,EAAAsuB,OAAA2xP,GACA6+B,EAAAM,GACAr/B,GAAAx9B,KAAAviP,EAAAy3B,EAAA,SAAAuD,GACA,IAAAqkR,EACApgP,EAAA,SAAAr/D,GACA,IAAAgO,EAAA+1L,EAAAt+D,EAAAq3K,EASA,GARAA,EAAAp3K,EACA13H,EAAAhO,EAAAgO,SAAAlM,cACAiiM,EAAA/jM,EAAAqO,WAAAL,SAAAlM,cACA,IAAA9B,EAAAsI,UAAAlI,EAAA2+D,mBAAA/+D,KACA88S,EAAAp3K,EACAA,EAAA,SAAAtlI,EAAA2+D,mBAAA/+D,GACAylI,GAAA,GAEA+4I,GAAAN,KAAAlwQ,EAAA,MAKA,OAJAyxS,EAAA,OACAhoO,EAAA68C,OACAl0H,EAAAsT,OAAA1T,IAIA,GAAAy3E,EAAA5jE,SAAAqhS,GAAAzzJ,UAAAtwC,EAAAnxG,EAAA/S,EAAAgxR,GACAwhC,EAAA,MADA,CAIA,GAAA/5K,IAAAD,GAAAhuD,EAAA68C,QAAA78C,EAAA5jE,SAAA2qQ,GAAAp2F,YAAAj3E,EAAAnjG,IAAAwwQ,GAAAn0K,QAAA8G,EAAA4yF,EAAAs8E,GAKA,OAJArgR,EAAAI,EAAAsyL,OAAA1yL,EAAAqgR,GACA6+B,EAAAl/S,GACA8gR,EAAA7yR,KAAA+R,QACAy/S,EAAA,GAGA,GAAAhoO,EAAApvE,SAAA,CACA,IAAA8sH,EAAAkqL,EAAA/K,EAAAt0S,GACA,IAAAy3E,EAAAwS,QAAAkrC,EAEA,YADAsqL,EAAA,IAIA/5K,GAAAD,IAAA+4I,GAAAn0K,QAAA8G,EAAAkvK,EAAAryQ,KAAAwwQ,GAAAn0K,QAAA8G,EAAA4yF,EAAAs8E,KAAAk/B,GAAA,IAAAv/S,EAAAsI,UAAA,IAAAtI,EAAAy6B,UAAAh0C,QAAA,QAAAuZ,EAAAy6B,UAAAk8E,WAAA,IAAAk/J,GAAA71Q,IAAAy3E,EAAAwS,QAAA7pF,EAAA0+D,QAAA9+D,IAQAy/S,EAAA,EACAT,GAAAl3T,GAAAwhM,KAAAtpL,EAAAJ,YAAAy/D,GACAomE,IACAC,EAAAo3K,GAEA2C,EAAA,IAZAA,IACAA,EAAAr/S,EAAAlB,MAAAsgT,GAAA,GACAx/S,EAAAqO,WAAAuE,aAAA6sS,EAAAz/S,GACA8gR,EAAA7yR,KAAAwxT,IAEAA,EAAAvsS,YAAAlT,MAUAg/S,GAAA5jR,EAAAikC,MAEA,IAAAoY,EAAAokO,OACAmD,GAAAl+B,EAAA,SAAA9gR,GACA,IAAAq/D,EAAA,SAAAr/D,GACA,MAAAA,EAAAgO,UACAkxS,EAAAl/S,EAAAy3E,GAEAunO,GAAAl3T,GAAAwhM,KAAAtpL,EAAAJ,YAAAy/D,IAEAA,EAAAr/D,KAGAg/S,GAAAl+B,EAAA,SAAA9gR,GACA,IAAA0/S,EACAC,EAAA,SAAA3/S,GACA,IAAA5O,EAAA,EAMA,OALA4tT,GAAAh/S,EAAAJ,WAAA,SAAAI,GACAw+Q,GAAAZ,iBAAA59Q,IAAAy9Q,GAAAvrF,eAAAlyL,IACA5O,MAGAA,GAEAwuT,EAAA,SAAA7gR,GACA,IAAA3sB,GAAA,EAOA,OANA4sS,GAAAjgR,EAAAn/B,WAAA,SAAAI,GACA,GAAAi/S,GAAAj/S,GAEA,OADAoS,EAAApS,GACA,IAGAoS,GAEAytS,EAAA,SAAA7/S,GACA,IAAAoS,EAAAlT,EAQA,OAPAkT,EAAAwtS,EAAA5/S,GACAoS,IAAAqrQ,GAAAvrF,eAAA9/K,IAAA8iS,GAAAT,UAAAr0S,EAAAgS,EAAAqlE,KACAv4E,EAAAkB,EAAAlB,MAAAkT,GAAA,GACA8sS,EAAAhgT,GACAkB,EAAAqB,QAAAvC,EAAAc,GAAA,GACAI,EAAAsT,OAAAtB,EAAA,IAEAlT,GAAAc,GAEA0/S,EAAAC,EAAA3/S,KACA8gR,EAAAr6R,OAAA,IAAA2Z,EAAA0+D,QAAA9+D,IAAA,IAAA0/S,GAIAjoO,EAAAwS,QAAAxS,EAAA5jE,WACA4jE,EAAApgD,OAAA,IAAAqoR,IACA1/S,EAAA6/S,EAAA7/S,IAEA0+S,GAAAH,kBAAAptM,EAAAmjM,EAAAr2B,EAAAj+Q,GACA0+S,GAAAF,iBAAArtM,EAAA15B,EAAAxqF,EAAAgxR,EAAAj+Q,GACA0+S,GAAAV,gCAAA59S,EAAAq3E,EAAAwmM,EAAAj+Q,GACA0+S,GAAAR,YAAA99S,EAAAq3E,EAAAwmM,EAAAj+Q,GACA0+S,GAAAP,cAAA/9S,EAAAq3E,EAAAwmM,EAAAj+Q,IAXAI,EAAAsT,OAAA1T,EAAA,MAeA,aAAAI,EAAA2+D,mBAAAnnC,EAAAqoC,YAUA,GAAAwX,EAAA,CACA,GAAAz3E,EACAA,EAAAsI,SACA+2S,EAAA/K,EAAAt0S,KACA63B,EAAAz3B,EAAAmhE,YACA1pC,EAAAS,eAAAt4B,GACA63B,EAAAc,YAAA34B,GACAs/S,EAAAl/S,EAAAu/Q,GAAAF,UAAAtuK,EAAAt5E,EAAAy8Q,GAAA,UAGAgL,EAAAl/S,EAAAJ,EAAA,cAGA,GAAAowI,GAAA34D,EAAAwS,SAAA7pF,EAAAu5E,OAAA,+CAAAlzF,OAeA6yT,GAAAnoM,EAAAlkH,EAAAgxR,OAfA,CACA,IAAA6hC,EAAA3uM,EAAAv5E,UAAAqoC,UACAkxC,EAAA9zC,SAAA4tH,oBAAAqpH,EAAA,GAAAW,cAAA70S,EAAA4oL,UAAA82H,EAAA1/S,EAAA0+D,UACA6Y,GAAAw5B,EAAAmjM,EAAA,GAAAW,cAEA9jM,EAAAv5E,UAAA2nI,OAAAw/I,GAAAz+O,UAAA6wC,EAAAv5E,UAAAkrC,WACAytH,EAAAmlF,GAAAL,sBAAAlkK,EAAAv5E,WAAA,GACA0nR,EAAAl/S,EAAAu/Q,GAAAF,UAAAtuK,EAAAv5E,EAAAkrC,SAAAwxO,IACA78N,EAAA/8D,QACAgkS,GAAAX,uBAAA39S,EAAAq3E,EAAAwmM,EAAA6hC,GAEAloR,EAAA64J,eAAAF,GACAiuF,GAAAb,UAAAv9Q,EAAAw3B,IAAAkrC,UACAquC,EAAAp5B,cAKA+iO,GAAAP,YAAAttT,EAAAkkH,QAzCA,CACAnxG,EAAA43B,EAAAqoC,UACA,QAAA53E,EAAA,EAAAo0G,EAAA63M,EAAA7tT,OAA8C4B,EAAAo0G,EAAOp0G,IACrD,GAAAisT,EAAAjsT,GAAA60T,iBAAA98S,EAAAjW,GAAA6V,EAAAs0S,EAAAjsT,GAAAggB,UAEA,YADA62S,EAAAl/S,EAAAs0S,EAAAjsT,MAwCA03T,GAAA,CAAuBpoO,gBAEvBq4E,GAAA,SAAAgwJ,EAAAxjP,GACA,IAAAyjP,EAAAlhT,GAAA,IACAihT,EAAA/gT,IAAA,IACAu9D,EAAA/lC,GAAA,sBAAA5tC,GACAq3T,GAAA1jP,EAAA3zE,EAAAuf,QAAA63S,EAAAD,EAAApvT,UAGAsvT,GAAA,SAAA1jP,EAAA6D,EAAA4/O,EAAAE,GACA,IAAAC,EAAAlwT,GAAA+vT,EAAArvT,OACAyvT,EAAA,GACAC,EAAA,GACA9+J,EAAAt2J,EAAAszR,GAAA9mM,WAAAlb,EAAAp8D,IAAAigE,GAAA,SAAArgE,GACA,WAAAA,EAAAsI,WAAAtI,EAAA+U,aAAA,oBAEA5kB,GAAAgwT,EAAA,SAAA3yS,EAAAiqE,GACA3vF,GAAAgD,KAAA02J,EAAA,SAAAxhJ,GACA,OAAAw8D,EAAAsb,UAAA2pE,UAAAzhJ,EAAAy3E,EAAA,GAAyDjqE,EAAAmnS,WACzD,IAAAyL,EAAAt3T,QAAA2uF,KACA3sF,EAAA0iB,EAAAylF,UAAA,SAAAja,GACAA,GAAA,GACAh5E,OACAy3E,SACA+pE,cAGA6+J,EAAA5oO,GAAAjqE,EAAAylF,WAEAqtN,EAAA7oO,GAAAjqE,EAAAylF,WACA,IAEAiiN,GAAAb,iCAAA73O,EAAAx8D,EAAAy3E,SAAA,MAKA,IAAA8oO,EAAAC,GAAAP,EAAArvT,MAAA0vT,EAAAjgP,EAAAmhF,GACAy+J,EAAAhhT,IAAAjX,IAAA,GAA6Cq4T,GAAAE,KAE7CC,GAAA,SAAAP,EAAAK,EAAAjgP,EAAAmhF,GACA,OAAAu9F,GAAAkhE,EAAA,SAAAhtN,EAAAxb,GACA,QAAA3mF,GAAAwvT,EAAA7oO,KACA3sF,EAAAmoG,EAAA,SAAAja,GACAA,GAAA,GACAh5E,KAAAqgE,EACAoX,SACA+pE,eAGA,KAIOr5J,GAEPs4T,GAAA,SAAAT,EAAAz8K,EAAAvqD,EAAA27N,GACA,IAAA+L,EAAAV,EAAApvT,MACA9F,EAAAy4I,EAAAhrH,MAAA,cAAAk/D,GACAipO,EAAAjpO,KACAipO,EAAAjpO,GAAA,CACAk9N,UACA1hN,UAAA,KAGAytN,EAAAjpO,GAAAwb,UAAAhlG,KAAA+qF,KAEAgnO,EAAA/gT,IAAAyhT,IAEAhrM,GAAA,SAAAsqM,EAAAz8K,EAAAvqD,GACA,IAAA0nO,EAAAV,EAAApvT,MACA9F,EAAAy4I,EAAAhrH,MAAA,cAAAk/D,GACAipO,EAAAjpO,GAAAwb,UAAA/nG,EAAAw1T,EAAAjpO,GAAAwb,UAAA,SAAA5iF,GACA,OAAAA,IAAA2oE,IAEA,IAAA0nO,EAAAjpO,GAAAwb,UAAAxsG,eACAi6T,EAAAjpO,KAGAuoO,EAAA/gT,IAAAyhT,IAEA1jK,GAAA,SAAAxgF,EAAAwjP,EAAAz8K,EAAAvqD,EAAA27N,GAKA,OAJA,OAAAqL,EAAApvT,OACAo/J,GAAAgwJ,EAAAxjP,GAEAikP,GAAAT,EAAAz8K,EAAAvqD,EAAA27N,GACA,CACAjzN,OAAA,WACA,OAAAg0B,GAAAsqM,EAAAz8K,EAAAvqD,MAKAjzD,GAAA,SAAA3lB,GACA,IAAAmjI,EAAA,CACAo9K,UAAA,EACAt4S,SAAA,QACAqS,OAAA,CAAqBkmS,cAAA,SAErBC,aAAA,EACAx4S,SAAA,QACAqS,OAAA,CAAqBkmS,cAAA,YAErBE,aAAA,EACAz4S,SAAA,QACAqS,OAAA,CAAqBkmS,cAAA,YAErBG,UAAA,CACA,CACA14S,SAAA,eACAsxB,WAAA,EACAnf,QAAA,aACA0iS,iBAAA,EACAhyM,QAAA,yBAEA,CACA7iG,SAAA,mDACAqS,OAAA,CAAqBsmS,UAAA,QACrBzM,SAAA,EACArpM,SAAA,EACA+pM,aAAA,OAEA,CACA5sS,SAAA,YACAsxB,WAAA,EACAjf,OAAA,CAAqBknP,MAAA,QACrB12J,QAAA,0BAGA+1M,YAAA,CACA,CACA54S,SAAA,mDACAqS,OAAA,CAAqBsmS,UAAA,UACrBzM,SAAA,EACArpM,QAAA,wBACA+pM,aAAA,OAEA,CACA5sS,SAAA,eACAsxB,WAAA,EACAnf,QAAA,eACA0iS,iBAAA,EACAhyM,QAAA,yBAEA,CACA7iG,SAAA,MACAsxB,WAAA,EACAjf,OAAA,CACA4lE,QAAA,QACA+1J,WAAA,OACAC,YAAA,QAEAprI,SAAA,GAEA,CACA7iG,SAAA,QACAsxB,WAAA,EACAjf,OAAA,CACA27N,WAAA,OACAC,YAAA,QAEAprI,QAAA,0BAGAg2M,WAAA,CACA,CACA74S,SAAA,eACAsxB,WAAA,EACAnf,QAAA,cACA0iS,iBAAA,EACAhyM,QAAA,yBAEA,CACA7iG,SAAA,mDACAqS,OAAA,CAAqBsmS,UAAA,SACrBzM,SAAA,EACArpM,QAAA,wBACA+pM,aAAA,OAEA,CACA5sS,SAAA,YACAsxB,WAAA,EACAjf,OAAA,CAAqBknP,MAAA,SACrB12J,QAAA,0BAGAi2M,aAAA,EACA94S,SAAA,mDACAqS,OAAA,CAAqBsmS,UAAA,WACrBzM,SAAA,EACAU,aAAA,MACA/pM,QAAA,0BAEA2rL,KAAA,CACA,CACA5sM,OAAA,SACAv2E,OAAA,OAEA,CACAu2E,OAAA,OACAvvE,OAAA,CAAqB0mS,WAAA,SAErB,CACAn3N,OAAA,IACAv2E,OAAA,QAGAqlR,OAAA,CACA,CACA9uM,OAAA,KACAv2E,OAAA,OAEA,CACAu2E,OAAA,OACAvvE,OAAA,CAAqB2mS,UAAA,WAErB,CACAp3N,OAAA,IACAv2E,OAAA,QAGAmpR,UAAA,CACA,CACA5yM,OAAA,OACAvvE,OAAA,CAAqBuiS,eAAA,aACrB5lR,OAAA,GAEA,CACA4yD,OAAA,IACAv2E,OAAA,QAGA4tS,cAAA,CACA,CACAr3N,OAAA,OACAvvE,OAAA,CAAqBuiS,eAAA,gBACrB5lR,OAAA,GAEA,CACA4yD,OAAA,SACAv2E,OAAA,QAGA6tS,UAAA,CACAt3N,OAAA,OACAvvE,OAAA,CAAmB8tD,MAAA,UACnBqzO,OAAA,EACAM,gBAAA,EACAmC,oBAAA,GAEAkD,YAAA,CACAv3N,OAAA,OACAvvE,OAAA,CAAmBujS,gBAAA,UACnBpC,OAAA,EACAM,gBAAA,EACAmC,oBAAA,GAEAmD,SAAA,CACAx3N,OAAA,OACA99B,QAAA,EACAzxC,OAAA,CAAmB2kI,WAAA,UACnBi/J,oBAAA,GAEAoD,SAAA,CACAz3N,OAAA,OACA99B,QAAA,EACAzxC,OAAA,CAAmBomI,SAAA,UACnBw9J,oBAAA,GAEAqD,eAAA,CACA13N,OAAA,OACAxvE,WAAA,CAAuBukL,MAAA,WAEvB4iH,WAAA,CACAttL,MAAA,aACAzgH,SAAA,EACAH,OAAA,OAEA8nR,UAAA,CAAoBvxM,OAAA,OACpBwxM,YAAA,CAAsBxxM,OAAA,OACtB2D,KAAA,CAAe3D,OAAA,QACfphE,KAAA,CACAohE,OAAA,IACA5hF,SAAA,IACAqL,OAAA,MACA6E,OAAA,EACAhmB,MAAA,EACAqiT,QAAA,WACA,UAEAuK,SAAA,SAAA9+O,EAAAgjE,EAAA46I,GACAn2R,GAAAgD,KAAAmzR,EAAA,SAAAr3R,EAAAiK,GACAuP,EAAA2vN,UAAA1vJ,EAAAxvE,EAAAjK,OAIAi7T,aAAA,CACA,CACAx5S,SAAA,gFACAqL,OAAA,MACA6E,OAAA,EACA46C,QAAA,EACAqsN,cAAA,EACAjtR,MAAA,GAEA,CACA8V,SAAA,OACAoS,WAAA,CACA,QACA,SAEA/G,OAAA,QACA6E,OAAA,EACA46C,QAAA,EACA5gE,MAAA,GAEA,CACA8V,SAAA,IACAoS,WAAA,CACA,QACA,SAEAlC,OAAA,EACA46C,QAAA,EACA5gE,MAAA,KAUA,OANAzK,GAAAgD,KAAA,qDAAAytB,MAAA,eAAAtrB,GACAs2I,EAAAt2I,GAAA,CACAqnI,MAAArnI,EACAymB,OAAA,SAGA6vH,GAEAu+K,GAAA,CAA0BlxT,IAAAm1B,IAE1B,SAAAg8R,GAAAvlP,GACA,IAAA+mE,EAAA,GACA3yI,EAAA,SAAA3D,GACA,OAAAA,EAAAs2I,EAAAt2I,GAAAs2I,GAEAvuH,EAAA,SAAA/nB,GACA,OAAA6D,GAAAyyI,EAAAt2I,IAEAq3E,EAAA,SAAAr3E,EAAAwqF,GACAxqF,IACA,kBAAAA,EACAnF,GAAAgD,KAAAmC,EAAA,SAAAwqF,EAAAxqF,GACAq3E,EAAAr3E,EAAAwqF,MAGAnqF,EAAAmqF,KACAA,EAAA,CAAAA,IAEA3vF,GAAAgD,KAAA2sF,EAAA,SAAAA,GACA,qBAAAA,EAAAllF,OACAklF,EAAAllF,MAAAklF,EAAApvE,UAEA,qBAAAovE,EAAAl/D,QACAk/D,EAAAl/D,OAAAk/D,EAAApvE,UAAAovE,EAAAwS,QAEA,qBAAAxS,EAAA/jE,QAAA+jE,EAAApvE,WAAAovE,EAAAwS,SACAxS,EAAA/jE,OAAA,QAEA+jE,EAAApvE,UAAAovE,EAAAwS,SACAxS,EAAAklO,OAAA,EACAllO,EAAA+nM,cAAA,GAEA,kBAAA/nM,EAAAj9D,UACAi9D,EAAAj9D,QAAAi9D,EAAAj9D,QAAAjC,MAAA,UAGAgrH,EAAAt2I,GAAAwqF,KAIAoP,EAAA,SAAA55F,GAIA,OAHAA,GAAAs2I,EAAAt2I,WACAs2I,EAAAt2I,GAEAs2I,GAIA,OAFAj/D,EAAAw9O,GAAAlxT,IAAA4rE,EAAAp8D,MACAkkE,EAAA9H,EAAAa,SAAAkmE,SACA,CACA3yI,MACAE,IAAAkkB,EACAsvD,WACAuiB,cAIA,IAAAm7N,GAAAl6T,GAAAgD,KACAsV,GAAAkoQ,GAAAv4L,IACAkyO,GAAA,SAAAC,EAAA1lP,GACA,IAAA6D,EAAAr+C,EAAA7N,EACA5Z,EAAAiiE,KAAAjiE,QAAAmxP,GAAA,IACAg1B,EAAA,SAAArgN,EAAAr+C,GACAA,EAAAxH,QAAA/zB,QACA2Z,GAAAu6J,SAAAt6F,EAAAr+C,EAAAxH,QAAA9oB,KAAA,MAEA0O,GAAA+qL,WAAA9qH,EAAAr+C,EAAAnN,QAEApV,EAAA,SAAA0iT,GACA,IAAA9hP,EAQA,OAPAr+C,EAAA,kBAAAmgS,EAAA,CACAl1T,KAAAk1T,EACA3nS,QAAA,GACA3F,MAAA,IACSstS,EACT9hP,EAAAjgE,GAAAsuB,OAAA1M,EAAA/0B,MACAyzR,EAAArgN,EAAAr+C,GACAq+C,GAEA+hP,EAAA,SAAA/hP,EAAA/6D,GACA,IAAArY,EAAA,kBAAAozE,IAAAryD,SAAAlM,cAAAu+D,EACAgiP,EAAA9nT,EAAA60P,eAAAniQ,GACA+iQ,EAAAqyD,KAAAryD,gBACA,SAAAA,MAAAvpQ,UACA6e,IAAA,IAAAxd,GAAAivM,QAAAi5D,EAAA1qP,KAAA0qP,EAAA,KAKAsyD,EAAA,SAAAjiP,EAAA6hP,EAAAjwH,GACA,IAAAjgL,EAAAuwS,EAAAC,EACA30S,EAAAq0S,EAAAz7T,OAAA,GAAAy7T,EAAA,GACAO,EAAA50S,KAAA5gB,KAEA,GADAu1T,EAAAJ,EAAA/hP,EAAAoiP,GACAD,EACAC,IAAAD,GACAD,EAAAL,EAAA,GACAA,IAAAp0T,MAAA,IAEAy0T,EAAAC,OAES,GAAA30S,EACT00S,EAAAL,EAAA,GACAA,IAAAp0T,MAAA,QACS,IAAAmkM,EACT,OAAA5xH,EAgBA,OAdAkiP,IACAvwS,EAAAvS,EAAA8iT,GACAvwS,EAAAkB,YAAAmtD,IAEA4xH,IACAjgL,IACAA,EAAA5R,GAAAsuB,OAAA,OACA1c,EAAAkB,YAAAmtD,IAEAv4E,GAAAgD,KAAAmnM,EAAA,SAAAn/K,GACA,IAAA4vS,EAAAjjT,EAAAqT,GACAd,EAAAY,aAAA8vS,EAAAriP,MAGAiiP,EAAAtwS,EAAAkwS,EAAAK,KAAAtwH,WAEA,OAAAiwH,KAAAz7T,QACAu7B,EAAAkgS,EAAA,GACA7hP,EAAA5gE,EAAAuiB,GACA7N,EAAA/T,GAAAsuB,OAAA,OACAva,EAAAjB,YAAAovS,EAAAjiP,EAAA6hP,EAAAp0T,MAAA,GAAAk0B,EAAAiwK,WACA99K,GAEA,IAGAwuS,GAAA,SAAAt6S,EAAAm0D,GACA,OAAAylP,GAAAW,GAAAv6S,GAAAm0D,IAEAqmP,GAAA,SAAA7gS,GACA,IAAAkpK,EACA96L,EAAA,CACAoqB,QAAA,GACA3F,MAAA,IA4BA,OA1BAmN,EAAA5xB,EAAAiY,SAAAvgB,GAAAse,KAAA4b,GACA,MAAAA,IACAkpK,EAAAlpK,EAAAvgB,QAAA,qDAAAqhT,EAAAt4C,EAAAC,EAAAs4C,EAAAC,GACA,OAAAx4C,GACA,QACAp6Q,EAAAykB,MAAA7qB,GAAAygR,EACA,MACA,QACAr6Q,EAAAoqB,QAAAvsB,KAAAw8Q,GACA,MACA,SACA,IAAA3iR,GAAAivM,QAAA,8CAAAx+K,MAAA,KAAAkyP,KACAr6Q,EAAAykB,MAAA41P,MAEA,MAEA,SAAAs4C,EAAA,CACA,IAAAxwO,EAAAywO,EAAAzxT,MAAA,8BACAghF,IACAniF,EAAAykB,MAAA09D,EAAA,IAAAA,EAAA,IAGA,YAGAniF,EAAAnD,KAAAi+L,GAAA,MACA96L,GAEAwyT,GAAA,SAAAv6S,GACA,OAAAA,GAAA,kBAAAA,GAGAA,IAAAkQ,MAAA,cACAlQ,IAAA5G,QAAA,4BACA3Z,GAAA+C,IAAAwd,EAAAkQ,MAAA,oCAAAyJ,GACA,IAAAiwK,EAAAnqM,GAAA+C,IAAAm3B,EAAAzJ,MAAA,gBAAAsqS,IACAzyT,EAAA6hM,EAAAl9G,MAIA,OAHAk9G,EAAAxrM,SACA2J,EAAA6hM,YAEA7hM,IACOb,WAXP,IAaAs1I,GAAA,SAAAroE,EAAAib,GACA,IAAAxqF,EAAAg2T,EAAAC,EAAAv1Q,EACAw1Q,EAAAC,EAAAC,EAAA,GAEA,GADAD,EAAA5mP,EAAAa,SAAAimP,gBACA,IAAAF,EACA,SAEA,kBAAAA,IACAA,EAAA,+IAEA,IAAAG,EAAA,SAAAztT,GACA,OAAAA,EAAA2L,QAAA,eAEA,qBAAAg2E,EAAA,CAEA,GADAA,EAAAjb,EAAAsb,UAAAlnF,IAAA6mF,IACAA,EACA,OAEAA,IAAA,GAEA,kBAAAA,IACA2rO,EAAA3rO,EAAAyzB,SACA,IAAAk4M,GACA,IAGAn2T,EAAAwqF,EAAA68C,OAAA78C,EAAAwS,QAAA,OACAt8C,EAAAi1Q,GAAAnrO,EAAApvE,UACAslC,EAAAlnD,QACAknD,EAAA,GAAA1gD,OACA0gD,EAAA,GAAA1gD,QAEAA,EAAAwqF,EAAApvE,SACA46S,EAAAhB,GAAAt0Q,EAAA6uB,IAEAymP,EAAAhB,GAAA,CAAAh1T,GAAAuvE,GAEA0mP,EAAA9iT,GAAAu5E,OAAA1sF,EAAAg2T,GAAA,IAAAA,EAAA1wS,WACAyvS,GAAAvqO,EAAA/8D,OAAA,SAAA9zB,EAAAqG,GACArG,EAAA28T,EAAA38T,GACAA,GACAwZ,GAAAqxL,SAAAyxH,EAAAj2T,EAAArG,KAGAo7T,GAAAvqO,EAAAh9D,WAAA,SAAA7zB,EAAAqG,GACArG,EAAA28T,EAAA38T,GACAA,GACAwZ,GAAA2vN,UAAAmzF,EAAAj2T,EAAArG,KAGAo7T,GAAAvqO,EAAAj9D,QAAA,SAAA5zB,GACAA,EAAA28T,EAAA38T,GACAwZ,GAAA6gM,SAAAiiH,EAAAt8T,IACAwZ,GAAAu6J,SAAAuoJ,EAAAt8T,KAGA41E,EAAAya,KAAA,kBACA72E,GAAA4lQ,UAAAi9C,EAAA,CACA/6R,SAAA,WACAvD,MAAA,QAEA63C,EAAAhuD,UAAA0E,YAAA+vS,GACAE,EAAA/iT,GAAAqoF,SAAAjsB,EAAAhuD,UAAA,eACA20S,EAAA,MAAAjiT,KAAAiiT,GAAAv/R,SAAAu/R,EAAA,MACAnB,GAAAoB,EAAA7qS,MAAA,cAAAtrB,GACA,IAAArG,EAAAwZ,GAAAqoF,SAAAy6N,EAAAj2T,GAAA,GACA,yBAAAA,IAAA,oCAAAiU,KAAAta,KACAA,EAAAwZ,GAAAqoF,SAAAjsB,EAAAhuD,UAAAvhB,GAAA,GACA,YAAAmT,GAAAwyE,MAAAhsF,GAAAkb,kBAIA,UAAA7U,GACA,YAAAmT,GAAAwyE,MAAAhsF,GAAAkb,eADA,CAKA,iBAAA7U,GACA,QAAAiU,KAAAta,GAAA,CACA,OAAAu8T,EACA,OAEA,IAAAK,EAAA9/R,WAAA98B,IAAA,KAAAsa,KAAAta,GAAA,OACAA,EAAA48T,EAAAL,EAAA,KAGA,WAAAl2T,GAAArG,IACAy8T,GAAA,kBAEAA,GAAAp2T,EAAA,IAAArG,EAAA,OAEA41E,EAAAya,KAAA,uBACA72E,GAAAsT,OAAAuvS,GACAI,IAEAI,GAAA,CACA5+K,cACA+9K,iBACAD,mBAGAx2P,GAAA,SAAAqQ,EAAA+mE,EAAAt2I,EAAAgxR,EAAAj+Q,GACA,IAAAqjI,EAAAE,EAAA3yI,IAAA3D,IACAioT,GAAA3jT,MAAAirE,EAAAvvE,EAAAgxR,EAAAj+Q,IAAA,WAAAqjI,EAAA,KAAAA,EAAA,GAAAl3E,OAGA4zP,GAAApoO,YAAAnb,EAAAvvE,EAAAgxR,EAAAj+Q,GAFAm9S,GAAAzpS,OAAA8oD,EAAAvvE,EAAAgxR,EAAAj+Q,IAKA0jT,GAAA,CAAwBv3P,WAExBimG,GAAA,SAAA51F,GACAA,EAAAg3O,YAAA,oBACAh3O,EAAAg3O,YAAA,sBACAh3O,EAAAg3O,YAAA,yBACA,QAAAnrT,EAAA,EAAqBA,GAAA,EAAQA,IAC7Bm0E,EAAAg3O,YAAA,UAAAnrT,EAAA,IACA,eACA,EACA,IAAAA,IAGAm0E,EAAAg3O,YAAA,eACA,eACA,EACA,MAEAh3O,EAAAg3O,YAAA,eACA,eACA,EACA,QAEAh3O,EAAAg3O,YAAA,eACA,eACA,EACA,aAGAmQ,GAAA,CAA2BrvP,MAAA89F,IAE3BwxJ,GAAA,SAAApnP,GACA,IAAA+mE,EAAAw+K,GAAAvlP,GACAqnP,EAAA9kT,GAAA,MAGA,OAFA4kT,GAAArvP,MAAAkI,GACA+yF,GAAA/yF,GACA,CACA5rE,IAAA2yI,EAAA3yI,IACAE,IAAAyyI,EAAAzyI,IACAwzE,SAAAi/D,EAAAj/D,SACAuiB,WAAA08C,EAAA18C,WACAngG,MAAAK,EAAAg5T,GAAApoO,YAAAnb,GACA9oD,OAAA3sB,EAAAo2T,GAAAzpS,OAAA8oD,GACArQ,OAAAplE,EAAA28T,GAAAv3P,OAAAqQ,EAAA+mE,GACAhyI,MAAAxK,EAAAmuT,GAAA3jT,MAAAirE,GACAq4O,SAAA9tT,EAAAmuT,GAAAL,SAAAr4O,GACAilF,UAAA16J,EAAAmuT,GAAAzzJ,UAAAjlF,GACAuiF,SAAAh4J,EAAAmuT,GAAAn2J,SAAAviF,GACAwgF,cAAAj2J,EAAAi2J,GAAAxgF,EAAAqnP,GACAh/K,WAAA99I,EAAA08T,GAAA5+K,WAAAroE,KAIAqe,GAAA,SAAAipO,EAAAzmP,EAAAj9D,GACA0jT,EAAAtjH,mBAAA,6BAAAplK,EAAAnuC,GACA,IAAA+S,EAAA3X,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA2X,EAAAo7B,EAAA/yC,GACA2X,EAAAue,KAAA,WAAAve,EAAAue,KAAA,sBACAve,EAAAue,KAAAtxB,EAAA,QAGA62T,EAAAtjH,mBAAA,0BAAAplK,EAAAnuC,GACA,IAAA+S,EAAApZ,EAAAyB,EAAA+yC,EAAA30C,OACAs9T,EAAA,YAAA92T,EACAilQ,EAAA70L,EAAA80L,cACAC,EAAA/0L,EAAAg1L,oBACA,MAAAhqQ,IACA2X,EAAAo7B,EAAA/yC,GACAzB,EAAAoZ,EAAAue,KAAAwlS,QACAr5T,IAAA9D,GACAoZ,EAAAue,KAAAtxB,EAAArG,EAAAH,OAAA,EAAAG,EAAA,MACAoZ,EAAAue,KAAAwlS,EAAA,QAEAn9T,EAAAoZ,EAAAue,KAAAtxB,GACA,UAAAA,EACArG,EAAAwZ,EAAAm+L,eAAAn+L,EAAAo+L,WAAA53M,GAAAoZ,EAAA/S,MACailQ,IACbtrQ,EAAAsrQ,EAAAxpQ,KAAA0pQ,EAAAxrQ,EAAAqG,EAAA+S,EAAA/S,OAEA+S,EAAAue,KAAAtxB,EAAArG,EAAAH,OAAA,EAAAG,EAAA,SAIAk9T,EAAAtjH,mBAAA,iBAAAplK,GACA,IAAAp7B,EAAApZ,EAAAyB,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA2X,EAAAo7B,EAAA/yC,GACAzB,EAAAoZ,EAAAue,KAAA,SACA33B,IACAA,EAAAoZ,EAAAue,KAAA,SAAA9c,QAAA,kCACAzB,EAAAue,KAAA,QAAA33B,EAAAH,OAAA,EAAAG,EAAA,SAIAk9T,EAAAtjH,mBAAA,yBAAAplK,EAAAnuC,EAAA3G,GACA,IAAA0Z,EAAA3X,EAAA+yC,EAAA30C,OACA,MAAA4B,IAEA,GADA2X,EAAAo7B,EAAA/yC,GACA,aAAA2X,EAAAue,KAAA,mBAAAj4B,EAAA09T,QAAA,CACA,IAAAC,EAAAl4T,EAAAD,KAAAkU,EAAAuS,YAAAvnB,OAAA,SAAAunB,GACA,OAAAm7P,GAAAF,OAAAj7P,EAAA3rB,SAEAq9T,EACAjkT,EAAA4T,SAEA5T,EAAA0T,YAKAowS,EAAAvjH,cAAA,oBAAAnlK,GACA,IAAAp7B,EAAA3X,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA2X,EAAAo7B,EAAA/yC,GAAAkqB,WACAvS,IACAA,EAAApZ,MAAAyjQ,GAAAD,OAAApqP,EAAApZ,UAIAk9T,EAAAvjH,cAAA,wBAAAnlK,EAAAnuC,GACA,IAAA+S,EAAApZ,EAAAuG,EAAA9E,EAAA+yC,EAAA30C,OACA2f,EAAA,SAAAxf,GACA,OAAAA,EAAA6a,QAAA,iCAAAA,QAAA,yBAAAA,QAAA,8HAAAA,QAAA,iHAEA,MAAApZ,IACA2X,EAAAo7B,EAAA/yC,GACAzB,EAAAoZ,EAAAuS,WAAAvS,EAAAuS,WAAA3rB,MAAA,GACA,WAAAqG,GACAE,EAAA6S,EAAAue,KAAA,QACApxB,GACA6S,EAAAue,KAAA,uBAAApxB,EAAA,KAAAA,EAAAsU,QAAA,cAEA,UAAA47D,EAAA0rN,gBAAAniS,EAAAH,OAAA,IACAuZ,EAAAuS,WAAA3rB,MAAA,iBAAAwf,EAAAxf,GAAA,aAGA,UAAAy2E,EAAA0rN,gBAAAniS,EAAAH,OAAA,IACAuZ,EAAAuS,WAAA3rB,MAAA,YAAAwf,EAAAxf,GAAA,cAKAk9T,EAAAvjH,cAAA,oBAAAnlK,GACA,IAAAp7B,EAAA3X,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA2X,EAAAo7B,EAAA/yC,GACA,IAAA2X,EAAApZ,MAAAkC,QAAA,YACAkX,EAAA/S,KAAA,SACA+S,EAAA7S,KAAA,EACA6S,EAAApZ,MAAAoZ,EAAApZ,MAAA6a,QAAA,yBACW,IAAAzB,EAAApZ,MAAAkC,QAAA,oBACXkX,EAAA/S,KAAA,QACA+S,EAAA7S,KAAA,EACA6S,EAAAsgB,KAAA,EACAtgB,EAAApZ,MAAAg6M,SAAA5gM,EAAApZ,OAAAmf,OAAA,OAIA+9S,EAAAvjH,cAAA,+BAAAnlK,EAAAnuC,GACA,IAAA+S,EAAA3X,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA2X,EAAAo7B,EAAA/yC,GACA,IAAA2X,EAAA7S,KACA6S,EAAA0T,SACW,IAAA1T,EAAA7S,OACX,UAAAF,GAAA+S,EAAAue,KAAA,SACAve,EAAAue,KAAA,kBAKAulS,EAAAtjH,mBAAA,yBAAAplK,GACAtwC,EAAAswC,EAAA,SAAAp7B,GACA,iBAAAA,EAAAue,KAAA,mBACAve,EAAAyoL,QAAAq7H,EAAAvpT,OAAA65L,uBACAp0L,EAAA0T,SAEA1T,EAAA4T,cAKAkwS,EAAAtjH,mBAAA,sHAAAplK,EAAAnuC,GACA,IAAA5E,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA+yC,EAAA/yC,GAAAk2B,KAAAtxB,EAAA,SAIAi3T,GAAA,SAAAvkP,GACA,IAAAwkP,EAAAC,EACAn8H,EAAA,SAAAjoL,GACA,OAAAA,GAAA,OAAAA,EAAA/S,MAEAk3T,EAAAxkP,EAAAynH,UACAa,EAAAk8H,KACAC,EAAAD,EAAAtkP,KACAooH,EAAAm8H,KACAD,EAAAzwS,SACA0wS,EAAA1wS,YAIA2wS,GAAA,CACA//O,SAAAuW,GACAqpO,mBAGAI,GAAA,SAAA9nP,EAAAx8D,EAAA1Z,GACA,IAAAi+T,EAAAjlT,EAAAklT,EACApkT,EAAAo8D,EAAAp8D,IAoBA,OAnBAJ,IAAAwU,WAAA,GACA+vS,EAAAx+T,EAAAwZ,SAAAqxS,eACA2T,EAAA1T,qBACAvxS,EAAAilT,EAAA1T,mBAAA,IACA/oT,GAAAgD,KAAA,SAAAkV,EAAAgO,SAAAhO,EAAAJ,WAAA,CAAAI,GAAA,SAAAA,GACAV,EAAAiP,KAAA2E,YAAA5T,EAAAk5S,WAAAx4S,GAAA,MAGAA,EADA,SAAAA,EAAAgO,SACA1O,EAAAiP,KAAAgE,WAEAjT,EAAAiP,KAEAi2S,EAAApkT,EAAAd,IACAc,EAAAd,OAEAi4E,GAAAw2M,eAAAvxN,EAAAzpE,GAAAzM,EAAA,CAAiD0Z,UACjDwkT,IACApkT,EAAAd,IAAAklT,GAEAxkT,GAEAykT,GAAA,SAAAjoP,EAAAl2E,GACA,OAAAk2E,KAAAkoP,kBAAA,gBAAAp+T,EAAA+hS,WAEAhpN,GAAA,SAAA7C,EAAAx8D,EAAA1Z,GACA,OAAAm+T,GAAAjoP,EAAAl2E,GAAAg+T,GAAA9nP,EAAAx8D,EAAA1Z,GAAA0Z,GAEA2kT,GAAA,CAAmCtlP,YAEnCulP,GAAA,SAAA5kT,EAAAi0C,GACAnpD,EAAAmpD,EAAA,SAAAhnD,GACA+S,EAAAue,KAAAtxB,EAAA,SAGA43T,GAAA,SAAAC,EAAApqS,EAAAqqS,GACAD,EAAAvkH,cAAA,gBAAAnlK,GACAtwC,EAAAswC,EAAA,SAAAp7B,GACA,IAAA3P,EAAAqqB,EAAAgmD,MAAA1gE,EAAAue,KAAA,UACAiqD,EAAAxoE,EAAAue,KAAA,SACAymS,EAAAhlT,EAAAue,KAAA,QACA7vB,EAAAsR,EAAAue,KAAA,QACAiqD,IACAn4E,EAAAm4E,SAEAw8O,IACA30T,EAAA,eAAA20T,GAEAt2T,IACA2B,EAAA,aAAA00T,EAAAnhS,SAAA5jB,EAAAue,KAAA,gBAEAve,EAAA/S,KAAA,OACA+S,EAAAue,KAAA,QAAA7D,EAAAqiL,UAAA1sM,IACAu0T,GAAA5kT,EAAA,CACA,QACA,OACA,cAKAilT,GAAA,SAAAH,EAAApqS,GACAoqS,EAAAvkH,cAAA,kBAAAnlK,GACAtwC,EAAAswC,EAAA,SAAAp7B,GACA,IAAA3P,EAAAqqB,EAAAgmD,MAAA1gE,EAAAue,KAAA,UACAluB,EAAA,kCACA2P,EAAA/S,KAAA,OACA+S,EAAAue,KAAA,QAAA7D,EAAAqiL,UAAA1sM,SAIA60T,GAAA,SAAAJ,EAAAznP,GACA,IAAA3iD,EAAA48L,KACAj6I,EAAAi0N,wBACAuzB,GAAAC,EAAApqS,EAAA5yB,GAAA86P,QAAAvlL,EAAA8zN,0BAEA8zB,GAAAH,EAAApqS,IAEA6kE,GAAA,SAAAulO,EAAAznP,GACAA,EAAAg0N,eACA6zB,GAAAJ,EAAAznP,IAGA8nP,GAAA,CAAwB7gP,SAAAib,IAExB6lO,GAAA,SAAA/nP,EAAA/2E,EAAAgiM,EAAAtoL,GACA,IAAAqlT,EAAAhoP,EAAAioP,oBAAAh/T,EAAAqjE,OACA07P,GAAA/8H,EAAAtoL,EAAA/S,MACA+S,EAAAuT,QAAAR,OAAA,IAAAivQ,GAAA,SAAApjF,YAAA,EAEA5+L,EAAAuT,QAAAR,OAAA,IAAAivQ,GAAA,YAAAp7R,MAAA,KAGA2+T,GAAA,SAAAvlT,GACA,OAAAwlT,GAAAxlT,EAAA,gBAAAA,EAAAuS,WAAA3rB,OAEA4+T,GAAA,SAAAxlT,EAAA/S,GACA,OAAA+S,KAAAuS,YAAAvS,EAAAuS,aAAAvS,EAAAonL,WAAApnL,EAAAuS,WAAAtlB,UAEAw4T,GAAA,SAAAlrT,EAAAyF,GACA,IAAAy6C,EAAAlgD,EAAA60P,eAAApvP,EAAA/S,MACA,OAAAwtD,KAAAqzM,WAEA43D,GAAA,SAAAnrT,EAAAorT,EAAAC,EAAA5lT,GACA,OAAAA,EAAAyoL,QAAAk9H,EAAAC,EAAA,SAAA5lT,GACA,OAAAylT,GAAAlrT,EAAAyF,MAGA6lT,GAAA,SAAA7lT,EAAAsoL,GACA,OAAAtoL,IAAAsoL,EAAAtoL,EAAA/S,OAAA,OAAA+S,EAAA/S,OAGAi3I,GAAA,SAAA8pD,EAAA3wH,GACA,IAAA9iE,EAAAyzL,EAAAzzL,OACA8iE,EAAAyoP,qBACA93H,EAAAuS,cAAA,cAAAnlK,EAAAlvC,EAAA5F,GACA,IAAA+B,EAEA2X,EAGAgS,EAAAqvP,EAAAxhM,EAAAkmP,EAEAriC,EAAAzV,EANAxxK,EAAArhE,EAAA30C,OAEA6hM,EAAAxgM,GAAAuoI,OAAA,GAA6C91H,EAAAwwL,oBAC7C46H,EAAAprT,EAAA65L,sBAEA4xH,EAAAzrT,EAAA65L,sBAGA,IADA9L,EAAA/5K,KAAA,EACAlmB,EAAA,EAAqBA,EAAAo0G,EAAOp0G,IAG5B,GAFA2X,EAAAo7B,EAAA/yC,GACA2pB,EAAAhS,EAAAgS,OACAs2K,EAAAtoL,EAAAgS,OAAA/kB,OAAA+S,IAAAgS,EAAAo1K,UAAA,CACAvnH,EAAA7/D,EAAA6/D,KACA,MAAAA,EAAA,CAEA,GADAkmP,EAAAlmP,EAAA5yE,KACA,SAAA84T,GAAA,aAAAlmP,EAAAthD,KAAA,kBACA,UAAAwnS,EACA,MAEA,UAAAA,EAAA,CACA/lT,EAAA,KACA,OAGA6/D,SAEA7/D,IACAA,EAAA0T,SACAgyS,GAAAnrT,EAAAorT,EAAAK,EAAAh0S,KACA0xQ,EAAAnpR,EAAA60P,eAAAp9O,EAAA/kB,MACAy2R,IACAA,EAAA31B,YACA/7O,EAAA0B,SACqBgwQ,EAAA51B,WACrBs3D,GAAA/nP,EAAA/2E,EAAAgiM,EAAAt2K,UAKa,CACbqvP,EAAArhQ,EACA,MAAAgS,KAAAO,aAAA8uP,GAAArvP,EAAAo1K,YAAAi6E,EAAA,CAEA,GADAA,EAAArvP,EACAs2K,EAAAt2K,EAAA/kB,MACA,MAEA+kB,WAEAqvP,IAAArvP,IAAA,IAAAqrD,EAAAioP,qBACAr3C,EAAA,IAAA+T,GAAA,WACA/T,EAAArnR,MAAA,IACAoZ,EAAAyB,QAAAwsQ,OAMAjgF,EAAAwS,mBAAA,gBAAAplK,GACA,IAAAp7B,EAAA3X,EAAA+yC,EAAA30C,OACAw/T,EAAA,SAAA9xR,GACA,IAAAvqB,EAAAuqB,EAAA5b,MAAA,KAAArtB,OAAA,SAAA3C,GACA,OAAAA,EAAA9B,OAAA,IAEA,OAAAmjB,EAAAxiB,OAAA,cAAAwI,OAAA8B,KAAA,MAEAw0T,EAAA,SAAA/xR,GACA,IAAAgyR,EAAAhyR,EAAArsC,GAAAse,KAAA+tB,GAAA,GACA,wBAAAjzB,KAAAilT,GAGAA,EAFAF,EAAAE,IAKA,IAAA9oP,EAAA+oP,yBACA,MAAA/9T,IACA2X,EAAAo7B,EAAA/yC,GACA,MAAA2X,EAAA/S,MAAA,WAAA+S,EAAAue,KAAA,WACAve,EAAAue,KAAA,MAAA2nS,EAAAlmT,EAAAue,KAAA,WAKA8+C,EAAAgpP,4BACAr4H,EAAAwS,mBAAA,mBAAAplK,GACA,IAAAtoB,EAAAkvL,EAAAhwL,EAAAhS,EAAA3X,EAAA+yC,EAAA30C,OACA,MAAA4B,IAEA,GADA2X,EAAAo7B,EAAA/yC,GACA,MAAA2X,EAAA/S,MAAA+S,EAAAuS,aAAAvS,EAAAue,KAAA,SACAvM,EAAAhS,EAAAgS,OACAc,EAAA9S,EAAAonL,UACA,GACA4a,EAAAlvL,EAAA+sD,KACA7tD,EAAA23C,OAAA72C,EAAA9S,GACA8S,EAAAkvL,QACelvL,MAKfuqD,EAAAipP,mBACAt4H,EAAAuS,cAAA,iBAAAnlK,GACA,IAAAp7B,EAAAqO,EAAAhmB,EAAA+yC,EAAA30C,OACA,MAAA4B,IAGA,GAFA2X,EAAAo7B,EAAA/yC,GACAgmB,EAAArO,EAAAgS,OACA,OAAA3D,EAAAphB,MAAA,OAAAohB,EAAAphB,KACA,GAAA+S,EAAA6/D,MAAA,OAAA7/D,EAAA6/D,KAAA5yE,KACA+S,EAAA6/D,KAAA9sD,OAAA/S,OACe,CACf,IAAAktL,EAAA,IAAA80F,GAAA,QACA90F,EAAA3uK,KAAA,iCACAve,EAAA/L,KAAAi5L,MAMA7vH,EAAA43B,UAAA16F,EAAA61P,mBACApiE,EAAAwS,mBAAA,iBAAAplK,GACA,IAAAp7B,EAAA2e,EAAA67L,EAAAp8E,EAAAmoL,EAEAC,EAAApxN,EAFA/sG,EAAA+yC,EAAA30C,OACAylQ,EAAA3xP,EAAA61P,kBAEA,MAAA/nQ,IAAA,CAIA,IAHA2X,EAAAo7B,EAAA/yC,GACAs2B,EAAA3e,EAAAue,KAAA,SAAAhG,MAAA,KACAguS,EAAA,GACA/rG,EAAA,EAAwBA,EAAA77L,EAAAl4B,OAAuB+zN,IAC/Cp8E,EAAAz/G,EAAA67L,GACAplH,GAAA,EACAoxN,EAAAt6D,EAAA,KACAs6D,KAAApoL,KACAhpC,GAAA,GAEAoxN,EAAAt6D,EAAAlsP,EAAA/S,OACAmoG,GAAAoxN,KAAApoL,KACAhpC,GAAA,GAEAA,IACAmxN,IACAA,GAAA,KAEAA,GAAAnoL,GAGAmoL,EAAA9/T,SACA8/T,EAAA,MAEAvmT,EAAAue,KAAA,QAAAgoS,OAMAE,GAAA3+T,GAAAmgJ,QAAAy+K,GAAA5+T,GAAAgD,KAAA67T,GAAA7+T,GAAA86P,QAAAgkE,GAAA9+T,GAAAuoI,OACAw2L,GAAA,SAAAxpP,EAAA9iE,QACA,IAAAA,IACAA,EAAAmxP,MAEA,IAAA69B,EAAA,GACAC,EAAA,GACAs9B,EAAA,GACAC,EAAA,GACA1pP,KAAA,GACAA,EAAA43B,WAAA,aAAA53B,MAAA43B,SACA53B,EAAA2pP,UAAA3pP,EAAA2pP,WAAA,OACA,IAAAC,EAAA,SAAA7rR,GACA,IAAA8vN,EAAAlrP,EAAAgS,EAAAwvI,EAAA0lK,EAAAvlK,EAAAwhJ,EAAAgkB,EAAA9+T,EACAs9T,EAAAC,EAAAwB,EAAAC,EAAAlnH,EAAArtL,EAAA6nQ,EAMA,IALAysC,EAAAX,GAAA,oCACAd,EAAAprT,EAAA65L,sBACAwxH,EAAArrT,EAAAk2P,wBACA42D,EAAA9sT,EAAA8tL,uBACA8X,EAAA5lM,EAAA6lM,qBACA8qD,EAAA,EAAoBA,EAAA9vN,EAAA30C,OAAmBykQ,IAEvC,GADAlrP,EAAAo7B,EAAA8vN,GACAlrP,EAAAgS,SAAAhS,EAAAszB,MAGA,GAAA+zR,EAAArnT,EAAA/S,OAAA,OAAA+S,EAAAgS,OAAA/kB,KAAA,CACA6lB,EAAA9S,EAAApD,KACA,MAAAkW,EAAA,CACA,IAAAu0S,EAAAv0S,EAAA7lB,MAKA,MAJA6lB,EAAA7lB,KAAA,KACA6lB,EAAAwgB,OAAA,EACAtzB,EAAAgS,OAAA23C,OAAA72C,EAAA9S,EAAAgS,QAIAc,IAAAlW,KAEAoD,EAAA4T,OAAA5T,OAZA,CAgBA,IADAwhJ,EAAA,CAAAxhJ,GACAgS,EAAAhS,EAAAgS,OAAoCA,IAAAzX,EAAAm2P,aAAA1+O,EAAA/kB,KAAA+S,EAAA/S,QAAAm6T,EAAAp1S,EAAA/kB,MAA8F+kB,WAClIwvI,EAAAvzJ,KAAA+jB,GAEA,GAAAA,GAAAwvI,EAAA/6J,OAAA,GAGA,IAFA+6J,EAAAjyJ,UACA23T,EAAAvlK,EAAA2lK,EAAA9lK,EAAA,GAAAtiJ,SACA7W,EAAA,EAAuBA,EAAAm5J,EAAA/6J,OAAA,EAAwB4B,IAAA,CAO/C,IANAkS,EAAAm2P,aAAA/uG,EAAA10J,KAAAu0J,EAAAn5J,GAAA4E,OACAk2S,EAAAmkB,EAAA9lK,EAAAn5J,GAAA6W,SACAyiJ,EAAA5uI,OAAAowR,IAEAA,EAAAxhJ,EAEAwlK,EAAA3lK,EAAAn5J,GAAAkqB,WAAqD40S,OAAA3lK,EAAAn5J,EAAA,IACrDsyR,EAAAwsC,EAAAvqT,KACAumS,EAAApwR,OAAAo0S,GACAA,EAAAxsC,EAEAh5H,EAAAwhJ,EAEAuiB,GAAAnrT,EAAAorT,EAAAC,EAAAsB,GAIAl1S,EAAA23C,OAAA3pD,EAAAwhJ,EAAA,QAHAxvI,EAAA23C,OAAAu9P,EAAA1lK,EAAA,OACAxvI,EAAA23C,OAAA3pD,EAAAknT,IAIAl1S,EAAAwvI,EAAA,IACAkkK,GAAAnrT,EAAAorT,EAAAC,EAAA5zS,IAAAwzS,GAAAxzS,EAAA,QACAA,EAAAuB,QAAAG,cAEW,GAAA1T,EAAAgS,OAAA,CACX,UAAAhS,EAAA/S,KAAA,CAEA,GADA6lB,EAAA9S,EAAA6/D,KACA/sD,IAAA,OAAAA,EAAA7lB,MAAA,OAAA6lB,EAAA7lB,MAAA,CACA6lB,EAAAC,OAAA/S,GACA,SAGA,GADA8S,EAAA9S,EAAApD,KACAkW,IAAA,OAAAA,EAAA7lB,MAAA,OAAA6lB,EAAA7lB,MAAA,CACA6lB,EAAA62C,OAAA3pD,EAAA8S,EAAAP,YAAA,GACA,SAEAvS,EAAA/L,KAAAqzT,EAAA,IAAAtlC,GAAA,UACA,SAEAznR,EAAAm2P,aAAA1wP,EAAAgS,OAAA/kB,KAAA,QAAAsN,EAAAm2P,aAAA,MAAA1wP,EAAA/S,MACA+S,EAAA/L,KAAAqzT,EAAA,IAAAtlC,GAAA,WAEA7hF,EAAAngM,EAAA/S,MACA+S,EAAAuT,QAAAG,SAEA1T,EAAA4T,YAMA0zS,EAAA,SAAAtnT,GACA,IAAA3X,EAAA4E,EAAA2sB,EACA3sB,EAAA+S,EAAA/S,KACAA,KAAAs8R,IACA3vQ,EAAAktS,EAAA75T,GACA2sB,EACAA,EAAA3rB,KAAA+R,GAEA8mT,EAAA75T,GAAA,CAAA+S,IAGA3X,EAAAmhS,EAAA/iS,OACA,MAAA4B,IACA4E,EAAAu8R,EAAAnhS,GAAA4E,KACAA,KAAA+S,EAAAya,WAAA5vB,MACA+uB,EAAAmtS,EAAA95T,GACA2sB,EACAA,EAAA3rB,KAAA+R,GAEA+mT,EAAA95T,GAAA,CAAA+S,IAIA,OAAAA,GAEAugM,EAAA,SAAAtzM,EAAA+rF,GACA0tO,GAAAC,GAAA15T,GAAA,SAAAA,GACA,IAAA2sB,EAAA2vQ,EAAAt8R,GACA2sB,IACA2vQ,EAAAt8R,GAAA2sB,EAAA,IAEAA,EAAA3rB,KAAA+qF,MAGA60M,EAAA,WACA,IAAA70K,EAAA,GACA,QAAA/rH,KAAAs8R,EACAA,EAAA9gS,eAAAwE,IACA+rH,EAAA/qH,KAAA,CACAhB,OACAgmG,UAAAs2L,EAAAt8R,KAIA,OAAA+rH,GAEAwnF,EAAA,SAAAvzM,EAAA+rF,GACA0tO,GAAAC,GAAA15T,GAAA,SAAAA,GACA,IAAA5E,EACA,IAAAA,EAAA,EAAqBA,EAAAmhS,EAAA/iS,OAA6B4B,IAClD,GAAAmhS,EAAAnhS,GAAA4E,SAEA,YADAu8R,EAAAnhS,GAAA4qG,UAAAhlG,KAAA+qF,GAIAwwM,EAAAv7R,KAAA,CACAhB,OACAgmG,UAAA,CAAAja,QAIA80M,EAAA,WACA,SAAA1mS,OAAAoiS,IAEA9oN,EAAA,SAAAthE,EAAA9Y,GACA,IAAA0nM,EAAA5yJ,EAAA/yC,EAAAo0G,EAAA8qN,EAAAC,EAAA5tS,EAAA3sB,EACAq7L,EAEAm/H,EACAznT,EAFA0nT,EAAA,GAGAC,EAAA,SAAA16T,GACA,WAAAA,EACA,IACW,IAAAA,EACX,IAEAA,GAGA3G,KAAA,GACAwgU,EAAA,GACAC,EAAA,GACAz+H,EAAAs+H,GAAAH,GAAA,gDAAAlsT,EAAAwwL,oBACA,IAAA46H,EAAAprT,EAAA65L,sBACAjiL,EAAA5X,EAAA4X,SACA8iF,EAAA53B,EAAA43B,SACAw4L,EAAA,sBAAAnnS,IAAA2kM,kBAAA5tH,EAAA4tH,kBACA28H,EAAAD,EAAAl6B,GACAu4B,EAAAzrT,EAAAk2P,wBACAo3D,EAAA,cACAC,EAAA,cACAC,EAAA,cACAC,EAAA,eACAP,EAAAzB,EAAAv9T,eAAAnC,EAAAy8E,UAAAijP,EAAAv9T,eAAA40E,EAAA2pP,WACA,IAAA/jB,EAAA,WACA,IAAArmS,EAAAsmS,EAAAljS,EAAA2/D,EAAAptD,WACAnM,EAAA,SAAA88R,GACAA,IACAljS,EAAAkjS,EAAA3wR,WACAvS,GAAA,IAAAA,EAAA7S,OACA6S,EAAApZ,MAAAoZ,EAAApZ,MAAA6a,QAAAomT,EAAA,KAEA7nT,EAAAkjS,EAAA97G,UACApnL,GAAA,IAAAA,EAAA7S,OACA6S,EAAApZ,MAAAoZ,EAAApZ,MAAA6a,QAAAqmT,EAAA,OAIA,GAAAvtT,EAAAm2P,aAAA/wL,EAAA1yE,KAAA26T,EAAA9lT,eAAA,CAGA,MAAA9B,EACApD,EAAAoD,EAAApD,KACA,IAAAoD,EAAA7S,MAAA,IAAA6S,EAAA7S,MAAA,MAAA6S,EAAA/S,OAAAq7L,EAAAtoL,EAAA/S,QAAA+S,EAAAue,KAAA,iBACA2kR,EAMAA,EAAAnwR,OAAA/S,IALAkjS,EAAA+kB,EAAAL,EAAA,GACA1kB,EAAA3kR,KAAA8+C,EAAA+tH,yBACAzrH,EAAAhW,OAAAu5O,EAAAljS,GACAkjS,EAAAnwR,OAAA/S,KAKAoG,EAAA88R,GACAA,EAAA,MAEAljS,EAAApD,EAEAwJ,EAAA88R,KAEA+kB,EAAA,SAAAh7T,EAAAE,GACA,IACAysB,EADA5Z,EAAA,IAAAgiR,GAAA/0R,EAAAE,GAUA,OARAF,KAAAs8R,IACA3vQ,EAAAktS,EAAA75T,GACA2sB,EACAA,EAAA3rB,KAAA+R,GAEA8mT,EAAA75T,GAAA,CAAA+S,IAGAA,GAEAkoT,EAAA,SAAAloT,GACA,IAAAiuQ,EAAAk6C,EAAAC,EAAAt1S,EACAw1K,EAAA/tL,EAAAwwL,mBACA,IAAAkjF,EAAAjuQ,EAAA6/D,KAAoCouM,GAAA,IAAAA,EAAA9gR,MAAiC,CAErE,GADAi7T,EAAAn6C,EAAArnR,MAAA6a,QAAAqmT,EAAA,IACAM,EAAA3hU,OAAA,EAEA,YADAwnR,EAAArnR,MAAAwhU,GAIA,GADAD,EAAAl6C,EAAArxQ,KACAurT,EAAA,CACA,OAAAA,EAAAh7T,MAAAg7T,EAAAvhU,MAAAH,OAAA,CACAwnR,IAAApuM,KACA,SAEA,IAAAyoH,EAAA6/H,EAAAl7T,OAAA,WAAAk7T,EAAAl7T,MAAA,UAAAk7T,EAAAl7T,KAAA,CACAghR,IAAApuM,KACA,UAGA/sD,EAAAm7P,EAAApuM,KACAouM,EAAAv6P,SACAu6P,EAAAn7P,IAGAu1S,EAAA,SAAA/wT,GACA,IAAArK,EACAqC,EAAA,GACA,IAAArC,KAAAqK,EACA,OAAArK,GAAA,MAAAA,IACAqC,EAAArC,GAAAqK,EAAArK,IAGA,OAAAqC,GAEA0+L,EAAAi3F,GAAA,CACAhwL,WACAi+J,kBAAA71L,EAAA61L,kBACA56D,2BAAAj7H,EAAAi7H,2BACAssF,sBAAAyjC,EAAA9tT,EAAAg2P,0BACAp2D,MAAA,SAAAj6L,GACAF,EAAA+S,OAAAk1S,EAAA,aAAArhU,MAAAsZ,GAEAA,KAAA,SAAAA,EAAAogB,GACA,IAAA2tP,EACAw5C,IACAvnT,IAAAuB,QAAAsmT,EAAA,KACAlC,GAAA7lT,EAAAonL,UAAAkB,KACApoL,IAAAuB,QAAAomT,EAAA,MAGA,IAAA3nT,EAAAzZ,SACAwnR,EAAAg6C,EAAA,WACAh6C,EAAA3tP,QACAtgB,EAAA+S,OAAAk7P,GAAArnR,MAAAsZ,IAGAg6L,QAAA,SAAAh6L,GACAF,EAAA+S,OAAAk1S,EAAA,eAAArhU,MAAAsZ,GAEA+iR,GAAA,SAAAh2R,EAAAiT,GACAF,EAAA+S,OAAAk1S,EAAAh7T,EAAA,IAAArG,MAAAsZ,EACAgoT,EAAAloT,IAEAkjR,QAAA,SAAAhjR,GACA,IAAAooT,EACAA,EAAAtoT,EAAA+S,OAAAk1S,EAAA,gBACAK,EAAA1hU,MAAAsZ,EACAgoT,EAAAloT,IAEAgG,MAAA,SAAA/Y,EAAA4nB,EAAAtB,GACA,IAAA+0S,EAAAC,EAAA7kC,EAAAlkF,EAAAxtL,EAEA,GADA0xQ,EAAAzuL,EAAA16F,EAAA60P,eAAAniQ,GAAA,GACAy2R,EAAA,CACA4kC,EAAAL,EAAAvkC,EAAAj2B,YAAAxgQ,EAAA,GACAq7T,EAAA7tS,WAAA5F,EACAyzS,EAAA1pH,WAAArrL,EACAvT,EAAA+S,OAAAu1S,GACAt2S,EAAAG,EAAAnS,EAAA/S,MACA+kB,GAAAG,EAAAm2S,EAAAr7T,QAAA+kB,EAAAs2S,EAAAr7T,OACAy6T,EAAAz5T,KAAAq6T,GAEAC,EAAA/+B,EAAA/iS,OACA,MAAA8hU,IACA/oH,EAAAgqF,EAAA++B,GAAAt7T,KACAuyM,KAAA3qL,EAAAhqB,MACA+uB,EAAAmtS,EAAAvnH,GACA5lL,EACAA,EAAA3rB,KAAAq6T,GAEAvB,EAAAvnH,GAAA,CAAA8oH,IAIAhgI,EAAAr7L,IACAi7T,EAAAI,GAEA/0S,IACAvT,EAAAsoT,IAEAb,GAAAzB,EAAA/4T,KACAw6T,GAAA,KAIAhxM,IAAA,SAAAxpH,GACA,IAAAghR,EAAAyV,EAAAxjR,EAAA4S,EAAAqwR,EAEA,GADAzf,EAAAzuL,EAAA16F,EAAA60P,eAAAniQ,GAAA,GACAy2R,EAAA,CACA,GAAAp7F,EAAAr7L,KACAw6T,EAAA,CAEA,GADAx5C,EAAAjuQ,EAAAuS,WACA07P,GAAA,IAAAA,EAAA9gR,KAEA,GADA+S,EAAA+tQ,EAAArnR,MAAA6a,QAAAomT,EAAA,IACA3nT,EAAAzZ,OAAA,EACAwnR,EAAArnR,MAAAsZ,EACA+tQ,IAAArxQ,SACqB,CACrBkW,EAAAm7P,EAAArxQ,KACAqxQ,EAAAv6P,SACAu6P,EAAAn7P,EACA,MAAAm7P,GAAA,IAAAA,EAAA9gR,KACA+S,EAAA+tQ,EAAArnR,MACAksB,EAAAm7P,EAAArxQ,MACA,IAAAsD,EAAAzZ,QAAAuhU,EAAA9mT,KAAAhB,MACA+tQ,EAAAv6P,SACAu6P,EAAAn7P,GAEAm7P,EAAAn7P,EAKA,GADAm7P,EAAAjuQ,EAAAonL,UACA6mF,GAAA,IAAAA,EAAA9gR,KAEA,GADA+S,EAAA+tQ,EAAArnR,MAAA6a,QAAAqmT,EAAA,IACA5nT,EAAAzZ,OAAA,EACAwnR,EAAArnR,MAAAsZ,EACA+tQ,IAAApuM,SACqB,CACrB/sD,EAAAm7P,EAAApuM,KACAouM,EAAAv6P,SACAu6P,EAAAn7P,EACA,MAAAm7P,GAAA,IAAAA,EAAA9gR,KACA+S,EAAA+tQ,EAAArnR,MACAksB,EAAAm7P,EAAApuM,MACA,IAAA3/D,EAAAzZ,QAAAuhU,EAAA9mT,KAAAhB,MACA+tQ,EAAAv6P,SACAu6P,EAAAn7P,GAEAm7P,EAAAn7P,GASA,GAHA20S,GAAAzB,EAAA/4T,KACAw6T,GAAA,GAEA/jC,EAAA31B,aAAA23D,GAAAnrT,EAAAorT,EAAAK,EAAAhmT,KACAA,EAAAue,KAAA,UAAAve,EAAAue,KAAA,MAQA,OAPA4kR,EAAAnjS,EAAAgS,OACAs2K,EAAAtoL,EAAA/S,MACA+S,EAAAuT,QAAAG,SAEA1T,EAAA4T,cAEA5T,EAAAmjS,GAIAzf,EAAA51B,YAAAy3D,GAAAvlT,IAAA0lT,GAAAnrT,EAAAorT,EAAAK,EAAAhmT,KACAolT,GAAA/nP,EAAA/2E,EAAAgiM,EAAAtoL,GAEAA,IAAAgS,UAGSzX,GACT,IAAAolE,EAAA3/D,EAAA,IAAAgiR,GAAA17R,EAAAy8E,SAAA1F,EAAA2pP,UAAA,IAYA,GAXAh5H,EAAAttH,MAAAthE,GACA61F,GAAAyyN,EAAAjhU,SACAH,EAAAy8E,QAGAz8E,EAAAk3J,SAAA,EAFAypK,EAAAS,IAKAE,IAAA,SAAAjoP,EAAA1yE,MAAA3G,EAAAqnS,gBACAsV,KAEA38S,EAAAk3J,QAAA,CACA,IAAAvwJ,KAAA65T,EACA,GAAAA,EAAAr+T,eAAAwE,GAAA,CAGA2sB,EAAA2vQ,EAAAt8R,GACAmuC,EAAA0rR,EAAA75T,GACAs6T,EAAAnsR,EAAA30C,OACA,MAAA8gU,IACAnsR,EAAAmsR,GAAAv1S,QACAopB,EAAA85C,OAAAqyO,EAAA,GAGA,IAAAl/T,EAAA,EAAAo0G,EAAA7iF,EAAAnzB,OAAwC4B,EAAAo0G,EAAOp0G,IAC/CuxB,EAAAvxB,GAAA+yC,EAAAnuC,EAAA3G,GAGA,IAAA+B,EAAA,EAAAo0G,EAAA+sL,EAAA/iS,OAAkD4B,EAAAo0G,EAAOp0G,IAEzD,GADAuxB,EAAA4vQ,EAAAnhS,GACAuxB,EAAA3sB,QAAA85T,EAAA,CACA3rR,EAAA2rR,EAAAntS,EAAA3sB,MACAs6T,EAAAnsR,EAAA30C,OACA,MAAA8gU,IACAnsR,EAAAmsR,GAAAv1S,QACAopB,EAAA85C,OAAAqyO,EAAA,GAGA,IAAAA,EAAA,EAAAC,EAAA5tS,EAAAq5E,UAAAxsG,OAAsD8gU,EAAAC,EAASD,IAC/D3tS,EAAAq5E,UAAAs0N,GAAAnsR,EAAAxhB,EAAA3sB,KAAA3G,IAKA,OAAAq5E,GAEA4tB,EAAA,CACAhzF,SACAimM,qBACAstF,sBACAvtF,gBACAstF,iBACAy5B,aACA5mP,SAIA,OAFAwjE,GAAA32C,EAAAlwB,GACA8nP,GAAA7gP,SAAAipB,EAAAlwB,GACAkwB,GAGAi+I,GAAA,SAAAs4E,EAAA3+B,EAAAl4R,IACA,IAAAnF,GAAAivM,QAAAouF,EAAAl4R,KACA62T,EAAAtjH,mBAAAvzM,EAAA,SAAAmuC,EAAAnuC,GACA,IAAA5E,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA+yC,EAAA/yC,GAAAk2B,KAAAtxB,EAAA,QAGAk4R,EAAAl3R,KAAAhB,KAGAu7T,GAAA,SAAAhsP,EAAAl2E,EAAA0tB,GACA,IAAA1tB,EAAA+hS,WAAA7rN,EAAA,CACA,IAAAisP,EAAAlxO,GAAAy2M,gBAAAxxN,EAAAzpE,GAAAzM,EAAA,CAAkE0tB,aAClE,OAAAy0S,EAAAz0S,QAEA,OAAAA,GAGA00S,GAAA,SAAAtoT,EAAAJ,EAAA1Z,GACA,IAAA8Y,EAAAsuQ,GAAAtnQ,KAAA9f,EAAA8hS,SAAApoR,EAAAN,UAAAU,EAAA8mQ,aAAAlnQ,IACA,OAAA1Z,EAAAsxC,WAAAmuN,GAAAtlP,GAAAZ,QAAAG,IAAAZ,EAAAtX,GAAAse,KAAAhH,IAEAupT,GAAA,SAAA7E,EAAA1kT,EAAA9Y,GACA,IAAAsiU,EAAAtiU,EAAAsxC,UAAA7kC,GAAA,CAA+Ck4L,mBAAA,GAA2B3kM,KAC1Eq5E,EAAAmkP,EAAApjP,MAAAthE,EAAAwpT,GAEA,OADAvE,GAAAH,eAAAvkP,GACAA,GAEAkpP,GAAA,SAAAxrP,EAAA9iE,EAAAyF,GACA,IAAA8oT,EAAA9/B,GAAA3rN,EAAA9iE,GACA,OAAAuuT,EAAA/rH,UAAA/8L,IAEA+oT,GAAA,SAAAvsP,EAAAa,EAAA9iE,EAAAolE,EAAAr5E,GACA,IAAA0tB,EAAA60S,GAAAxrP,EAAA9iE,EAAAolE,GACA,OAAA6oP,GAAAhsP,EAAAl2E,EAAA0tB,IAEAg1S,GAAA,SAAA3rP,EAAAb,GACA,IAAAp8D,EAAA7F,EAAAupT,EACA3+B,EAAA,sBACA/kR,EAAAo8D,KAAAp8D,IAAAo8D,EAAAp8D,IAAAkoQ,GAAAv4L,IACAx1E,EAAAiiE,KAAAjiE,OAAAiiE,EAAAjiE,OAAAmxP,GAAAruL,GACAA,EAAAyrN,gBAAAzrN,EAAAyrN,iBAAA,QACAzrN,EAAAyoP,sBAAA,wBAAAzoP,MAAAyoP,oBACAhC,EAAA+C,GAAAxpP,EAAA9iE,GACA8pT,GAAA//O,SAAAw/O,EAAAzmP,EAAAj9D,GACA,IAAA28L,EAAA,SAAA/8L,EAAA4oT,GACA,IAAAtiU,EAAAyM,GAAA,CAA0B0kF,OAAA,QAAiBmxO,GAAA,IAC3CtwJ,EAAAqsJ,GAAAtlP,QAAA7C,EAAAx8D,EAAA1Z,GACA8Y,EAAAspT,GAAAtoT,EAAAk4J,EAAAhyK,GACAq5E,EAAAgpP,GAAA7E,EAAA1kT,EAAA9Y,GACA,eAAAA,EAAAmxF,OAAA9X,EAAAopP,GAAAvsP,EAAAa,EAAA9iE,EAAAolE,EAAAr5E,IAEA,OACAiU,SACAgmM,cAAAujH,EAAAvjH,cACAC,mBAAAsjH,EAAAtjH,mBACAzD,YACAksH,SAAA,SAAAptQ,GACAthD,EAAA2yP,iBAAArxM,IAEAqtQ,SAAA,SAAArtQ,GACAthD,EAAAg0P,iBAAA1yM,IAEA2vL,YAAAzkP,EAAAykP,GAAAs4E,EAAA3+B,GACAK,aAAA,WACA,OAAAL,KAKAgkC,GAAA,SAAA9rP,EAAAb,GACA,IAAA4sP,EAAAJ,GAAA3rP,EAAAb,GACA,OACAjiE,OAAA6uT,EAAA7uT,OACAgmM,cAAA6oH,EAAA7oH,cACAC,mBAAA4oH,EAAA5oH,mBACAzD,UAAAqsH,EAAArsH,UACAksH,SAAAG,EAAAH,SACAC,SAAAE,EAAAF,SACA19E,YAAA49E,EAAA59E,YACAg6C,aAAA4jC,EAAA5jC,eAIA,SAAA6jC,GAAAzxR,GACA,OACA44J,YAAAzpM,EAAA02R,GAAAjtF,YAAA54J,GACA64J,eAAA1pM,EAAA02R,GAAAhtF,eAAA74J,KAGA,SAAAyxR,GACAA,EAAAn3H,eAAAurF,GAAAvrF,gBADA,CAEKm3H,QAAA,KACL,IAAAC,GAAAD,GAEAE,GAAA1gI,GAAAjjD,uBACA4jL,GAAA3gI,GAAAljD,sBACA8jL,GAAA,SAAA1qR,EAAA/+B,GACA,MAAAA,OAAA++B,EAAA,CACA,GAAAyqR,GAAAxpT,IAAAupT,GAAAvpT,GACA,OAAAA,EAEAA,IAAAqO,WAEA,aAEAq7S,GAAA,SAAA9xR,EAAA4kC,GACA,IACAmtP,EAAAC,EAAAC,EAAAC,EAAAC,EACA18L,EAAAC,EAAA08L,EAAAC,EAAA9vF,EAAA+vF,EAAApnG,EAAAqnG,EACA9jS,EAAAjC,EAGAgmS,EAAAC,EANAjqT,EAAAo8D,EAAAp8D,IAAAtV,EAAAhD,GAAAgD,KAIAw/T,EAAA9tP,EAAA0D,SAAA8rO,EAAAjmT,EAAAwZ,SACA86B,EAAAhkB,KAAAgkB,IAAA64C,EAAA78D,KAAA68D,MAAAgjO,EAAA15O,EAAAhuD,UAEAs7S,EAAA,CACAS,GAAA,CACA,EACA,GACA,GACA,GAEAC,GAAA,CACA,EACA,EACA,GACA,GAEAz9Q,GAAA,CACA,EACA,EACA,EACA,GAEA09Q,GAAA,CACA,EACA,GACA,EACA,IAGA,IAAAjzE,EAAA,SAAAn3K,GACA,OAAAA,IAAA,QAAAA,EAAAryD,UAAAwuD,EAAAp8D,IAAAjW,GAAAk2E,EAAA,kBAEAqqP,EAAA,SAAA5sN,EAAAxvG,GACA,iBAAAwvG,EAAA3wG,MAAA,IAAA2wG,EAAA3wG,KAAArE,QAAA,UACA,IAAA85F,EAAAkb,EAAApb,QAAA,GACA,OAAA80J,EAAA15I,EAAAjsG,UAAA82S,GAAAD,gBAAA9lN,EAAAzB,QAAAyB,EAAAxB,QAAA9yF,GAEA,OAAAkpP,EAAA15I,EAAAjsG,UAAA82S,GAAAD,gBAAA5qM,EAAA3c,QAAA2c,EAAA1c,QAAA9yF,IAGAq8T,EAAA,SAAA7sN,GACA,IAAAjsG,EAAAisG,EAAAjsG,OACA64T,EAAA5sN,EAAAthC,EAAA5kC,UAAAkrC,YAAAg7B,EAAA/S,sBACAvuB,EAAA5kC,UAAA+hD,OAAA9nF,IAGA+4T,EAAA,SAAAvqP,GACA,OAAA7D,EAAAp8D,IAAAjW,GAAAk2E,EAAA,gBAAAA,EAAAt3D,cAAA,OAAAs3D,GAEAwqP,EAAA,SAAAxqP,GACA,IAAAh4D,EAAAm0D,EAAAa,SAAAuyN,gBACA,WAAAvnR,IAAA64O,GAAAE,MAGA,kBAAA/4O,IACAA,EAAA,8BAEA,UAAAg4D,EAAAtrD,aAAA,qBAGAsrD,IAAA7D,EAAAhuD,WAGArkB,GAAAsW,GAAAZ,QAAAwgE,GAAAh4D,MAEAyiT,EAAA,SAAAjiU,GACA,IAAAqlI,EAAAC,EAAA48L,EACAC,EAAAC,EACA/8L,EAAArlI,EAAA+kI,QAAAP,EACAc,EAAAtlI,EAAAglI,QAAAP,EACAjnG,EAAA6nG,EAAA67L,EAAA,GAAA5vF,EACA/1M,EAAA+pG,EAAA47L,EAAA,GAAAG,EACA7jS,IAAA,IAAAA,EACAjC,IAAA,IAAAA,EAEA2mS,EADAvzE,EAAAmyE,KAAA,IAAAntP,EAAAa,SAAA6tP,yBACAvmB,GAAAG,gBAAAj8S,GAEA87S,GAAAG,gBAAAj8S,IAAA2uP,EAAAmyE,IAAAI,EAAA,GAAAA,EAAA,OAEAgB,IACA1wR,EAAA6zF,GAAA7zF,EAAA8zF,IACA/pG,EAAA8uD,EAAA7sD,EAAAy8L,GACAz8L,EAAA6sD,EAAA9uD,EAAA0+L,KAEAz8L,EAAA6sD,EAAA9uD,EAAA0+L,GACA1+L,EAAA8uD,EAAA7sD,EAAAy8L,KAGA1iN,EAAA4lQ,UAAA4kD,EAAAhB,GAAA,CACAvjS,QACAjC,WAEA4mS,EAAAjB,EAAAjvC,SAAAh0R,EAAAonI,EACA+8L,EAAAlB,EAAAjvC,SAAAv6Q,EAAA4tH,EACA68L,IAAA,EAAAA,EAAA,EACAC,IAAA,EAAAA,EAAA,EACA7qT,EAAA4lQ,UAAA6jD,EAAA,CACAllS,KAAAqmS,EACApmS,IAAAqmS,EACA3qO,QAAA,UAEAupO,EAAAnqT,UAAA2mB,EAAA,YAAkDjC,EAClD2lS,EAAA,MAAAH,EAAA9iS,aAAAT,GACAjmB,EAAAqxL,SAAAm4H,EAAA,OAAAI,GAAA7vF,EAAA9zM,IAEA0jS,EAAA,MAAAH,EAAA7iS,cAAA3C,GACAhkB,EAAAqxL,SAAAm4H,EAAA,MAAAK,GAAAC,EAAA9lS,IAEA8pG,EAAAgoL,EAAArpL,YAAAu9L,EACAj8L,EAAA+nL,EAAAppL,aAAAu9L,EACAn8L,EAAAC,IAAA,GACA/tH,EAAA4lQ,UAAA6jD,EAAA,CACAllS,KAAAqmS,EAAA98L,EACAtpG,IAAAqmS,EAAA98L,IAGAg8L,IACA5yO,GAAAyzI,sBAAAxuJ,EAAAmtP,EAAAxvF,EAAA+vF,GACAC,GAAA,IAGAgB,EAAA,WACAhB,GAAA,EACA,IAAAiB,EAAA,SAAAn+T,EAAArG,GACAA,IACA+iU,EAAApqS,MAAAtyB,KAAAuvE,EAAAjiE,OAAA8vG,QAAAs/M,EAAA37S,SAAAlM,cAAA7U,GACAmT,EAAAqxL,SAAAm5H,EAAAjB,GAAA18T,EAAArG,GAEAwZ,EAAA2vN,UAAA66F,EAAAjB,GAAA18T,EAAArG,KAIAwkU,EAAA,QAAA/kS,GACA+kS,EAAA,SAAAhnS,GACAhkB,EAAAshF,OAAA4oO,EAAA,YAAAQ,GACA1qT,EAAAshF,OAAA4oO,EAAA,UAAAa,GACAnf,IAAAse,IACAlqT,EAAAshF,OAAAsqN,EAAA,YAAA8e,GACA1qT,EAAAshF,OAAAsqN,EAAA,UAAAmf,IAEA/qT,EAAAsT,OAAAk2S,GACAxpT,EAAAsT,OAAAm2S,GACAwB,EAAA1B,GACApyO,GAAA0zI,kBAAAzuJ,EAAAmtP,EAAAtjS,EAAAjC,GACAhkB,EAAA2vN,UAAA45F,EAAA,QAAAvpT,EAAA+3L,UAAAwxH,EAAA,UACAntP,EAAAub,eAEAszO,EAAA,SAAAnxJ,GACA,IAAAhyI,EAAAojS,EAAAC,EAAA1iU,EAAAg/B,EACA2jS,IACAC,IACAvjS,EAAA9nB,EAAA+9J,OAAAjE,EAAAg8I,GACA8T,EAAA9hS,EAAAphC,EACAmjU,EAAA/hS,EAAA3nB,EACAsnB,EAAAqyI,EAAA/1I,wBACAmnS,EAAAzjS,EAAAxB,OAAAwB,EAAAvB,MAAAuB,EAAAlD,KACA4mS,EAAA1jS,EAAAzD,QAAAyD,EAAAtB,OAAAsB,EAAAjD,IACA+kS,IAAAzvJ,IACAyvJ,EAAAzvJ,EACA7zI,EAAAjC,EAAA,GAEAv7B,EAAA2zE,EAAAya,KAAA,kBAA2CplF,OAAAqoK,IAC3C2wJ,EAAA3wJ,KAAArxK,EAAAkiG,qBACAjgG,EAAAg/T,EAAA,SAAAzoO,EAAAp0F,GACA,IAAAwgI,EACAgsG,EAAA,SAAA5wO,GACAwkI,EAAAxkI,EAAA+kI,QACAN,EAAAzkI,EAAAglI,QACAssG,EAAAywF,EAAAjB,GAAA7iS,YACAojS,EAAAU,EAAAjB,GAAA5iS,aACA+7L,EAAAonG,EAAA/vF,EACA4vF,EAAA1oO,EACAA,EAAAy5L,SAAA,CACAh0R,EAAAwkU,EAAAjqO,EAAA,GAAA2oO,EACAzpT,EAAAgrT,EAAAlqO,EAAA,GAAA4oO,GAEAG,EAAAlU,EAAArpL,YACAw9L,EAAAnU,EAAAppL,aACA88L,EAAAD,EAAAn1S,WAAA,GACApU,EAAAu6J,SAAAivJ,EAAA,uBACAxpT,EAAA2vN,UAAA65F,EAAA,wBACAA,EAAAlkL,iBAAA,EACAkkL,EAAA8B,aAAA,EACAtrT,EAAA4lQ,UAAA4jD,EAAA,CACAjlS,KAAAqlS,EACAplS,IAAAqlS,EACAtkP,OAAA,IAEAikP,EAAAz0S,gBAAA,qBACA+gS,EAAAhjS,YAAA02S,GACAxpT,EAAArV,KAAAu/T,EAAA,YAAAQ,GACA1qT,EAAArV,KAAAu/T,EAAA,UAAAa,GACAnf,IAAAse,IACAlqT,EAAArV,KAAAihT,EAAA,YAAA8e,GACA1qT,EAAArV,KAAAihT,EAAA,UAAAmf,IAEAtB,EAAAzpT,EAAAoe,IAAA03R,EAAA,OACAl3G,MAAA,oBACA3T,iBAAA,OACe8uC,EAAA,YAAoB+vF,IAEnCz8L,EAAArtH,EAAAxP,IAAA,kBAAA3D,GACAwgI,GACArtH,EAAAsT,OAAA+5G,GAEAA,EAAArtH,EAAAoe,IAAA03R,EAAA,OACAlsT,GAAA,kBAAAiD,EACAo+L,iBAAA,MACA2T,MAAA,mBACAxkG,cAAA,EACAj7E,MAAA,UAAAtyB,EAAA,iCAEA,KAAAi0P,GAAA/+O,KACAsrH,EAAAiY,iBAAA,GAEAtlI,EAAArV,KAAA0iI,EAAA,qBAAA5kI,GACAA,EAAAk5E,2BACAl5E,EAAAumB,iBACAqqN,EAAA5wO,KAEAw4F,EAAAhhB,IAAAotD,EACArtH,EAAA4lQ,UAAAv4I,EAAA,CACA9oG,KAAA2mS,EAAAjqO,EAAA,GAAA2oO,EAAAv8L,EAAA/sG,YAAA,EACAkE,IAAA2mS,EAAAlqO,EAAA,GAAA4oO,EAAAx8L,EAAAppG,aAAA,MAIAmnS,IAEA7B,EAAAj1S,aAAA,0BAEA82S,EAAA,WACA,IAAAv+T,EAAAwgI,EAKA,IAAAxgI,KAJAw+T,IACA9B,GACAA,EAAAx0S,gBAAA,qBAEA20S,EACAr8L,EAAArtH,EAAAxP,IAAA,kBAAA3D,GACAwgI,IACArtH,EAAAshF,OAAA+rC,GACArtH,EAAAsT,OAAA+5G,KAIAk+L,EAAA,SAAA9iU,GACA,IAAA07S,EAAAqnB,EACAC,EAAA,SAAA7rT,EAAAgS,GACA,GAAAhS,EACA,GACA,GAAAA,IAAAgS,EACA,eAEahS,IAAAqO,aAGb87S,GAAA3tP,EAAA81D,UAGAxnI,EAAAsV,EAAAu5E,OAAA,yDAAAq3C,GACAA,EAAA77G,gBAAA,uBAEAy2S,EAAA,cAAA/iU,EAAAsE,KAAAtE,EAAAgJ,OAAA+lC,EAAAqoC,UACA2rP,EAAAxrT,EAAAw0L,EAAAg3H,GAAAh9S,QAAA,gCACAi9S,EAAAD,EAAA1V,KACA4V,IACAvnB,EAAA3sQ,EAAAd,UAAA,GACA+0R,EAAAtnB,EAAAqnB,IAAAC,EAAAj0R,EAAA8D,QAAA,GAAAkwR,IACAP,EAAAO,GAIAJ,MAEAO,EAAA,SAAA1rP,GACA,OAAAkpP,GAAAE,GAAAjtP,EAAAhuD,UAAA6xD,KAEAorP,EAAA,WACA,QAAAx+T,KAAA68T,EAAA,CACA,IAAAzoO,EAAAyoO,EAAA78T,GACAo0F,EAAAhhB,MACAjgE,EAAAshF,OAAAL,EAAAhhB,YACAghB,EAAAhhB,OAIAyrP,EAAA,WACA,IACAtvP,EAAA0D,SAAA2Y,YAAA,8BACS,MAAAkY,MAGTv0B,EAAA/lC,GAAA,kBACAq1R,KACA5qE,GAAA18O,QAAAzB,QAAAm+O,GAAA18O,QAAA3B,YACA25D,EAAA/lC,GAAA,2BAAA5tC,GACA,IAAAgJ,EAAAhJ,EAAAgJ,OAAAmc,EAAAnc,EAAAmc,SACAm8S,IAAA,mBAAAjpT,KAAA8M,IAAA+9S,EAAAl6T,KACA,IAAAhJ,EAAAslF,QACA3R,EAAA5kC,UAAA+hD,OAAA9nF,EAAA,UAAAmc,GAEA,cAAAnlB,EAAAsE,MACAqvE,EAAAub,iBAIAvb,EAAAp8D,IAAArV,KAAAmrT,EAAA,2BAAArtT,GACA,IAAAmjU,EAAA,SAAAhsT,GACA4gP,GAAAl6F,iBAAAlqF,EAAA,WACAA,EAAA5kC,UAAA+hD,OAAA35E,MAGA,GAAA+rT,EAAAljU,EAAAgJ,QAGA,OAFAhJ,EAAAumB,sBACA48S,EAAAnjU,EAAAgJ,QAGA,mBAAAqP,KAAArY,EAAAgJ,OAAAmc,YACAnlB,EAAAumB,iBACA,QAAAvmB,EAAAgJ,OAAAq5L,SACA8gI,EAAAnjU,EAAAgJ,YAKA,IAAAo6T,EAAArrE,GAAAniL,SAAA,SAAA51E,GACA2zE,EAAA0vP,WACAP,EAAA9iU,KAGA2zE,EAAA/lC,GAAA,mEAAAw1R,GACAzvP,EAAA/lC,GAAA,gCAAA5tC,GACA8gU,GAAA,UAAAA,EAAA37S,UACAi+S,EAAApjU,KAGA2zE,EAAA/lC,GAAA,YAAA+0R,GACAhvP,EAAA/lC,GAAA,wBAAAk0R,GAAA,KAEAnuP,EAAA/lC,GAAA,SAAAg1R,GACA,IAAAjkO,EAAA,WACAmiO,EAAAC,EAAA,MAEA,OACAiB,cACAQ,iBACAG,iBACAG,mBACAnkO,YAIA,SAAAjkE,GAAAt2B,EAAAu2B,GACA,IAAAvkB,EAAA,SAAAmJ,EAAAqb,GACA,IAAAh2B,EAAAg2B,OAAAlyB,MAAA,YACA,UAAA/J,MAAAyF,EAAA,wDAAAw2B,GAEA,IAAArjB,EAAAgI,EAAAhI,MACAkf,GAAAlf,KACAA,EAAAmf,MAAAtyB,GAAAw2B,EAAA,OAGA7yB,EAAA,SAAAwX,GACA,IAAAjf,EAAAq6B,EAAApb,GACA,GAAAjf,GAAA,UAAAA,EAAA,CACA,IAAA62B,EAAAlL,GAAA1M,EAAAnb,GACA,OAAAy2B,WAAA1D,IAAA,EAEA,OAAA72B,GAEAmrB,EAAA1jB,EACA+yB,EAAA,SAAAvb,EAAAiF,GACA,OAAAne,EAAAme,EAAA,SAAApe,EAAAywB,GACA,IAAA5pB,EAAAgf,GAAA1M,EAAAsX,GACA94B,OAAA8D,IAAAoL,EAAA,EAAA8tB,SAAA9tB,EAAA,IACA,OAAA+tB,MAAAj9B,GAAAqI,IAAArI,GACS,IAETk9B,EAAA,SAAA1b,EAAAxhB,EAAAymB,GACA,IAAA0W,EAAAJ,EAAAvb,EAAAiF,GACA2W,EAAAp9B,EAAAm9B,EAAAn9B,EAAAm9B,EAAA,EACA,OAAAC,GAEA,OACA/kB,MACArO,MACA0jB,WACAqP,YACAG,OAIA,IAAA+B,GAAAtC,GAAA,kBAAAnb,GACA,IAAAhI,EAAAgI,EAAAhI,MACA,OAAAgO,GAAAhG,GAAAhI,EAAA+jB,wBAAAC,OAAAhkB,EAAAikB,eAEA6B,GAAA,SAAA9d,GACA,OAAAyd,GAAAj1B,IAAAwX,IAGA4e,GAAA,SAAAC,EAAA3nB,GACA,IAAA4nB,EAAAD,EAAAE,KAAA7nB,GACA,OAAA4nB,EAAAh9B,KAAAvD,EAAA,aAAAT,GACA,IAAA8rB,EAAAiV,EAAApV,MAAA3rB,GACAizB,EAAA6N,GAAAC,EAAAjV,GACA,OAAA9rB,GAAAkB,OAAA+xB,MAGAiO,GAAA,SAAAhf,EAAA6e,GACA,IAAAxV,EAAAwV,EAAApV,MAAAzJ,GACA,OAAA4e,GAAAC,EAAAxV,IAGA0V,GAAA,SAAA7nB,GACA,IAAA8I,EAAA9I,EAAAc,QAAAra,EAAAwZ,SAAAxT,EAAArC,OAAAqC,EAAAD,KAAAwT,EAAAc,MAAA2R,YAAAuV,cACA,OAAAlf,EAAAvd,IAAA4V,GAAAZ,UAEAoU,GAAA,SAAA7L,GACA,OAAAyJ,GAAAzJ,IAGAmf,GAAAt/B,OAAAsD,OAAA,CACA47B,QACAtV,MAAAoC,KAGAsU,GAAA,SAAAngB,GACA,IAAA9I,EAAAmB,GAAAZ,QAAA9Z,EAAAwZ,UACAmnB,EAAA9H,GAAAtf,GACAmoB,EAAAL,GAAAhf,EAAAmf,IACAG,EAAA9B,GAAAxd,GACAjf,EAAA6F,EAAAy4B,EAAA,SAAA57B,EAAAvC,GACA,IAAAq+B,EAAA/B,GAAAt8B,GACA,OACAq7B,KAAA94B,EAAA84B,KAAAgD,EAAAhD,OACAC,IAAA/4B,EAAA+4B,IAAA+C,EAAA/C,QAEO,CACPD,KAAA,EACAC,IAAA,IAEA,OAAA++O,GAAAx6Q,EAAAw7B,KAAA+C,EAAA/C,OAAA+B,EAAA/B,OAAAx7B,EAAAy7B,IAAA8C,EAAA9C,MAAA8B,EAAA9B,QAGAunS,GAAA,SAAA/jT,GACA,mBAAAnb,GAAAmb,IAEA0G,GAAA,SAAA1G,EAAAsf,GACA,IAAA5T,EAAA3B,GAAA/J,GACA,OAAA0L,EAAArtB,QAAA0lU,GAAA/jT,GACA,OACAA,UACAsf,UAEO,GAAAA,EAAA5T,EAAArtB,SAAA0lU,GAAAr4S,EAAA4T,IACP,OACAtf,QAAA0L,EAAA4T,GACAA,OAAA,GAGA,IAAA13B,EAAA8jB,IAAArtB,OAAA,GACA,OAAA0lU,GAAAn8T,GACA,CACAoY,UACAsf,UAGA,QAAAz6B,GAAA+C,GACA,CACAoY,QAAApY,EACA03B,OAAA,GAEWk3C,GAAA5uE,GACX,CACAoY,QAAApY,EACA03B,OAAApD,GAAAt0B,GAAAvJ,QAGA,CACA2hB,QAAApY,EACA03B,OAAAvV,GAAAniB,GAAAvJ,SAMA2lU,GAAA,SAAAhkT,EAAAikT,GACA,IAAAh4R,EAAAnP,GAAA9c,GACAgc,EAAA8B,GAAA9d,GACA,OACAA,UACAme,OAAA8N,EAAAzP,MAAAR,EACAiQ,MACA2vR,QAAAqI,IAGAC,GAAA,SAAAlkT,EAAAsf,GACA,IAAAq4P,EAAAjxQ,GAAA1G,EAAAsf,GACAyzE,EAAA16F,GAAAtB,SAAA,8BAAAuuQ,GAAAH,KAAA,WAEA,OADA96P,GAAAstQ,EAAA33Q,QAAA+yF,GACAixN,GAAAjxN,EAAA,WACA,OAAAjmF,GAAAimF,MAGAoxN,GAAA,SAAAnkT,GACA,OAAAgkT,GAAA3rT,GAAAZ,QAAAuI,GAAApiB,IAEAwmU,GAAA,SAAAhwP,EAAAt2E,EAAA2xC,EAAAksO,GACA0oD,GAAAjwP,EAAA,SAAAkwP,EAAAvrJ,GACA,OAAAwrJ,GAAAnwP,EAAAt2E,EAAA2xC,EAAAksO,IACOlsO,IAEP80R,GAAA,SAAAnwP,EAAAt2E,EAAA2xC,EAAAksO,GACA,IAAAx1P,EAAA9N,GAAAZ,QAAA28D,EAAAhuD,WACAlP,EAAAmB,GAAAZ,QAAA28D,EAAA0D,UACAz/C,GAAAlS,GACA,IAAA+W,EAAA1G,GAAAtf,GAAAslB,MACAlS,EAAA45S,GAAA7rT,GAAAZ,QAAAg4B,EAAAC,gBAAAD,EAAAwB,aACAnzC,EAAAoZ,EAAAgmB,EAAA5S,EAAAqxP,GACArxP,EAAAsxS,WAEAnyM,GAAA,SAAAr1C,EAAAp0D,EAAAliB,EAAA69Q,GACA,IAAAzkQ,EAAAmB,GAAAZ,QAAA28D,EAAA0D,UACA56C,EAAA1G,GAAAtf,GAAAslB,MACA1+B,EAAAoZ,EAAAgmB,EAAAld,EAAA27P,IAEA0oD,GAAA,SAAAjwP,EAAAt2E,EAAA2xC,GACA,IAAAi9Q,EAAAj9Q,EAAAC,eACAuB,EAAAxB,EAAAwB,YACAuzR,EAAA/0R,EAAAyB,aACAC,EAAA1B,EAAA0B,UACArzC,EAAAua,GAAAZ,QAAAi1S,GAAAr0S,GAAAZ,QAAA+sT,IACA,IAAA56C,EAAAx1M,EAAAp8D,IAAAmhE,YACAywM,EAAA35O,SAAAy8Q,EAAAz7Q,GACA24O,EAAAt5O,OAAAk0R,EAAArzR,GACAijC,EAAA5kC,UAAA2nI,OAAA1nI,IAEAg1R,GAAA,SAAArwP,EAAA6D,EAAA0jM,GACA,IAAA+oD,EAAAtwP,EAAAya,KAAA,kBACA5W,MACA0jM,eAEA,OAAA+oD,EAAA/hO,sBAEA84K,GAAA,SAAAnxP,EAAAq6S,EAAAhpD,EAAAzkQ,GACA,IAAA+0B,EAAA3hB,EAAA2hB,IACA,GAAA0vO,EACAH,GAAAvvO,EAAA1P,OAAA0P,EAAAzP,MAAAtlB,OACO,CACP,IAAAiB,EAAA8zB,EAAAzP,MAAAmoS,GAAAr6S,EAAA6T,OAAA8N,EAAAzP,OACAg/O,GAAAvvO,EAAA1P,OAAApkB,EAAAjB,KAGA0tT,GAAA,SAAA1tT,EAAAgmB,EAAAynS,EAAAr6S,EAAAqxP,GACArxP,EAAA2hB,IAAAzP,MAAAU,EACAu+O,GAAAnxP,EAAAq6S,GAAA,IAAAhpD,EAAAzkQ,GACOoT,EAAA6T,OAAAwmS,EAAAznS,GACPu+O,GAAAnxP,EAAAq6S,GAAA,IAAAhpD,EAAAzkQ,IAGA2tT,GAAA,SAAA3tT,EAAAgmB,EAAA5S,EAAAqxP,GACA,IAAAgpD,EAAAztT,EAAAc,MAAA2R,YAAAgmJ,YACAi1J,GAAA1tT,EAAAgmB,EAAAynS,EAAAr6S,EAAAqxP,IAEAmpD,GAAA,SAAA1wP,EAAAl9D,EAAAgmB,EAAA5S,EAAAqxP,GACA,IAAAopD,EAAA7tT,EAAAc,MAAA2R,YAAAgmJ,YACAi1J,GAAA1tT,EAAAgmB,EAAA6nS,EAAAz6S,EAAAqxP,GACA,IAAAqpD,EAAA7kS,GAAA7V,EAAAtK,SACA4xI,EAAAxzH,GAAAzgC,EAAA8gB,QACAumT,EAAAxoS,MAAAo1H,EAAAz5I,IACAujQ,GAAApxP,EAAAtK,SAAA,IAAA27P,GACOqpD,EAAAxoS,MAAAo1H,EAAAzzH,UACPu9O,GAAApxP,EAAAtK,SAAA,IAAA27P,IAGAspD,GAAA,SAAA7wP,EAAA3kC,EAAAksO,GACA,OAAAyoD,GAAAhwP,EAAAz1E,EAAAkmU,IAAAp1R,EAAAksO,IAEAupD,GAAA,SAAA9wP,EAAAp0D,EAAA27P,GACA,OAAAlyJ,GAAAr1C,EAAA+vP,GAAAnkT,GAAArhB,EAAAkmU,IAAAlpD,IAEAwpD,GAAA,SAAA/wP,EAAA3kC,EAAAksO,GACA,OAAAyoD,GAAAhwP,EAAAz1E,EAAAmmU,GAAA1wP,GAAA3kC,EAAAksO,IAEAypD,GAAA,SAAAhxP,EAAAp0D,EAAA27P,GACA,OAAAlyJ,GAAAr1C,EAAA+vP,GAAAnkT,GAAArhB,EAAAmmU,GAAA1wP,GAAAunM,IAEA0pD,GAAA,SAAAjxP,EAAAp0D,EAAA27P,GACA,IAAA8oD,GAAArwP,EAAAp0D,EAAA27P,GAAA,CAGA,IAAA2pD,EAAAlxP,EAAAytB,OAAAqjO,GAAAE,GACAE,EAAAlxP,EAAAp0D,EAAA27P,KAEA4pD,GAAA,SAAAnxP,EAAA3kC,EAAAksO,GACA,IAAA2pD,EAAAlxP,EAAAytB,OAAAojO,GAAAE,GACAG,EAAAlxP,EAAA3kC,EAAAksO,IAEA6pD,GAAA,CACAC,sBAAAJ,GACAK,oBAAAH,IAGAI,GAAA,SAAA/tT,GACA,OAAA6oL,GAAAljD,sBAAA3lI,IAAA6oL,GAAAjjD,uBAAA5lI,IAEAguT,GAAA,SAAAhuT,EAAA2/D,EAAAlxD,GACA,MAAAzO,OAAA2/D,EAAA,CACA,GAAAlxD,EAAAzO,GACA,OAAAA,EAEAA,IAAAqO,WAEA,aAEA4/S,GAAA,SAAA9sO,EAAAC,EAAA9hF,GACA,IAAA8I,EAAAyvB,EAAAoB,EAaA,GAZA7wB,EAAA9I,EAAAkB,iBAAA2gF,EAAAC,GACAvpD,EAAAv4B,EAAAiP,KAAA2/S,kBACA9lT,GAAA,SAAAA,EAAA8iL,UACA9iL,EAAA9I,EAAAiP,MAEAspB,EAAAs2R,kBAAA/lT,GACA6wB,EAAAnxC,GAAAuD,QAAAwsC,EAAAqB,kBACAD,IAAArpC,KAAA,SAAAtG,EAAAuC,GAGA,OAFAvC,EAAA+sB,KAAAgkB,IAAAhkB,KAAAyN,IAAAx6B,EAAAs7B,IAAAw8D,EAAA93F,EAAAi9B,OAAA66D,IACAv1F,EAAAwqB,KAAAgkB,IAAAhkB,KAAAyN,IAAAj4B,EAAA+4B,IAAAw8D,EAAAv1F,EAAA06B,OAAA66D,IACA93F,EAAAuC,IAEAotC,EAAAxyC,OAAA,GACA26F,GAAAnoD,EAAA,GAAA1S,OAAA0S,EAAA,GAAArU,KAAA,EACA,IAGA,OAFAiT,EAAAu2R,YAAAjtO,EAAAC,GACAvpD,EAAAkD,UAAA,GACAlD,EACS,MAAAk5D,KAGT,aAEAs9N,GAAA,SAAAx2R,EAAA8nC,GACA,IAAA2uP,EAAAz2R,KAAAy2R,cAAAz2R,EAAAy2R,gBAAA,KACA,OAAAzlI,GAAAjjD,uBAAAooL,GAAAM,EAAA3uP,EAAAouP,KAAA,KAAAl2R,GAEAwjM,GAAA,SAAAl6I,EAAAC,EAAA9hF,GACA,IAAAu4B,EAAAsG,EACAowR,EAAAjvT,EACA,GAAAivT,EAAA3xR,uBACAuB,EAAAowR,EAAA3xR,uBAAAukD,EAAAC,GACAjjD,IACAtG,EAAAv4B,EAAAu5B,cACAhB,EAAAQ,SAAA8F,EAAAtB,WAAAsB,EAAAzW,QACAmQ,EAAAkD,UAAA,SAEO,GAAAz7B,EAAAw9B,oBACPjF,EAAAv4B,EAAAw9B,oBAAAqkD,EAAAC,QACO,GAAAmtO,EAAAhgT,KAAA2/S,gBAAA,CACPr2R,EAAA02R,EAAAhgT,KAAA2/S,kBACA,IACAr2R,EAAAu2R,YAAAjtO,EAAAC,GACAvpD,EAAAkD,UAAA,GACS,MAAAg2D,GACTl5D,EAAAo2R,GAAA9sO,EAAAC,EAAA9hF,GAEA,OAAA+uT,GAAAx2R,EAAAv4B,EAAAiP,MAEA,OAAAspB,GAEA22R,GAAA,CAA+BnuT,UAAAg7N,IAE/BozF,GAAA,SAAAjyP,EAAA9iC,GACA,OAAA7uC,EAAA6uC,EAAA,SAAAprC,GACA,IAAAwvG,EAAAthC,EAAAya,KAAA,qBAAoD3oF,UACpD,OAAAwvG,EAAAxvG,UAAAwvG,EAAAxvG,WAGAogU,GAAA,CAA8BD,kBAE9BtnI,GAAA,SAAA9zK,EAAAhU,GACA,IAAAC,EAAAD,GAAAtZ,EAAAwZ,SACA4U,EAAA7U,EAAA8U,yBAIA,OAHAtpB,EAAAuoB,EAAA,SAAAjL,GACA+L,EAAAjB,YAAA9K,EAAAhI,SAEAK,GAAAZ,QAAAsU,IAGAw6S,GAAA79S,GAAA,0BACAwhN,GAAAxhN,GAAA,mBACA89S,GAAA99S,GAAA,SACA+hM,GAAA,SAAAnrC,EAAA72K,GACA,IAAAjK,EAAAg9B,SAAA7P,GAAA2zJ,EAAA72K,GAAA,IACA,OAAAgzB,MAAAj9B,GAAA,EAAAA,GAEAioU,GAAA,SAAAjuL,EAAA95I,EAAAyZ,EAAAu1M,EAAApuC,GAIA,IAHA,IAAAs8B,EAAA6O,GAAAnrC,EAAA,WACAu8B,EAAA4O,GAAAnrC,EAAA,WACAthH,EAAAw6E,EAAAx6E,OACA0oQ,EAAAvuT,EAAsBuuT,EAAAvuT,EAAAyjM,EAAkB8qH,IAAA,CACxC1oQ,EAAA0oQ,KACA1oQ,EAAA0oQ,GAAAx8F,GAAA//N,GAAAujN,GAAA,KAEA,QAAAi5G,EAAAjoU,EAAwBioU,EAAAjoU,EAAAm9M,EAAkB8qH,IAAA,CAC1C,IAAAz9O,EAAAlrB,EAAA0oQ,GAAAx9O,QACAA,EAAAy9O,GAAAD,IAAAvuT,GAAAwuT,IAAAjoU,EAAA4gL,EAAAt1K,GAAAs1K,MAIAsnJ,GAAA,SAAApuL,EAAA95I,EAAAyZ,GACA,IAAA6lD,EAAAw6E,EAAAx6E,OACAkrB,EAAAlrB,EAAA7lD,GAAA6lD,EAAA7lD,GAAA+wE,QAAA,GACA,QAAAA,EAAAxqF,IAEAmoU,GAAA,SAAAruL,EAAA95I,EAAAyZ,GACA,MAAAyuT,GAAApuL,EAAA95I,EAAAyZ,GACAzZ,IAEA,OAAAA,GAEA6tH,GAAA,SAAAvuD,GACA,OAAAl3D,EAAAk3D,EAAA,SAAAn3D,EAAAgyD,GACA,OAAAA,EAAAqwB,QAAA7qF,OAAAwI,EAAAgyD,EAAAqwB,QAAA7qF,OAAAwI,GACO,IAEPigU,GAAA,SAAAtuL,EAAAx4H,GAEA,IADA,IAAAg+C,EAAAw6E,EAAAx6E,OACA7lD,EAAA,EAAqBA,EAAA6lD,EAAA3/D,OAAiB8Z,IAEtC,IADA,IAAA+wE,EAAAlrB,EAAA7lD,GAAA+wE,QACAxqF,EAAA,EAAuBA,EAAAwqF,EAAA7qF,OAAkBK,IACzC,GAAA8C,GAAA0nF,EAAAxqF,GAAAshB,GACA,OAAArc,EAAAP,KAAAojU,GAAA9nU,EAAAyZ,IAIA,OAAAxU,EAAArC,QAEAylU,GAAA,SAAAvuL,EAAAwuL,EAAAC,EAAAt+N,EAAAu+N,GAGA,IAFA,IAAA/5G,EAAA,GACAnvJ,EAAAw6E,EAAAx6E,OACA7lD,EAAA8uT,EAAsB9uT,GAAA+uT,EAAS/uT,IAAA,CAC/B,IAAA+wE,EAAAlrB,EAAA7lD,GAAA+wE,QACAxjF,EAAAshU,EAAAr+N,EAAAzf,EAAAxjF,MAAAshU,EAAAr+N,EAAA,GAAAzf,EAAAxjF,MAAAijG,EAAAq+N,EAAA,GACA75G,EAAAtnN,KAAAqkO,GAAAlsK,EAAA7lD,GAAA6H,UAAAta,IAEA,OAAAynN,GAEAg6G,GAAA,SAAA3uL,EAAAk6I,EAAAmC,GACA,IAAAmyC,EAAAt0C,EAAAh0R,IAAAuoU,EAAAv0C,EAAAv6Q,IACAwwF,EAAAksL,EAAAn2R,IAAAwoU,EAAAryC,EAAA18Q,IACAg1M,EAAA85G,EAAAC,EAAAH,GAAAvuL,EAAAwuL,EAAAC,EAAAt+N,EAAAu+N,GAAAH,GAAAvuL,EAAAwuL,EAAAE,EAAAv+N,EAAAs+N,GACA,OAAAV,GAAA/tL,EAAAx4H,UAAAusG,GAAA4gG,OAEAi6G,GAAA,SAAA5uL,EAAAx6E,GACA,IAAAqpQ,EAAAr9T,GAAAwuI,EAAAx4H,WACAiqN,EAAA5xN,GAAAX,QAAA,SAGA,OAFAwT,GAAA++M,EAAAjsK,GACArzC,GAAA08S,EAAAp9F,GACAo9F,GAEAC,GAAA,SAAA9uL,GACA,OAAA/1I,EAAA+1I,EAAAx6E,OAAA,SAAAnF,GACA,IAAAqwB,EAAAzmF,EAAAo2D,EAAAqwB,QAAA,SAAA/sB,GACA,IAAAmjH,EAAAn1K,GAAAgyD,GAGA,OAFA7wC,GAAAg0J,EAAA,WACAh0J,GAAAg0J,EAAA,WACAA,IAEAouC,EAAA1jN,GAAA6uD,EAAA74C,WAEA,OADAkL,GAAAwiM,EAAAxkI,GACAwkI,KAGA65G,GAAA,SAAAp+F,GACA,IAAA3wF,EAAA+tL,GAAAv8T,GAAAm/N,GAAA,MAMA,OALAzmO,EAAA+6E,GAAA0rJ,EAAA,eAAAzb,EAAAv1M,GACAzV,EAAA+6E,GAAAiwI,EAAA,kBAAApuC,EAAA5gL,GACA+nU,GAAAjuL,EAAAquL,GAAAruL,EAAA95I,EAAAyZ,KAAAu1M,EAAApuC,OAGAinJ,GAAA/tL,EAAAx4H,UAAAusG,GAAAisB,EAAAx6E,QAAAw6E,EAAAx6E,SAEAwpQ,GAAA,SAAAhvL,GACA,OAAA4uL,GAAA5uL,EAAA8uL,GAAA9uL,KAEAivL,GAAA,SAAAjvL,EAAAk0K,EAAA8X,GACA,OAAAsC,GAAAtuL,EAAAk0K,GAAA/pT,KAAA,SAAA+vR,GACA,OAAAo0C,GAAAtuL,EAAAgsL,GAAA/hU,IAAA,SAAAoyR,GACA,OAAAsyC,GAAA3uL,EAAAk6I,EAAAmC,QAIA6yC,GAAA,CACAjwT,QAAA8vT,GACAC,SACAC,eAGAr2R,GAAA,SAAA5B,GACA,IAAA8B,EAAA,GACA,GAAA9B,EACA,QAAAvvC,EAAA,EAAuBA,EAAAuvC,EAAA0F,WAA0Bj1C,IACjDqxC,EAAAzrC,KAAA2pC,EAAA4F,WAAAn1C,IAGA,OAAAqxC,GAEAq2R,GAAA,SAAAr2R,GACA,OAAA3uC,EAAA2uC,EAAA,SAAAprC,GACA,IAAA0R,EAAAuwQ,GAAAjiR,GACA,OAAA0R,EAAA,CAAAS,GAAAZ,QAAAG,IAAA,MAGAgwT,GAAA,SAAAp4R,GACA,OAAA4B,GAAA5B,GAAAnxC,OAAA,GAEAwpU,GAAA,CACAz2R,aACAu2R,oBACAC,sBAGAE,GAAA,SAAAx2R,GACA,OAAAxuC,EAAA+kU,GAAAF,iBAAAr2R,GAAAosN,KAEAqqE,GAAA,SAAA9vP,GACA,OAAAwF,GAAAxF,EAAA,gDAEA+vP,GAAA,SAAA12R,EAAAtxB,GACA,IAAAyjN,EAAAskG,GAAA/nT,GACAioT,EAAAH,GAAAx2R,GACA,OAAAmyL,EAAAplO,OAAA,EAAAolO,EAAAwkG,GAEAC,GAAA,SAAA9zP,GACA,OAAA4zP,GAAAH,GAAAz2R,UAAAgjC,EAAA5kC,UAAAssQ,UAAAzjS,GAAAZ,QAAA28D,EAAAhuD,aAEA+hT,GAAA,CACAL,sBACAC,uBACAC,+BACAE,uBAGAE,GAAA,SAAAhvK,GACA,OAAAryJ,EAAAqyJ,EAAA,SAAAnhF,GACA,aAAApzE,GAAAozE,IAAA,OAAApzE,GAAAozE,MAGAowP,GAAA,SAAAjvK,EAAA3pH,GACA,OAAA1oC,EAAAqyJ,EAAA,SAAAnhF,GACA,aAAApzE,GAAAozE,IAAA0jO,GAAA1jO,EAAAxoC,KACO3tC,KAAAvD,EAAA,aAAAumM,GACP,OAAAsjI,GAAAhvK,GAAA32J,IAAA,SAAA6lU,GACA,OACAjwT,GAAAX,QAAA,MACAW,GAAAX,QAAA7S,GAAAyjU,OAESrmU,MAAA,OAGTsmU,GAAA,SAAAC,EAAA9pL,GACA,IAAAtlD,EAAAtyF,EAAA43I,EAAA,SAAA73I,EAAAoxE,GAEA,OADAttD,GAAAstD,EAAApxE,GACAoxE,GACOuwP,GACP,OAAA9pL,EAAArgJ,OAAA,EAAA0gM,GAAA,CAAA3lG,OAEAqvO,GAAA,SAAAC,GACA,OAAA7qG,GAAA6qG,GACA9+S,GAAA8+S,GAAA5lU,OAAAu/L,IAAAvgM,KAAAvD,EAAA,aAAAoqU,GACA,OACAD,EACAC,KAIAtmI,GAAAqmI,GAAA,CAAAA,GAAA,IAGAE,GAAA,SAAArxP,EAAA9nC,GACA,IAAAi5R,EAAArwT,GAAAZ,QAAAg4B,EAAAmlR,yBACAx7J,EAAAohJ,GAAAD,eAAAmuB,EAAAnxP,GACAsxP,EAAA/lU,EAAAs2J,EAAA,SAAAnhF,GACA,OAAA82F,GAAA92F,IAAA6kJ,GAAA7kJ,KAEA6wP,EAAAT,GAAAjvK,EAAA3pH,GACAs5R,EAAAF,EAAA7pU,OAAA8pU,EAAAzqU,OAAAyqU,EAAAL,GAAAC,IACA,OAAAjmU,EAAAsmU,EAAA/+T,KAEAg/T,GAAA,WACA,OAAAjqI,GAAA,KAEAkqI,GAAA,SAAA1xP,EAAA9nC,GACA,OAAA84R,GAAAlwT,GAAAZ,QAAAg4B,EAAAy5R,iBAAAN,GAAArxP,EAAA9nC,KAEA05R,GAAA,SAAAjiK,EAAA/qG,GACA,OAAAn8B,GAAAm8B,EAAA,QAAAx9D,EAAA6C,GAAA0lK,KAEAkiK,GAAA,SAAA7xP,EAAA8xP,GACA,OAAAF,GAAA5xP,EAAA8xP,EAAA,IAAA1mU,KAAA,SAAAwmO,GACA,IAAAjuB,EAAAmuH,EAAA,GACA7nH,EAAA6nH,IAAAhrU,OAAA,GACAirU,EAAA5B,GAAAjwT,QAAA0xN,GACA,OAAAu+F,GAAAD,WAAA6B,EAAApuH,EAAAsG,GAAA/+M,IAAA,SAAA8mU,GACA,OAAAxqI,GAAA,CAAA2oI,GAAAF,MAAA+B,SAEOrnU,WAAA8mU,KAEPQ,GAAA,SAAAjyP,EAAAjmC,GACA,OAAAA,EAAAjzC,OAAA,GAAAizC,EAAA,GAAAC,UAAAy3R,KAAAC,GAAA1xP,EAAAjmC,EAAA,KAEApb,GAAA,SAAAqhD,EAAAjmC,GACA,IAAAmyL,EAAA0kG,GAAAH,4BAAA12R,EAAAimC,GACA,OAAAksJ,EAAAplO,OAAA,EAAA+qU,GAAA7xP,EAAAksJ,GAAA+lG,GAAAjyP,EAAAjmC,IAEAm4R,GAAA,CAA0B5nT,KAAAqU,IAE1B4yL,GAAA,SAAA10I,GACA,OAAAzwE,EAAAD,KAAA0wE,EAAA5kC,UAAAkrC,UAAAj4E,IAAA,SAAAgtC,GACA,IAAAi6R,EAAAt1P,EAAAp8D,IAAAoe,IAAAg+C,EAAAhuD,UAAA,OACA68K,iBAAA,MACA9rK,MAAA,iCACSsY,EAAAy5R,iBACTpxT,EAAAwtQ,GAAAtnQ,KAAA0rT,EAAA9rL,WAEA,OADAxpE,EAAAp8D,IAAAsT,OAAAo+S,GACA5xT,IACO7V,MAAA,KAEP0nU,GAAA,SAAAv1P,EAAAl2E,GACA,IAEA6tB,EAFA0jB,EAAA2kC,EAAA5kC,UAAAkrC,SAAAkvP,EAAAx1P,EAAAp8D,IAAAsuB,OAAA,QACAuP,EAAAu+B,EAAA5kC,UAAAssQ,SAEAxqQ,EAAAg1R,GAAAD,cAAAjyP,EAAAyzP,GAAAz2R,UAAAyE,IAKA,OAJA9pB,EAAA7tB,EAAA4mK,WAAA2kK,GAAA5nT,KAAAxJ,GAAAZ,QAAA28D,EAAAhuD,WAAAkrB,GAAAt5B,MAAAy3B,EAAAy5R,gBACAn9S,GACA69S,EAAA9+S,YAAAiB,GAEAqoD,EAAA5kC,UAAAklK,WAAAC,UAAAi1H,EAAA1rU,IAEA2rU,GAAA,SAAAz1P,EAAAl2E,GAQA,QAPA,IAAAA,IACAA,EAAA,IAEAA,EAAAsK,KAAA,EACAtK,EAAAmxF,OAAAnxF,EAAAmxF,QAAA,OACAnxF,EAAAsxC,WAAA,EACAtxC,EAAAk2E,EAAAya,KAAA,mBAAA3wF,GACAA,EAAAykG,qBAEA,OADAvuB,EAAAya,KAAA,aAAA3wF,GACAA,EAAA0tB,QAEA,YAAA1tB,EAAAmxF,OACA,OAAAy5H,GAAA10I,GAEAl2E,EAAA8hS,UAAA,EACA,IAAAp0Q,EAAA+9S,GAAAv1P,EAAAl2E,GACA,eAAAA,EAAAmxF,OACAzjE,GAEA1tB,EAAA0tB,QAAAwoD,EAAA5kC,UAAAw4G,cAAA,GAAAp8H,EACAwoD,EAAAya,KAAA,aAAA3wF,GACAA,EAAA0tB,UAIAk+S,GAAA,CAA+Bl5P,WAAAi5P,IAE/BE,GAAA,SAAAnyT,EAAA2/D,EAAAlxD,GACA,MAAAzO,OAAA2/D,EAAA,CACA,GAAAlxD,EAAAzO,GACA,OAAAA,EAEAA,IAAAqO,WAEA,aAEA+jT,GAAA,SAAApyT,EAAA2/D,EAAAlxD,GACA,cAAA0jT,GAAAnyT,EAAA2/D,EAAAlxD,IAEA4jT,GAAA,SAAAryT,EAAA2/D,EAAA1yE,GACA,OAAAmlU,GAAApyT,EAAA2/D,EAAA,SAAA3/D,GACA,OAAAA,EAAAgO,WAAA/gB,KAGAqlU,GAAA,SAAAtyT,GACA,OAAAA,GAAA,UAAAA,EAAAgO,UAEAukT,GAAA,SAAAvyT,GACA,OAAAA,GAAA,oBAAAkB,KAAAlB,EAAAgO,WAEAwkT,GAAA,SAAAxyT,EAAA2/D,GACA,OAAAmuM,GAAA9tQ,KAAA,IAAAoyT,GAAApyT,EAAA2/D,EAAAk2M,KAEA48C,GAAA,SAAAryT,EAAAJ,EAAA2kB,GACA,IAAA26C,EAAA,IAAAgkM,GAAAtjQ,EAAAI,EAAA4oL,UAAAhpL,EAAAqO,WAAAjO,EAAA0+D,UAAA1+D,EAAAw/D,WACA,MAAA5/D,EAAAs/D,EAAA36C,EAAA,iBACA,GAAAkkK,GAAAZ,KAAAjoL,GACA,UAIA0yT,GAAA,SAAA1yT,EAAA/S,GACA,OAAA+S,EAAAwoL,iBAAAxoL,EAAAwoL,gBAAAx6K,WAAA/gB,GAEA0lU,GAAA,SAAApkT,EAAAvO,GACA,MAAAA,OAAAuO,EAAA,CACA,GAAAs6K,GAAAjjD,uBAAA5lI,GACA,SAEAA,IAAAqO,WAEA,UAEAukT,GAAA,SAAAxyT,EAAAyyT,EAAAl5R,EAAAhV,EAAA22H,GACA,IAAAw3K,EAEA9yT,EADAuO,EAAAnO,EAAAw/D,UAEAwsL,EAAAhsP,EAAA7F,OAAA65L,sBACA2+H,EAAA3yT,EAAA4oL,UAAA1tC,EAAAjtI,WAAAjO,EAAA0+D,UAAAvwD,EACA,GAAAoW,GAAAkkK,GAAAZ,KAAA3sC,IAAAu3K,GAAAzyT,EAAAqoL,QAAAsqI,GACA,OAAAhnU,EAAAP,KAAAknR,GAAAp3H,EAAAjtI,WAAAjO,EAAA+wL,UAAA71C,KAEA,IAAAh8E,EAAA,IAAAgkM,GAAAhoH,EAAAy3K,GACA,MAAA/yT,EAAAs/D,EAAA36C,EAAA,kBACA,aAAAvkB,EAAAgoQ,yBAAApoQ,IAAAwyT,GAAAxyT,EAAAuO,GACA,OAAAxiB,EAAArC,OAEA,GAAAm/L,GAAA16K,OAAAnO,MAAAy6B,UAAAh0C,OAAA,EACA,WAAA4rU,GAAAryT,EAAAuO,EAAA,KACAxiB,EAAAP,KAAAknR,GAAA1yQ,EAAA2kB,EAAA3kB,EAAAy6B,UAAAh0C,OAAA,IAEAsF,EAAArC,OAEA,GAAA0W,EAAA0+D,QAAA9+D,IAAAosP,EAAApsP,EAAAgO,SAAAlM,eACA,OAAA/V,EAAArC,OAEAopU,EAAA9yT,EAEA,OAAA25B,GAAAm5R,EACA/mU,EAAAP,KAAAknR,GAAAogD,EAAA,IAEA/mU,EAAArC,QAEAspU,GAAA,SAAA5yT,EAAAu5B,EAAA3zB,EAAA6xB,GACA,IAAAtjB,EAAAmT,EAEA1nB,EAAAosP,EACA6mE,EAAAJ,EAFAtkT,EAAAnO,EAAAw/D,UAEAk4K,GAAA,EAMA,GALAvjO,EAAAsjB,GAAA7xB,EAAA,4BACA0hB,EAAAmQ,GAAA7xB,EAAA,yBACA6sT,EAAAhqI,GAAA36K,UAAAqG,IAAAmT,IAAAnT,EAAA3U,WAAAnZ,OACA2lQ,EAAAhsP,EAAA7F,OAAA65L,sBACA6+H,EAAAjtT,EACA8nQ,GAAAv5P,GACA,OAAAxoB,EAAArC,OASA,GAPAm/L,GAAA36K,UAAAqG,IAAAmT,EAAAnT,EAAA3U,WAAAnZ,OAAA,IACAwsU,GAAA,GAEApqI,GAAA81D,WAAApqO,KACAA,EAAAhG,EACAmZ,EAAA,GAEAnT,IAAAhG,EAAA,CACA,GAAA0kT,IACAjzT,EAAAuU,EAAA3U,WAAA8nB,EAAA,EAAAA,EAAA,KACA1nB,GAAA,CACA,GAAA8tQ,GAAA9tQ,GACA,OAAAjU,EAAArC,OAEA,GAAA0iQ,EAAApsP,EAAAgO,WAAAskT,GAAAtyT,GACA,OAAAjU,EAAArC,OAIA,GAAA6qB,EAAA5U,gBAAA,CAIA,GAHA+nB,EAAArR,KAAAmlB,KAAAy3R,GAAAvrS,EAAA,EAAAA,EAAA,EAAAA,EAAAnT,EAAA3U,WAAAnZ,OAAA,GACA8tB,IAAA3U,WAAA8nB,GACAA,EAAAmhK,GAAA16K,OAAAoG,IAAAs+S,EAAAt+S,EAAA/G,KAAA/mB,OAAA,GACAkzC,GAAAplB,IAAAhG,EAAA64K,WAAAkrI,GAAA/9S,GACA,OAAAxoB,EAAArC,OAEA,GAAAipU,GAAApkT,EAAAgG,IAAAu5P,GAAAv5P,GACA,OAAAxoB,EAAArC,OAEA,GAAA6qB,EAAA5U,kBAAA,IAAA2yT,GAAA/9S,GAAA,CACAvU,EAAAuU,EACA,IAAA+qD,EAAA,IAAAgkM,GAAA/uP,EAAAhG,GACA,GACA,GAAAs6K,GAAAjjD,uBAAA5lI,IAAA8tQ,GAAA9tQ,GAAA,CACA83O,GAAA,EACA,MAEA,GAAAjvD,GAAA16K,OAAAnO,MAAAy6B,UAAAh0C,OAAA,GACAihC,EAAAurS,EAAA,EAAAjzT,EAAAy6B,UAAAh0C,OACA8tB,EAAAvU,EACA83O,GAAA,EACA,MAEA,GAAAsU,EAAApsP,EAAAgO,SAAAlM,iBAAAywT,GAAAvyT,GAAA,CACA0nB,EAAAtnB,EAAA+wL,UAAAnxL,GACAuU,EAAAvU,EAAAqO,WACA4kT,GACAvrS,IAEAowN,GAAA,EACA,aAEa93O,EAAAizT,EAAA3zP,EAAA1iE,OAAA0iE,EAAAO,UAiCb,OA7BAlmC,IACAkvJ,GAAA16K,OAAAoG,IAAA,IAAAmT,GACAkrS,GAAAxyT,EAAAyyT,EAAAl5R,GAAA,EAAAplB,GAAAzpB,KAAA,SAAAupC,GACA9f,EAAA8f,EAAA9f,YACAmT,EAAA2M,EAAA3M,SACAowN,GAAA,IAGAjvD,GAAA36K,UAAAqG,KACAvU,EAAAuU,EAAA3U,WAAA8nB,GACA1nB,IACAA,EAAAuU,EAAA3U,WAAA8nB,EAAA,KAEA1nB,IAAA6oL,GAAAZ,KAAAjoL,IAAA0yT,GAAA1yT,EAAA,MAAAyyT,GAAAryT,EAAAJ,GAAA,IAAAyyT,GAAAryT,EAAAJ,GAAA,IACA4yT,GAAAxyT,EAAAyyT,EAAAl5R,GAAA,EAAA35B,GAAAlV,KAAA,SAAAupC,GACA9f,EAAA8f,EAAA9f,YACAmT,EAAA2M,EAAA3M,SACAowN,GAAA,MAKAm7E,IAAAt5R,GAAAkvJ,GAAA16K,OAAAoG,IAAAmT,IAAAnT,EAAAkmB,UAAAh0C,QACAmsU,GAAAxyT,EAAAyyT,EAAAl5R,GAAA,EAAAplB,GAAAzpB,KAAA,SAAAupC,GACA9f,EAAA8f,EAAA9f,YACAmT,EAAA2M,EAAA3M,SACAowN,GAAA,IAGAA,EAAA/rP,EAAAP,KAAAknR,GAAAn+P,EAAAmT,IAAA37B,EAAArC,QAEAwpU,GAAA,SAAA9yT,EAAAy3B,GACA,IAAA8B,EAAA9B,EAAA8B,UAAAw5R,EAAAt7R,EAAAupC,aACA05M,EAAApI,GAAAE,eAAA/6O,GAcA,OAbAm7R,GAAA5yT,EAAAu5B,GAAA,EAAAw5R,GAAAroU,KAAA,SAAAupC,GACAsF,GAAA+4O,GAAAtpG,QAAA0xG,EAAAzmP,IACA8+R,EAAA96R,SAAAhE,EAAA9f,YAAA8f,EAAA3M,YAGAiS,GACAq5R,GAAA5yT,EAAAu5B,GAAA,EAAAw5R,GAAAroU,KAAA,SAAAupC,GACA8+R,EAAAz6R,OAAArE,EAAA9f,YAAA8f,EAAA3M,YAGAiS,GACAw5R,EAAAp4R,UAAA,GAEA2oQ,GAAAxlB,KAAArmP,EAAAs7R,GAAApnU,EAAArC,OAAAqC,EAAAP,KAAA2nU,IAEAC,GAAA,CAA0B9yP,UAAA4yP,IAE1BG,GAAA,SAAAxhU,EAAA2b,GACA3b,EAAAyhU,WAAA,EAAA9lT,IAEAugP,GAAA,SAAA7tP,GACA,WAAAA,EAAAE,MAAA3Z,QACAyuB,GAAAhV,GACAnU,EAAArC,QAEAqC,EAAAP,KAAA0U,IAEAqzT,GAAA,SAAA17R,EAAA1jB,GACA,IAAA5B,EAAAxmB,EAAAD,KAAAqoB,EAAA5B,YAAA1nB,IAAA4V,GAAAZ,SACAunL,EAAAr7L,EAAAD,KAAAqoB,EAAAizK,WAAAv8L,IAAA4V,GAAAZ,SACAg4B,EAAA27R,iBACA37R,EAAAuoC,WAAAjsD,GACA,IAAAs/S,EAAAlhT,EAAAxnB,KAAAi3M,IAAA92M,OAAA0zE,IAAA7zE,KAAAgjQ,IACA2lE,EAAAtsI,EAAAr8L,KAAAmnB,IAAAhnB,OAAA0zE,IAAA7zE,KAAAgjQ,IACA3kO,GAAAqqS,EAAAlhT,EAAArnB,OAAA0zE,IAAA,SAAAiB,EAAA75D,GACAqtT,GAAArtT,EAAA5F,MAAAy/D,EAAAz/D,MAAAoN,MACA0H,GAAA2qD,KAEAz2C,GAAAsqS,EAAAtsI,EAAAl8L,OAAA0zE,IAAA,SAAAhiE,EAAA65G,GACA,IAAAk9M,EAAAl9M,EAAAr2G,MAAA3Z,OACAgwH,EAAAr2G,MAAA08Q,WAAAlgR,EAAAwD,MAAAoN,MACAqqB,EAAAa,OAAA+9E,EAAAr2G,MAAAuzT,GACAz+S,GAAAtY,KAEAi7B,EAAAkD,UAAA,IAEA64R,GAAA,SAAAttU,EAAA0tB,GAKA,OAJA1tB,KAAA,CAAsBmxF,OAAA,QACtBnxF,EAAA2Y,KAAA,EACA3Y,EAAAsxC,WAAA,EACAtxC,EAAA0tB,UACA1tB,GAEAutU,GAAA,SAAAr3P,EAAAxoD,EAAA1tB,GAEA,GADAA,EAAAstU,GAAAttU,EAAA0tB,GACA1tB,EAAA+hS,YACA/hS,EAAAk2E,EAAAya,KAAA,mBAAA3wF,IACAA,EAAAykG,sBAFA,CAOA,IAAAlzD,EAAA2kC,EAAA5kC,UAAAkrC,SACAywP,GAAA17R,IAAAi8R,yBAAAxtU,EAAA0tB,UACAwoD,EAAA5kC,UAAA2nI,OAAA1nI,GACA+1R,GAAAE,oBAAAtxP,EAAA3kC,GACAvxC,EAAA+hS,WACA7rN,EAAAya,KAAA,aAAA3wF,QATAk2E,EAAAya,KAAA,aAAA3wF,IAYAytU,GAAA,CAA+BnqR,WAAAiqR,IAE/BG,GAAA,SAAAj1R,EAAAlH,EAAA7xB,EAAAiuT,EAAAlsU,GACA,IAAAwsB,EAAAvO,EAAA6xB,EAAAC,eAAAD,EAAAyB,aACA5R,EAAA1hB,EAAA6xB,EAAAwB,YAAAxB,EAAA0B,UACA,OAAAxtC,EAAAD,KAAAyoB,GAAA1pB,IAAA4V,GAAAZ,SAAAhV,IAAA,SAAAw1E,GACA,OAAA4zP,GAAAp8R,EAAA8B,UAAA0mC,EAAAjuD,GAAAiuD,EAAAt4E,EAAAs4E,EAAA34C,IAAAr9B,MAAAg2E,KACOt1E,KAAA,SAAAs1E,GACP,OAAAgC,GAAAhC,GAAAt0E,EAAAP,KAAA60E,GAAAruD,GAAAquD,KACOx1E,IAAA,SAAAw1E,GACP,OAAAA,EAAAjgE,QACO/V,MAAA00C,IAEPm1R,GAAA,SAAAn1R,EAAAlH,EAAAo8R,GACA,OAAAD,GAAAj1R,EAAAlH,GAAA,EAAAo8R,EAAA,SAAA5zP,EAAA34C,GACA,OAAArR,KAAAmlB,IAAA4jN,GAAA/+K,GAAA34C,MAGAgU,GAAA,SAAAqD,EAAAlH,EAAAo8R,GACA,OAAAD,GAAAj1R,EAAAlH,GAAA,EAAAo8R,EAAA,SAAA5zP,EAAA34C,GACA,OAAAA,EAAA,EAAAA,EAAA,EAAAA,KAGAysS,GAAA,SAAAn0T,EAAAo0T,GACA,IAAAtyM,EAAA9hH,EACA,MAAAA,GAAA6oL,GAAA16K,OAAAnO,IAAA,IAAAA,EAAAvZ,OACAuZ,EAAAo0T,EAAAp0T,EAAAkS,YAAAlS,EAAAwoL,gBAEA,OAAAxoL,GAAA8hH,GAEAuyM,GAAA,SAAAt1R,EAAAlH,GACA,IAAAwoC,EAAAvoC,EAAAwB,EAAAD,EAAAE,EACA,OAAA1B,GAGAC,EAAAD,EAAAC,eACAwB,EAAAzB,EAAAyB,aACAD,EAAAxB,EAAAwB,YACAE,EAAA1B,EAAA0B,UACA8mC,EAAAxoC,EAAAmlR,yBACAnlR,EAAA8B,YACA7B,IAAAwB,GACAC,EAAAF,EAAA,GACAvB,EAAAn4B,kBACA0gE,EAAAvoC,EAAAl4B,WAAAy5B,IAIA,IAAAvB,EAAAxvB,UAAA,IAAAgxB,EAAAhxB,WAEAwvB,EADAA,EAAArxC,SAAA4yC,EACA86R,GAAAr8R,EAAA5lB,aAAA,GAEA4lB,EAAAzpB,WAGAirB,EADA,IAAAC,EACA46R,GAAA76R,EAAAkvJ,iBAAA,GAEAlvJ,EAAAjrB,WAEAypB,OAAAwB,IACAxB,EAIAuoC,GAAA,IAAAA,EAAA/3D,SACA+3D,EAAAhyD,WAEAgyD,GAlCAthC,GAoCAyqJ,GAAA,SAAAppL,EAAAy3B,EAAA0sQ,EAAA+vB,GACA,IAAAt0T,EAAA++B,EACAqqJ,EAAA,GAOA,GANArqJ,EAAA3+B,EAAAw/D,UACA2kO,EAAAnkS,EAAA4oL,UAAAu7G,GAAA2vB,GAAAn1R,EAAAlH,IAAA8B,WAAAv5B,EAAA0+D,SACAw1P,EAAAl0T,EAAA4oL,UAAAsrI,GAAA54R,GAAAqD,EAAAlH,IAAA8B,WAAAv5B,EAAA0+D,SACAylO,OAAAxlQ,GACAqqJ,EAAAn7L,KAAAs2S,GAEAA,GAAA+vB,GAAA/vB,IAAA+vB,EAAA,CACAt0T,EAAAukS,EACA,IAAAjlO,EAAA,IAAAgkM,GAAAihC,EAAAxlQ,GACA,OAAA/+B,EAAAs/D,EAAA1iE,SAAAoD,IAAAs0T,EACAl0T,EAAA0+D,QAAA9+D,IACAopL,EAAAn7L,KAAA+R,GAOA,OAHAs0T,GAAA/vB,IAAA+vB,OAAAv1R,GACAqqJ,EAAAn7L,KAAAqmU,GAEAlrI,GAEAmrI,GAAA,SAAAn0T,EAAAJ,EAAAgU,GACA,OAAAjoB,EAAAD,KAAAkU,GAAAnV,IAAA,SAAAmV,GACA,IAAAi1E,EAAA70E,EAAA+wL,UAAAnxL,GACA63B,EAAAz3B,EAAAmhE,YAOA,OANA1pC,EAAAQ,SAAAr4B,EAAAqO,WAAA4mE,GACAp9C,EAAAa,OAAA14B,EAAAqO,WAAA4mE,EAAA,GACAjhE,IACAgwR,GAAA5jS,EAAAy3B,EAAA73B,GAAA,GACAgkS,GAAA5jS,EAAAy3B,EAAA73B,GAAA,IAEA63B,KAIA28R,GAAA,SAAAxnD,EAAA3kQ,EAAA2wE,GACA,GAAAg0L,KAAAvkR,eAAA4f,GAAA,CACA,IAAAosT,EAAAvpU,EAAA8hR,EAAA3kQ,GAAA,SAAAioF,GACA,OAAAA,IAAAtX,IAEA,IAAAy7O,EAAAhuU,cACAumR,EAAA3kQ,GAEA2kQ,EAAA3kQ,GAAAosT,IAIA,SAAAC,GAAAt0T,EAAAo8D,GACA,IAAAm4P,EACAC,EACA,OACAxzH,0BAAA,SAAA/4L,EAAA2wE,GA0CA,OAzCA27O,IACAA,EAAA,GACAC,EAAA,GACAp4P,EAAA/lC,GAAA,sBAAA5tC,GACA,IAAAmX,EAAAnX,EAAAuf,QAAAo5I,EAAAphJ,EAAAs3E,WAAA13E,EAAA,KAAAI,EAAAw/D,WAAAi1P,EAAA,GACA/sU,GAAAgD,KAAA6pU,EAAA,SAAA1hO,EAAA5qF,GACAvgB,GAAAgD,KAAA02J,EAAA,SAAAxhJ,GACA,GAAAI,EAAAjW,GAAA6V,EAAAqI,GAYA,OAXAusT,EAAAvsT,KACAvgB,GAAAgD,KAAAmoG,EAAA,SAAAja,GACAA,GAAA,GACAh5E,OACAqI,WACAm5I,cAGAozK,EAAAvsT,GAAA4qF,GAEA4hO,EAAAxsT,GAAA4qF,GACA,MAIAnrG,GAAAgD,KAAA8pU,EAAA,SAAA3hO,EAAA5qF,GACAwsT,EAAAxsT,YACAusT,EAAAvsT,GACAvgB,GAAAgD,KAAAmoG,EAAA,SAAAja,GACAA,GAAA,GACAh5E,OACAqI,WACAm5I,oBAOAmzK,EAAAtsT,KACAssT,EAAAtsT,GAAA,IAEAssT,EAAAtsT,GAAApa,KAAA+qF,GACA,CACA0I,OAAA,WACA8yO,GAAAG,EAAAtsT,EAAA2wE,GACAw7O,GAAAI,EAAAvsT,EAAA2wE,OAOA,IAysBA87O,GAzsBAC,GAAA,SAAAl9R,GACA,QAAAA,EAAA8hD,QAEAq7O,GAAA,SAAAh1T,GACA,SAAAA,MAAAsO,gBAAAhF,GAAA7I,GAAAZ,QAAAG,EAAAsO,eAAA7N,GAAAZ,QAAAG,KAEAi1T,GAAA,SAAAp9R,GACA,QAAAA,MAEOk9R,GAAAl9R,IAGPm9R,GAAAn9R,EAAAC,iBAAAk9R,GAAAn9R,EAAAyB,gBAGA47R,GAAA,SAAA90T,EAAA+kB,EAAA23K,EAAAtgI,GACA,IAAA24P,EACAC,EACAC,EACAC,EACAl0H,EAAAszH,GAAAt0T,EAAAo8D,GAAA4kI,0BACA7gI,EAAA,SAAAvgE,EAAA0nB,GACA,IAAAmQ,EAAAz3B,EAAAmhE,YACAvhE,GAIA63B,EAAAQ,SAAAr4B,EAAA0nB,GACAmQ,EAAAa,OAAA14B,EAAA0nB,GACA63I,EAAA1nI,GACAkD,GAAA,KANAipQ,GAAA5jS,EAAAy3B,EAAA2kC,EAAAhuD,WAAA,GACA+wJ,EAAA1nI,KAQAmhC,EAAA,SAAA1yE,GACA,OAAA4rU,GAAAl5P,WAAAwD,EAAAl2E,IAEAsjD,EAAA,SAAA51B,EAAA1tB,GACA,OAAAytU,GAAAnqR,WAAA4yB,EAAAxoD,EAAA1tB,IAEAwwC,EAAA,SAAAm9R,GACA,OAAAC,GAAA13P,EAAAhuD,UAAAs0D,IAAAmxP,IAEAsB,EAAA,SAAAtB,GACA,OAAAv4R,GAAA8gC,EAAAhuD,UAAAs0D,IAAAmxP,IAEAzjI,EAAA,SAAArjM,EAAA2qP,GACA,OAAAq9E,EAAA3kI,YAAArjM,EAAA2qP,IAEArnD,EAAA,SAAAF,GACA,OAAA4kI,EAAA1kI,eAAAF,IAEA52G,EAAA,SAAA35E,EAAAgU,GAEA,OADAugT,GAAAn0T,EAAAJ,EAAAgU,GAAAlpB,KAAAy0K,GACAv/J,GAEAowI,EAAA,WACA,IAAAv4G,EAAAirC,IAAA7kC,EAAAimQ,IACA,SAAArsQ,KAAA7V,QAGA6V,EAAA29R,iBACA,IAAA39R,EAAA29R,iBAAA,aAAA39R,IAEAoG,GAAApG,EAAA8B,YAEAoB,EAAA,SAAAurM,GACA,IAAAzuM,EAAAirC,IACAjrC,EAAAkD,WAAAurM,GACA/mE,EAAA1nI,IAEAqsQ,EAAA,WACA,OAAA/+Q,EAAA6Y,aAAA7Y,EAAA6Y,eAAA7Y,EAAA5lB,SAAAq4B,WAEAkrC,EAAA,WACA,IAAAlrC,EAAAC,EAAAwoC,EAAA/gE,EACAm2T,EAAA,SAAAC,EAAAC,EAAAC,GACA,IACA,OAAAD,EAAAE,sBAAAH,EAAAE,GACW,MAAA7kO,GACX,WAGA,IAAA5rE,EACA,YAGA,GADA7lB,EAAA6lB,EAAA5lB,SACA,qBAAAD,GAAA,OAAAA,EACA,YAEA,QAAA5U,IAAA8xE,EAAA+zH,WAAA,IAAA48F,GAAA37P,SAAAgrC,GAAA,CACA,IAAA+zH,EAAA+5F,GAAAxnN,OAAAtG,GACA,GAAA+zH,EAAAnmM,SACA,OAAAmmM,EAAA1lM,IAAA,SAAA1B,GACA,OAAAulU,GAAAD,cAAAjyP,EAAA,CAAArzE,IAAA,KACakB,MAAAiV,EAAAu5B,eAGb,KACAjB,EAAAssQ,OAAAr7G,GAAAg1D,iBAAAjmN,EAAA+F,cAEA9F,EADAD,EAAA0F,WAAA,EACA1F,EAAA4F,WAAA,GAEA5F,EAAAiB,YAAAjB,EAAAiB,cAAAv5B,EAAAu5B,eAGS,MAAAk4D,IAmBT,OAjBAl5D,EAAA62R,GAAAD,cAAAjyP,EAAA,CAAA3kC,IAAA,GACAA,IACAA,EAAAv4B,EAAAu5B,YAAAv5B,EAAAu5B,cAAAv5B,EAAAiP,KAAA2/S,mBAEAr2R,EAAAQ,UAAA,IAAAR,EAAAC,eAAAxvB,UAAAuvB,EAAA8B,YACA0mC,EAAAjgE,EAAAw/D,UACA/nC,EAAAQ,SAAAgoC,EAAA,GACAxoC,EAAAa,OAAA2nC,EAAA,IAEAg1P,GAAAC,IACA,IAAAG,EAAA59R,EAAAi+R,eAAAj+R,EAAAw9R,IAAA,IAAAI,EAAA59R,EAAAk+R,WAAAl+R,EAAAw9R,GACAx9R,EAAAy9R,GAEAD,EAAA,KACAC,EAAA,OAGAz9R,GAEA0nI,EAAA,SAAA1nI,EAAA0kM,GACA,IAAAt+L,EAAAj+B,EAAA89F,EACA,GAAAm3N,GAAAp9R,GAAA,CAGA,IAAAm+R,EAAAjB,GAAAl9R,KAAA,KACA,GAAAm+R,EAAA,CACAV,EAAA,KACA,IACAU,EAAAr8O,SACW,MAAAoX,SAJX,CAcA,GANA9yD,EAAAimQ,IACApmM,EAAAthC,EAAAya,KAAA,qBACA3oF,MAAAupC,EACA0kM,YAEA1kM,EAAAimE,EAAAxvG,MACA2vC,EAAA,CACAq3R,EAAAz9R,EACA,IACAoG,EAAA09L,kBACA19L,EAAA29L,SAAA/jM,GACW,MAAAk5D,KAEX,IAAAwrI,GAAAt+L,EAAAoyF,SACApyF,EAAAlD,SAAAlD,EAAAyB,aAAAzB,EAAA0B,WACA0E,EAAAoyF,OAAAx4F,EAAAC,eAAAD,EAAAwB,cAEAg8R,EAAAp3R,EAAAX,WAAA,EAAAW,EAAAT,WAAA,QAEA3F,EAAA8B,WAAA9B,EAAAC,iBAAAD,EAAAyB,eAAA2E,EAAA+9L,kBAAAklB,GAAA/+O,IACA01B,EAAA0B,UAAA1B,EAAAwB,YAAA,GACAxB,EAAAC,eAAAn4B,kBACAK,EAAA63B,EAAAC,eAAAl4B,WAAAi4B,EAAAwB,aACAr5B,GAAA,QAAAA,EAAAkrL,UACAjtJ,EAAA+9L,iBAAAnkM,EAAAC,eAAAD,EAAAwB,YAAAxB,EAAAyB,aAAAzB,EAAA0B,WACA0E,EAAAN,aAAA9F,EAAAC,gBAAAmG,EAAAL,YAAA/F,EAAAyB,cACA2E,EAAA+9L,iBAAAh8N,EAAA,EAAAA,EAAA,KAMAw8D,EAAAya,KAAA,0BACA3oF,MAAAupC,EACA0kM,eAGA05F,EAAA,SAAA51P,GAEA,OADAz2B,EAAAxpC,EAAA8mQ,aAAA7mM,IACAA,GAEAJ,EAAA,WACA,OAAAo0P,GAAA73P,EAAAhuD,UAAAs0D,MAEAozP,EAAA,SAAA3xB,EAAA+vB,GACA,OAAA9qI,GAAAppL,EAAA0iE,IAAAyhO,EAAA+vB,IAEApgI,EAAA,WACA,IACAiiI,EAAAC,EADAn4R,EAAAimQ,IAEA,QAAAjmQ,KAAAN,YAAAM,EAAAL,aAGAu4R,EAAA/1T,EAAAmhE,YACA40P,EAAA99R,SAAA4F,EAAAN,WAAAM,EAAAJ,cACAs4R,EAAAp7R,UAAA,GACAq7R,EAAAh2T,EAAAmhE,YACA60P,EAAA/9R,SAAA4F,EAAAL,UAAAK,EAAAH,aACAs4R,EAAAr7R,UAAA,GACAo7R,EAAAN,sBAAAM,EAAAL,eAAAM,IAAA,IAEA91P,EAAA,WACA,IAAAzoC,EAAAirC,IACA7kC,EAAAimQ,IACA,IAAA+rB,GAAAD,kBAAA/xR,IAAAgmQ,GAAAznO,GAAA,CACA,IAAA22P,EAAAC,GAAA9yP,UAAAlgE,EAAAy3B,GAIA,OAHAs7R,EAAAroU,KAAA,SAAAqoU,GACA5zJ,EAAA4zJ,EAAAj/H,OAEAi/H,EAAA9oU,MAAAwtC,GAEA,OAAAA,GAEAw+R,EAAA,SAAAhuT,EAAA2wE,GAEA,OADAooH,EAAA/4L,EAAA2wE,GACAuU,GAEA+oO,EAAA,WACA,IAAAC,EACAv2T,EAAAI,EAAAw/D,UACA,MAAA5/D,GAAA,SAAAA,EAAAgO,SAAA,CACA,GAAAhO,EAAA8sH,aAAA9sH,EAAA+mB,aAAA,CACAwvS,EAAAv2T,EACA,MAEAA,IAAAqO,WAEA,OAAAkoT,GAEAtyD,EAAA,SAAA5jM,EAAA0jM,GACA,OAAA6pD,GAAAC,sBAAArxP,EAAA6D,EAAA0jM,IAEAonC,EAAA,SAAAhqN,EAAAC,GACA,OAAAm+E,EAAAivJ,GAAAnuT,UAAA8gF,EAAAC,EAAA5kB,EAAA0D,YAEA/7C,EAAA,WACA,IAAA0T,EAAAirC,IACA,OAAAjrC,EAAA8B,UAAAw5O,GAAAP,eAAA/6O,GAAAqB,iBAAA,GAAArB,EAAA1T,yBAEAqjE,EAAA,WACAriE,EAAAkwS,EAAAC,EAAA,KACAF,EAAA5tO,WAEA+F,EAAA,CACA4nO,gBAAA,KACAC,iBAAA,KACAh1T,MACA+kB,MACA23K,aACAtgI,SACAzhC,WACAwlC,oBACAvH,aACApvB,aACA4mJ,cACAC,iBACA92G,SACAy2D,cACA8jD,YACA+hI,UACAh2P,UACAikO,SACA3kI,SACAz8F,SACAhsC,WACA4E,OAAA65R,EACA/rI,kBAAA0sI,EACA51P,YACA+1P,kBACAj1H,4BACAk1H,qBACAryD,iBACAknC,eACAhnR,wBACAqjE,WAMA,OAJA2tO,EAAA7L,GAAA/7N,GACA6nO,EAAA1L,GAAAn8N,EAAA/wB,GACA+wB,EAAA4nO,kBACA5nO,EAAA6nO,mBACA7nO,GAGAipO,GAAA3tI,GAAA16K,OACAsoT,GAAA,SAAAz2T,GACA,OAAAw2T,GAAAx2T,MAAAwN,KAAA,KAAAkgQ,GAAAH,MAEAmpD,GAAA,SAAA12T,GACA,OAAAw2T,GAAAx2T,MAAAwN,KAAAxN,EAAAwN,KAAA/mB,OAAA,KAAAinR,GAAAH,MAEAopD,GAAA,SAAA32T,GACA,OAAAA,EAAAsO,cAAAnO,eAAAutQ,GAAAH,OAEA36P,GAAA,SAAA5S,GACA,GAAAw2T,GAAAx2T,EAAAwoL,iBACA,OAAAkuI,GAAA12T,EAAAwoL,iBACAxoL,EAAAwoL,iBAEAxoL,EAAAwoL,gBAAAs0F,WAAApP,GAAAH,MACAvtQ,EAAAwoL,iBAEO,GAAAguI,GAAAx2T,GACP,OAAAy2T,GAAAz2T,GACAA,GAEAA,EAAAszT,WAAA,EAAA5lD,GAAAH,MACAvtQ,GAGA,IAAAsoT,EAAAqO,GAAA32T,GAEA,OADAA,EAAAqO,WAAAuE,aAAA01S,EAAAtoT,GACAsoT,GAGA94H,GAAA,SAAAxvL,GACA,GAAAw2T,GAAAx2T,EAAAkS,aACA,OAAAukT,GAAAz2T,EAAAkS,aACAlS,EAAAkS,aAEAlS,EAAAkS,YAAAohT,WAAA,EAAA5lD,GAAAH,MACAvtQ,EAAAkS,aAEO,GAAAskT,GAAAx2T,GACP,OAAA02T,GAAA12T,GACAA,GAEAA,EAAA88Q,WAAApP,GAAAH,MACAvtQ,GAGA,IAAAsoT,EAAAqO,GAAA32T,GAMA,OALAA,EAAAkS,YACAlS,EAAAqO,WAAAuE,aAAA01S,EAAAtoT,EAAAkS,aAEAlS,EAAAqO,WAAA6E,YAAAo1S,GAEAA,GAGAsO,GAAA,SAAAnkT,EAAAzS,GACA,OAAAyS,EAAAG,GAAA5S,GAAAwvL,GAAAxvL,IAEA62T,GAAA9vU,EAAA6vU,IAAA,GACAE,GAAA/vU,EAAA6vU,IAAA,GAEAG,GAAA,SAAA1iS,EAAA5hB,GACA,OAAAo2K,GAAA16K,OAAAkmB,EAAA9f,aACAqiT,GAAAnkT,EAAA4hB,EAAA9f,aAEAqiT,GAAAnkT,EAAA4hB,EAAA4rC,YAGA+2P,GAAA,SAAA3iS,EAAA03C,GACA,IAAAuiO,EAAAviO,EAAAn7E,MACA,OAAA09S,GAAAj6Q,EAAA9f,cAAA+5R,GAAAzgC,GAAAygC,IAEA2oB,GAAA,SAAAlrP,EAAAwuF,GACA,OAAAA,EAAArwK,KAAA,SAAAke,GACAyuQ,GAAAnjQ,OAAAq4D,EAAAn7E,OACA,IAAAsP,EAAA22T,GAAAzuT,GAEA,OADA2jE,EAAA9sE,IAAAiB,GACAnU,EAAAP,KAAA2nR,GAAAjzQ,IAAAzZ,OAAA,KACO,SAAA2hB,GACP,OAAA2zQ,GAAAC,gBAAA5zQ,GAAAvd,IAAA,SAAAwpC,GACA,GAAA2iS,GAAA3iS,EAAA03C,GAMA,OAAAonM,GAAApnM,EAAAn7E,MAAA,GALAimR,GAAAnjQ,OAAAq4D,EAAAn7E,OACA,IAAAsP,EAAA62T,GAAA1iS,GAAA,GAEA,OADA03C,EAAA9sE,IAAAiB,GACAizQ,GAAAjzQ,EAAA,MAKO,SAAAkI,GACP,OAAA2zQ,GAAAE,eAAA7zQ,GAAAvd,IAAA,SAAAwpC,GACA,GAAA2iS,GAAA3iS,EAAA03C,GAMA,OAAAonM,GAAApnM,EAAAn7E,MAAAm7E,EAAAn7E,MAAAnK,OAAA,GALAowR,GAAAnjQ,OAAAq4D,EAAAn7E,OACA,IAAAsP,EAAA62T,GAAA1iS,GAAA,GAEA,OADA03C,EAAA9sE,IAAAiB,GACAizQ,GAAAjzQ,IAAAzZ,OAAA,MAKO,SAAA2hB,GACPyuQ,GAAAnjQ,OAAAq4D,EAAAn7E,OACA,IAAAsP,EAAA42T,GAAA1uT,GAEA,OADA2jE,EAAA9sE,IAAAiB,GACAnU,EAAAP,KAAA2nR,GAAAjzQ,EAAA,OAGAg3T,GAAA,CAAyBD,gBAEzBE,GAAA,4CACAC,GAAA,SAAAl3T,GACA,OAAAi3T,GAAAj2T,KAAAhB,IAGAm3T,GAAA,SAAA76P,EAAA6D,GACA,OAAAl2E,GAAAsW,GAAAZ,QAAAwgE,GAAA0W,GAAAgxM,0BAAAvrN,KAEA86P,GAAA,SAAAlvT,GACA,cAAAkgQ,GAAAv4L,IAAA0Y,SAAArgF,EAAA,iBAAAgvT,GAAAhvT,EAAAoL,cAEA+jT,GAAA,SAAAF,EAAA13P,EAAAtrC,GACA,OAAAnpC,EAAAo9Q,GAAAv4L,IAAA2H,WAAArjD,EAAA9f,YAAA,IAAAorD,GAAA03P,IAEAG,GAAA,SAAAH,EAAA13P,EAAAtrC,GACA,IAAAmtH,EAAA+1K,GAAAF,EAAA13P,EAAAtrC,GACA,OAAAtoC,EAAAD,KAAA01J,IAAA/6J,OAAA,KAEAgxU,GAAA,SAAA93P,EAAAw5M,EAAAC,GACA,IAAA+0B,EAAAx1B,GAAAQ,EAAAx5M,GACAyuO,EAAAz1B,GAAAS,EAAAz5M,GACA,OAAAwuO,OAAAC,GAEAspB,GAAA,SAAArjS,GACA,OAAAg6O,GAAAh6O,IAAAk6O,GAAAl6O,IAEAsjS,GAAA,SAAAp7F,EAAAloM,GACA,IAAAA,EACA,OAAAA,EAEA,IAAA9f,EAAA8f,EAAA9f,YAAAmT,EAAA2M,EAAA3M,SACA,OAAA60M,EACAsxC,GAAAt5P,GACAs0K,GAAA16K,OAAAoG,EAAArC,aACAihQ,GAAA5+P,EAAArC,YAAA,GAEAihQ,GAAAtgQ,MAAA0B,GAGA85P,GAAAh6O,GAAA8+O,GAAA5+P,EAAAmT,EAAA,GAAA2M,EAGAw5O,GAAAt5P,GACAs0K,GAAA16K,OAAAoG,EAAAi0K,iBACA2qF,GAAA5+P,EAAAi0K,gBAAAj0K,EAAAi0K,gBAAAh7K,KAAA/mB,QAEA0sR,GAAA1gQ,OAAA8B,GAGAg6P,GAAAl6O,GAAA8+O,GAAA5+P,EAAAmT,EAAA,GAAA2M,GAIAujS,GAAA7wU,EAAA4wU,IAAA,GACAE,GAAA9wU,EAAA4wU,IAAA,GACAG,GAAA,CACAT,kBACAG,kBACAziS,MAAAuiS,GACAI,YACAC,qBACAC,qBACAC,sBACAJ,uBAGAM,GAAA,SAAAC,EAAA1xU,GACA,QAAA+B,EAAA,EAAqBA,EAAA2vU,EAAAvxU,OAAgB4B,IAAA,CACrC,IAAAuM,EAAAojU,EAAA3vU,GAAA3B,MAAA,KAAAJ,GACA,GAAAsO,EAAAxK,SACA,OAAAwK,EAGA,OAAA7I,EAAArC,QAEAuuU,GAAA,CAAyBF,kBAEzBG,GAAAhmU,GAAAnB,SAAA,CACA,CAAO0hB,OAAA,aACP,CAAOzM,MAAA,aACP,CAAOywG,IAAA,aACP,CAAO5jG,MAAA,eAEPslT,GAAA,SAAAx4P,EAAA3/D,GACA,IAAAy1L,EAAAkjF,GAAA34Q,EAAA2/D,GACA,OAAA81H,GAAA91H,GAEAs/J,GAAA,SAAAo4F,EAAA13P,EAAAtrC,GACA,IAAA+jS,EAAAN,GAAAF,kBAAAvjS,GACAh1B,EAAA84T,GAAAx4P,EAAAy4P,EAAA7jT,aACA,OAAAujT,GAAAN,eAAAH,EAAAh4T,EAAA+4T,GAAAluU,KAAA,WACA,OAAA6xR,GAAAF,aAAAx8Q,EAAA+4T,GAAArtU,KAAAhE,EAAA+wU,GAAAN,eAAAH,EAAAh4T,IAAAxU,IAAA,SAAAo/F,GACA,OAAAiuO,GAAAzlT,OAAAw3E,MAEOl+F,EAAArC,OAEP2uU,GAAA,SAAA14P,EAAAU,GACA,cAAAy1M,GAAAn2M,EAAAU,IAEAi4P,GAAA,SAAAjB,EAAA13P,EAAAtrC,GACA,OAAAyjS,GAAAN,eAAAH,EAAA13P,EAAAtrC,GAAAnpC,OAAAnE,EAAAsxU,GAAA14P,KAEA44P,GAAA,SAAAlB,EAAA13P,EAAAtrC,GACA,IAAA+jS,EAAAN,GAAAD,mBAAAxjS,GACA,OAAAikS,GAAAjB,EAAA13P,EAAAy4P,GAAArtU,KAAA,SAAAk/F,GACA,IAAAuuO,EAAAz8C,GAAAD,aAAA7xL,EAAAmuO,GACA,OAAAI,EAAA1uU,SAAAiC,EAAAP,KAAA0sU,GAAAlyT,MAAAikF,IAAAl+F,EAAArC,UAGA+sH,GAAA,SAAA4gN,EAAA13P,EAAAtrC,GACA,IAAA+jS,EAAAN,GAAAF,kBAAAvjS,GACA,OAAAikS,GAAAjB,EAAA13P,EAAAy4P,GAAArtU,KAAA,SAAAk/F,GACA,IAAAwuO,EAAA18C,GAAAF,aAAA5xL,EAAAmuO,GACA,OAAAK,EAAA3uU,SAAAiC,EAAAP,KAAA0sU,GAAAzhN,IAAAxsB,IAAAl+F,EAAArC,UAGA+xO,GAAA,SAAA47F,EAAA13P,EAAAtrC,GACA,IAAA+jS,EAAAN,GAAAD,mBAAAxjS,GACAh1B,EAAA84T,GAAAx4P,EAAAy4P,EAAA7jT,aACA,OAAAujT,GAAAN,eAAAH,EAAAh4T,EAAA+4T,GAAAluU,KAAA,WACA,OAAA6xR,GAAAD,aAAAz8Q,EAAA+4T,GAAArtU,KAAAhE,EAAA+wU,GAAAN,eAAAH,EAAAh4T,IAAAxU,IAAA,SAAAo/F,GACA,OAAAiuO,GAAArlT,MAAAo3E,MAEOl+F,EAAArC,OAEPgvU,GAAA,SAAAn+J,GACA,WAAAu9J,GAAA/iS,MAAAwzD,GAAAgyE,KAEAo+J,GAAA,SAAAtB,EAAA13P,EAAAtrC,GACA,IAAAkmI,EAAA09J,GAAAF,cAAA,CACA94F,GACAs5F,GACA9hN,GACAglH,IACA,CACA47F,EACA13P,EACAtrC,IAEA,OAAAkmI,EAAArvK,OAAAwtU,KAEAnwO,GAAA,SAAAgyE,GACA,OAAAA,EAAArwK,KAAArD,UAEA+xU,GAAA,SAAAr+J,GACA,OAAAA,EAAArwK,KAAAvD,EAAA,UAAAA,EAAA,SAAAA,EAAA,OAAAA,EAAA,WAEAkyU,GAAA,SAAAt+J,GACA,OAAAA,EAAArwK,KAAAguU,GAAAzlT,OAAAylT,GAAAzlT,OAAAylT,GAAArlT,MAAAqlT,GAAArlT,QAEA4jC,GAAA,SAAA8jH,GACA,OAAAA,EAAArwK,KAAAguU,GAAAlyT,MAAAkyT,GAAAlyT,MAAAkyT,GAAAzhN,IAAAyhN,GAAAzhN,MAEAqiN,GAAA,SAAAC,EAAAC,GACA,OAAAJ,GAAAG,KAAAH,GAAAI,IAAAzwO,GAAAwwO,KAAAxwO,GAAAywO,IAEAC,GAAA,SAAA18F,EAAA86F,EAAA13P,EAAA7zE,EAAA83Q,EAAArpG,GACA,OAAAnxI,GAAA0uS,GAAAN,eAAAH,EAAA13P,EAAA7zE,GAAAgsU,GAAAN,eAAAH,EAAA13P,EAAAikM,GAAA,SAAAs1D,EAAAC,GACA,OAAAD,IAAAC,GAAArB,GAAAL,mBAAA93P,EAAAu5P,EAAAC,GACAjB,GAAArlT,MAAA0pN,EAAA28F,EAAAC,GAEA5+J,IAEOlwK,MAAAkwK,IAEP6+J,GAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAnvU,KAAAvD,GAAA,YAAA0yU,GACA,OAAAP,GAAAO,EAAAC,MAGAC,GAAA,SAAAh9F,EAAA86F,EAAA13P,EAAA05P,EAAAhlS,GACA,IAAAvoC,EAAAgsU,GAAAH,kBAAAp7F,EAAAloM,GACAuvO,EAAAmY,GAAAZ,aAAA5+C,EAAA58J,EAAA7zE,GAAAjB,IAAA9D,EAAA+wU,GAAAH,kBAAAp7F,IACAhiE,EAAAqpG,EAAA15Q,KAAA,WACA,OAAAmvU,EAAAxuU,IAAAguU,KACO,SAAAj1D,GACP,OAAA+0D,GAAAtB,EAAA13P,EAAAikM,GAAA/4Q,IAAA9D,EAAAkyU,GAAA18F,EAAA86F,EAAA13P,EAAA7zE,EAAA83Q,IAAA14Q,OAAAnE,EAAAqyU,GAAAC,MAEA,OAAA9+J,EAAArvK,OAAAwtU,KAEAc,GAAA,SAAAj9F,EAAAhiE,GACA,OAAAgiE,EACAhiE,EAAArwK,KAAA/D,EAAA4F,EAAAP,KAAA0sU,GAAAlyT,OAAAja,EAAArC,KAAAvD,EAAA4F,EAAAP,KAAA0sU,GAAArlT,OAAA9mB,EAAArC,MAEA6wK,EAAArwK,KAAA6B,EAAArC,KAAAvD,EAAA4F,EAAAP,KAAA0sU,GAAAzlT,QAAA1mB,EAAArC,KAAAvD,EAAA4F,EAAAP,KAAA0sU,GAAAzhN,OAGAgjN,GAAA,SAAAl9F,EAAA86F,EAAA13P,EAAAtrC,GACA,IAAAvoC,EAAAgsU,GAAAH,kBAAAp7F,EAAAloM,GACAglS,EAAAV,GAAAtB,EAAA13P,EAAA7zE,GACA,OAAA6sU,GAAAtB,EAAA13P,EAAA7zE,GAAAf,KAAAhE,EAAAyyU,GAAAj9F,IAAA3xO,QAAA,WACA,OAAA2uU,GAAAh9F,EAAA86F,EAAA13P,EAAA05P,EAAAhlS,MAGAqlS,GAAA,CACAf,gBACAc,gBACAE,aAAA5yU,EAAA0yU,IAAA,GACAG,aAAA7yU,EAAA0yU,IAAA,GACAlxO,cACAswO,WACApiR,WAGAojR,GAAA,SAAAr9P,GACA,OAAAhvE,EAAAgvE,EAAA5kC,UAAAssQ,SAAA41B,SAEA38P,GAAA,SAAAo/J,EAAA3kM,EAAAvD,GACA,IAAA4N,EAAAs6L,EAAA,KAGA,OAFA3kM,EAAA2nI,OAAA4zG,GAAA9+O,EAAA9f,YAAA8f,EAAA3M,SAAAua,GAAA0wO,WACA/6O,EAAAssQ,SAAA41B,OAAA,OAAAv9F,EAAA,8BACA,GAEAw9F,GAAA,SAAAx9F,EAAA//J,GACA,IAAA3kC,EAAA2kC,EAAA5kC,UAAAkrC,SACAzuC,EAAAkoM,EAAA42C,GAAAN,aAAAh7O,GAAAs7O,GAAAP,eAAA/6O,GACA,QAAAgiS,GAAAr9P,KAEO+/J,GAAA8xC,GAAAh6O,GACP8oC,IAAA,EAAAX,EAAA5kC,UAAAvD,KACOkoM,IAAAgyC,GAAAl6O,KACP8oC,IAAA,EAAAX,EAAA5kC,UAAAvD,KAKA2lS,GAAA,CACAH,yBACAE,eAGAE,GAAA,SAAAz9P,EAAAnoC,GACA,IAAAwD,EAAA2kC,EAAAp8D,IAAAmhE,YACA1pC,EAAAQ,SAAAhE,EAAA9f,YAAA8f,EAAA3M,UACAmQ,EAAAa,OAAArE,EAAA9f,YAAA8f,EAAA3M,UACA80C,EAAA5kC,UAAA2nI,OAAA1nI,IAEAqiS,GAAA,SAAA19P,GACA,WAAAA,EAAAa,SAAA88P,mBAEAC,GAAA,SAAAhjU,EAAAipE,GACAjpE,EACAipE,EAAA3rD,aAAA,uCAEA2rD,EAAAlrD,gBAAA,sBAGAklT,GAAA,SAAA79P,EAAAuP,EAAAwuF,GACA,OAAA28J,GAAAD,YAAAlrP,EAAAwuF,GAAA1vK,IAAA,SAAAwpC,GAEA,OADA4lS,GAAAz9P,EAAAnoC,GACAkmI,KAGA+/J,GAAA,SAAA99P,EAAAuP,EAAAwwJ,GACA,IAAA58J,EAAAnD,EAAAhuD,UACA1iB,EAAAqnR,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACAu0P,EAAAtwU,EAAA+wU,GAAAT,eAAA76P,GACA+9F,EAAAm/J,GAAAD,aAAAl9F,EAAA86F,EAAA13P,EAAA7zE,GACA,OAAAyuK,EAAAxvK,KAAA,SAAAwvK,GACA,OAAA8/J,GAAA79P,EAAAuP,EAAAwuF,MAGAggK,GAAA,SAAAlD,EAAAj3T,EAAA0mI,GACA,IAAA0zL,EAAAtvU,EAAAkV,EAAAu5E,OAAA,0CAAA09O,GACAoD,EAAAvvU,EAAA47I,EAAAuwL,GACAvsU,EAAA0E,EAAAgrU,EAAAC,GAAA1zU,EAAAqzU,IAAA,IACAtvU,EAAA0E,EAAAirU,EAAAD,GAAAzzU,EAAAqzU,IAAA,KAEAM,GAAA,SAAAl+P,EAAAuP,GACA,GAAAvP,EAAA5kC,UAAAw4G,gBAAA,IAAA5zE,EAAA0vP,WAAAngP,EAAAn7E,MAAA,CACA,IAAAyjC,EAAA8+O,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACAqwM,GAAAH,eAAA3+O,KAAA,IAAAyjS,GAAAJ,SAAArjS,KACA4lS,GAAAz9P,EAAAq6M,GAAAF,oBAAA5qM,EAAAn7E,MAAAyjC,IACA03C,EAAA9sE,IAAA,SAIA07T,GAAA,SAAAtD,EAAA76P,EAAAuP,EAAA+6D,GACA,GAAAtqE,EAAA5kC,UAAAw4G,cAAA,CACA,IAAAwqL,EAAA1vU,EAAA47I,EAAAuwL,GACAvsU,EAAA8vU,EAAA,SAAA3wO,GACA,IAAA51D,EAAA8+O,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA42P,GAAAf,aAAAtB,EAAA76P,EAAAhuD,UAAA6lB,GAAAtpC,KAAA,SAAAwvK,GACA,OAAA8/J,GAAA79P,EAAAuP,EAAAwuF,SAKAsK,GAAA,SAAAroG,EAAAuP,EAAAwwJ,GACA,kBACA,QAAA29F,GAAA19P,IAAA89P,GAAA99P,EAAAuP,EAAAwwJ,GAAAnyO,WAGAywU,GAAA,SAAAt+F,EAAA//J,EAAAuP,GACA,kBACA,QAAAmuP,GAAA19P,IAAAw9P,GAAAD,WAAAx9F,EAAA//J,KAGAs+P,GAAA,SAAAt+P,GACA,IAAAuP,EAAAhtE,GAAA,MACAs4T,EAAAtwU,EAAA+wU,GAAAT,eAAA76P,GAQA,OAPAA,EAAA/lC,GAAA,sBAAA5tC,GACAqxU,GAAA19P,KACA+9P,GAAAlD,EAAA76P,EAAAp8D,IAAAvX,EAAA24J,SACAk5K,GAAAl+P,EAAAuP,GACA4uP,GAAAtD,EAAA76P,EAAAuP,EAAAljF,EAAA24J,YAGAz1E,GAEAgvP,GAAAh0U,EAAA8zU,IAAA,GACAG,GAAAj0U,EAAA8zU,IAAA,GACAI,GAAA,CACAr7Q,KAAAilH,GACAk2J,gBACAC,gBACAF,sBACAb,sBAIA,SAAAnF,GACAA,IAAA,cACAA,IAAA,oBACAA,IAAA,kBACAA,IAAA,iBAJA,CAKKA,QAAA,KACL,IA2qKAoG,GAq8BAC,GAhnMAl9M,GAAA,SAAAlqF,EAAA6K,GACA,OAAA7K,IAAAm/O,GAAA+H,UAAAr8O,EAAArvC,UAAAqvC,GAEAw8R,GAAA,SAAArnS,EAAAmzQ,EAAA7yQ,GACA,OAAAN,IAAAm/O,GAAA2H,SAAAqsB,EAAAtqS,KAAAy3B,GAAA6yQ,EAAArnO,KAAAxrC,IAEAgnS,GAAA,SAAAh8T,EAAA00B,EAAAunS,EAAA7C,GACA,OAAA5vI,GAAAZ,KAAAwwI,EAAAx4P,QAAAlsC,IAAAm/O,GAAA2H,WACAi6C,GAAAyG,IACO,IAAA3iD,GAAA0iD,EAAA7C,GACP3D,GAAA0G,MAEA1G,GAAA2G,MAGAC,GAAA,SAAAjtT,EAAAslB,EAAA10B,EAAA2G,GACA,IACAyyT,EADAvxB,EAAAlsB,GAAA37Q,GACAi8T,EAAAt1T,EACA44B,EAAA,GACA,MAAA08R,EAAA,CAEA,GADA7C,EAAA2C,GAAArnS,EAAAmzQ,EAAAo0B,IACA7C,EACA,MAEA,GAAA5vI,GAAAZ,KAAAwwI,EAAAx4P,SAAA,IACA,OAAAlsC,IAAAm/O,GAAA2H,SACA,CACAj8O,UAAAq/E,GAAAlqF,EAAA6K,GAAAx3C,OAAA,CAAAqxU,IACAkD,UAAA7G,GAAAyG,GACAK,QAAA7vU,EAAAP,KAAAitU,IAGA,CACA75R,UAAAq/E,GAAAlqF,EAAA6K,GACA+8R,UAAA7G,GAAAyG,GACAK,QAAA7vU,EAAAP,KAAAitU,IAIA,GAAAA,EAAAl8Q,YAAA,CAIA,GAAA9tC,EAAA6sT,EAAA7C,GAAA,CACA,IAAAkD,EAAAN,GAAAh8T,EAAA00B,EAAAunS,EAAA7C,GACA,OACA75R,UAAAq/E,GAAAlqF,EAAA6K,GACA+8R,YACAC,QAAA7vU,EAAAP,KAAAitU,IAGA75R,EAAA3wC,KAAAwqU,GACA6C,EAAA7C,OAZA6C,EAAA7C,EAcA,OACA75R,UAAAq/E,GAAAlqF,EAAA6K,GACA+8R,UAAA7G,GAAA+G,IACAD,QAAA7vU,EAAArC,SAGAoyU,GAAA,SAAA/nS,EAAAgoS,EAAA18T,EAAA2G,GACA,OAAA+1T,EAAA18T,EAAA2G,GAAA41T,QAAA/wU,IAAA,SAAAwpC,GACA,IAAAuK,EAAAm9R,EAAA18T,EAAAg1B,GAAAuK,UACA,OAAA7K,IAAAm/O,GAAA+H,UAAAr8O,EAAAx3C,OAAAitC,GAAA,CAAAA,GAAAjtC,OAAAw3C,KACOv0C,MAAA,KAEP2xU,GAAA,SAAAp9R,EAAA93C,GACA,OAAAoI,EAAA0vC,EAAA,SAAA3vC,EAAAi/S,GACA,OAAAj/S,EAAA/E,KAAA,WACA,OAAA6B,EAAAP,KAAA0iT,IACS,SAAA+tB,GACT,OAAA7yS,GAAAr5B,EAAAksU,EAAA/iS,kBAAAnpC,EAAAm+S,EAAAh1Q,kBAAA,SAAAgjS,EAAAtqM,GACA,IAAAuqM,EAAA9lT,KAAAgkB,IAAAvzC,EAAAo1U,EAAAv3S,MACAy3S,EAAA/lT,KAAAgkB,IAAAvzC,EAAA8qI,EAAAjtG,MACA,OAAAy3S,GAAAD,EAAAjuB,EAAA+tB,IACWtxU,GAAAsE,MAEJlD,EAAArC,SAEP2yU,GAAA,SAAAz9R,EAAAvK,GACA,OAAAtkC,EAAAskC,EAAA6E,kBAAAnuC,KAAA,SAAAuxU,GACA,OAAAN,GAAAp9R,EAAA09R,EAAA33S,SAGA43S,GAAAx1U,EAAA20U,GAAAhpD,GAAAtpG,SAAA,GACAozJ,GAAAz1U,EAAA20U,GAAAhpD,GAAArpG,QAAA,GACAozJ,GAAA,SAAAp9T,EAAAg1B,GACA,OAAAkoS,GAAAl9T,EAAAg1B,GAAAunS,QAAA9xU,UAEA4yU,GAAA,SAAAr9T,EAAAg1B,GACA,OAAAmoS,GAAAn9T,EAAAg1B,GAAAunS,QAAA9xU,UAEA6yU,GAAA51U,EAAA+0U,IAAA,EAAAS,IACAK,GAAA71U,EAAA+0U,GAAA,EAAAU,IACAK,GAAA,SAAAx9T,GACA,OAAA08Q,GAAAC,gBAAA38Q,GAAAxU,IAAA,SAAAwpC,GACA,OAAAA,GAAAjtC,OAAAo1U,GAAAn9T,EAAAg1B,GAAAuK,aACOv0C,MAAA,KAEPyyU,GAAA,SAAAz9T,GACA,OAAA08Q,GAAAE,eAAA58Q,GAAAxU,IAAA,SAAAwpC,GACA,OAAAkoS,GAAAl9T,EAAAg1B,GAAAuK,UAAAx3C,OAAAitC,KACOhqC,MAAA,KAGP0yU,GAAAl0I,GAAAjjD,uBACAo3L,GAAAzsD,GACA0sD,GAAA,SAAAlpS,EAAAyoC,EAAA0gQ,EAAA5uU,GACA,IAAA8lU,EAAArgS,IAAAm/O,GAAA2H,SACAsiD,EAAA/I,EAAApuB,GAAAC,GACA,IAAA33S,EAAAqrC,UAAA,CACA,IAAA35B,EAAAg9T,GAAA1uU,GACA,GAAAyuU,GAAA/8T,GACA,OAAAssS,GAAAv4Q,EAAAyoC,EAAAx8D,EAAA+zB,IAAAm/O,GAAA+H,WAAA,GAGA,IAAAmiD,EAAAnuD,GAAA3gR,GACAgkR,EAAAmH,GAAA1lP,EAAAyoC,EAAAhuD,UAAAlgB,GACA,GAAA6uU,EAAA7qD,GACA,OAAAr3O,GAAAuhC,EAAA81M,EAAAryM,SAAAm0P,IAEA,IAAAiJ,EAAAvF,GAAAH,kBAAAvD,EAAA8I,EAAA5qD,IACA,IAAA+qD,EACA,OAAAD,EACA9uU,EAEA,KAEA,GAAA6uU,EAAAE,GACA,OAAA/wB,GAAAv4Q,EAAAyoC,EAAA6gQ,EAAAp9P,SAAAm0P,MAAA,GAEA,IAAAkJ,EAAAJ,EAAAG,GACA,OAAAC,GAAAH,EAAAG,IACAvjD,GAAAsjD,EAAAC,GACAhxB,GAAAv4Q,EAAAyoC,EAAA8gQ,EAAAr9P,SAAAm0P,MAAA,GAGAgJ,EACAxwB,GAAApwO,EAAA6gQ,EAAA1qD,WAAA,GAEA,MAEA4qD,GAAA,SAAAxpS,EAAAyoC,EAAAghQ,EAAAlvU,GACA,IAAAgkR,EAAAmrD,EAAAC,EACAC,EAAAC,EAAAz8O,EACA08O,EAAAC,EAAAC,EAYA,GAXAA,EAAAf,GAAA1uU,GACAgkR,EAAAmH,GAAA1lP,EAAAyoC,EAAAhuD,UAAAlgB,GACAmvU,EAAAD,EAAAhhQ,EAAAhuD,UAAA44R,GAAA,GAAA90B,GACAorD,EAAAxyU,EAAAuyU,EAAAp2B,GAAA,IACAu2B,EAAA37E,GAAAjyP,KAAAsiR,EAAAp5O,mBACA8sQ,GAAA1zB,IAAAwzB,GAAAxzB,MACAyrD,EAAAzrD,EAAAryM,YAEAgmO,GAAA3zB,IAAAyzB,GAAAzzB,MACAyrD,EAAAzrD,EAAAryM,SAAA,KAEA29P,EACA,YAIA,GAFAz8O,EAAAy8O,EAAAj5S,KACAg5S,EAAAh2B,GAAA+1B,EAAAv8O,GACAw8O,GACAZ,GAAAY,EAAA39T,MAGA,OAFA69T,EAAAxnT,KAAAgkB,IAAA8mD,EAAAw8O,EAAAh5S,MACAm5S,EAAAznT,KAAAgkB,IAAA8mD,EAAAw8O,EAAAr3S,OACAgmR,GAAAv4Q,EAAAyoC,EAAAmhQ,EAAA39T,KAAA69T,EAAAC,GAAA,GAGA,GAAAC,EAAA,CACA,IAAAC,EAAAh3B,GAAAjzQ,EAAAyoC,EAAAhuD,UAAA44R,GAAA,GAAA22B,GAEA,GADAJ,EAAAh2B,GAAAz8S,EAAA8yU,EAAA32B,GAAA,IAAAlmN,GACAw8O,EACA,OAAA/wB,GAAApwO,EAAAmhQ,EAAAz1S,SAAAyqP,WAAA,GAGA,GADAgrD,EAAA17E,GAAAjyP,KAAA9E,EAAA8yU,EAAA32B,GAAA,KACAs2B,EACA,OAAA/wB,GAAApwO,EAAAmhQ,EAAAz1S,SAAAyqP,WAAA,KAIAjoF,GAAA,SAAAluH,GACA,IAAAouH,EAAApuH,EAAAp8D,IAAAsuB,OAAAqoD,GAAAqvM,mBAAA5pN,IAIA,QAHA0kL,GAAA/+O,IAAA++O,GAAA/+O,IAAA,MACAyoL,EAAAlrL,UAAA,2BAEAkrL,GAEAqzI,GAAA,SAAAzhQ,EAAAzoC,EAAAzlC,GACA,IAAAosT,EAAAxuB,EAAA58F,EACA43G,EAAAlsB,GAAAx+M,EAAAhuD,WACA0vT,EAAAn3U,EAAA8yR,GAAAqtB,EAAAtqS,MACAuhU,EAAAp3U,EAAA8yR,GAAAqtB,EAAArnO,MACA,GAAAvxE,EAAAqrC,WAAA6iC,EAAAa,SAAA4tH,kBAAA,CAEA,GADAyvH,EAAAl+O,EAAAp8D,IAAA4oL,UAAA16L,EAAAwpC,eAAA,QACA4iR,EACA,OAGAxuB,EADA,IAAAn4P,EACAmqS,EAAA/qD,GAAAP,eAAAtkR,IAEA6vU,EAAAhrD,GAAAP,eAAAtkR,IAEA49R,IACA58F,EAAA5E,GAAAluH,GACA,IAAAzoC,EACAyoC,EAAAo4H,EAAA8lH,GAAA7nS,MAAAy8K,GAEA9yH,EAAAo4H,EAAA8lH,GAAAjoS,OAAA68K,GAEA9yH,EAAA5kC,UAAA+hD,OAAA21G,GAAA,GACA9yH,EAAA5kC,UAAAmD,cAIAqjS,GAAA,SAAA5hQ,EAAA+/J,GACA,IAGA8hG,EAHAn3B,EAAAlsB,GAAAx+M,EAAAhuD,WACA0vT,EAAAn3U,EAAA8yR,GAAAqtB,EAAAtqS,MACAuhU,EAAAp3U,EAAA8yR,GAAAqtB,EAAArnO,MAEA9rC,EAAAwoM,EAAA22C,GAAA2H,SAAA3H,GAAA+H,UACAiiD,EAAA3gG,EAAA2hG,EAAAC,EACA7vU,EAAAkuE,EAAA5kC,UAAAkrC,SAEA,OADAu7P,EAAApB,GAAAlpS,EAAAyoC,EAAA0gQ,EAAA5uU,GACA+vU,IAGAA,EAAAJ,GAAAzhQ,EAAAzoC,EAAAzlC,GACA+vU,GAGA,OAEAC,GAAA,SAAA9hQ,EAAA+tI,GACA,IAAA8zH,EACAtqS,EAAAw2K,EAAA,KACAizH,EAAAjzH,EAAAu8F,GAAAF,GACAt4S,EAAAkuE,EAAA5kC,UAAAkrC,SAEA,OADAu7P,EAAAd,GAAAxpS,EAAAyoC,EAAAghQ,EAAAlvU,GACA+vU,IAGAA,EAAAJ,GAAAzhQ,EAAAzoC,EAAAzlC,GACA+vU,GAGA,OAEAE,GAAA,SAAA/hQ,EAAA+/J,GACA,kBACA,IAAAy1C,EAAAosD,GAAA5hQ,EAAA+/J,GACA,QAAAy1C,IACAx1M,EAAA5kC,UAAA2nI,OAAAyyG,IACA,KAMAwsD,GAAA,SAAAhiQ,EAAA+tI,GACA,kBACA,IAAAynE,EAAAssD,GAAA9hQ,EAAA+tI,GACA,QAAAynE,IACAx1M,EAAA5kC,UAAA2nI,OAAAyyG,IACA,KAMAysD,GAAA,SAAAliG,GACA,gBAAAloM,GACA,OAAAkoM,EAAA0pE,GAAA5xQ,GAAA2xQ,GAAA3xQ,KAGAqqS,GAAA,SAAAliQ,EAAA+/J,GACA,kBACA,IAAAzwO,EAAAywO,EAAA42C,GAAAN,aAAAr2M,EAAA5kC,UAAAkrC,UAAAqwM,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACAluE,EAAA2nO,EAAAigG,GAAAhgQ,EAAAhuD,UAAA1iB,GAAAywU,GAAA//P,EAAAhuD,UAAA1iB,GACA83Q,EAAArnC,EAAAvsO,EAAA4E,EAAAgqC,WAAA7uC,EAAA6E,EAAAgqC,WACA,OAAAglO,EAAA14Q,OAAAuzU,GAAAliG,IAAAryO,KAAAvD,GAAA,YAAA0tC,GAEA,OADAmoC,EAAA5kC,UAAA2nI,OAAAlrI,EAAAs+O,YACA,MAKAgsD,GAAA,SAAA92S,EAAAoa,GACA,OACAtd,KAAAkD,EAAAlD,KAAAsd,EACArd,IAAAiD,EAAAjD,IAAAqd,EACA3b,MAAAuB,EAAAvB,MAAA,EAAA2b,EACA1b,OAAAsB,EAAAtB,OAAA,EAAA0b,EACA5b,MAAAwB,EAAAxB,MAAA4b,EACA7d,OAAAyD,EAAAzD,OAAA6d,IAGA28R,GAAA,SAAAC,EAAAC,GACA,OAAA/zU,EAAA+zU,EAAA,SAAAp3J,GACA,IAAA7/I,EAAA82S,GAAApqN,GAAAmzD,EAAAvjJ,0BAAA,GACA,OACA,CACAr9B,EAAA+gC,EAAAlD,KACApkB,EAAAs+T,EAAAh3S,GACA08B,KAAAmjH,GAEA,CACA5gL,EAAA+gC,EAAAvB,MACA/lB,EAAAs+T,EAAAh3S,GACA08B,KAAAmjH,OAKAq3J,GAAA,SAAAC,EAAAl4U,EAAAyZ,GACA,OAAArR,EAAA8vU,EAAA,SAAA/vU,EAAAgwU,GACA,OAAAhwU,EAAA/E,KAAA,WACA,OAAA6B,EAAAP,KAAAyzU,IACS,SAAAC,GACT,IAAAC,EAAA9oT,KAAA+hE,KAAA/hE,KAAAgkB,IAAA6kS,EAAAp4U,KAAAuvB,KAAAgkB,IAAA6kS,EAAA3+T,MACA67T,EAAA/lT,KAAA+hE,KAAA/hE,KAAAgkB,IAAA4kS,EAAAn4U,KAAAuvB,KAAAgkB,IAAA4kS,EAAA1+T,MACA,OAAAxU,EAAAP,KAAA4wU,EAAA+C,EAAAF,EAAAC,MAEOnzU,EAAArC,SAEP01U,GAAA,SAAAP,EAAAQ,EAAAz+L,EAAA95I,EAAAyZ,GACA,IAAA+wE,EAAAzL,GAAAplE,GAAAZ,QAAA+gI,GAAA,iBAAA/1I,IAAA,SAAAhC,GACA,OAAAA,EAAAuX,QAEA4+T,EAAA9zU,EAAA0zU,GAAAC,EAAAvtP,GAAA,SAAAguP,GACA,OAAAD,EAAAC,EAAA/+T,KAEA,OAAAw+T,GAAAC,EAAAl4U,EAAAyZ,GAAA1V,IAAA,SAAAy0U,GACA,OAAAA,EAAA/6Q,QAGAg7Q,GAAA,SAAA13S,GACA,OAAAA,EAAAtB,QAEAi5S,GAAA,SAAA33S,GACA,OAAAA,EAAAjD,KAEA66S,GAAA,SAAAH,EAAA/+T,GACA,OAAA++T,EAAA/+T,KAEAm/T,GAAA,SAAAJ,EAAA/+T,GACA,OAAA++T,EAAA/+T,KAEAo/T,GAAA54U,EAAAq4U,GAAAG,GAAAE,IACAG,GAAA74U,EAAAq4U,GAAAI,GAAAE,IACAG,GAAA,SAAAj/L,EAAAvsG,GACA,OAAAtkC,EAAAskC,EAAA6E,kBAAAnuC,KAAA,SAAA88B,GACA,OAAA83S,GAAA/+L,EAAA/4G,EAAAlD,KAAAkD,EAAAjD,OACO75B,KAAA,SAAAw5D,GACP,OAAA83Q,GAAAS,GAAAv4Q,GAAAlwB,MAGAyrS,GAAA,SAAAl/L,EAAAvsG,GACA,OAAArkC,EAAAqkC,EAAA6E,kBAAAnuC,KAAA,SAAA88B,GACA,OAAA+3S,GAAAh/L,EAAA/4G,EAAAlD,KAAAkD,EAAAjD,OACO75B,KAAA,SAAAw5D,GACP,OAAA83Q,GAAAQ,GAAAt4Q,GAAAlwB,MAIA0rS,GAAA,SAAAvjQ,EAAA3kC,GACA2kC,EAAA5kC,UAAA2nI,OAAA1nI,GACA+1R,GAAAE,oBAAAtxP,EAAA3kC,IAEAmoS,GAAA,SAAAtE,EAAAr8T,EAAA4gU,GACA,OAAAA,EAAArE,QAAA/wU,IAAA,SAAAq1U,GACA,OAAAxE,EAAAr8T,EAAA6gU,GAAAtE,QAAAxxU,WACOC,OAAA,IAEP81U,GAAA,SAAAF,GACA,OAAAA,EAAAtE,YAAA7G,GAAA2G,MAAA,IAAAwE,EAAArhS,UAAAn4C,QAEA25U,GAAA,SAAAH,GACA,OAAAA,EAAAtE,YAAA7G,GAAAyG,IAAA,IAAA0E,EAAArhS,UAAAn4C,QAEA45U,GAAA,SAAA3E,EAAAr8T,EAAAg1B,GACA,IAAA4rS,EAAAvE,EAAAr8T,EAAAg1B,GACA,OAAA8rS,GAAAF,KAAAp3I,GAAAZ,KAAA5zJ,EAAA4rC,YAAAmgQ,GAAAH,IACAD,GAAAtE,EAAAr8T,EAAA4gU,GAEAA,EAAArE,QAAA9xU,UAGAw2U,GAAAv5U,EAAAs5U,GAAA9D,IACAgE,GAAAx5U,EAAAs5U,GAAA7D,IACAgE,GAAA,SAAAjkG,EAAA1kM,EAAA+oG,GACA,IAAAsrJ,EAAA/Y,GAAAP,eAAA/6O,GACA,OAAAkkP,GAAAH,YAAAr/C,EAAA37F,GAAA/1I,IAAA,SAAAwpC,GACA,OAAAA,EAAA47O,QAAAic,KACO7hS,OAAA,IAEPo2U,GAAA,SAAAjkQ,EAAA+/J,EAAA37F,EAAA8mC,GACA,IAAA7vI,EAAA2kC,EAAA5kC,UAAAkrC,SACA/uC,EAAAwoM,EAAA,KACA,GAAAu7C,MAAA0oD,GAAAjkG,EAAA1kM,EAAA+oG,GAAA,CACA,IAAAoxI,EAAAs6B,GAAAv4Q,EAAAyoC,EAAAokE,GAAA27F,GAAA,GAEA,OADAwjG,GAAAvjQ,EAAAw1M,IACA,EAEA,UAEA0uD,GAAA,SAAA3hS,EAAA6hG,EAAA56H,GACA,OAAA65T,GAAAj/L,EAAA56H,GAAApb,QAAA,WACA,OAAAmF,EAAAiW,EAAAkzB,kBAAAnuC,KAAA,SAAA88B,GACA,OAAAm0S,GAAAW,GAAA59R,EAAAo0O,GAAA1gQ,OAAAmuH,IAAA/4G,EAAAlD,UAEOt6B,MAAA8oR,GAAA1gQ,OAAAmuH,KAEP+/L,GAAA,SAAA5hS,EAAA6hG,EAAA56H,GACA,OAAA85T,GAAAl/L,EAAA56H,GAAApb,QAAA,WACA,OAAAmF,EAAAiW,EAAAkzB,kBAAAnuC,KAAA,SAAA88B,GACA,OAAAm0S,GAAAY,GAAA79R,EAAAo0O,GAAAtgQ,MAAA+tH,IAAA/4G,EAAAlD,UAEOt6B,MAAA8oR,GAAAtgQ,MAAA+tH,KAEPggM,GAAA,SAAAj6J,EAAAtyI,GACA,IAAAr0B,EAAAq0B,EAAA4rC,QAAA0mG,GACA,OAAAkiB,GAAA36K,UAAAlO,IAAA,UAAAA,EAAAgO,SAAAjiB,EAAAP,KAAAwU,GAAAjU,EAAArC,QAEAm3U,GAAA,SAAAt2H,EAAA/tI,EAAAokE,EAAAvsG,GACA,IAAAivQ,EAAAvsN,GAAAqvM,mBAAA5pN,GACA8mO,EACA9mO,EAAAob,YAAAC,SAAA,WACA,IAAAzvE,EAAA3H,GAAAX,QAAAwjS,GACA1uR,GAAAxM,EAAA2uE,GAAAsvM,wBAAA7pN,IACAzpD,GAAA3K,EAAA3H,GAAAX,QAAA,OACAyqM,EACA13L,GAAApS,GAAAZ,QAAA+gI,GAAAx4H,GAEAqK,GAAAhS,GAAAZ,QAAA+gI,GAAAx4H,GAEA,IAAAyvB,EAAA2kC,EAAAp8D,IAAAmhE,YACA1pC,EAAAQ,SAAAjwB,EAAAhI,MAAA,GACAy3B,EAAAa,OAAAtwB,EAAAhI,MAAA,GACA2/T,GAAAvjQ,EAAA3kC,KAGAkoS,GAAAvjQ,EAAAnoC,EAAAs+O,YAGAslC,GAAA,SAAAz7O,EAAA+tI,EAAAl2K,GACA,IAAAusG,EAAAggM,KAAAr2H,EAAAl2K,GACArkC,GAAA,IAAAu6M,EACA3pE,EAAA12I,KAAA,WACA,OAAA61U,GAAAvjQ,EAAAnoC,EAAAs+O,YACO,SAAA/xI,GACP,OAAAm7I,GAAAH,WAAA5rR,EAAAwsE,EAAAhuD,WAAAtjB,OAAA,SAAA+wU,GACA,OAAAA,EAAAhsD,QAAA57O,KACSnqC,KAAA,WACT,OAAA61U,GAAAvjQ,EAAAnoC,EAAAs+O,YACS,SAAAzmR,GACT,OAAA20U,GAAAt2H,EAAA/tI,EAAAokE,EAAAvsG,QAIAysS,GAAA,SAAAtkQ,EAAA+tI,EAAA3pE,EAAA8mC,GACA,IAAA7vI,EAAA2kC,EAAA5kC,UAAAkrC,SACAzuC,EAAA8+O,GAAAP,eAAA/6O,GACAkH,EAAAy9B,EAAAhuD,UACA,IAAA+7L,GAAA+1H,GAAA54J,EAAArzI,GAAA,CACA,IAAA65Q,EAAAwyB,GAAA3hS,EAAA6hG,EAAAvsG,GAEA,OADA4jR,GAAAz7O,EAAA+tI,EAAA2jG,IACA,EACO,GAAA3jG,GAAAg2H,GAAA74J,EAAArzI,GAAA,CACP65Q,EAAAyyB,GAAA5hS,EAAA6hG,EAAAvsG,GAEA,OADA4jR,GAAAz7O,EAAA+tI,EAAA2jG,IACA,EAEA,UAGA6yB,GAAA,SAAAvkQ,EAAA+/J,GACA,kBACA,OAAAxwO,EAAAD,KAAA0wE,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAqoC,UAAA,UAAAl1E,KAAA,SAAA28K,GACA,OAAA37K,EAAAD,KAAA0wE,EAAAp8D,IAAA4oL,UAAAthB,EAAA,UAAA78K,IAAA,SAAA+1I,GACA,OAAA6/L,GAAAjkQ,EAAA+/J,EAAA37F,OAESv2I,OAAA,KAGT22U,GAAA,SAAAxkQ,EAAA+/J,GACA,kBACA,OAAAxwO,EAAAD,KAAA0wE,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAqoC,UAAA,UAAAl1E,KAAA,SAAA28K,GACA,OAAA37K,EAAAD,KAAA0wE,EAAAp8D,IAAA4oL,UAAAthB,EAAA,UAAA78K,IAAA,SAAA+1I,GACA,OAAAkgM,GAAAtkQ,EAAA+/J,EAAA37F,EAAA8mC,OAESr9K,OAAA,KAITm1N,GAAA,SAAAx/M,GACA,OAAA3R,EAAA,eAAApB,GAAA+S,KAEAihU,GAAA,SAAApvU,GACA,IAAAgmC,EAAA9xC,EAAAwZ,SAAAs5B,cAGA,OAFAhB,EAAAS,eAAAzmC,EAAAuO,OACAy3B,EAAAY,aAAA5mC,EAAAuO,OACAy3B,GAEAqpS,GAAA,SAAAniS,EAAAshC,EAAAk8J,GACAA,EACAxpN,GAAAgsB,EAAAshC,GAEArtD,GAAA+rB,EAAAshC,IAGA8gQ,GAAA,SAAApiS,EAAAw9L,GACA,IAAAwE,EAAAtgO,GAAAX,QAAA,MAEA,OADAohU,GAAAniS,EAAAgiM,EAAAxE,GACA0kG,GAAAlgG,IAEAqgG,GAAA,SAAAriS,EAAAw9L,EAAA1xC,EAAAh2K,GACA,IAAAy/G,EAAA7zH,GAAAX,QAAA+qL,GACAk2C,EAAAtgO,GAAAX,QAAA,MAIA,OAHA8U,GAAA0/G,EAAAz/G,GACA9B,GAAAuhH,EAAAysG,GACAmgG,GAAAniS,EAAAu1F,EAAAioG,GACA0kG,GAAAlgG,IAEAsgG,GAAA,SAAAtiS,EAAA6oR,EAAA/yS,EAAA0nN,GACA,WAAAqrF,EACAuZ,GAAApiS,EAAAw9L,GAEA6kG,GAAAriS,EAAAw9L,EAAAqrF,EAAA/yS,IAGAysT,GAAA,SAAAjtS,EAAA0K,GACA,IAAAjxB,EAAA/mB,EAAA6C,GAAAm1C,GACA,OAAAnwB,GAAAnO,GAAAZ,QAAAw0B,EAAA9f,aAAAuqD,GAAAhxD,GAAA5iB,OAAAs0N,KAEA+hH,GAAA,SAAAxiS,EAAAw9L,EAAAloM,GACA,OAAAkoM,EAAAmgG,GAAA39R,EAAA3+B,MAAAi0B,GAAAooS,GAAA19R,EAAA3+B,MAAAi0B,IAEAmtS,GAAA,SAAAhlQ,EAAA+/J,GACA,IAAAx9L,EAAAt+B,GAAAZ,QAAA28D,EAAAhuD,WACA6lB,EAAA8+O,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA2+P,EAAA1qP,GAAAqvM,mBAAA5pN,GACAklQ,EAAA3qP,GAAAsvM,wBAAA7pN,GACA,OAAA8kQ,GAAAjtS,EAAA0K,GAAA/zC,OAAA,WACA,GAAAu2U,GAAAxiS,EAAAw9L,EAAAloM,GAAA,CACA,IAAAwD,EAAAwpS,GAAAtiS,EAAA0iS,EAAAC,EAAAnlG,GAEA,OADA//J,EAAA5kC,UAAA2nI,OAAA1nI,IACA,EAEA,YAIA8pS,GAAA,SAAAnlQ,EAAA+/J,GACA,kBACA,QAAA//J,EAAA5kC,UAAAw4G,eACAoxL,GAAAhlQ,EAAA+/J,KAOAqlG,GAAA,SAAAt3S,GACA,OAAAz/B,EAAAy/B,EAAA,SAAAkmF,GACA,OAAAz9G,GAAA,CACAsnD,UAAA,EACA0qP,QAAA,EACAxqP,SAAA,EACA46M,SAAA,EACAtlI,QAAA,EACAtgH,OAAAvpB,GACSwqH,MAGTqxN,GAAA,SAAArxN,EAAA1S,GACA,OAAAA,EAAA+xB,UAAArf,EAAAqf,SAAA/xB,EAAAzjD,WAAAm2D,EAAAn2D,UAAAyjD,EAAAinM,SAAAv0L,EAAAu0L,QAAAjnM,EAAAvjD,UAAAi2D,EAAAj2D,SAAAujD,EAAAq3J,UAAA3kJ,EAAA2kJ,SAEA2sE,GAAA,SAAAx3S,EAAAwzE,GACA,OAAA/yG,EAAA62U,GAAAt3S,GAAA,SAAAkmF,GACA,OAAAqxN,GAAArxN,EAAA1S,GAAA,CAAA0S,GAAA,MAGAjhG,GAAA,SAAArpB,GAEA,IADA,IAAAY,EAAA,GACAP,EAAA,EAAsBA,EAAAC,UAAAC,OAAuBF,IAC7CO,EAAAP,EAAA,GAAAC,UAAAD,GAEA,IAAAD,EAAA8C,MAAAZ,UAAAsF,MAAApF,KAAAlC,UAAA,GACA,kBACA,OAAAN,EAAAQ,MAAA,KAAAJ,KAGAulB,GAAA,SAAAye,EAAAwzE,GACA,OAAA3uG,EAAA2yU,GAAAx3S,EAAAwzE,GAAA,SAAA0S,GACA,OAAAA,EAAAjhG,YAGAwyT,GAAA,CACAxwU,MAAAuwU,GACAvyT,UACA1D,YAGAm2T,GAAA,SAAAxlQ,EAAAuP,EAAA+xB,GACA,IAAAv5F,EAAA2C,KAAA3C,GACAw9T,GAAAl2T,QAAA,CACA,CACAgkH,QAAA80K,GAAAjrP,MACAnqC,OAAAgvT,GAAA/hQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAnrP,KACAjqC,OAAAgvT,GAAA/hQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAlrP,GACAlqC,OAAAivT,GAAAhiQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAhrP,KACApqC,OAAAivT,GAAAhiQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAjrP,MACAnqC,OAAAwxT,GAAAvkQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAnrP,KACAjqC,OAAAwxT,GAAAvkQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAlrP,GACAlqC,OAAAyxT,GAAAxkQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAhrP,KACApqC,OAAAyxT,GAAAxkQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAjrP,MACAnqC,OAAA0rT,GAAAr7Q,KAAA4c,EAAAuP,GAAA,IAEA,CACA8jD,QAAA80K,GAAAnrP,KACAjqC,OAAA0rT,GAAAr7Q,KAAA4c,EAAAuP,GAAA,IAEA,CACA8jD,QAAA80K,GAAAjrP,MACAa,SAAAh2C,EAAAN,QACA8gS,OAAAxgS,EAAAN,QACAsL,OAAA0rT,GAAAF,aAAAv+P,EAAAuP,IAEA,CACA8jD,QAAA80K,GAAAnrP,KACAe,SAAAh2C,EAAAN,QACA8gS,OAAAxgS,EAAAN,QACAsL,OAAA0rT,GAAAD,aAAAx+P,EAAAuP,IAEA,CACA8jD,QAAA80K,GAAAlrP,GACAlqC,OAAAoyT,GAAAnlQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAhrP,KACApqC,OAAAoyT,GAAAnlQ,GAAA,KAEAshC,GAAAhzG,KAAA,SAAAoB,GACA4xG,EAAA1uF,oBAGAwkJ,GAAA,SAAAp3F,EAAAuP,GACAvP,EAAA/lC,GAAA,mBAAAqnE,IACA,IAAAA,EAAA/S,sBACAi3O,GAAAxlQ,EAAAuP,EAAA+xB,MAIAmkO,GAAA,CAAqB3tQ,MAAAs/F,IAErBsuK,GAAA,SAAAviQ,GACA,gBAAAU,GACA,OAAAz2E,GAAA+1E,EAAAl/D,GAAAZ,QAAAwgE,EAAAjgE,MAAAiO,eAGA8zT,GAAA,SAAAxiQ,EAAAU,GACA,OAAA/2D,GAAAq2D,EAAAU,GAAAzxD,GAAAyxD,EAAA,SAAAj4D,GACA,OAAAggL,GAAAhgL,IAAA69M,GAAA79M,IACO85T,GAAAviQ,IAAA5zE,EAAArC,QAEP04U,GAAA,SAAA5lQ,GACA,IAAAjuD,EAAAiuD,EAAAhuD,UACAxO,EAAAuO,EAAAgE,YAAAiqD,EAAAp8D,IAAA0+D,QAAAvwD,EAAAgE,YAAAhE,EAAAgE,WAAAhE,EACAiuD,EAAA5kC,UAAA2oC,kBAAAvgE,EAAA,IAEAqiU,GAAA,SAAA7lQ,GACAA,EAAAp8D,IAAAqoL,QAAAjsH,EAAAhuD,aACAguD,EAAA5yB,WAAA,IACAw4R,GAAA5lQ,KAGA8lQ,GAAA,SAAA/lG,EAAAgmG,EAAAliQ,GACA,OAAAj3C,GAAA2yP,GAAAC,gBAAA37M,GAAA07M,GAAAE,eAAA57M,GAAA,SAAAmiQ,EAAAvG,GACA,IAAAwG,EAAA3K,GAAAH,mBAAA,EAAA6K,GACAE,EAAA5K,GAAAH,mBAAA,EAAAsE,GACA0G,EAAA7K,GAAAH,mBAAA,EAAA4K,GACA,OAAAhmG,EACAw/C,GAAAF,aAAAx7M,EAAAsiQ,GAAA93U,IAAA,SAAA4tU,GACA,OAAAA,EAAAxoD,QAAAyyD,IAAAH,EAAAtyD,QAAAwyD,KACWp4U,OAAA,GAEX0xR,GAAAD,aAAAz7M,EAAAsiQ,GAAA93U,IAAA,SAAA2tU,GACA,OAAAA,EAAAvoD,QAAAwyD,IAAAF,EAAAtyD,QAAAyyD,KACWr4U,OAAA,KAEJA,OAAA,IAEPu4U,GAAA,CACAjqD,eAAAwpD,GACAE,iBACAC,oCAGAO,GAAA,SAAAvuM,EAAApsG,GACA,OACAosG,MAAA3tI,EAAA2tI,GACApsG,SAAAvhC,EAAAuhC,KAGA46S,GAAA,SAAAh3U,EAAA83Q,GACA,OACA93Q,KAAAnF,EAAAmF,GACA83Q,GAAAj9Q,EAAAi9Q,KAGAm/D,GAAA,SAAApjQ,EAAAtrC,GACA,IAAAi7H,EAAA7uJ,GAAAZ,QAAA8/D,GACA6uD,EAAA/tH,GAAAZ,QAAAw0B,EAAA9f,aACA,OAAAquT,GAAAjqD,eAAArpH,EAAA9gC,GAAA3jI,IAAA,SAAAypI,GACA,OAAAuuM,GAAAvuM,EAAAjgG,MAGA2uS,GAAA,SAAAF,GACA,WAAAl5U,GAAAk5U,EAAAh3U,OAAAwoI,QAAAwuM,EAAAl/D,KAAAtvI,UAEA2uM,GAAA,SAAAH,GACA,OAAA9wT,GAAA8wT,EAAAh3U,OAAAwoI,SAAAvpI,KAAA,SAAAm4U,GACA,OAAAlxT,GAAA8wT,EAAAl/D,KAAAtvI,SAAAppI,OAAA,SAAAi4U,GACA,OAAAv5U,GAAAs5U,EAAAC,OAEO/4U,UAEPg8I,GAAA,SAAA08L,GACA,WAAAj6I,GAAAjjD,uBAAAk9L,EAAAh3U,OAAAwoI,QAAAl0H,SAAA,IAAAyoL,GAAAjjD,uBAAAk9L,EAAAl/D,KAAAtvI,QAAAl0H,QAEAgjU,GAAA,SAAAzjQ,EAAA48J,EAAAsmG,GACA,OAAAh6I,GAAAZ,KAAA46I,EAAA36S,WAAA+3C,aAAA,IAAA02O,GAAAluH,QAAAo6I,EAAAvuM,SACAynJ,GAAAH,YAAA,EAAAinD,EAAAvuM,QAAAl0H,OAAArV,KAAA,SAAAs4U,GACA,OAAAA,EAAApzD,QAAA4yD,EAAA36S,YACA6zP,GAAAZ,aAAA5+C,EAAA58J,EAAA0jQ,GAAAt4U,KAAA,SAAA64Q,GACA,OAAAm/D,GAAApjQ,EAAAikM,KAGA73Q,EAAAP,KAAAq3U,KAESx4U,MAAAw4U,GAETA,GAGAS,GAAA,SAAA3jQ,EAAA48J,EAAA1kM,GACA,IAAA0rS,EAAAR,GAAApjQ,EAAAwzM,GAAAP,eAAA/6O,IACA2rS,EAAAD,EAAAx4U,KAAA,SAAA04U,GACA,OAAA1nD,GAAAZ,aAAA5+C,EAAA58J,EAAA8jQ,EAAAv7S,YAAAn9B,KAAA,SAAA64Q,GACA,OAAAm/D,GAAApjQ,EAAAikM,GAAA/4Q,IAAA,SAAA44U,GACA,OAAAL,GAAAzjQ,EAAA48J,EAAAknG,SAIA,OAAAr6S,GAAAm6S,EAAAC,EAAAV,IAAA53U,OAAA,SAAA43U,GACA,OAAAE,GAAAF,IAAAG,GAAAH,IAAA18L,GAAA08L,MAGAY,GAAA,SAAA/jQ,EAAA48J,EAAA1kM,GACA,OAAAA,EAAA8B,UAAA2pS,GAAA3jQ,EAAA48J,EAAA1kM,GAAA9rC,EAAArC,QAEAi6U,GAAA,CAA8B15T,KAAAy5T,IAE9BE,GAAA,SAAAtvM,GACA,IAAAxgH,EAAA3B,GAAAmiH,GACA,OAAAllI,EAAA0kB,EAAAgrD,IAAA50E,KAAA,WACA,OAAA4pB,GACO,SAAAzB,GACP,OAAAyB,EAAAhmB,MAAA,EAAAukB,MAGAwxT,GAAA,SAAAvvM,GACA,IAAAniH,EAAAyxT,GAAAtvM,GAEA,OADAxpI,EAAAqnB,EAAA+C,IACA/C,GAEA2xT,GAAA,SAAAnkQ,EAAA20D,GACA,IAAAktB,EAAAohJ,GAAAD,eAAAruK,EAAA30D,GACA,OAAAxwE,EAAAqyJ,EAAAjyJ,UAAAonT,GAAAluH,SAAA39L,KAAAoqB,KAEA6uT,GAAA,SAAAp1T,GACA,OAEO,IAFPzjB,EAAAg0P,GAAAvwO,GAAA,SAAAA,GACA,OAAAgoS,GAAAluH,QAAA95K,KACOloB,QAEPu9U,GAAA,SAAArkQ,EAAAskQ,EAAAC,EAAAC,GACA,GAAAxtB,GAAAluH,QAAAy7I,GAEA,OADA/vB,GAAAL,kBAAAowB,GACAnoD,GAAAC,gBAAAkoD,EAAA9jU,OAEA2jU,GAAAI,IAAAxtB,GAAAluH,QAAAw7I,IACAxxT,GAAA0xT,EAAA1jU,GAAAX,QAAA,OAEA,IAAAooB,EAAA6zP,GAAAD,aAAAooD,EAAA9jU,MAAA+yQ,GAAA1gQ,OAAA0xT,EAAA/jU,QAKA,OAJAtV,EAAA+4U,GAAAI,GAAA,SAAA7xT,GACAK,GAAA0xT,EAAA/xT,KAEA0xT,GAAAnkQ,EAAAskQ,GACA/7S,GAEAk8S,GAAA,SAAAzkQ,EAAAskQ,EAAAC,GACA,GAAAvtB,GAAAluH,QAAAy7I,GAKA,OAJAhvT,GAAAgvT,GACAvtB,GAAAluH,QAAAw7I,IACA9vB,GAAAL,kBAAAmwB,GAEAloD,GAAAC,gBAAAioD,EAAA7jU,OAEA,IAAA8nB,EAAA6zP,GAAAE,eAAAioD,EAAA9jU,OAKA,OAJAtV,EAAA+4U,GAAAI,GAAA,SAAA7xT,GACAW,GAAAmxT,EAAA9xT,KAEA0xT,GAAAnkQ,EAAAskQ,GACA/7S,GAEAm8S,GAAA,SAAAH,EAAA5vM,GACA,IAAAquK,EAAAC,GAAAD,eAAAruK,EAAA4vM,GACA,OAAAn4U,EAAAD,KAAA62S,IAAAl8S,OAAA,KAEA69U,GAAA,SAAAL,EAAAC,GACA,OAAA56T,GAAA46T,EAAAD,GAAAI,GAAAH,EAAAD,GAAAl4U,EAAArC,QAEA66U,GAAA,SAAAvoS,EAAAs4F,GACAynJ,GAAAH,WAAA5/O,EAAAs4F,EAAAl0H,OAAAvV,IAAA,SAAAq9B,GACA,OAAAA,EAAA+3C,YACOp1E,IAAA4V,GAAAZ,SAAA3U,OAAAy6P,IAAA76P,KAAAoqB,KAEPsvT,GAAA,SAAA7kQ,EAAAskQ,EAAAC,GAGA,OAFAK,IAAA,EAAAN,GACAM,IAAA,EAAAL,GACAI,GAAAL,EAAAC,GAAAh6U,KAAAnD,EAAAq9U,GAAAzkQ,EAAAskQ,EAAAC,GAAAn9U,EAAAi9U,GAAArkQ,EAAAskQ,EAAAC,KAEAO,GAAA,SAAA9kQ,EAAA48J,EAAA4xE,EAAAC,GACA,OAAA7xE,EAAAioG,GAAA7kQ,EAAAyuO,EAAAD,GAAAq2B,GAAA7kQ,EAAAwuO,EAAAC,IAEAs2B,GAAA,CAAuBD,gBAEvB1uI,GAAA,SAAAv5H,EAAA+/J,GACA,IAAA58J,EAAAl/D,GAAAZ,QAAA28D,EAAAhuD,WACA0Z,EAAAy7S,GAAA15T,KAAA01D,EAAAv/D,MAAAm8N,EAAA//J,EAAA5kC,UAAAkrC,UAAA/3E,KAAA,SAAA+3U,GACA,OAAA4B,GAAAD,YAAA9kQ,EAAA48J,EAAAumG,EAAAh3U,OAAAwoI,QAAAwuM,EAAAl/D,KAAAtvI,WAKA,OAHApsG,EAAAp9B,KAAA,SAAAupC,GACAmoC,EAAA5kC,UAAA2nI,OAAAlrI,EAAAs+O,aAEAzqP,EAAA99B,UAEAu6U,GAAA,CAA+B5uI,oBAE/B6uI,GAAA,SAAAjlQ,EAAA/nC,GACA,IAAAC,EAAAD,EAAAkrC,SACA,OAAA15C,GAAAw5S,GAAAjqD,eAAAh5M,EAAAl/D,GAAAZ,QAAAg4B,EAAAC,iBAAA8qS,GAAAjqD,eAAAh5M,EAAAl/D,GAAAZ,QAAAg4B,EAAAyB,eAAA,SAAA60Q,EAAAC,GACA,WAAAxkT,GAAAukT,EAAAC,KACAv2Q,EAAA27R,iBACAkR,GAAAD,YAAA9kQ,GAAA,EAAAwuO,EAAAC,GAAAtjT,KAAA,SAAAupC,GACAuD,EAAA2nI,OAAAlrI,EAAAs+O,cAEA,KAIOtoR,OAAA,IAEPw6U,GAAA,SAAA9lS,EAAA40Q,GACA,IAAA3zS,EAAAS,GAAAZ,QAAA8zS,GACA7lS,EAAA/mB,EAAA6C,GAAAm1C,GACA,OAAAlxB,GAAA7N,EAAA8lP,GAAAh4O,GAAA1jB,UAEA06U,GAAA,SAAA/lS,EAAAlH,GACA,OAAAgtS,GAAA9lS,EAAAlH,EAAAC,iBAAA+sS,GAAA9lS,EAAAlH,EAAAyB,eAEAyrS,GAAA,SAAAhmS,EAAAlH,GACA,IAAAmtS,EAAAjpD,GAAAD,aAAA/8O,EAAA3+B,MAAA+yQ,GAAAP,eAAA/6O,IAAA/tC,SACAm7U,EAAAlpD,GAAAF,aAAA98O,EAAA3+B,MAAA+yQ,GAAAN,aAAAh7O,IAAA/tC,SACA,OAAAg7U,GAAA/lS,EAAAlH,IAAAmtS,GAAAC,GAEAC,GAAA,SAAA1oQ,GAGA,OAFAA,EAAA5yB,WAAA,IACA4yB,EAAA5kC,UAAA2oC,qBACA,GAEA4kQ,GAAA,SAAA3oQ,GACA,IAAAmD,EAAAl/D,GAAAZ,QAAA28D,EAAAhuD,WACAqpB,EAAA2kC,EAAA5kC,UAAAkrC,SACA,OAAAiiQ,GAAAplQ,EAAA9nC,GAAAqtS,GAAA1oQ,GAAAooQ,GAAAjlQ,EAAAnD,EAAA5kC,YAEAwtS,GAAA,SAAA5oQ,EAAA+/J,GACA,OAAA//J,EAAA5kC,UAAAw4G,eAAA+0L,GAAA3oQ,IAEA6oQ,GAAA,CAA4BtvI,gBAAAqvI,IAE5BE,GAAA,SAAAjxS,GACA,OAAAslP,GAAAtlP,GAAArpC,OAAA26P,KAEA9kB,GAAA,SAAAtE,EAAAx9L,EAAA1K,GACA,IAAAkxS,EAAAr6U,EAAA03S,GAAAD,eAAAliS,GAAAZ,QAAAw0B,EAAA9f,aAAAwqB,GAAA+/B,IACAz/D,EAAAtP,EAAAw1U,GAAAl7U,MAAA00C,GACA,OAAAg9O,GAAAZ,aAAA5+C,EAAAl9N,EAAAe,MAAAi0B,GAAAnpC,OAAAo6U,KAEAE,GAAA,SAAAzmS,EAAA1K,GACA,OAAAslP,GAAAtlP,GAAArpC,OAAA26P,KAAA9kB,IAAA,EAAA9hM,EAAA1K,GAAAjqC,UAEAq7U,GAAA,SAAA1mS,EAAA1K,GACA,OAAAulP,GAAAvlP,GAAArpC,OAAA26P,KAAA9kB,IAAA,EAAA9hM,EAAA1K,GAAAjqC,UAEAs7U,GAAA3+U,EAAA85O,IAAA,GACA8kG,GAAA5+U,EAAA85O,IAAA,GAEA+kG,GAAA,SAAA5lU,GACA,OAAA8lP,GAAArlP,GAAAZ,QAAAG,KAAAimN,GAAAxlN,GAAAZ,QAAAG,KAEA6lU,GAAA3zU,GAAAnB,SAAA,CACA,CAAO2iB,OAAA,aACP,CAAOoyT,cAAA,aACP,CAAOC,eAAA,gBAEPC,GAAA,SAAAzpG,EAAAzwO,GACA,IAAAu0E,EAAAv0E,EAAAm0E,SAAA,IAAAs8J,GACA0pG,EAAA1pG,EAAA,iBACA,OAAA1zC,GAAA36K,UAAAmyD,MAAAtrD,aAAA,oBAAAkxT,GAEAC,GAAA,SAAAnnS,EAAAw9L,EAAAzwO,EAAA83Q,GACA,IAAAoW,EAAA,SAAA35M,GACA,OAAA82F,GAAA12J,GAAAZ,QAAAwgE,MAAAu4M,GAAA9sR,EAAA83Q,EAAA7kO,IAEA,OAAAy6O,IAAAj9C,EAAAzwO,GAAA5B,KAAA,WACA,OAAAsvR,GAAAj9C,EAAAqnC,GAAA15Q,KAAAvD,GAAA,GAAAqzR,IACOA,IAEPmsD,GAAA,SAAApnS,EAAAw9L,EAAAzwO,EAAA83Q,GACA,IAAAwiE,EAAAxiE,EAAA3jM,SAAA,IAAAs8J,GACA,OAAAqmG,GAAAjqD,eAAAl4Q,GAAAZ,QAAAk/B,GAAAt+B,GAAAZ,QAAA/T,EAAAm0E,YAAAp1E,IAAA,SAAAw7U,GACA,OAAA1vB,GAAAluH,QAAA49I,GAAAR,GAAAnyT,OAAA2yT,EAAAjmU,OAAAylU,GAAAC,cAAAM,KACOx7U,QAAA,WACP,OAAAmB,EAAAP,KAAAq6U,GAAAC,cAAAM,OAGAE,GAAA,SAAAvnS,EAAAw9L,EAAAzwO,GACA,OAAAiwR,GAAAZ,aAAA5+C,EAAAx9L,EAAAjzC,GAAAf,KAAA,SAAA64Q,GACA,OAAAgiE,GAAAhiE,EAAA3jM,WACAl0E,EAAArC,OACSw8U,GAAAnnS,EAAAw9L,EAAAzwO,EAAA83Q,GACT73Q,EAAArC,OACS6yO,GAAA1zC,GAAAjjD,uBAAAg+H,EAAA3jM,WACTkmQ,GAAApnS,EAAAw9L,EAAAzwO,EAAA83Q,IACS,IAAArnC,GAAA1zC,GAAAjjD,uBAAAg+H,EAAA3jM,SAAA,IACTkmQ,GAAApnS,EAAAw9L,EAAAzwO,EAAA83Q,GACSrnC,GAAA0pE,GAAAn6S,GACTC,EAAAP,KAAAq6U,GAAAE,eAAAniE,KACS,IAAArnC,GAAAypE,GAAAl6S,GACTC,EAAAP,KAAAq6U,GAAAE,eAAAniE,IAEA73Q,EAAArC,UAIA68U,GAAA,SAAAhqG,EAAAl8J,GACA,OAAAk8J,GAAA1zC,GAAAjjD,uBAAAvlE,EAAAnuD,aACAnmB,EAAAP,KAAAq6U,GAAAC,cAAAzlQ,EAAAnuD,eACO,IAAAqqN,GAAA1zC,GAAAjjD,uBAAAvlE,EAAAmoH,iBACPz8L,EAAAP,KAAAq6U,GAAAC,cAAAzlQ,EAAAmoH,kBAEAz8L,EAAArC,QAGA88U,GAAA,SAAAznS,EAAAjzC,EAAA26U,GACA,OAAAA,EAAAv8U,KAAA,SAAAm2E,GACA,OAAAt0E,EAAAP,KAAAq6U,GAAAnyT,OAAA2sD,KACO,SAAAA,GACP,OAAAt0E,EAAAP,KAAAq6U,GAAAC,cAAAzlQ,KACO,SAAAujM,GACP,OAAAgV,GAAA9sR,EAAA83Q,EAAA7kO,GACAhzC,EAAArC,OAEAqC,EAAAP,KAAAq6U,GAAAE,eAAAniE,OAIA8iE,GAAA,SAAA3nS,EAAAw9L,EAAAzwO,GACA,OAAAk6U,GAAAzpG,EAAAzwO,GACAy6U,GAAAhqG,EAAAzwO,EAAAm0E,SAAA,IAAAs8J,IAAAryO,KAAA,WACA,OAAAo8U,GAAAvnS,EAAAw9L,EAAAzwO,IACSC,EAAAP,MAET86U,GAAAvnS,EAAAw9L,EAAAzwO,GAAAf,KAAA,SAAA07U,GACA,OAAAD,GAAAznS,EAAAjzC,EAAA26U,MAIAE,GAAA,SAAA5nS,EAAAw9L,EAAA1kM,GACA,IAAA6hP,EAAA1pF,GAAAusC,EAAA,KAAAx9L,EAAAlH,GACA/rC,EAAAqnR,GAAAP,eAAA8G,GACAw8B,EAAAz1S,GAAAZ,QAAAk/B,GACA,WAAAw9L,GAAA0pE,GAAAn6S,GACAC,EAAAP,KAAAq6U,GAAAnyT,OAAA5nB,EAAAm0E,SAAA,KACOs8J,GAAAypE,GAAAl6S,GACPC,EAAAP,KAAAq6U,GAAAnyT,OAAA5nB,EAAAm0E,aACO,IAAAs8J,GAAAypE,GAAAl6S,IAAA25U,GAAAvvB,EAAApqT,GACP45U,GAAAxvB,EAAApqT,GAAAjB,IAAA,SAAAk2O,GACA,OAAA8kG,GAAAnyT,OAAAqtN,EAAA9gK,aAEOs8J,GAAA0pE,GAAAn6S,IAAA05U,GAAAtvB,EAAApqT,GACP65U,GAAAzvB,EAAApqT,GAAAjB,IAAA,SAAAk2O,GACA,OAAA8kG,GAAAnyT,OAAAqtN,EAAA9gK,aAGAymQ,GAAA3nS,EAAAw9L,EAAAzwO,IAIA86U,GAAA,SAAApqQ,EAAA+/J,GACA,gBAAAn0N,GAGA,OAFAo0D,EAAAqyN,oBAAAqc,gBACAmN,GAAAL,cAAAx7O,EAAA+/J,EAAA97N,GAAAZ,QAAAuI,KACA,IAGA09T,GAAA,SAAAtpQ,EAAA+/J,GACA,gBAAAn0N,GACA,IAAAisB,EAAAkoM,EAAA42C,GAAA1gQ,OAAArK,GAAA+qQ,GAAAtgQ,MAAAzK,GAEA,OADAo0D,EAAA5kC,UAAA2nI,OAAAlrI,EAAAs+O,YACA,IAGAozD,GAAA,SAAAvpQ,GACA,gBAAAnoC,GAEA,OADAmoC,EAAA5kC,UAAA2nI,OAAAlrI,EAAAs+O,YACA,IAGAk0D,GAAA,SAAArqQ,EAAAx8D,GACA,OAAAjU,EAAAD,KAAAg7U,GAAAtqQ,EAAAhuD,UAAAxO,KAEA41L,GAAA,SAAAp5H,EAAA+/J,GACA,IAAAv7B,EAAAxkI,EAAA5kC,UAAAqoC,UACA,OAAA4mQ,GAAArqQ,EAAAwkI,GAAA91M,OAAA29L,GAAAjjD,wBAAA17I,KAAA,WACA,IAAA0K,EAAA+xU,GAAAnqQ,EAAAhuD,UAAA+tN,EAAA//J,EAAA5kC,UAAAkrC,UAAAj4E,IAAA,SAAA47U,GACA,OAAAA,EAAAv8U,KAAA08U,GAAApqQ,EAAA+/J,GAAAupG,GAAAtpQ,EAAA+/J,GAAAwpG,GAAAvpQ,MAEA,OAAA5nE,EAAAvK,OAAA,IACO,WACP,YAGA08U,GAAA,SAAA7wB,GACAprT,EAAA+6E,GAAAqwO,EAAA,4BAAAhhS,KAEA2gL,GAAA,SAAAr5H,EAAA+/J,GACA,IAAAv7B,EAAAxkI,EAAA5kC,UAAAqoC,UACA,GAAA4oH,GAAAjjD,uBAAAo7D,GAAA,CACA,IAAAgmI,EAAAH,GAAArqQ,EAAAwkI,EAAA3yL,YAAAnjB,OAAA29L,GAAAjjD,wBACA,OAAAohM,EAAA98U,KAAA,WAIA,OAHA68U,GAAAtmU,GAAAZ,QAAA28D,EAAAhuD,YACA6pS,GAAAL,cAAAx7O,EAAA+/J,EAAA97N,GAAAZ,QAAA28D,EAAA5kC,UAAAqoC,YACA2iQ,GAAAP,cAAA7lQ,IACA,GACS,WACT,WAGA,UAEAsqQ,GAAA,SAAA/nS,EAAA/+B,GACA,MAAAA,OAAA++B,EAAA,CACA,GAAA8pJ,GAAAljD,sBAAA3lI,IAAA6oL,GAAAjjD,uBAAA5lI,GACA,OAAAA,EAEAA,IAAAqO,WAEA,aAEA44T,GAAA,SAAAzqQ,GACA,IAAAukK,EACA4rE,EAAAm6B,GAAAtqQ,EAAAhuD,UAAAguD,EAAA5kC,UAAAqoC,WAOA,OANA4oH,GAAAljD,sBAAAgnK,IAAAnwO,EAAAp8D,IAAA0+D,QAAA6tO,IAAAnwO,EAAAp8D,IAAAqoL,QAAAkkH,KACA5rE,EAAAvkK,EAAAp8D,IAAAsuB,OAAA,MAAsC28J,iBAAA,MACtC7uH,EAAAp8D,IAAAgmQ,QAAAumC,EAAA,IACAA,EAAAz5R,YAAA6tN,GACAvkK,EAAA5kC,UAAA2nI,OAAA4zG,GAAA1gQ,OAAAsuN,GAAA4xC,aAEA,GAEAu0D,GAAA,SAAA1qQ,EAAA+/J,GACA,OAAA//J,EAAA5kC,UAAAw4G,cACAwlD,GAAAp5H,EAAA+/J,GAEA1mC,GAAAr5H,EAAA+/J,IAGA4qG,GAAA,CACApxI,gBAAAmxI,GACAD,qBAGAG,GAAA,SAAAhnU,EAAAJ,GACA6oL,GAAA16K,OAAAnO,IAAA,IAAAA,EAAAwN,KAAA/mB,QACA2Z,EAAAsT,OAAA1T,IAGAqnU,GAAA,SAAA7qQ,EAAAluE,EAAA0R,EAAA+zB,EAAAwoM,EAAA+gG,GACA,IAAAzwB,EAAAP,GAAAv4Q,EAAAyoC,EAAA8gQ,EAAAr9P,SAAAs8J,MAAA,GACA,GAAAjuO,EAAAqrC,UAAA,CACA,IAAAwrS,EAAA72U,EAAA8yE,aACAm7J,EACA4oG,EAAAzsS,OAAAm0Q,EAAA/0Q,eAAA+0Q,EAAAxzQ,aAEA8rS,EAAA9sS,SAAAw0Q,EAAAvzQ,aAAAuzQ,EAAAtzQ,WAEA4rS,EAAA3R,sBAEAllU,EAAAklU,iBAIA,OAFAh3P,EAAA5kC,UAAA2nI,OAAAstI,GACAu6B,GAAA5qQ,EAAAp8D,IAAAJ,IACA,GAEAsnU,GAAA,SAAA9qQ,EAAA+/J,GACA,IAAAjuO,EAAAkuE,EAAA5kC,UAAAkrC,SACA,IAAA+lH,GAAA16K,OAAA7f,EAAA0uT,yBACA,SAEA,IAAAjpR,EAAAwoM,EAAA22C,GAAA2H,SAAA3H,GAAA+H,UACAisB,EAAAlsB,GAAAx+M,EAAAhuD,WACA0vT,EAAAn3U,EAAA8yR,GAAAqtB,EAAAtqS,MACAuhU,EAAAp3U,EAAA8yR,GAAAqtB,EAAArnO,MACAq9P,EAAA3gG,EAAA2hG,EAAAC,EACAhB,EAAA5gG,EAAAypE,GAAAC,GACA3zB,EAAAmH,GAAA1lP,EAAAyoC,EAAAhuD,UAAAlgB,GACA+uU,EAAAvF,GAAAH,kBAAAp7F,EAAA2gG,EAAA5qD,IACA,IAAA+qD,IAAAtjD,GAAAzH,EAAA+qD,GACA,SACO,GAAAF,EAAAE,GACP,OAAAgK,GAAA7qQ,EAAAluE,EAAAgkR,EAAAryM,UAAAlsC,EAAAwoM,EAAA8gG,GAEA,IAAAC,EAAAJ,EAAAG,GACA,SAAAC,GAAAH,EAAAG,IACAvjD,GAAAsjD,EAAAC,KACA+J,GAAA7qQ,EAAAluE,EAAAgkR,EAAAryM,UAAAlsC,EAAAwoM,EAAA+gG,IAKAiK,GAAA,SAAA/qQ,EAAA+/J,GACA,OAAA+qG,GAAA9qQ,EAAA+/J,IAEAirG,GAAA,CAA6BzxI,gBAAAwxI,IAE7BE,GAAA,SAAAjrQ,GACA,WAAAA,EAAAa,SAAA88P,mBAEAuN,GAAA,SAAA57U,EAAA83Q,GACA,IAAAt1Q,EAAAvI,EAAAwZ,SAAAs5B,cAGA,OAFAvqC,EAAA+pC,SAAAvsC,EAAAyoB,YAAAzoB,EAAA47B,UACAp5B,EAAAoqC,OAAAkrO,EAAArvP,YAAAqvP,EAAAl8O,UACAp5B,GAEAq5U,GAAA,SAAAtnQ,GACA,OAAAj3C,GAAA2yP,GAAAC,gBAAA37M,GAAA07M,GAAAE,eAAA57M,GAAA,SAAAmiQ,EAAAvG,GACA,IAAAwG,EAAA3K,GAAAH,mBAAA,EAAA6K,GACAE,EAAA5K,GAAAH,mBAAA,EAAAsE,GACA,OAAAlgD,GAAAF,aAAAx7M,EAAAoiQ,GAAA53U,IAAA,SAAAwpC,GACA,OAAAA,EAAA47O,QAAAyyD,KACSr4U,OAAA,KACFA,OAAA,IAEPu9U,GAAA,SAAAprQ,EAAAuP,GACA,gBAAAwuF,GACA,OAAA28J,GAAAD,YAAAlrP,EAAAwuF,GAAA1vK,IAAA,SAAAwpC,GAEA,OADA4mS,GAAAhB,iBAAAz9P,EAAAnoC,IACA,IACShqC,OAAA,KAGTw9U,GAAA,SAAArrQ,EAAAuP,EAAAjgF,EAAA83Q,GACA,IAAAjkM,EAAAnD,EAAAhuD,UACA6oT,EAAAtwU,EAAA+wU,GAAAT,eAAA76P,GACAA,EAAAob,YAAA5sB,OAAA,WACAwR,EAAA5kC,UAAA2nI,OAAAmoK,GAAA57U,EAAA83Q,IACApnM,EAAAqc,YAAA,UACA6gP,GAAAf,aAAAtB,EAAA13P,EAAAwzM,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,WAAAj4E,IAAA6uU,GAAAjjR,QAAA5rD,IAAA+8U,GAAAprQ,EAAAuP,MAEAvP,EAAAub,eAEA+vP,GAAA,SAAAnoQ,EAAA3/D,GACA,IAAAy1L,EAAAkjF,GAAA34Q,EAAA2/D,GACA,OAAA81H,GAAA91H,GAEAooQ,GAAA,SAAAvrQ,EAAAuP,EAAAwwJ,EAAAzwO,GACA,IAAA6zE,EAAAmoQ,GAAAtrQ,EAAAhuD,UAAA1iB,EAAAyoB,aACA8iT,EAAAtwU,EAAA+wU,GAAAT,eAAA76P,GACA68P,EAAAK,GAAAf,aAAAtB,EAAA13P,EAAA7zE,GACA,OAAAutU,EAAAtuU,KAAA,SAAAwvK,GACA,OAAAgiE,EACAhiE,EAAArwK,KAAAvD,EAAAoF,EAAAP,KAAAkuU,GAAAjjR,OAAA8jH,KAAAxuK,EAAArC,KAAA/C,EAAAoF,EAAAP,KAAAkuU,GAAAb,QAAAt+J,KAAAxuK,EAAArC,MAEA6wK,EAAArwK,KAAA6B,EAAArC,KAAA/C,EAAAoF,EAAAP,KAAAkuU,GAAAb,QAAAt+J,KAAAxuK,EAAArC,KAAA/C,EAAAoF,EAAAP,KAAAkuU,GAAAjjR,OAAA8jH,QAEO1vK,IAAA+8U,GAAAprQ,EAAAuP,IAAAzhF,WAAA,WACP,IAAA09U,EAAAjsD,GAAAr+N,SAAA6+K,EAAA58J,EAAA7zE,GACAwtU,EAAA0O,EAAAj9U,KAAA,SAAAspC,GACA,OAAAqlS,GAAAf,aAAAtB,EAAA13P,EAAAtrC,KAEA,OAAAglS,EAAAjvU,UAAAkvU,EAAAlvU,SACA0tU,GAAAN,eAAAH,EAAA13P,EAAA7zE,GAAAjB,IAAA,SAAAw1E,GACA,QAAAsnQ,GAAAtnQ,KACAg4O,GAAAL,cAAAx7O,EAAA+/J,EAAA97N,GAAAZ,QAAAwgE,KACA,KAIWh2E,OAAA,GAEXivU,EAAAvuU,KAAA,SAAAmB,GACA,OAAA87U,EAAAn9U,IAAA,SAAA+4Q,GAMA,OALArnC,EACAsrG,GAAArrQ,EAAAuP,EAAAjgF,EAAA83Q,GAEAikE,GAAArrQ,EAAAuP,EAAA63L,EAAA93Q,IAEA,MAEWzB,OAAA,MAIX49U,GAAA,SAAAzrQ,EAAAuP,EAAAwwJ,GACA,GAAA//J,EAAA5kC,UAAAw4G,eAAAq3L,GAAAjrQ,GAAA,CACA,IAAA1wE,EAAAqnR,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA,OAAAilQ,GAAAvrQ,EAAAuP,EAAAwwJ,EAAAzwO,GAEA,UAEAo8U,GAAA,CAA0BnyI,gBAAAkyI,IAE1BE,GAAA,SAAA74K,EAAAi1I,GACA,IAAA/iJ,EAAAohJ,GAAAD,eAAA4B,EAAAj1I,GACA,OAAAlgK,EAAAoyJ,EAAA1iF,IAAA50E,KAAAvD,EAAA66J,GAAA,SAAAnvI,GACA,OAAAmvI,EAAA1zJ,MAAA,EAAAukB,MAGA+1T,GAAA,SAAA/nQ,GACA,WAAAluD,GAAAkuD,GAAA55E,QAEA4hV,GAAA,SAAA9rG,EAAA//J,EAAA3qE,EAAAy2U,GACA,IAAAC,EAAAxhV,EAAAgzT,GAAAv9O,GACA48O,EAAAvuT,EAAAK,EAAAo9U,EAAAC,GAAA,SAAAloQ,GACA,OAAAA,EAAAjgE,QAEA,OAAAg5S,EAAA3yT,OACA4xT,GAAAL,cAAAx7O,EAAA+/J,EAAA1qO,OACO,CACP,IAAAwiC,EAAAwlR,GAAAhoT,EAAAuO,MAAAg5S,GACA58O,EAAA5kC,UAAA2nI,OAAAlrI,EAAAs+O,aAGA61D,GAAA,SAAAhsQ,EAAA+/J,GACA,IAAAjtE,EAAA7uJ,GAAAZ,QAAA28D,EAAAhuD,WACA+1R,EAAA9jS,GAAAZ,QAAA28D,EAAA5kC,UAAAd,YACAwxS,EAAAp9U,EAAAi9U,GAAA74K,EAAAi1I,GAAA6jC,IACA,OAAAp4U,EAAAs4U,GAAAz9U,IAAA,SAAAgH,GACA,IAAA0wU,EAAApvD,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA,SAAA8/P,GAAAN,gCAAA/lG,EAAAgmG,EAAA1wU,EAAAuO,QAAA65S,GAAApoT,MACAw2U,GAAA9rG,EAAA//J,EAAA3qE,EAAAy2U,IACA,KAIOj+U,OAAA,IAEPo+U,GAAA,SAAAjsQ,EAAA+/J,GACA,QAAA//J,EAAA5kC,UAAAw4G,eAAAo4L,GAAAhsQ,EAAA+/J,IAEAmsG,GAAA,CAA8B3yI,gBAAA0yI,IAE9BE,GAAA,SAAA3iU,EAAAywG,GACA,OACAzwG,MAAArf,EAAAqf,GACAywG,IAAA9vH,EAAA8vH,KAGAmyN,GAAA,SAAA/wS,EAAA+oG,EAAAtvD,GACA,OACAz5C,IAAAlxC,EAAAkxC,GACA+oG,MAAAj6I,EAAAi6I,GACAtvD,MAAA3qF,EAAA2qF,KAGAm1P,GAAAv0U,GAAAnB,SAAA,CACA,CAAO83U,YAAA,aACP,CAAOC,WAAA,aAEPC,GAAA,SAAAhqS,GACA,gBAAAigN,GACA,OAAAp1P,GAAAm1C,EAAAigN,KAGAgqF,GAAA,SAAAz0T,EAAAzG,GACA,OAAAkB,GAAAvO,GAAAZ,QAAA0U,GAAA,QAAAzG,IAEAm7T,GAAA,SAAA1kR,EAAAz2C,GACA,OAAAsa,GAAAm8B,EAAA,QAAAz2C,IAEAo7T,GAAA,SAAAC,GACA,WAAAv/U,GAAAu/U,EAAAnjU,QAAAmjU,EAAA1yN,QAEA2yN,GAAA,SAAAD,EAAAr7T,GACA,OAAAm7T,GAAAE,EAAAnjU,QAAA8H,GAAA/iB,KAAA,SAAAs+U,GACA,OAAAJ,GAAAE,EAAA1yN,MAAA3oG,GAAA/iB,KAAA,SAAAu+U,GACA,OAAA54D,GAAA9mR,GAAAy/U,EAAAC,GAAAD,QAIAE,GAAA,SAAA3oM,GACA,OAAA/6D,GAAA+6D,EAAA,UAEA4oM,GAAA,SAAAL,EAAAr7T,GACA,OAAAm7T,GAAAE,EAAAnjU,QAAA8H,GAAA/iB,KAAA,SAAA61I,GACA,OAAA5wI,EAAAu5U,GAAA3oM,IAAA/1I,IAAA,SAAA4+U,GACA,OAAAd,GAAAQ,EAAAnjU,QAAAyjU,QAIAC,GAAA,SAAA57T,EAAA+pB,GACA,IAAA2wI,EAAAwgK,GAAAnxS,EAAAC,eAAAhqB,GACA27T,EAAAT,GAAAnxS,EAAAyB,aAAAxrB,GACA,OAAA+pB,EAAA8B,UAAA5tC,EAAArC,OAAA0/B,GAAAo/I,EAAAihK,EAAAd,IAAAz+U,KAAA,WACA,OAAAs+K,EAAAt+K,KAAA,WACA,OAAAu/U,EAAA1+U,KAAA,SAAA0+U,GACA,OAAAR,GAAAQ,EAAA37T,GAAA/iB,KAAA,SAAA61I,GACA,OAAA7wI,EAAAw5U,GAAA3oM,IAAA/1I,IAAA,SAAA29K,GACA,OAAAmgK,GAAAngK,EAAAihK,UAIS,SAAAjhK,GACT,OAAAygK,GAAAzgK,EAAA16J,GAAA/iB,KAAA,SAAA61I,GACA,OAAA5wI,EAAAu5U,GAAA3oM,IAAA/1I,IAAA,SAAA4+U,GACA,OAAAd,GAAAngK,EAAAihK,UAIO,SAAAN,GACP,OAAAQ,GAAA77T,EAAAq7T,GAAAp9U,EAAArC,OAAA8/U,GAAAL,EAAAr7T,MAGA67T,GAAA,SAAA77T,EAAAq7T,GACA,OAAAC,GAAAD,EAAAr7T,GAAA1jB,UAEAw/U,GAAA,SAAA/xS,EAAA/pB,GACA,IAAA06J,EAAAwgK,GAAAnxS,EAAAC,eAAAhqB,GACA27T,EAAAT,GAAAnxS,EAAAyB,aAAAxrB,GACA,OAAAsb,GAAAo/I,EAAAihK,EAAAd,IAAAz9U,OAAAg+U,IAAAh+U,OAAA,SAAAi+U,GACA,OAAAQ,GAAA77T,EAAAq7T,KACOv+U,QAAA,WACP,OAAA8+U,GAAA57T,EAAA+pB,MAGAgyS,GAAA,SAAAV,EAAAr7T,GACA,OAAAs7T,GAAAD,EAAAr7T,GAAAjjB,IAAA,SAAA+1I,GACA,OAAAgoM,GAAAO,EAAAvoM,EAAA2oM,GAAA3oM,OAGAkpM,GAAA,SAAA/qS,EAAAlH,GACA,IAAA/pB,EAAAi7T,GAAAhqS,GACA,OAAA6qS,GAAA/xS,EAAA/pB,GAAA/iB,KAAA,SAAAo+U,GACA,OAAAU,GAAAV,EAAAr7T,MAGAi8T,GAAA,SAAAz4P,EAAA/sB,GACA,OAAAn1D,EAAAkiF,EAAA,SAAAxqF,GACA,OAAA8C,GAAA9C,EAAAy9D,MAGAylR,GAAA,SAAApB,GACA,OAAAx/S,GAAA2gT,GAAAnB,EAAAt3P,QAAAs3P,EAAA/wS,MAAA7xB,SAAA+jU,GAAAnB,EAAAt3P,QAAAs3P,EAAA/wS,MAAA4+E,OAAA,SAAA41F,EAAAl0L,GACA,OAAAywT,EAAAt3P,QAAAxjF,MAAAu+M,EAAAl0L,EAAA,MAGAwqG,GAAA,SAAAimN,GACA,OAAAoB,GAAApB,GAAA/9U,IAAA,SAAA+tD,GACA,IAAA04B,EAAAs3P,EAAAt3P,QACA,OAAA14B,EAAAnyD,SAAA6qF,EAAA7qF,OAAAggV,GAAAoC,YAAAD,EAAAhoM,SAAA6lM,GAAAqC,WAAAlwR,MAGAqxR,GAAA,SAAAlrS,EAAAlH,GACA,OAAAiyS,GAAA/qS,EAAAlH,GAAA9sC,KAAA43H,KAGAmmN,GAAA,SAAAtsQ,EAAA8U,GAGA,OAFAxmF,EAAAwmF,EAAA6iO,GAAAL,mBACAt3O,EAAA5kC,UAAA2oC,kBAAA+Q,EAAA,GAAAlxE,MAAA,IACA,GAEA8pU,GAAA,SAAA1tQ,EAAAokE,GAEA,OADAy3K,GAAAL,cAAAx7O,GAAA,EAAAokE,IACA,GAEAupM,GAAA,SAAA3tQ,EAAA8yF,EAAAz3H,GACA,OAAAoyS,GAAA36K,EAAAz3H,GAAAhtC,IAAA,SAAA0kB,GACA,OAAAA,EAAArlB,KAAAnD,EAAAmjV,GAAA1tQ,GAAAz1E,EAAA+hV,GAAAtsQ,OAGA4tQ,GAAA,SAAA5tQ,EAAAqyJ,GACA,OAAAw7G,GAAA7tQ,EAAAqyJ,IAEAy7G,GAAA,SAAA9tQ,EAAA8yF,EAAAz3H,EAAA0sQ,GACA,OAAAgmC,GAAAj7K,EAAAi1I,GAAAr6S,KAAA,WACA,OAAAigV,GAAA3tQ,EAAA8yF,EAAAz3H,IACO,SAAAg3L,GACP,OAAAu7G,GAAA5tQ,EAAAqyJ,KACOxkO,OAAA,IAEPmgV,GAAA,SAAAhuQ,EAAA+nO,GACA,IAAA5kO,EAAAl/D,GAAAZ,QAAA28D,EAAAhuD,WACAqpB,EAAA2kC,EAAA5kC,UAAAkrC,SACA+oJ,EAAA0kG,GAAAD,mBAAA9zP,GACA,WAAAqvJ,EAAAplO,OAAAqiV,GAAAtsQ,EAAAqvJ,GAAAy+G,GAAA9tQ,EAAAmD,EAAA9nC,EAAA0sQ,IAEAkmC,GAAA,SAAAn7K,EAAAjvF,GACA,OAAAlxE,EAAAyzS,GAAAD,eAAAtiO,EAAAivF,GAAAw2F,KAEAykF,GAAA,SAAAj7K,EAAAjvF,GACA,OAAAlxE,EAAAyzS,GAAAD,eAAAtiO,EAAAivF,GAAA,SAAAjvF,GACA,kBAAApzE,GAAAozE,MAGAqqQ,GAAA,SAAAluQ,EAAA8yF,EAAAitE,EAAAouG,EAAA7+U,GACA,OAAAiwR,GAAAr+N,SAAA6+K,EAAA//J,EAAAhuD,UAAA1iB,GAAAf,KAAA,SAAA64Q,GACA,OAAA6mE,GAAAn7K,EAAA7uJ,GAAAZ,QAAA+jQ,EAAA3jM,YAAAp1E,IAAA,SAAAs5D,GACA,WAAAv6D,GAAAu6D,EAAAwmR,QAIAN,GAAA,SAAA7tQ,EAAA6D,GAGA,OAFA8zO,GAAAL,kBAAAzzO,GACA7D,EAAA5kC,UAAA2oC,kBAAAF,EAAAjgE,MAAA,GACArU,EAAAP,MAAA,IAEAo/U,GAAA,SAAAC,EAAAtuG,EAAAzwO,EAAA83Q,GACA,OAAAmY,GAAAC,gBAAA6uD,EAAAzqU,OAAArV,KAAA,SAAAixC,GACA,OAAA+/O,GAAAE,eAAA4uD,EAAAzqU,OAAAvV,IAAA,SAAAmF,GACA,OAAAusO,EAAAzwO,EAAAmkR,QAAAj0O,IAAA4nO,EAAAqM,QAAAjgR,GAAAlE,EAAAmkR,QAAAjgR,IAAA4zQ,EAAAqM,QAAAj0O,OAEO3xC,OAAA,IAEPygV,GAAA,SAAAtuQ,EAAA6D,GACA,OAAAgqQ,GAAA7tQ,EAAA6D,IAEA0qQ,GAAA,SAAAz7K,EAAAu7K,EAAAjnE,GACA,OAAA2mE,GAAAj7K,EAAA7uJ,GAAAZ,QAAA+jQ,EAAA3jM,YAAAp1E,IAAA,SAAAmgV,GACA,WAAAphV,GAAAohV,EAAAH,MAGAI,GAAA,SAAAzuQ,EAAA8yF,EAAAitE,EAAAsuG,EAAA/+U,GACA,OAAAiwR,GAAAr+N,SAAA6+K,EAAA//J,EAAAhuD,UAAA1iB,GAAAf,KAAA,SAAA64Q,GACA,OAAAgnE,GAAAC,EAAAtuG,EAAAzwO,EAAA83Q,GAAAknE,GAAAtuQ,EAAAquQ,GAAAE,GAAAz7K,EAAAu7K,EAAAjnE,KACOj5Q,GAAAoB,EAAAP,MAAA,KAEP0/U,GAAA,SAAA1uQ,EAAA+/J,EAAAjtE,EAAAi1I,GACA,IAAAz4S,EAAAqnR,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA,OAAA2nQ,GAAAn7K,EAAAi1I,GAAAx5S,KAAA,SAAA4/U,GACA,OAAAh0B,GAAAluH,QAAAkiJ,GAAAN,GAAA7tQ,EAAAmuQ,GAAAD,GAAAluQ,EAAA8yF,EAAAitE,EAAAouG,EAAA7+U,KACOzB,OAAA,IAEP8gV,GAAA,SAAA3uQ,EAAA+/J,EAAAjtE,EAAAu7K,GACA,IAAA/+U,EAAAqnR,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA,OAAA6zO,GAAAluH,QAAAoiJ,GAAAR,GAAA7tQ,EAAAquQ,GAAAI,GAAAzuQ,EAAA8yF,EAAAitE,EAAAsuG,EAAA/+U,IAEAs/U,GAAA,SAAA7uG,EAAAloM,GACA,OAAAkoM,EAAAupE,GAAAzxQ,GAAA0xQ,GAAA1xQ,IAEAg3S,GAAA,SAAA7uQ,EAAA+/J,GACA,IAAAgmG,EAAApvD,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA,OAAAsoQ,GAAA7uG,EAAAgmG,IAAAxmD,GAAAZ,aAAA5+C,EAAA//J,EAAAhuD,UAAA+zT,GAAA13U,IAAA,SAAAwpC,GACA,OAAA+2S,GAAA7uG,EAAAloM,KACOhqC,OAAA,IAEPihV,GAAA,SAAA9uQ,EAAA+/J,EAAAgoE,GACA,IAAAj1I,EAAA7uJ,GAAAZ,QAAA28D,EAAAhuD,WACA,OAAA+7T,GAAAj7K,EAAAi1I,GAAAr6S,KAAA,WACA,OAAAghV,GAAA1uQ,EAAA+/J,EAAAjtE,EAAAi1I,IAAA8mC,GAAA7uQ,EAAA+/J,IACO,SAAAsuG,GACP,OAAAM,GAAA3uQ,EAAA+/J,EAAAjtE,EAAAu7K,GAAAxgV,OAAA,MAGAkhV,GAAA,SAAA/uQ,EAAA+/J,GACA,IAAAgoE,EAAA9jS,GAAAZ,QAAA28D,EAAA5kC,UAAAd,UAAA,IACAw6C,EAAAi/O,GAAAD,mBAAA9zP,GACA,OAAAA,EAAA5kC,UAAAw4G,eAAA,IAAA9+D,EAAA7qF,OAAA6kV,GAAA9uQ,EAAA+/J,EAAAgoE,GAAAimC,GAAAhuQ,EAAA+nO,IAEAinC,GAAA,CAAuBz1I,gBAAAw1I,IAEvBE,GAAA,SAAAjvQ,EAAA+/J,GACA,IAAAgmG,EAAApvD,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA,OAAAi5M,GAAAZ,aAAA5+C,EAAA//J,EAAAhuD,UAAA+zT,GAAAr3U,OAAA,SAAAmpC,GACA,OAAAkoM,EAAAqpE,GAAAvxQ,GAAAwxQ,GAAAxxQ,KACOtpC,KAAA,SAAAspC,GACP,OAAAtoC,EAAAD,KAAAitR,GAAAx8C,EAAA,KAAAloM,MACOxpC,IAAA,SAAAw1E,GAEP,OADA7D,EAAA5kC,UAAA+hD,OAAAtZ,IACA,IACOh2E,OAAA,IAEPqhV,GAAA,SAAAlvQ,EAAA+/J,GACA,QAAA//J,EAAA5kC,UAAAw4G,eAAAq7L,GAAAjvQ,EAAA+/J,IAEAovG,GAAA,CAA2B51I,gBAAA21I,IAE3BE,GAAA,SAAA/5U,GACA,OAAA+c,GAAA/c,EAAA,SAAAwuE,GACA,OAAAwoH,GAAAljD,sBAAAtlE,EAAAjgE,QAAAyoL,GAAAjjD,uBAAAvlE,EAAAjgE,SACOpV,OAAA,SAAAq1E,GACP,OAAAwoH,GAAAljD,sBAAAtlE,EAAAjgE,UAGAyrU,GAAA,SAAAjlV,GACA,IAAAwV,EAAAwnB,SAAAh9B,EAAA,IACA,OAAAi9B,MAAAznB,GAAA,EAAAA,GAEA0vU,GAAA,SAAAC,EAAA3jU,GACA,IAAA4jU,EAAAD,GAAArmF,GAAAt9O,GAAA,mBACAjC,EAAA,QAAA2O,GAAA1M,EAAA,8BACA,OAAA4jU,EAAA7lU,GAEA8lU,GAAA,SAAA7rU,EAAAg2L,EAAA21I,EAAAnlV,EAAAqpE,EAAA7nD,GACA,IAAA4jU,EAAAF,GAAAC,EAAAtrU,GAAAZ,QAAAuI,IACA,eAAAguL,EAAA,CACA,IAAA81I,EAAA71T,KAAAyN,IAAA,EAAA+nT,GAAAzjU,EAAAmX,MAAAysT,IAAAplV,GACAwZ,EAAAqxL,SAAArpL,EAAA4jU,EAAAE,IAAAj8Q,EAAA,QACO,CACPi8Q,EAAAL,GAAAzjU,EAAAmX,MAAAysT,IAAAplV,EAAAqpE,EACA7vD,EAAAqxL,SAAArpL,EAAA4jU,EAAAE,KAGAC,GAAA,SAAA3vQ,EAAA0oL,GACA,OAAAj6P,EAAAi6P,EAAA,SAAA5wH,GACA,IAAA03M,EAAAF,GAAA/0P,GAAA2wM,sBAAAlrN,GAAA83D,GACA83M,EAAA/rT,GAAAi0G,EAAA03M,GAAAnhV,IAAAghV,IAAAxhV,MAAA,GACAq7I,EAAAlpE,EAAAp8D,IAAA2+D,mBAAAu1D,EAAAl0H,OACA,gBAAAslI,GAAA0mM,EAAA,KAGAC,GAAA,SAAA7vQ,GACA,IAAA0oL,EAAAonF,GAAA9vQ,GACA,WAAAA,EAAA21E,WAAA+yG,EAAAz+P,OAAA,GAAA0lV,GAAA3vQ,EAAA0oL,KAEAqnF,GAAA,SAAA59T,GACA,OAAA87K,GAAA97K,IAAAs3M,GAAAt3M,IAEA69T,GAAA,SAAA79T,GACA,OAAAqD,GAAArD,GAAA9jB,IAAA0hV,IAAAliV,OAAA,IAEAiiV,GAAA,SAAA9vQ,GACA,OAAAtxE,EAAAL,EAAA2xE,EAAA5kC,UAAA4xJ,oBAAA/oL,GAAAZ,SAAA,SAAA8O,GACA,OAAA49T,GAAA59T,KAAA69T,GAAA79T,IAAAi9T,GAAAj9T,MAGA0yE,GAAA,SAAA7kB,EAAA45H,GACA,IAAAh2L,EAAAo8D,EAAAp8D,IAAAw3B,EAAA4kC,EAAA5kC,UAAAkgD,EAAAtb,EAAAsb,UACAu1G,EAAAt2G,GAAA4wM,eAAAnrN,GACAiwQ,EAAA,YAAA95P,KAAA06G,GAAA,GACAq/I,EAAA9oT,SAAAypK,EAAA,IACA0+I,EAAAh1P,GAAA2wM,sBAAAlrN,GACA8mO,EAAAvsN,GAAAqvM,mBAAA5pN,GACAA,EAAAugG,kBAAA,wBAAAvgG,EAAAugG,kBAAA,sBACA,KAAAumI,GAAAljS,EAAA4oL,UAAApxJ,EAAAqoC,UAAA7/D,EAAA0+D,UACAgZ,EAAApxF,MAAA,OAGAoE,EAAAwhV,GAAA9vQ,GAAA,SAAA83D,GACA23M,GAAA7rU,EAAAg2L,EAAA21I,EAAAW,EAAAD,EAAAn4M,EAAAl0H,UAIAusU,GAAA,SAAApwG,EAAAx9L,EAAAjzC,GACA,OAAAiwR,GAAAL,eAAAn/C,EAAAx9L,EAAAjzC,EAAA05S,KAEAonC,GAAA,SAAA7tS,EAAA1K,GACA,OAAAllC,EAAAyzS,GAAAD,eAAAliS,GAAAZ,QAAAw0B,EAAA9f,aAAAwqB,GAAA+/B,KAEA+tQ,GAAA,SAAAtwG,EAAAx9L,EAAA1K,GACA,OAAAs4S,GAAApwG,EAAAx9L,EAAA3+B,MAAAi0B,GAAAppC,OAAA,SAAAijT,GACA,OAAA0+B,GAAA7tS,EAAA1K,GAAAnqC,KAAA,WACA,WAAA0uR,GAAAs1B,EAAA75Q,EAAA0K,EAAA3+B,QACS,SAAA6jU,GACT,WAAArrD,GAAAs1B,EAAA75Q,EAAA0K,EAAA3+B,QAAAkJ,GAAA26T,EAAAxjU,GAAAZ,QAAAquS,EAAA35R,mBAIAu4T,GAAA,SAAAvwG,EAAAx9L,EAAA1K,GACA,OAAAu4S,GAAA7tS,EAAA1K,GAAAnqC,KAAA,WACA,OAAAyiV,GAAApwG,EAAAx9L,EAAA3+B,MAAAi0B,GAAAppC,OAAA,SAAAijT,GACA,WAAAt1B,GAAAs1B,EAAA75Q,EAAA0K,EAAA3+B,UAEO,SAAA4R,GACP,OAAA26T,GAAApwG,EAAAvqN,EAAA5R,MAAAi0B,GAAAvqC,YAGAijV,GAAAhmV,EAAA+lV,IAAA,GACAE,GAAAjmV,EAAA+lV,IAAA,GACAG,GAAAlmV,EAAA8lV,IAAA,GACAK,GAAAnmV,EAAA8lV,IAAA,GAEAM,GAAA,SAAA3wQ,EAAA4wQ,EAAAC,GACA,GAAA7wQ,EAAA5kC,UAAAw4G,eAAAi8L,GAAA7vQ,GAAA,CACA,IAAAp8D,EAAAo8D,EAAAp8D,IACAy3B,EAAA2kC,EAAA5kC,UAAAkrC,SACAzuC,EAAA8+O,GAAAP,eAAA/6O,GACAy8F,EAAAl0H,EAAA4oL,UAAAnxJ,EAAAC,eAAA13B,EAAA0+D,SACA,UAAAw1D,GAAAy4M,GAAAtsU,GAAAZ,QAAAy0H,GAAAjgG,GAEA,OADAgtD,GAAA7kB,EAAA,YACA,EAGA,UAEA8wQ,GAAA,CAAmBv3I,gBAAAo3I,IAEnBI,GAAA,SAAA/wQ,EAAAuP,EAAA+xB,GACAikO,GAAAl2T,QAAA,CACA,CACAgkH,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAA+9T,GAAAv3I,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAA43T,GAAApxI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAA43T,GAAApxI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAAi4T,GAAAzxI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAAi4T,GAAAzxI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAA24T,GAAAnyI,gBAAAv5H,EAAAuP,GAAA,IAEA,CACA8jD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAA24T,GAAAnyI,gBAAAv5H,EAAAuP,GAAA,IAEA,CACA8jD,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAAi8T,GAAAz1I,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAAi8T,GAAAz1I,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAAo8T,GAAA51I,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAAo8T,GAAA51I,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAA81T,GAAAtvI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAA81T,GAAAtvI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAAo1T,GAAA5uI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAAo1T,GAAA5uI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAAm5T,GAAA3yI,gBAAAv5H,GAAA,IAEA,CACAqzD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAAm5T,GAAA3yI,gBAAAv5H,GAAA,KAEAshC,GAAAhzG,KAAA,SAAAoB,GACA4xG,EAAA1uF,oBAGAo+T,GAAA,SAAAhxQ,EAAAshC,GACAikO,GAAAl2T,QAAA,CACA,CACAgkH,QAAA80K,GAAAxrP,UACA5pC,OAAAwyT,GAAAxyT,OAAA43T,GAAAF,iBAAAzqQ,IAEA,CACAqzD,QAAA80K,GAAA3uG,OACAzmL,OAAAwyT,GAAAxyT,OAAA43T,GAAAF,iBAAAzqQ,KAEAshC,IAEAw/D,GAAA,SAAA9gG,EAAAuP,GACAvP,EAAA/lC,GAAA,mBAAAqnE,IACA,IAAAA,EAAA/S,sBACAwiP,GAAA/wQ,EAAAuP,EAAA+xB,KAGAthC,EAAA/lC,GAAA,iBAAAqnE,IACA,IAAAA,EAAA/S,sBACAyiP,GAAAhxQ,EAAAshC,MAIA2vO,GAAA,CAA+Bn5Q,MAAAgpG,IAE/BowK,GAAA,SAAA1tU,GACA,MAAAA,EAAA,CACA,OAAAA,EAAAsI,UAAA,IAAAtI,EAAAsI,UAAAtI,EAAAwN,MAAA,WAAAtM,KAAAlB,EAAAwN,MACA,OAAAxN,EAEAA,IAAAkS,cAGAy7T,GAAA,SAAAnxQ,EAAAz9B,GACA,IAAA/+B,EAAA63B,EAAAuvK,EAAAroK,EACA3+B,EAAAo8D,EAAAp8D,IACAisP,EAAA7vL,EAAAjiE,OAAAi2P,oCACA,GAAAzxN,EAAA,CAGA,kBAAA79B,KAAA69B,EAAA/wB,UAAA,CACA,IAAAuE,EAAAm7T,GAAA3uS,EAAAxsB,YACAA,GAAA,eAAArR,KAAAqR,EAAAvE,WACA+wB,EAAAnsB,aAAAxS,EAAAd,IAAAa,eAAA,KAAA4+B,EAAAxsB,YAKA,GAFAslB,EAAAz3B,EAAAmhE,YACAxiC,EAAAuhC,YACAvhC,EAAAp/B,gBAAA,CACA,IAAA2/D,EAAA,IAAAgkM,GAAAvkO,KACA,MAAA/+B,EAAAs/D,EAAA98D,UAAA,CACA,GAAAqmL,GAAA16K,OAAAnO,GAAA,CACA63B,EAAAQ,SAAAr4B,EAAA,GACA63B,EAAAa,OAAA14B,EAAA,GACA,MAEA,GAAAqsP,EAAArsP,EAAAgO,SAAAlM,eAAA,CACA+1B,EAAAS,eAAAt4B,GACA63B,EAAAY,aAAAz4B,GACA,MAEAonM,EAAApnM,EACAA,EAAAs/D,EAAA1iE,OAEAoD,IACA63B,EAAAQ,SAAA+uK,EAAA,GACAvvK,EAAAa,OAAA0uK,EAAA,SAGAve,GAAAZ,KAAAlpJ,GACAA,EAAA7sB,aAAA9R,EAAA0+D,QAAA//B,EAAA7sB,cACA2lB,EAAAS,eAAAyG,GACAlH,EAAAY,aAAAsG,KAEAlH,EAAAU,cAAAwG,GACAlH,EAAAc,YAAAoG,KAGAlH,EAAAQ,SAAA0G,EAAA,GACAlH,EAAAa,OAAAqG,EAAA,IAGAy9B,EAAA5kC,UAAA2nI,OAAA1nI,GACA2kC,EAAA5kC,UAAAqsO,eAAAllO,KAEA6uS,GAAA,SAAAxtU,EAAAJ,GACA,IACAgS,EAAA67T,EADA9uS,EAAA3+B,EAAAw/D,UAEA5tD,EAAAhS,EACA,MAAAgS,IAAA+sB,GAAA,UAAA3+B,EAAA2+D,mBAAA/sD,GACA,SAAA5R,EAAA2+D,mBAAA/sD,KACA67T,EAAA77T,GAEAA,IAAA3D,WAEA,OAAA2D,IAAA+sB,EAAA8uS,EAAA9uS,GAEA+uS,GAAA,SAAAtxQ,GACA,OAAAzwE,EAAAD,KAAA0wE,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAd,UAAA,GAAA0lC,EAAAp8D,IAAA0+D,WAEAivQ,GAAA,SAAAvxQ,GACA,OAAAsxQ,GAAAtxQ,GAAAtyE,KAAAvD,EAAA,aAAA8uM,GACA,OAAAA,EAAAznL,SAAAgoE,iBAGAg4P,GAAA,SAAAxxQ,GACA,OAAAsxQ,GAAAtxQ,GAAAtxE,OAAA,SAAAm1E,GACA,OAAA4lJ,GAAAxlN,GAAAZ,QAAAwgE,MACOj2E,UAEP6jV,GAAA,CACAN,uBACAC,mBACAj1D,eAAAm1D,GACAC,sBACAC,0BAGAE,GAAA,SAAA7tQ,EAAApzE,GACA,OAAAozE,EAAA9tD,YAAA8tD,EAAA9tD,WAAAvE,WAAA/gB,GAEAkhV,GAAA,SAAA9tQ,EAAA0jI,GACA,OAAA1jI,KAAAhyD,YAAAgyD,EAAAhyD,WAAAL,WAAA+1L,GAEAqqI,GAAA,SAAA/tQ,GACA,OAAAA,GAAA,eAAAn/D,KAAAm/D,EAAAryD,WAEAqgU,GAAA,SAAAhuQ,GACA,OAAA+tQ,GAAA/tQ,IAAA+tQ,GAAA/tQ,EAAAhyD,aAEAigU,GAAA,SAAAC,GACA,IAAAC,EAAAD,EAAAlgU,WACA,qBAAAnN,KAAAstU,EAAAxgU,UACAwgU,EAEAD,GAEAE,GAAA,SAAAF,EAAA94I,EAAAz5J,GACA,IAAAh8B,EAAAuuU,EAAAvyS,EAAA,0BACA,MAAAh8B,EAAA,CACA,GAAA6oL,GAAA36K,UAAAlO,GACA,MAEAA,IAAAg8B,EAAA,iCAEA,OAAAh8B,IAAAy1L,GAEA9rI,GAAA,SAAA6S,EAAAkyQ,EAAAH,EAAA94I,EAAAk5I,GACA,IAAAvuU,EAAAo8D,EAAAp8D,IACAy3B,EAAA2kC,EAAA5kC,UAAAkrC,SACA,GAAAyrQ,IAAA/xQ,EAAAhuD,UAAA,CAGA6/T,GAAAE,KACAI,EAAA,MAEA,IAAAr/I,EAAAq/I,EAAAD,EAAAC,GAAAvuU,EAAAsuB,OAAA,MACA,GAAA+/S,GAAAF,EAAA94I,GAAA,IAAAg5I,GAAAF,EAAA94I,GAAA,GACA04I,GAAAI,EAAA,MACAnuU,EAAAovL,YAAAF,EAAAg/I,GAAAC,IAEAnuU,EAAAqB,QAAA6tL,EAAAi/I,QAEO,GAAAE,GAAAF,EAAA94I,GAAA,GACP04I,GAAAI,EAAA,OACAnuU,EAAAovL,YAAAF,EAAAg/I,GAAAC,IACAj/I,EAAAp8K,YAAA9S,EAAAd,IAAAa,eAAA,MACAmvL,EAAAp8K,YAAAq7T,IAEAA,EAAAlgU,WAAAuE,aAAA08K,EAAAi/I,QAEO,GAAAE,GAAAF,EAAA94I,GAAA,GACPr1L,EAAAovL,YAAAF,EAAAg/I,GAAAC,QACO,CACPA,EAAAD,GAAAC,GACA,IAAAn/I,EAAAv3J,EAAAupC,aACAguH,EAAA72J,cAAAk9J,GACArG,EAAAz2J,YAAA41S,GACA,IAAAp6T,EAAAi7K,EAAAjvH,kBACA,OAAAwuQ,GAAAT,GAAA/5T,EAAA,OACAm7K,EAAAn7K,EAAA5B,WACAnS,EAAAovL,YAAAr7K,EAAAo6T,KAEAnuU,EAAAovL,YAAAr7K,EAAAo6T,GACAnuU,EAAAovL,YAAAF,EAAAi/I,IAGAnuU,EAAAsT,OAAA+hL,GACAw4I,GAAAN,oBAAAnxQ,EAAA8yH,KAEAs/I,GAAA,CAAoBjlR,WAEpBklR,GAAA,SAAA16T,GACArpB,EAAAmyC,GAAAx8B,GAAAZ,QAAAsU,GAAAyqD,IAAA,SAAA1+D,GACA,IAAAyzS,EAAAzzS,EAAAE,MACAuzS,EAAAl5Q,UAAAizO,GAAAtnQ,KAAAutS,EAAAl5Q,cAGAq0S,GAAA,SAAA1uU,EAAAigE,GACA,OAAAA,GAAA,MAAAA,EAAAryD,UAAA5N,EAAAqoL,QAAApoH,IAEA0uQ,GAAA,SAAA/uU,GACA,OAAAA,GAAA,oBAAAkB,KAAAlB,EAAAgO,WAEAghU,GAAA,SAAA3uQ,GACAA,EAAA3gE,UAAA,2BAEAuvU,GAAA,SAAA16T,EAAAvG,GACA,OAAAuG,EAAAvG,cAAAuG,EAAAi0K,iBAAAj0K,EAAAi0K,gBAAAx6K,cAEAkhU,GAAA,SAAA9uU,EAAAJ,GACA,OAAAA,GAAAI,EAAA0+D,QAAA9+D,KAAA,yBAAAkB,KAAAlB,EAAAgO,YAAA,qBAAA9M,KAAAlB,EAAAuf,MAAA2I,WAAA,SAAA9nB,EAAA2+D,mBAAA/+D,IAEAmvU,GAAA,SAAA/uU,EAAAgsP,EAAA93H,GACA,IAEAjsI,EAFA2X,EAAAs0H,EACA86M,EAAA,GAEA,GAAApvU,EAAA,CAGA,MAAAA,IAAAuS,WAAA,CACA,GAAAnS,EAAA0+D,QAAA9+D,GACA,OAEA6oL,GAAA36K,UAAAlO,KAAAosP,EAAApsP,EAAAgO,SAAAlM,gBACAstU,EAAAnhV,KAAA+R,GAGA3X,EAAA+mV,EAAA3oV,OACA,MAAA4B,IACA2X,EAAAovU,EAAA/mV,IACA2X,EAAAL,iBAAAK,EAAAuS,aAAAvS,EAAAonL,WAAA,KAAApnL,EAAAuS,WAAAkoB,UACAr6B,EAAAsT,OAAA1T,GAEA8uU,GAAA1uU,EAAAJ,IACAI,EAAAsT,OAAA1T,KAKAqvU,GAAA,SAAArpU,EAAAuO,EAAAmT,GACA,WAAAmhK,GAAA16K,OAAAoG,GACAmT,EACO1hB,EACP,IAAA0hB,GAAAnT,EAAA/G,KAAAqzD,OAAAn5C,EAAA,KAAAgmP,GAAAH,KAAA,EAAA7lP,EAEAA,IAAAnT,EAAA/G,KAAA/mB,OAAA,GAAA8tB,EAAA/G,KAAAqzD,OAAAn5C,KAAAgmP,GAAAH,KAAAh5P,EAAA/G,KAAA/mB,OAAAihC,GAGA4nT,GAAA,SAAAz3S,GACA,IAAAm6O,EAAAn6O,EAAAupC,aAGA,OAFA4wM,EAAA35O,SAAAR,EAAAC,eAAAu3S,IAAA,EAAAx3S,EAAAC,eAAAD,EAAAwB,cACA24O,EAAAt5O,OAAAb,EAAAyB,aAAA+1S,IAAA,EAAAx3S,EAAAyB,aAAAzB,EAAA0B,YACAy4O,GAEAu9D,GAAA,SAAAvvU,GACA,GACA6oL,GAAA16K,OAAAnO,KACAA,EAAAy6B,UAAAz6B,EAAAy6B,UAAAh5B,QAAA,gBAEAzB,IAAAuS,iBACOvS,IAEPwvU,GAAA,SAAApvU,EAAAJ,GACA,IACAgS,EAAA67T,EADA9uS,EAAA3+B,EAAAw/D,UAEA5tD,EAAAhS,EACA,MAAAgS,IAAA+sB,GAAA,UAAA3+B,EAAA2+D,mBAAA/sD,GACA,SAAA5R,EAAA2+D,mBAAA/sD,KACA67T,EAAA77T,GAEAA,IAAA3D,WAEA,OAAA2D,IAAA+sB,EAAA8uS,EAAA9uS,GAEA0wS,GAAA,SAAAjzQ,EAAAx8D,GACA,IAAAytR,EAAA12M,GAAAqvM,mBAAA5pN,GACAixN,KAAA3rR,gBAAA9B,EAAAkrL,QAAAppL,eACA06D,EAAAp8D,IAAA+qL,WAAAnrL,EAAA+2E,GAAAsvM,wBAAA7pN,KAGAkzQ,GAAA,SAAAlzQ,EAAAmyQ,EAAA92S,EAAAtjB,EAAAmT,GACA,IAAA4nK,EAAAmG,EAAAn6C,EAAAt7I,EAAApD,EAAAgrT,EACA/8H,EAAA8jJ,GAAA,IACAvuU,EAAAo8D,EAAAp8D,IAAAytU,EAAA2B,GAAApvU,EAAAmU,GAEA,GADAkhL,EAAAr1L,EAAA4oL,UAAAz0K,EAAAnU,EAAA0+D,UACA22H,IAAAy5I,GAAA9uU,EAAAq1L,GAAA,CAOA,GANAA,KAAAo4I,EAEAjmB,EADAnyH,IAAAj5H,EAAAhuD,WAAAugU,GAAAt5I,GACAA,EAAAznL,SAAAlM,cAEA2zL,EAAApnL,WAAAL,SAAAlM,eAEA2zL,EAAA91L,gBAMA,OALA2vL,EAAAlvL,EAAAsuB,OAAAm8J,GACA4kJ,GAAAjzQ,EAAA8yH,GACAmG,EAAAviL,YAAAo8K,GACAz3J,EAAAQ,SAAAi3J,EAAA,GACAz3J,EAAAa,OAAA42J,EAAA,GACAA,EAEAtvL,EAAAuU,EACA,MAAAvU,EAAAqO,aAAAonL,EACAz1L,IAAAqO,WAEA,MAAArO,IAAAI,EAAA0+D,QAAA9+D,GACAs7I,EAAAt7I,EACAA,IAAAwoL,gBAEA,GAAAltC,GAAA9+E,EAAAjiE,OAAAm2P,aAAAk3D,EAAA/8H,EAAA/oL,eAAA,CACAwtL,EAAAlvL,EAAAsuB,OAAAm8J,GACA4kJ,GAAAjzQ,EAAA8yH,GACAh0C,EAAAjtI,WAAAuE,aAAA08K,EAAAh0C,GACAt7I,EAAAs7I,EACA,MAAAt7I,IAAAI,EAAA0+D,QAAA9+D,GACApD,EAAAoD,EAAAkS,YACAo9K,EAAAp8K,YAAAlT,GACAA,EAAApD,EAEAi7B,EAAAQ,SAAA9jB,EAAAmT,GACAmQ,EAAAa,OAAAnkB,EAAAmT,IAGA,OAAAnT,GAEAo7T,GAAA,SAAAvvU,EAAAk0H,GACA,IAAA8yD,EACA9yD,EAAAh0D,YACA8mH,EAAA9yD,EAAA8yD,UACAA,IAAA,mBAAAlmL,KAAAd,EAAAqoF,SAAA2+F,EAAA,cACAhnL,EAAAoe,IAAA81G,EAAA,OAGA4+F,GAAA,SAAA12J,EAAAshC,GACA,IAAAsxF,EAAAy+I,EAAAt5T,EAAAmT,EAAA+tK,EAAAp7I,EACAi1I,EAAAn7K,EAAAo6T,EAAAqB,EAAAC,EAAAlB,EAAAmB,EACA1vU,EAAAo8D,EAAAp8D,IACA7F,EAAAiiE,EAAAjiE,OAAA6xP,EAAA7xP,EAAA65L,sBACAv8J,EAAA2kC,EAAA5kC,UAAAkrC,SACA4rQ,EAAA,SAAAzhV,GACA,IAAAqnI,EAAAy7M,EAAAzhC,EAAAtuS,EAAAuU,EACAy7T,EAAAz1U,EAAA81P,wBAQA,GAPApjQ,GAAA,UAAA2iV,GAAA,OAAAA,GACAt7M,EAAAl0H,EAAAsuB,OAAAzhC,GAAA0hV,GACAc,GAAAjzQ,EAAA83D,IAEAA,EAAAmhE,EAAAjhL,WAAA,GAEA85R,EAAAh6K,GACA,IAAAv9C,GAAAyvM,iBAAAhqN,GACAp8D,EAAA2vN,UAAAz7F,EAAA,cACAl0H,EAAA2vN,UAAAz7F,EAAA,mBAEA,GACA,GAAA07M,EAAAhwU,EAAAgO,UAAA,CACA,GAAA6nQ,GAAA71Q,IAAAy9Q,GAAAvrF,eAAAlyL,GACA,SAEA+vU,EAAA/vU,EAAAwU,WAAA,GACApU,EAAA2vN,UAAAggH,EAAA,SACAz7M,EAAA30H,iBACAowU,EAAA78T,YAAAohH,EAAA/hH,YACA+hH,EAAAphH,YAAA68T,KAEAzhC,EAAAyhC,EACAz7M,EAAAphH,YAAA68T,YAGW/vU,IAAAqO,aAAArO,IAAA6tU,GAGX,OADAmB,GAAA1gC,GACAh6K,GAEA27M,EAAA,SAAAjqU,GACA,IAAAhG,EAAA/S,EACAijV,EAAAb,GAAArpU,EAAAuO,EAAAmT,GACA,GAAAmhK,GAAA16K,OAAAoG,KAAAvO,EAAAkqU,EAAA,EAAAA,EAAA37T,EAAAkmB,UAAAh0C,QACA,SAEA,GAAA8tB,EAAAlG,aAAAonL,GAAAq6I,IAAA9pU,EACA,SAEA,GAAAA,GAAA6iL,GAAA36K,UAAAqG,QAAAkhL,EAAAljL,WACA,SAEA,GAAA08T,GAAA16T,EAAA,UAAA06T,GAAA16T,EAAA,MACA,OAAAu7T,IAAA9pU,IAAA8pU,GAAA9pU,EAEA,IAAAs5D,EAAA,IAAAgkM,GAAA/uP,EAAAkhL,GACA5M,GAAA16K,OAAAoG,KACAvO,GAAA,IAAAkqU,EACA5wQ,EAAAO,OACW75D,GAAAkqU,IAAA37T,EAAAkmB,UAAAh0C,QACX64E,EAAA1iE,QAGA,MAAAoD,EAAAs/D,EAAA98D,UAAA,CACA,GAAAqmL,GAAA36K,UAAAlO,IACA,IAAAA,EAAA+U,aAAA,oBACA9nB,EAAA+S,EAAAgO,SAAAlM,cACAsqP,EAAAn/P,IAAA,OAAAA,GACA,cAGW,GAAA47L,GAAA16K,OAAAnO,KAAA,eAAAkB,KAAAlB,EAAAy6B,WACX,SAEAz0B,EACAs5D,EAAAO,OAEAP,EAAA1iE,OAGA,UAEAuzU,EAAA,WAEA7gJ,EADA,wBAAApuL,KAAA0uU,IAAA,WAAAC,EACAnB,EAAAC,GAEAD,IAEA33P,GAAA0vM,+BAAAjqN,IAAA0yQ,GAAA9uU,EAAAmuU,IAAAnuU,EAAAqoL,QAAAgN,GACAnG,EAAAlvL,EAAAmY,MAAAg2T,EAAA94I,GAEAr1L,EAAAovL,YAAAF,EAAAmG,GAEAw4I,GAAAN,oBAAAnxQ,EAAA8yH,IAEA8jI,GAAA9yP,UAAAlgE,EAAAy3B,GAAA/sC,KAAA,SAAAqoU,GACAt7R,EAAAQ,SAAA86R,EAAAr7R,eAAAq7R,EAAA95R,aACAxB,EAAAa,OAAAy6R,EAAA75R,aAAA65R,EAAA55R,aAEAhlB,EAAAsjB,EAAAC,eACApQ,EAAAmQ,EAAAwB,YACAs1S,EAAA53P,GAAAqvM,mBAAA5pN,GACAniB,KAAAyjD,MAAAzjD,UACA,IAAAE,KAAAujD,MAAAvjD,SACAsuI,GAAA36K,UAAAqG,MAAA5U,kBACAmwU,EAAApoT,EAAAnT,EAAA3U,WAAAnZ,OAAA,EACA8tB,IAAA3U,WAAAyW,KAAAmlB,IAAA9T,EAAAnT,EAAA3U,WAAAnZ,OAAA,KAAA8tB,EAEAmT,EADAooT,GAAAjnJ,GAAA16K,OAAAoG,GACAA,EAAAkmB,UAAAh0C,OAEA,GAGAonV,EAAA2B,GAAApvU,EAAAmU,GACAs5T,KAGAc,IAAAt0R,IAAAs0R,GAAAt0R,KACA9lC,EAAAm7T,GAAAlzQ,EAAAmyQ,EAAA92S,EAAAtjB,EAAAmT,IAEA+tK,EAAAr1L,EAAA4oL,UAAAz0K,EAAAnU,EAAA0+D,SACAyvQ,EAAA94I,EAAAr1L,EAAA4oL,UAAAyM,EAAApnL,WAAAjO,EAAA0+D,SAAA,KACA8wQ,EAAAn6I,IAAAznL,SAAAgoE,cAAA,GACA65P,EAAAtB,IAAAvgU,SAAAgoE,cAAA,GACA,OAAA65P,GAAAt1R,IACAk7I,EAAA84I,EACAA,IAAAlgU,WACAuhU,EAAAC,GAEA,eAAA3uU,KAAA0uU,IACAxvU,EAAAqoL,QAAAgN,GACAm5I,GAAAjlR,OAAA6S,EAAAkyQ,EAAAH,EAAA94I,EAAAk5I,GAIAA,GAAAl5I,IAAAj5H,EAAAhuD,YAGAmgU,KAAA,IACA/gE,GAAAn4E,IACAnG,EAAAy/E,GAAAt5E,GACAr1L,EAAAqoL,QAAAgN,IACAu5I,GAAAv5I,GAEAw4I,GAAAN,oBAAAnxQ,EAAA8yH,IACO2gJ,IACPE,IACOF,GAAA,IACP3gJ,EAAAmG,EAAApnL,WAAAuE,aAAA87T,IAAAj5I,GACAw4I,GAAAN,oBAAAnxQ,EAAAyyQ,GAAAx5I,EAAA,MAAAnG,EAAAmG,KAEArG,EAAAkgJ,GAAAz3S,GAAAupC,aACAguH,EAAAz2J,YAAA88J,GACAthL,EAAAi7K,EAAAjvH,kBACA0uQ,GAAA16T,GACAo7T,GAAAp7T,GACAm7K,EAAAn7K,EAAA5B,WACAnS,EAAAovL,YAAAr7K,EAAAshL,GACA05I,GAAA/uU,EAAAgsP,EAAA98D,GACAqgJ,GAAAvvU,EAAAq1L,GACAr1L,EAAAqoL,QAAAgN,IACAu5I,GAAAv5I,GAEAnG,EAAAhvH,YACAlgE,EAAAqoL,QAAA6G,IACAlvL,EAAAsT,OAAA47K,GACA6gJ,KAEAlC,GAAAN,oBAAAnxQ,EAAA8yH,IAGAlvL,EAAA2vN,UAAAzgC,EAAA,SACA9yH,EAAAya,KAAA,YAA+Bq4G,gBAE/B8gJ,GAAA,CAAuBzmR,OAAAupK,IAEvBm9G,GAAA,SAAA91U,EAAAga,EAAAkhL,GACA,IACAz1L,EADAs/D,EAAA,IAAAgkM,GAAA/uP,EAAAkhL,GAEA22D,EAAA7xP,EAAA65L,sBACA,MAAAp0L,EAAAs/D,EAAA1iE,OACA,GAAAwvP,EAAApsP,EAAAgO,SAAAlM,gBAAA9B,EAAAvZ,OAAA,EACA,UAIA6pV,GAAA,SAAAlwU,EAAAw3B,EAAA24S,GACA,IAAA79T,EAAAtS,EAAAsuB,OAAA,UAAwC,UACxC6hT,EAAAliU,WAAAuE,aAAAF,EAAA69T,GACA34S,EAAAqsO,eAAAvxP,GACAtS,EAAAsT,OAAAhB,IAEA89T,GAAA,SAAApwU,EAAAw3B,EAAA24S,EAAAE,GACA,IAAA54S,EAAAz3B,EAAAmhE,YACAkvQ,GAIA54S,EAAAS,eAAAi4S,GACA14S,EAAAY,aAAA83S,KAJA14S,EAAAU,cAAAg4S,GACA14S,EAAAc,YAAA43S,IAKA34S,EAAA2nI,OAAA1nI,IAEA64S,GAAA,SAAAl0Q,EAAAshC,GACA,IAGAyyO,EACAE,EAJA74S,EAAA4kC,EAAA5kC,UACAx3B,EAAAo8D,EAAAp8D,IACAy3B,EAAAD,EAAAkrC,SAGAswP,GAAA9yP,UAAAlgE,EAAAy3B,GAAA/sC,KAAA,SAAAqoU,GACAt7R,EAAAQ,SAAA86R,EAAAr7R,eAAAq7R,EAAA95R,aACAxB,EAAAa,OAAAy6R,EAAA75R,aAAA65R,EAAA55R,aAEA,IAAA7R,EAAAmQ,EAAAwB,YACA9kB,EAAAsjB,EAAAC,eACA,OAAAvjB,EAAAjM,UAAAiM,EAAA5U,gBAAA,CACA,IAAAmwU,EAAApoT,EAAAnT,EAAA3U,WAAAnZ,OAAA,EACA8tB,IAAA3U,WAAAyW,KAAAmlB,IAAA9T,EAAAnT,EAAA3U,WAAAnZ,OAAA,KAAA8tB,EAEAmT,EADAooT,GAAA,IAAAv7T,EAAAjM,SACAiM,EAAAkmB,UAAAh0C,OAEA,EAGA,IAAAgvM,EAAAr1L,EAAA4oL,UAAAz0K,EAAAnU,EAAA0+D,SACAyvQ,EAAA94I,EAAAr1L,EAAA4oL,UAAAyM,EAAApnL,WAAAjO,EAAA0+D,SAAA,KACA+wQ,EAAAtB,IAAAvgU,SAAAgoE,cAAA,GACA26P,KAAA7yO,MAAAvjD,SACA,OAAAs1R,GAAAc,IACAl7I,EAAA84I,GAEAh6T,GAAA,IAAAA,EAAAjM,UAAAof,GAAAnT,EAAAkmB,UAAAh0C,SACA4pV,GAAA7zQ,EAAAjiE,OAAAga,EAAAkhL,KACA86I,EAAAnwU,EAAAsuB,OAAA,MACAmJ,EAAAuoC,WAAAmwQ,GACA14S,EAAAU,cAAAg4S,GACA14S,EAAAc,YAAA43S,GACAE,GAAA,IAGAF,EAAAnwU,EAAAsuB,OAAA,MACA4lP,GAAAl0Q,EAAAy3B,EAAA04S,GACAD,GAAAlwU,EAAAw3B,EAAA24S,GACAC,GAAApwU,EAAAw3B,EAAA24S,EAAAE,GACAj0Q,EAAAob,YAAAp5D,OAEAoyT,GAAA,SAAAp0Q,EAAAytB,GACA,IAAA82I,EAAAtgO,GAAAX,QAAA,MACA2S,GAAAhS,GAAAZ,QAAAoqF,GAAA82I,GACAvkK,EAAAob,YAAAp5D,OAEAqyT,GAAA,SAAAr0Q,EAAAytB,GACA6mP,GAAAt0Q,EAAAhuD,UAAAy7E,IACAp3E,GAAApS,GAAAZ,QAAAoqF,GAAAxpF,GAAAX,QAAA,OAEA,IAAAihO,EAAAtgO,GAAAX,QAAA,MACA+S,GAAApS,GAAAZ,QAAAoqF,GAAA82I,GACAuvG,GAAA9zQ,EAAAp8D,IAAAo8D,EAAA5kC,UAAAmpM,EAAA3gO,OACAowU,GAAAh0Q,EAAAp8D,IAAAo8D,EAAA5kC,UAAAmpM,EAAA3gO,OAAA,GACAo8D,EAAAob,YAAAp5D,OAEAuyT,GAAA,SAAA18S,GACA,OAAAw0J,GAAAZ,KAAA5zJ,EAAA4rC,YAEA6wQ,GAAA,SAAAnxQ,EAAA27E,GACA,QAAAy1L,GAAA59D,GAAAtgQ,MAAAyoI,KAGAygI,GAAAF,aAAAl8M,EAAAwzM,GAAAtgQ,MAAAyoI,IAAAzwJ,IAAA,SAAAwpC,GACA,OAAAw0J,GAAAZ,KAAA5zJ,EAAA4rC,aACS51E,OAAA,IAGT2mV,GAAA,SAAA3wQ,GACA,OAAAA,GAAA,MAAAA,EAAAryD,UAAA,SAAAqyD,GAEA4wQ,GAAA,SAAA12K,GACA,OAAAA,EAAArwK,KAAAvD,GAAA,GAAAqqV,MAAArqV,GAAA,KAEAuqV,GAAA,SAAA10Q,GACA,IAAA66P,EAAAtwU,EAAA+wU,GAAAT,eAAA76P,GACAt0C,EAAAirP,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA,OAAA42P,GAAAf,aAAAtB,EAAA76P,EAAAhuD,UAAA0Z,GAAAh9B,OAAA+lV,KAEAE,GAAA,SAAA30Q,EAAA+9F,GACAA,EAAArwK,KAAAlE,EAAAe,EAAA6pV,GAAAp0Q,GAAAz1E,EAAA8pV,GAAAr0Q,GAAAx2E,IAEAorV,GAAA,SAAA50Q,EAAAshC,GACA,IAAAuzO,EAAAH,GAAA10Q,GACA60Q,EAAAjnV,SACAinV,EAAAvmV,KAAA/D,EAAAoqV,GAAA30Q,IAEAk0Q,GAAAl0Q,EAAAshC,IAGAwzO,GAAA,CAAoB3nR,OAAAynR,IAEpBp2E,GAAA,SAAAx+L,EAAAn0D,GACA,OAAA4lU,GAAAt1D,eAAAn8M,GAAAtxE,OAAA,SAAAuqM,GACA,OAAAptL,EAAA5hB,OAAA,GAAA0D,GAAAsW,GAAAZ,QAAA41L,GAAAptL,KACOje,UAEPmnV,GAAA,SAAA/0Q,GACA,OAAAw+L,GAAAx+L,EAAAua,GAAAuvM,qBAAA9pN,KAEAg1Q,GAAA,SAAAh1Q,GACA,OAAAw+L,GAAAx+L,EAAAua,GAAAwvM,qBAAA/pN,KAEAi1Q,GAAA,CACAF,kBACAC,uBAGAE,GAAAx/U,GAAAnB,SAAA,CACA,CAAOgwO,GAAA,IACP,CAAOzsG,MAAA,IACP,CAAO5qI,KAAA,MAEPioV,GAAA,SAAAn1Q,EAAAniB,GACA,OAAAo3R,GAAAD,mBAAAh1Q,IAEAo1Q,GAAA,SAAAC,GACA,gBAAAr1Q,EAAAniB,GACA,IAAAy3R,EAAA,KAAA/6P,GAAAqvM,mBAAA5pN,GACA,OAAAs1Q,IAAAD,IAGAE,GAAA,SAAAF,GACA,gBAAAr1Q,EAAAniB,GACA,OAAA4zR,GAAAD,sBAAAxxQ,KAAAq1Q,IAGA96H,GAAA,SAAAlsB,EAAAgnJ,GACA,gBAAAr1Q,EAAAniB,GACA,IAAAjjD,EAAA62U,GAAAF,mBAAAvxQ,KAAAquH,EAAA70G,cACA,OAAA5+E,IAAAy6U,IAGAG,GAAA,SAAAH,GACA,OAAA96H,GAAA,MAAA86H,IAEAI,GAAA,WACA,OAAAl7H,GAAA,eAEAm7H,GAAA,SAAAL,GACA,gBAAAr1Q,EAAAniB,GACA,OAAA08B,GAAAovM,iBAAA3pN,KAAAq1Q,IAGAM,GAAA,SAAA31Q,EAAAniB,GACA,OAAAo3R,GAAAF,eAAA/0Q,IAEAksK,GAAA,SAAAlsK,EAAAniB,GACA,OAAAA,GAEA+3R,GAAA,SAAA51Q,GACA,IAAA8mO,EAAAvsN,GAAAqvM,mBAAA5pN,GACA61Q,EAAApE,GAAAL,gBAAApxQ,EAAAp8D,IAAAo8D,EAAA5kC,UAAAd,YACA,OAAAu7S,GAAA71Q,EAAAjiE,OAAAm2P,aAAA2hF,EAAArkU,SAAAs1R,GAAA,MAEAgvC,GAAA,SAAAC,EAAAhjU,GACA,gBAAAitD,EAAAniB,GACA,IAAAm4R,EAAAtjV,EAAAqjV,EAAA,SAAA98U,EAAAlN,GACA,OAAAkN,GAAAlN,EAAAi0E,EAAAniB,KACS,GACT,OAAAm4R,EAAAzmV,EAAAP,KAAA+jB,GAAAxjB,EAAArC,SAGA+oV,GAAA,SAAAj2Q,EAAAshC,GACA,OAAAm6N,GAAAF,cAAA,CACAua,GAAA,CAAAX,IAAAD,GAAAhoV,QACA4oV,GAAA,CAAAL,MAAAP,GAAA3wG,MACAuxG,GAAA,CACAN,IAAA,GACAE,IAAA,GACAxpG,IACAgpG,GAAA3wG,MACAuxG,GAAA,CACAN,IAAA,GACAE,IAAA,IACAR,GAAAp9M,SACAg+M,GAAA,CACAN,IAAA,GACAE,IAAA,GACAxpG,IACAgpG,GAAAp9M,SACAg+M,GAAA,CACAN,IAAA,GACAE,IAAA,IACAR,GAAA3wG,MACAuxG,GAAA,CACAP,IAAA,GACArpG,IACAgpG,GAAA3wG,MACAuxG,GAAA,CAAAP,IAAA,IAAAL,GAAAp9M,SACAg+M,GAAA,CACAV,IAAA,GACAlpG,GACA0pG,IACAV,GAAAp9M,SACAg+M,GAAA,CAAAV,IAAA,IAAAF,GAAA3wG,MACAuxG,GAAA,CAAAH,IAAAT,GAAA3wG,MACAuxG,GAAA,CACAV,IAAA,GACAlpG,IACAgpG,GAAA3wG,MACAuxG,GAAA,CAAAF,IAAAV,GAAAp9M,UACA,CACA93D,KACAshC,MAAAzjD,YACAhwD,MAAAqnV,GAAAhoV,SAEAgpV,GAAA,CAAyB/vN,UAAA8vN,IAEzBE,GAAA,SAAAn2Q,EAAAshC,GACA40O,GAAA/vN,UAAAnmD,EAAAshC,GAAA5zG,KAAA,WACAonV,GAAA3nR,OAAA6S,EAAAshC,IACO,WACPsyO,GAAAzmR,OAAA6S,EAAAshC,IACO93G,IAEP4sV,GAAA,CAAyBjpR,OAAAgpR,IAEzBE,GAAA,SAAAr2Q,EAAA9yD,GACAA,EAAAqhF,uBAGArhF,EAAA0F,iBACA+iS,GAAA31O,EAAAob,aACApb,EAAAob,YAAAC,SAAA,YACA,IAAArb,EAAA5kC,UAAAw4G,eACA5zE,EAAAqc,YAAA,UAEA+5P,GAAAjpR,OAAA6S,EAAA9yD,OAGAu3J,GAAA,SAAAzkG,GACAA,EAAA/lC,GAAA,mBAAA/sB,GACAA,EAAAmmH,UAAA80K,GAAAtrP,OACAw5R,GAAAr2Q,EAAA9yD,MAIAopU,GAAA,CAAoBx+Q,MAAA2sG,IAEpB8xK,GAAA,SAAA7yU,EAAAm0B,GACA,IAAA9f,EAAA8f,EAAA9f,YACAmT,EAAA2M,EAAA3M,SACA,OAAAmhK,GAAA16K,OAAAoG,IACAA,EAAA++S,WAAA5rS,EAAAxnB,GACAnU,EAAAP,KAAAknR,GAAAn+P,EAAAmT,EAAAxnB,EAAAzZ,UAEAkzR,GAAAtlP,GAAAxpC,IAAA,SAAAw1E,GACA,IAAA4tM,EAAAxtQ,GAAAR,SAAAC,GAMA,OALAm0B,EAAAm6O,UACA37P,GAAAwtD,EAAA4tM,GAEAx7P,GAAA4tD,EAAA4tM,GAEAyE,GAAAzE,EAAA7tQ,MAAAF,EAAAzZ,WAIAusV,GAAAjsV,EAAAgsV,GAAA,KACAE,GAAAlsV,EAAAgsV,GAAA,KAEAphE,GAAA,IACAuhE,GAAA,SAAA7+S,GACA,OAAAq+O,GAAAM,eAAA3+O,OAAAi6O,cAAAj6O,EAAAm6O,WAEA2kE,GAAA,SAAAp0S,EAAA1K,GACA,IAAAkxS,EAAAr6U,EAAA03S,GAAAD,eAAAliS,GAAAZ,QAAAw0B,EAAA9f,aAAAwqB,GAAA+/B,IACA,OAAA/uE,EAAAw1U,GAAAl7U,MAAA00C,IAEAq0S,GAAA,SAAAr0S,EAAA1K,GACA,OAAA6+S,GAAA7+S,GACAkxQ,GAAAlxQ,GAEAkxQ,GAAAlxQ,IAAA0nP,GAAAD,aAAAq3D,GAAAp0S,EAAA1K,GAAAj0B,MAAAi0B,GAAArpC,OAAAu6S,KAGA8tC,GAAA,SAAAt0S,EAAA1K,GACA,OAAA6+S,GAAA7+S,GACAixQ,GAAAjxQ,GAEAixQ,GAAAjxQ,IAAA0nP,GAAAF,aAAAs3D,GAAAp0S,EAAA1K,GAAAj0B,MAAAi0B,GAAArpC,OAAAs6S,KAGAguC,GAAA,SAAA1sV,GACA,OAAAyH,EAAA,CACA,MACA,YACAzH,IAEA2sV,GAAA,SAAAl/S,GACA,OAAAslP,GAAAtlP,GAAAtpC,KAAA,SAAAs1E,GACA,OAAAzxD,GAAAyxD,EAAAgC,MACOr3E,OAAA,SAAAq1E,GACP,OAAAizQ,GAAAx+T,GAAAurD,EAAA,mBAGAmzQ,GAAA,SAAAz0S,EAAA1K,GACA,OAAA0nP,GAAAD,aAAA/8O,EAAA3+B,MAAAi0B,GAAAvqC,UAEA2pV,GAAA,SAAA10S,EAAA1K,GACA,OAAA0nP,GAAAF,aAAA98O,EAAA3+B,MAAAi0B,GAAAvqC,UAEA4pV,GAAA,SAAA30S,EAAA1K,GACA,OAAAm/S,GAAAz0S,EAAA1K,IAAAo/S,GAAA10S,EAAA1K,IAAA04S,GAAAhuS,EAAA1K,IAAA24S,GAAAjuS,EAAA1K,IAAAoxS,GAAA1mS,EAAA1K,IAAAmxS,GAAAzmS,EAAA1K,IAEAs/S,GAAA,SAAA50S,EAAA1K,GACA,OAAAk/S,GAAAl/S,KAGAq/S,GAAA30S,EAAA1K,IAAA++S,GAAAr0S,EAAA1K,IAAAg/S,GAAAt0S,EAAA1K,KAGAu/S,GAAA,SAAA70S,EAAA1K,GACA,OAAAk/S,GAAAl/S,KAGA04S,GAAAhuS,EAAA1K,IAAA44S,GAAAluS,EAAA1K,IAAAoxS,GAAA1mS,EAAA1K,IAAA++S,GAAAr0S,EAAA1K,KAGAklP,GAAA,SAAAllP,GACA,IAAA9f,EAAA8f,EAAA9f,YACAmT,EAAA2M,EAAA3M,SACA,OAAAmhK,GAAA16K,OAAAoG,IAAAmT,EAAAnT,EAAA/G,KAAA/mB,OACAisR,GAAAn+P,EAAAmT,EAAA,GAEA2M,GAGAw/S,GAAA,SAAA90S,EAAA1K,GACA,IAAAy/S,EAAAv6D,GAAAllP,GACA,OAAAk/S,GAAAO,KAGA9G,GAAAjuS,EAAA+0S,IAAA5G,GAAAnuS,EAAA+0S,IAAAtO,GAAAzmS,EAAA+0S,IAAAT,GAAAt0S,EAAA+0S,KAGAC,GAAA,SAAAh1S,EAAA1K,GACA,OAAAu/S,GAAA70S,EAAA1K,IAAAw/S,GAAA90S,EAAA1K,IAEA2/S,GAAA,SAAA9zU,EAAAwnB,GACA,OAAAw9Q,GAAAhlS,EAAA2gE,OAAAn5C,KAEAusT,GAAA,SAAA5/S,GACA,IAAA9f,EAAA8f,EAAA9f,YACA,OAAAs0K,GAAA16K,OAAAoG,IAAAtO,GAAAsO,EAAA/G,KAAAmkQ,KAEAuiE,GAAA,SAAAh0U,GACA,IAAAi0U,EAAAj0U,EAAAqY,MAAA,IACA,OAAA1tB,EAAAspV,EAAA,SAAA9qF,EAAAhhQ,GACA,OAAA68S,GAAA77C,IAAAhhQ,EAAA,GAAAA,EAAA8rV,EAAA1tV,OAAA,GAAA2+S,GAAA+uC,EAAA9rV,EAAA,KAAA+8S,GAAA+uC,EAAA9rV,EAAA,IACA,IAEAghQ,IAEO33P,KAAA,KAEP0iV,GAAA,SAAAr1S,EAAA/+B,GACA,IAAAE,EAAAF,EAAAwN,KACAg1T,EAAA9vD,GAAA1yQ,EAAA,GACA,SAAAg0U,GAAA9zU,EAAA,IAAA6zU,GAAAh1S,EAAAyjS,MACAxiU,EAAAwN,KAAA,IAAAtN,EAAApS,MAAA,IACA,IAKAumV,GAAA,SAAAr0U,GACA,IAAAE,EAAAF,EAAAwN,KACA2zD,EAAA+yQ,GAAAh0U,GACA,OAAAihE,IAAAjhE,IACAF,EAAAwN,KAAA2zD,GACA,IAKAmzQ,GAAA,SAAAv1S,EAAA/+B,GACA,IAAAE,EAAAF,EAAAwN,KACAyuT,EAAAvpD,GAAA1yQ,EAAAE,EAAAzZ,OAAA,GACA,SAAAutV,GAAA9zU,IAAAzZ,OAAA,IAAAstV,GAAAh1S,EAAAk9R,MACAj8T,EAAAwN,KAAAtN,EAAApS,MAAA,WACA,IAKAymV,GAAA,SAAAx1S,EAAA1K,GACA,OAAAtoC,EAAAP,KAAA6oC,GAAAnpC,OAAA+oV,IAAAlpV,KAAA,SAAAspC,GACA,IAAA9f,EAAA8f,EAAA9f,YACAujO,EAAAs8F,GAAAr1S,EAAAxqB,IAAA8/T,GAAA9/T,IAAA+/T,GAAAv1S,EAAAxqB,GACA,OAAAujO,EAAA/rP,EAAAP,KAAA6oC,GAAAtoC,EAAArC,UAGA8qV,GAAA,SAAAh4Q,GACA,IAAAz9B,EAAAt+B,GAAAZ,QAAA28D,EAAAhuD,WACAguD,EAAA5kC,UAAAw4G,eACAmkM,GAAAx1S,EAAA2zO,GAAAE,eAAAp2M,EAAA5kC,UAAAkrC,WAAAh4E,KAAA,SAAAupC,GACAmoC,EAAA5kC,UAAA2nI,OAAAlrI,EAAAs+O,cAKA8hE,GAAA,SAAA11S,GACA,gBAAAw7H,GACA,OAAAA,EAAArwK,KAAA,SAAAke,GACA,OAAA2zQ,GAAAD,aAAA/8O,EAAA3+B,MAAA+yQ,GAAA1gQ,OAAArK,KACS,SAAAA,GACT,OAAA2zQ,GAAAC,gBAAA5zQ,IACS,SAAAA,GACT,OAAA2zQ,GAAAE,eAAA7zQ,IACS,SAAAA,GACT,OAAA2zQ,GAAAF,aAAA98O,EAAA3+B,MAAA+yQ,GAAAtgQ,MAAAzK,QAIAssU,GAAA,SAAA31S,EAAA1K,GACA,gBAAAsgT,GACA,OAAAhB,GAAA50S,EAAA41S,GAAA3B,GAAA3+S,GAAA4+S,GAAA5+S,KAGAugT,GAAA,SAAAp4Q,GACA,gBAAAnoC,GAGA,OAFAmoC,EAAA5kC,UAAA2nI,OAAAlrI,EAAAs+O,WACAn2M,EAAAub,eACA,IAGA88P,GAAA,SAAAr4Q,GACA,IAAAnoC,EAAA8+O,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA/jC,EAAAt+B,GAAAZ,QAAA28D,EAAAhuD,WACA,GAAAguD,EAAA5kC,UAAAw4G,cAAA,CACA,IAAAinL,EAAAtwU,EAAA+wU,GAAAT,eAAA76P,GACA81M,EAAAa,GAAAP,eAAAp2M,EAAA5kC,UAAAkrC,UACA,OAAA42P,GAAAf,aAAAtB,EAAA76P,EAAAhuD,UAAA8jQ,GAAAvnR,KAAA0pV,GAAA11S,IAAAh0C,KAAA2pV,GAAA31S,EAAA1K,IAAArpC,OAAA4pV,GAAAp4Q,IAEA,UAIAs4Q,GAAA,SAAAt4Q,EAAAshC,GACAikO,GAAAl2T,QAAA,EACAgkH,QAAA80K,GAAA70K,SACAvgH,OAAAwyT,GAAAxyT,OAAAslU,GAAAr4Q,KACSshC,GAAAhzG,KAAA,SAAAoB,GACT4xG,EAAA1uF,oBAGAi5J,GAAA,SAAA7rG,GACAA,EAAA/lC,GAAA,mBAAAqnE,IACA,IAAAA,EAAA/S,sBACA+pP,GAAAt4Q,EAAAshC,MAIAi3O,GAAA,CAAoBzgR,MAAA+zG,IAEpB2sK,GAAA,SAAAx4Q,GACA,OAAA3tD,GAAApO,GAAAZ,QAAA28D,EAAAhuD,WAAA,qBAAAtkB,KAAAvD,EAAA,eAAA05E,GACA,OAAAA,EAAAjgE,SAGA60U,GAAA,SAAAz4Q,GACAA,EAAA5kC,UAAA2nI,OAAA/iG,EAAA5kC,UAAAkrC,WAEA6qO,GAAA,SAAAnxO,EAAAoxO,GACAA,EAAA34R,aAAA,oBACA85P,GAAA6+B,GACAqnC,GAAAz4Q,GACAA,EAAA5kC,UAAAqsO,eAAA2pC,KAGAsnC,GAAA,SAAA14Q,EAAA3zE,GACA,IAAA+kT,EAAAonC,GAAAx4Q,GACA,GAAAoxO,EAGA,2BAAA/kT,EAAAsE,MACAtE,EAAAumB,iBACAvmB,EAAAq4F,uBACAysN,GAAAnxO,EAAAoxO,SAGA7/B,GAAA6/B,KACAD,GAAAnxO,EAAAoxO,GACApxO,EAAAob,YAAAp5D,SAGAguJ,GAAA,SAAAhwG,GACAA,EAAA/lC,GAAA,yBAAA1vC,EAAAmuV,GAAA14Q,KAEA24Q,GAAA,CAA+B7gR,MAAAk4G,IAE/B4oK,GAAAluU,KAAA1C,QACA6wU,GAAA,SAAA74Q,GACA,IAAA84Q,EAAAt5S,GAAA,WACAwgC,EAAA0vP,WACAsoB,GAAAh4Q,IAEO,GACP44Q,GAAAryU,SACAy5D,EAAA/lC,GAAA,oBAAA5tC,GACAysV,EAAA72Q,aAEAjC,EAAA/lC,GAAA,kBAAA5tC,GACAysV,EAAA/2Q,aAIAwmH,GAAA,SAAAvoH,GACA64Q,GAAA74Q,GACAA,EAAA/lC,GAAA,iBAAA5tC,IACA,IAAAA,EAAA0sV,aACAf,GAAAh4Q,MAKAg5Q,GAAA,SAAAh5Q,EAAAshC,GACAikO,GAAAl2T,QAAA,CACA,CACAgkH,QAAA80K,GAAAC,IACAr1R,OAAAmvT,GAAAliQ,GAAA,IAEA,CACAqzD,QAAA80K,GAAAE,KACAt1R,OAAAmvT,GAAAliQ,GAAA,KAEAshC,GAAAhzG,KAAA,SAAAoB,GACA4xG,EAAA1uF,oBAGAk2K,GAAA,SAAA9oH,GACAA,EAAA/lC,GAAA,mBAAAqnE,IACA,IAAAA,EAAA/S,sBACAyqP,GAAAh5Q,EAAAshC,MAIA23O,GAAA,CAAuBnhR,MAAAgxH,IAEvBO,GAAA,SAAArpH,GACA,IAAAuP,EAAAkvP,GAAAH,mBAAAt+P,GACA24Q,GAAA7gR,MAAAkI,GACAylQ,GAAA3tQ,MAAAkI,EAAAuP,GACA0hQ,GAAAn5Q,MAAAkI,EAAAuP,GACA+mQ,GAAAx+Q,MAAAkI,GACAu4Q,GAAAzgR,MAAAkI,GACAuoH,GAAAvoH,GACAi5Q,GAAAnhR,MAAAkI,IAEAk5Q,GAAA,CAA6BphR,MAAAuxH,IAE7B8vJ,GAAA,SAAAn5Q,GACA,IAAA1xE,EAAAhD,GAAAgD,KACAquD,EAAAwrP,GAAAxrP,UAAA68I,EAAA2uG,GAAA3uG,OAAA51L,EAAAo8D,EAAAp8D,IAAAw3B,EAAA4kC,EAAA5kC,UAAAylC,EAAAb,EAAAa,SAAA2wH,EAAAxxH,EAAAwxH,OACA4nJ,EAAA10F,GAAAC,MAAAp+O,EAAAm+O,GAAA/+O,GAAA0zU,EAAA30F,GAAAH,OACA+0F,EAAA,0BACAC,EAAAhzU,EAAA,aACAizU,EAAA,SAAA96K,EAAA9jK,GACA,IACAolE,EAAA0D,SAAA2Y,YAAAqiF,GAAA,EAAA9jK,GACS,MAAA25F,MAGThG,EAAA,SAAAliG,GACA,OAAAA,EAAAkiG,sBAEAkrP,EAAA,SAAAptV,GACA,IAAAqtV,EAAAC,EACAttV,EAAA+pH,eACAp2C,EAAA5kC,UAAAw4G,eAAA,QAAAvnJ,EAAAgJ,OAAAq5L,SACAtzJ,EAAA+hD,OAAA9wF,EAAAgJ,QAEAqkV,EAAA15Q,EAAA5kC,UAAAohC,aACAk9Q,EAAAzvV,OAAA,IACA0vV,EAAAL,EAAAl2I,OAAApjI,EAAAxyE,IAAA,IAAA41M,OAAAs2I,GACArtV,EAAA+pH,aAAAitE,QAAAk2J,EAAAI,MAIAC,EAAA,SAAAvtV,GACA,IAAAstV,EACA,OAAAttV,EAAA+pH,eACAujO,EAAAttV,EAAA+pH,aAAAz4F,QAAA47T,GACAI,KAAArtV,QAAAgtV,IAAA,IACAK,IAAApwU,OAAA+vU,EAAArvV,QAAA8xB,MAAA,KACA,CACAvuB,GAAA42M,SAAAu1I,EAAA,IACA/2U,KAAAwhM,SAAAu1I,EAAA,MAIA,MAEAE,EAAA,SAAAriU,EAAAyzG,GACAjrD,EAAA85Q,sBAAA,6BACA95Q,EAAAqc,YAAA,gCACA7kE,UACAyzG,aAGAjrD,EAAAqc,YAAA,sBAAA7kE,IAGAuiU,EAAA,WACA,IAAAC,EAAA,SAAA3+S,GACA,IAAAtpB,EAAAnO,EAAAsuB,OAAA,QACA2c,EAAAxT,EAAAy5R,gBAEA,OADA/iT,EAAA2E,YAAAm4B,GACAzT,EAAAklK,WAAAC,UAAAxuL,EAAA,CAAuDkpE,OAAA,UAEvDg/P,EAAA,SAAA5+S,GACA,IAAAD,EAAA4+S,EAAA3+S,GACA6+S,EAAAt2U,EAAAmhE,YACAm1Q,EAAAz7S,WAAAuhC,EAAAhuD,WACA,IAAAmoU,EAAAH,EAAAE,GACA,OAAA9+S,IAAA++S,GAEAn6Q,EAAA/lC,GAAA,mBAAA5tC,GACA,IACAunJ,EAAA7hI,EADAshH,EAAAhnI,EAAAgnI,QAEA,IAAA9kC,EAAAliG,KAAAgnI,IAAAmmE,GAAAnmE,IAAA12E,GAAA,CAGA,GAFAi3F,EAAA5zE,EAAA5kC,UAAAw4G,cACA7hI,EAAAiuD,EAAAhuD,UACA4hI,IAAAhwI,EAAAqoL,QAAAl6K,GACA,OAEA,IAAA6hI,IAAAqmM,EAAAj6Q,EAAA5kC,UAAAkrC,UACA,OAEAj6E,EAAAumB,iBACAotD,EAAA5yB,WAAA,IACAr7B,EAAAgE,YAAAnS,EAAA0+D,QAAAvwD,EAAAgE,YACAiqD,EAAA5kC,UAAA2oC,kBAAAhyD,EAAAgE,WAAA,GAEAiqD,EAAA5kC,UAAA2oC,kBAAAhyD,EAAA,GAEAiuD,EAAAub,kBAIA6+P,EAAA,WACAp6Q,EAAAwpF,UAAAxnI,IAAA,4BAEAq4T,EAAA,WACAr6Q,EAAAytB,QACA7pF,EAAArV,KAAAyxE,EAAA0D,SAAA,6BAAAr3E,GACA,IAAAgvC,EACA,GAAAhvC,EAAAgJ,SAAA2qE,EAAA0D,SAAApuD,gBAGA,GAFA+lB,EAAAD,EAAAkrC,SACAtG,EAAAhuD,UAAA/C,QACA,cAAA5iB,EAAAsE,KAAA,CACA,GAAA2gR,GAAAj2O,EAAAC,gBACA,OAEAF,EAAAuzQ,aAAAtiT,EAAAs4F,QAAAt4F,EAAAu4F,cAEAxpD,EAAA2nI,OAAA1nI,MAMAi/S,EAAA,WACAt6Q,EAAA/lC,GAAA,mBAAA5tC,GACA,IAAAkiG,EAAAliG,MAAAgnI,UAAA12E,EAAA,CACA,IAAAqjB,EAAAhuD,UAAA60O,qBAAA,MAAA58P,OACA,OAEA,GAAAmxC,EAAAw4G,eAAA,IAAAx4G,EAAAkrC,SAAAzpC,YAAA,CACA,IAAAr5B,EAAA43B,EAAAqoC,UACAuoH,EAAAxoL,EAAAwoL,gBACA,UAAAxoL,EAAAgO,SAGA,OAFA5N,EAAAsT,OAAA1T,QACAnX,EAAAumB,iBAGAo5K,KAAAx6K,UAAA,OAAAw6K,EAAAx6K,SAAAlM,gBACA1B,EAAAsT,OAAA80K,GACA3/L,EAAAumB,uBAMA+8Q,EAAA,WACApmS,EAAAqqM,MAAA5nM,UAAA0wC,gBACAsjC,EAAA/lC,GAAA,qBAAA5tC,GACA,IAAAkiG,EAAAliG,IAAA,SAAAA,EAAAgJ,OAAAmc,SAAA,CACA,IAAA6uN,EAAArgK,EAAAhuD,UACAquN,EAAAtrM,OACAqvN,GAAAl6F,iBAAAlqF,EAAA,WACAqgK,EAAApxN,cAMAsrU,EAAA,WACAv6Q,EAAA/lC,GAAA,iBAAA5tC,GACA,IAAAgJ,EAAAhJ,EAAAgJ,OACA,aAAAqP,KAAArP,EAAAmc,WAAA,UAAA5N,EAAAgoQ,yBAAAv2Q,KACAhJ,EAAAumB,iBACAotD,EAAA5kC,UAAA+hD,OAAA9nF,GACA2qE,EAAAub,eAEA,MAAAlmF,EAAAmc,UAAA5N,EAAA6gM,SAAApvM,EAAA,qBACAhJ,EAAAumB,iBACAwoB,EAAA+hD,OAAA9nF,OAIAmlV,EAAA,WACA,IAAAC,EAAA,WACA,IAAAx6C,EAAAr8R,EAAAmlQ,WAAA3tO,EAAAd,WAAAtiB,WAAA,IACA,kBACA,IAAA3iB,EAAA+lC,EAAAd,WACAjlC,IAAA2qE,EAAAhuD,YACApO,EAAA2vN,UAAAl+N,EAAA,cACA/G,EAAA2xS,EAAA,SAAAl+Q,GACA1sB,EAAAqlV,iBAAA34T,EAAA/J,WAAA,SAKA2iU,EAAA,WACA,OAAAv/S,EAAAw4G,eAAAhwI,EAAA4oL,UAAApxJ,EAAAd,WAAA12B,EAAA0+D,WAAA1+D,EAAA4oL,UAAApxJ,EAAA8D,SAAAt7B,EAAA0+D,UAEAtC,EAAA/lC,GAAA,oBAAA5tC,GACA,IAAAuuV,EACA,IAAArsP,EAAAliG,KAAA,IAAAA,EAAAgnI,SAAA,KAAAhnI,EAAAgnI,UAAAsnN,IAKA,OAJAC,EAAAH,IACAz6Q,EAAA0D,SAAA2Y,YAAA,kBACAu+P,IACAvuV,EAAAumB,kBACA,IAGAhP,EAAArV,KAAAyxE,EAAA0D,SAAA,eAAAr3E,GACA,IAAAuuV,GACArsP,EAAAliG,IAAAsuV,MACAC,EAAAH,IACAr2F,GAAAl6F,iBAAAlqF,EAAA,WACA46Q,UAKAC,EAAA,WACA76Q,EAAA/lC,GAAA,mBAAA5tC,GACA,IAAAkiG,EAAAliG,MAAAgnI,UAAA12E,GACAvhB,EAAAw4G,eAAA,IAAAx4G,EAAAkrC,SAAAzpC,YAAA,CACA,IAAAmvJ,EAAA5wJ,EAAAqoC,UAAAuoH,gBACA,GAAAA,KAAAx6K,UAAA,UAAAw6K,EAAAx6K,SAAAlM,cAEA,OADAjZ,EAAAumB,kBACA,MAMAkoU,EAAA,WACA96Q,EAAA/lC,GAAA,mBAAA5tC,GACA,IAAAgvC,EAAAtjB,EAAAmT,EAAAqX,EAAA/sB,EACA,IAAA+4E,EAAAliG,MAAAgnI,UAAA80K,GAAAxrP,YAGAthB,EAAAD,EAAAkrC,SACAvuD,EAAAsjB,EAAAC,eACApQ,EAAAmQ,EAAAwB,YACA0F,EAAA3+B,EAAAw/D,UACA5tD,EAAAuC,EACAsjB,EAAA8B,WAAA,IAAAjS,GAAA,CAGA,MAAA1V,KAAA3D,YAAA2D,EAAA3D,WAAAkE,aAAAP,KAAA3D,aAAA0wB,EACA/sB,IAAA3D,WAEA,eAAA2D,EAAAk5K,UACA1uH,EAAAsb,UAAA3rB,OAAA,kBAAAn6C,GACA6lB,EAAAz3B,EAAAmhE,YACA1pC,EAAAQ,SAAA9jB,EAAA,GACAsjB,EAAAa,OAAAnkB,EAAA,GACAqjB,EAAA2nI,OAAA1nI,QAIA0/S,EAAA,WACA,IAAAC,EAAA,WACAxB,EAAA,mBACAA,EAAA,+BACA34Q,EAAAuyN,iBACAomD,EAAA,4BAGA34Q,EAAA80E,UACA31E,EAAA/lC,GAAA,8BAAA+gT,IAGAC,EAAA,WACA,IAAAC,EAAA,WACA5sV,EAAAsV,EAAAu5E,OAAA,cAAA35E,GACA,IAAAqO,EAAArO,EAAAqO,WACA0wB,EAAA3+B,EAAAw/D,UACA,GAAAvxD,EAAA+4K,YAAApnL,EAAA,CACA,MAAAqO,IAAAjO,EAAA0+D,QAAAzwD,GAAA,CACA,GAAAA,aAAA+4K,YAAA/4K,OAAA0wB,EACA,OAEA1wB,eAEAjO,EAAAoe,IAAAnQ,EAAA,MAAyCg9K,iBAAA,QAIzC7uH,EAAA/lC,GAAA,kCAAA5tC,GACA,eAAAA,EAAAsE,MAAA,kBAAAtE,EAAAutM,SACAshJ,OAIAC,EAAA,WACAt6Q,EAAA4tH,mBACAzuH,EAAA/lC,GAAA,kBACAu/S,EAAA,4BAAAj/P,GAAAqvM,mBAAA5pN,OAIAyvN,EAAA,WACAzvN,EAAA/lC,GAAA,iCAAA5tC,GACA87S,GAAAG,gBAAAj8S,IACA+uC,EAAA0oC,cAES,IAETs3Q,EAAA,WACAp7Q,EAAAq7Q,cAAA5pV,KAAA,oFAEA6pV,EAAA,WACAt7Q,EAAAytB,QACAztB,EAAA/lC,GAAA,qBACA1wC,EAAAwZ,SAAAkyB,gBAAA1rC,EAAAwZ,SAAAgP,MACAiuD,EAAAtkC,SAAAzsB,WAKAssU,EAAA,WACAv7Q,EAAAytB,SACAztB,EAAAq7Q,cAAA5pV,KAAA,4BACAuuE,EAAA/lC,GAAA,iBAAA5tC,GACA,IAAAgvC,EACA,YAAAhvC,EAAAgJ,OAAAmc,SAAA,CACA,GAAAkzO,GAAA/+O,GAAA,GAEA,YADAq6D,EAAAhuD,UAAA/C,QAGAosB,EAAA2kC,EAAA5kC,UAAAkrC,SACAtG,EAAAhuD,UAAA/C,QACA+wD,EAAA5kC,UAAA2nI,OAAA1nI,GACA2kC,EAAA5kC,UAAA0oC,YACA9D,EAAAub,mBAKAigQ,EAAA,WACA92F,GAAA53K,KACA9M,EAAA/lC,GAAA,mBAAA5tC,GACA,GAAA87S,GAAAluG,eAAA5tM,OAAAwxD,WAAA,KAAAxxD,EAAAgnI,SAAA,KAAAhnI,EAAAgnI,SAAA,CACAhnI,EAAAumB,iBACA,IAAA6oU,EAAAz7Q,EAAA5kC,UAAAssQ,SACA+zC,EAAAne,OAAA,YAAAjxU,EAAAgnI,QAAA,yCAKAqoN,EAAA,WACAlC,EAAA,qBAEAmC,EAAA,WACA37Q,EAAA/lC,GAAA,iBAAA5tC,GACA,IAAAw3E,EAAAx3E,EAAAgJ,OACA,GACA,SAAAwuE,EAAA6qH,QAEA,YADAriM,EAAAumB,uBAGWixD,IAAAhyD,cAEXmuD,EAAAq7Q,cAAA5pV,KAAA,oDAEAmqV,EAAA,WACA57Q,EAAA/lC,GAAA,kBACA+lC,EAAAp8D,IAAArV,KAAAyxE,EAAAhuD,UAAA,kBAAA3lB,GACAA,EAAAumB,sBAIAipU,EAAA,WACArqJ,EAAAuS,cAAA,cAAAnlK,GACA,IAAA/yC,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA,8BAAA+yC,EAAA/yC,GAAAk2B,KAAA,UACA6c,EAAA/yC,GAAAqrB,YAKA4kU,EAAA,WACA97Q,EAAA/lC,GAAA,qBAAA5tC,GACAotV,EAAAptV,KAEA2zE,EAAA/lC,GAAA,gBAAA5tC,GACA,IAAAkiG,EAAAliG,GAAA,CACA,IAAAstV,EAAAC,EAAAvtV,GACA,GAAAstV,KAAAnsV,KAAAwyE,EAAAxyE,GAAA,CACAnB,EAAAumB,iBACA,IAAAyoB,EAAA22R,GAAAnuT,UAAAxX,EAAA/B,EAAA+B,EAAA0X,EAAAi8D,EAAA0D,UACAtoC,EAAA2nI,OAAA1nI,GACAw+S,EAAAF,EAAA/2U,MAAA,QAKA0tR,EAAA,aAEAzsO,EAAA,WACA,IAAApiB,EACA,SAAA23S,GAAAp5Q,EAAA81D,WAGAr0F,EAAAu+B,EAAA5kC,UAAAssQ,UACAjmQ,MAAAX,YAAA,IAAAW,EAAAX,aAyCA,OAvCAg6S,IACAf,IACAr1F,GAAAD,cACAgrC,IAEA4pD,IACAgB,IACAE,IACAY,IACAS,IACAf,IACAgB,IACAn3F,GAAAE,KACA02F,IACAC,IACAI,KAEAvB,KAGA11F,GAAA/+O,IAAA,KACA41U,IACAV,KAEAn2F,GAAA/+O,KACAy0U,IACAsB,IACAI,KAEA1C,IACAkB,IACA3qD,IACA6qD,IACAO,IACAE,IACAG,IACAI,IACAX,KAEA,CACAvqD,yBACAzsO,aAIAk4R,GAAA,SAAAv4U,GACA,OAAA6oL,GAAA36K,UAAAlO,IAAAooL,GAAA3nL,GAAAZ,QAAAG,KAEAw4U,GAAA,SAAAh8Q,GACA,IAAA3kC,EAAA2kC,EAAA5kC,UAAAkrC,SACAg4M,EAAApI,GAAAE,eAAA/6O,GACAolP,EAAAvK,GAAAG,aAAAh7O,GACA,GAAA66O,GAAAO,kBAAA6H,GAAA,CACA,IAAAvmQ,EAAAumQ,EAAAvmQ,YACAgkU,GAAAhkU,IACAwnQ,GAAAC,gBAAAznQ,GAAAzpB,KAAA,SAAAupC,GACA,OAAAwD,EAAAQ,SAAAhE,EAAA9f,YAAA8f,EAAA3M,YAIA,GAAAgrP,GAAAO,kBAAAgK,GAAA,CACA1oQ,EAAAumQ,EAAAvmQ,YACAgkU,GAAAhkU,IACAwnQ,GAAAE,eAAA1nQ,GAAAzpB,KAAA,SAAAupC,GACA,OAAAwD,EAAAa,OAAArE,EAAA9f,YAAA8f,EAAA3M,YAIA80C,EAAA5kC,UAAA2nI,OAAAw/I,GAAAz+O,UAAAzoC,KAEA4gT,GAAA,SAAAj8Q,GACAA,EAAA/lC,GAAA,iBAAA5tC,GACAA,EAAAknB,QAAA,GACAyoU,GAAAh8Q,MAKAk8Q,GAAA,SAAAl8Q,GACAA,EAAA/lC,GAAA,iBAAA5tC,GACA2zE,EAAAp8D,IAAA4oL,UAAAngM,EAAAgJ,OAAA,YACAhJ,EAAAumB,oBAIAupU,GAAA,SAAAn8Q,GACAA,EAAAwxH,OAAAuS,cAAA,mBAAAz5D,GACAh8I,EAAAg8I,EAAA,SAAAxsD,GACAA,EAAA/7D,KAAA,gBAAA+7D,EAAA/7D,KAAA,SACA+7D,EAAA/7D,KAAA,mBAGAi+C,EAAAsgI,WAAAyD,cAAA,mBAAAz5D,GACAh8I,EAAAg8I,EAAA,SAAAxsD,GACA,IAAA7wC,EAAA6wC,EAAA/7D,KAAA,iBACA+7D,EAAA/7D,KAAA,OAAAnxB,EAAAq8C,KAAA,MACA6wC,EAAA/7D,KAAA,2BAIAq6T,GAAA,SAAAp8Q,GACAk8Q,GAAAl8Q,GACAm8Q,GAAAn8Q,IAGAq8Q,GAAAvwE,GAAAv4L,IACA+oQ,GAAA,SAAAt8Q,EAAAt8D,GACA,IAAAnQ,EAAA0Q,GAAAZ,QAAA28D,EAAA0D,SAAAnwE,MACAgQ,EAAAU,GAAAX,QAAA,SACAb,GAAAc,EAAA,mBACAgT,GAAAhT,EAAAU,GAAAR,SAAAC,IACA6S,GAAAhjB,EAAAgQ,IAEAg5U,GAAA,SAAAv8Q,GACA,IAAAwxH,EAAA64H,GAAArqP,EAAAa,SAAAb,EAAAjiE,QA0DA,OAzDAyzL,EAAAwS,mBAAA,mCAAAplK,EAAAnuC,GACA,IAAA+S,EAEApZ,EAAAm9T,EAFA17T,EAAA+yC,EAAA30C,OACA2Z,EAAAo8D,EAAAp8D,IAEA,MAAA/X,IAIA,GAHA2X,EAAAo7B,EAAA/yC,GACAzB,EAAAoZ,EAAAue,KAAAtxB,GACA82T,EAAA,YAAA92T,GACA+S,EAAAue,KAAAwlS,GAAA,CACA,OAAAn9T,EAAAkC,QAAA,cAAAlC,EAAAkC,QAAA,SACA,SAEA,UAAAmE,GACArG,EAAAwZ,EAAAm+L,eAAAn+L,EAAAo+L,WAAA53M,GAAAoZ,EAAA/S,MACArG,EAAAH,SACAG,EAAA,MAEAoZ,EAAAue,KAAAwlS,EAAAn9T,GACAoZ,EAAAue,KAAAtxB,EAAArG,IACa,aAAAqG,GACb+S,EAAAue,KAAAwlS,EAAAn9T,GACAoZ,EAAAue,KAAAtxB,EAAA,OAEA+S,EAAAue,KAAAwlS,EAAAvnP,EAAAo/H,WAAAh1M,EAAAqG,EAAA+S,EAAA/S,UAKA+gM,EAAAuS,cAAA,kBAAAnlK,GACA,IAAAp7B,EAAA7S,EAAA9E,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA2X,EAAAo7B,EAAA/yC,GACA8E,EAAA6S,EAAAue,KAAA,mBACA,IAAApxB,EAAArE,QAAA,SACAkX,EAAAue,KAAA,cAAApxB,KAIA6gM,EAAAuS,cAAA,kBAAAnlK,GACA,IAAAp7B,EAAA3X,EAAA+yC,EAAA30C,OACA,MAAA4B,IACA2X,EAAAo7B,EAAA/yC,GACA2X,EAAA7S,KAAA,EACA6S,EAAA/S,KAAA,WACA+S,EAAApZ,MAAA,UAAAoZ,EAAApZ,MAAA,OAGAonM,EAAAuS,cAAA,mCAAAnlK,GACA,IAAAp7B,EAAA3X,EAAA+yC,EAAA30C,OACAk/T,EAAAnpP,EAAAjiE,OAAA65L,sBACA,MAAA/rM,IACA2X,EAAAo7B,EAAA/yC,GACA2X,EAAAyoL,QAAAk9H,IAAA,IAAA3lT,EAAA0kE,OAAA,MAAAj+E,SACAuZ,EAAA+S,OAAA,IAAAivQ,GAAA,SAAApjF,YAAA,KAIA5Q,GAEAgrJ,GAAA,SAAAx8Q,GACAA,EAAAa,SAAA47Q,YACAr4F,GAAAl6F,iBAAAlqF,EAAA,WACA,IAAAowN,EAEAA,GADA,IAAApwN,EAAAa,SAAA47Q,WACAz8Q,EAEAA,EAAAgvN,cAAA56R,IAAA4rE,EAAAa,SAAA47Q,YAEArsD,EAAAuC,WACAvC,EAAAnhR,SAES,MAGT+iO,GAAA,SAAAhyK,GACAA,EAAA08Q,4BACA18Q,EAAAygF,aAAA,EACAzgF,EAAAya,KAAA,QACAza,EAAA/wD,OAAA,GACA+wD,EAAAub,YAAA,CAA0B/4E,SAAA,IAC1Bw9D,EAAA28Q,aAAA,yBAAA38Q,GACAw8Q,GAAAx8Q,IAEA48Q,GAAA,SAAA58Q,GACA,OAAAA,EAAAytB,OAAA4uP,GAAAvhL,iBAAA96F,EAAAp8D,IAAAk3J,kBAEA+hL,GAAA,SAAA78Q,EAAA88Q,GACA,IAEA/qU,EAAAgrU,EAFAl8Q,EAAAb,EAAAa,SACA68F,EAAA19F,EAAA+rB,aACAjpF,EAAAk9D,EAAA0D,SACA7C,EAAA4sB,SACAztB,EAAA+rB,aAAAhpE,MAAAgvI,WAAA/xF,EAAAg9Q,eAEAF,GAAA98Q,EAAAytB,SACA3qF,EAAAmqC,OACAnqC,EAAAoX,MAAA8lD,EAAAi9Q,YACAn6U,EAAA2qC,SAEAuyB,EAAAytB,SACAztB,EAAA/lC,GAAA,oBACA,IAAAijT,EAAA/wV,KAAA6lB,UACAqqU,GAAAj+K,YAAA8+K,EAAA,oBACAb,GAAAj+K,YAAA8+K,EAAA,kBACAb,GAAA9oH,UAAA2pH,EAAA,0BAEAb,GAAAl+K,SAAAT,EAAA,oBACA19F,EAAA+xH,gBAAAjvL,EAAAvZ,EAAAwZ,SACAi9D,EAAAy3C,cAAAluH,EAAA8gB,OACA21D,EAAAmlE,YAAAu4B,EACA19F,EAAAgyN,qBAAAt0H,EACA78F,EAAA2pP,UAAA9sJ,EAAAlsJ,SAAAlM,eAEAyM,EAAAiuD,EAAAhuD,UACAD,EAAAs+D,UAAA,EACArQ,EAAA21E,SAAA90E,EAAA80E,SACA31E,EAAA21E,WACA31E,EAAAytB,QAAA,WAAA4uP,GAAApwP,SAAAl6E,EAAA,iBACAA,EAAAgR,MAAA2I,SAAA,YAEA3Z,EAAAm3H,gBAAAlpE,EAAAga,SAAA,8BAEAjoE,EAAAs+D,UAAA,EACArQ,EAAA0gL,aAAA8jD,GAAAxkO,GACAA,EAAAjiE,OAAAmxP,GAAAruL,GACAb,EAAAp8D,IAAAkoQ,GAAAhpQ,EAAA,CACAklQ,aAAA,EACArS,cAAA31L,EAAAo/H,WACAy2D,oBAAA71L,EACAm9Q,WAAAt8Q,EAAAu8Q,uBACA7zE,eAAA,EACAH,aAAAppM,EAAAytB,OAAAztB,EAAAhuD,UAAA,KACAwrO,QAAA,WACA,OAAAx9K,EAAAytB,QAEA1vF,OAAAiiE,EAAAjiE,OACAkqP,eAAA1tK,GAAAuwM,wBAAA9qN,GACA2yK,eAAAp4J,GAAAwwM,kBAAA/qN,GACAipM,YAAA,SAAA58Q,GACA2zE,EAAAya,KAAA,YAAApuF,MAGA2zE,EAAAwxH,OAAA+qJ,GAAAv8Q,GACAA,EAAAsgI,WAAAqsH,GAAA9rP,EAAAb,GACAA,EAAA5kC,UAAAs9R,GAAA14P,EAAAp8D,IAAAo8D,EAAAtkC,SAAAskC,EAAAsgI,WAAAtgI,GACAA,EAAAq9Q,UAAAv4D,GAAA9kN,GACAA,EAAAsb,UAAA8rO,GAAApnP,GACAA,EAAAob,YAAA67N,GAAAj3O,GACAA,EAAAs9Q,sBAAA,IAAA31C,GAAA3nO,GACAA,EAAAqyN,oBAAAse,GAAA3wO,GACAo8Q,GAAAp8Q,GACAi8Q,GAAAj8Q,GACAk5Q,GAAAphR,MAAAkI,GACA+mO,GAAAjvO,MAAAkI,GACAA,EAAAya,KAAA,WACA5Z,EAAA08Q,oBAAA18Q,EAAA28Q,mBACA16U,EAAAiP,KAAA0rU,YAAA,EACApB,GAAA9oH,UAAAxhN,EAAA,uBAEAiuD,EAAAqwN,OAAA8oD,GAAAn5Q,GACAA,EAAAya,KAAA,cACA,IAAAijQ,EAAAnjQ,GAAA+wM,kBAAAtrN,QACA9xE,IAAAwvV,IACA3rU,EAAAyjD,IAAAkoR,GAEA78Q,EAAA88Q,SACA39Q,EAAA/lC,GAAA,4BAAA5tC,GACAf,GAAAgD,KAAAuyE,EAAA88Q,QAAA,SAAA3pO,GACA3nH,EAAAmrB,QAAAnrB,EAAAmrB,QAAAvS,QAAA+uG,EAAA,SAAA1qG,GACA,8BAAA85L,OAAA95L,GAAA,eAKA02D,EAAA/lC,GAAA,wBACA+lC,EAAA23J,UAAA33J,EAAAhuD,aAEAguD,EAAA7P,KAAA,CACA3tD,SAAA,EACAy4E,OAAA,SAEAjb,EAAA49Q,aAAA59Q,EAAAxD,WAAA,CAA+Cye,OAAA,QAC/Cjb,EAAA/lC,GAAA,2CAAA5tC,GACA2zE,EAAA0vP,UAAA,qBAAArjU,EAAAsE,OAEAqvE,EAAAq7Q,cAAApxV,OAAA,IACA8yV,EAAA,GACAzxV,GAAAgD,KAAA0xE,EAAAq7Q,cAAA,SAAAt4T,GACAg6T,GAAAh6T,EAAA,SAEAi9C,EAAAp8D,IAAAymQ,SAAA0yE,IAEAH,GAAA58Q,GAAAqoL,QAAAroL,EAAA66F,WAAA,SAAAnrK,GACAsiP,GAAAhyK,IACO,SAAAsoL,GACPtW,GAAAhyK,KAEAa,EAAAg9Q,eACAvB,GAAAt8Q,EAAAa,EAAAg9Q,gBAGAC,GAAA,CAA2BjB,oBAE3BkB,GAAAjyE,GAAAv4L,IACAyqQ,GAAA,SAAAh+Q,EAAAi+Q,GACA,GAAA10V,EAAAwZ,SAAAm7U,SAAA30V,EAAA8gB,OAAA0zJ,SAAAogL,UAAAz5F,GAAA18O,QAAAzB,OAAA,CACA,IAAA63U,EAAA96C,GAAApxD,KAAA,OACAlyK,EAAAo+Q,GAAA,WACAN,GAAAjB,gBAAA78Q,IAEA,IAAAq+Q,EAAA,2DAA0E90V,EAAAwZ,SAAAm7U,OAAA,yCAAqDl+Q,EAAAxyE,GAAA,wDAAiH4wV,EAAA,cAEhP,OADAL,GAAAxqH,UAAA0qH,EAAA,MAAAI,IACA,EAEA,UAEAC,GAAA,SAAA9wV,EAAAkhF,EAAA9mD,EAAA22T,GACA,IAAA56M,EAAA1/H,GAAAX,QAAA,UASA,OARA8U,GAAAurH,EAAA46M,GACAnmU,GAAAurH,EAAA,CACAn2I,KAAA,OACAgxV,YAAA,IACAC,kBAAA,OACA/vQ,UAEA9rD,GAAA+gH,EAAA,yBACAA,GAEA66D,GAAA,SAAAx+H,GACA,IAAA0+Q,EAAAC,EAAA1B,EAYA,OAXAA,EAAA1iQ,GAAA+uM,WAAAtpN,GAAA,eACAua,GAAAgvM,mBAAAvpN,OAAAg0N,kBACAipD,GAAA,eAAAj9Q,EAAA0rB,gBAAAkzP,SAAA,QAEA3B,GAAA,wEACAyB,EAAAnkQ,GAAAivM,UAAAxpN,GACA2+Q,EAAApkQ,GAAAkvM,aAAAzpN,GACAua,GAAAmvM,yBAAA1pN,KACAi9Q,GAAA,uDAAA1iQ,GAAAmvM,yBAAA1pN,GAAA,QAEAi9Q,GAAA,oBAAAyB,EAAA,6BAAAC,EAAA,cAAA3+Q,EAAAxyE,GAAA,uBACAyvV,GAEA4B,GAAA,SAAA7+Q,EAAA3yE,GACA,IAAAqhF,EAAA1O,EAAAgvN,cAAA3mQ,UAAA,yCACA41T,EAAAK,GAAAt+Q,EAAAxyE,GAAAkhF,EAAArhF,EAAAu6B,OAAA2yD,GAAA8uM,eAAArpN,IAAAp8D,MACAq6U,EAAAnpG,OAAA,WACAmpG,EAAAnpG,OAAA,KACA90K,EAAAya,KAAA,SAEA,IAAAqkQ,EAAAd,GAAAh+Q,EAAAi+Q,GAKA,OAJAj+Q,EAAAgyN,qBAAA3kS,EAAAgvK,gBACAr8F,EAAA8vN,cAAAmuD,EACAj+Q,EAAAi9Q,WAAAz+I,GAAAx+H,GACA+9Q,GAAA/7T,IAAA30B,EAAAgvK,gBAAA4hL,GACAa,GAEArtS,GAAA,SAAAuuB,EAAA++Q,GACA,IAAAD,EAAAD,GAAA7+Q,EAAA++Q,GACAA,EAAAtsL,kBACAsrL,GAAA3pV,IAAA2qV,EAAAtsL,iBAAA1vI,MAAA+gE,QAAA9jB,EAAA6xN,WACA7xN,EAAAs+F,OAAAy/K,GAAAl6R,SAAAk7R,EAAAtsL,kBAEAzyF,EAAA+rB,aAAAhpE,MAAA+gE,QAAA,OACAi6P,GAAAxqH,UAAAvzJ,EAAAxyE,GAAA,sBACAsxV,GACAhB,GAAAjB,gBAAA78Q,IAGAg/Q,GAAA,CAAsBliU,KAAA20B,IAEtBwtS,GAAA,SAAA7vP,GACA,uBAAA1qF,KAAA0qF,IAEA8vP,GAAA,SAAAl/Q,GACA,IAAAqrN,EAAA9wM,GAAA6wM,cAAAprN,GACAurB,EAAAvrB,EAAAgvN,cAAArjM,QAAA,iBACAhiF,EAAAq2D,EAAAgvN,cAAArlR,OACAw1U,EAAA,UAAAx1U,EAAA,OACA8jF,GAAA,IAAAztB,EAAAytB,OACA,OAAAp/F,EAAAg9R,EAAA,SAAAj8L,GACA,OAAA6vP,GAAA7vP,KAAA3B,EACAlC,EAAA,IAAA6D,EAAA,IAAA+vP,EAEAn/Q,EAAA0rB,gBAAA1pD,WAAAotD,MAIAgwP,GAAA,SAAAp/Q,GACAA,EAAA66F,WAAA76F,EAAA66F,WAAAjwK,OAAAs0V,GAAAl/Q,KAGAq/Q,GAAAvzE,GAAAv4L,IACA+rQ,GAAA,SAAAt/Q,EAAAu/Q,EAAAjlJ,GACA,IAAAG,EAAA80E,GAAAn7Q,IAAAkmM,GACA00E,EAAAO,GAAAjnB,KAAAhuD,IAAAt6H,EAAAg0N,gBAAA/uR,QAAA,UAEA,GADAq1L,EAAAhvM,GAAAse,KAAA0wL,GACAG,IAAA,IAAAnvM,GAAAivM,QAAAglJ,EAAAjlJ,GAAA,CAIA,GAHAhvM,GAAAgD,KAAAihR,GAAAhB,aAAAj0E,GAAA,SAAApuK,GACAozT,GAAAt/Q,EAAAu/Q,EAAArzT,KAEA8zC,EAAA2vG,QAAA2qB,GACA,OAEA,IACA,IAAAklJ,EAAA,IAAA/kJ,EAAAz6H,EAAAgvM,EAAAhvM,EAAAo4H,GACAp4H,EAAA2vG,QAAA2qB,GAAAklJ,EACAA,EAAA1iU,OACA0iU,EAAA1iU,KAAAkjD,EAAAgvM,GACAuwE,EAAA9tV,KAAA6oM,IAES,MAAAjuM,IACTqtS,GAAAF,gBAAAx5N,EAAAs6H,EAAAjuM,OAIAozV,GAAA,SAAAhvV,GACA,OAAAA,EAAAwU,QAAA,WAEAstO,GAAA,SAAAvyK,GACA,IAAAu/Q,EAAA,GACAj0V,GAAAgD,KAAA0xE,EAAAa,SAAA8uG,QAAA5zJ,MAAA,iBAAAtrB,GACA6uV,GAAAt/Q,EAAAu/Q,EAAAE,GAAAhvV,OAGAivV,GAAA,SAAA1/Q,GACA,IAAA2/Q,EAAAr0V,GAAAse,KAAAo2D,EAAAa,SAAAxC,OACAuhR,EAAA5/Q,EAAAgI,GAAAC,SAAAC,SAAA7J,MACAwhR,EAAA33Q,KACA43Q,EAAAt0V,IAAA,GAA0Cq0V,GAAA7+C,GAAA5sS,IAAAurV,GAAAthR,OAC1C1qE,GAAAmsV,EAAA,SAAAC,EAAAvgR,GACAlrE,GAAAsrV,EAAApgR,IACAQ,EAAAgI,GAAAC,SAAA+3Q,QAAAxgR,EAAAugR,MAIAE,GAAA,SAAAjgR,GACA,IAAA6yN,EAAA7yN,EAAAa,SAAAgyN,MACA,GAAAjiS,EAAAiiS,GAAA,CACA7yN,EAAAa,SAAAgyN,MAAA4sD,GAAA5sD,GACA,IAAA1oG,EAAAqlF,GAAAp7Q,IAAAy+R,GACA7yN,EAAA6yN,MAAA,IAAA1oG,EAAAnqH,EAAAwvM,GAAAlnB,KAAAuqC,IACA7yN,EAAA6yN,MAAA/1Q,MACAkjD,EAAA6yN,MAAA/1Q,KAAAkjD,EAAAwvM,GAAAlnB,KAAAuqC,IAAA7yN,EAAAg0N,gBAAA/uR,QAAA,UAAA+6D,EAAAo4H,QAGAp4H,EAAA6yN,MAAA,IAGAqtD,GAAA,SAAAlgR,GACA,OAAAA,EAAA6yN,MAAAphH,YAEA0uK,GAAA,SAAAngR,GACA,IAAA6D,EAAA7D,EAAA+rB,aACA8mM,EAAA7yN,EAAAa,SAAAgyN,MACAzsR,EAAAysR,EAAA7yN,EAAA6D,GAQA,OAPAz9D,EAAAqsJ,gBAAA3mJ,WACA1F,EAAAqsJ,gBAAAjlK,GAAA4Y,EAAAqsJ,gBAAAjlK,IAAAwyE,EAAAxyE,GAAA,WAEA4Y,EAAAi2J,iBAAAj2J,EAAAi2J,gBAAAvwJ,WACA1F,EAAAi2J,gBAAA7uK,GAAA4Y,EAAAi2J,gBAAA7uK,IAAAwyE,EAAAxyE,GAAA,oBAEA4Y,EAAAwhB,OAAAxhB,EAAAg6U,aAAAh6U,EAAAg6U,aAAAv8Q,EAAAh8C,aACAzhB,GAEAi6U,GAAA,SAAAz0U,GACA,OACA6mJ,gBAAA7mJ,EACAywJ,gBAAAzwJ,IAGA00U,GAAA,SAAAp8S,GACA,IAAAm4H,EAAAgjL,GAAAntT,OAAA,OAEA,OADAmtT,GAAArsJ,YAAA32B,EAAAn4H,GACAm8S,GAAAhkL,IAEAkkL,GAAA,SAAAvgR,GACA,IAAA97B,EAAA87B,EAAA+rB,aACA,OAAA/rB,EAAAytB,OAAA4yP,GAAA,MAAAC,GAAAp8S,IAEAs8S,GAAA,SAAAxgR,GACA,IAAA6D,EAAA7D,EAAA+rB,aAEA,OADA/rB,EAAA6xN,WAAAhuN,EAAA9gD,MAAA+gE,QACAlzF,EAAAovE,EAAAa,SAAAgyN,OACAqtD,GAAAlgR,GACOhvE,EAAAgvE,EAAAa,SAAAgyN,OACPstD,GAAAngR,GAEAugR,GAAAvgR,IAGAhd,GAAA,SAAAgd,GACAA,EAAAya,KAAA,iBACAilQ,GAAA1/Q,GACAigR,GAAAjgR,GACAuyK,GAAAvyK,GACA,IAAA++Q,EAAAyB,GAAAxgR,GAGA,OAFAA,EAAAyyF,gBAAAssL,EAAAtsL,gBAAAssL,EAAAtsL,gBAAA,KACA2sL,GAAAp/Q,GACAA,EAAAytB,OACAqwP,GAAAjB,gBAAA78Q,GAEAg/Q,GAAAliU,KAAAkjD,EAAA++Q,IAGA0B,GAAA,CAAgB3jU,KAAAkmC,IAEhB09R,GAAA50E,GAAAv4L,IACAotQ,GAAA,SAAAlwV,GACA,YAAAA,EAAA4zE,OAAA,IAEAu8Q,GAAA,SAAAC,EAAA7gR,GACA,IAAA8gR,EAAAvmQ,GAAAywM,gBAAAhrN,GACA+gR,EAAAxmQ,GAAA0wM,eAAAjrN,GACA,QAAAmuM,GAAAD,QAAA4yE,IAAA,OAAAA,EAAA,CACA,IAAAE,EAAA,KAAAD,IAAA/gR,EAAAgvN,cAAArjM,QAAA,UAAAm1P,EAAA,MACAD,EAAA7+T,IAAAg/T,EAAAx3V,OAAA0E,EAAA,WACAwrS,GAAAH,kBAAAynD,EAAAF,OAIAG,GAAA,SAAAJ,EAAA7gR,EAAAr2D,EAAA6yE,GACA,IAAA3b,EAAAb,EAAAa,SAAAgyN,EAAAhyN,EAAAgyN,MACA,GAAAjiS,EAAAiiS,GAAA,CACA,IAAA8tD,GAAA9tD,KAAArjB,GAAAlnB,KAAAr8P,eAAA4mS,GAAA,CACA,IAAAquD,EAAArgR,EAAAsgR,UACAD,EACA1xE,GAAAr/M,KAAA0iO,EAAA7yN,EAAA0rB,gBAAA1pD,WAAAk/S,IAEA1xE,GAAAr/M,KAAA0iO,EAAA,UAAAA,EAAA,SAAAlpR,EAAA,OAGAk3U,EAAAh0E,UAAA,WACA2C,GAAAF,QAAAujB,EAAAr2M,UAGAA,KAGA4kQ,GAAA,SAAAphR,GACA,OAAAzwE,EAAAD,KAAAirF,GAAAkwM,YAAAzqN,IAAAtxE,OAAA,SAAA0gG,GACA,OAAAA,EAAAnlG,OAAA,IACOoE,IAAA,SAAA+gG,GACP,OACAA,MACA3+F,KAAAlB,EAAArC,WAIAm0V,GAAA,SAAArhR,GACA,OAAAzwE,EAAAD,KAAAirF,GAAAiwM,gBAAAxqN,IAAAtxE,OAAA,SAAA+B,GACA,OAAAA,EAAAxG,OAAA,IAAA+2S,GAAA1sS,IAAA7D,KACOpC,IAAA,SAAAoC,GACP,OACA2+F,IAAApvB,EAAAgvN,cAAArjM,QAAA,UAAAl7F,EAAA,YACAA,KAAAlB,EAAAP,KAAAyB,OAIAqvV,GAAA,SAAAe,EAAA7gR,GACAohR,GAAAphR,GAAA5xE,QAAA,WACA,OAAAizV,GAAArhR,KACO1xE,KAAA,SAAAgzV,GACPT,EAAA7+T,IAAAs/T,EAAAlyP,IAAA5lG,OAAA0E,EAAA,WACAwrS,GAAAJ,eAAAgoD,EAAAlyP,IAAAkyP,EAAA7wV,KAAAxC,uBAIAszV,GAAA,SAAA1gR,EAAAl3D,GACA7Y,EAAA+vE,EAAA8uG,WACA9uG,EAAA8uG,QAAA9uG,EAAA8uG,QAAAz6K,KAAA,MAEA5J,GAAAgD,KAAAuyE,EAAAy0N,iBAAA,SAAAlmM,EAAA3+F,GACA8+Q,GAAAp/M,KAAA1/D,EAAA2+F,EAAA5lG,OAAA0E,EAAA,WACAwrS,GAAAL,gBAAA5oS,EAAA2+F,KAEAvuB,EAAA8uG,SAAA,IAAAl/K,IAEAnF,GAAAgD,KAAAuyE,EAAA8uG,QAAA5zJ,MAAA,iBAAAu+K,GAEA,GADAA,EAAAhvM,GAAAse,KAAA0wL,GACAA,IAAAi1E,GAAAjnB,KAAAhuD,GACA,GAAAqmJ,GAAArmJ,GAAA,CACAA,IAAA/wL,OAAA,EAAA+wL,EAAArwM,QACA,IAAAskR,EAAAgB,GAAAhB,aAAAj0E,GACAhvM,GAAAgD,KAAAigR,EAAA,SAAAriP,GACA,IAAAkqQ,EAAA,CACA78Q,OAAA,WACAs1P,SAAA3iP,EACAviB,OAAA,UAAAA,EAAA,OAEAuiB,EAAAqjP,GAAAX,UAAAwnB,EAAAlqQ,GACAqjP,GAAAp/M,KAAAjkC,EAAA2iP,SAAA3iP,EAAA1iC,OAAA0E,EAAA,WACAwrS,GAAAL,gBAAAntQ,EAAA3S,OAAA2S,EAAA2iP,SAAA3iP,EAAAviB,OAAAuiB,EAAA2iP,kBAGW,CACX,IAAA2yE,EAAA,CACAjoU,OAAA,WACAs1P,SAAAv0E,EACA3wL,OAAA,UAAAA,EAAA,OAEA4lQ,GAAAp/M,KAAAmqI,EAAAknJ,EAAAh4V,OAAA0E,EAAA,WACAwrS,GAAAL,gBAAAmoD,EAAAjoU,OAAAioU,EAAA3yE,SAAA2yE,EAAA73U,OAAA2wL,SAMAwyE,GAAA,SAAA9sM,EAAAr2D,GACA,IAAAk3U,EAAAx0E,gBACA40E,GAAAJ,EAAA7gR,EAAAr2D,EAAA,WACAi3U,GAAAC,EAAA7gR,GACA8/Q,GAAAe,EAAA7gR,GACAuhR,GAAAvhR,EAAAa,SAAAl3D,GACAk3U,EAAAh0E,UAAA,WACA7sM,EAAA81D,SACA2qN,GAAA3jU,KAAAkjD,IAESA,EAAA,WACTA,EAAA81D,SACA2qN,GAAA3jU,KAAAkjD,QAKAqhB,GAAA,SAAArhB,GACA,IAAAa,EAAAb,EAAAa,SAAArzE,EAAAwyE,EAAAxyE,GACA2gR,GAAAZ,QAAAhzL,GAAAywM,gBAAAhrN,IACA,IAAAi5L,EAAA,WACAynF,GAAAx7P,OAAA37F,EAAA8gB,OAAA,QAAA4uP,GACAj5L,EAAAqhB,UAEA,GAAA63K,GAAA7+B,MAAAy+B,WAIA,GAAA94L,EAAA+rB,cAGA24J,GAAAx7G,gBAAA,CAGAroE,EAAA4sB,OAIAztB,EAAAytB,QAAA,GAHAztB,EAAAg9Q,cAAAh9Q,EAAA+rB,aAAAhpE,MAAAgvI,WACA/xF,EAAA+rB,aAAAhpE,MAAAgvI,WAAA,UAIA,IAAA/kD,EAAAhtC,EAAA+rB,aAAAihB,MAAA0zO,GAAAl0J,UAAAh/L,EAAA,QACAw/G,IACAhtC,EAAAiyN,YAAAjlL,EACAnsC,EAAA+zN,eAAAvoG,GAAA61D,kBAAAliL,EAAA+rB,gBACA20P,GAAA1tJ,YAAA0tJ,GAAAxuT,OAAA,SACAvhC,KAAA,SACAF,KAAAjD,IACWA,GACXwyE,EAAAyyN,gBAAA,GAEAzyN,EAAAoyN,kBAAA,SAAA/lS,GACA2zE,EAAAya,KAAApuF,EAAAsE,KAAAtE,IAEAq0V,GAAAnyV,KAAAy+G,EAAA,eAAAhtC,EAAAoyN,mBACApyN,EAAA/lC,GAAA,mBACA+lC,EAAAyhR,kBAEA5gR,EAAAwzN,cAAArnL,EAAAhvB,OAAAlyE,UAAAkhG,EAAAhvB,OAAA/zF,QAAA+iH,EAAAmlL,gBACAnlL,EAAAmlL,cAAAnlL,EAAAhvB,OACAgvB,EAAAhvB,OAAA,WAGA,OAFAhe,EAAAgvN,cAAA0yD,cACA1hR,EAAAk2O,UAAA,GACAlpM,EAAAmlL,cAAAnlL,MAIAhtC,EAAAie,cAAAisG,GAAAlqH,GACAA,EAAAggI,oBAAA23F,GAAA33N,GACA,QAAAa,EAAA8gR,UACA3hR,EAAA/lC,GAAA,sBAAA5tC,GACAA,EAAAimS,OACAjmS,EAAAmrB,QAAAkpU,GAAAltQ,OAAAnnF,EAAAmrB,YAIAqpD,EAAAuzN,yBACAp0N,EAAA/lC,GAAA,oBACA+lC,EAAAygF,aACAzgF,EAAAsyN,SAIAzxN,EAAAyzN,qBACAt0N,EAAA4yN,cAAA,YACA5yN,EAAAygF,aAAAzgF,EAAA2yN,WAAA3yN,EAAAnc,YACAmc,EAAAsyN,KAAA,CACAr3M,OAAA,MACA4wM,WAAA,EACA+1D,WAAA,KAIA5hR,EAAAgvN,cAAA/0P,GAAA,eAAA+lC,EAAA4yN,gBAEA5yN,EAAAgvN,cAAAhtQ,IAAAg+C,GACA8sM,GAAA9sM,IAAAr2D,cAtEA+2U,GAAAnyV,KAAAhF,EAAA8gB,OAAA,QAAA4uP,IAwEAtnF,GAAA,CAAkBtwF,WAElBwgQ,GAAA,2BACAnyR,GAAA,SAAAmU,EAAA2mM,EAAA5vQ,GACA+nB,GAAAkhD,EAAA2mM,KAAA,IAAA5vQ,EACA8nB,GAAAmhD,EAAA2mM,GACO5vQ,GACPgoB,GAAAihD,EAAA2mM,IAGAgvE,GAAA,SAAAx5Q,EAAA0+F,EAAA9jK,GACA,IACAolE,EAAA0D,SAAA2Y,YAAAqiF,GAAA,EAAA9jK,GACO,MAAA25F,MAGPutP,GAAA,SAAAj+Q,EAAAjpE,GACAipE,EAAAjgE,MAAAslI,gBAAAtuI,EAAA,gBAEAmnV,GAAA,SAAAl+Q,GACAv1E,EAAA+6E,GAAAxF,EAAA,sCAAAA,GACAphE,GAAAohE,EAAAg+Q,GAAA,QACAC,GAAAj+Q,GAAA,MAGAm+Q,GAAA,SAAAn+Q,GACAv1E,EAAA+6E,GAAAxF,EAAA,KAAAg+Q,GAAA,qBAAAh+Q,GACA3sD,GAAA2sD,EAAAg+Q,IACAC,GAAAj+Q,GAAA,MAGAo+Q,GAAA,SAAAjiR,GACAzwE,EAAAD,KAAA0wE,EAAA5kC,UAAAqoC,WAAAn1E,KAAA,SAAAu1E,GACAA,EAAAlrD,gBAAA,wBAGAupU,GAAA,SAAAliR,GACAA,EAAA5kC,UAAA2nI,OAAA/iG,EAAA5kC,UAAAkrC,WAEA67Q,GAAA,SAAAniR,EAAAplE,GACA,IAAAmX,EAAA9N,GAAAZ,QAAA28D,EAAAhuD,WACA09C,GAAA39C,EAAA,uBAAAnX,GACAA,GACAolE,EAAA5kC,UAAAw9R,iBAAA5J,iBACAhvP,EAAAqyN,oBAAAqc,gBACAuzC,GAAAjiR,GACAA,EAAA21E,UAAA,EACAmsM,GAAA/vU,GAAA,GACAgwU,GAAAhwU,KAEAiuD,EAAA21E,UAAA,EACAmsM,GAAA/vU,GAAA,GACAiwU,GAAAjwU,GACAynU,GAAAx5Q,EAAA,mBACAw5Q,GAAAx5Q,EAAA,+BACAw5Q,GAAAx5Q,EAAA,2BACA2wN,GAAAR,mBAAAnwN,IACAA,EAAA/wD,QAEAizU,GAAAliR,GACAA,EAAAub,gBAGAqQ,GAAA,SAAA5rB,GACA,WAAAA,EAAA21E,UAEAysM,GAAA,SAAApiR,GACAA,EAAAwxH,OAAAwS,mBAAA,2BAAAplK,GACAgtD,GAAA5rB,IACA1xE,EAAAswC,EAAA,SAAAp7B,GACAA,EAAAue,KAAA8/T,GAAAr+U,EAAAue,KAAA,oBACAve,EAAAue,KAAA,+BAIAi+C,EAAAsgI,WAAA0D,mBAAA69I,GAAA,SAAAjjT,GACAgtD,GAAA5rB,IACA1xE,EAAAswC,EAAA,SAAAp7B,GACAA,EAAAue,KAAA,kBAAAve,EAAAue,KAAA8/T,SAIA7hR,EAAAsgI,WAAA0uC,YAAA6yG,KAEAQ,GAAA,SAAAriR,GACAA,EAAAsgI,WACA8hJ,GAAApiR,GAEAA,EAAA/lC,GAAA,qBACAmoT,GAAApiR,MAIAsiR,GAAA,SAAAj2V,GACA,gBAAAA,EAAAsE,MAEA4xV,GAAA,SAAAl2V,GACA,IAAAgJ,EAAAhJ,EAAAgJ,OACAitV,GAAAj2V,IAAA,MAAAgJ,EAAAq5L,UAAAy5G,GAAAluG,eAAA5tM,IACAA,EAAAumB,kBAGA4vU,GAAA,SAAAxiR,GACAA,EAAA/lC,GAAA,qBAAA5tC,GACAu/F,GAAA5rB,IACA3zE,EAAAumB,mBAGAotD,EAAA/lC,GAAA,0BAAA5tC,GACAu/F,GAAA5rB,IACA3zE,EAAAumB,oBAKA6vU,GAAA,CACA,SACA,YAEAC,GAAA,SAAA1iR,EAAA2iR,EAAAC,EAAAlyS,GACA,IAAAmyS,EAAAD,EAAAD,EAAAvuV,OACAg7K,EAAAwzK,EAAAlyS,GACA,IACA0+H,EAAA0zK,WACO,MAAAz2V,IAEP,YADA9C,EAAAiM,QAAAzF,MAAA,wCAAA2gD,EAAA,IAAArkD,IAGAw2V,EAAAE,aACAF,EAAAG,iBAAA5zK,EAAA4zK,gBACAb,GAAAniR,EAAAovG,EAAA4zK,gBAEAL,EAAAlgV,IAAAiuC,GACAqqC,GAAA42M,eAAA3xN,EAAAtvB,IAEAslG,GAAA,SAAAh2E,EAAA4iR,EAAAD,EAAAjyS,GACA,GAAAA,IAAAiyS,EAAAvuV,MAAA,CAEO,IAAAE,GAAAsuV,EAAAlyS,GACP,UAAA1lD,MAAA,gBAAA0lD,EAAA,gBAEAsvB,EAAAygF,YACAiiM,GAAA1iR,EAAA2iR,EAAAC,EAAAlyS,GAEAsvB,EAAA/lC,GAAA,kBACA,OAAAyoT,GAAA1iR,EAAA2iR,EAAAC,EAAAlyS,OAIAuyS,GAAA,SAAAL,EAAAlyS,EAAAhpB,GACA,IAAApB,EACA,GAAAz0B,EAAA4wV,GAAA/xS,GACA,UAAA1lD,MAAA,gCAAA0lD,GAEA,OAAAllD,IAAA,GAAiCo3V,IAAAt8T,EAAA,GAA2BA,EAAAoqB,GAAAllD,IAAA,GAAiCk8B,GAAA,CAC7Fq7T,WAAA,WACA,IACAr7T,EAAAq7T,aACW,MAAA12V,IACX9C,EAAAiM,QAAAzF,MAAA,0CAAA2gD,EAAA,IAAArkD,QAGOi6B,KAGPi9C,GAAA,SAAAvD,GACA,IAAA2iR,EAAApgV,GAAA,UACAqgV,EAAArgV,GAAA,CACA2gV,OAAA,CACAJ,SAAAt5V,EACAu5V,WAAAv5V,EACAw5V,gBAAA,GAEArtM,SAAA,CACAmtM,SAAAt5V,EACAu5V,WAAAv5V,EACAw5V,gBAAA,KAKA,OAFAX,GAAAriR,GACAwiR,GAAAxiR,GACA,CACA4rB,WAAA,WACA,OAAAA,GAAA5rB,IAEAv9D,IAAA,SAAAiuC,GACA,OAAAslG,GAAAh2E,EAAA4iR,EAAAxuV,MAAAuuV,EAAAjyS,IAEAt8C,IAAA,WACA,OAAAuuV,EAAAvuV,OAEA0zE,SAAA,SAAAp3B,EAAAhpB,GACAk7T,EAAAngV,IAAAwgV,GAAAL,EAAAxuV,MAAAs8C,EAAAhpB,OAKAy7T,GAAA,SAAA3/U,GACA,OAAAA,EAAAuS,YAAAvS,EAAAuS,aAAAvS,EAAAonL,WAEAw4J,GAAA,SAAA5/U,GACA,aAAAA,EAAA/S,MAAA,MAAA+S,EAAApZ,OAEAi5V,GAAA,SAAAtlV,EAAAyF,GACA,IAAAsoL,EAAA/tL,EAAAwwL,mBACA,OAAAzC,EAAAtoL,EAAA/S,OAAA0yV,GAAA3/U,IAAA4/U,GAAA5/U,EAAAuS,aAEAutU,GAAA,SAAAvlV,EAAAyF,GACA,IAAA2lT,EAAAprT,EAAA65L,sBACA,OAAAp0L,MAAAyoL,QAAAk9H,IAAAk6B,GAAAtlV,EAAAyF,KAEA+/U,GAAA,SAAAxlV,EAAA4Z,GACA,IAAA5B,EAAA4B,EAAA5B,WACA60K,EAAAjzK,EAAAizK,UAUA,OATA70K,GAAA,SAAAA,EAAAtlB,OACAslB,IAAA3V,MAEAwqL,GAAA,eAAAA,EAAA7oK,KAAA,QACA6oK,IAAAvnH,MAEAigR,GAAAvlV,EAAA6sL,KACAA,IAAAvnH,SAEAttD,OAAA60K,KAGA,OAAA70K,EAAAtlB,MAAA,OAAAslB,EAAAtlB,OAEA+yV,GAAA,SAAAC,GACA,IAAA1tU,EAAA0tU,EAAA1tU,WACA60K,EAAA64J,EAAA74J,UAOA,OANA70K,GAAA,SAAAA,EAAAvE,UACAuE,EAAAlE,WAAAsF,YAAApB,GAEA60K,GAAA,eAAAA,EAAAp9L,IACAo9L,EAAA/4K,WAAAsF,YAAAyzK,GAEA64J,GAEAC,GAAA,SAAA9/U,EAAA08L,EAAA3oL,GACA,IAAA/U,EAAA09L,EAAAC,UAAA5oL,GACA8rU,EAAA7/U,EAAA4qL,eAAA5rL,GACA,OAAA4gV,GAAAC,IAEAE,GAAA,SAAA9/Q,GACA,OAAAv4E,GAAAwhM,KAAAjpH,EAAAzgE,WAAA,SAAAwS,GACA,aAAAA,EAAApE,YAGAoyU,GAAA,SAAApgV,GACA,YAAAA,EAAAwN,MAAAq7K,GAAAZ,KAAAjoL,IAEAqgV,GAAA,SAAArgV,GACA,OAAAA,KAAAuS,YAAAvS,EAAAuS,aAAAvS,EAAAonL,WAAAg5J,GAAApgV,EAAAuS,aAEA+tU,GAAA,SAAAjgR,GACA,OAAAA,EAAA9tD,YAAA8tU,GAAAhgR,IAEAkgR,GAAA,SAAAz5M,GACA,OAAAA,EAAArgJ,OAAA,GAAA65V,GAAAx5M,IAAArgJ,OAAA,IAAAqgJ,EAAAh5I,MAAA,MAAAg5I,GAEA05M,GAAA,SAAApgV,EAAAJ,GACA,IAAAy1L,EAAAr1L,EAAA4oL,UAAAhpL,EAAAI,EAAA0+D,SACA,OAAA22H,GAAA,OAAAA,EAAAznL,SAAAynL,EAAA,MAEAgrJ,GAAA,SAAArgV,EAAAJ,GACA,QAAAwgV,GAAApgV,EAAAJ,IAEA0gV,GAAA,SAAAryU,EAAAwpB,GACA,IAAA8oT,EAAA9oT,EAAAupC,aACAw/Q,EAAA/oT,EAAAupC,aAGA,OAFAu/Q,EAAAroT,eAAAjqB,GACAuyU,EAAAjoT,YAAAtqB,GACA,CACAsyU,EAAArvB,gBACAsvB,EAAAtvB,kBAGAuvB,GAAA,SAAA7gV,EAAA2/D,GACA,IAAAusN,EAAA/Y,GAAA1gQ,OAAAzS,GACAknS,EAAAlsB,GAAAr7M,GACAmhR,EAAA55C,EAAAtqS,KAAAsvR,GACA,OAAA40D,IAAAnuE,UAAA,MAEAouE,GAAA,SAAA/gV,EAAA2/D,GACA,IAAAusN,EAAA/Y,GAAAtgQ,MAAA7S,GACAknS,EAAAlsB,GAAAr7M,GACAmhR,EAAA55C,EAAArnO,KAAAqsN,GACA,OAAA40D,IAAAnuE,UAAA,MAEAquE,GAAA,SAAAnvV,EAAAi1I,EAAAnnE,EAAA9nC,GACA,IAAAjuB,EAAA82U,GAAA7uV,EAAAgmC,GACA45L,EAAA5/N,EAAAwc,WAOA,OANAojN,EAAA7+M,aAAAhJ,EAAA,GAAA/X,GACA/J,GAAAgD,KAAAg8I,EAAA,SAAAomD,GACAukC,EAAA7+M,aAAAs6K,EAAAr7L,KAEA4/N,EAAA7+M,aAAAhJ,EAAA,GAAA/X,GACA4/N,EAAA99M,YAAA9hB,GACAkvV,GAAAj6M,IAAArgJ,OAAA,GAAAk5E,IAEAshR,GAAA,SAAApvV,EAAAi1I,EAAAnnE,GACA,IAAA8xJ,EAAA5/N,EAAAwc,WAIA,OAHAvmB,GAAAgD,KAAAg8I,EAAA,SAAAzmE,GACAoxJ,EAAA7+M,aAAAytD,EAAAxuE,KAEAgvV,GAAAhvV,EAAA8tE,IAEAuhR,GAAA,SAAArvV,EAAAi1I,EAAAnnE,EAAAv/D,GAEA,OADAA,EAAAovL,YAAA1oD,EAAAv3I,UAAAsC,GACAkvV,GAAAj6M,EAAA,GAAAnnE,IAEAwhR,GAAA,SAAArkJ,EAAA18L,EAAAy3B,EAAA1jB,GACA,IAAA8rU,EAAAC,GAAA9/U,EAAA08L,EAAA3oL,GACAitU,EAAAZ,GAAApgV,EAAAy3B,EAAAC,gBACAupT,EAAAd,GAAAJ,GAAAF,EAAA1tU,aACA+uU,EAAA,EAAA18C,EAAA,EACAjlO,EAAAv/D,EAAAw/D,UACA2hR,EAAA,SAAAhnL,GACA,IAAA2xH,EAAA/Y,GAAAP,eAAA/6O,GACAqvQ,EAAAlsB,GAAA56Q,EAAAw/D,WACAsuO,EAAA3zI,IAAA+mL,EAAAp6C,EAAArnO,KAAAqsN,GAAAgb,EAAAtqS,KAAAsvR,GACA,OAAAgiB,GAAAsyC,GAAApgV,EAAA8tS,EAAAjuO,aAAAmhR,GAEA,OAAAG,EAAAD,GACAL,GAAAG,EAAAC,EAAA1hR,GACO4hR,EAAA38C,GACPs8C,GAAAE,EAAAC,EAAA1hR,EAAAv/D,GAEA4gV,GAAAI,EAAAC,EAAA1hR,EAAA9nC,IAEA2pT,GAAA,CACAzB,kBACAoB,iBACAV,mBACAF,iBACAh7F,UAAA46F,IAGAsB,GAAA,SAAAltU,EAAAmT,GACA,OAAAmhK,GAAA16K,OAAAoG,IAAA,MAAAA,EAAAkmB,UAAA/S,EAAA,IAEAg6T,GAAA,SAAA7pT,EAAAz4B,GACA,IAAAmV,EAAAmT,EACAnT,EAAAsjB,EAAAC,eACApQ,EAAAmQ,EAAAwB,YACA,IAAAsoT,EAAA,SAAA5+E,GACA,OAAAxuP,EAAAwuP,IAAA,IAAAxuP,EAAAwuP,GAAAz6P,UAcA,OAZA,IAAAiM,EAAAjM,WACAof,EAAA,EACAtoB,IAAAqC,QAAA,UAAsC,KAC7BkgV,EAAA,qBACTviV,IAAAqC,QAAA,gBAEAimB,EAAAnT,EAAA9tB,OACA2Y,IAAAqC,QAAA,iBAAqC,KAC5BkgV,EAAA,iBACTviV,IAAAqC,QAAA,qBAAsC,YAGtCrC,GAEAwiV,GAAA,SAAA/pT,EAAAjxC,GACA,IAAA2tB,EAAAmT,EAgBA,OAfAnT,EAAAsjB,EAAAC,eACApQ,EAAAmQ,EAAAwB,YACA,IAAA9kB,EAAAjM,UAAAuvB,EAAA8B,YACA,MAAAplB,EAAA/G,KAAAka,IACAnT,EAAAgjQ,WAAA7vP,EAAA,GACA,cAAAxmB,KAAAta,KACAA,GAAA,MAES,MAAA2tB,EAAA/G,KAAAka,EAAA,KACTnT,EAAAgjQ,WAAA7vP,EAAA,KACA,cAAAxmB,KAAAta,KACAA,EAAA,IAAAA,KAIAA,GAGAi7V,GAAAh5J,GAAAk1D,eAAA,CACA,KACA,OAEA+jG,GAAA,SAAAtlR,EAAAxoD,GACA,IAAA6jB,EAAA2kC,EAAA5kC,UAAAkrC,SACAvuD,EAAAsjB,EAAAC,eACApQ,EAAAmQ,EAAAwB,YACAxB,EAAA8B,WAAA8nT,GAAAltU,EAAAmT,IAAAmhK,GAAA16K,OAAAoG,KACAA,EAAA++S,WAAA5rS,EAAA,OACAnT,EAAAgjQ,WAAA7vP,EAAA,GACAmQ,EAAAQ,SAAA9jB,EAAAmT,GACAmQ,EAAAa,OAAAnkB,EAAAmT,GACA80C,EAAA5kC,UAAA2nI,OAAA1nI,IAEA2kC,EAAA5kC,UAAAgS,WAAA51B,IAEA+tU,GAAA,SAAAvlR,EAAA51E,EAAAynB,GACA,WAAAA,EAAA0G,aAAA,kBACA1G,aAAAuE,aAAA4pD,EAAAp8D,IAAA4qL,eAAApkM,GAAAynB,OACO,CACP,IAAArO,EAAAqO,EAAAkE,WACA6mQ,EAAA/qQ,EAAA+4K,WACApnL,OAAAo5Q,GAAA,OAAAp5Q,EAAAgO,SACAwuD,EAAAp8D,IAAAgmQ,QAAA/3P,EAAAznB,GAEAk7V,GAAAtlR,EAAA51E,KAIAo7V,GAAA,SAAA5hV,EAAAigE,GACAt0E,EAAAD,KAAAsU,EAAA4oL,UAAA3oH,EAAA,UAAAx1E,IAAA4V,GAAAZ,SAAA/U,KAAAqpT,GAAAF,sBAEAguC,GAAA,SAAAzlR,EAAAzpE,GACA,IAAAi9U,EAAAxzQ,EAAAjiE,OAAA81P,wBACAjwP,EAAAo8D,EAAAp8D,IACA,GAAArN,EAAA,CACA,IAAAmvV,EAAA1lR,EAAAhuD,UAAA2zU,EAAA,IAAAnnC,GAAA56S,GACAtY,GAAAgD,KAAAsV,EAAAu5E,OAAA,iCAAA35E,GACA,QAAAoiV,EAAApiV,EAAAqO,WAA8C+zU,OAAAF,EAAiCE,IAAA/zU,WAC/E2hU,EAAAhwU,EAAAgO,SAAAlM,gBAAAqgV,EAAA5qH,QAAA6qH,EAAApiV,IACAI,EAAAsT,OAAA1T,GAAA,OAMAqiV,GAAA,SAAAluU,GACA,IAAAnU,EAAAmU,EACA,MAAAnU,IAAA2iP,OACA,IAAA3iP,EAAA7S,MACA6S,EAAAue,KAAA,0BAIA+jU,GAAA,SAAAjiR,GACAv4E,GAAAgD,KAAAu1E,EAAAgjL,qBAAA,cAAAhjL,GACAA,EAAAlrD,gBAAA,wBAGAotU,GAAA,SAAAviV,GACA,QAAAA,EAAA+U,aAAA,sBAEAytU,GAAA,SAAAhmR,EAAAx8D,GACA,OAAAA,IAAAw8D,EAAAjiE,OAAA+1P,wBAAAtwP,EAAAgO,WAEAy0U,GAAA,SAAAjmR,EAAA9pD,GACA,IAAAgwU,EAAAjtJ,EAAAktJ,EAEA3iV,EAAAo5Q,EADAh5Q,EAAAo8D,EAAAp8D,IAAAw3B,EAAA4kC,EAAA5kC,UAEAgrT,EAAA,SAAA5iV,GAEA,IADA,IAAA++B,EAAAy9B,EAAAhuD,UACcxO,OAAA++B,EAAuB/+B,IAAAqO,WACrC,aAAAmuD,EAAAp8D,IAAA2+D,mBAAA/+D,GACA,OAAAA,EAGA,aAEA,GAAA0S,EAAA,CAKA,GAFA8pD,EAAA5kC,UAAAqsO,eAAAvxP,GACAgwU,EAAAE,EAAAlwU,GACAgwU,EAGA,OAFAtiV,EAAAsT,OAAAhB,QACAklB,EAAA+hD,OAAA+oQ,GAGA,IAAA7qT,EAAAz3B,EAAAmhE,YACAvhE,EAAA0S,EAAA81K,gBACAxoL,GAAA,IAAAA,EAAAsI,UACAuvB,EAAAQ,SAAAr4B,IAAAy6B,UAAAh0C,QACAy6P,GAAA/+O,KACAi3Q,EAAA1mQ,EAAAR,YACAknQ,GAAA,IAAAA,EAAA9wQ,WACAtI,EAAA88Q,WAAA1D,EAAA5rQ,MACA4rQ,EAAA/qQ,WAAAsF,YAAAylQ,OAIAvhP,EAAAS,eAAA5lB,GACAmlB,EAAAY,aAAA/lB,IAEA,IAAAmwU,EAAA,SAAAhrT,GACA,IAAAq0P,EAAA/Y,GAAAP,eAAA/6O,GACAqvQ,EAAAlsB,GAAAx+M,EAAAhuD,WAEA,GADA09Q,EAAAgb,EAAAtqS,KAAAsvR,GACAA,EACA,OAAAA,EAAAvZ,WAGAl9E,EAAAr1L,EAAA4oL,UAAAt2K,EAAAtS,EAAA0+D,SACA1+D,EAAAsT,OAAAhB,GACA+iL,GAAAr1L,EAAAqoL,QAAAgN,KACAj5H,EAAAo4H,EAAAa,GAAAliL,QACAskB,EAAAQ,SAAAo9J,EAAA,GACA59J,EAAAa,OAAA+8J,EAAA,GACAosJ,GAAApsJ,IAAA8sJ,GAAA9sJ,MAAAktJ,EAAAE,EAAAhrT,IAIAz3B,EAAAoe,IAAAi3K,EAAAr1L,EAAAsuB,OAAA,MAAiD28J,iBAAA,QAHjDxzJ,EAAA8qT,EACAviV,EAAAsT,OAAA+hL,KAKA79J,EAAA2nI,OAAA1nI,KAEAirT,GAAA,SAAAtmR,EAAA51E,EAAA0zF,GACA,IAAA0zG,EAAA8O,EAAAzuL,EAAAsxD,EAAAxrD,EAAA7tB,EACAosB,EAAAmlB,EAAA73B,EAAA+iV,EAAAhwV,EACA6kC,EAAA4kC,EAAA5kC,UAAAx3B,EAAAo8D,EAAAp8D,IAeA,GAdA,QAAAc,KAAAta,KACAA,EAAA86V,GAAA9pT,EAAAkrC,SAAAl8E,IAEAonM,EAAAxxH,EAAAwxH,OACAj7L,EAAAunF,EAAAvnF,MACA+pM,EAAAksF,GAAA,CAA+B/zL,SAAAz4B,EAAAa,SAAA43B,UAAqCz4B,EAAAjiE,QACpEwoV,EAAA,yEACAz8V,EAAA,CACA0tB,QAAAptB,EACA6wF,OAAA,OACA7/C,WAAA,EACA0vK,MAAAhtH,EAAAgtH,OAEAhhN,EAAAk2E,EAAAya,KAAA,mBAAA3wF,GACAA,EAAAykG,qBACAvuB,EAAAya,KAAA,cACAjjE,QAAA1tB,EAAA0tB,QACAyjE,OAAA,OACA7/C,WAAA,EACA0vK,MAAAhtH,EAAAgtH,YALA,CASA1gN,EAAAN,EAAA0tB,SACiC,IAAjCptB,EAAAkC,QAAA,cACAlC,GAAA,YAEAA,IAAA6a,QAAA,cAAwCshV,GACxClrT,EAAAD,EAAAkrC,SACA,IAAAkgR,EAAAnrT,EAAAC,iBAAAD,EAAAy2R,cAAAz2R,EAAAy2R,gBAAA,MACA//S,EAAAiuD,EAAAhuD,UACAw0U,IAAAz0U,GAAAqpB,EAAAw4G,eACAhwI,EAAA0+D,QAAAvwD,EAAAgE,aAAAiwU,GAAAhmR,EAAAjuD,EAAAgE,aAAAnS,EAAAqoL,QAAAl6K,EAAAgE,cACAslB,EAAAz3B,EAAAmhE,YACA1pC,EAAAQ,SAAA9pB,EAAAgE,WAAA,GACAslB,EAAAa,OAAAnqB,EAAAgE,WAAA,GACAqlB,EAAA2nI,OAAA1nI,IAGAD,EAAAw4G,gBACA5zE,EAAA5kC,UAAA2nI,OAAAw/I,GAAAz+O,UAAA9D,EAAA5kC,UAAAkrC,WACAtG,EAAA0D,SAAA2Y,YAAA,kBACAjyF,EAAAg7V,GAAAplR,EAAA5kC,UAAAkrC,SAAAl8E,IAEAynB,EAAAupB,EAAAqoC,UACA,IAAA2oP,EAAA,CACA7lP,QAAA10D,EAAAL,SAAAlM,cACA0L,KAAA8sE,EAAA9sE,KACAm8C,QAAA,GAGA,GADAx1C,EAAA65K,EAAAttH,MAAA95E,EAAAgiU,IACA,IAAAtuO,EAAAgtH,OAAAk6I,GAAAzB,eAAAvjR,EAAAjiE,OAAA4Z,IAAAqtU,GAAAf,gBAAArgV,EAAAiO,GAIA,OAHAwpB,EAAA2pT,GAAAL,cAAArkJ,EAAA18L,EAAAo8D,EAAA5kC,UAAAkrC,SAAA3uD,GACAqoD,EAAA5kC,UAAA2nI,OAAA1nI,QACA2kC,EAAAya,KAAA,aAAA3wF,GAKA,GAFA+7V,GAAAluU,GACAnU,EAAAmU,EAAAizK,UACA,eAAApnL,EAAAue,KAAA,MAEA,IADA7L,EAAA1S,EACAA,IAAA6/D,KAA8B7/D,EAAMA,IAAA2iP,MAAA,GACpC,OAAA3iP,EAAA7S,OAAAiT,EAAA0+D,QAAA9+D,EAAA/S,MAAA,CACAuvE,EAAAjiE,OAAAm2P,aAAA1wP,EAAAgS,OAAA/kB,KAAA,SACA+S,EAAAgS,OAAA23C,OAAAj3C,EAAA1S,EAAA,OAAAA,EAAA/S,MAEA,MAKA,GADAuvE,EAAAqyN,oBAAA8e,wBAAAt/R,GACAu6S,EAAAprK,QAGO,CACPskM,GAAAtlR,EAAAumR,GACA10U,EAAAupB,EAAAqoC,UACAN,EAAAnD,EAAAhuD,UACA,IAAAH,EAAA/F,SACA+F,EAAArO,EAAA2/D,EAEA3/D,EAAAqO,EAEA,MAAArO,IAAA2/D,EACAtxD,EAAArO,EACAA,IAAAqO,WAEAznB,EAAAynB,IAAAsxD,IAAAjgE,UAAAU,EAAA8mQ,aAAA74P,GACAznB,EAAAk2M,EAAAC,UAAA/O,EAAAttH,MAAA95E,EAAA6a,QAAA,+DACA,OAAAq7L,EAAAC,UAAA5oL,OAEA9F,IAAAsxD,EACAv/D,EAAAgmQ,QAAAzmM,EAAA/4E,GAEAwZ,EAAA+mQ,aAAA94P,EAAAznB,QAtBAA,EAAAk2M,EAAAC,UAAA5oL,GACA4tU,GAAAvlR,EAAA51E,EAAAynB,GAwBA4zU,GAAAzlR,EAAAzpE,GACA0vV,GAAAjmR,EAAAp8D,EAAAxP,IAAA,eACA0xV,GAAA9lR,EAAAhuD,WACAwzU,GAAAxlR,EAAAp8D,IAAAo8D,EAAA5kC,UAAAd,YACA0lC,EAAAya,KAAA,aAAA3wF,GACAk2E,EAAA23J,cAEA8uH,GAAA,SAAAr8V,GACA,IAAA0zF,EACA,wBAAA1zF,GACA0zF,EAAAxyF,GAAAuoI,OAAA,CACAi3E,MAAA1gN,EAAA0gN,MACA95L,KAAA,CAAiB85L,MAAA1gN,EAAA0gN,QACR1gN,GACT,CACAotB,QAAAptB,EAAAotB,QACAsmE,YAGA,CACAtmE,QAAAptB,EACA0zF,QAAA,KAGA4oQ,GAAA,SAAA1mR,EAAA51E,GACA,IAAAgO,EAAAquV,GAAAr8V,GACAk8V,GAAAtmR,EAAA5nE,EAAAof,QAAApf,EAAA0lF,UAEA6oQ,GAAA,CAAyBhC,cAAA+B,IAEzBE,GAAA,SAAA5mR,EAAA45H,GACA55H,EAAA0D,SAAA2Y,YAAAu9G,GAAA,SAEAitJ,GAAA,SAAA7mR,GACA8wQ,GAAAv3I,gBAAAv5H,GAAA,IAEO2qQ,GAAApxI,gBAAAv5H,GAAA,IAEAgrQ,GAAAzxI,gBAAAv5H,GAAA,IAEA0rQ,GAAAnyI,gBAAAv5H,GAAA,IAEAmoQ,GAAA5uI,gBAAAv5H,GAAA,IAEAgvQ,GAAAz1I,gBAAAv5H,IAEA6oQ,GAAAtvI,gBAAAv5H,GAAA,IAEAksQ,GAAA3yI,gBAAAv5H,GAAA,KAGP4mR,GAAA5mR,EAAA,UACAomQ,GAAAP,cAAA7lQ,KAGA8mR,GAAA,SAAA9mR,GACA2qQ,GAAApxI,gBAAAv5H,GAAA,IAEOgrQ,GAAAzxI,gBAAAv5H,GAAA,IAEA0rQ,GAAAnyI,gBAAAv5H,GAAA,IAEAmoQ,GAAA5uI,gBAAAv5H,GAAA,IAEAgvQ,GAAAz1I,gBAAAv5H,IAEA6oQ,GAAAtvI,gBAAAv5H,GAAA,IAEAksQ,GAAA3yI,gBAAAv5H,GAAA,IAGP4mR,GAAA5mR,EAAA,kBAGA+mR,GAAA,CACAF,iBACAC,yBAGAE,GAAA,SAAAnlG,EAAA/uF,EAAAjvF,GACA,IAAAojR,EAAA,SAAApjR,GACA,OAAAhgD,GAAAggD,EAAAg+K,IAEAvwO,EAAA,SAAAuyD,GACA,OAAAz2E,GAAA6W,GAAAZ,QAAAyvJ,GAAAjvF,IAEA,OAAAzxD,GAAAnO,GAAAZ,QAAAwgE,GAAA,SAAAA,GACA,OAAAojR,EAAApjR,GAAAj2E,UACO0jB,GAAA/iB,KAAA04V,IAEP/iM,GAAA,SAAAtkJ,EAAAukJ,GACA,IAAAC,EAAAvqI,KAAA2mG,IAAA,GAAA2jC,GACA,OAAAtqI,KAAA68D,MAAA92E,EAAAwkJ,MAEAC,GAAA,SAAAC,EAAAH,GACA,mBAAAz/I,KAAA4/I,GACAJ,GAAA,GAAA98H,SAAAk9H,EAAA,OAAAH,GAAA,QAEAG,GAEA4iM,GAAA,SAAArkM,GACA,OAAAA,EAAA59I,QAAA,gBAAAA,QAAA,cAEAkiV,GAAA,SAAAtlG,EAAAh+K,GACA,OAAAt0E,EAAAD,KAAAw8Q,GAAAv4L,IAAA0Y,SAAApoB,EAAAg+K,GAAA,KAEAulG,GAAA,SAAAvlG,GACA,gBAAA/uF,EAAAjvF,GACA,OAAAt0E,EAAAD,KAAAu0E,GAAAx1E,IAAA4V,GAAAZ,SAAA3U,OAAAm3E,IAAAt3E,KAAA,SAAAqd,GACA,OAAAo7U,GAAAnlG,EAAA/uF,EAAAlnJ,EAAAhI,OAAAzV,GAAAg5V,GAAAtlG,EAAAj2O,EAAAhI,UACS/V,MAAA,MAGTw5V,GAAA,CACAC,YAAAF,GAAA,aACAG,cAAA59V,EAAAu9V,GAAAE,GAAA,gBACA/iM,SAGAmjM,GAAA,SAAAxnR,GACA,OAAAu/M,GAAAC,gBAAAx/M,EAAAhuD,WAAA3jB,IAAA,SAAAkhF,GACA,IAAAx3D,EAAAw3D,EAAAx3D,YACA,OAAAs0K,GAAA16K,OAAAoG,KAAAlG,WAAAkG,KAGA0vU,GAAA,SAAApsT,EAAAkH,GACA,OAAAlH,EAAAC,iBAAAiH,GAAA,IAAAlH,EAAAwB,aAEA6qT,GAAA,SAAA1nR,GACA,OAAAzwE,EAAAD,KAAA0wE,EAAA5kC,UAAAkrC,UAAA/3E,KAAA,SAAA8sC,GACA,IAAAkH,EAAAy9B,EAAAhuD,UACA,OAAAy1U,GAAApsT,EAAAkH,GAAAhzC,EAAArC,OAAAqC,EAAAD,KAAA0wE,EAAA5kC,UAAAd,UAAA,OAGAqtT,GAAA,SAAA3nR,EAAA51E,GACA,gBAAAsa,KAAAta,GAAA,CACA,IAAAw9V,EAAAxgU,SAAAh9B,EAAA,IACA,GAAAw9V,GAAA,GAAAA,GAAA,GACA,IAAAr/B,EAAAhuO,GAAA2vM,mBAAAlqN,GACA6nR,EAAAttQ,GAAA4vM,mBAAAnqN,GACA,OAAA6nR,EACAA,EAAAD,EAAA,IAAAx9V,EAEAm+T,EAAAq/B,EAAA,IAAAx9V,EAGA,OAAAA,EAGA,OAAAA,GAGA09V,GAAA,SAAA/kM,GACA,IAAAD,EAAAC,EAAAhnI,MAAA,WACA,OAAA1tB,EAAAy0J,EAAA,SAAAC,GACA,WAAAA,EAAAz2J,QAAA,MAAA64M,GAAApiD,EAAA,MAAAoiD,GAAApiD,EAAA,KAGAA,EAFA,IAAAA,EAAA,MAIO7tJ,KAAA,MAEP6yV,GAAA,SAAA/nR,EAAA51E,GACA,IAAA24J,EAAA4kM,GAAA3nR,EAAA51E,GACA41E,EAAAsb,UAAA3rB,OAAA,YAA2CvlE,MAAA09V,GAAA/kM,KAC3C/iF,EAAAub,eAEAysQ,GAAA,SAAAhoR,GACA,OAAA0nR,GAAA1nR,GAAAtyE,KAAA,WACA,OAAA85V,GAAAxnR,GAAA3xE,IAAA,SAAAm4V,GACA,OAAAa,GAAAE,cAAAvnR,EAAAhuD,UAAAw0U,KACS34V,MAAA,KACF,SAAA24V,GACP,OAAAa,GAAAE,cAAAvnR,EAAAhuD,UAAAw0U,MAGAyB,GAAA,SAAAjoR,EAAA51E,GACA41E,EAAAsb,UAAA3rB,OAAA,YAA2CvlE,MAAAu9V,GAAA3nR,EAAA51E,KAC3C41E,EAAAub,eAEA2sQ,GAAA,SAAAloR,GACA,OAAA0nR,GAAA1nR,GAAAtyE,KAAA,WACA,OAAA85V,GAAAxnR,GAAA3xE,IAAA,SAAAm4V,GACA,OAAAa,GAAAC,YAAAtnR,EAAAhuD,UAAAw0U,KACS34V,MAAA,KACF,SAAA24V,GACP,OAAAa,GAAAC,YAAAtnR,EAAAhuD,UAAAw0U,MAIA2B,GAAA78V,GAAAgD,KACA85V,GAAA98V,GAAA+C,IAAAg6V,GAAA/8V,GAAAivM,QACA+tJ,GAAA,WACA,SAAAA,EAAAtoR,GACA7zE,KAAAixJ,SAAA,CACAxiJ,MAAA,GACAu7E,KAAA,GACA/rF,MAAA,IAEA+B,KAAA6zE,SACA7zE,KAAAo8V,cAAAvoR,GAqYA,OAnYAsoR,EAAAt8V,UAAAqwF,YAAA,SAAAu9G,EAAA5xH,EAAA59E,EAAAN,GACA,IAAA2Q,EAAA+tV,EAAA5tV,GAAA,EACA1L,EAAA/C,KACA,IAAA+C,EAAA8wE,OAAA81D,QAAA,CAaA,GAVA,mEAAApxH,KAAAk1L,IAAA9vM,KAAA2+V,WAGA36D,GAAA5/O,QAAAh/C,EAAA8wE,QAFA9wE,EAAA8wE,OAAA/wD,QAIAnlB,EAAAoF,EAAA8wE,OAAAya,KAAA,qBACAm/G,UACA5xH,KACA59E,UAEAN,EAAAykG,qBACA,SAGA,GADAi6P,EAAA5uJ,EAAAt0L,cACA7K,EAAAvL,EAAAkuJ,SAAAjnE,KAAAqyQ,GAOA,OANA/tV,EAAA+tV,EAAAxgR,EAAA59E,GACA8E,EAAA8wE,OAAAya,KAAA,eACAm/G,UACA5xH,KACA59E,WAEA,EAaA,GAXA+9V,GAAAh8V,KAAA6zE,OAAA2vG,QAAA,SAAA5jL,GACA,GAAAA,EAAAswF,aAAAtwF,EAAAswF,YAAAu9G,EAAA5xH,EAAA59E,GAOA,OANA8E,EAAA8wE,OAAAya,KAAA,eACAm/G,UACA5xH,KACA59E,UAEAwQ,GAAA,GACA,IAGAA,EACA,OAAAA,EAEA,GAAA1L,EAAA8wE,OAAA6yN,OAAA3jS,EAAA8wE,OAAA6yN,MAAAx2M,aAAAntF,EAAA8wE,OAAA6yN,MAAAx2M,YAAAu9G,EAAA5xH,EAAA59E,GAMA,OALA8E,EAAA8wE,OAAAya,KAAA,eACAm/G,UACA5xH,KACA59E,WAEA,EAEA,IACAwQ,EAAA1L,EAAA8wE,OAAA0D,SAAA2Y,YAAAu9G,EAAA5xH,EAAA59E,GACS,MAAAmqG,IAET,QAAA35F,IACA1L,EAAA8wE,OAAAya,KAAA,eACAm/G,UACA5xH,KACA59E,WAEA,KAIAk+V,EAAAt8V,UAAAu0K,kBAAA,SAAAq5B,GACA,IAAAn/L,EACA,IAAAtO,KAAA6zE,OAAAqwN,OAAAxsO,aAAA13D,KAAA6zE,OAAA81D,QAAA,CAIA,GADA8jE,IAAAt0L,cACA7K,EAAAtO,KAAAixJ,SAAAxiJ,MAAAg/L,GACA,OAAAn/L,EAAAm/L,GAEA,IACA,OAAAztM,KAAA6zE,OAAA0D,SAAA68F,kBAAAq5B,GACS,MAAArlG,IAET,WAEA+zP,EAAAt8V,UAAAo3J,kBAAA,SAAAw2C,GACA,IAAAn/L,EACA,IAAAtO,KAAA6zE,OAAAqwN,OAAAxsO,aAAA13D,KAAA6zE,OAAA81D,QAAA,CAIA,GADA8jE,IAAAt0L,cACA7K,EAAAtO,KAAAixJ,SAAAhzJ,MAAAwvM,GACA,OAAAn/L,EAAAm/L,GAEA,IACA,OAAAztM,KAAA6zE,OAAA0D,SAAA0/E,kBAAAw2C,GACS,MAAArlG,OAGT+zP,EAAAt8V,UAAA08V,YAAA,SAAAC,EAAAh4V,GACA,IAAAzB,EAAA/C,KACAwE,KAAA,OACAw3V,GAAAQ,EAAA,SAAAnsQ,EAAAo9G,GACAuuJ,GAAAvuJ,EAAAt0L,cAAAyW,MAAA,cAAA69K,GACA1qM,EAAAkuJ,SAAAzsJ,GAAAipM,GAAAp9G,OAIA8rQ,EAAAt8V,UAAA0vF,WAAA,SAAAk+G,EAAAp9G,EAAA35E,GACA,IAAA4zO,EAAAtqP,KACAytM,IAAAt0L,cACAnZ,KAAAixJ,SAAAjnE,KAAAyjH,GAAA,SAAAA,EAAA5xH,EAAA59E,EAAAN,GACA,OAAA0yF,EAAAtwF,KAAA2W,GAAA4zO,EAAAz2K,OAAAgI,EAAA59E,EAAAN,KAGAw+V,EAAAt8V,UAAA8tV,sBAAA,SAAAlgJ,GAEA,GADAA,IAAAt0L,cACAnZ,KAAAixJ,SAAAjnE,KAAAyjH,GACA,SAEA,IACA,OAAAztM,KAAA6zE,OAAA0D,SAAAo2Q,sBAAAlgJ,GACS,MAAArlG,IAET,UAEA+zP,EAAAt8V,UAAA6tM,qBAAA,SAAAD,EAAAp9G,EAAA35E,GACA,IAAA4zO,EAAAtqP,KACAytM,IAAAt0L,cACAnZ,KAAAixJ,SAAAxiJ,MAAAg/L,GAAA,WACA,OAAAp9G,EAAAtwF,KAAA2W,GAAA4zO,EAAAz2K,UAGAsoR,EAAAt8V,UAAAkwK,qBAAA,SAAA09B,EAAAp9G,EAAA35E,GACA,IAAA4zO,EAAAtqP,KACAytM,IAAAt0L,cACAnZ,KAAAixJ,SAAAhzJ,MAAAwvM,GAAA,WACA,OAAAp9G,EAAAtwF,KAAA2W,GAAA4zO,EAAAz2K,UAGAsoR,EAAAt8V,UAAA48V,iBAAA,SAAAhvJ,GAEA,OADAA,IAAAt0L,gBACAnZ,KAAAixJ,SAAAjnE,KAAAyjH,IAEA0uJ,EAAAt8V,UAAA68V,kBAAA,SAAAjvJ,EAAA5xH,EAAA59E,GAOA,YANA8D,IAAA85E,IACAA,GAAA,QAEA95E,IAAA9D,IACAA,EAAA,MAEA+B,KAAA6zE,OAAA0D,SAAA2Y,YAAAu9G,EAAA5xH,EAAA59E,IAEAk+V,EAAAt8V,UAAA88V,cAAA,SAAAr4V,GACA,OAAAtE,KAAA6zE,OAAAsb,UAAAvmF,MAAAtE,IAEA63V,EAAAt8V,UAAA8yK,aAAA,SAAAruK,EAAArG,GACA+B,KAAA6zE,OAAAsb,UAAA3rB,OAAAl/D,EAAArG,EAAA,CAAoDA,cAAe8D,GACnE/B,KAAA6zE,OAAAub,eAEA+sQ,EAAAt8V,UAAA+8V,eAAA,SAAAp4V,GACAxE,KAAA68V,kBAAA78V,KAAA6zE,OAAA5kC,UAAA44J,YAAArjM,IAEA23V,EAAAt8V,UAAA46S,iBAAA,WACAz6S,KAAA6zE,OAAA5kC,UAAA64J,eAAA9nM,KAAA68V,oBAEAV,EAAAt8V,UAAAu8V,cAAA,SAAAvoR,GACA,IAAA9wE,EAAA/C,KACAA,KAAAu8V,YAAA,CACAO,uCAAA,aAEAC,kCAAA,WACAlpR,EAAAob,YAAAp5D,OAEAmnU,iBAAA,SAAAvvJ,GACA,IACAqtD,EADAnkP,EAAAk9D,EAAA0D,SAEA,IACAx0E,EAAA25V,kBAAAjvJ,GACa,MAAArlG,GACb0yJ,GAAA,EAKA,GAHA,UAAArtD,GAAA92L,EAAAsmV,oBAAAxvJ,KACAqtD,GAAA,GAEAA,IAAAnkP,EAAAg3U,sBAAAlgJ,GAAA,CACA,IAAA7uM,EAAAi1E,EAAA33C,UAAA,sHACAq8N,GAAA53K,MACA/hF,IAAAka,QAAA,iBAEA+6D,EAAAggI,oBAAA/yJ,KAAA,CACAvpC,KAAA3Y,EACA4F,KAAA,YAIA27B,OAAA,WACA,GAAA0zC,EAAA5kC,UAAAw4G,cAAA,CACA,IAAA/vE,EAAA7D,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAA,KACAupC,GACA7D,EAAAp8D,IAAAsT,OAAA2sD,GAAA,QAIA7D,EAAAsb,UAAApkE,OAAA,SAEAmyU,iEAAA,SAAAzvJ,GACA,IAAA7yC,EAAA6yC,EAAA99K,UAAA,GACA,SAAAirI,IACAA,EAAA,WAEAohM,GAAA,4BAAApsU,MAAA,cAAAtrB,GACAs2J,IAAAt2J,GACAuvE,EAAAsb,UAAApkE,OAAA,QAAAzmB,KAGA,SAAAs2J,GACA73J,EAAA4vK,aAAA,QAAA/X,IAGAuiM,wCAAA,SAAA1vJ,GACA,IAAA26H,EAAAg1B,EACAr6V,EAAA25V,kBAAAjvJ,GACA26H,EAAAv0P,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAqoC,UAAA,SACA8wP,IACAg1B,EAAAh1B,EAAA1iT,WACA,2BAAAnN,KAAA6kV,EAAA/3U,YACAtiB,EAAA65V,iBACA/oR,EAAAp8D,IAAAmY,MAAAwtU,EAAAh1B,GACArlU,EAAA03S,sBAIA4iD,4DAAA,SAAA5vJ,GACA1qM,EAAA4vK,aAAA86B,IAEA6vJ,wBAAA,SAAA7vJ,EAAA5xH,EAAA59E,GACA8E,EAAA4vK,aAAA86B,EAAAxvM,IAEAs/V,SAAA,SAAA9vJ,EAAA5xH,EAAA59E,GACA29V,GAAA/nR,EAAA51E,IAEAu/V,SAAA,SAAA/vJ,EAAA5xH,EAAA59E,GACA69V,GAAAjoR,EAAA51E,IAEAu2T,aAAA,SAAA/mH,GACA55H,EAAAsb,UAAApkE,OAAA0iL,IAEAgwJ,cAAA,WACA16V,EAAA4vK,aAAA,eAEA+qL,YAAA,SAAAjwJ,EAAA5xH,EAAA59E,GACA,OAAA8E,EAAA4vK,aAAA10K,GAAA,MAEA0/V,WAAA,WACA,IAAA/1J,EAAA/zH,EAAA5kC,UAAA44J,cACAh0H,EAAA5yB,WAAA4yB,EAAAxD,cACAwD,EAAA5kC,UAAA64J,eAAAF,IAEAg2J,cAAA,SAAAnwJ,EAAA5xH,EAAA59E,GACA,IAAAoZ,EAAApZ,GAAA41E,EAAA5kC,UAAAqoC,UACAjgE,IAAAw8D,EAAAhuD,YACA9iB,EAAA65V,iBACA/oR,EAAAp8D,IAAAsT,OAAA1T,GAAA,GACAtU,EAAA03S,qBAGAojD,mBAAA,SAAApwJ,EAAA5xH,EAAA59E,GACA,IAAAm+Q,EAAA,EACAvoM,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAqoC,UAAA,SAAAjgE,GACA,OAAAA,EAAAsI,UAAAy8P,MAAAn+Q,EAEA,OADA41E,EAAA5kC,UAAA+hD,OAAA35E,IACA,GAEaw8D,EAAAhuD,YAEbi4U,cAAA,SAAArwJ,EAAA5xH,EAAA59E,GACA41E,EAAA5kC,UAAA+hD,OAAA/yF,IAEA8/V,iBAAA,SAAAtwJ,EAAA5xH,EAAA59E,GACAu8V,GAAAhC,cAAA3kR,EAAA51E,IAEA+/V,iBAAA,SAAAvwJ,EAAA5xH,EAAA59E,GACA41E,EAAA5kC,UAAAgS,WAAA,mBACA,IAAA51B,EAAAwoD,EAAAxD,aACAwD,EAAA5yB,WAAA51B,EAAAvS,QAAA,8BACA,OAAA7a,MAGAggW,iBAAA,SAAAxwJ,EAAA5xH,EAAA59E,GACAgsV,GAAAjpR,OAAA6S,EAAA51E,IAEAigW,gBAAA,SAAAzwJ,EAAA5xH,EAAA59E,GACA8E,EAAA4vK,aAAA10K,IAEAkgW,cAAA,SAAA1wJ,EAAA5xH,EAAA59E,GACA41E,EAAA5yB,WAAAhjD,IAEAmgW,iBAAA,SAAA3wJ,GACA/0G,GAAA7kB,EAAA45H,IAEA4wJ,WAAA,aAEAC,qBAAA,WACAzqR,EAAAqc,YAAA,iCAEAquQ,mBAAA,WACA1qR,EAAA+/F,WAAA//F,EAAA+/F,UACA//F,EAAA23J,aAEAgzH,kBAAA,SAAA/wJ,EAAA5xH,EAAA59E,GACA41E,EAAAqc,YAAA,sBAAAjyF,EAAA6a,QAAA,mBAAwF+6D,EAAA5kC,UAAAohC,WAAA,CAAiCye,OAAA,YAEzH2vQ,cAAA,SAAAhxJ,EAAA5xH,EAAA59E,GACA,IAAAomC,EACA,kBAAApmC,IACAA,EAAA,CAAuBu9L,KAAAv9L,IAEvBomC,EAAAwvC,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAqoC,UAAA,KACAr5E,EAAAu9L,KAAAv9L,EAAAu9L,KAAA1iL,QAAA,YACAurB,GAAApmC,EAAAu9L,MACA3nH,EAAAsb,UAAApkE,OAAA,QAEA9sB,EAAAu9L,MACA3nH,EAAAsb,UAAApxF,MAAA,OAAAE,EAAAomC,IAGA4pT,UAAA,WACA,IAAAyQ,EAAA7qR,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAd,WAAA+xJ,GAAAljD,uBACA,GAAA0hN,EAAA,CACA,IAAAxvT,EAAA2kC,EAAAp8D,IAAAmhE,YACA1pC,EAAAqjM,mBAAAmsH,GACA7qR,EAAA5kC,UAAA2nI,OAAA1nI,KAGAyvT,OAAA,WACA/D,GAAAF,cAAA7mR,IAEA+qR,cAAA,WACAhE,GAAAD,qBAAA9mR,IAEAgrR,eAAA,WACAhrR,EAAA5yB,WAAA,KAEA69S,gBAAA,SAAArxJ,EAAA5xH,EAAA59E,GAEA,OADA0qV,GAAA3nR,OAAA6S,EAAA51E,IACA,KAGA,IAAA8gW,EAAA,SAAAz6V,GACA,kBACA,IAAAmuC,EAAAohC,EAAA5kC,UAAAw4G,cAAA,CAAA5zE,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAqoC,UAAAzD,EAAAp8D,IAAA0+D,UAAAtC,EAAA5kC,UAAA4xJ,oBACAziL,EAAA69U,GAAAxpT,EAAA,SAAAp7B,GACA,QAAAw8D,EAAAsb,UAAA2pE,UAAAzhJ,EAAA/S,KAEA,WAAA43V,GAAA99U,GAAA,KAGArb,EAAAw5V,YAAA,CACAyC,YAAAD,EAAA,aACAE,cAAAF,EAAA,eACAG,aAAAH,EAAA,cACAI,YAAAJ,EAAA,gBACA1B,4DAAA,SAAA5vJ,GACA,OAAA1qM,EAAA45V,cAAAlvJ,IAEAgwJ,cAAA,WACA,OAAA16V,EAAA45V,cAAA,eAEAhY,QAAA,WACA,OAAAjB,GAAA7vQ,IAEAspR,wCAAA,SAAA1vJ,GACA,IAAAx8K,EAAA4iD,EAAAp8D,IAAA4oL,UAAAxsH,EAAA5kC,UAAAqoC,UAAA,SACA,OAAArmD,IAAA,wBAAAw8K,GAAA,OAAAx8K,EAAAsxK,SAAA,sBAAAkL,GAAA,OAAAx8K,EAAAsxK,WAES,SACTx/L,EAAAw5V,YAAA,CACA6C,KAAA,WACAvrR,EAAAob,YAAAsvC,QAEA8gO,KAAA,WACAxrR,EAAAob,YAAAuvC,UAGAz7H,EAAAgtK,qBAAA,sBACA,OAAA8rL,GAAAhoR,IACS7zE,MACT+C,EAAAgtK,qBAAA,sBACA,OAAAgsL,GAAAloR,IACS7zE,OAETm8V,EA7YA,GAgZAmD,GAAAngW,GAAAmgJ,QAAA,0XACAigN,GAAA,WACA,SAAAA,EAAA7qR,GACA10E,KAAAw/V,SAAA,GACAx/V,KAAA00E,YAAA,GACA10E,KAAA0W,MAAA1W,KAAA00E,SAAAh+D,OAAA1W,KACAA,KAAAy/V,YAAAz/V,KAAA00E,SAAA+qR,aAAA3gW,EA6HA,OA3HAygW,EAAAG,SAAA,SAAAp7V,GACA,QAAAg7V,GAAAh7V,EAAA6U,gBAEAomV,EAAA1/V,UAAAyuF,KAAA,SAAAhqF,EAAA3G,GACA,IAAAwjB,EAAAzhB,EAAAo0G,EAAAzjB,EAyBA,GAxBA/rF,IAAA6U,cACAxb,KAAA,GACAA,EAAA6G,KAAAF,EACA3G,EAAAuL,SACAvL,EAAAuL,OAAAlJ,KAAA0W,OAEA/Y,EAAA8oB,iBACA9oB,EAAA8oB,eAAA,WACA9oB,EAAAykG,mBAAArjG,GAEApB,EAAA46F,gBAAA,WACA56F,EAAA+kL,qBAAA3jL,GAEApB,EAAAy7E,yBAAA,WACAz7E,EAAA4uQ,8BAAAxtQ,GAEApB,EAAAykG,mBAAAtjG,EACAnB,EAAA+kL,qBAAA5jL,EACAnB,EAAA4uQ,8BAAAztQ,GAEAkB,KAAA00E,SAAAirR,YACA3/V,KAAA00E,SAAAirR,WAAAhiW,GAEAwjB,EAAAnhB,KAAAw/V,SAAAl7V,GACA6c,EACA,IAAAzhB,EAAA,EAAAo0G,EAAA3yF,EAAArjB,OAA0C4B,EAAAo0G,EAAOp0G,IAAA,CAKjD,GAJA2wF,EAAAlvE,EAAAzhB,GACA2wF,EAAAgW,MACArmG,KAAAy7C,IAAAn3C,EAAA+rF,EAAA/hF,MAEA3Q,EAAA4uQ,gCAEA,OADA5uQ,EAAA46F,kBACA56F,EAEA,QAAA0yF,EAAA/hF,KAAAvO,KAAAC,KAAA0W,MAAA/Y,GAEA,OADAA,EAAA8oB,iBACA9oB,EAIA,OAAAA,GAEA4hW,EAAA1/V,UAAAiuC,GAAA,SAAAxpC,EAAA+rF,EAAAhmE,EAAA9Y,GACA,IAAA4P,EAAAmqC,EAAA5rD,EAIA,IAHA,IAAA2wF,IACAA,EAAAvxF,GAEAuxF,EAAA,CACA,IAAAuvQ,EAAA,CAAiCtxV,KAAA+hF,GACjC9+E,GACApS,GAAAuoI,OAAAk4N,EAAAruV,GAEA+5C,EAAAhnD,EAAA6U,cAAAyW,MAAA,KACAlwB,EAAA4rD,EAAAxtD,OACA,MAAA4B,IACA4E,EAAAgnD,EAAA5rD,GACAyhB,EAAAnhB,KAAAw/V,SAAAl7V,GACA6c,IACAA,EAAAnhB,KAAAw/V,SAAAl7V,GAAA,GACAtE,KAAAy/V,YAAAn7V,GAAA,IAEA+lB,EACAlJ,EAAAgrE,QAAAyzQ,GAEAz+U,EAAA7b,KAAAs6V,GAIA,OAAA5/V,MAEAu/V,EAAA1/V,UAAA47C,IAAA,SAAAn3C,EAAA+rF,GACA,IAAA3wF,EAAAyhB,EAAA0+U,EAAAv0S,EAAAw0S,EACA,GAAAx7V,EAAA,CACAgnD,EAAAhnD,EAAA6U,cAAAyW,MAAA,KACAlwB,EAAA4rD,EAAAxtD,OACA,MAAA4B,IAAA,CAGA,GAFA4E,EAAAgnD,EAAA5rD,GACAyhB,EAAAnhB,KAAAw/V,SAAAl7V,IACAA,EAAA,CACA,IAAAu7V,KAAA7/V,KAAAw/V,SACAx/V,KAAAy/V,YAAAI,GAAA,UACA7/V,KAAAw/V,SAAAK,GAEA,OAAA7/V,KAEA,GAAAmhB,EAAA,CACA,GAAAkvE,EAEe,CACfyvQ,EAAA3+U,EAAArjB,OACA,MAAAgiW,IACA3+U,EAAA2+U,GAAAxxV,OAAA+hF,IACAlvE,IAAAhc,MAAA,EAAA26V,GAAArhW,OAAA0iB,EAAAhc,MAAA26V,EAAA,IACA9/V,KAAAw/V,SAAAl7V,GAAA6c,QANAA,EAAArjB,OAAA,EAUAqjB,EAAArjB,SACAkC,KAAAy/V,YAAAn7V,GAAA,UACAtE,KAAAw/V,SAAAl7V,UAIS,CACT,IAAAA,KAAAtE,KAAAw/V,SACAx/V,KAAAy/V,YAAAn7V,GAAA,GAEAtE,KAAAw/V,SAAA,GAEA,OAAAx/V,MAEAu/V,EAAA1/V,UAAAwmG,KAAA,SAAA/hG,EAAA+rF,EAAAhmE,GACA,OAAArqB,KAAA8tC,GAAAxpC,EAAA+rF,EAAAhmE,EAAA,CAAiDg8E,MAAA,KAEjDk5P,EAAA1/V,UAAAsI,IAAA,SAAA7D,GAEA,OADAA,IAAA6U,iBACAnZ,KAAAw/V,SAAAl7V,IAAA,IAAAtE,KAAAw/V,SAAAl7V,GAAAxG,SAEAyhW,EAlIA,GAqIAQ,GAAA,SAAAt4V,GAWA,OAVAA,EAAAu4V,mBACAv4V,EAAAu4V,iBAAA,IAAAT,GAAA,CACA7oV,MAAAjP,EACAg4V,YAAA,SAAAn7V,EAAAmK,GACA8wV,GAAAG,SAAAp7V,IAAAmD,EAAAw4V,mBACAx4V,EAAAw4V,kBAAA37V,EAAAmK,OAKAhH,EAAAu4V,kBAEAE,GAAA,CACA5xQ,KAAA,SAAAhqF,EAAA3G,EAAAyvC,GACA,IAAArqC,EAAA/C,KACA,GAAA+C,EAAA4mI,SAAA,WAAArlI,GAAA,WAAAA,EACA,OAAA3G,EAEA,IAAAwiW,EAAAJ,GAAAh9V,GAAAurF,KAAAhqF,EAAA3G,GACA,QAAAyvC,GAAArqC,EAAAsmB,OAAA,CACA,IAAAA,EAAAtmB,EAAAsmB,SACA,MAAAA,IAAA82U,EAAAz9K,uBACAr5J,EAAAilE,KAAAhqF,EAAA67V,GAAA,GACA92U,aAGA,OAAA82U,GAEAryT,GAAA,SAAAxpC,EAAA+rF,EAAAhmE,GACA,OAAA01U,GAAA//V,MAAA8tC,GAAAxpC,EAAA+rF,EAAAhmE,IAEAoxB,IAAA,SAAAn3C,EAAA+rF,GACA,OAAA0vQ,GAAA//V,MAAAy7C,IAAAn3C,EAAA+rF,IAEAgW,KAAA,SAAA/hG,EAAA+rF,GACA,OAAA0vQ,GAAA//V,MAAAqmG,KAAA/hG,EAAA+rF,IAEA0rO,kBAAA,SAAAz3T,GACA,OAAAy7V,GAAA//V,MAAAmI,IAAA7D,KAIA87V,GAAAzgF,GAAAv4L,IAEAi5Q,GAAA,SAAAxsR,EAAAn/C,GACA,0BAAAA,EACAm/C,EAAA0D,UAEA1D,EAAAytB,QAAA,uDAAA/oF,KAAAmc,GACAm/C,EAAA0D,SAAApuD,gBAEA0qD,EAAAa,SAAA4rR,YACAzsR,EAAA0sR,YACA1sR,EAAA0sR,UAAAH,GAAApvQ,OAAAnd,EAAAa,SAAA4rR,YAAA,IAEAzsR,EAAA0sR,WAEA1sR,EAAAhuD,WAEA26U,GAAA,SAAA3sR,GACA,OAAAA,EAAAs+F,SAAA1yE,GAAA5rB,IAEA4sR,GAAA,SAAA5sR,EAAAn/C,EAAAx0B,GACAsgW,GAAA3sR,GACAA,EAAAya,KAAA55D,EAAAx0B,GACOu/F,GAAA5rB,IACPuiR,GAAAl2V,IAGAwgW,GAAA,SAAA7sR,EAAAn/C,GACA,IAAAisU,EAAAtvV,EAIA,GAHAwiE,EAAA+sR,YACA/sR,EAAA+sR,UAAA,KAEA/sR,EAAA+sR,UAAAlsU,KAAAm/C,EAAA81D,QAIA,GADAg3N,EAAAN,GAAAxsR,EAAAn/C,GACAm/C,EAAAa,SAAA4rR,WAAA,CAeA,GAdA/tB,KACAA,GAAA,GACA1+P,EAAAgvN,cAAA/0P,GAAA,0BACA,IAAAxpC,EACA,IAAAuvE,EAAAgvN,cAAAG,cACAuvC,GAAA,CACA,IAAAjuU,KAAAiuU,GACA1+P,EAAAp8D,IAAAshF,OAAAsnQ,GAAAxsR,EAAAvvE,IAEAiuU,GAAA,SAKAA,GAAA79S,GACA,OAEArjB,EAAA,SAAAnR,GACA,IAAAgJ,EAAAhJ,EAAAgJ,OACA23V,EAAAhtR,EAAAgvN,cAAA56R,MACAvI,EAAAmhW,EAAA/iW,OACA,MAAA4B,IAAA,CACA,IAAAkmB,EAAAi7U,EAAAnhW,GAAAmmB,WACAD,IAAA1c,GAAAk3V,GAAAngK,UAAA/2L,EAAA0c,KACA66U,GAAAI,EAAAnhW,GAAAg1B,EAAAx0B,KAIAqyU,GAAA79S,GAAArjB,EACA+uV,GAAAh+V,KAAAu+V,EAAAjsU,EAAArjB,QAEAA,EAAA,SAAAnR,GACAugW,GAAA5sR,EAAAn/C,EAAAx0B,IAEAkgW,GAAAh+V,KAAAu+V,EAAAjsU,EAAArjB,GACAwiE,EAAA+sR,UAAAlsU,GAAArjB,GAGAyvV,GAAAzhW,IAAA,GAA+C6gW,IAAA,CAC/C3P,0BAAA,WACA,IAAAxtV,EAAA/C,KACAb,GAAAgD,KAAAY,EAAAg+V,qBAAA,SAAAz8V,GACAo8V,GAAA39V,EAAAuB,MAGA27V,kBAAA,SAAA37V,EAAAmK,GACA,IAAA1L,EAAA/C,KACA,UAAAsE,GAAA,SAAAA,IAGAmK,EACA1L,EAAAuxJ,YACAosM,GAAA39V,EAAAuB,GAEAvB,EAAAg+V,qBAGAh+V,EAAAg+V,qBAAAz7V,KAAAhB,GAFAvB,EAAAg+V,qBAAA,CAAAz8V,GAKSvB,EAAAuxJ,cACTvxJ,EAAA0U,IAAAshF,OAAAsnQ,GAAAt9V,EAAAuB,KAAAvB,EAAA69V,UAAAt8V,WACAvB,EAAA69V,UAAAt8V,MAGA+hS,sBAAA,WACA,IAGA/hS,EAHAvB,EAAA/C,KACA4lB,EAAA7iB,EAAA8iB,UACApO,EAAA1U,EAAA0U,IAEA,GAAA1U,EAAA69V,UAAA,CACA,IAAAt8V,KAAAvB,EAAA69V,UACA79V,EAAA0U,IAAAshF,OAAAsnQ,GAAAt9V,EAAAuB,KAAAvB,EAAA69V,UAAAt8V,WAEAvB,EAAA69V,WAEA79V,EAAAu+F,QAAA17E,GAAAnO,IACAmO,EAAA+iO,OAAA,KACAlxO,EAAAshF,OAAAh2F,EAAAwsC,UACA93B,EAAAshF,OAAAh2F,EAAAw0E,WAEA9/D,IACAA,EAAAshF,OAAAnzE,GACAnO,EAAAshF,OAAAh2F,EAAAgpG,oBAKAi1P,GAAA7hW,GAAAgD,KAAA8+V,GAAA9hW,GAAA86P,QACAinG,GAAA,CACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KAEAC,GAAA5iW,GAAAmgJ,QAAA,8BACA0iN,GAAA,WACA,SAAAA,EAAAnuR,GACA7zE,KAAAq9J,UAAA,GACAr9J,KAAAiiW,gBAAA,GACAjiW,KAAA6zE,SACA,IAAA9wE,EAAA/C,KACA6zE,EAAA/lC,GAAA,kCAAA5tC,IACA6C,EAAAm/V,YAAAhiW,KAAA6C,EAAAo/V,cAAAjiW,MAAAkiG,uBACA4+P,GAAAj+V,EAAAs6J,UAAA,SAAAp8E,GACA,GAAAl+E,EAAAq/V,cAAAliW,EAAA+gF,GAKA,OAJAl+E,EAAAk/V,gBAAAhhR,EAAAohR,YAAAl9V,MAAA,GACA,YAAAjF,EAAAsE,MACAzB,EAAAu/V,sBAAArhR,IAEA,IAGAl+E,EAAAq/V,cAAAliW,EAAA6C,EAAAk/V,gBAAA,MACA,IAAAl/V,EAAAk/V,gBAAAnkW,QACA,YAAAoC,EAAAsE,MACAzB,EAAAu/V,sBAAAv/V,EAAAk/V,gBAAA,IAGAl/V,EAAAk/V,gBAAAnhR,YA+GA,OA1GAkhR,EAAAniW,UAAAg2B,IAAA,SAAAgyF,EAAA06O,EAAAC,EAAA9rV,GACA,IACA67J,EADAxvK,EAAA/C,KAgBA,OAdAuyK,EAAAiwL,EACA,kBAAAA,EACAA,EAAA,WACAz/V,EAAA8wE,OAAAqc,YAAAqiF,GAAA,SAESpzK,GAAAwF,QAAA4tK,KACTiwL,EAAA,WACAz/V,EAAA8wE,OAAAqc,YAAAqiF,EAAA,GAAAA,EAAA,GAAAA,EAAA,MAGAyuL,GAAAC,GAAA9hW,GAAAse,KAAAoqG,IAAA,SAAAA,GACA,IAAA5mC,EAAAl+E,EAAA0/V,eAAA56O,EAAA06O,EAAAC,EAAA9rV,GACA3T,EAAAs6J,UAAAp8E,EAAA5/E,IAAA4/E,KAEA,GAEA+gR,EAAAniW,UAAAkrB,OAAA,SAAA88F,GACA,IAAA5mC,EAAAjhF,KAAAyiW,eAAA56O,GACA,QAAA7nH,KAAAq9J,UAAAp8E,EAAA5/E,aACArB,KAAAq9J,UAAAp8E,EAAA5/E,KACA,IAIA2gW,EAAAniW,UAAA6iW,cAAA,SAAA76O,GACA,IAAAxmH,EAAA6G,EACA+4E,EAAA,GAcA,IAAA/4E,KAbA84V,GAAAC,GAAAp5O,EAAA1uG,cAAA,cAAAlb,GACAA,KAAA8jW,GACA9gR,EAAAhjF,IAAA,EAEA,cAA2Bsa,KAAAta,GAC3BgjF,EAAAimD,QAAAjsG,SAAAh9B,EAAA,KAEAgjF,EAAA0hR,SAAA1kW,EAAA+vH,WAAA,GACA/sC,EAAAimD,QAAAg6N,GAAAjjW,MAAAovF,cAAA2gC,WAAA,MAIA3sH,EAAA,CAAA4/E,EAAAimD,SACA66N,GACA9gR,EAAA/4E,GACA7G,EAAAiE,KAAA4C,GAEA+4E,EAAA/4E,IAAA,EAoBA,OAjBA+4E,EAAA5/E,KAAA0H,KAAA,KACAk4E,EAAAF,SACAE,EAAAL,KAAA,EACA23K,GAAA53K,IACAM,EAAAJ,MAAA,EAEAI,EAAAH,OAAA,GAGAG,EAAA57B,OACAkzM,GAAA53K,IACAM,EAAA57B,MAAA,GAEA47B,EAAAJ,MAAA,EACAI,EAAA57B,MAAA,IAGA47B,GAEA+gR,EAAAniW,UAAA4iW,eAAA,SAAA56O,EAAA06O,EAAAC,EAAA9rV,GACA,IAAA2mJ,EAMA,OALAA,EAAAl+J,GAAA+C,IAAA++V,GAAAp5O,EAAA,KAAA7nH,KAAA0iW,eACArlM,IAAAv/J,OAAA,GAAAqB,GAAAuoI,OAAA21B,IAAAv/J,OAAA,IACAwQ,KAAAk0V,EACA9rV,SAAA1W,KAAA6zE,SAEA10E,GAAAuoI,OAAA21B,EAAA,IACAklM,KAAAviW,KAAA6zE,OAAA33C,UAAAqmU,GACAF,YAAAhlM,EAAAl4J,MAAA,MAGA68V,EAAAniW,UAAAqiW,YAAA,SAAAhiW,GACA,OAAAA,EAAAk8S,QAAAl8S,EAAA0xD,SAAA1xD,EAAAssQ,SAEAw1F,EAAAniW,UAAAsiW,cAAA,SAAAjiW,GACA,kBAAAA,EAAAsE,MAAAtE,EAAAgnI,SAAA,KAAAhnI,EAAAgnI,SAAA,KAEA86N,EAAAniW,UAAAuiW,cAAA,SAAAliW,EAAA+gF,GACA,QAAAA,IAGAA,EAAAJ,OAAA3gF,EAAA0xD,SAAAqvB,EAAA57B,OAAAnlD,EAAAssQ,UAGAvrL,EAAAL,MAAA1gF,EAAAk8S,QAAAn7N,EAAAH,QAAA5gF,EAAAwxD,cAGAxxD,EAAAgnI,UAAAjmD,EAAAimD,SAAAhnI,EAAAyiW,UAAAziW,EAAAyiW,WAAA1hR,EAAA0hR,YACAziW,EAAAumB,kBACA,OAIAu7U,EAAAniW,UAAAyiW,sBAAA,SAAArhR,GACA,OAAAA,EAAA3yE,KAAA2yE,EAAA3yE,KAAAvO,KAAAkhF,EAAAvqE,OAAA,MAEAsrV,EAtIA,GAyIAY,GAAAzjW,GAAAgD,KAAA0gW,GAAA1jW,GAAAse,KACAqlV,GAAA,uGAAAlzU,MAAA,KACAmzU,GAAA,CACAC,IAAA,GACAC,KAAA,GACAC,MAAA,IACAC,OAAA,IAEAC,GAAA,WACA,SAAAA,EAAAngQ,EAAAvuB,GACAuuB,EAAA4/P,GAAA5/P,GACAjjG,KAAA00E,YAAA,GACA,IAAA2uR,EAAArjW,KAAA00E,SAAA6mH,SACAx4L,EAAA/C,KACA,4BAAiCuY,KAAA0qF,IAAA,QAAA1qF,KAAA0qF,GACjClgG,EAAA+jD,OAAAm8C,MADA,CAIA,IAAAqgQ,EAAA,IAAArgQ,EAAA9iG,QAAA,MAIA,GAHA,IAAA8iG,EAAA9iG,QAAA,MAAAmjW,IACArgQ,GAAAogQ,KAAA3nK,UAAA,sBAAAz4F,IAEA,iBAAA1qF,KAAA0qF,GAAA,CACA,IAAA6kJ,EAAA9nP,KAAA00E,SAAA6mH,SAAAv7L,KAAA00E,SAAA6mH,SAAAvsL,KAAA,IAAAo0V,EAAAhmW,EAAAwZ,SAAAg7J,SAAA4pB,MAAA3yH,UACA,GAAA7oE,KAAA00E,SAAA6mH,UAAA,IAAAv7L,KAAA00E,SAAA6mH,SAAAG,SACAz4F,EAAA,aAAAlgG,EAAAwgW,UAAAz7G,EAAA7kJ,OACW,CACX,IAAAr6F,EAAA,oBAAAohF,KAAAiZ,GACAA,GAAAogQ,KAAA3nK,UAAA,sBAAA34L,EAAAwgW,UAAAz7G,EAAAl/O,EAAA,IAAAA,EAAA,IAGAq6F,IAAAnqF,QAAA,kBACA,IAAA0qV,EAAA,mMAAAx5Q,KAAAiZ,GACA2/P,GAAAE,GAAA,SAAA9/V,EAAAtD,GACA,IAAAkqD,EAAA45S,EAAA9jW,GACAkqD,IACAA,IAAA9wC,QAAA,qBAEA/V,EAAAC,GAAA4mD,IAEAy5S,IACAtgW,EAAA24L,WACA34L,EAAA24L,SAAA2nK,EAAA3nK,UAEA34L,EAAA0gW,WACA1gW,EAAA0gW,SAAAJ,EAAAI,UAEA1gW,EAAA64L,MAAA,aAAA74L,EAAA44L,OACA54L,EAAA64L,KAAAynK,EAAAznK,MAEA74L,EAAA44L,MAAA,aAAA54L,EAAA44L,OACA54L,EAAA44L,KAAA0nK,EAAA1nK,MAEA54L,EAAA+jD,OAAA,IAEAw8S,IACAvgW,EAAA24L,SAAA,KA0LA,OAvLA0nK,EAAAltD,aAAA,SAAA/oL,GACA,IAAA3oH,EACAk/V,EAAA1nE,mBAAA7uK,GAAAv9F,MAAA,KACAxR,EAAA,eAAgC4rE,KAAA05Q,EAAA,IAIhC,OAHAtlV,IACA5Z,EAAA4Z,EAAA,IAEA,CACA5Z,OACAqgB,KAAA6+U,EAAA,KAGAN,EAAAhmE,mBAAA,SAAAp+P,GACA,IAAA8oN,EAYA,OAVAA,EADA,IAAA9oN,EAAA08J,SAAAv7L,QAAA,mBAAA6+B,EAAA08J,SACA18J,EAAAw8J,KAEAx8J,EAAA08J,SAAA,KAAA18J,EAAA28J,KAAA38J,EAAA2kU,SAEA,yBAAAprV,KAAAuvO,KACAA,IAAAhvO,QAAA,eAAAA,QAAA,oBACA,UAAAP,KAAAuvO,KACAA,GAAA,MAGAA,GAEAs7G,EAAAvjW,UAAA+jW,QAAA,SAAA50V,GACA,IAAA60V,EAAA,mBAAA75Q,KAAAh7E,GACAhP,KAAAgP,KAAA60V,EAAA,GACA7jW,KAAA6oE,UAAAg7R,EAAA,GACA7jW,KAAA2pH,KAAAk6O,EAAA,GACA7jW,KAAA8mD,OAAA,GACA9mD,KAAAyyV,UAEA2Q,EAAAvjW,UAAAikW,WAAA,SAAA32O,GACA,IAAAxmH,EACA,UAAAwmH,EACA,OAAAA,EAEA,IAAA42O,EAAA,IAAAX,EAAAj2O,EAAA,CAAwCouE,SAAAv7L,OACxC,gBAAA+jW,EAAApoK,MAAA37L,KAAA27L,OAAAooK,EAAApoK,MAAAooK,EAAApoK,MAAA37L,KAAA47L,OAAAmoK,EAAAnoK,MAAA57L,KAAA07L,WAAAqoK,EAAAroK,UAAA,KAAAqoK,EAAAroK,SACA,OAAAqoK,EAAAtR,SAEA,IAAAuR,EAAAhkW,KAAAyyV,SAAAwR,EAAAF,EAAAtR,SACA,OAAAuR,IAAAC,GAAA,MAAAD,EAAA9rR,OAAA8rR,EAAAlmW,OAAA,IAAAkmW,EAAA5mV,OAAA,EAAA4mV,EAAAlmW,OAAA,KAAAmmW,EACAD,GAEAr9V,EAAA3G,KAAAkkW,UAAAlkW,KAAAgP,KAAA+0V,EAAA/0V,MACA+0V,EAAA9lV,QACAtX,GAAA,IAAAo9V,EAAA9lV,OAEA8lV,EAAA1/T,SACA19B,GAAA,IAAAo9V,EAAA1/T,QAEA19B,IAEAy8V,EAAAvjW,UAAAg2C,WAAA,SAAAs3E,EAAAg3O,GACA,IAAAC,EAAA,IAAAhB,EAAAj2O,EAAA,CAAwCouE,SAAAv7L,OACxC,OAAAokW,EAAA3R,OAAA0R,GAAAnkW,KAAA87L,aAAAsoK,KAEAhB,EAAAvjW,UAAAi8L,aAAA,SAAA3uE,GACA,GAAAntH,KAAA27L,MAAAxuE,EAAAwuE,MAAA37L,KAAA07L,UAAAvuE,EAAAuuE,SAAA,CACA,GAAA17L,KAAA47L,MAAAzuE,EAAAyuE,KACA,SAEA,IAAAyoK,EAAAtB,GAAA/iW,KAAA07L,UACA,GAAA2oK,IAAArkW,KAAA47L,MAAAyoK,KAAAl3O,EAAAyuE,MAAAyoK,GACA,SAGA,UAEAjB,EAAAvjW,UAAAqkW,UAAA,SAAAn5V,EAAAiE,GACA,IAAAg2C,EAAAtlD,EAAAo0G,EAAAwwP,EAAA,EAAAj0O,EAAA,GACAk0O,EAAAx5V,EAAA4kB,UAAA,EAAA5kB,EAAAm4Q,YAAA,MAAAtzP,MAAA,KAEA,GADAo1B,EAAAh2C,EAAA4gB,MAAA,KACA20U,EAAAzmW,QAAAknD,EAAAlnD,OACA,IAAA4B,EAAA,EAAAo0G,EAAAywP,EAAAzmW,OAAgD4B,EAAAo0G,EAAOp0G,IACvD,GAAAA,GAAAslD,EAAAlnD,QAAAymW,EAAA7kW,KAAAslD,EAAAtlD,GAAA,CACA4kW,EAAA5kW,EAAA,EACA,MAIA,GAAA6kW,EAAAzmW,OAAAknD,EAAAlnD,OACA,IAAA4B,EAAA,EAAAo0G,EAAA9uD,EAAAlnD,OAAuC4B,EAAAo0G,EAAOp0G,IAC9C,GAAAA,GAAA6kW,EAAAzmW,QAAAymW,EAAA7kW,KAAAslD,EAAAtlD,GAAA,CACA4kW,EAAA5kW,EAAA,EACA,MAIA,OAAA4kW,EACA,OAAAt1V,EAEA,IAAAtP,EAAA,EAAAo0G,EAAAywP,EAAAzmW,QAAAwmW,EAAA,GAAiE5kW,EAAAo0G,EAAOp0G,IACxE2wH,GAAA,MAEA,IAAA3wH,EAAA4kW,EAAA,EAAAxwP,EAAA9uD,EAAAlnD,OAAkD4B,EAAAo0G,EAAOp0G,IAEzD2wH,GADA3wH,IAAA4kW,EAAA,EACA,IAAAt/S,EAAAtlD,GAEAslD,EAAAtlD,GAGA,OAAA2wH,GAEA+yO,EAAAvjW,UAAA0jW,UAAA,SAAAx4V,EAAAiE,GACA,IAAAtP,EAAAytN,EAAAq3I,EAAAC,EAAA,EAAAvjW,EAAA,GACAisN,EAAA,MAAA50M,KAAAvJ,GAAA,OACA,IAAAu1V,EAAAx5V,EAAA6kB,MAAA,KACA80U,EAAA11V,EAAA4gB,MAAA,KAOA,IANAgzU,GAAA2B,EAAA,SAAA7jW,GACAA,GACAQ,EAAAoE,KAAA5E,KAGA6jW,EAAArjW,EACAxB,EAAAglW,EAAA5mW,OAAA,EAAAoD,EAAA,GAAmDxB,GAAA,EAAQA,IAC3D,IAAAglW,EAAAhlW,GAAA5B,QAAA,MAAA4mW,EAAAhlW,KAGA,OAAAglW,EAAAhlW,GAIA+kW,EAAA,EACAA,IAGAvjW,EAAAoE,KAAAo/V,EAAAhlW,IAPA+kW,KAqBA,OAZA/kW,EAAA6kW,EAAAzmW,OAAA2mW,EAEAD,EADA9kW,GAAA,EACAwB,EAAA0F,UAAAmC,KAAA,KAEAw7V,EAAAp/V,MAAA,EAAAzF,GAAAqJ,KAAA,SAAA7H,EAAA0F,UAAAmC,KAAA,KAEA,IAAAy7V,EAAArkW,QAAA,OACAqkW,EAAA,IAAAA,GAEAr3I,GAAAq3I,EAAAthF,YAAA,OAAAshF,EAAA1mW,OAAA,IACA0mW,GAAAr3I,GAEAq3I,GAEApB,EAAAvjW,UAAA4yV,OAAA,SAAAkS,GAIA,IAAAllW,EA8BA,YAjCA,IAAAklW,IACAA,GAAA,GAGA3kW,KAAA8mD,SAAA69S,IACAllW,EAAA,GACAklW,IACA3kW,KAAA07L,SACAj8L,GAAAO,KAAA07L,SAAA,MAEAj8L,GAAA,KAEAO,KAAAyjW,WACAhkW,GAAAO,KAAAyjW,SAAA,KAEAzjW,KAAA27L,OACAl8L,GAAAO,KAAA27L,MAEA37L,KAAA47L,OACAn8L,GAAA,IAAAO,KAAA47L,OAGA57L,KAAAgP,OACAvP,GAAAO,KAAAgP,MAEAhP,KAAAie,QACAxe,GAAA,IAAAO,KAAAie,OAEAje,KAAAqkC,SACA5kC,GAAA,IAAAO,KAAAqkC,QAEArkC,KAAA8mD,OAAArnD,GAEAO,KAAA8mD,QAEAs8S,EA1OA,GA6OA13O,GAAA,WACA,IAAA35B,EAAA,GACAvpB,EAAA,GACAoT,EAAA,GACA1J,EAAA,GACAqlG,EAAA,GACAvkB,EAAA,GACA0W,EAAA,GACA7zI,EAAA,SAAAwhH,EAAA7yI,GACA,gBAAAF,EAAAgsB,GACA,OAAA+mH,EAAA/yI,EAAA6U,eAAA9Z,IAAA,GAAsEixB,GAAA,CAAU9rB,WAGhFqvV,EAAA,SAAAvvV,EAAAsvV,GACA,OAAA1hR,EAAA5tE,EAAA6U,eAAAy6U,GAEA,OACAnhL,UAAA58I,EAAAk8D,EAAA,UACA43E,gBAAA9zI,EAAAk8D,EAAA,gBACA6vJ,cAAA/rN,EAAAk8D,EAAA,cACAhB,eAAAl7D,EAAAk8D,EAAA,eACAkhF,YAAAp9I,EAAA2yC,EAAA,YACA8oB,kBAAAz7D,EAAA2yC,EAAA,kBACAurG,kBAAAl+I,EAAA2yC,EAAA,kBACAo8R,iBAAA/uU,EAAA+lD,EAAA,iBACA0mK,eAAAzsN,EAAA0hJ,EAAA,eACAuqE,kBAAAjsN,EAAAm9H,EAAA,kBACA6xM,eAAAhvU,EAAAm9H,EAAA,eACA8xM,WAAAjvU,EAAA6zI,EAAA,WACAmqL,UACA93Q,OAAA,WACA,OACAgW,UACAvpB,YACA0J,QACA0J,SACA27F,eACAvkB,kBACA0W,eAMA5tF,GAAA,WACA,IAAA+6J,EAAAnrH,KACA,OACAk5O,iBAAA/tH,EAAA+tH,iBACAnyL,UAAAokE,EAAApkE,UACAoyL,eAAAhuH,EAAAguH,eACAviH,eAAAzL,EAAAyL,eACAR,kBAAAjL,EAAAiL,kBACA+xG,QAAAh9G,EAAAg9G,QACAjyG,cAAA/K,EAAA+K,cACA3uE,YAAA4jE,EAAA5jE,YACA3hF,kBAAAulJ,EAAAvlJ,kBACAwzQ,WAAAjuH,EAAAiuH,WACA/zQ,eAAA8lJ,EAAA9lJ,eACA44E,gBAAAktE,EAAAltE,gBACAoK,kBAAA8iE,EAAA9iE,kBACAh4F,OAAA86J,EAAA96J,SAIAgpR,GAAAplF,GAAAv4L,IACA49Q,GAAA7lW,GAAAuoI,OAAAu9N,GAAA9lW,GAAAgD,KACA+iW,GAAA/lW,GAAAC,QACA+lW,GAAA5sG,GAAA/+O,GACAquO,GAAA,WACA,SAAAA,EAAAxmP,EAAAqzE,EAAAmuN,GACA,IAAAv4C,EAAAtqP,KACAA,KAAAwjL,QAAA,GACAxjL,KAAA0uK,WAAA,GACA1uK,KAAAkvV,cAAA,GACAlvV,KAAAolW,UAAA,GACAplW,KAAAqlW,YAAA,EACArlW,KAAA6iS,gBACA7iS,KAAA6nS,gBAAAhF,EAAAyiE,gBACAN,GAAAhlW,KAAA8gW,IACA9gW,KAAA00E,SAAA21N,GAAArqS,KAAAqB,EAAArB,KAAA6nS,gBAAAhF,EAAAoH,gBAAAv1N,GACA10E,KAAA00E,SAAAl3D,SACAqlR,EAAArlR,OAAAxd,KAAA00E,SAAAl3D,QAEAxd,KAAAwd,OAAAqlR,EAAArlR,OACAxd,KAAA00E,SAAA6wR,UACA1iE,EAAA2iE,YAAAxlW,KAAA00E,SAAA6wR,UAEAvlW,KAAAqjW,QAAAxgE,EAAA4iE,QACAzlW,KAAA00E,SAAAgxR,kBACAxlF,gBAAA1lB,mBAAAx6P,KAAA00E,SAAAgxR,iBACA/lF,GAAAv4L,IAAAunF,iBAAA6rF,mBAAAx6P,KAAA00E,SAAAgxR,kBAEApiF,GAAAf,aAAAviR,KAAA00E,SAAAixR,cACAriF,GAAA9jL,QAAAqjM,EAAArjM,QACAx/F,KAAAqB,KACArB,KAAA+pT,UAAA,GACA/pT,KAAAu/F,gBAAA,IAAA6jQ,GAAApjW,KAAA00E,SAAAszN,kBAAA,CAAyEzsG,SAAAv7L,KAAAqjW,UACzErjW,KAAAylW,QAAAzlW,KAAAqjW,QACArjW,KAAAshG,SAAAthG,KAAA00E,SAAA4sB,OACAthG,KAAAq9J,UAAA,IAAA2kM,GAAAhiW,MACAA,KAAA4lW,eAAA,IAAAzJ,GAAAn8V,MACAA,KAAA00E,SAAAmxR,eACAttG,GAAAK,YAAA54P,KAAA00E,SAAAmxR,aAAA/sV,QAAA,gBAEA9Y,KAAA67E,GAAA,CAAmBC,eACnB,IAAA/4E,EAAA/C,KACA8lW,EAAA1uR,GAAAr0E,GACA/C,KAAAukD,KAAAuhT,EACA9lW,KAAA6pJ,QAAAi8M,EAAAxvV,IACAusR,EAAAv0M,KAAA,eAA2Cza,OAAA7zE,OAC3CA,KAAAwwV,aAAA,QAAAxwV,MACAA,KAAAisM,EAAAusE,GAAAkC,iBAAA,WACA,OACAtgM,QAAAkwK,EAAAhpJ,OAAAgpJ,EAAAzkO,UAAAykO,EAAA/yK,SACA93D,QAAA6qO,EAAAzkO,aAmUA,OA/TAgiO,EAAAhoP,UAAAq1F,OAAA,WACAswF,GAAAtwF,OAAAl1F,OAEA6nP,EAAAhoP,UAAAijB,MAAA,SAAAyhR,GACAC,GAAA1hR,MAAA9iB,KAAAukS,IAEA18C,EAAAhoP,UAAAgpC,SAAA,WACA,OAAA27P,GAAA37P,SAAA7oC,OAEA6nP,EAAAhoP,UAAA2wV,aAAA,SAAAlsV,GAEA,IADA,IAAAnG,EAAA,GACAP,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CO,EAAAP,EAAA,GAAAC,UAAAD,GAEA,IACA8Y,EADA3T,EAAA/C,KACAqwF,EAAAttF,EAAA2xE,SAAApwE,GACA,GAAA+rF,EAiBA,OAdAttF,EAAAgjW,iBAAArvV,EAAA3T,EAAAgjW,eAAAzhW,MACA+rF,EAAA35E,EAAApI,KACAoI,WAEA,kBAAA25E,IACA35E,EAAA25E,EAAAv3E,QAAA,aACApC,IAAAwuV,GAAAxuV,GAAA,EACA25E,EAAA60Q,GAAA70Q,GACAttF,EAAAgjW,eAAAhjW,EAAAgjW,gBAAA,GACAhjW,EAAAgjW,eAAAzhW,GAAA,CACAgK,KAAA+hF,EACA35E,UAGA25E,EAAAtyF,MAAA2Y,GAAA3T,EAAAtC,MAAAZ,UAAAsF,MAAApF,KAAAlC,UAAA,KAEAgqP,EAAAhoP,UAAAq8B,UAAA,SAAA3kB,GACA,OAAAyqQ,GAAA9lP,UAAA3kB,IAEAswO,EAAAhoP,UAAAguF,SAAA,SAAAvpF,EAAAq4Q,EAAAn4Q,GACA,OAAAqpF,GAAA7tF,KAAAsE,EAAAq4Q,EAAAn4Q,IAEAqjP,EAAAhoP,UAAAuvF,YAAA,SAAAzxF,GACAqC,KAAAmxV,sBAAA/hQ,YAAAzxF,IAEAkqP,EAAAhoP,UAAA0vF,WAAA,SAAAjrF,EAAA+rF,EAAA35E,GACA1W,KAAA4lW,eAAAr2Q,WAAAjrF,EAAA+rF,EAAA35E,IAEAmxO,EAAAhoP,UAAA6tM,qBAAA,SAAAppM,EAAA+rF,EAAA35E,GACA1W,KAAA4lW,eAAAl4J,qBAAAppM,EAAA+rF,EAAA35E,IAEAmxO,EAAAhoP,UAAAkwK,qBAAA,SAAAzrK,EAAA+rF,EAAA35E,GACA1W,KAAA4lW,eAAA71L,qBAAAzrK,EAAA+rF,EAAA35E,IAEAmxO,EAAAhoP,UAAAgrT,YAAA,SAAAhjM,EAAA06O,EAAAC,EAAA9rV,GACA1W,KAAAq9J,UAAAxnI,IAAAgyF,EAAA06O,EAAAC,EAAA9rV,IAEAmxO,EAAAhoP,UAAAqwF,YAAA,SAAAqiF,EAAA12F,EAAA59E,EAAAN,GACA,OAAAqC,KAAA4lW,eAAA11Q,YAAAqiF,EAAA12F,EAAA59E,EAAAN,IAEAkqP,EAAAhoP,UAAAu0K,kBAAA,SAAA7B,GACA,OAAAvyK,KAAA4lW,eAAAxxL,kBAAA7B,IAEAs1E,EAAAhoP,UAAAo3J,kBAAA,SAAAsb,GACA,OAAAvyK,KAAA4lW,eAAA3uM,kBAAAsb,IAEAs1E,EAAAhoP,UAAA8tV,sBAAA,SAAAp7K,GACA,OAAAvyK,KAAA4lW,eAAAjY,sBAAAp7K,IAEAs1E,EAAAhoP,UAAAk/E,KAAA,WACA,IAAAh8E,EAAA/C,KACA+C,EAAAovK,SACApvK,EAAAovK,QAAA,EACApvK,EAAAu+F,OACAv+F,EAAA8iB,UAAAk3H,gBAAA,QAEAgoN,GAAAhmR,KAAAh8E,EAAAgpG,gBACAg5P,GAAA30R,KAAArtE,EAAA1B,KAEA0B,EAAAihE,OACAjhE,EAAAurF,KAAA,UAGAu5J,EAAAhoP,UAAAuwE,KAAA,WACA,IAAArtE,EAAA/C,KAAA2W,EAAA5T,EAAAw0E,SACAx0E,EAAAovK,SACAgzL,IAAAxuV,IAAA5T,EAAAu+F,QACA3qF,EAAAu5E,YAAA,aAEAntF,EAAAojS,OACApjS,EAAAu+F,QACAv+F,EAAA8iB,UAAAk3H,gBAAA,QACAh6I,MAAA8/R,cAAAC,gBACA//R,EAAA8/R,cAAAC,cAAA,QAGAiiE,GAAA30R,KAAArtE,EAAAgpG,gBACAg5P,GAAAj8J,SAAA/lM,EAAA1B,GAAA,UAAA0B,EAAA2iS,aAEA3iS,EAAAovK,QAAA,EACApvK,EAAAurF,KAAA,UAGAu5J,EAAAhoP,UAAA63D,SAAA,WACA,QAAA13D,KAAAmyK,QAEA01E,EAAAhoP,UAAAmmW,iBAAA,SAAAv3V,EAAA8e,GACAvtB,KAAAsuF,KAAA,iBACA7/E,QACA8e,UAGAs6N,EAAAhoP,UAAAmkE,KAAA,SAAArmE,GACA,IACA8Y,EADA1T,EAAA/C,KACA03E,EAAA30E,EAAA68F,aACA,GAAA78F,EAAA4mI,QACA,SAEA,GAAAjyD,EAAA,CACA/5E,KAAA,GACAA,EAAAqmE,MAAA,EACA,IAAA/lE,EAAAiiM,GAAA61D,kBAAAr+K,KAAAz5E,MAAAy5E,EAAA3gE,UAOA,OANAN,EAAA1T,EAAAk+C,WAAAhjD,EAAAN,GACAA,EAAA8hB,QAAAi4D,EACA/5E,EAAA+hS,WACA38R,EAAAurF,KAAA,cAAA3wF,GAEAA,EAAA8hB,QAAAi4D,EAAA,KACAjhE,IAGAoxO,EAAAhoP,UAAAsmS,KAAA,SAAAxoS,GACA,IACA8Y,EAAAoqG,EADA99G,EAAA/C,KACA03E,EAAA30E,EAAA68F,aACA,GAAAloB,GAAA30E,EAAAuxJ,cAAAvxJ,EAAA4mI,QAiCA,OA9BAhsI,KAAA,GACAA,EAAAwoS,MAAA,EACAxoS,EAAA8hB,QAAAi4D,EACAjhE,EAAA9Y,EAAA0tB,QAAAtoB,EAAAstE,WAAA1yE,GACAA,EAAA+hS,WACA38R,EAAAurF,KAAA,cAAA3wF,GAEA,QAAAA,EAAAmxF,QACA/rF,EAAAurF,KAAA,iBAAA3wF,GAEA8Y,EAAA9Y,EAAA0tB,QACA60K,GAAA61D,kBAAAr+K,GAaAA,EAAAz5E,MAAAwY,IAZA9Y,EAAAyoS,aAAArjS,EAAAu+F,SACA5pB,EAAA3gE,UAAAN,IAEAoqG,EAAAkkP,GAAA1kK,UAAAt9L,EAAA1B,GAAA,UACA4jW,GAAApkP,EAAAn2F,SAAA,SAAAgtD,GACA,GAAAA,EAAApzE,OAAAvB,EAAA1B,GAEA,OADAq2E,EAAAz5E,MAAAwY,GACA,KAOA9Y,EAAA8hB,QAAAi4D,EAAA,MACA,IAAA/5E,EAAA83V,WACA1yV,EAAAgnT,UAAA,GAEAtzS,GAEAoxO,EAAAhoP,UAAAohD,WAAA,SAAA51B,EAAA1tB,GACA,OAAAsjD,GAAAjhD,KAAAqrB,EAAA1tB,IAEAkqP,EAAAhoP,UAAAwwE,WAAA,SAAA1yE,GACA,OAAA0yE,GAAArwE,KAAArC,IAEAkqP,EAAAhoP,UAAAq7L,cAAA,SAAA7vK,EAAA1tB,GACAA,IACA0tB,EAAA25U,GAAA,CAA8B35U,WAAmB1tB,IAEjDqC,KAAAkwF,YAAA,sBAAA7kE,IAEAw8N,EAAAhoP,UAAAy1V,aAAA,SAAA2Q,QACAlkW,IAAAkkW,EACAhlT,GAAAjhD,UAAAyxV,aAAA,CAA+C3iQ,OAAA,QAE/C7tC,GAAAjhD,KAAAimW,GAEAjmW,KAAAivF,YAAA+1E,QACAhlK,KAAA+pT,UAAA,GACA/pT,KAAAovF,eAEAy4J,EAAAhoP,UAAA0qT,QAAA,WACA,OAAAvqT,KAAAqlW,YAEAx9G,EAAAhoP,UAAAkqT,SAAA,SAAAt7S,GACA,IAAAy3V,GAAAlmW,KAAAqlW,WACArlW,KAAAqlW,YAAA52V,EACAA,OAAAy3V,GACAlmW,KAAAsuF,KAAA,UAGAu5J,EAAAhoP,UAAAksG,aAAA,WACA,IAAAhpG,EAAA/C,KAIA,OAHA+C,EAAA6oB,YACA7oB,EAAA6oB,UAAAm5U,GAAA98V,IAAAlF,EAAAujK,iBAAAvjK,EAAA1B,GAAA,YAEA0B,EAAA6oB,WAEAi8N,EAAAhoP,UAAAuyJ,wBAAA,WACA,OAAApyJ,KAAA6lS,sBAEAh+C,EAAAhoP,UAAA+/F,WAAA,WAIA,OAHA5/F,KAAAuxK,YACAvxK,KAAAuxK,UAAAwzL,GAAA98V,IAAAjI,KAAAqB,KAEArB,KAAAuxK,WAEAs2E,EAAAhoP,UAAA0vC,OAAA,WACA,IACAmoC,EADA30E,EAAA/C,KAQA,OANA+C,EAAAuoH,gBACA5zC,EAAA30E,EAAA4gS,cACAjsN,IACA30E,EAAAuoH,cAAA5zC,EAAA4zC,gBAGAvoH,EAAAuoH,eAEAu8H,EAAAhoP,UAAA03E,OAAA,WACA,IACA/6C,EADAz5B,EAAA/C,KAQA,OANA+C,EAAA6iM,kBACAppK,EAAAz5B,EAAAwsC,SACA/S,IACAz5B,EAAA6iM,gBAAAppK,EAAA5lB,WAGA7T,EAAA6iM,iBAEAiiD,EAAAhoP,UAAAgmB,QAAA,WACA,IAAAlP,EAAA3W,KAAAu3E,SACA,OAAAv3E,KAAAg5I,cAAAriI,IAAAiP,KAAA,OAEAiiO,EAAAhoP,UAAAozM,WAAA,SAAAhwG,EAAA3+F,EAAAozE,GACA,IAAA30E,EAAA/C,KAAA00E,EAAA3xE,EAAA2xE,SACA,OAAAA,EAAAyxR,sBACApjW,EAAAytV,aAAA,wBAAAvtP,EAAAvrB,GAAA,EAAApzE,IAEAowE,EAAA0zN,cAAA1wN,GAAA,SAAAA,EAAAryD,UAAA,IAAA49E,EAAA9iG,QAAA,cAAA8iG,EAAAnlG,OACAmlG,EAEAvuB,EAAA2zN,cACAtlS,EAAAw8F,gBAAAukQ,WAAA7gQ,IAEAA,EAAAlgG,EAAAw8F,gBAAA1pD,WAAAotD,EAAAvuB,EAAA4zN,oBACArlM,IAEA4kJ,EAAAhoP,UAAA2rO,UAAA,SAAA9zJ,GACA,IAGA2mM,EAHAt7Q,EAAA/C,KACA00E,EAAA3xE,EAAA2xE,SACAj9D,EAAA1U,EAAA0U,IAEAigE,KAAA30E,EAAA8iB,eACA9jB,IAAAgB,EAAA6wK,YACA7wK,EAAA6wK,UAAAl/F,EAAA6zN,QAEA08D,GAAAxtV,EAAAu5E,OAAA,UAAAtZ,GAAA,SAAAA,GACA,IAAAz5E,EACA,OAAAy5E,EAAAryD,UACA,YAQA,OAPAg5P,EAAA3pM,EAAA0xR,oBAAA,iBACAnoW,EAAAwZ,EAAA+3L,UAAA93H,EAAA,eACAz5E,GAAA,MAAAA,IAAA8E,EAAA6wK,UAGAn8J,EAAAw6J,YAAAv6F,EAAA2mM,GAFA5mQ,EAAAu6J,SAAAt6F,EAAA2mM,IAKA,QAUA,YATA5mQ,EAAA+3L,UAAA93H,EAAA,UACAz5E,EAAAwZ,EAAA+3L,UAAA93H,EAAA,SAAAA,EAAAr2E,GACAg9Q,EAAA3pM,EAAA2xR,qBAAA,kBACApoW,GAAA8E,EAAA6wK,UACAn8J,EAAAu6J,SAAAt6F,EAAA2mM,GAEA5mQ,EAAAw6J,YAAAv6F,EAAA2mM,QAMAt7Q,EAAAurF,KAAA,aACA7uE,QAAAi4D,EACAk8F,UAAA7wK,EAAA6wK,aAGAi0E,EAAAhoP,UAAAkrB,OAAA,WACA8M,GAAA73B,OAEA6nP,EAAAhoP,UAAAg/F,QAAA,SAAA0nM,GACA1nM,GAAA7+F,KAAAumS,IAEA1+C,EAAAhoP,UAAAq5S,aAAA,SAAA7oN,GACA,OAAArwF,KAAAu0P,aAAA2kD,aAAA7oN,IAEAw3J,EAAAhoP,UAAAymW,eAAA,WACA,OAAAtmW,KAAAu0P,aAAA4kD,iBAEAtxD,EAAAhoP,UAAA4yK,UAAA,WACA,UAAA5zK,MAAA,yKAEAgpP,EAAAhoP,UAAAilW,WAAA,WACA,UAAAjmW,MAAA,gGAEAgpP,EAAAhoP,UAAAozK,YAAA,WACA,UAAAp0K,MAAA,kGAEAgpP,EAAAhoP,UAAAiiP,kBAAA,WACA,UAAAjjP,MAAA,8GAEAgpP,EAjXA,GAoXA0+G,GAAA5mF,GAAAv4L,IACAo/Q,GAAArnW,GAAA86P,QAAAwsG,GAAAtnW,GAAAgD,KAAAukW,GAAAvnW,GAAAuoI,OACAi/N,GAAA,EAAAC,IAAA,EAEAC,GAAA,GACAhG,GAAA,GACAiG,GAAA,SAAAzlW,GACA,iBAAAA,GAEA0lW,GAAA,SAAA7mW,GACA,IAAAsE,EAAAtE,EAAAsE,KACAiiW,GAAAO,GAAA/+V,MAAA,SAAA4rE,GACA,OAAArvE,GACA,aACAqvE,EAAAya,KAAA,eAAApuF,GACA,MACA,aACA2zE,EAAAya,KAAA,eAAApuF,GACA,UAIA+mW,GAAA,SAAAx4V,GACAA,IAAAm4V,KACAn4V,EACA+pQ,GAAAt6P,QAAA4vB,GAAA,gBAAAi5T,IAEAvuF,GAAAt6P,QAAAu9B,IAAA,gBAAAsrT,IAEAH,GAAAn4V,IAGAy4V,GAAA,SAAAC,GACA,IAAAC,EAAAvG,UACAgG,GAAAM,EAAA9lW,IACA,QAAA3B,EAAA,EAAqBA,EAAAmnW,GAAA/oW,OAA0B4B,IAC/C,GAAAmnW,GAAAnnW,KAAAynW,EAAA,CACAN,GAAAt6Q,OAAA7sF,EAAA,GACA,MAYA,OATAmhW,GAAAt+V,EAAAs+V,GAAA,SAAAhtR,GACA,OAAAszR,IAAAtzR,IAEAmzR,GAAAhkE,eAAAmkE,IACAH,GAAAhkE,aAAA69D,GAAA/iW,OAAA,EAAA+iW,GAAA,SAEAmG,GAAAlkE,gBAAAqkE,IACAH,GAAAlkE,cAAA,MAEAskE,EAAAtpW,SAAA+iW,GAAA/iW,QAEAupW,GAAA,SAAAxzR,GAQA,OAPAA,KAAAygF,eAAAzgF,EAAAk4B,gBAAAl4B,EAAAhuD,WAAAH,aACAwhV,GAAArzR,GACAA,EAAAwyN,wBACAxyN,EAAAgrB,SAAA,GACAhrB,EAAA81D,SAAA,EACA91D,EAAA,MAEAA,GAEAyzR,GAAA,eAAAlqW,EAAAwZ,SAAA2wV,WACAP,GAAA3nW,IAAA,GAA4C6gW,IAAA,CAC5CuF,QAAA,KACAjmQ,QAAA,KACAyqM,gBAAA,GACAq7D,gBAAA,KACA9nV,OAAA,KACAyuL,EAAAusE,GACAgvF,aAAA,IACAC,aAAA,MACAC,YAAA,aACA7G,QAAAgG,GACAc,KAAA3lF,GACAghB,aAAA,KACAF,cAAA,KACApuN,SAAA,GACA/I,MAAA,WACA,IACA6zB,EAAA8lQ,EADAviW,EAAA/C,KACAwd,EAAA,GACA8nV,EAAAlC,GAAAhmE,mBAAAhgS,EAAAwZ,SAAAg7J,UACA,yBAAAr5J,KAAA+sV,KACAA,IAAAxsV,QAAA,eAAAA,QAAA,oBACA,UAAAP,KAAA+sV,KACAA,GAAA,MAGA,IAAAsC,EAAA1pV,OAAAjf,SAAAif,OAAA2pV,eACA,GAAAD,EACApoQ,EAAAooQ,EAAA78V,MAAA68V,EAAApoQ,QACAhiF,EAAAoqV,EAAApqV,WACS,CAET,IADA,IAAAojQ,EAAAxjR,EAAAwZ,SAAA8jP,qBAAA,UACAh7P,EAAA,EAAyBA,EAAAkhR,EAAA9iR,OAAoB4B,IAAA,CAC7C,IAAAutH,EAAA2zJ,EAAAlhR,GAAAutH,KAAA,GACA,QAAAA,EAAA,CAGA,IAAA66O,EAAA76O,EAAAt9F,UAAAs9F,EAAAi2J,YAAA,MACA,iDAAA3qQ,KAAA00G,GAAA,EACA,IAAA66O,EAAA3nW,QAAA,UACAqd,EAAA,QAEAgiF,EAAAytB,EAAAt9F,UAAA,EAAAs9F,EAAAi2J,YAAA,MACA,QAGA,IAAA1jL,GAAApiG,EAAAwZ,SAAAmxV,cAAA,CACA96O,EAAA7vH,EAAAwZ,SAAAmxV,cAAA96O,KACA,IAAAA,EAAA9sH,QAAA,UACAqd,EAAA,QAEAgiF,EAAAytB,EAAAt9F,UAAA,EAAAs9F,EAAAi2J,YAAA,OAGAngR,EAAAy8F,QAAA,IAAA4jQ,GAAAkC,GAAAzvT,WAAA2pD,GACAz8F,EAAAuiW,kBACAviW,EAAA0iW,QAAA,IAAArC,GAAArgW,EAAAy8F,SACAz8F,EAAAya,SACA0lR,GAAAv3N,MAAA5oE,IAEA23Q,iBAAA,SAAAuvB,GACA,IAAAniD,EAAAtqO,EACAsqO,EAAAmiD,EAAAs7D,SACAz9G,GACA9nP,KAAAwlW,YAAA19G,GAEAtqO,EAAAysR,EAAAzsR,OACAysR,EAAAzsR,SACAxd,KAAAwd,UAEAxd,KAAAiqS,kBACA,IAAA+9D,EAAA/9D,EAAAg+D,iBACA,QAAA3jW,KAAA0jW,EACA1kF,GAAAF,cAAAjnB,KAAA73P,GAAA0jW,EAAA1jW,IAGAqsB,KAAA,SAAA+jD,GACA,IACAzoE,EAAAi8V,EADAnlW,EAAA/C,KAEAkoW,EAAA/oW,GAAAmgJ,QAAA,kNACA,IAAA6oN,EAAA,SAAAzzR,EAAAgD,GACA,OAAAhD,EAAA4sB,QAAA5pB,EAAA6qH,QAAAppL,gBAAA+uV,GAEAE,EAAA,SAAA1wR,GACA,IAAAr2E,EAAAq2E,EAAAr2E,GAUA,OATAA,IACAA,EAAAq2E,EAAApzE,KAEAjD,EADAA,IAAAklW,GAAAt+V,IAAA5G,GACAq2E,EAAApzE,KAEAiiW,GAAAjoF,WAEA5mM,EAAA3rD,aAAA,KAAA1qB,IAEAA,GAEAmvV,EAAA,SAAAlsV,GACA,IAAA+rF,EAAA3b,EAAApwE,GACA,GAAA+rF,EAGA,OAAAA,EAAAtyF,MAAAgF,EAAAtC,MAAAZ,UAAAsF,MAAApF,KAAAlC,UAAA,KAEAy6M,EAAA,SAAA5gI,EAAA+9D,GACA,OAAAA,EAAApxI,cAAAqjF,OAAA+tD,EAAAl9H,KAAAm/D,EAAA+9D,WAAA8wN,GAAAjuJ,SAAA5gI,EAAA+9D,IAEA4rG,EAAA,SAAA3sK,GACA,IAAAo/B,EAAAy+B,EAAA,GACA,GAAAgmH,GAAA18O,QAAAzB,QAAAm+O,GAAA18O,QAAA7B,QAAAtB,MAAA,GAEA,OADA60R,GAAAD,UAAA,kKACA,GACW,GAAAg6D,GAEX,OADA/5D,GAAAD,UAAA,8GACA,GAEA,GAAA54N,EAAAwrE,MAIA,OAHAumN,GAAA/xR,EAAAwrE,MAAA,SAAA17I,GACA+tI,IAAA9zI,OAAA8nW,GAAAv1Q,OAAAxsF,EAAAkb,aAEA6yH,EACW,GAAA79D,EAAAh1D,SACX,OAAA6mV,GAAAv1Q,OAAAtc,EAAAh1D,UACW,GAAAg1D,EAAAxrE,OACX,OAAAwrE,EAAAxrE,QAEA,OAAAwrE,EAAAnwB,MACA,YACAuvD,EAAAp/B,EAAAhqD,UAAA,GACAopF,EAAAh2G,OAAA,GACA2oW,GAAAD,GAAA1yP,GAAA,SAAAzyG,GACA,IAAAq2E,GACAA,EAAA6uR,GAAAt+V,IAAA5G,IACAkxI,EAAAjtI,KAAAoyE,GAEA+uR,GAAArpW,EAAAwZ,SAAAq8I,MAAA,SAAA11J,GACAkpW,GAAAlpW,EAAAmtB,SAAA,SAAAxqB,GACAA,EAAAoE,OAAAjD,IACAA,EAAA,cAAAslW,KACAJ,GAAAn/H,UAAAlnO,EAAA,KAAAmB,GACAkxI,EAAAjtI,KAAApF,UAOA,MACA,gBACA,yBACAumW,GAAAF,GAAAv1Q,OAAA,qBAAAtZ,GACAhD,EAAA2zR,mBAAA/vJ,EAAA5gI,EAAAhD,EAAA2zR,oBAGA3zR,EAAA4zR,kBAAAhwJ,EAAA5gI,EAAAhD,EAAA4zR,kBACA/1N,EAAAjtI,KAAAoyE,KAGA,MAEA,OAAA66D,GAEAg2N,EAAA,SAAA1H,GACA50V,EAAA40V,GAEA2H,EAAA,WACA,IAEAj2N,EAFAk2N,EAAA,EACA5H,EAAA,GAEA6H,EAAA,SAAArnW,EAAAqzE,EAAA68F,GACA,IAAA19F,EAAA,IAAAg0K,GAAAxmP,EAAAqzE,EAAA3xE,GACA89V,EAAAv7V,KAAAuuE,GACAA,EAAA/lC,GAAA,oBACA26T,IAAAl2N,EAAAz0I,QACAyqW,EAAA1H,KAGAhtR,EAAA09F,UAAA19F,EAAA09F,aACA19F,EAAAqhB,UAEAqxQ,GAAAxtQ,OAAA76E,OAAA,QAAAsqV,GACAhY,EAAA,cACAj+M,EAAAimI,GAAAtrP,OAAAm0N,EAAA3sK,IACAA,EAAAwrE,MACAumN,GAAA/xR,EAAAwrE,MAAA,SAAA17I,GACArF,GAAAgD,KAAAowI,EAAA,SAAA76D,GACA,OAAA6uR,GAAA/kW,GAAAk2E,EAAAlzE,EAAAkb,YACAgpV,EAAAN,EAAA1wR,GAAAgvR,GAAA,GAAyDhyR,EAAAlwE,GAAAkzE,IACzD,QAOAv4E,GAAAgD,KAAAowI,EAAA,SAAA76D,GACA2vR,GAAAtkW,EAAAkF,IAAAyvE,EAAAr2E,OAEAkxI,EAAApzI,GAAAwhM,KAAApuD,EAAA,SAAA76D,GACA,OAAA30E,EAAAkF,IAAAyvE,EAAAr2E,MAEA,IAAAkxI,EAAAz0I,OACAyqW,EAAA,IAEA9B,GAAAl0N,EAAA,SAAA76D,GACAywR,EAAAzzR,EAAAgD,GACA61N,GAAAD,UAAA,sEAAA51N,GAEAgxR,EAAAN,EAAA1wR,GAAAhD,EAAAgD,OAOA,OAFA30E,EAAA2xE,WACA6xR,GAAAnkW,KAAA8b,OAAA,QAAAsqV,GACA,IAAAhxG,GAAA,SAAAp4P,GACA6M,EACA7M,EAAA6M,GAEAs8V,EAAA,SAAA1H,GACAzhW,EAAAyhW,OAKA54V,IAAA,SAAA5G,GACA,WAAAxD,UAAAC,OACA+iW,GAAA17V,MAAA,GACSV,EAAApD,GACTmF,EAAAq6V,GAAA,SAAAhtR,GACA,OAAAA,EAAAxyE,SACWK,MAAA,MACFoD,EAAAzD,IACTw/V,GAAAx/V,GAAAw/V,GAAAx/V,GAEA,MAGAw0B,IAAA,SAAAg+C,GACA,IACA80R,EADA5lW,EAAA/C,KAGA,OADA2oW,EAAA9B,GAAAhzR,EAAAxyE,IACAsnW,IAAA90R,EACAA,GAEA,OAAA9wE,EAAAkF,IAAA4rE,EAAAxyE,MACAylW,GAAAjzR,EAAAxyE,MACAwlW,GAAAhzR,EAAAxyE,IAAAwyE,GAEAgzR,GAAAvhW,KAAAuuE,GACAgtR,GAAAv7V,KAAAuuE,IAEAozR,IAAA,GACAlkW,EAAAigS,aAAAnvN,EACA9wE,EAAAurF,KAAA,aAAgCza,WAChC2+P,KACAA,GAAA,SAAAtyU,GACA,IAAA6gB,EAAAhe,EAAAurF,KAAA,gBACA,GAAAvtE,EAAAoqP,YAGA,OAFAjrQ,EAAAumB,iBACAvmB,EAAAirQ,YAAApqP,EAAAoqP,YACApqP,EAAAoqP,aAGAjtP,OAAA46E,iBAAA,eAAA05O,KAEA3+P,IAEA60R,aAAA,SAAArnW,EAAAqzE,GACA,OAAA10E,KAAA61B,IAAA,IAAAgyN,GAAAxmP,EAAAqzE,EAAA10E,QAEA+qB,OAAA,SAAArL,GACA,IACAhgB,EAAAm0E,EADA9wE,EAAA/C,KAEA,GAAA0f,EAAA,CAMA,IAAAjb,EAAAib,GAUA,OADAm0D,EAAAn0D,EACAq1O,EAAAhyP,EAAAkF,IAAA4rE,EAAAxyE,KACA,MAEA6lW,GAAArzR,IACA9wE,EAAAurF,KAAA,gBAAqCza,WAErC,IAAAgtR,GAAA/iW,QACAogB,OAAAg7E,oBAAA,eAAAs5O,IAEA3+P,EAAA9oD,SACAk8U,GAAApG,GAAA/iW,OAAA,GACA+1E,GApBA4yR,GAAAF,GAAAv1Q,OAAAtxE,GAAA,SAAAg4D,GACA7D,EAAA9wE,EAAAkF,IAAAyvE,EAAAr2E,IACAwyE,GACA9wE,EAAAgoB,OAAA8oD,UATA,IAAAn0E,EAAAmhW,GAAA/iW,OAAA,EAAsC4B,GAAA,EAAQA,IAC9CqD,EAAAgoB,OAAA81U,GAAAnhW,KA2BAwwF,YAAA,SAAAqiF,EAAA12F,EAAA59E,GACA,IAAA8E,EAAA/C,KAAA6zE,EAAA9wE,EAAAkF,IAAAhK,GACA,OAAAs0K,GACA,mBAIA,OAHAxvK,EAAAkF,IAAAhK,IACA,IAAA4pP,GAAA5pP,EAAA8E,EAAA2xE,SAAA3xE,GAAAmyF,UAEA,EACA,sBAIA,OAHArhB,GACAA,EAAA9oD,UAEA,EACA,sBACA,OAAA8oD,GAIAA,EAAAnc,WACAmc,EAAAkL,OAEAlL,EAAAzD,QAEA,IARArtE,EAAAmtF,YAAA,iBAAAjyF,IACA,GASA,QAAA8E,EAAAigS,cACAjgS,EAAAigS,aAAA9yM,YAAAqiF,EAAA12F,EAAA59E,IAIAs3V,YAAA,WACAkR,GAAA5F,GAAA,SAAAhtR,GACAA,EAAAsyN,UAGAyiE,QAAA,SAAA3jQ,EAAAjgD,GACAg9N,GAAAnsP,IAAAovE,EAAAjgD,IAEA9oB,UAAA,SAAA3kB,GACA,OAAAyqQ,GAAA9lP,UAAA3kB,IAEA0wE,UAAA,SAAApU,GACA,IAAAmvN,EAAAhjS,KAAAgjS,aACAhjS,KAAAgjS,eAAAnvN,IACAmvN,GACAA,EAAA10M,KAAA,cAA6Cq/K,cAAA95L,IAE7CA,EAAAya,KAAA,YAAmCq/K,cAAAq1B,KAEnChjS,KAAAgjS,aAAAnvN,GAEA2xR,YAAA,SAAA19G,GACA9nP,KAAAw/F,QAAA,IAAA4jQ,GAAApjW,KAAAslW,iBAAAzvT,WAAAiyM,EAAAhvO,QAAA,YACA9Y,KAAAylW,QAAA,IAAArC,GAAApjW,KAAAw/F,YAKA,SAAAqpQ,GAAApxV,GACA,IAAAuiP,EAAA,SAAA9qN,EAAAmhD,GACA,OAAAmnM,GAAAx9B,KAAAviP,EAAAy3B,EAAAmhD,IAEAzgE,EAAA48R,GACA70O,EAAA,SAAAzoC,GACA,OAAAu7R,GAAA9yP,UAAAlgE,EAAAy3B,GAAA3tC,KAAAvD,GAAA,YAAA8qW,GAGA,OAFA55T,EAAAQ,SAAAo5T,EAAA35T,eAAA25T,EAAAp4T,aACAxB,EAAAa,OAAA+4T,EAAAn4T,aAAAm4T,EAAAl4T,YACA,KAGA,OACAopN,OACApqO,QACA+nD,aAjBAqvR,GAAAr7R,QAoBA,SAAAk9R,GACAA,EAAAE,cAAAhuD,GAAAxlB,KACAszE,EAAAG,uBAAAnjC,GAAAnuT,UACAmxV,EAAAjhF,mBACAihF,EAAAvxR,WAJA,CAKKuxR,QAAA,KACL,IAyLAI,GAAAC,GAzLAC,GAAAN,GAEAO,GAAA,SAAAC,EAAAC,EAAAr0R,QACA,IAAAA,IACAA,EAAA,KAEA,IAAA/gE,GAAA,EACAyhE,EAAA,KACA6mB,EAAA,SAAAy1C,GACA,kBAEA,IADA,IAAAt0I,EAAA,GACAC,EAAA,EAA0BA,EAAAC,UAAAC,OAAuBF,IACjDD,EAAAC,GAAAC,UAAAD,GAEAsW,IACAA,GAAA,EACA,OAAAyhE,IACAv4E,EAAAy4E,aAAAF,GACAA,EAAA,MAEAs8D,EAAAl0I,MAAA,KAAAJ,MAIAyB,EAAAo9F,EAAA6sQ,GACAvhQ,EAAAtL,EAAA8sQ,GACAjsV,EAAA,WAEA,IADA,IAAA1f,EAAA,GACAC,EAAA,EAAwBA,EAAAC,UAAAC,OAAuBF,IAC/CD,EAAAC,GAAAC,UAAAD,GAEAsW,GAAA,OAAAyhE,IACAA,EAAAv4E,EAAA83E,WAAA,WACA,OAAA4yB,EAAA/pG,MAAA,KAAAJ,IACWs3E,KAGX,OACA53D,QACAje,UACA0oG,WAGAmnB,GAAA,WACA,IAAAs6O,EAAA,GACAC,EAAA,GACAxlS,EAAA,SAAA3iE,EAAA4hG,GACA,IAAAwmQ,EAAA,kBAAAxmQ,EAAA,mBACAymQ,EAAA,kBAAAzmQ,EAAA,0CAAA5hG,EAAA,4BACA,QAAAU,IAAAwnW,EAAAloW,GACA,OAAAkoW,EAAAloW,GAEA,IAAAsoW,EAAA,IAAAnyG,GAAA,SAAAp4P,EAAA0oG,GACA,IAAA8hQ,EAAAR,GAAAhqW,EAAA0oG,GACA0hQ,EAAAnoW,GAAAuoW,EAAAxqW,QACA8gR,gBAAAI,WAAAr9K,EAAA,WACA,OAAA2mQ,EAAAvsV,MAAAqsV,IACa,WACb,OAAAE,EAAA9hQ,OAAA2hQ,OAIA,OADAF,EAAAloW,GAAAsoW,EACAA,GAGA9zU,EAAA,SAAAx0B,EAAAwjB,QACA9iB,IAAAynW,EAAAnoW,KACAmoW,EAAAnoW,GAAAwjB,UACA2kV,EAAAnoW,IAEAkoW,EAAAloW,GAAAm2P,GAAAp4P,QAAAylB,IAEA,OACAm/C,OACAnuC,QAGAg0U,GAAA56O,KAEAp8E,GAAAnlB,KAAAmlB,IAAA1X,GAAAzN,KAAAyN,IAAA2uU,GAAAp8U,KAAA68D,MACAw/Q,GAAA,SAAA7qU,EAAAy0S,EAAAnoS,GACA,IAAArtC,EAAAyZ,EAAAynB,EAAAvE,EAAAkvU,EAAAC,EAgCA,OA/BA9rW,EAAAw1U,EAAAx1U,EACAyZ,EAAA+7T,EAAA/7T,EACAynB,EAAAH,EAAAG,EACAvE,EAAAoE,EAAApE,EACAkvU,EAAAr2B,EAAAt0S,EACA4qU,EAAAt2B,EAAA74S,EACA0Q,MAAA,IAAA5b,MAAA,IACA,MAAA4b,EAAA,KACA5zB,GAAAqyV,GAEA,MAAAz+T,EAAA,KACArtC,GAAA6rW,GAEA,MAAAx+T,EAAA,KACA5zB,GAAAkyV,GAAAG,EAAA,IAEA,MAAAz+T,EAAA,KACArtC,GAAA2rW,GAAAE,EAAA,IAEA,MAAAx+T,EAAA,KACA5zB,GAAAkjB,GAEA,MAAA0Q,EAAA,KACArtC,GAAAkhC,GAEA,MAAAmM,EAAA,KACA5zB,GAAAkyV,GAAAhvU,EAAA,IAEA,MAAA0Q,EAAA,KACArtC,GAAA2rW,GAAAzqU,EAAA,IAEAomG,GAAAtnI,EAAAyZ,EAAAynB,EAAAvE,IAEAovU,GAAA,SAAAhrU,EAAAy0S,EAAAw2B,EAAAC,GACA,IAAA1+T,EAAAhsC,EACA,IAAAA,EAAA,EAAiBA,EAAA0qW,EAAAtsW,OAAiB4B,IAElC,GADAgsC,EAAAq+T,GAAA7qU,EAAAy0S,EAAAy2B,EAAA1qW,IACAgsC,EAAAvtC,GAAAgsW,EAAAhsW,GAAAutC,EAAAvtC,EAAAutC,EAAArM,GAAA8qU,EAAA9qU,EAAA8qU,EAAAhsW,GAAAutC,EAAA9zB,GAAAuyV,EAAAvyV,GAAA8zB,EAAA9zB,EAAA8zB,EAAA5Q,GAAAqvU,EAAArvU,EAAAqvU,EAAAvyV,EACA,OAAAwyV,EAAA1qW,GAGA,aAEAopI,GAAA,SAAA5pG,EAAAG,EAAAvE,GACA,OAAA2qG,GAAAvmG,EAAA/gC,EAAAkhC,EAAAH,EAAAtnB,EAAAkjB,EAAAoE,EAAAG,EAAA,EAAAA,EAAAH,EAAApE,EAAA,EAAAA,IAEAuvU,GAAA,SAAAnrU,EAAA+oG,GACA,IAAAqiO,EAAAC,EAAAnkC,EAAAD,EAKA,OAJAmkC,EAAAnvU,GAAA+D,EAAA/gC,EAAA8pI,EAAA9pI,GACAosW,EAAApvU,GAAA+D,EAAAtnB,EAAAqwH,EAAArwH,GACAwuT,EAAAvzR,GAAA3T,EAAA/gC,EAAA+gC,EAAAG,EAAA4oG,EAAA9pI,EAAA8pI,EAAA5oG,GACA8mS,EAAAtzR,GAAA3T,EAAAtnB,EAAAsnB,EAAApE,EAAAmtG,EAAArwH,EAAAqwH,EAAAntG,GACAsrS,EAAAkkC,EAAA,GAAAnkC,EAAAokC,EAAA,EACA,KAEA9kO,GAAA6kO,EAAAC,EAAAnkC,EAAAkkC,EAAAnkC,EAAAokC,IAEAC,GAAA,SAAAtrU,EAAA0mG,EAAA6kO,GACA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAP,EAAAC,EAAAnkC,EAAAD,EAAA2kC,EAAAC,EAqBA,OApBAT,EAAAprU,EAAA/gC,EACAosW,EAAArrU,EAAAtnB,EACAwuT,EAAAlnS,EAAA/gC,EAAA+gC,EAAAG,EACA8mS,EAAAjnS,EAAAtnB,EAAAsnB,EAAApE,EACAgwU,EAAAllO,EAAAznI,EAAAynI,EAAAvmG,EACA0rU,EAAAnlO,EAAAhuH,EAAAguH,EAAA9qG,EACA4vU,EAAAvvU,GAAA,EAAAyqG,EAAAznI,EAAAmsW,GACAK,EAAAxvU,GAAA,EAAAyqG,EAAAhuH,EAAA2yV,GACAK,EAAAzvU,GAAA,EAAAirS,EAAA0kC,GACAD,EAAA1vU,GAAA,EAAAgrS,EAAA4kC,GACAT,GAAAI,EACAH,GAAAI,EACAF,IACArkC,GAAAskC,EACAvkC,GAAAwkC,EACAL,GAAAM,EACAL,GAAAM,GAEAzkC,GAAAwkC,EACAzkC,GAAA0kC,EACAplO,GAAA6kO,EAAAC,EAAAnkC,EAAAkkC,EAAAnkC,EAAAokC,IAEA9kO,GAAA,SAAAtnI,EAAAyZ,EAAAynB,EAAAvE,GACA,OACA38B,IACAyZ,IACAynB,IACAvE,MAGAkwU,GAAA,SAAAjiF,GACA,OAAAtjJ,GAAAsjJ,EAAA/sP,KAAA+sP,EAAA9sP,IAAA8sP,EAAArrP,MAAAqrP,EAAAttP,SAEA4hN,GAAA,CACAv0G,WACAihO,oBACAG,4BACAG,aACAv6O,MAAA06O,GACAzkU,OAAA0/F,GACAulO,mBAGAC,GAAA9rW,GAAAgD,KAAA+oW,GAAA/rW,GAAAuoI,OAEAyjO,GAAA,aAEAA,GAAAzjO,OAAAuhO,GAAA,SAAA94V,GACA,IAEAtQ,EAAAyE,EAAA8mW,EAFAroW,EAAA/C,KACAqrW,EAAAtoW,EAAAlD,UAEAsrW,EAAA,WACA,IAAAzrW,EAAA8pP,EAAA8hH,EACAvoW,EAAA/C,KACA,IAAAkpW,KACAnmW,EAAA4tB,MACA5tB,EAAA4tB,KAAA5yB,MAAAgF,EAAAlF,WAEA2rP,EAAAzmP,EAAAwoW,OACA/hH,GAAA,CACA9pP,EAAA8pP,EAAA1rP,OACA,MAAA4B,IACA4rW,EAAA9hH,EAAA9pP,GACA4rW,EAAA36U,MACA26U,EAAA36U,KAAA5yB,MAAAgF,EAAAlF,aAMA2tW,EAAA,WACA,OAAAxrW,MAEAyrW,EAAA,SAAAnnW,EAAAjG,GACA,kBACA,IAEA6L,EAFAnH,EAAA/C,KACA4xQ,EAAA7uQ,EAAAsoW,OAKA,OAHAtoW,EAAAsoW,SAAA/mW,GACA4F,EAAA7L,EAAAN,MAAAgF,EAAAlF,WACAkF,EAAAsoW,OAAAz5F,EACA1nQ,IA4CA,IAAA5F,KAzCA4kW,IAAA,EACArpW,EAAA,IAAAkD,EACAmmW,IAAA,EACA/4V,EAAAo7V,SACAN,GAAA96V,EAAAo7V,OAAA,SAAAD,GACA,QAAAI,KAAAJ,EACA,SAAAI,IACAv7V,EAAAu7V,GAAAJ,EAAAI,MAIAL,EAAAE,SACAp7V,EAAAo7V,OAAAF,EAAAE,OAAA9sW,OAAA0R,EAAAo7V,UAGAp7V,EAAAw7V,SACAV,GAAA96V,EAAAw7V,QAAA/7U,MAAA,cAAAtrB,GACA6L,EAAA7L,GAAAknW,IAGAr7V,EAAAy7V,YACAX,GAAA96V,EAAAy7V,WAAAh8U,MAAA,cAAAtrB,GACA,IAAAy+B,EAAA,IAAAz+B,EACA6L,EAAA7L,GAAA,SAAArG,GACA,IAAA8E,EAAA/C,KACA,YAAA+B,IAAA9D,GACA8E,EAAAggC,GAAA9kC,EACA8E,GAEAA,EAAAggC,MAIA5yB,EAAA07V,SACAZ,GAAA96V,EAAA07V,QAAA,SAAAv9V,EAAAhK,GACA6mW,EAAA7mW,GAAAgK,IAGA6B,EAAA27V,UAAAT,EAAAS,WACA37V,EAAA27V,SAAAZ,GAAA,GAAmCG,EAAAS,SAAA37V,EAAA27V,WAEnC37V,EACAi7V,EAAAj7V,EAAA7L,GACA,oBAAA8mW,GAAAC,EAAA/mW,GACAzE,EAAAyE,GAAAmnW,EAAAnnW,EAAA8mW,GAEAvrW,EAAAyE,GAAA8mW,EAMA,OAHAD,EAAAtrW,YACAsrW,EAAA9mW,YAAA8mW,EACAA,EAAAzjO,OAAAuhO,GACAkC,GAGA,IAyTAnsN,GAzTA+sN,GAAAr+U,KAAAmlB,IAAAm5T,GAAAt+U,KAAAyN,IAAA8wU,GAAAv+U,KAAA68D,MACA2hR,GAAA,SAAAjuW,GACA,IAAA8E,EAAA,GACAvC,EAAA,EAAA0qD,EAAA,EAAAhoD,EAAA,EACAipW,EAAA,SAAA3rW,EAAA0qD,EAAAhoD,GACA,IAAA43B,EAAAr7B,EAAAuD,EAAA8lB,EAAAkqF,EAAAC,EASA,OARAn4E,EAAA,EACAr7B,EAAA,EACAuD,EAAA,EACAxC,GAAA,IACA0qD,GAAA,IACAhoD,GAAA,IACA8vG,EAAA+4P,GAAAvrW,EAAAurW,GAAA7gT,EAAAhoD,IACA+vG,EAAA+4P,GAAAxrW,EAAAwrW,GAAA9gT,EAAAhoD,IACA8vG,IAAAC,GACAjwG,EAAAgwG,EACA,CACAl4E,EAAA,EACAr7B,EAAA,EACAuD,EAAA,IAAAA,KAGA8lB,EAAAtoB,IAAAwyG,EAAA9nD,EAAAhoD,MAAA8vG,EAAAxyG,EAAA0qD,EAAAhoD,EAAA1C,EACAs6B,EAAAt6B,IAAAwyG,EAAA,EAAA9vG,IAAA8vG,EAAA,IACAl4E,EAAA,IAAAA,EAAAhS,GAAAmqF,EAAAD,IACAvzG,GAAAwzG,EAAAD,GAAAC,EACAjwG,EAAAiwG,EACA,CACAn4E,EAAAmxU,GAAAnxU,GACAr7B,EAAAwsW,GAAA,IAAAxsW,GACAuD,EAAAipW,GAAA,IAAAjpW,MAGAopW,EAAA,SAAAthR,EAAAC,EAAAC,GACA,IAAAC,EAAAC,EAAA/sF,EAAAyK,EAMA,GALAkiF,GAAA7vD,SAAA6vD,EAAA,YACAC,EAAA9vD,SAAA8vD,EAAA,QACAC,EAAA/vD,SAAA+vD,EAAA,QACAD,EAAAihR,GAAA,EAAAD,GAAAhhR,EAAA,IACAC,EAAAghR,GAAA,EAAAD,GAAA/gR,EAAA,IACA,IAAAD,EAAA,CAQA,OAJAE,EAAAH,EAAA,GACAI,EAAAF,EAAAD,EACA5sF,EAAA+sF,GAAA,EAAAx9D,KAAAgkB,IAAAu5C,EAAA,MACAriF,EAAAoiF,EAAAE,EACAx9D,KAAAC,MAAAs9D,IACA,OACAzqF,EAAA0qF,EACAhgC,EAAA/sD,EACA+E,EAAA,EACA,MACA,OACA1C,EAAArC,EACA+sD,EAAAggC,EACAhoF,EAAA,EACA,MACA,OACA1C,EAAA,EACA0qD,EAAAggC,EACAhoF,EAAA/E,EACA,MACA,OACAqC,EAAA,EACA0qD,EAAA/sD,EACA+E,EAAAgoF,EACA,MACA,OACA1qF,EAAArC,EACA+sD,EAAA,EACAhoD,EAAAgoF,EACA,MACA,OACA1qF,EAAA0qF,EACAhgC,EAAA,EACAhoD,EAAA/E,EACA,MACA,QACAqC,EAAA0qD,EAAAhoD,EAAA,EAEA1C,EAAAyrW,GAAA,KAAAzrW,EAAAoI,IACAsiD,EAAA+gT,GAAA,KAAA/gT,EAAAtiD,IACA1F,EAAA+oW,GAAA,KAAA/oW,EAAA0F,SA3CApI,EAAA0qD,EAAAhoD,EAAA+oW,GAAA,IAAAjhR,IA6CAf,EAAA,WACA,IAAAP,EAAA,SAAAv8E,GAEA,OADAA,EAAA8tB,SAAA9tB,EAAA,IAAAxK,SAAA,IACAwK,EAAArP,OAAA,EAAAqP,EAAA,IAAAA,GAEA,UAAAu8E,EAAAlpF,GAAAkpF,EAAAx+B,GAAAw+B,EAAAxmF,IAEAmpW,EAAA,WACA,OACA7rW,IACA0qD,IACAhoD,MAGAopW,EAAA,WACA,OAAAH,EAAA3rW,EAAA0qD,EAAAhoD,IAEA60E,EAAA,SAAA95E,GACA,IAAAmgB,EA2BA,MA1BA,kBAAAngB,EACA,MAAAA,GACAuC,EAAAvC,EAAAuC,EACA0qD,EAAAjtD,EAAAitD,EACAhoD,EAAAjF,EAAAiF,GACW,MAAAjF,GACXmuW,EAAAnuW,EAAA68B,EAAA78B,EAAAwB,EAAAxB,EAAA+E,IAGAob,EAAA,8DAAA4rE,KAAA/rF,KACAuC,EAAAy6B,SAAA7c,EAAA,OACA8sC,EAAAjwB,SAAA7c,EAAA,OACAlb,EAAA+3B,SAAA7c,EAAA,SACWA,EAAA,oCAAmD4rE,KAAA/rF,KAC9DuC,EAAAy6B,SAAA7c,EAAA,OACA8sC,EAAAjwB,SAAA7c,EAAA,OACAlb,EAAA+3B,SAAA7c,EAAA,SACWA,EAAA,2BAAA4rE,KAAA/rF,MACXuC,EAAAy6B,SAAA7c,EAAA,GAAAA,EAAA,OACA8sC,EAAAjwB,SAAA7c,EAAA,GAAAA,EAAA,OACAlb,EAAA+3B,SAAA7c,EAAA,GAAAA,EAAA,QAGA5d,IAAA,IAAAA,EAAA,QAAAA,EACA0qD,IAAA,IAAAA,EAAA,QAAAA,EACAhoD,IAAA,IAAAA,EAAA,QAAAA,EACAH,GASA,OAPA9E,GACA85E,EAAA95E,GAEA8E,EAAAspW,QACAtpW,EAAAupW,QACAvpW,EAAAknF,QACAlnF,EAAAg1E,QACAh1E,GAGAqxM,GAAA,SAAA3sM,GACA,IAAAod,EAAAjW,KAAAC,UAAApH,GACA,OAAAhD,EAAAogB,GAGAA,EAAA/L,QAAA,4BAAAlQ,GACA,IAAA2jW,EAAA3jW,EAAAolH,WAAA,GAAArrH,SAAA,IACA,mBAAAgtB,UAAA48U,EAAAzuW,QAAAyuW,IAJA1nV,GAOA2nV,GAAA,CACAp4J,aACAr8H,MAAA,SAAAxgE,GACA,IACA,OAAA3I,KAAAmpE,MAAAxgE,GACS,MAAA6wF,OAKTqkQ,GAAA,CACAniQ,UAAA,GACA7hG,MAAA,EACAugP,KAAA,SAAAt0K,GACA,IAAA3xE,EAAA/C,KAAAyX,EAAAkoQ,GAAAv4L,IAAA3+E,OAAA1G,IAAA2yE,EAAAjsE,MAAAisE,EAAAjsE,MAAA1F,EAAA0F,MACApH,EAAA,iBAAAoH,EACA1F,EAAAunG,UAAA7hG,GAAA,SAAAmgP,GACAnxO,EAAAsT,OAAA1pB,UACA0B,EAAAunG,UAAA7hG,GACAisE,EAAA2b,SAAAu4J,IAEAnxO,EAAAoe,IAAApe,EAAAd,IAAAiP,KAAA,UACAvkB,KACA4rH,IAAAv4C,EAAAuuB,IACAz+F,KAAA,oBAEAzB,EAAA0F,UAIAikW,GAAArtW,IAAA,GAAkC6gW,IAAA,CAClCl3G,KAAA,SAAAt0K,GACA,IAAA2zK,EAAA5/O,EAAA,EACAkkW,EAAA,YACAj4R,EAAAknL,OAAA,IAAAvT,EAAAwkB,YAAApkQ,IAAA,KACAisE,EAAApC,SAAA7pE,EAAA,WAAA4/O,EAAA3mN,OACAgzC,EAAApC,QAAAvyE,KAAA20E,EAAAk4R,cAAA,GAAAvkH,EAAAQ,aAAAR,EAAA3zK,GACaA,EAAA9wE,OACb8wE,EAAA9wE,MAAA7D,KAAA20E,EAAAm4R,YAAApkW,EAAA,0BAAA4/O,EAAA3zK,GAEA2zK,EAAA,MAEA4P,GAAA/iL,WAAAy3R,EAAA,KAUA,GAPAj4R,EAAAh+D,MAAAg+D,EAAAh+D,OAAA1W,KACA00E,EAAAk4R,cAAAl4R,EAAAk4R,eAAAl4R,EAAAh+D,MACAg+D,EAAAm4R,YAAAn4R,EAAAm4R,aAAAn4R,EAAAh+D,MACAg+D,EAAAknL,OAAA,IAAAlnL,EAAAknL,MACAlnL,EAAA7vD,KAAA6vD,EAAA7vD,MAAA,GACA6nV,GAAAp+Q,KAAA,oBAAsC5Z,aACtC2zK,EAAA,IAAAjrP,EAAAorP,eACAH,EAAA,CAsBA,GArBAA,EAAAykH,kBACAzkH,EAAAykH,iBAAAp4R,EAAAq4R,cAEA1kH,EAAAvnM,KAAA4zB,EAAAlwE,OAAAkwE,EAAA7vD,KAAA,cAAA6vD,EAAAuuB,IAAAvuB,EAAAknL,OACAlnL,EAAAs4R,cACA3kH,EAAAI,iBAAA,GAEA/zK,EAAAq4R,cACA1kH,EAAAK,iBAAA,eAAAh0K,EAAAq4R,cAEAr4R,EAAAu4R,gBACA9tW,GAAAgD,KAAAuyE,EAAAu4R,eAAA,SAAAt2N,GACA0xG,EAAAK,iBAAA/xG,EAAAzuI,IAAAyuI,EAAA14I,SAGAoqP,EAAAK,iBAAA,qCACAL,EAAAqkH,GAAAp+Q,KAAA,cACA+5J,MACA3zK,aACW2zK,IACXA,EAAAW,KAAAt0K,EAAA7vD,OACA6vD,EAAAknL,MACA,OAAA+wG,IAEA10G,GAAA/iL,WAAAy3R,EAAA,QAKAO,GAAA/tW,GAAAuoI,OACAylO,GAAA,WACA,SAAAA,EAAAz4R,GACA10E,KAAA00E,SAAAw4R,GAAA,GAAmCx4R,GACnC10E,KAAAyI,MAAA,EAgCA,OA9BA0kW,EAAAC,QAAA,SAAAlsW,GACA,WAAAisW,GAAAnkH,KAAA9nP,IAEAisW,EAAAttW,UAAAmpP,KAAA,SAAArrP,GACA,IAAA0vW,EAAA1vW,EAAAiG,MAAA0pW,EAAA3vW,EAAA20E,QACAi7R,EAAAL,GAAAltW,KAAA00E,SAAA/2E,GACA4vW,EAAAj7R,QAAA,SAAA5qD,EAAAvpB,GACAupB,EAAA8kV,GAAAz0R,MAAArwD,GACA,qBAAAA,IACAA,EAAA,CAAiB9jB,MAAA,sBAEjB8jB,EAAA9jB,MACAypW,EAAAttW,KAAAwtW,EAAAV,aAAAU,EAAA72V,MAAAgR,EAAA9jB,MAAAzF,GAEAmvW,EAAAvtW,KAAAwtW,EAAAX,eAAAW,EAAA72V,MAAAgR,EAAAzb,SAGAshW,EAAA3pW,MAAA,SAAA4pW,EAAArvW,GACAkvW,GACAA,EAAAttW,KAAAwtW,EAAAV,aAAAU,EAAA72V,MAAA82V,EAAArvW,IAGAovW,EAAA1oV,KAAA2nV,GAAAp4J,UAAA,CACA/yM,GAAA1D,EAAA0D,IAAA,IAAArB,KAAAyI,QACA07J,OAAAxmK,EAAAwmK,OACA76J,OAAA3L,EAAA2L,SAEAikW,EAAAR,aAAA,mBACAL,GAAA1jH,KAAAukH,IAEAJ,EAnCA,GAsCAjwN,GAAA,WACA,kBACA,IAAAr4H,EAAA,GACAtd,EAAA,GACA2xH,EAAA,CACAngD,QAAA,SAAA7wE,GACA,IAAAmxB,EAAAxU,EAAA3c,GACA,OAAAmxB,GAAA,MAEAgzD,QAAA,SAAAnkF,EAAAjK,GACAsJ,EAAAjC,KAAA4C,GACA2c,EAAA3c,GAAApE,OAAA7F,IAEAiK,IAAA,SAAAwhB,GACA,OAAAniB,EAAAmiB,IAEA+jV,WAAA,SAAAvlW,GACAX,IAAAhF,OAAA,SAAA7B,GACA,OAAAA,IAAAwH,WAEA2c,EAAA3c,IAEAs5C,MAAA,WACAj6C,EAAA,GACAsd,EAAA,IAEA/mB,OAAA,GASA,OAPAwB,OAAA2uB,eAAAirG,EAAA,UACAjxH,IAAA,WACA,OAAAV,EAAAzJ,QAEA4vW,cAAA,EACAC,YAAA,IAEAz0O,EAlCA,IAuCA,IACA8lB,GAAA5hJ,EAAA8gB,OAAA8gI,aACK,MAAA9+I,IACL8+I,GAAA9B,KAEA,IAAA0wN,GAAA5uN,GAEA6uN,GAAA,CACAC,KAAA,CAAazwH,SACbn+O,KAAA,CACAgoG,QAAAswJ,GACAS,SACA94P,SACA68S,MACAonD,OACA+H,SACA5L,mBACAW,cACAl+E,QACA0qF,OACA99V,KAAA49V,GACAW,eACAV,SACAmB,gBACA1B,UAEAz0V,IAAA,CACAs1P,cACAyD,UACAgI,YACAmC,cACAuB,SAAAyD,GACAO,gBACA2oF,WAAAM,GACA9oE,WAAAmgC,GACAO,oBACAL,gBAAAC,GACAlxR,UAAA88R,GACAr+F,MAAA6+B,GAAA7+B,OAEAz3N,KAAA,CACAk4M,UACA+yC,YACAzpP,KAAAohR,GACAt2B,UACAq3B,UAAAkC,GACA4hC,aACAt+B,UACAS,eAEA9nC,OACA2pB,aAAAoB,GACAqV,aACAsiC,aACAnQ,eACAqxC,kBACAp+J,iBACAytG,uBACAs1D,oBACAkB,aACAn6G,UACAg6C,gBACAmlE,iBACA5/Q,IAAAu4L,GAAAv4L,IACA84L,6BACAkD,cAAAE,GAAAF,cACAC,aAAAC,GAAAD,aACAwxB,eACAg1D,YACApsV,KAAAte,GAAAse,KACA9Y,QAAAxF,GAAAwF,QACAnD,GAAArC,GAAAqC,GACAkB,QAAAvD,GAAAuD,QACA48I,QAAAngJ,GAAAmgJ,QACAn9I,KAAAhD,GAAAgD,KACAD,IAAA/C,GAAA+C,IACAy+L,KAAAxhM,GAAAwhM,KACAyN,QAAAjvM,GAAAivM,QACA1mE,OAAAvoI,GAAAuoI,OACA3hG,OAAA5mC,GAAA4mC,OACAi0N,KAAA76P,GAAA66P,KACAH,SAAA16P,GAAA06P,SACAz6P,QAAAD,GAAAC,QACA66P,QAAA96P,GAAA86P,QACAC,gBAAA/6P,GAAA+6P,gBACA7/O,QAAAk+O,GAAA9+O,MACAyzU,SAAA30F,GAAAH,OACAh+O,KAAAm+O,GAAA/+O,GACAyzU,QAAA10F,GAAAC,MACAu1G,MAAAx1G,GAAA53K,KAEA1hF,GAAAE,GAAAuoI,OAAAs/N,GAAA6G,IAEAG,GAAA,SAAA/uW,GAEA,IACA0lG,EAAAC,QAAA3lG,EACS,MAAAsE,MAIT0qW,GAAA,SAAAhvW,GACAif,OAAAjf,UACAif,OAAAgwV,QAAAjvW,GAEAgvW,GAAAhvW,IACA+uW,GAAA/uW,KAhl3BA,CAkl3BCif,oDCll3BD,WACA,aAEA,IAAA/gB,EAAA8B,QAAAC,KAAAC,MAAAC,QAAA,yBAEA/B,EAAA,aAEAW,EAAA,SAAAC,GACA,kBACA,OAAAA,IAGAC,EAAA,SAAAC,GACA,OAAAA,GAEAW,EAAAd,GAAA,GACAe,EAAAf,GAAA,GAEAqB,EAAA,WAUA,OATAA,EAAAC,OAAAC,QAAA,SAAAC,GACA,QAAAC,EAAAC,EAAA,EAAAC,EAAA9B,UAAAC,OAAgD4B,EAAAC,EAAOD,IAEvD,QAAAE,KADAH,EAAA5B,UAAA6B,GACAD,EACAH,OAAAO,UAAAC,eAAAC,KAAAN,EAAAG,KACAJ,EAAAI,GAAAH,EAAAG,IAEA,OAAAJ,GAEAH,EAAAtB,MAAAiC,KAAAnC,YAGAswW,EAAA,CACAC,QAAA,owBACAC,UAAA,gBACAC,UAAA,aACAC,OAAA,wBACA/sG,QAAA,4GACAtlD,GAAA,MACAsyJ,GAAA,MACAC,QAAA,sBACA/mO,OAAA,yaACA54C,OAAA,iCACA4/Q,SAAA,4BACAC,aAAA,qBACAC,YAAA,wQAEAC,EAAA,CACAC,QAAA,EACAC,UAAA,EACAC,UAAA,EACAC,OAAA,EACAC,QAAA,EACAC,GAAA,EACAC,GAAA,EACAC,QAAA,EACAC,OAAA,EACAC,OAAA,EACAC,SAAA,GACAC,aAAA,GACAC,GAAA,GACAC,MAAA,IAEAC,EAAA,CACA,IAAAloR,OAAAymR,EAAAC,SACA,IAAA1mR,OAAAymR,EAAAE,WACA,IAAA3mR,OAAAymR,EAAAG,WACA,IAAA5mR,OAAAymR,EAAAI,QACA,IAAA7mR,OAAAymR,EAAA3sG,SACA,IAAA95K,OAAAymR,EAAAjyJ,IACA,IAAAx0H,OAAAymR,EAAAK,IACA,IAAA9mR,OAAAymR,EAAAM,SACA,IAAA/mR,OAAAymR,EAAAzmO,QACA,IAAAhgD,OAAAymR,EAAAr/Q,QACA,IAAApH,OAAAymR,EAAAO,UACA,IAAAhnR,OAAAymR,EAAAQ,cACA,IAAAjnR,OAAA,MAEAmoR,EAAA,GACAC,EAAA,IAAApoR,OAAA,IAAAymR,EAAAS,YAAA,KACAmB,EAAA,QAEAhvW,EAAA,WACA,OAAAC,GAEAA,EAAA,WACA,IAAAC,EAAA,SAAAC,GACA,OAAAA,EAAAC,UAEApB,EAAA,SAAAqB,GACA,OAAAA,KAEAC,EAAA,SAAA1B,GACA,OAAAA,GAEA2B,EAAA,CACAC,KAAA,SAAA5B,EAAAF,GACA,OAAAE,KAEA6B,GAAA1C,EACA2C,OAAA3C,EACAqC,OAAApC,EACA2C,MAAAL,EACAM,WAAA5B,EACA6B,SAAA,SAAAhD,GACA,UAAAC,MAAAD,GAAA,oCAEAiD,UAAA7D,EAAA,MACA8D,eAAA9D,OAAA+D,GACAC,GAAAX,EACAY,QAAAlC,EACAmC,IAAAnB,EACAoB,KAAA9E,EACA+E,KAAArB,EACAsB,OAAAvD,EACAwD,OAAAvD,EACAwD,OAAAxB,EACAyB,OAAAvB,EACAwB,QAAAxB,EACAyB,QAAA,WACA,UAEAC,SAAA3E,EAAA,WAKA,OAHAsB,OAAAsD,QACAtD,OAAAsD,OAAAtB,GAEAA,EA1CA,GA6CA6C,EAAA,SAAAhG,GACA,UAAAA,EACA,aAEA,IAAAqB,SAAArB,EACA,iBAAAqB,IAAAiB,MAAAZ,UAAAuE,cAAAjG,MAAAkG,aAAA,UAAAlG,EAAAkG,YAAAC,MACA,QAEA,WAAA9E,IAAAsE,OAAAjE,UAAAuE,cAAAjG,MAAAkG,aAAA,WAAAlG,EAAAkG,YAAAC,MACA,SAEA9E,GAEA+E,EAAA,SAAAC,GACA,gBAAAvG,GACA,OAAAkG,EAAAlG,KAAAuG,IAGAK,EAAAN,EAAA,YAEAW,EAAAzE,MAAAZ,UAAAsF,MACAjD,EAAA,SAAAuD,EAAAlI,GAGA,IAFA,IAAA0H,EAAAQ,EAAA3H,OACA0C,EAAA,IAAAC,MAAAwE,GACAvF,EAAA,EAAqBA,EAAAuF,EAASvF,IAAA,CAC9B,IAAAvB,EAAAsH,EAAA/F,GACAc,EAAAd,GAAAnC,EAAAY,EAAAuB,GAEA,OAAAc,GAMAwvW,GAJAnrW,EAAApE,MAAA0C,OAAA1C,MAAA0C,KAIAysW,GACAD,EAAAd,EAAAc,MACAvgP,EAAA,SAAAn3C,GAGA,IAFA,IAAAzzE,EAAAmrW,EACAM,EAAAD,EAAAlyW,OACA8C,EAAA,EAAqBA,EAAAqvW,IAAgBrvW,EAAA,CACrC,IAAA0V,EAAA05V,EAAApvW,GACA,GAAA0V,KAAAiC,KAAA0/D,GAAA,CACAzzE,EAAA5D,EACA,OAGA,OAAA4D,GAEA0rW,EAAA,SAAA5hW,GACA,IAAA49E,EAAA,GACA,gBAAAjU,GACA,GAAAiU,EAAAjU,GACA,OAAAiU,EAAAjU,GAEA,IAAAhsE,EAAAqC,EAAA2pE,GAEA,OADAiU,EAAAjU,GAAAhsE,EACAA,IAIAkkW,EAAA,SAAAptL,GACA,IAAAqtL,EAAAF,EAAA9gP,GACA,OAAAltH,EAAA6gL,EAAAqtL,IAGAC,EAAA,SAAAnuW,EAAAwnB,GACA,IAAA4mV,EAGAC,EAFA/rW,EAAAtC,EAAAwnB,GACA8mV,EAAAtuW,EAAAwnB,EAAA,GAEA,QAAAA,EAAA,GAAAA,EAAAxnB,EAAApE,OAAA,OAAA4rB,MAGAllB,IAAAqqW,EAAAC,SAAA0B,IAAA3B,EAAAC,WAGAyB,EAAAruW,EAAAwnB,EAAA,IACAllB,IAAAqqW,EAAAC,SAAA0B,IAAA3B,EAAAG,WAAAwB,IAAA3B,EAAAE,WAAAyB,IAAA3B,EAAAa,IAAAa,IAAA1B,EAAAC,WAGAwB,EAAApuW,EAAAwnB,EAAA,IACAllB,IAAAqqW,EAAAG,WAAAxqW,IAAAqqW,EAAAE,WAAAyB,IAAA3B,EAAAa,IAAAc,IAAA3B,EAAAC,SAAAwB,IAAAzB,EAAAC,YAGAtqW,IAAAqqW,EAAAK,SAAA1qW,IAAAqqW,EAAAC,SAAA0B,IAAA3B,EAAAK,SAAAsB,IAAA3B,EAAAC,YAGAtqW,IAAAqqW,EAAAI,QAAAzqW,IAAAqqW,EAAAE,WAAAyB,IAAA3B,EAAAK,SAAAoB,IAAAzB,EAAAK,YAGA1qW,IAAAqqW,EAAAK,SAAAsB,IAAA3B,EAAAI,QAAAuB,IAAA3B,EAAAE,WAAAwB,IAAA1B,EAAAK,WAGA1qW,IAAAqqW,EAAAS,QAAA9qW,IAAAqqW,EAAAU,QAAAe,IAAAzB,EAAAS,QAAAgB,IAAAzB,EAAAU,QAAAiB,IAAA3B,EAAAS,QAAAkB,IAAA3B,EAAAU,UAGA/qW,IAAAqqW,EAAAM,IAAAqB,IAAA3B,EAAAO,MAGA5qW,IAAAqqW,EAAAQ,SAAA7qW,IAAAqqW,EAAAM,IAAA3qW,IAAAqqW,EAAAO,KAGAoB,IAAA3B,EAAAQ,SAAAmB,IAAA3B,EAAAM,IAAAqB,IAAA3B,EAAAO,KAGA5qW,IAAAqqW,EAAAW,UAAAgB,IAAA3B,EAAAW,aAGAgB,IAAA3B,EAAAY,cAAAjrW,IAAAqqW,EAAAC,SAAAtqW,IAAAqqW,EAAAK,SAAA1qW,IAAAqqW,EAAAW,UAAAhrW,IAAAqqW,EAAAY,iBAGAjrW,IAAAqqW,EAAAY,cAAAe,IAAA3B,EAAAC,SAAA0B,IAAA3B,EAAAK,SAAAsB,IAAA3B,EAAAW,WAGAhrW,IAAAqqW,EAAAa,gBAMAe,EAAAZ,EACAa,EAAAX,EACAY,EAAAb,EACAc,EAAA,SAAAzzV,GACA,eAAAA,GAAA,UAAAA,GAEA0zV,EAAA,SAAA9tL,EAAA2gC,GACA,IAAAhkN,EACA,IAAAA,EAAAgkN,EAA0BhkN,EAAAqjL,EAAAjlL,OAAuB4B,IACjD,GAAAgxW,EAAAn4V,KAAAwqK,EAAArjL,IACA,MAGA,OAAAA,GAEAoxW,EAAA,SAAA/tL,EAAA2gC,GACA,IAAAl0L,EAAAqhV,EAAA9tL,EAAA2gC,EAAA,GACAqtJ,EAAAhuL,EAAA59K,MAAAu+M,EAAA,EAAAl0L,GAAAzmB,KAAA0nW,GACA,cAAAM,EAAA3zV,OAAA,KAAAoS,EAAAk0L,GAEAstJ,EAAA,SAAAxlB,EAAAylB,EAAAC,EAAAz0T,GAGA,IAFA,IAAAqmI,EAAA,GACAquL,EAAA,GACAzxW,EAAA,EAAqBA,EAAAwxW,EAAApzW,SAAyB4B,EAE9C,GADAyxW,EAAA7rW,KAAAkmV,EAAA9rV,IACA2wW,EAAAa,EAAAxxW,GAAA,CACA,IAAAuS,EAAAg/V,EAAAvxW,GACA,IAAA+8C,EAAA20T,oBAAAV,EAAAn4V,KAAAtG,MAAAwqC,EAAA40T,qBAAAV,EAAAp4V,KAAAtG,IAAA,CACA,IAAAq/V,EAAA5xW,EAAAyxW,EAAArzW,OAAA,EACAyzW,EAAA7xW,EAAA,EACAyd,EAAA8zV,EAAA9rW,MAAAmsW,EAAAC,GAAAxoW,KAAA0nW,GACA,GAAAG,EAAAzzV,GAAA,CACA,IAAAq0V,EAAAV,EAAAG,EAAAvxW,GACAujG,EAAAuoP,EAAArmV,MAAAosW,EAAAC,GACA/wW,MAAAZ,UAAAyF,KAAAvH,MAAAozW,EAAAluQ,GACAvjG,EAAA8xW,EAEA1uL,EAAAx9K,KAAA6rW,GAEAA,EAAA,GAGA,OAAAruL,GAEA2uL,EAAA,WACA,OACAL,mBAAA,EACAC,oBAAA,IAGAK,EAAA,SAAAlmB,EAAAl7U,EAAAmsC,GACAA,EAAAp9C,IAAA,GAAoCoyW,KAAAh1T,GAGpC,IAFA,IAAAk1T,EAAA,GACAC,EAAA,GACAlyW,EAAA,EAAqBA,EAAA8rV,EAAA1tV,OAAkB4B,IAAA,CACvC,IAAAuS,EAAA3B,EAAAk7U,EAAA9rV,IACA,WAAAuS,IACA0/V,EAAArsW,KAAAkmV,EAAA9rV,IACAkyW,EAAAtsW,KAAA2M,IAGA,IAAAi/V,EAAAf,EAAAyB,GACA,OAAAZ,EAAAW,EAAAC,EAAAV,EAAAz0T,IAGAo1T,EAAAH,EAEA1yW,EAAAC,QAAAC,KAAAC,MAAAC,QAAA,0BAEA+4E,EAAA,SAAA9gE,EAAAzF,GACA,IAAA+tL,EAAA/tL,EAAAwwL,mBACA43F,EAAApoR,EAAA+1P,wBACAmqG,EAAA,SAAAz6V,GACA,OAAAsoL,EAAAtoL,EAAAgO,WAAA20Q,EAAA3iR,EAAAgO,WAEA+jL,EAAA,GACA2oK,EAAA,GACAC,EAAA,IAAAhzW,EAAAqY,KACA,MAAAA,EAAA26V,EAAA/9V,OACA,IAAAoD,EAAAsI,SACAoyV,GAAA16V,EAAAwN,KACSitV,EAAAz6V,IAAA06V,EAAAj0W,SACTsrM,EAAA9jM,KAAAysW,GACAA,EAAA,IAMA,OAHAA,EAAAj0W,QACAsrM,EAAA9jM,KAAAysW,GAEA3oK,GAGA6oK,EAAA,SAAA90V,GACA,OAAAA,EAAArE,QAAA,uCAAAhb,QAEAo0W,EAAA,SAAA76V,EAAAzF,GACA,IAAA2F,EAAA4gE,EAAA9gE,EAAAzF,GAAA7I,KAAA,MACA,OAAA8oW,EAAAt6V,EAAAqY,MAAA,IAAA1xB,GAAAJ,QAEAq0W,EAAA,SAAA96V,EAAAzF,GACA,IAAA2F,EAAA4gE,EAAA9gE,EAAAzF,GAAA7I,KAAA,IACA,OAAAkpW,EAAA16V,IAEA66V,EAAA,SAAA/6V,EAAAzF,GACA,IAAA2F,EAAA4gE,EAAA9gE,EAAAzF,GAAA7I,KAAA,IAAA+P,QAAA,UACA,OAAAm5V,EAAA16V,IAGA86V,EAAA,SAAAx+R,EAAAprE,GACA,kBACA,OAAAA,EAAAorE,EAAAhuD,UAAAguD,EAAAjiE,UAGA0gW,EAAA,SAAAz+R,EAAAprE,GACA,kBACA,OAAAA,EAAAorE,EAAA5kC,UAAAkrC,SAAAwuP,gBAAA90P,EAAAjiE,UAGA2gW,EAAA,SAAA1+R,GACA,OAAAw+R,EAAAx+R,EAAAq+R,IAEAjqW,EAAA,SAAA4rE,GACA,OACAjuD,KAAA,CACA4sV,aAAAD,EAAA1+R,GACA4+R,kBAAAJ,EAAAx+R,EAAAs+R,GACAO,+BAAAL,EAAAx+R,EAAAu+R,IAEAnjU,UAAA,CACAujU,aAAAF,EAAAz+R,EAAAq+R,GACAO,kBAAAH,EAAAz+R,EAAAs+R,GACAO,+BAAAJ,EAAAz+R,EAAAu+R,IAEAO,SAAAJ,EAAA1+R,KAIAF,EAAA10E,QAAAC,KAAAC,MAAAC,QAAA,sBAEAwzW,EAAA,SAAA/+R,EAAAt4C,GACAs4C,EAAAya,KAAA,mBACA40F,UAAA,CACAJ,MAAAvnJ,EAAA3V,KAAA4sV,eACAzvL,WAAAxnJ,EAAA3V,KAAA6sV,oBACAI,wBAAAt3U,EAAA3V,KAAA8sV,qCAKAI,EAAA,SAAAj/R,EAAAt4C,GACAq3U,EAAA/+R,EAAAt4C,IAEAowC,EAAA,SAAAkI,EAAAt4C,EAAA0iD,GACA,IAAA80R,EAAAp/R,EAAAqkL,SAAA,WACA,OAAA86G,EAAAj/R,EAAAt4C,IACO0iD,GACPpK,EAAA/lC,GAAA,kBACAglU,EAAAj/R,EAAAt4C,GACAo4C,EAAAoqF,iBAAAlqF,EAAA,WACAA,EAAA/lC,GAAA,2CAAAilU,IACS,MAITjyT,EAAA,SAAA+yB,EAAAt4C,GACAs4C,EAAAie,cAAAhxC,KAAA,CACAyhC,MAAA,aACA38D,KAAA,CACAphB,KAAA,QACAwgD,MAAA,EACAxgD,KAAA,QACAmyI,OAAA,CACA,QACA,WACA,aAEAhuD,MAAA,CACA,CACA,QACA7kF,OAAAy3B,EAAA3V,KAAA4sV,gBACA1uW,OAAAy3B,EAAA0T,UAAAujU,iBAEA,CACA,yBACA1uW,OAAAy3B,EAAA3V,KAAA8sV,kCACA5uW,OAAAy3B,EAAA0T,UAAAyjU,mCAEA,CACA,aACA5uW,OAAAy3B,EAAA3V,KAAA6sV,qBACA3uW,OAAAy3B,EAAA0T,UAAAwjU,0BAKA1gR,QAAA,EACAvtF,KAAA,SACAF,KAAA,QACAiT,KAAA,QACAqxD,SAAA,OAKA+S,EAAA,SAAA9H,EAAAt4C,GACAs4C,EAAAgI,GAAAC,SAAA22F,UAAA,aACA9zF,QAAA,aACAtL,KAAA,kBACAI,SAAA,WACA,OAAA3yB,EAAA+yB,EAAAt4C,MAGAs4C,EAAAgI,GAAAC,SAAAm3F,YAAA,aACA17J,KAAA,aACA87D,KAAA,kBACAI,SAAA,WACA,OAAA3yB,EAAA+yB,EAAAt4C,OAKA,SAAA+yK,EAAArwH,QACA,IAAAA,IACAA,EAAA,KAEA9gF,EAAA04B,IAAA,qBAAAg+C,GACA,IAAAt4C,EAAAtzB,EAAA4rE,GAGA,OAFA8H,EAAA9H,EAAAt4C,GACAowC,EAAAkI,EAAAt4C,EAAA0iD,GACA1iD,IAIA+yK,KAleA","file":"js/chunk-19529c62.c769cd50.js","sourcesContent":["/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.1.4 (2019-12-11)\n */\n(function (domGlobals) {\n 'use strict';\n\n var noop = function () {\n };\n var noarg = function (f) {\n return function () {\n return f();\n };\n };\n var compose = function (fa, fb) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fa(fb.apply(null, args));\n };\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n var not = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !f.apply(null, args);\n };\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.ThemeManager');\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __rest(s, e) {\n var t = {};\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === 'function')\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n }\n function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n }\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze) {\n Object.freeze(me);\n }\n return me;\n }();\n var some = function (a) {\n var constant_a = constant(a);\n var self = function () {\n return me;\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never, function (b) {\n return elementEq(a, b);\n });\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var fromOption = function (opt, err) {\n return opt.fold(function () {\n return error(err);\n }, value);\n };\n var Result = {\n value: value,\n error: error,\n fromOption: fromOption\n };\n\n var typeOf = function (x) {\n if (x === null) {\n return 'null';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n var isBoolean = isType('boolean');\n var isFunction = isType('function');\n var isNumber = isType('number');\n var isArrayOf = function (value, pred) {\n if (isArray(value)) {\n for (var i = 0, len = value.length; i < len; ++i) {\n if (pred(value[i]) !== true) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n var nativeSlice = Array.prototype.slice;\n var nativeIndexOf = Array.prototype.indexOf;\n var nativePush = Array.prototype.push;\n var rawIndexOf = function (ts, t) {\n return nativeIndexOf.call(ts, t);\n };\n var indexOf = function (xs, x) {\n var r = rawIndexOf(xs, x);\n return r === -1 ? Option.none() : Option.some(r);\n };\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var exists = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n var range = function (num, f) {\n var r = [];\n for (var i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n var chunk = function (array, size) {\n var r = [];\n for (var i = 0; i < array.length; i += size) {\n var s = nativeSlice.call(array, i, i + size);\n r.push(s);\n }\n return r;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n var eachr = function (xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i);\n }\n };\n var partition = function (xs, pred) {\n var pass = [];\n var fail = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass: pass,\n fail: fail\n };\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n var foldr = function (xs, f, acc) {\n eachr(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var findIndex = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Option.some(i);\n }\n }\n return Option.none();\n };\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n var output = map(xs, f);\n return flatten(output);\n };\n var forall = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n var reverse = function (xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n var difference = function (a1, a2) {\n return filter(a1, function (x) {\n return !contains(a2, x);\n });\n };\n var pure = function (x) {\n return [x];\n };\n var sort = function (xs, comparator) {\n var copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var last = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n var each$1 = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n var map$1 = function (obj, f) {\n return tupleMap(obj, function (x, i) {\n return {\n k: i,\n v: f(x, i)\n };\n });\n };\n var tupleMap = function (obj, f) {\n var r = {};\n each$1(obj, function (x, i) {\n var tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n var mapToArray = function (obj, f) {\n var r = [];\n each$1(obj, function (value, name) {\n r.push(f(value, name));\n });\n return r;\n };\n var find$1 = function (obj, pred) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n if (pred(x, i, obj)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var values = function (obj) {\n return mapToArray(obj, function (v) {\n return v;\n });\n };\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var generate = function (cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n var constructors = [];\n var adt = {};\n each(cases, function (acase, count) {\n var keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n var key = keys$1[0];\n var value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = function () {\n var argLength = arguments.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n var args = new Array(argLength);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n var match = function (branches) {\n var branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n if (arguments.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length);\n }\n var target = arguments[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n domGlobals.console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n var Adt = { generate: generate };\n\n var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n var shallow = function (old, nu) {\n return nu;\n };\n var deep = function (old, nu) {\n var bothObjects = isObject(old) && isObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++) {\n objects[i] = arguments[i];\n }\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject) {\n if (hasOwnProperty$1.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n var deepMerge = baseMerge(deep);\n var merge = baseMerge(shallow);\n\n var cached = function (f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n var adt = Adt.generate([\n { strict: [] },\n { defaultedThunk: ['fallbackThunk'] },\n { asOption: [] },\n { asDefaultedOptionThunk: ['fallbackThunk'] },\n { mergeWithThunk: ['baseThunk'] }\n ]);\n var defaulted = function (fallback) {\n return adt.defaultedThunk(constant(fallback));\n };\n var mergeWith = function (base) {\n return adt.mergeWithThunk(constant(base));\n };\n var strict = adt.strict;\n var asOption = adt.asOption;\n var defaultedThunk = adt.defaultedThunk;\n var mergeWithThunk = adt.mergeWithThunk;\n\n var exclude = function (obj, fields) {\n var r = {};\n each$1(obj, function (v, k) {\n if (!contains(fields, k)) {\n r[k] = v;\n }\n });\n return r;\n };\n\n var readOpt = function (key) {\n return function (obj) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n };\n var readOr = function (key, fallback) {\n return function (obj) {\n return has(obj, key) ? obj[key] : fallback;\n };\n };\n var readOptFrom = function (obj, key) {\n return readOpt(key)(obj);\n };\n var hasKey = function (obj, key) {\n return has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n };\n\n var wrap = function (key, value) {\n var r = {};\n r[key] = value;\n return r;\n };\n var wrapAll = function (keyvalues) {\n var r = {};\n each(keyvalues, function (kv) {\n r[kv.key] = kv.value;\n });\n return r;\n };\n\n var comparison = Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n var partition$1 = function (results) {\n var errors = [];\n var values = [];\n each(results, function (result) {\n result.fold(function (err) {\n errors.push(err);\n }, function (value) {\n values.push(value);\n });\n });\n return {\n errors: errors,\n values: values\n };\n };\n\n var exclude$1 = function (obj, fields) {\n return exclude(obj, fields);\n };\n var readOpt$1 = function (key) {\n return readOpt(key);\n };\n var readOr$1 = function (key, fallback) {\n return readOr(key, fallback);\n };\n var readOptFrom$1 = function (obj, key) {\n return readOptFrom(obj, key);\n };\n var wrap$1 = function (key, value) {\n return wrap(key, value);\n };\n var wrapAll$1 = function (keyvalues) {\n return wrapAll(keyvalues);\n };\n var mergeValues = function (values, base) {\n return values.length === 0 ? Result.value(base) : Result.value(deepMerge(base, merge.apply(undefined, values)));\n };\n var mergeErrors = function (errors) {\n return Result.error(flatten(errors));\n };\n var consolidate = function (objs, base) {\n var partitions = partition$1(objs);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : mergeValues(partitions.values, base);\n };\n var hasKey$1 = function (obj, key) {\n return hasKey(obj, key);\n };\n\n var SimpleResultType;\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n }(SimpleResultType || (SimpleResultType = {})));\n var fold = function (res, onError, onValue) {\n return res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n };\n var partition$2 = function (results) {\n var values = [];\n var errors = [];\n each(results, function (obj) {\n fold(obj, function (err) {\n return errors.push(err);\n }, function (val) {\n return values.push(val);\n });\n });\n return {\n values: values,\n errors: errors\n };\n };\n var mapError = function (res, f) {\n if (res.stype === SimpleResultType.Error) {\n return {\n stype: SimpleResultType.Error,\n serror: f(res.serror)\n };\n } else {\n return res;\n }\n };\n var map$2 = function (res, f) {\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n } else {\n return res;\n }\n };\n var bind$1 = function (res, f) {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n var bindError = function (res, f) {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n var svalue = function (v) {\n return {\n stype: SimpleResultType.Value,\n svalue: v\n };\n };\n var serror = function (e) {\n return {\n stype: SimpleResultType.Error,\n serror: e\n };\n };\n var toResult = function (res) {\n return fold(res, Result.error, Result.value);\n };\n var fromResult = function (res) {\n return res.fold(serror, svalue);\n };\n var SimpleResult = {\n fromResult: fromResult,\n toResult: toResult,\n svalue: svalue,\n partition: partition$2,\n serror: serror,\n bind: bind$1,\n bindError: bindError,\n map: map$2,\n mapError: mapError,\n fold: fold\n };\n\n var mergeValues$1 = function (values, base) {\n return values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge.apply(undefined, values))) : SimpleResult.svalue(base);\n };\n var mergeErrors$1 = function (errors) {\n return compose(SimpleResult.serror, flatten)(errors);\n };\n var consolidateObj = function (objects, base) {\n var partition = SimpleResult.partition(objects);\n return partition.errors.length > 0 ? mergeErrors$1(partition.errors) : mergeValues$1(partition.values, base);\n };\n var consolidateArr = function (objects) {\n var partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors$1(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n var ResultCombine = {\n consolidateObj: consolidateObj,\n consolidateArr: consolidateArr\n };\n\n var typeAdt = Adt.generate([\n {\n setOf: [\n 'validator',\n 'valueType'\n ]\n },\n { arrOf: ['valueType'] },\n { objOf: ['fields'] },\n { itemOf: ['validator'] },\n {\n choiceOf: [\n 'key',\n 'branches'\n ]\n },\n { thunk: ['description'] },\n {\n func: [\n 'args',\n 'outputSchema'\n ]\n }\n ]);\n var fieldAdt = Adt.generate([\n {\n field: [\n 'name',\n 'presence',\n 'type'\n ]\n },\n { state: ['name'] }\n ]);\n\n var formatObj = function (input) {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n };\n var formatErrors = function (errors) {\n var es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: function () {\n return '... (only showing first ten failures)';\n }\n }]) : errors;\n return map(es, function (e) {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n var nu = function (path, getErrorInfo) {\n return SimpleResult.serror([{\n path: path,\n getErrorInfo: getErrorInfo\n }]);\n };\n var missingStrict = function (path, key, obj) {\n return nu(path, function () {\n return 'Could not find valid *strict* value for \"' + key + '\" in ' + formatObj(obj);\n });\n };\n var missingKey = function (path, key) {\n return nu(path, function () {\n return 'Choice schema did not contain choice key: \"' + key + '\"';\n });\n };\n var missingBranch = function (path, branches, branch) {\n return nu(path, function () {\n return 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches);\n });\n };\n var unsupportedFields = function (path, unsupported) {\n return nu(path, function () {\n return 'There are unsupported fields: [' + unsupported.join(', ') + '] specified';\n });\n };\n var custom = function (path, err) {\n return nu(path, function () {\n return err;\n });\n };\n\n var adt$1 = Adt.generate([\n {\n field: [\n 'key',\n 'okey',\n 'presence',\n 'prop'\n ]\n },\n {\n state: [\n 'okey',\n 'instantiator'\n ]\n }\n ]);\n var strictAccess = function (path, obj, key) {\n return readOptFrom(obj, key).fold(function () {\n return missingStrict(path, key, obj);\n }, SimpleResult.svalue);\n };\n var fallbackAccess = function (obj, key, fallbackThunk) {\n var v = readOptFrom(obj, key).fold(function () {\n return fallbackThunk(obj);\n }, identity);\n return SimpleResult.svalue(v);\n };\n var optionAccess = function (obj, key) {\n return SimpleResult.svalue(readOptFrom(obj, key));\n };\n var optionDefaultedAccess = function (obj, key, fallback) {\n var opt = readOptFrom(obj, key).map(function (val) {\n return val === true ? fallback(obj) : val;\n });\n return SimpleResult.svalue(opt);\n };\n var cExtractOne = function (path, obj, field, strength) {\n return field.fold(function (key, okey, presence, prop) {\n var bundle = function (av) {\n var result = prop.extract(path.concat([key]), strength, av);\n return SimpleResult.map(result, function (res) {\n return wrap(okey, strength(res));\n });\n };\n var bundleAsOption = function (optValue) {\n return optValue.fold(function () {\n var outcome = wrap(okey, strength(Option.none()));\n return SimpleResult.svalue(outcome);\n }, function (ov) {\n var result = prop.extract(path.concat([key]), strength, ov);\n return SimpleResult.map(result, function (res) {\n return wrap(okey, strength(Option.some(res)));\n });\n });\n };\n return function () {\n return presence.fold(function () {\n return SimpleResult.bind(strictAccess(path, obj, key), bundle);\n }, function (fallbackThunk) {\n return SimpleResult.bind(fallbackAccess(obj, key, fallbackThunk), bundle);\n }, function () {\n return SimpleResult.bind(optionAccess(obj, key), bundleAsOption);\n }, function (fallbackThunk) {\n return SimpleResult.bind(optionDefaultedAccess(obj, key, fallbackThunk), bundleAsOption);\n }, function (baseThunk) {\n var base = baseThunk(obj);\n var result = SimpleResult.map(fallbackAccess(obj, key, constant({})), function (v) {\n return deepMerge(base, v);\n });\n return SimpleResult.bind(result, bundle);\n });\n }();\n }, function (okey, instantiator) {\n var state = instantiator(obj);\n return SimpleResult.svalue(wrap(okey, strength(state)));\n });\n };\n var cExtract = function (path, obj, fields, strength) {\n var results = map(fields, function (field) {\n return cExtractOne(path, obj, field, strength);\n });\n return ResultCombine.consolidateObj(results, {});\n };\n var valueThunk = function (getDelegate) {\n var extract = function (path, strength, val) {\n return getDelegate().extract(path, strength, val);\n };\n var toString = function () {\n return getDelegate().toString();\n };\n var toDsl = function () {\n return getDelegate().toDsl();\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var value$1 = function (validator) {\n var extract = function (path, strength, val) {\n return SimpleResult.bindError(validator(val, strength), function (err) {\n return custom(path, err);\n });\n };\n var toString = function () {\n return 'val';\n };\n var toDsl = function () {\n return typeAdt.itemOf(validator);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var getSetKeys = function (obj) {\n var keys$1 = keys(obj);\n return filter(keys$1, function (k) {\n return hasKey$1(obj, k);\n });\n };\n var objOfOnly = function (fields) {\n var delegate = objOf(fields);\n var fieldNames = foldr(fields, function (acc, f) {\n return f.fold(function (key) {\n return deepMerge(acc, wrap$1(key, true));\n }, constant(acc));\n }, {});\n var extract = function (path, strength, o) {\n var keys = isBoolean(o) ? [] : getSetKeys(o);\n var extra = filter(keys, function (k) {\n return !hasKey$1(fieldNames, k);\n });\n return extra.length === 0 ? delegate.extract(path, strength, o) : unsupportedFields(path, extra);\n };\n return {\n extract: extract,\n toString: delegate.toString,\n toDsl: delegate.toDsl\n };\n };\n var objOf = function (fields) {\n var extract = function (path, strength, o) {\n return cExtract(path, o, fields, strength);\n };\n var toString = function () {\n var fieldStrings = map(fields, function (field) {\n return field.fold(function (key, okey, presence, prop) {\n return key + ' -> ' + prop.toString();\n }, function (okey, instantiator) {\n return 'state(' + okey + ')';\n });\n });\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n var toDsl = function () {\n return typeAdt.objOf(map(fields, function (f) {\n return f.fold(function (key, okey, presence, prop) {\n return fieldAdt.field(key, presence, prop);\n }, function (okey, instantiator) {\n return fieldAdt.state(okey);\n });\n }));\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var arrOf = function (prop) {\n var extract = function (path, strength, array) {\n var results = map(array, function (a, i) {\n return prop.extract(path.concat(['[' + i + ']']), strength, a);\n });\n return ResultCombine.consolidateArr(results);\n };\n var toString = function () {\n return 'array(' + prop.toString() + ')';\n };\n var toDsl = function () {\n return typeAdt.arrOf(prop);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var setOf = function (validator, prop) {\n var validateKeys = function (path, keys) {\n return arrOf(value$1(validator)).extract(path, identity, keys);\n };\n var extract = function (path, strength, o) {\n var keys$1 = keys(o);\n var validatedKeys = validateKeys(path, keys$1);\n return SimpleResult.bind(validatedKeys, function (validKeys) {\n var schema = map(validKeys, function (vk) {\n return adt$1.field(vk, vk, strict(), prop);\n });\n return objOf(schema).extract(path, strength, o);\n });\n };\n var toString = function () {\n return 'setOf(' + prop.toString() + ')';\n };\n var toDsl = function () {\n return typeAdt.setOf(validator, prop);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var anyValue = constant(value$1(SimpleResult.svalue));\n var arrOfObj = compose(arrOf, objOf);\n var state = adt$1.state;\n var field = adt$1.field;\n\n var chooseFrom = function (path, strength, input, branches, ch) {\n var fields = readOptFrom$1(branches, ch);\n return fields.fold(function () {\n return missingBranch(path, branches, ch);\n }, function (vp) {\n return vp.extract(path.concat(['branch: ' + ch]), strength, input);\n });\n };\n var choose = function (key, branches) {\n var extract = function (path, strength, input) {\n var choice = readOptFrom$1(input, key);\n return choice.fold(function () {\n return missingKey(path, key);\n }, function (chosen) {\n return chooseFrom(path, strength, input, branches, chosen);\n });\n };\n var toString = function () {\n return 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n };\n var toDsl = function () {\n return typeAdt.choiceOf(key, branches);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n\n var _anyValue = value$1(SimpleResult.svalue);\n var arrOfObj$1 = function (objFields) {\n return arrOfObj(objFields);\n };\n var arrOfVal = function () {\n return arrOf(_anyValue);\n };\n var valueThunkOf = valueThunk;\n var valueOf = function (validator) {\n return value$1(function (v) {\n return validator(v).fold(SimpleResult.serror, SimpleResult.svalue);\n });\n };\n var setOf$1 = function (validator, prop) {\n return setOf(function (v) {\n return SimpleResult.fromResult(validator(v));\n }, prop);\n };\n var extract = function (label, prop, strength, obj) {\n var res = prop.extract([label], strength, obj);\n return SimpleResult.mapError(res, function (errs) {\n return {\n input: obj,\n errors: errs\n };\n });\n };\n var asRaw = function (label, prop, obj) {\n return SimpleResult.toResult(extract(label, prop, identity, obj));\n };\n var getOrDie = function (extraction) {\n return extraction.fold(function (errInfo) {\n throw new Error(formatError(errInfo));\n }, identity);\n };\n var asRawOrDie = function (label, prop, obj) {\n return getOrDie(asRaw(label, prop, obj));\n };\n var formatError = function (errInfo) {\n return 'Errors: \\n' + formatErrors(errInfo.errors) + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n var chooseProcessor = function (key, branches) {\n return choose(key, branches);\n };\n var choose$1 = function (key, branches) {\n return choose(key, map$1(branches, objOf));\n };\n var anyValue$1 = constant(_anyValue);\n var typedValue = function (validator, expectedType) {\n return value$1(function (a) {\n var actualType = typeof a;\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror('Expected type: ' + expectedType + ' but got: ' + actualType);\n });\n };\n var number = typedValue(isNumber, 'number');\n var string = typedValue(isString, 'string');\n var boolean = typedValue(isBoolean, 'boolean');\n var functionProcessor = typedValue(isFunction, 'function');\n var isPostMessageable = function (val) {\n var every = function (iter, callbackFn) {\n var result = iter.next();\n while (!result.done) {\n if (!callbackFn(result.value)) {\n return false;\n }\n result = iter.next();\n }\n return true;\n };\n if (Object(val) !== val) {\n return true;\n }\n switch ({}.toString.call(val).slice(8, -1)) {\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'RegExp':\n case 'Blob':\n case 'FileList':\n case 'ImageData':\n case 'ImageBitmap':\n case 'ArrayBuffer':\n return true;\n case 'Array':\n case 'Object':\n return Object.keys(val).every(function (prop) {\n return isPostMessageable(val[prop]);\n });\n case 'Map':\n return every(val.keys(), isPostMessageable) && every(val.values(), isPostMessageable);\n case 'Set':\n return every(val.keys(), isPostMessageable);\n default:\n return false;\n }\n };\n var postMessageable = value$1(function (a) {\n return isPostMessageable(a) ? SimpleResult.svalue(a) : SimpleResult.serror('Expected value to be acceptable for sending via postMessage');\n });\n\n var validateEnum = function (values) {\n return valueOf(function (value) {\n return contains(values, value) ? Result.value(value) : Result.error('Unsupported value: \"' + value + '\", choose one of \"' + values.join(', ') + '\".');\n });\n };\n var strict$1 = function (key) {\n return field(key, key, strict(), anyValue());\n };\n var strictOf = function (key, schema) {\n return field(key, key, strict(), schema);\n };\n var strictNumber = function (key) {\n return strictOf(key, number);\n };\n var strictString = function (key) {\n return strictOf(key, string);\n };\n var strictStringEnum = function (key, values) {\n return field(key, key, strict(), validateEnum(values));\n };\n var strictBoolean = function (key) {\n return strictOf(key, boolean);\n };\n var strictFunction = function (key) {\n return strictOf(key, functionProcessor);\n };\n var forbid = function (key, message) {\n return field(key, key, asOption(), value$1(function (v) {\n return SimpleResult.serror('The field: ' + key + ' is forbidden. ' + message);\n }));\n };\n var strictObjOf = function (key, objSchema) {\n return field(key, key, strict(), objOf(objSchema));\n };\n var strictArrayOfObj = function (key, objFields) {\n return field(key, key, strict(), arrOfObj(objFields));\n };\n var strictArrayOf = function (key, schema) {\n return field(key, key, strict(), arrOf(schema));\n };\n var option = function (key) {\n return field(key, key, asOption(), anyValue());\n };\n var optionOf = function (key, schema) {\n return field(key, key, asOption(), schema);\n };\n var optionNumber = function (key) {\n return optionOf(key, number);\n };\n var optionString = function (key) {\n return optionOf(key, string);\n };\n var optionFunction = function (key) {\n return optionOf(key, functionProcessor);\n };\n var optionArrayOf = function (key, schema) {\n return optionOf(key, arrOf(schema));\n };\n var optionObjOf = function (key, objSchema) {\n return optionOf(key, objOf(objSchema));\n };\n var optionObjOfOnly = function (key, objSchema) {\n return optionOf(key, objOfOnly(objSchema));\n };\n var defaulted$1 = function (key, fallback) {\n return field(key, key, defaulted(fallback), anyValue());\n };\n var defaultedOf = function (key, fallback, schema) {\n return field(key, key, defaulted(fallback), schema);\n };\n var defaultedNumber = function (key, fallback) {\n return defaultedOf(key, fallback, number);\n };\n var defaultedString = function (key, fallback) {\n return defaultedOf(key, fallback, string);\n };\n var defaultedStringEnum = function (key, fallback, values) {\n return defaultedOf(key, fallback, validateEnum(values));\n };\n var defaultedBoolean = function (key, fallback) {\n return defaultedOf(key, fallback, boolean);\n };\n var defaultedFunction = function (key, fallback) {\n return defaultedOf(key, fallback, functionProcessor);\n };\n var defaultedPostMsg = function (key, fallback) {\n return defaultedOf(key, fallback, postMessageable);\n };\n var defaultedArrayOf = function (key, fallback, schema) {\n return defaultedOf(key, fallback, arrOf(schema));\n };\n var defaultedObjOf = function (key, fallback, objSchema) {\n return defaultedOf(key, fallback, objOf(objSchema));\n };\n var state$1 = function (okey, instantiator) {\n return state(okey, instantiator);\n };\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionPreceding = function (a, b) {\n return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_PRECEDING);\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n var Node = {\n documentPositionPreceding: documentPositionPreceding,\n documentPositionContainedBy: documentPositionContainedBy\n };\n\n var firstMatch = function (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n var find$2 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$1(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown();\n }\n return find$2(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu$1(0, 0);\n };\n var nu$1 = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu$1,\n detect: detect,\n unknown: unknown\n };\n\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n var isBrowser = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$1 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge, current),\n isChrome: isBrowser(chrome, current),\n isIE: isBrowser(ie, current),\n isOpera: isBrowser(opera, current),\n isFirefox: isBrowser(firefox, current),\n isSafari: isBrowser(safari, current)\n };\n };\n var Browser = {\n unknown: unknown$1,\n nu: nu$2,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var isOS = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$2 = function () {\n return nu$3({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$3 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isWindows: isOS(windows, current),\n isiOS: isOS(ios, current),\n isAndroid: isOS(android, current),\n isOSX: isOS(osx, current),\n isLinux: isOS(linux, current),\n isSolaris: isOS(solaris, current),\n isFreeBSD: isOS(freebsd, current)\n };\n };\n var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$3,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd)\n };\n\n var DeviceType = function (os, browser, userAgent, mediaMatch) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isMobile = os.isiOS() || os.isAndroid();\n var isTouch = isMobile || mediaMatch('(pointer:coarse)');\n var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n var isPhone = isiPhone || isMobile && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n var isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n var detectOs = function (oses, userAgent) {\n return detect$1(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var checkRange = function (str, substr, start) {\n if (substr === '') {\n return true;\n }\n if (str.length < substr.length) {\n return false;\n }\n var x = str.substr(start, start + substr.length);\n return x === substr;\n };\n var contains$1 = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n var endsWith = function (str, suffix) {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n var trim = function (str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('os x'),\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n var detect$2 = function (userAgent, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var mediaMatch = function (query) {\n return domGlobals.window.matchMedia(query).matches;\n };\n var platform = Cell(PlatformDetection.detect(domGlobals.navigator.userAgent, mediaMatch));\n var detect$3 = function () {\n return platform.get();\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var ELEMENT$1 = ELEMENT;\n var DOCUMENT$1 = DOCUMENT;\n var is = function (element, selector) {\n var dom = element.dom();\n if (dom.nodeType !== ELEMENT$1) {\n return false;\n } else {\n var elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n var bypassSelector = function (dom) {\n return dom.nodeType !== ELEMENT$1 && dom.nodeType !== DOCUMENT$1 || dom.childElementCount === 0;\n };\n var all = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element.fromDom);\n };\n var one = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element.fromDom);\n };\n\n var eq = function (e1, e2) {\n return e1.dom() === e2.dom();\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom();\n var d2 = e2.dom();\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return Node.documentPositionContainedBy(e1.dom(), e2.dom());\n };\n var browser = detect$3().browser;\n var contains$2 = browser.isIE() ? ieContains : regularContains;\n\n var isSource = function (component, simulatedEvent) {\n return eq(component.element(), simulatedEvent.event().target());\n };\n\n var nu$4 = function (parts) {\n if (!hasKey$1(parts, 'can') && !hasKey$1(parts, 'abort') && !hasKey$1(parts, 'run')) {\n throw new Error('EventHandler defined by: ' + JSON.stringify(parts, null, 2) + ' does not have can, abort, or run!');\n }\n return asRawOrDie('Extracting event.handler', objOfOnly([\n defaulted$1('can', constant(true)),\n defaulted$1('abort', constant(false)),\n defaulted$1('run', noop)\n ]), parts);\n };\n var all$1 = function (handlers, f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return foldl(handlers, function (acc, handler) {\n return acc && f(handler).apply(undefined, args);\n }, true);\n };\n };\n var any = function (handlers, f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return foldl(handlers, function (acc, handler) {\n return acc || f(handler).apply(undefined, args);\n }, false);\n };\n };\n var read = function (handler) {\n return isFunction(handler) ? {\n can: constant(true),\n abort: constant(false),\n run: handler\n } : handler;\n };\n var fuse = function (handlers) {\n var can = all$1(handlers, function (handler) {\n return handler.can;\n });\n var abort = any(handlers, function (handler) {\n return handler.abort;\n });\n var run = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n each(handlers, function (handler) {\n handler.run.apply(undefined, args);\n });\n };\n return nu$4({\n can: can,\n abort: abort,\n run: run\n });\n };\n\n var touchstart = constant('touchstart');\n var touchmove = constant('touchmove');\n var touchend = constant('touchend');\n var touchcancel = constant('touchcancel');\n var mousedown = constant('mousedown');\n var mousemove = constant('mousemove');\n var mouseout = constant('mouseout');\n var mouseup = constant('mouseup');\n var mouseover = constant('mouseover');\n var focusin = constant('focusin');\n var focusout = constant('focusout');\n var keydown = constant('keydown');\n var keyup = constant('keyup');\n var input = constant('input');\n var change = constant('change');\n var click = constant('click');\n var transitionend = constant('transitionend');\n var selectstart = constant('selectstart');\n\n var alloy = { tap: constant('alloy.tap') };\n var focus = constant('alloy.focus');\n var postBlur = constant('alloy.blur.post');\n var postPaste = constant('alloy.paste.post');\n var receive = constant('alloy.receive');\n var execute = constant('alloy.execute');\n var focusItem = constant('alloy.focus.item');\n var tap = alloy.tap;\n var tapOrClick = function () {\n return detect$3().deviceType.isTouch() ? alloy.tap() : click();\n };\n var longpress = constant('alloy.longpress');\n var sandboxClose = constant('alloy.sandbox.close');\n var typeaheadCancel = constant('alloy.typeahead.cancel');\n var systemInit = constant('alloy.system.init');\n var documentTouchmove = constant('alloy.system.touchmove');\n var documentTouchend = constant('alloy.system.touchend');\n var windowScroll = constant('alloy.system.scroll');\n var windowResize = constant('alloy.system.resize');\n var attachedToDom = constant('alloy.system.attached');\n var detachedFromDom = constant('alloy.system.detached');\n var dismissRequested = constant('alloy.system.dismissRequested');\n var repositionRequested = constant('alloy.system.repositionRequested');\n var focusShifted = constant('alloy.focusmanager.shifted');\n var slotVisibility = constant('alloy.slotcontainer.visibility');\n var changeTab = constant('alloy.change.tab');\n var dismissTab = constant('alloy.dismiss.tab');\n var highlight = constant('alloy.highlight');\n var dehighlight = constant('alloy.dehighlight');\n\n var emit = function (component, event) {\n dispatchWith(component, component.element(), event, {});\n };\n var emitWith = function (component, event, properties) {\n dispatchWith(component, component.element(), event, properties);\n };\n var emitExecute = function (component) {\n emit(component, execute());\n };\n var dispatch = function (component, target, event) {\n dispatchWith(component, target, event, {});\n };\n var dispatchWith = function (component, target, event, properties) {\n var data = __assign({ target: target }, properties);\n component.getSystem().triggerEvent(event, target, map$1(data, constant));\n };\n var dispatchEvent = function (component, target, event, simulatedEvent) {\n component.getSystem().triggerEvent(event, target, simulatedEvent.event());\n };\n\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\n return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);\n }\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var name = function (element) {\n var r = element.dom().nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom().nodeType;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isElement = isType$1(ELEMENT);\n var isText = isType$1(TEXT);\n\n var inBody = function (element) {\n var dom = isText(element) ? element.dom().parentNode : element.dom();\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\n };\n var body = cached(function () {\n return getBody(Element.fromDom(domGlobals.document));\n });\n var getBody = function (doc) {\n var b = doc.dom().body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return Element.fromDom(b);\n };\n\n var ancestor = function (scope, predicate, isRoot) {\n var element = scope.dom();\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n while (element.parentNode) {\n element = element.parentNode;\n var el = Element.fromDom(element);\n if (predicate(el)) {\n return Option.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Option.none();\n };\n var closest = function (scope, predicate, isRoot) {\n var is = function (s, test) {\n return test(s);\n };\n return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);\n };\n var descendant = function (scope, predicate) {\n var descend = function (node) {\n for (var i = 0; i < node.childNodes.length; i++) {\n var child_1 = Element.fromDom(node.childNodes[i]);\n if (predicate(child_1)) {\n return Option.some(child_1);\n }\n var res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Option.none();\n };\n return descend(scope.dom());\n };\n\n var closest$1 = function (target, transform, isRoot) {\n var delegate = closest(target, function (elem) {\n return transform(elem).isSome();\n }, isRoot);\n return delegate.bind(transform);\n };\n\n var derive = function (configs) {\n return wrapAll$1(configs);\n };\n var abort = function (name, predicate) {\n return {\n key: name,\n value: nu$4({ abort: predicate })\n };\n };\n var can = function (name, predicate) {\n return {\n key: name,\n value: nu$4({ can: predicate })\n };\n };\n var preventDefault = function (name) {\n return {\n key: name,\n value: nu$4({\n run: function (component, simulatedEvent) {\n simulatedEvent.event().prevent();\n }\n })\n };\n };\n var run = function (name, handler) {\n return {\n key: name,\n value: nu$4({ run: handler })\n };\n };\n var runActionExtra = function (name, action, extra) {\n return {\n key: name,\n value: nu$4({\n run: function (component) {\n action.apply(undefined, [component].concat(extra));\n }\n })\n };\n };\n var runOnName = function (name) {\n return function (handler) {\n return run(name, handler);\n };\n };\n var runOnSourceName = function (name) {\n return function (handler) {\n return {\n key: name,\n value: nu$4({\n run: function (component, simulatedEvent) {\n if (isSource(component, simulatedEvent)) {\n handler(component, simulatedEvent);\n }\n }\n })\n };\n };\n };\n var redirectToUid = function (name, uid) {\n return run(name, function (component, simulatedEvent) {\n component.getSystem().getByUid(uid).each(function (redirectee) {\n dispatchEvent(redirectee, redirectee.element(), name, simulatedEvent);\n });\n });\n };\n var redirectToPart = function (name, detail, partName) {\n var uid = detail.partUids[partName];\n return redirectToUid(name, uid);\n };\n var runWithTarget = function (name, f) {\n return run(name, function (component, simulatedEvent) {\n var ev = simulatedEvent.event();\n var target = component.getSystem().getByDom(ev.target()).fold(function () {\n var closest = closest$1(ev.target(), function (el) {\n return component.getSystem().getByDom(el).toOption();\n }, constant(false));\n return closest.getOr(component);\n }, function (c) {\n return c;\n });\n f(component, target, simulatedEvent);\n });\n };\n var cutter = function (name) {\n return run(name, function (component, simulatedEvent) {\n simulatedEvent.cut();\n });\n };\n var stopper = function (name) {\n return run(name, function (component, simulatedEvent) {\n simulatedEvent.stop();\n });\n };\n var runOnSource = function (name, f) {\n return runOnSourceName(name)(f);\n };\n var runOnAttached = runOnSourceName(attachedToDom());\n var runOnDetached = runOnSourceName(detachedFromDom());\n var runOnInit = runOnSourceName(systemInit());\n var runOnExecute = runOnName(execute());\n\n var Immutable = function () {\n var fields = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fields[_i] = arguments[_i];\n }\n return function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n if (fields.length !== values.length) {\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\n }\n var struct = {};\n each(fields, function (name, i) {\n struct[name] = constant(values[i]);\n });\n return struct;\n };\n };\n\n var sort$1 = function (arr) {\n return arr.slice(0).sort();\n };\n var reqMessage = function (required, keys) {\n throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.');\n };\n var unsuppMessage = function (unsupported) {\n throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));\n };\n var validateStrArr = function (label, array) {\n if (!isArray(array)) {\n throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');\n }\n each(array, function (a) {\n if (!isString(a)) {\n throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');\n }\n });\n };\n var checkDupes = function (everything) {\n var sorted = sort$1(everything);\n var dupe = find(sorted, function (s, i) {\n return i < sorted.length - 1 && s === sorted[i + 1];\n });\n dupe.each(function (d) {\n throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');\n });\n };\n\n var MixedBag = function (required, optional) {\n var everything = required.concat(optional);\n if (everything.length === 0) {\n throw new Error('You must specify at least one required or optional field.');\n }\n validateStrArr('required', required);\n validateStrArr('optional', optional);\n checkDupes(everything);\n return function (obj) {\n var keys$1 = keys(obj);\n var allReqd = forall(required, function (req) {\n return contains(keys$1, req);\n });\n if (!allReqd) {\n reqMessage(required, keys$1);\n }\n var unsupported = filter(keys$1, function (key) {\n return !contains(everything, key);\n });\n if (unsupported.length > 0) {\n unsuppMessage(unsupported);\n }\n var r = {};\n each(required, function (req) {\n r[req] = constant(obj[req]);\n });\n each(optional, function (opt) {\n r[opt] = constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());\n });\n return r;\n };\n };\n\n var owner = function (element) {\n return Element.fromDom(element.dom().ownerDocument);\n };\n var documentElement = function (element) {\n return Element.fromDom(element.dom().ownerDocument.documentElement);\n };\n var defaultView = function (element) {\n return Element.fromDom(element.dom().ownerDocument.defaultView);\n };\n var parent = function (element) {\n return Option.from(element.dom().parentNode).map(Element.fromDom);\n };\n var offsetParent = function (element) {\n return Option.from(element.dom().offsetParent).map(Element.fromDom);\n };\n var nextSibling = function (element) {\n return Option.from(element.dom().nextSibling).map(Element.fromDom);\n };\n var children = function (element) {\n return map(element.dom().childNodes, Element.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom().childNodes;\n return Option.from(cs[index]).map(Element.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n var spot = Immutable('element', 'offset');\n\n var fromHtml$1 = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children(Element.fromDom(div));\n };\n\n var before = function (marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom().insertBefore(element.dom(), marker.dom());\n });\n };\n var after = function (marker, element) {\n var sibling = nextSibling(marker);\n sibling.fold(function () {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n append(v, element);\n });\n }, function (v) {\n before(v, element);\n });\n };\n var prepend = function (parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append(parent, element);\n }, function (v) {\n parent.dom().insertBefore(element.dom(), v.dom());\n });\n };\n var append = function (parent, element) {\n parent.dom().appendChild(element.dom());\n };\n var appendAt = function (parent, element, index) {\n child(parent, index).fold(function () {\n append(parent, element);\n }, function (v) {\n before(v, element);\n });\n };\n\n var before$1 = function (marker, elements) {\n each(elements, function (x) {\n before(marker, x);\n });\n };\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var empty = function (element) {\n element.dom().textContent = '';\n each(children(element), function (rogue) {\n remove(rogue);\n });\n };\n var remove = function (element) {\n var dom = element.dom();\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n var unwrap = function (wrapper) {\n var children$1 = children(wrapper);\n if (children$1.length > 0) {\n before$1(wrapper, children$1);\n }\n remove(wrapper);\n };\n\n var get$1 = function (element) {\n return element.dom().innerHTML;\n };\n var set = function (element, content) {\n var owner$1 = owner(element);\n var docDom = owner$1.dom();\n var fragment = Element.fromDom(docDom.createDocumentFragment());\n var contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append(element, fragment);\n };\n var getOuter = function (element) {\n var container = Element.fromTag('div');\n var clone = Element.fromDom(element.dom().cloneNode(true));\n append(container, clone);\n return get$1(container);\n };\n\n var rawSet = function (dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var set$1 = function (element, key, value) {\n rawSet(element.dom(), key, value);\n };\n var setAll = function (element, attrs) {\n var dom = element.dom();\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var get$2 = function (element, key) {\n var v = element.dom().getAttribute(key);\n return v === null ? undefined : v;\n };\n var has$1 = function (element, key) {\n var dom = element.dom();\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n var remove$1 = function (element, key) {\n element.dom().removeAttribute(key);\n };\n\n var clone = function (original, isDeep) {\n return Element.fromDom(original.dom().cloneNode(isDeep));\n };\n var shallow$1 = function (original) {\n return clone(original, false);\n };\n\n var getHtml = function (element) {\n var clone = shallow$1(element);\n return getOuter(clone);\n };\n\n var element = function (elem) {\n return getHtml(elem);\n };\n\n var isRecursive = function (component, originator, target) {\n return eq(originator, component.element()) && !eq(originator, target);\n };\n var events = derive([can(focus(), function (component, simulatedEvent) {\n var originator = simulatedEvent.event().originator();\n var target = simulatedEvent.event().target();\n if (isRecursive(component, originator, target)) {\n domGlobals.console.warn(focus() + ' did not get interpreted by the desired target. ' + '\\nOriginator: ' + element(originator) + '\\nTarget: ' + element(target) + '\\nCheck the ' + focus() + ' event handlers');\n return false;\n } else {\n return true;\n }\n })]);\n\n var DefaultEvents = /*#__PURE__*/Object.freeze({\n events: events\n });\n\n var unique = 0;\n var generate$1 = function (prefix) {\n var date = new Date();\n var time = date.getTime();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n };\n\n var prefix = constant('alloy-id-');\n var idAttr = constant('data-alloy-id');\n\n var prefix$1 = prefix();\n var idAttr$1 = idAttr();\n var write = function (label, elem) {\n var id = generate$1(prefix$1 + label);\n writeOnly(elem, id);\n return id;\n };\n var writeOnly = function (elem, uid) {\n Object.defineProperty(elem.dom(), idAttr$1, {\n value: uid,\n writable: true\n });\n };\n var read$1 = function (elem) {\n var id = isElement(elem) ? elem.dom()[idAttr$1] : null;\n return Option.from(id);\n };\n var generate$2 = function (prefix) {\n return generate$1(prefix);\n };\n\n var make = identity;\n\n var NoContextApi = function (getComp) {\n var fail = function (event) {\n return function () {\n throw new Error('The component must be in a context to send: ' + event + '\\n' + element(getComp().element()) + ' is not in context.');\n };\n };\n return {\n debugInfo: constant('fake'),\n triggerEvent: fail('triggerEvent'),\n triggerFocus: fail('triggerFocus'),\n triggerEscape: fail('triggerEscape'),\n build: fail('build'),\n addToWorld: fail('addToWorld'),\n removeFromWorld: fail('removeFromWorld'),\n addToGui: fail('addToGui'),\n removeFromGui: fail('removeFromGui'),\n getByUid: fail('getByUid'),\n getByDom: fail('getByDom'),\n broadcast: fail('broadcast'),\n broadcastOn: fail('broadcastOn'),\n broadcastEvent: fail('broadcastEvent'),\n isConnected: constant(false)\n };\n };\n var singleton = NoContextApi();\n\n var markAsBehaviourApi = function (f, apiName, apiFunction) {\n var delegate = apiFunction.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = function () {\n return {\n name: apiName,\n parameters: cleanParameters(parameters.slice(0, 1).concat(parameters.slice(3)))\n };\n };\n return f;\n };\n var cleanParameters = function (parameters) {\n return map(parameters, function (p) {\n return endsWith(p, '/*') ? p.substring(0, p.length - '/*'.length) : p;\n });\n };\n var markAsExtraApi = function (f, extraName) {\n var delegate = f.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = function () {\n return {\n name: extraName,\n parameters: cleanParameters(parameters)\n };\n };\n return f;\n };\n var markAsSketchApi = function (f, apiFunction) {\n var delegate = apiFunction.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = function () {\n return {\n name: 'OVERRIDE',\n parameters: cleanParameters(parameters.slice(1))\n };\n };\n return f;\n };\n\n var premadeTag = generate$1('alloy-premade');\n var premade = function (comp) {\n return wrap$1(premadeTag, comp);\n };\n var getPremade = function (spec) {\n return readOptFrom$1(spec, premadeTag);\n };\n var makeApi = function (f) {\n return markAsSketchApi(function (component) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n return f.apply(undefined, [component.getApis()].concat([component].concat(rest)));\n }, f);\n };\n\n var NoState = {\n init: function () {\n return nu$5({\n readState: function () {\n return 'No State required';\n }\n });\n }\n };\n var nu$5 = function (spec) {\n return spec;\n };\n\n var generateFrom = function (spec, all) {\n var schema = map(all, function (a) {\n return optionObjOf(a.name(), [\n strict$1('config'),\n defaulted$1('state', NoState)\n ]);\n });\n var validated = asRaw('component.behaviours', objOf(schema), spec.behaviours).fold(function (errInfo) {\n throw new Error(formatError(errInfo) + '\\nComplete spec:\\n' + JSON.stringify(spec, null, 2));\n }, function (v) {\n return v;\n });\n return {\n list: all,\n data: map$1(validated, function (optBlobThunk) {\n var optBlob = optBlobThunk;\n var output = optBlob.map(function (blob) {\n return {\n config: blob.config,\n state: blob.state.init(blob.config)\n };\n });\n return function () {\n return output;\n };\n })\n };\n };\n var getBehaviours = function (bData) {\n return bData.list;\n };\n var getData = function (bData) {\n return bData.data;\n };\n\n var byInnerKey = function (data, tuple) {\n var r = {};\n each$1(data, function (detail, key) {\n each$1(detail, function (value, indexKey) {\n var chain = readOr$1(indexKey, [])(r);\n r[indexKey] = chain.concat([tuple(key, value)]);\n });\n });\n return r;\n };\n\n var nu$6 = function (s) {\n return {\n classes: s.classes !== undefined ? s.classes : [],\n attributes: s.attributes !== undefined ? s.attributes : {},\n styles: s.styles !== undefined ? s.styles : {}\n };\n };\n var merge$1 = function (defnA, mod) {\n return __assign(__assign({}, defnA), {\n attributes: __assign(__assign({}, defnA.attributes), mod.attributes),\n styles: __assign(__assign({}, defnA.styles), mod.styles),\n classes: defnA.classes.concat(mod.classes)\n });\n };\n\n var combine = function (info, baseMod, behaviours, base) {\n var modsByBehaviour = __assign({}, baseMod);\n each(behaviours, function (behaviour) {\n modsByBehaviour[behaviour.name()] = behaviour.exhibit(info, base);\n });\n var nameAndMod = function (name, modification) {\n return {\n name: name,\n modification: modification\n };\n };\n var byAspect = byInnerKey(modsByBehaviour, nameAndMod);\n var combineObjects = function (objects) {\n return foldr(objects, function (b, a) {\n return __assign(__assign({}, a.modification), b);\n }, {});\n };\n var combinedClasses = foldr(byAspect.classes, function (b, a) {\n return a.modification.concat(b);\n }, []);\n var combinedAttributes = combineObjects(byAspect.attributes);\n var combinedStyles = combineObjects(byAspect.styles);\n return nu$6({\n classes: combinedClasses,\n attributes: combinedAttributes,\n styles: combinedStyles\n });\n };\n\n var sortKeys = function (label, keyName, array, order) {\n var sliced = array.slice(0);\n try {\n var sorted = sliced.sort(function (a, b) {\n var aKey = a[keyName]();\n var bKey = b[keyName]();\n var aIndex = order.indexOf(aKey);\n var bIndex = order.indexOf(bKey);\n if (aIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + aKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n if (bIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + bKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n if (aIndex < bIndex) {\n return -1;\n } else if (bIndex < aIndex) {\n return 1;\n } else {\n return 0;\n }\n });\n return Result.value(sorted);\n } catch (err) {\n return Result.error([err]);\n }\n };\n\n var uncurried = function (handler, purpose) {\n return {\n handler: handler,\n purpose: constant(purpose)\n };\n };\n var curried = function (handler, purpose) {\n return {\n cHandler: handler,\n purpose: constant(purpose)\n };\n };\n var curryArgs = function (descHandler, extraArgs) {\n return curried(curry.apply(undefined, [descHandler.handler].concat(extraArgs)), descHandler.purpose());\n };\n var getCurried = function (descHandler) {\n return descHandler.cHandler;\n };\n\n var behaviourTuple = function (name, handler) {\n return {\n name: constant(name),\n handler: constant(handler)\n };\n };\n var nameToHandlers = function (behaviours, info) {\n var r = {};\n each(behaviours, function (behaviour) {\n r[behaviour.name()] = behaviour.handlers(info);\n });\n return r;\n };\n var groupByEvents = function (info, behaviours, base) {\n var behaviourEvents = __assign(__assign({}, base), nameToHandlers(behaviours, info));\n return byInnerKey(behaviourEvents, behaviourTuple);\n };\n var combine$1 = function (info, eventOrder, behaviours, base) {\n var byEventName = groupByEvents(info, behaviours, base);\n return combineGroups(byEventName, eventOrder);\n };\n var assemble = function (rawHandler) {\n var handler = read(rawHandler);\n return function (component, simulatedEvent) {\n var rest = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n rest[_i - 2] = arguments[_i];\n }\n var args = [\n component,\n simulatedEvent\n ].concat(rest);\n if (handler.abort.apply(undefined, args)) {\n simulatedEvent.stop();\n } else if (handler.can.apply(undefined, args)) {\n handler.run.apply(undefined, args);\n }\n };\n };\n var missingOrderError = function (eventName, tuples) {\n return Result.error(['The event (' + eventName + ') has more than one behaviour that listens to it.\\nWhen this occurs, you must ' + 'specify an event ordering for the behaviours in your spec (e.g. [ \"listing\", \"toggling\" ]).\\nThe behaviours that ' + 'can trigger it are: ' + JSON.stringify(map(tuples, function (c) {\n return c.name();\n }), null, 2)]);\n };\n var fuse$1 = function (tuples, eventOrder, eventName) {\n var order = eventOrder[eventName];\n if (!order) {\n return missingOrderError(eventName, tuples);\n } else {\n return sortKeys('Event: ' + eventName, 'name', tuples, order).map(function (sortedTuples) {\n var handlers = map(sortedTuples, function (tuple) {\n return tuple.handler();\n });\n return fuse(handlers);\n });\n }\n };\n var combineGroups = function (byEventName, eventOrder) {\n var r = mapToArray(byEventName, function (tuples, eventName) {\n var combined = tuples.length === 1 ? Result.value(tuples[0].handler()) : fuse$1(tuples, eventOrder, eventName);\n return combined.map(function (handler) {\n var assembled = assemble(handler);\n var purpose = tuples.length > 1 ? filter(eventOrder[eventName], function (o) {\n return exists(tuples, function (t) {\n return t.name() === o;\n });\n }).join(' > ') : tuples[0].name();\n return wrap$1(eventName, uncurried(assembled, purpose));\n });\n });\n return consolidate(r, {});\n };\n\n var toInfo = function (spec) {\n return asRaw('custom.definition', objOf([\n field('dom', 'dom', strict(), objOf([\n strict$1('tag'),\n defaulted$1('styles', {}),\n defaulted$1('classes', []),\n defaulted$1('attributes', {}),\n option('value'),\n option('innerHtml')\n ])),\n strict$1('components'),\n strict$1('uid'),\n defaulted$1('events', {}),\n defaulted$1('apis', {}),\n field('eventOrder', 'eventOrder', mergeWith({\n 'alloy.execute': [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'typeaheadevents'\n ],\n 'alloy.focus': [\n 'alloy.base.behaviour',\n 'focusing',\n 'keying'\n ],\n 'alloy.system.init': [\n 'alloy.base.behaviour',\n 'disabling',\n 'toggling',\n 'representing'\n ],\n 'input': [\n 'alloy.base.behaviour',\n 'representing',\n 'streaming',\n 'invalidating'\n ],\n 'alloy.system.detached': [\n 'alloy.base.behaviour',\n 'representing',\n 'item-events',\n 'tooltipping'\n ],\n 'mousedown': [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events'\n ],\n 'touchstart': [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events'\n ],\n 'mouseover': [\n 'item-type-events',\n 'tooltipping'\n ]\n }), anyValue$1()),\n option('domModification')\n ]), spec);\n };\n var toDefinition = function (detail) {\n return __assign(__assign({}, detail.dom), {\n uid: detail.uid,\n domChildren: map(detail.components, function (comp) {\n return comp.element();\n })\n });\n };\n var toModification = function (detail) {\n return detail.domModification.fold(function () {\n return nu$6({});\n }, nu$6);\n };\n var toEvents = function (info) {\n return info.events;\n };\n\n var read$2 = function (element, attr) {\n var value = get$2(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n var add = function (element, attr, id) {\n var old = read$2(element, attr);\n var nu = old.concat([id]);\n set$1(element, attr, nu.join(' '));\n return true;\n };\n var remove$2 = function (element, attr, id) {\n var nu = filter(read$2(element, attr), function (v) {\n return v !== id;\n });\n if (nu.length > 0) {\n set$1(element, attr, nu.join(' '));\n } else {\n remove$1(element, attr);\n }\n return false;\n };\n\n var supports = function (element) {\n return element.dom().classList !== undefined;\n };\n var get$3 = function (element) {\n return read$2(element, 'class');\n };\n var add$1 = function (element, clazz) {\n return add(element, 'class', clazz);\n };\n var remove$3 = function (element, clazz) {\n return remove$2(element, 'class', clazz);\n };\n\n var add$2 = function (element, clazz) {\n if (supports(element)) {\n element.dom().classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n var cleanClass = function (element) {\n var classList = supports(element) ? element.dom().classList : get$3(element);\n if (classList.length === 0) {\n remove$1(element, 'class');\n }\n };\n var remove$4 = function (element, clazz) {\n if (supports(element)) {\n var classList = element.dom().classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n cleanClass(element);\n };\n var has$2 = function (element, clazz) {\n return supports(element) && element.dom().classList.contains(clazz);\n };\n\n var add$3 = function (element, classes) {\n each(classes, function (x) {\n add$2(element, x);\n });\n };\n var remove$5 = function (element, classes) {\n each(classes, function (x) {\n remove$4(element, x);\n });\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var internalSet = function (dom, property, value) {\n if (!isString(value)) {\n domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var internalRemove = function (dom, property) {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n var set$2 = function (element, property, value) {\n var dom = element.dom();\n internalSet(dom, property, value);\n };\n var setAll$1 = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n var setOptions = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n v.fold(function () {\n internalRemove(dom, k);\n }, function (value) {\n internalSet(dom, k, value);\n });\n });\n };\n var get$4 = function (element, property) {\n var dom = element.dom();\n var styles = domGlobals.window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n var v = r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n return v === null ? undefined : v;\n };\n var getUnsafeProperty = function (dom, property) {\n return isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n };\n var getRaw = function (element, property) {\n var dom = element.dom();\n var raw = getUnsafeProperty(dom, property);\n return Option.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n var isValidValue = function (tag, property, value) {\n var element = Element.fromTag(tag);\n set$2(element, property, value);\n var style = getRaw(element, property);\n return style.isSome();\n };\n var remove$6 = function (element, property) {\n var dom = element.dom();\n internalRemove(dom, property);\n if (has$1(element, 'style') && trim(get$2(element, 'style')) === '') {\n remove$1(element, 'style');\n }\n };\n var reflow = function (e) {\n return e.dom().offsetWidth;\n };\n\n var get$5 = function (element) {\n return element.dom().value;\n };\n var set$3 = function (element, value) {\n if (value === undefined) {\n throw new Error('Value.set was undefined');\n }\n element.dom().value = value;\n };\n\n var renderToDom = function (definition) {\n var subject = Element.fromTag(definition.tag);\n setAll(subject, definition.attributes);\n add$3(subject, definition.classes);\n setAll$1(subject, definition.styles);\n definition.innerHtml.each(function (html) {\n return set(subject, html);\n });\n var children = definition.domChildren;\n append$1(subject, children);\n definition.value.each(function (value) {\n set$3(subject, value);\n });\n if (!definition.uid) {\n debugger;\n }\n writeOnly(subject, definition.uid);\n return subject;\n };\n\n var getBehaviours$1 = function (spec) {\n var behaviours = readOr$1('behaviours', {})(spec);\n var keys$1 = filter(keys(behaviours), function (k) {\n return behaviours[k] !== undefined;\n });\n return map(keys$1, function (k) {\n return behaviours[k].me;\n });\n };\n var generateFrom$1 = function (spec, all) {\n return generateFrom(spec, all);\n };\n var generate$3 = function (spec) {\n var all = getBehaviours$1(spec);\n return generateFrom$1(spec, all);\n };\n\n var getDomDefinition = function (info, bList, bData) {\n var definition = toDefinition(info);\n var infoModification = toModification(info);\n var baseModification = { 'alloy.base.modification': infoModification };\n var modification = bList.length > 0 ? combine(bData, baseModification, bList, definition) : infoModification;\n return merge$1(definition, modification);\n };\n var getEvents = function (info, bList, bData) {\n var baseEvents = { 'alloy.base.behaviour': toEvents(info) };\n return combine$1(bData, info.eventOrder, bList, baseEvents).getOrDie();\n };\n var build = function (spec) {\n var getMe = function () {\n return me;\n };\n var systemApi = Cell(singleton);\n var info = getOrDie(toInfo(spec));\n var bBlob = generate$3(spec);\n var bList = getBehaviours(bBlob);\n var bData = getData(bBlob);\n var modDefinition = getDomDefinition(info, bList, bData);\n var item = renderToDom(modDefinition);\n var events = getEvents(info, bList, bData);\n var subcomponents = Cell(info.components);\n var connect = function (newApi) {\n systemApi.set(newApi);\n };\n var disconnect = function () {\n systemApi.set(NoContextApi(getMe));\n };\n var syncComponents = function () {\n var children$1 = children(item);\n var subs = bind(children$1, function (child) {\n return systemApi.get().getByDom(child).fold(function () {\n return [];\n }, function (c) {\n return [c];\n });\n });\n subcomponents.set(subs);\n };\n var config = function (behaviour) {\n var b = bData;\n var f = isFunction(b[behaviour.name()]) ? b[behaviour.name()] : function () {\n throw new Error('Could not find ' + behaviour.name() + ' in ' + JSON.stringify(spec, null, 2));\n };\n return f();\n };\n var hasConfigured = function (behaviour) {\n return isFunction(bData[behaviour.name()]);\n };\n var getApis = function () {\n return info.apis;\n };\n var readState = function (behaviourName) {\n return bData[behaviourName]().map(function (b) {\n return b.state.readState();\n }).getOr('not enabled');\n };\n var me = {\n getSystem: systemApi.get,\n config: config,\n hasConfigured: hasConfigured,\n spec: constant(spec),\n readState: readState,\n getApis: getApis,\n connect: connect,\n disconnect: disconnect,\n element: constant(item),\n syncComponents: syncComponents,\n components: subcomponents.get,\n events: constant(events)\n };\n return me;\n };\n\n var buildSubcomponents = function (spec) {\n var components = readOr$1('components', [])(spec);\n return map(components, build$1);\n };\n var buildFromSpec = function (userSpec) {\n var _a = make(userSpec), specEvents = _a.events, spec = __rest(_a, ['events']);\n var components = buildSubcomponents(spec);\n var completeSpec = __assign(__assign({}, spec), {\n events: __assign(__assign({}, DefaultEvents), specEvents),\n components: components\n });\n return Result.value(build(completeSpec));\n };\n var text = function (textContent) {\n var element = Element.fromText(textContent);\n return external({ element: element });\n };\n var external = function (spec) {\n var extSpec = asRawOrDie('external.component', objOfOnly([\n strict$1('element'),\n option('uid')\n ]), spec);\n var systemApi = Cell(NoContextApi());\n var connect = function (newApi) {\n systemApi.set(newApi);\n };\n var disconnect = function () {\n systemApi.set(NoContextApi(function () {\n return me;\n }));\n };\n extSpec.uid.each(function (uid) {\n writeOnly(extSpec.element, uid);\n });\n var me = {\n getSystem: systemApi.get,\n config: Option.none,\n hasConfigured: constant(false),\n connect: connect,\n disconnect: disconnect,\n getApis: function () {\n return {};\n },\n element: constant(extSpec.element),\n spec: constant(spec),\n readState: constant('No state'),\n syncComponents: noop,\n components: constant([]),\n events: constant({})\n };\n return premade(me);\n };\n var uids = generate$2;\n var build$1 = function (spec) {\n return getPremade(spec).fold(function () {\n var userSpecWithUid = spec.hasOwnProperty('uid') ? spec : __assign({ uid: uids('') }, spec);\n return buildFromSpec(userSpecWithUid).getOrDie();\n }, function (prebuilt) {\n return prebuilt;\n });\n };\n var premade$1 = premade;\n\n function Dimension (name, getOffset) {\n var set = function (element, h) {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n var dom = element.dom();\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n var get = function (element) {\n var r = getOffset(element);\n if (r <= 0 || r === null) {\n var css = get$4(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n var getOuter = get;\n var aggregate = function (element, properties) {\n return foldl(properties, function (acc, property) {\n var val = get$4(element, property);\n var value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n };\n var max = function (element, value, properties) {\n var cumulativeInclusions = aggregate(element, properties);\n var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set: set,\n get: get,\n getOuter: getOuter,\n aggregate: aggregate,\n max: max\n };\n }\n\n var api = Dimension('height', function (element) {\n var dom = element.dom();\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n var get$6 = function (element) {\n return api.get(element);\n };\n var getOuter$1 = function (element) {\n return api.getOuter(element);\n };\n var setMax = function (element, value) {\n var inclusions = [\n 'margin-top',\n 'border-top-width',\n 'padding-top',\n 'padding-bottom',\n 'border-bottom-width',\n 'margin-bottom'\n ];\n var absMax = api.max(element, value, inclusions);\n set$2(element, 'max-height', absMax + 'px');\n };\n\n var r = function (left, top) {\n var translate = function (x, y) {\n return r(left + x, top + y);\n };\n return {\n left: constant(left),\n top: constant(top),\n translate: translate\n };\n };\n var Position = r;\n\n var boxPosition = function (dom) {\n var box = dom.getBoundingClientRect();\n return Position(box.left, box.top);\n };\n var firstDefinedOrZero = function (a, b) {\n return a !== undefined ? a : b !== undefined ? b : 0;\n };\n var absolute = function (element) {\n var doc = element.dom().ownerDocument;\n var body = doc.body;\n var win = doc.defaultView;\n var html = doc.documentElement;\n if (body === element.dom()) {\n return Position(body.offsetLeft, body.offsetTop);\n }\n var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);\n var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);\n var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n var viewport = function (element) {\n var dom = element.dom();\n var doc = dom.ownerDocument;\n var body = doc.body;\n if (body === dom) {\n return Position(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return Position(0, 0);\n }\n return boxPosition(dom);\n };\n\n var api$1 = Dimension('width', function (element) {\n return element.dom().offsetWidth;\n });\n var set$4 = function (element, h) {\n api$1.set(element, h);\n };\n var get$7 = function (element) {\n return api$1.get(element);\n };\n var getOuter$2 = function (element) {\n return api$1.getOuter(element);\n };\n var setMax$1 = function (element, value) {\n var inclusions = [\n 'margin-left',\n 'border-left-width',\n 'padding-left',\n 'padding-right',\n 'border-right-width',\n 'margin-right'\n ];\n var absMax = api$1.max(element, value, inclusions);\n set$2(element, 'max-width', absMax + 'px');\n };\n\n var isSafari = detect$3().browser.isSafari();\n var get$8 = function (_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n var y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return Position(x, y);\n };\n\n var bounds = function (x, y, width, height) {\n return {\n x: constant(x),\n y: constant(y),\n width: constant(width),\n height: constant(height),\n right: constant(x + width),\n bottom: constant(y + height)\n };\n };\n var getBounds = function (_win) {\n var win = _win === undefined ? domGlobals.window : _win;\n var doc = win.document;\n var scroll = get$8(Element.fromDom(doc));\n var visualViewport = win['visualViewport'];\n if (visualViewport !== undefined) {\n return bounds(Math.max(visualViewport.pageLeft, scroll.left()), Math.max(visualViewport.pageTop, scroll.top()), visualViewport.width, visualViewport.height);\n } else {\n var html = doc.documentElement;\n var width = html.clientWidth;\n var height = html.clientHeight;\n return bounds(scroll.left(), scroll.top(), width, height);\n }\n };\n\n var walkUp = function (navigation, doc) {\n var frame = navigation.view(doc);\n return frame.fold(constant([]), function (f) {\n var parent = navigation.owner(f);\n var rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n var pathTo = function (element, navigation) {\n var d = navigation.owner(element);\n var paths = walkUp(navigation, d);\n return Option.some(paths);\n };\n\n var view = function (doc) {\n var element = doc.dom() === domGlobals.document ? Option.none() : Option.from(doc.dom().defaultView.frameElement);\n return element.map(Element.fromDom);\n };\n var owner$1 = function (element) {\n return owner(element);\n };\n\n var Navigation = /*#__PURE__*/Object.freeze({\n view: view,\n owner: owner$1\n });\n\n var find$3 = function (element) {\n var doc = Element.fromDom(domGlobals.document);\n var scroll = get$8(doc);\n var path = pathTo(element, Navigation);\n return path.fold(curry(absolute, element), function (frames) {\n var offset = viewport(element);\n var r = foldr(frames, function (b, a) {\n var loc = viewport(a);\n return {\n left: b.left + loc.left(),\n top: b.top + loc.top()\n };\n }, {\n left: 0,\n top: 0\n });\n return Position(r.left + offset.left() + scroll.left(), r.top + offset.top() + scroll.top());\n });\n };\n\n var pointed = Immutable('point', 'width', 'height');\n var rect = Immutable('x', 'y', 'width', 'height');\n var bounds$1 = function (x, y, width, height) {\n return {\n x: constant(x),\n y: constant(y),\n width: constant(width),\n height: constant(height),\n right: constant(x + width),\n bottom: constant(y + height)\n };\n };\n var box = function (element) {\n var xy = absolute(element);\n var w = getOuter$2(element);\n var h = getOuter$1(element);\n return bounds$1(xy.left(), xy.top(), w, h);\n };\n var absolute$1 = function (element) {\n var position = find$3(element);\n var width = getOuter$2(element);\n var height = getOuter$1(element);\n return bounds$1(position.left(), position.top(), width, height);\n };\n var win = function () {\n return getBounds(domGlobals.window);\n };\n\n var closest$2 = function (scope, predicate, isRoot) {\n return closest(scope, predicate, isRoot).isSome();\n };\n\n var ancestor$1 = function (scope, selector, isRoot) {\n return ancestor(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var descendant$1 = function (scope, selector) {\n return one(selector, scope);\n };\n var closest$3 = function (scope, selector, isRoot) {\n return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot);\n };\n\n var find$4 = function (queryElem) {\n var dependent = closest(queryElem, function (elem) {\n if (!isElement(elem)) {\n return false;\n }\n var id = get$2(elem, 'id');\n return id !== undefined && id.indexOf('aria-owns') > -1;\n });\n return dependent.bind(function (dep) {\n var id = get$2(dep, 'id');\n var doc = owner(dep);\n return descendant$1(doc, '[aria-owns=\"' + id + '\"]');\n });\n };\n var manager = function () {\n var ariaId = generate$1('aria-owns');\n var link = function (elem) {\n set$1(elem, 'aria-owns', ariaId);\n };\n var unlink = function (elem) {\n remove$1(elem, 'aria-owns');\n };\n return {\n id: constant(ariaId),\n link: link,\n unlink: unlink\n };\n };\n\n var isAriaPartOf = function (component, queryElem) {\n return find$4(queryElem).exists(function (owner) {\n return isPartOf(component, owner);\n });\n };\n var isPartOf = function (component, queryElem) {\n return closest$2(queryElem, function (el) {\n return eq(el, component.element());\n }, constant(false)) || isAriaPartOf(component, queryElem);\n };\n\n var cat = function (arr) {\n var r = [];\n var push = function (x) {\n r.push(x);\n };\n for (var i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n var sequence = function (arr) {\n var r = [];\n for (var i = 0; i < arr.length; i++) {\n var x = arr[i];\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Option.none();\n }\n }\n return Option.some(r);\n };\n var findMap = function (arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Option.none();\n };\n var lift2 = function (oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none();\n };\n var lift3 = function (oa, ob, oc, f) {\n return oa.isSome() && ob.isSome() && oc.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Option.none();\n };\n\n var unknown$3 = 'unknown';\n var EventConfiguration;\n (function (EventConfiguration) {\n EventConfiguration[EventConfiguration['STOP'] = 0] = 'STOP';\n EventConfiguration[EventConfiguration['NORMAL'] = 1] = 'NORMAL';\n EventConfiguration[EventConfiguration['LOGGING'] = 2] = 'LOGGING';\n }(EventConfiguration || (EventConfiguration = {})));\n var eventConfig = Cell({});\n var makeEventLogger = function (eventName, initialTarget) {\n var sequence = [];\n var startTime = new Date().getTime();\n return {\n logEventCut: function (name, target, purpose) {\n sequence.push({\n outcome: 'cut',\n target: target,\n purpose: purpose\n });\n },\n logEventStopped: function (name, target, purpose) {\n sequence.push({\n outcome: 'stopped',\n target: target,\n purpose: purpose\n });\n },\n logNoParent: function (name, target, purpose) {\n sequence.push({\n outcome: 'no-parent',\n target: target,\n purpose: purpose\n });\n },\n logEventNoHandlers: function (name, target) {\n sequence.push({\n outcome: 'no-handlers-left',\n target: target\n });\n },\n logEventResponse: function (name, target, purpose) {\n sequence.push({\n outcome: 'response',\n purpose: purpose,\n target: target\n });\n },\n write: function () {\n var finishTime = new Date().getTime();\n if (contains([\n 'mousemove',\n 'mouseover',\n 'mouseout',\n systemInit()\n ], eventName)) {\n return;\n }\n domGlobals.console.log(eventName, {\n event: eventName,\n time: finishTime - startTime,\n target: initialTarget.dom(),\n sequence: map(sequence, function (s) {\n if (!contains([\n 'cut',\n 'stopped',\n 'response'\n ], s.outcome)) {\n return s.outcome;\n } else {\n return '{' + s.purpose + '} ' + s.outcome + ' at (' + element(s.target) + ')';\n }\n })\n });\n }\n };\n };\n var processEvent = function (eventName, initialTarget, f) {\n var status = readOptFrom$1(eventConfig.get(), eventName).orThunk(function () {\n var patterns = keys(eventConfig.get());\n return findMap(patterns, function (p) {\n return eventName.indexOf(p) > -1 ? Option.some(eventConfig.get()[p]) : Option.none();\n });\n }).getOr(EventConfiguration.NORMAL);\n switch (status) {\n case EventConfiguration.NORMAL:\n return f(noLogger());\n case EventConfiguration.LOGGING: {\n var logger = makeEventLogger(eventName, initialTarget);\n var output = f(logger);\n logger.write();\n return output;\n }\n case EventConfiguration.STOP:\n return true;\n }\n };\n var path = [\n 'alloy/data/Fields',\n 'alloy/debugging/Debugging'\n ];\n var getTrace = function () {\n var err = new Error();\n if (err.stack !== undefined) {\n var lines = err.stack.split('\\n');\n return find(lines, function (line) {\n return line.indexOf('alloy') > 0 && !exists(path, function (p) {\n return line.indexOf(p) > -1;\n });\n }).getOr(unknown$3);\n } else {\n return unknown$3;\n }\n };\n var ignoreEvent = {\n logEventCut: noop,\n logEventStopped: noop,\n logNoParent: noop,\n logEventNoHandlers: noop,\n logEventResponse: noop,\n write: noop\n };\n var monitorEvent = function (eventName, initialTarget, f) {\n return processEvent(eventName, initialTarget, f);\n };\n var noLogger = constant(ignoreEvent);\n\n var menuFields = constant([\n strict$1('menu'),\n strict$1('selectedMenu')\n ]);\n var itemFields = constant([\n strict$1('item'),\n strict$1('selectedItem')\n ]);\n var schema = constant(objOf(itemFields().concat(menuFields())));\n var itemSchema = constant(objOf(itemFields()));\n\n var _initSize = strictObjOf('initSize', [\n strict$1('numColumns'),\n strict$1('numRows')\n ]);\n var itemMarkers = function () {\n return strictOf('markers', itemSchema());\n };\n var tieredMenuMarkers = function () {\n return strictObjOf('markers', [strict$1('backgroundMenu')].concat(menuFields()).concat(itemFields()));\n };\n var markers = function (required) {\n return strictObjOf('markers', map(required, strict$1));\n };\n var onPresenceHandler = function (label, fieldName, presence) {\n var trace = getTrace();\n return field(fieldName, fieldName, presence, valueOf(function (f) {\n return Result.value(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return f.apply(undefined, args);\n });\n }));\n };\n var onHandler = function (fieldName) {\n return onPresenceHandler('onHandler', fieldName, defaulted(noop));\n };\n var onKeyboardHandler = function (fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, defaulted(Option.none));\n };\n var onStrictHandler = function (fieldName) {\n return onPresenceHandler('onHandler', fieldName, strict());\n };\n var onStrictKeyboardHandler = function (fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, strict());\n };\n var output = function (name, value) {\n return state$1(name, constant(value));\n };\n var snapshot = function (name) {\n return state$1(name, identity);\n };\n var initSize = constant(_initSize);\n\n var nu$7 = Immutable('x', 'y', 'bubble', 'direction', 'label');\n\n var adt$2 = Adt.generate([\n { southeast: [] },\n { southwest: [] },\n { northeast: [] },\n { northwest: [] },\n { south: [] },\n { north: [] },\n { east: [] },\n { west: [] }\n ]);\n var cata = function (subject, southeast, southwest, northeast, northwest, south, north, east, west) {\n return subject.fold(southeast, southwest, northeast, northwest, south, north, east, west);\n };\n var cataVertical = function (subject, south, middle, north) {\n return subject.fold(south, south, north, north, south, north, middle, middle);\n };\n var cataHorizontal = function (subject, east, middle, west) {\n return subject.fold(east, west, east, west, middle, middle, east, west);\n };\n var southeast = adt$2.southeast;\n var southwest = adt$2.southwest;\n var northeast = adt$2.northeast;\n var northwest = adt$2.northwest;\n var south = adt$2.south;\n var north = adt$2.north;\n var east = adt$2.east;\n var west = adt$2.west;\n\n var eastX = function (anchor) {\n return anchor.x();\n };\n var middleX = function (anchor, element) {\n return anchor.x() + anchor.width() / 2 - element.width() / 2;\n };\n var westX = function (anchor, element) {\n return anchor.x() + anchor.width() - element.width();\n };\n var northY = function (anchor, element) {\n return anchor.y() - element.height();\n };\n var southY = function (anchor) {\n return anchor.y() + anchor.height();\n };\n var centreY = function (anchor, element) {\n return anchor.y() + anchor.height() / 2 - element.height() / 2;\n };\n var eastEdgeX = function (anchor) {\n return anchor.x() + anchor.width();\n };\n var westEdgeX = function (anchor, element) {\n return anchor.x() - element.width();\n };\n var southeast$1 = function (anchor, element, bubbles) {\n return nu$7(eastX(anchor), southY(anchor), bubbles.southeast(), southeast(), 'layout-se');\n };\n var southwest$1 = function (anchor, element, bubbles) {\n return nu$7(westX(anchor, element), southY(anchor), bubbles.southwest(), southwest(), 'layout-sw');\n };\n var northeast$1 = function (anchor, element, bubbles) {\n return nu$7(eastX(anchor), northY(anchor, element), bubbles.northeast(), northeast(), 'layout-ne');\n };\n var northwest$1 = function (anchor, element, bubbles) {\n return nu$7(westX(anchor, element), northY(anchor, element), bubbles.northwest(), northwest(), 'layout-nw');\n };\n var north$1 = function (anchor, element, bubbles) {\n return nu$7(middleX(anchor, element), northY(anchor, element), bubbles.north(), north(), 'layout-n');\n };\n var south$1 = function (anchor, element, bubbles) {\n return nu$7(middleX(anchor, element), southY(anchor), bubbles.south(), south(), 'layout-s');\n };\n var east$1 = function (anchor, element, bubbles) {\n return nu$7(eastEdgeX(anchor), centreY(anchor, element), bubbles.east(), east(), 'layout-e');\n };\n var west$1 = function (anchor, element, bubbles) {\n return nu$7(westEdgeX(anchor, element), centreY(anchor, element), bubbles.west(), west(), 'layout-w');\n };\n var all$2 = function () {\n return [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n south$1,\n north$1,\n east$1,\n west$1\n ];\n };\n var allRtl = function () {\n return [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n south$1,\n north$1,\n east$1,\n west$1\n ];\n };\n var belowOrAbove = function () {\n return [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n south$1,\n north$1\n ];\n };\n var belowOrAboveRtl = function () {\n return [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n south$1,\n north$1\n ];\n };\n\n var executeEvent = function (bConfig, bState, executor) {\n return runOnExecute(function (component) {\n executor(component, bConfig, bState);\n });\n };\n var loadEvent = function (bConfig, bState, f) {\n return runOnInit(function (component, simulatedEvent) {\n f(component, bConfig, bState);\n });\n };\n var create = function (schema, name, active, apis, extra, state) {\n var configSchema = objOfOnly(schema);\n var schemaSchema = optionObjOf(name, [optionObjOfOnly('config', schema)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n var createModes = function (modes, name, active, apis, extra, state) {\n var configSchema = modes;\n var schemaSchema = optionObjOf(name, [optionOf('config', modes)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n var wrapApi = function (bName, apiFunction, apiName) {\n var f = function (component) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var args = [component].concat(rest);\n return component.config({ name: constant(bName) }).fold(function () {\n throw new Error('We could not find any behaviour configuration for: ' + bName + '. Using API: ' + apiName);\n }, function (info) {\n var rest = Array.prototype.slice.call(args, 1);\n return apiFunction.apply(undefined, [\n component,\n info.config,\n info.state\n ].concat(rest));\n });\n };\n return markAsBehaviourApi(f, apiName, apiFunction);\n };\n var revokeBehaviour = function (name) {\n return {\n key: name,\n value: undefined\n };\n };\n var doCreate = function (configSchema, schemaSchema, name, active, apis, extra, state) {\n var getConfig = function (info) {\n return hasKey$1(info, name) ? info[name]() : Option.none();\n };\n var wrappedApis = map$1(apis, function (apiF, apiName) {\n return wrapApi(name, apiF, apiName);\n });\n var wrappedExtra = map$1(extra, function (extraF, extraName) {\n return markAsExtraApi(extraF, extraName);\n });\n var me = __assign(__assign(__assign({}, wrappedExtra), wrappedApis), {\n revoke: curry(revokeBehaviour, name),\n config: function (spec) {\n var prepared = asRawOrDie(name + '-config', configSchema, spec);\n return {\n key: name,\n value: {\n config: prepared,\n me: me,\n configAsRaw: cached(function () {\n return asRawOrDie(name + '-config', configSchema, spec);\n }),\n initialConfig: spec,\n state: state\n }\n };\n },\n schema: function () {\n return schemaSchema;\n },\n exhibit: function (info, base) {\n return getConfig(info).bind(function (behaviourInfo) {\n return readOptFrom$1(active, 'exhibit').map(function (exhibitor) {\n return exhibitor(base, behaviourInfo.config, behaviourInfo.state);\n });\n }).getOr(nu$6({}));\n },\n name: function () {\n return name;\n },\n handlers: function (info) {\n return getConfig(info).map(function (behaviourInfo) {\n var getEvents = readOr$1('events', function (a, b) {\n return {};\n })(active);\n return getEvents(behaviourInfo.config, behaviourInfo.state);\n }).getOr({});\n }\n });\n return me;\n };\n\n var derive$1 = function (capabilities) {\n return wrapAll$1(capabilities);\n };\n var simpleSchema = objOfOnly([\n strict$1('fields'),\n strict$1('name'),\n defaulted$1('active', {}),\n defaulted$1('apis', {}),\n defaulted$1('state', NoState),\n defaulted$1('extra', {})\n ]);\n var create$1 = function (data) {\n var value = asRawOrDie('Creating behaviour: ' + data.name, simpleSchema, data);\n return create(value.fields, value.name, value.active, value.apis, value.extra, value.state);\n };\n var modeSchema = objOfOnly([\n strict$1('branchKey'),\n strict$1('branches'),\n strict$1('name'),\n defaulted$1('active', {}),\n defaulted$1('apis', {}),\n defaulted$1('state', NoState),\n defaulted$1('extra', {})\n ]);\n var createModes$1 = function (data) {\n var value = asRawOrDie('Creating behaviour: ' + data.name, modeSchema, data);\n return createModes(choose$1(value.branchKey, value.branches), value.name, value.active, value.apis, value.extra, value.state);\n };\n var revoke = constant(undefined);\n\n var chooseChannels = function (channels, message) {\n return message.universal() ? channels : filter(channels, function (ch) {\n return contains(message.channels(), ch);\n });\n };\n var events$1 = function (receiveConfig) {\n return derive([run(receive(), function (component, message) {\n var channelMap = receiveConfig.channels;\n var channels = keys(channelMap);\n var targetChannels = chooseChannels(channels, message);\n each(targetChannels, function (ch) {\n var channelInfo = channelMap[ch];\n var channelSchema = channelInfo.schema;\n var data = asRawOrDie('channel[' + ch + '] data\\nReceiver: ' + element(component.element()), channelSchema, message.data());\n channelInfo.onReceive(component, data);\n });\n })]);\n };\n\n var ActiveReceiving = /*#__PURE__*/Object.freeze({\n events: events$1\n });\n\n var ReceivingSchema = [strictOf('channels', setOf$1(Result.value, objOfOnly([\n onStrictHandler('onReceive'),\n defaulted$1('schema', anyValue$1())\n ])))];\n\n var Receiving = create$1({\n fields: ReceivingSchema,\n name: 'receiving',\n active: ActiveReceiving\n });\n\n var exhibit = function (base, posConfig) {\n return nu$6({\n classes: [],\n styles: posConfig.useFixed() ? {} : { position: 'relative' }\n });\n };\n\n var ActivePosition = /*#__PURE__*/Object.freeze({\n exhibit: exhibit\n });\n\n var focus$1 = function (element) {\n element.dom().focus();\n };\n var blur = function (element) {\n element.dom().blur();\n };\n var hasFocus = function (element) {\n var doc = owner(element).dom();\n return element.dom() === doc.activeElement;\n };\n var active = function (_doc) {\n var doc = _doc !== undefined ? _doc.dom() : domGlobals.document;\n return Option.from(doc.activeElement).map(Element.fromDom);\n };\n var search = function (element) {\n return active(owner(element)).filter(function (e) {\n return element.dom().contains(e.dom());\n });\n };\n\n var preserve = function (f, container) {\n var ownerDoc = owner(container);\n var refocus = active(ownerDoc).bind(function (focused) {\n var hasFocus = function (elem) {\n return eq(focused, elem);\n };\n return hasFocus(container) ? Option.some(container) : descendant(container, hasFocus);\n });\n var result = f(container);\n refocus.each(function (oldFocus) {\n active(ownerDoc).filter(function (newFocus) {\n return eq(newFocus, oldFocus);\n }).fold(function () {\n focus$1(oldFocus);\n }, noop);\n });\n return result;\n };\n\n var allAlignments = [\n 'valignCentre',\n 'alignLeft',\n 'alignRight',\n 'alignCentre',\n 'top',\n 'bottom',\n 'left',\n 'right'\n ];\n var nu$8 = function (width, yoffset, classes) {\n var getClasses = function (prop) {\n return readOptFrom$1(classes, prop).getOr([]);\n };\n var make = function (xDelta, yDelta, alignmentsOn) {\n var alignmentsOff = difference(allAlignments, alignmentsOn);\n return {\n offset: function () {\n return Position(xDelta, yDelta);\n },\n classesOn: function () {\n return bind(alignmentsOn, getClasses);\n },\n classesOff: function () {\n return bind(alignmentsOff, getClasses);\n }\n };\n };\n return {\n southeast: function () {\n return make(-width, yoffset, [\n 'top',\n 'alignLeft'\n ]);\n },\n southwest: function () {\n return make(width, yoffset, [\n 'top',\n 'alignRight'\n ]);\n },\n south: function () {\n return make(-width / 2, yoffset, [\n 'top',\n 'alignCentre'\n ]);\n },\n northeast: function () {\n return make(-width, -yoffset, [\n 'bottom',\n 'alignLeft'\n ]);\n },\n northwest: function () {\n return make(width, -yoffset, [\n 'bottom',\n 'alignRight'\n ]);\n },\n north: function () {\n return make(-width / 2, -yoffset, [\n 'bottom',\n 'alignCentre'\n ]);\n },\n east: function () {\n return make(width, -yoffset / 2, [\n 'valignCentre',\n 'left'\n ]);\n },\n west: function () {\n return make(-width, -yoffset / 2, [\n 'valignCentre',\n 'right'\n ]);\n },\n innerNorthwest: function () {\n return make(-width, yoffset, [\n 'top',\n 'alignRight'\n ]);\n },\n innerNortheast: function () {\n return make(width, yoffset, [\n 'top',\n 'alignLeft'\n ]);\n },\n innerNorth: function () {\n return make(-width / 2, yoffset, [\n 'top',\n 'alignCentre'\n ]);\n },\n innerSouthwest: function () {\n return make(-width, -yoffset, [\n 'bottom',\n 'alignRight'\n ]);\n },\n innerSoutheast: function () {\n return make(width, -yoffset, [\n 'bottom',\n 'alignLeft'\n ]);\n },\n innerSouth: function () {\n return make(-width / 2, -yoffset, [\n 'bottom',\n 'alignCentre'\n ]);\n },\n innerWest: function () {\n return make(width, -yoffset / 2, [\n 'valignCentre',\n 'right'\n ]);\n },\n innerEast: function () {\n return make(-width, -yoffset / 2, [\n 'valignCentre',\n 'left'\n ]);\n }\n };\n };\n var fallback = function () {\n return nu$8(0, 0, {});\n };\n\n var decision = MixedBag([\n 'x',\n 'y',\n 'width',\n 'height',\n 'maxHeight',\n 'maxWidth',\n 'direction',\n 'classes',\n 'label',\n 'candidateYforTest'\n ], []);\n var css = Immutable('position', 'left', 'top', 'right', 'bottom');\n\n var adt$3 = Adt.generate([\n { none: [] },\n {\n relative: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n },\n {\n fixed: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n }\n ]);\n var positionWithDirection = function (posName, decision, x, y, width, height) {\n var decisionX = decision.x() - x;\n var decisionY = decision.y() - y;\n var decisionWidth = decision.width();\n var decisionHeight = decision.height();\n var decisionRight = width - (decisionX + decisionWidth);\n var decisionBottom = height - (decisionY + decisionHeight);\n var left = Option.some(decisionX);\n var top = Option.some(decisionY);\n var right = Option.some(decisionRight);\n var bottom = Option.some(decisionBottom);\n var none = Option.none();\n return cata(decision.direction(), function () {\n return css(posName, left, top, none, none);\n }, function () {\n return css(posName, none, top, right, none);\n }, function () {\n return css(posName, left, none, none, bottom);\n }, function () {\n return css(posName, none, none, right, bottom);\n }, function () {\n return css(posName, left, top, none, none);\n }, function () {\n return css(posName, left, none, none, bottom);\n }, function () {\n return css(posName, left, top, none, none);\n }, function () {\n return css(posName, none, top, right, none);\n });\n };\n var reposition = function (origin, decision) {\n return origin.fold(function () {\n return css('absolute', Option.some(decision.x()), Option.some(decision.y()), Option.none(), Option.none());\n }, function (x, y, width, height) {\n return positionWithDirection('absolute', decision, x, y, width, height);\n }, function (x, y, width, height) {\n return positionWithDirection('fixed', decision, x, y, width, height);\n });\n };\n var toBox = function (origin, element) {\n var rel = curry(find$3, element);\n var position = origin.fold(rel, rel, function () {\n var scroll = get$8();\n return find$3(element).translate(-scroll.left(), -scroll.top());\n });\n var width = getOuter$2(element);\n var height = getOuter$1(element);\n return bounds$1(position.left(), position.top(), width, height);\n };\n var viewport$1 = function (origin, getBounds) {\n return getBounds.fold(function () {\n return origin.fold(win, win, bounds$1);\n }, function (b) {\n return origin.fold(b, b, function () {\n var bounds = b();\n var pos = translate(origin, bounds.x(), bounds.y());\n return bounds$1(pos.left(), pos.top(), bounds.width(), bounds.height());\n });\n });\n };\n var translate = function (origin, x, y) {\n var pos = Position(x, y);\n var removeScroll = function () {\n var outerScroll = get$8();\n return pos.translate(-outerScroll.left(), -outerScroll.top());\n };\n return origin.fold(constant(pos), constant(pos), removeScroll);\n };\n var cata$1 = function (subject, onNone, onRelative, onFixed) {\n return subject.fold(onNone, onRelative, onFixed);\n };\n var relative = adt$3.relative;\n var fixed = adt$3.fixed;\n\n var nu$9 = function (x) {\n return x;\n };\n\n var onDirection = function (isLtr, isRtl) {\n return function (element) {\n return getDirection(element) === 'rtl' ? isRtl : isLtr;\n };\n };\n var getDirection = function (element) {\n return get$4(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var schema$1 = function () {\n return optionObjOf('layouts', [\n strict$1('onLtr'),\n strict$1('onRtl')\n ]);\n };\n var get$9 = function (elem, info, defaultLtr, defaultRtl) {\n var ltr = info.layouts.map(function (ls) {\n return ls.onLtr(elem);\n }).getOr(defaultLtr);\n var rtl = info.layouts.map(function (ls) {\n return ls.onRtl(elem);\n }).getOr(defaultRtl);\n var f = onDirection(ltr, rtl);\n return f(elem);\n };\n\n var placement = function (component, anchorInfo, origin) {\n var hotspot = anchorInfo.hotspot;\n var anchorBox = toBox(origin, hotspot.element());\n var layouts = get$9(component.element(), anchorInfo, belowOrAbove(), belowOrAboveRtl());\n return Option.some(nu$9({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Option.none()\n }));\n };\n var HotspotAnchor = [\n strict$1('hotspot'),\n option('bubble'),\n defaulted$1('overrides', {}),\n schema$1(),\n output('placement', placement)\n ];\n\n var placement$1 = function (component, anchorInfo, origin) {\n var pos = translate(origin, anchorInfo.x, anchorInfo.y);\n var anchorBox = bounds$1(pos.left(), pos.top(), anchorInfo.width, anchorInfo.height);\n var layouts = get$9(component.element(), anchorInfo, all$2(), allRtl());\n return Option.some(nu$9({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble,\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Option.none()\n }));\n };\n var MakeshiftAnchor = [\n strict$1('x'),\n strict$1('y'),\n defaulted$1('height', 0),\n defaulted$1('width', 0),\n defaulted$1('bubble', fallback()),\n defaulted$1('overrides', {}),\n schema$1(),\n output('placement', placement$1)\n ];\n\n var zeroWidth = function () {\n return '\\uFEFF';\n };\n\n var create$2 = Immutable('start', 'soffset', 'finish', 'foffset');\n var SimRange = { create: create$2 };\n\n var adt$4 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n var cata$2 = function (subject, onBefore, onOn, onAfter) {\n return subject.fold(onBefore, onOn, onAfter);\n };\n var getStart = function (situ) {\n return situ.fold(identity, identity, identity);\n };\n var before$2 = adt$4.before;\n var on = adt$4.on;\n var after$1 = adt$4.after;\n var Situ = {\n before: before$2,\n on: on,\n after: after$1,\n cata: cata$2,\n getStart: getStart\n };\n\n var adt$5 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var exactFromRange = function (simRange) {\n return adt$5.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());\n };\n var getStart$1 = function (selection) {\n return selection.match({\n domRange: function (rng) {\n return Element.fromDom(rng.startContainer);\n },\n relative: function (startSitu, finishSitu) {\n return Situ.getStart(startSitu);\n },\n exact: function (start, soffset, finish, foffset) {\n return start;\n }\n });\n };\n var domRange = adt$5.domRange;\n var relative$1 = adt$5.relative;\n var exact = adt$5.exact;\n var getWin = function (selection) {\n var start = getStart$1(selection);\n return defaultView(start);\n };\n var range$1 = SimRange.create;\n var Selection = {\n domRange: domRange,\n relative: relative$1,\n exact: exact,\n exactFromRange: exactFromRange,\n getWin: getWin,\n range: range$1\n };\n\n var setStart = function (rng, situ) {\n situ.fold(function (e) {\n rng.setStartBefore(e.dom());\n }, function (e, o) {\n rng.setStart(e.dom(), o);\n }, function (e) {\n rng.setStartAfter(e.dom());\n });\n };\n var setFinish = function (rng, situ) {\n situ.fold(function (e) {\n rng.setEndBefore(e.dom());\n }, function (e, o) {\n rng.setEnd(e.dom(), o);\n }, function (e) {\n rng.setEndAfter(e.dom());\n });\n };\n var relativeToNative = function (win, startSitu, finishSitu) {\n var range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n var exactToNative = function (win, start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n };\n var toRect = function (rect) {\n return {\n left: constant(rect.left),\n top: constant(rect.top),\n right: constant(rect.right),\n bottom: constant(rect.bottom),\n width: constant(rect.width),\n height: constant(rect.height)\n };\n };\n var getFirstRect = function (rng) {\n var rects = rng.getClientRects();\n var rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Option.some(rect).map(toRect) : Option.none();\n };\n\n var adt$6 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var fromRange = function (win, type, range) {\n return type(Element.fromDom(range.startContainer), range.startOffset, Element.fromDom(range.endContainer), range.endOffset);\n };\n var getRanges = function (win, selection) {\n return selection.match({\n domRange: function (rng) {\n return {\n ltr: constant(rng),\n rtl: Option.none\n };\n },\n relative: function (startSitu, finishSitu) {\n return {\n ltr: cached(function () {\n return relativeToNative(win, startSitu, finishSitu);\n }),\n rtl: cached(function () {\n return Option.some(relativeToNative(win, finishSitu, startSitu));\n })\n };\n },\n exact: function (start, soffset, finish, foffset) {\n return {\n ltr: cached(function () {\n return exactToNative(win, start, soffset, finish, foffset);\n }),\n rtl: cached(function () {\n return Option.some(exactToNative(win, finish, foffset, start, soffset));\n })\n };\n }\n });\n };\n var doDiagnose = function (win, ranges) {\n var rng = ranges.ltr();\n if (rng.collapsed) {\n var reversed = ranges.rtl().filter(function (rev) {\n return rev.collapsed === false;\n });\n return reversed.map(function (rev) {\n return adt$6.rtl(Element.fromDom(rev.endContainer), rev.endOffset, Element.fromDom(rev.startContainer), rev.startOffset);\n }).getOrThunk(function () {\n return fromRange(win, adt$6.ltr, rng);\n });\n } else {\n return fromRange(win, adt$6.ltr, rng);\n }\n };\n var diagnose = function (win, selection) {\n var ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n var asLtrRange = function (win, selection) {\n var diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: function (start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n },\n rtl: function (start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(finish.dom(), foffset);\n rng.setEnd(start.dom(), soffset);\n return rng;\n }\n });\n };\n\n var searchForPoint = function (rectForOffset, x, y, maxX, length) {\n if (length === 0) {\n return 0;\n } else if (x === maxX) {\n return length - 1;\n }\n var xDelta = maxX;\n for (var i = 1; i < length; i++) {\n var rect = rectForOffset(i);\n var curDeltaX = Math.abs(x - rect.left);\n if (y <= rect.bottom) {\n if (y < rect.top || curDeltaX > xDelta) {\n return i - 1;\n } else {\n xDelta = curDeltaX;\n }\n }\n }\n return 0;\n };\n var inRect = function (rect, x, y) {\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n };\n\n function NodeValue (is, name) {\n var get = function (element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n var getOption = function (element) {\n return is(element) ? Option.from(element.dom().nodeValue) : Option.none();\n };\n var set = function (element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom().nodeValue = value;\n };\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n }\n\n var api$2 = NodeValue(isText, 'text');\n var get$a = function (element) {\n return api$2.get(element);\n };\n var getOption = function (element) {\n return api$2.getOption(element);\n };\n\n var locateOffset = function (doc, textnode, x, y, rect) {\n var rangeForOffset = function (o) {\n var r = doc.dom().createRange();\n r.setStart(textnode.dom(), o);\n r.collapse(true);\n return r;\n };\n var rectForOffset = function (o) {\n var r = rangeForOffset(o);\n return r.getBoundingClientRect();\n };\n var length = get$a(textnode).length;\n var offset = searchForPoint(rectForOffset, x, y, rect.right, length);\n return rangeForOffset(offset);\n };\n var locate = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rects = r.getClientRects();\n var foundRect = findMap(rects, function (rect) {\n return inRect(rect, x, y) ? Option.some(rect) : Option.none();\n });\n return foundRect.map(function (rect) {\n return locateOffset(doc, node, x, y, rect);\n });\n };\n\n var searchInChildren = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n var nodes = children(node);\n return findMap(nodes, function (n) {\n r.selectNode(n.dom());\n return inRect(r.getBoundingClientRect(), x, y) ? locateNode(doc, n, x, y) : Option.none();\n });\n };\n var locateNode = function (doc, node, x, y) {\n return isText(node) ? locate(doc, node, x, y) : searchInChildren(doc, node, x, y);\n };\n var locate$1 = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locateNode(doc, node, boundedX, boundedY);\n };\n\n var getEnd = function (element) {\n return name(element) === 'img' ? 1 : getOption(element).fold(function () {\n return children(element).length;\n }, function (v) {\n return v.length;\n });\n };\n var NBSP = '\\xA0';\n var isTextNodeWithCursorPosition = function (el) {\n return getOption(el).filter(function (text) {\n return text.trim().length !== 0 || text.indexOf(NBSP) > -1;\n }).isSome();\n };\n var elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n var isCursorPosition = function (elem) {\n var hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains(elementsWithCursorPosition, name(elem));\n };\n\n var first = function (element) {\n return descendant(element, isCursorPosition);\n };\n var last$1 = function (element) {\n return descendantRtl(element, isCursorPosition);\n };\n var descendantRtl = function (scope, predicate) {\n var descend = function (element) {\n var children$1 = children(element);\n for (var i = children$1.length - 1; i >= 0; i--) {\n var child = children$1[i];\n if (predicate(child)) {\n return Option.some(child);\n }\n var res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Option.none();\n };\n return descend(scope);\n };\n\n var COLLAPSE_TO_LEFT = true;\n var COLLAPSE_TO_RIGHT = false;\n var getCollapseDirection = function (rect, x) {\n return x - rect.left < rect.right - x ? COLLAPSE_TO_LEFT : COLLAPSE_TO_RIGHT;\n };\n var createCollapsedNode = function (doc, target, collapseDirection) {\n var r = doc.dom().createRange();\n r.selectNode(target.dom());\n r.collapse(collapseDirection);\n return r;\n };\n var locateInElement = function (doc, node, x) {\n var cursorRange = doc.dom().createRange();\n cursorRange.selectNode(node.dom());\n var rect = cursorRange.getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n var f = collapseDirection === COLLAPSE_TO_LEFT ? first : last$1;\n return f(node).map(function (target) {\n return createCollapsedNode(doc, target, collapseDirection);\n });\n };\n var locateInEmpty = function (doc, node, x) {\n var rect = node.dom().getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n return Option.some(createCollapsedNode(doc, node, collapseDirection));\n };\n var search$1 = function (doc, node, x) {\n var f = children(node).length === 0 ? locateInEmpty : locateInElement;\n return f(doc, node, x);\n };\n\n var caretPositionFromPoint = function (doc, x, y) {\n return Option.from(doc.dom().caretPositionFromPoint(x, y)).bind(function (pos) {\n if (pos.offsetNode === null) {\n return Option.none();\n }\n var r = doc.dom().createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Option.some(r);\n });\n };\n var caretRangeFromPoint = function (doc, x, y) {\n return Option.from(doc.dom().caretRangeFromPoint(x, y));\n };\n var searchTextNodes = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locate$1(doc, node, boundedX, boundedY);\n };\n var searchFromPoint = function (doc, x, y) {\n return Element.fromPoint(doc, x, y).bind(function (elem) {\n var fallback = function () {\n return search$1(doc, elem, x);\n };\n return children(elem).length === 0 ? fallback() : searchTextNodes(doc, elem, x, y).orThunk(fallback);\n });\n };\n var availableSearch = document.caretPositionFromPoint ? caretPositionFromPoint : document.caretRangeFromPoint ? caretRangeFromPoint : searchFromPoint;\n\n var descendants = function (scope, selector) {\n return all(selector, scope);\n };\n\n var makeRange = function (start, soffset, finish, foffset) {\n var doc = owner(start);\n var rng = doc.dom().createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n };\n var after$2 = function (start, soffset, finish, foffset) {\n var r = makeRange(start, soffset, finish, foffset);\n var same = eq(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n var readRange = function (selection) {\n if (selection.rangeCount > 0) {\n var firstRng = selection.getRangeAt(0);\n var lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Option.some(SimRange.create(Element.fromDom(firstRng.startContainer), firstRng.startOffset, Element.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Option.none();\n }\n };\n var doGetExact = function (selection) {\n var anchor = Element.fromDom(selection.anchorNode);\n var focus = Element.fromDom(selection.focusNode);\n return after$2(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Option.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n };\n var getExact = function (win) {\n return Option.from(win.getSelection()).filter(function (sel) {\n return sel.rangeCount > 0;\n }).bind(doGetExact);\n };\n var getFirstRect$1 = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return getFirstRect(rng);\n };\n\n var point = Immutable('element', 'offset');\n var descendOnce = function (element, offset) {\n var children$1 = children(element);\n if (children$1.length === 0) {\n return point(element, offset);\n } else if (offset < children$1.length) {\n return point(children$1[offset], 0);\n } else {\n var last = children$1[children$1.length - 1];\n var len = isText(last) ? get$a(last).length : children(last).length;\n return point(last, len);\n }\n };\n\n var adt$7 = Adt.generate([\n { screen: ['point'] },\n {\n absolute: [\n 'point',\n 'scrollLeft',\n 'scrollTop'\n ]\n }\n ]);\n var toFixed = function (pos) {\n return pos.fold(function (point) {\n return point;\n }, function (point, scrollLeft, scrollTop) {\n return point.translate(-scrollLeft, -scrollTop);\n });\n };\n var toAbsolute = function (pos) {\n return pos.fold(function (point) {\n return point;\n }, function (point, scrollLeft, scrollTop) {\n return point;\n });\n };\n var sum = function (points) {\n return foldl(points, function (b, a) {\n return b.translate(a.left(), a.top());\n }, Position(0, 0));\n };\n var sumAsFixed = function (positions) {\n var points = map(positions, toFixed);\n return sum(points);\n };\n var sumAsAbsolute = function (positions) {\n var points = map(positions, toAbsolute);\n return sum(points);\n };\n var screen = adt$7.screen;\n var absolute$2 = adt$7.absolute;\n\n var getOffset = function (component, origin, anchorInfo) {\n var win = defaultView(anchorInfo.root).dom();\n var hasSameOwner = function (frame) {\n var frameOwner = owner(frame);\n var compOwner = owner(component.element());\n return eq(frameOwner, compOwner);\n };\n return Option.from(win.frameElement).map(Element.fromDom).filter(hasSameOwner).map(absolute);\n };\n var getRootPoint = function (component, origin, anchorInfo) {\n var doc = owner(component.element());\n var outerScroll = get$8(doc);\n var offset = getOffset(component, origin, anchorInfo).getOr(outerScroll);\n return absolute$2(offset, outerScroll.left(), outerScroll.top());\n };\n\n var capRect = function (left, top, width, height) {\n var newLeft = left, newTop = top, newWidth = width, newHeight = height;\n if (left < 0) {\n newLeft = 0;\n newWidth = width + left;\n }\n if (top < 0) {\n newTop = 0;\n newHeight = height + top;\n }\n var point = screen(Position(newLeft, newTop));\n return Option.some(pointed(point, newWidth, newHeight));\n };\n var calcNewAnchor = function (optBox, rootPoint, anchorInfo, origin, elem) {\n return optBox.map(function (box) {\n var points = [\n rootPoint,\n box.point()\n ];\n var topLeft = cata$1(origin, function () {\n return sumAsAbsolute(points);\n }, function () {\n return sumAsAbsolute(points);\n }, function () {\n return sumAsFixed(points);\n });\n var anchorBox = rect(topLeft.left(), topLeft.top(), box.width(), box.height());\n var layoutsLtr = function () {\n return anchorInfo.showAbove ? [\n northeast$1,\n northwest$1,\n southeast$1,\n southwest$1,\n north$1,\n south$1\n ] : [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n south$1,\n south$1\n ];\n };\n var layoutsRtl = function () {\n return anchorInfo.showAbove ? [\n northwest$1,\n northeast$1,\n southwest$1,\n southeast$1,\n north$1,\n south$1\n ] : [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n south$1,\n north$1\n ];\n };\n var layouts = get$9(elem, anchorInfo, layoutsLtr(), layoutsRtl());\n return nu$9({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Option.none()\n });\n });\n };\n var ContentAnchorCommon = {\n capRect: capRect,\n calcNewAnchor: calcNewAnchor\n };\n\n var point$1 = Immutable('element', 'offset');\n var descendOnce$1 = function (element, offset) {\n return isText(element) ? point$1(element, offset) : descendOnce(element, offset);\n };\n var getAnchorSelection = function (win, anchorInfo) {\n var getSelection = anchorInfo.getSelection.getOrThunk(function () {\n return function () {\n return getExact(win);\n };\n });\n return getSelection().map(function (sel) {\n var modStart = descendOnce$1(sel.start(), sel.soffset());\n var modFinish = descendOnce$1(sel.finish(), sel.foffset());\n return Selection.range(modStart.element(), modStart.offset(), modFinish.element(), modFinish.offset());\n });\n };\n var placement$2 = function (component, anchorInfo, origin) {\n var win = defaultView(anchorInfo.root).dom();\n var rootPoint = getRootPoint(component, origin, anchorInfo);\n var selectionBox = getAnchorSelection(win, anchorInfo).bind(function (sel) {\n var optRect = getFirstRect$1(win, Selection.exactFromRange(sel)).orThunk(function () {\n var x = Element.fromText(zeroWidth());\n before(sel.start(), x);\n return getFirstRect$1(win, Selection.exact(x, 0, x, 1)).map(function (rect) {\n remove(x);\n return rect;\n });\n });\n return optRect.bind(function (rawRect) {\n return ContentAnchorCommon.capRect(rawRect.left(), rawRect.top(), rawRect.width(), rawRect.height());\n });\n });\n var targetElement = getAnchorSelection(win, anchorInfo).bind(function (sel) {\n return isElement(sel.start()) ? Option.some(sel.start()) : parent(sel.start());\n });\n var elem = targetElement.getOr(component.element());\n return ContentAnchorCommon.calcNewAnchor(selectionBox, rootPoint, anchorInfo, origin, elem);\n };\n var SelectionAnchor = [\n option('getSelection'),\n strict$1('root'),\n option('bubble'),\n schema$1(),\n defaulted$1('overrides', {}),\n defaulted$1('showAbove', false),\n output('placement', placement$2)\n ];\n\n var placement$3 = function (component, anchorInfo, origin) {\n var rootPoint = getRootPoint(component, origin, anchorInfo);\n return anchorInfo.node.bind(function (target) {\n var rect = target.dom().getBoundingClientRect();\n var nodeBox = ContentAnchorCommon.capRect(rect.left, rect.top, rect.width, rect.height);\n var elem = anchorInfo.node.getOr(component.element());\n return ContentAnchorCommon.calcNewAnchor(nodeBox, rootPoint, anchorInfo, origin, elem);\n });\n };\n var NodeAnchor = [\n strict$1('node'),\n strict$1('root'),\n option('bubble'),\n schema$1(),\n defaulted$1('overrides', {}),\n defaulted$1('showAbove', false),\n output('placement', placement$3)\n ];\n\n var eastX$1 = function (anchor) {\n return anchor.x() + anchor.width();\n };\n var westX$1 = function (anchor, element) {\n return anchor.x() - element.width();\n };\n var northY$1 = function (anchor, element) {\n return anchor.y() - element.height() + anchor.height();\n };\n var southY$1 = function (anchor) {\n return anchor.y();\n };\n var southeast$2 = function (anchor, element, bubbles) {\n return nu$7(eastX$1(anchor), southY$1(anchor), bubbles.southeast(), southeast(), 'link-layout-se');\n };\n var southwest$2 = function (anchor, element, bubbles) {\n return nu$7(westX$1(anchor, element), southY$1(anchor), bubbles.southwest(), southwest(), 'link-layout-sw');\n };\n var northeast$2 = function (anchor, element, bubbles) {\n return nu$7(eastX$1(anchor), northY$1(anchor, element), bubbles.northeast(), northeast(), 'link-layout-ne');\n };\n var northwest$2 = function (anchor, element, bubbles) {\n return nu$7(westX$1(anchor, element), northY$1(anchor, element), bubbles.northwest(), northwest(), 'link-layout-nw');\n };\n var all$3 = function () {\n return [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2\n ];\n };\n var allRtl$1 = function () {\n return [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2\n ];\n };\n\n var placement$4 = function (component, submenuInfo, origin) {\n var anchorBox = toBox(origin, submenuInfo.item.element());\n var layouts = get$9(component.element(), submenuInfo, all$3(), allRtl$1());\n return Option.some(nu$9({\n anchorBox: anchorBox,\n bubble: fallback(),\n overrides: submenuInfo.overrides,\n layouts: layouts,\n placer: Option.none()\n }));\n };\n var SubmenuAnchor = [\n strict$1('item'),\n schema$1(),\n defaulted$1('overrides', {}),\n output('placement', placement$4)\n ];\n\n var AnchorSchema = choose$1('anchor', {\n selection: SelectionAnchor,\n node: NodeAnchor,\n hotspot: HotspotAnchor,\n submenu: SubmenuAnchor,\n makeshift: MakeshiftAnchor\n });\n\n var anchor = Immutable('anchorBox', 'origin');\n var box$1 = function (anchorBox, origin) {\n return anchor(anchorBox, origin);\n };\n\n var cycleBy = function (value, delta, min, max) {\n var r = value + delta;\n if (r > max) {\n return min;\n } else {\n return r < min ? max : r;\n }\n };\n var cap = function (value, min, max) {\n if (value <= min) {\n return min;\n } else {\n return value >= max ? max : value;\n }\n };\n\n var adt$8 = Adt.generate([\n { fit: ['reposition'] },\n {\n nofit: [\n 'reposition',\n 'deltaW',\n 'deltaH'\n ]\n }\n ]);\n var calcReposition = function (newX, newY, width, height, bounds) {\n var boundsX = bounds.x();\n var boundsY = bounds.y();\n var boundsWidth = bounds.width();\n var boundsHeight = bounds.height();\n var xInBounds = newX >= boundsX;\n var yInBounds = newY >= boundsY;\n var originInBounds = xInBounds && yInBounds;\n var xFit = newX + width <= boundsX + boundsWidth;\n var yFit = newY + height <= boundsY + boundsHeight;\n var sizeInBounds = xFit && yFit;\n var deltaW = Math.abs(Math.min(width, xInBounds ? boundsX + boundsWidth - newX : boundsX - (newX + width)));\n var deltaH = Math.abs(Math.min(height, yInBounds ? boundsY + boundsHeight - newY : boundsY - (newY + height)));\n var limitX = cap(newX, bounds.x(), bounds.right());\n var limitY = cap(newY, bounds.y(), bounds.bottom());\n return {\n originInBounds: originInBounds,\n sizeInBounds: sizeInBounds,\n limitX: limitX,\n limitY: limitY,\n deltaW: deltaW,\n deltaH: deltaH\n };\n };\n var attempt = function (candidate, width, height, bounds) {\n var candidateX = candidate.x();\n var candidateY = candidate.y();\n var bubbleLeft = candidate.bubble().offset().left();\n var bubbleTop = candidate.bubble().offset().top();\n var boundsY = bounds.y();\n var boundsBottom = bounds.bottom();\n var boundsX = bounds.x();\n var boundsRight = bounds.right();\n var newX = candidateX + bubbleLeft;\n var newY = candidateY + bubbleTop;\n var _a = calcReposition(newX, newY, width, height, bounds), originInBounds = _a.originInBounds, sizeInBounds = _a.sizeInBounds, limitX = _a.limitX, limitY = _a.limitY, deltaW = _a.deltaW, deltaH = _a.deltaH;\n var upAvailable = constant(limitY + deltaH - boundsY);\n var downAvailable = constant(boundsBottom - limitY);\n var maxHeight = cataVertical(candidate.direction(), downAvailable, downAvailable, upAvailable);\n var westAvailable = constant(limitX + deltaW - boundsX);\n var eastAvailable = constant(boundsRight - limitX);\n var maxWidth = cataHorizontal(candidate.direction(), eastAvailable, eastAvailable, westAvailable);\n var reposition = decision({\n x: limitX,\n y: limitY,\n width: deltaW,\n height: deltaH,\n maxHeight: maxHeight,\n maxWidth: maxWidth,\n direction: candidate.direction(),\n classes: {\n on: candidate.bubble().classesOn(),\n off: candidate.bubble().classesOff()\n },\n label: candidate.label(),\n candidateYforTest: newY\n });\n return originInBounds && sizeInBounds ? adt$8.fit(reposition) : adt$8.nofit(reposition, deltaW, deltaH);\n };\n var attempts = function (candidates, anchorBox, elementBox, bubbles, bounds) {\n var panelWidth = elementBox.width();\n var panelHeight = elementBox.height();\n var attemptBestFit = function (layout, reposition, deltaW, deltaH) {\n var next = layout(anchorBox, elementBox, bubbles);\n var attemptLayout = attempt(next, panelWidth, panelHeight, bounds);\n return attemptLayout.fold(adt$8.fit, function (newReposition, newDeltaW, newDeltaH) {\n var improved = newDeltaH > deltaH || newDeltaW > deltaW;\n return improved ? adt$8.nofit(newReposition, newDeltaW, newDeltaH) : adt$8.nofit(reposition, deltaW, deltaH);\n });\n };\n var abc = foldl(candidates, function (b, a) {\n var bestNext = curry(attemptBestFit, a);\n return b.fold(adt$8.fit, bestNext);\n }, adt$8.nofit(decision({\n x: anchorBox.x(),\n y: anchorBox.y(),\n width: elementBox.width(),\n height: elementBox.height(),\n maxHeight: elementBox.height(),\n maxWidth: elementBox.width(),\n direction: southeast(),\n classes: {\n on: [],\n off: []\n },\n label: 'none',\n candidateYforTest: anchorBox.y()\n }), -1, -1));\n return abc.fold(identity, identity);\n };\n\n var elementSize = function (p) {\n return {\n width: constant(getOuter$2(p)),\n height: constant(getOuter$1(p))\n };\n };\n var layout = function (anchorBox, element, bubbles, options) {\n remove$6(element, 'max-height');\n remove$6(element, 'max-width');\n var elementBox = elementSize(element);\n return attempts(options.preference(), anchorBox, elementBox, bubbles, options.bounds());\n };\n var setClasses = function (element, decision) {\n var classInfo = decision.classes();\n remove$5(element, classInfo.off);\n add$3(element, classInfo.on);\n };\n var setHeight = function (element, decision, options) {\n var maxHeightFunction = options.maxHeightFunction();\n maxHeightFunction(element, decision.maxHeight());\n };\n var setWidth = function (element, decision, options) {\n var maxWidthFunction = options.maxWidthFunction();\n maxWidthFunction(element, decision.maxWidth());\n };\n var position = function (element, decision, options) {\n var addPx = function (num) {\n return num + 'px';\n };\n var newPosition = reposition(options.origin(), decision);\n setOptions(element, {\n position: Option.some(newPosition.position()),\n left: newPosition.left().map(addPx),\n top: newPosition.top().map(addPx),\n right: newPosition.right().map(addPx),\n bottom: newPosition.bottom().map(addPx)\n });\n };\n\n var setMaxHeight = function (element, maxHeight) {\n setMax(element, Math.floor(maxHeight));\n };\n var anchored = constant(function (element, available) {\n setMaxHeight(element, available);\n setAll$1(element, {\n 'overflow-x': 'hidden',\n 'overflow-y': 'auto'\n });\n });\n var expandable = constant(function (element, available) {\n setMaxHeight(element, available);\n });\n\n var reparteeOptions = MixedBag([\n 'bounds',\n 'origin',\n 'preference',\n 'maxHeightFunction',\n 'maxWidthFunction'\n ], []);\n var defaultOr = function (options, key, dephault) {\n return options[key] === undefined ? dephault : options[key];\n };\n var simple = function (anchor, element, bubble, layouts, getBounds, overrideOptions) {\n var maxHeightFunction = defaultOr(overrideOptions, 'maxHeightFunction', anchored());\n var maxWidthFunction = defaultOr(overrideOptions, 'maxWidthFunction', noop);\n var anchorBox = anchor.anchorBox();\n var origin = anchor.origin();\n var options = reparteeOptions({\n bounds: viewport$1(origin, getBounds),\n origin: origin,\n preference: layouts,\n maxHeightFunction: maxHeightFunction,\n maxWidthFunction: maxWidthFunction\n });\n go(anchorBox, element, bubble, options);\n };\n var go = function (anchorBox, element, bubble, options) {\n var decision = layout(anchorBox, element, bubble, options);\n position(element, decision, options);\n setClasses(element, decision);\n setHeight(element, decision, options);\n setWidth(element, decision, options);\n };\n\n var getFixedOrigin = function () {\n var html = domGlobals.document.documentElement;\n return fixed(0, 0, html.clientWidth, html.clientHeight);\n };\n var getRelativeOrigin = function (component) {\n var position = absolute(component.element());\n var bounds = component.element().dom().getBoundingClientRect();\n return relative(position.left(), position.top(), bounds.width, bounds.height);\n };\n var place = function (component, origin, anchoring, getBounds, placee) {\n var anchor = box$1(anchoring.anchorBox, origin);\n simple(anchor, placee.element(), anchoring.bubble, anchoring.layouts, getBounds, anchoring.overrides);\n };\n var position$1 = function (component, posConfig, posState, anchor, placee) {\n positionWithin(component, posConfig, posState, anchor, placee, Option.none());\n };\n var positionWithin = function (component, posConfig, posState, anchor, placee, boxElement) {\n var boundsBox = boxElement.map(box);\n return positionWithinBounds(component, posConfig, posState, anchor, placee, boundsBox);\n };\n var positionWithinBounds = function (component, posConfig, posState, anchor, placee, bounds) {\n var anchorage = asRawOrDie('positioning anchor.info', AnchorSchema, anchor);\n preserve(function () {\n set$2(placee.element(), 'position', 'fixed');\n var oldVisibility = getRaw(placee.element(), 'visibility');\n set$2(placee.element(), 'visibility', 'hidden');\n var origin = posConfig.useFixed() ? getFixedOrigin() : getRelativeOrigin(component);\n var placer = anchorage.placement;\n var getBounds = bounds.map(constant).or(posConfig.getBounds);\n placer(component, anchorage, origin).each(function (anchoring) {\n var doPlace = anchoring.placer.getOr(place);\n doPlace(component, origin, anchoring, getBounds, placee);\n });\n oldVisibility.fold(function () {\n remove$6(placee.element(), 'visibility');\n }, function (vis) {\n set$2(placee.element(), 'visibility', vis);\n });\n if (getRaw(placee.element(), 'left').isNone() && getRaw(placee.element(), 'top').isNone() && getRaw(placee.element(), 'right').isNone() && getRaw(placee.element(), 'bottom').isNone() && getRaw(placee.element(), 'position').is('fixed')) {\n remove$6(placee.element(), 'position');\n }\n }, placee.element());\n };\n var getMode = function (component, pConfig, pState) {\n return pConfig.useFixed() ? 'fixed' : 'absolute';\n };\n\n var PositionApis = /*#__PURE__*/Object.freeze({\n position: position$1,\n positionWithin: positionWithin,\n positionWithinBounds: positionWithinBounds,\n getMode: getMode\n });\n\n var PositionSchema = [\n defaulted$1('useFixed', never),\n option('getBounds')\n ];\n\n var Positioning = create$1({\n fields: PositionSchema,\n name: 'positioning',\n active: ActivePosition,\n apis: PositionApis\n });\n\n var fireDetaching = function (component) {\n emit(component, detachedFromDom());\n var children = component.components();\n each(children, fireDetaching);\n };\n var fireAttaching = function (component) {\n var children = component.components();\n each(children, fireAttaching);\n emit(component, attachedToDom());\n };\n var attach = function (parent, child) {\n append(parent.element(), child.element());\n };\n var detachChildren = function (component) {\n each(component.components(), function (childComp) {\n return remove(childComp.element());\n });\n empty(component.element());\n component.syncComponents();\n };\n var replaceChildren = function (component, newChildren) {\n var subs = component.components();\n detachChildren(component);\n var deleted = difference(subs, newChildren);\n each(deleted, function (comp) {\n fireDetaching(comp);\n component.getSystem().removeFromWorld(comp);\n });\n each(newChildren, function (childComp) {\n if (!childComp.getSystem().isConnected()) {\n component.getSystem().addToWorld(childComp);\n attach(component, childComp);\n if (inBody(component.element())) {\n fireAttaching(childComp);\n }\n } else {\n attach(component, childComp);\n }\n component.syncComponents();\n });\n };\n\n var attach$1 = function (parent, child) {\n attachWith(parent, child, append);\n };\n var attachWith = function (parent, child, insertion) {\n parent.getSystem().addToWorld(child);\n insertion(parent.element(), child.element());\n if (inBody(parent.element())) {\n fireAttaching(child);\n }\n parent.syncComponents();\n };\n var doDetach = function (component) {\n fireDetaching(component);\n remove(component.element());\n component.getSystem().removeFromWorld(component);\n };\n var detach = function (component) {\n var parent$1 = parent(component.element()).bind(function (p) {\n return component.getSystem().getByDom(p).toOption();\n });\n doDetach(component);\n parent$1.each(function (p) {\n p.syncComponents();\n });\n };\n var detachChildren$1 = function (component) {\n var subs = component.components();\n each(subs, doDetach);\n empty(component.element());\n component.syncComponents();\n };\n var attachSystem = function (element, guiSystem) {\n attachSystemWith(element, guiSystem, append);\n };\n var attachSystemAfter = function (element, guiSystem) {\n attachSystemWith(element, guiSystem, after);\n };\n var attachSystemWith = function (element, guiSystem, inserter) {\n inserter(element, guiSystem.element());\n var children$1 = children(guiSystem.element());\n each(children$1, function (child) {\n guiSystem.getByDom(child).each(fireAttaching);\n });\n };\n var detachSystem = function (guiSystem) {\n var children$1 = children(guiSystem.element());\n each(children$1, function (child) {\n guiSystem.getByDom(child).each(fireDetaching);\n });\n remove(guiSystem.element());\n };\n\n var rebuild = function (sandbox, sConfig, sState, data) {\n sState.get().each(function (data) {\n detachChildren$1(sandbox);\n });\n var point = sConfig.getAttachPoint(sandbox);\n attach$1(point, sandbox);\n var built = sandbox.getSystem().build(data);\n attach$1(sandbox, built);\n sState.set(built);\n return built;\n };\n var open = function (sandbox, sConfig, sState, data) {\n var newState = rebuild(sandbox, sConfig, sState, data);\n sConfig.onOpen(sandbox, newState);\n return newState;\n };\n var setContent = function (sandbox, sConfig, sState, data) {\n return sState.get().map(function () {\n return rebuild(sandbox, sConfig, sState, data);\n });\n };\n var openWhileCloaked = function (sandbox, sConfig, sState, data, transaction) {\n cloak(sandbox, sConfig);\n open(sandbox, sConfig, sState, data);\n transaction();\n decloak(sandbox, sConfig);\n };\n var close = function (sandbox, sConfig, sState) {\n sState.get().each(function (data) {\n detachChildren$1(sandbox);\n detach(sandbox);\n sConfig.onClose(sandbox, data);\n sState.clear();\n });\n };\n var isOpen = function (sandbox, sConfig, sState) {\n return sState.isOpen();\n };\n var isPartOf$1 = function (sandbox, sConfig, sState, queryElem) {\n return isOpen(sandbox, sConfig, sState) && sState.get().exists(function (data) {\n return sConfig.isPartOf(sandbox, data, queryElem);\n });\n };\n var getState = function (sandbox, sConfig, sState) {\n return sState.get();\n };\n var store = function (sandbox, cssKey, attr, newValue) {\n getRaw(sandbox.element(), cssKey).fold(function () {\n remove$1(sandbox.element(), attr);\n }, function (v) {\n set$1(sandbox.element(), attr, v);\n });\n set$2(sandbox.element(), cssKey, newValue);\n };\n var restore = function (sandbox, cssKey, attr) {\n if (has$1(sandbox.element(), attr)) {\n var oldValue = get$2(sandbox.element(), attr);\n set$2(sandbox.element(), cssKey, oldValue);\n } else {\n remove$6(sandbox.element(), cssKey);\n }\n };\n var cloak = function (sandbox, sConfig, sState) {\n var sink = sConfig.getAttachPoint(sandbox);\n set$2(sandbox.element(), 'position', Positioning.getMode(sink));\n store(sandbox, 'visibility', sConfig.cloakVisibilityAttr, 'hidden');\n };\n var hasPosition = function (element) {\n return exists([\n 'top',\n 'left',\n 'right',\n 'bottom'\n ], function (pos) {\n return getRaw(element, pos).isSome();\n });\n };\n var decloak = function (sandbox, sConfig, sState) {\n if (!hasPosition(sandbox.element())) {\n remove$6(sandbox.element(), 'position');\n }\n restore(sandbox, 'visibility', sConfig.cloakVisibilityAttr);\n };\n\n var SandboxApis = /*#__PURE__*/Object.freeze({\n cloak: cloak,\n decloak: decloak,\n open: open,\n openWhileCloaked: openWhileCloaked,\n close: close,\n isOpen: isOpen,\n isPartOf: isPartOf$1,\n getState: getState,\n setContent: setContent\n });\n\n var events$2 = function (sandboxConfig, sandboxState) {\n return derive([run(sandboxClose(), function (sandbox, simulatedEvent) {\n close(sandbox, sandboxConfig, sandboxState);\n })]);\n };\n\n var ActiveSandbox = /*#__PURE__*/Object.freeze({\n events: events$2\n });\n\n var SandboxSchema = [\n onHandler('onOpen'),\n onHandler('onClose'),\n strict$1('isPartOf'),\n strict$1('getAttachPoint'),\n defaulted$1('cloakVisibilityAttr', 'data-precloak-visibility')\n ];\n\n var init = function () {\n var contents = Cell(Option.none());\n var readState = constant('not-implemented');\n var isOpen = function () {\n return contents.get().isSome();\n };\n var set = function (c) {\n contents.set(Option.some(c));\n };\n var get = function (c) {\n return contents.get();\n };\n var clear = function () {\n contents.set(Option.none());\n };\n return nu$5({\n readState: readState,\n isOpen: isOpen,\n clear: clear,\n set: set,\n get: get\n });\n };\n\n var SandboxState = /*#__PURE__*/Object.freeze({\n init: init\n });\n\n var Sandboxing = create$1({\n fields: SandboxSchema,\n name: 'sandboxing',\n active: ActiveSandbox,\n apis: SandboxApis,\n state: SandboxState\n });\n\n var dismissPopups = constant('dismiss.popups');\n var repositionPopups = constant('reposition.popups');\n var mouseReleased = constant('mouse.released');\n\n var schema$2 = objOfOnly([\n defaulted$1('isExtraPart', constant(false)),\n optionObjOf('fireEventInstead', [defaulted$1('event', dismissRequested())])\n ]);\n var receivingChannel = function (rawSpec) {\n var _a;\n var detail = asRawOrDie('Dismissal', schema$2, rawSpec);\n return _a = {}, _a[dismissPopups()] = {\n schema: objOfOnly([strict$1('target')]),\n onReceive: function (sandbox, data) {\n if (Sandboxing.isOpen(sandbox)) {\n var isPart = Sandboxing.isPartOf(sandbox, data.target) || detail.isExtraPart(sandbox, data.target);\n if (!isPart) {\n detail.fireEventInstead.fold(function () {\n return Sandboxing.close(sandbox);\n }, function (fe) {\n return emit(sandbox, fe.event);\n });\n }\n }\n }\n }, _a;\n };\n\n var schema$3 = objOfOnly([\n defaulted$1('isExtraPart', constant(false)),\n optionObjOf('fireEventInstead', [defaulted$1('event', repositionRequested())]),\n strictFunction('doReposition')\n ]);\n var receivingChannel$1 = function (rawSpec) {\n var _a;\n var detail = asRawOrDie('Reposition', schema$3, rawSpec);\n return _a = {}, _a[repositionPopups()] = {\n onReceive: function (sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n detail.fireEventInstead.fold(function () {\n return detail.doReposition(sandbox);\n }, function (fe) {\n return emit(sandbox, fe.event);\n });\n }\n }\n }, _a;\n };\n\n var onLoad = function (component, repConfig, repState) {\n repConfig.store.manager.onLoad(component, repConfig, repState);\n };\n var onUnload = function (component, repConfig, repState) {\n repConfig.store.manager.onUnload(component, repConfig, repState);\n };\n var setValue = function (component, repConfig, repState, data) {\n repConfig.store.manager.setValue(component, repConfig, repState, data);\n };\n var getValue = function (component, repConfig, repState) {\n return repConfig.store.manager.getValue(component, repConfig, repState);\n };\n var getState$1 = function (component, repConfig, repState) {\n return repState;\n };\n\n var RepresentApis = /*#__PURE__*/Object.freeze({\n onLoad: onLoad,\n onUnload: onUnload,\n setValue: setValue,\n getValue: getValue,\n getState: getState$1\n });\n\n var events$3 = function (repConfig, repState) {\n var es = repConfig.resetOnDom ? [\n runOnAttached(function (comp, se) {\n onLoad(comp, repConfig, repState);\n }),\n runOnDetached(function (comp, se) {\n onUnload(comp, repConfig, repState);\n })\n ] : [loadEvent(repConfig, repState, onLoad)];\n return derive(es);\n };\n\n var ActiveRepresenting = /*#__PURE__*/Object.freeze({\n events: events$3\n });\n\n var memory = function () {\n var data = Cell(null);\n var readState = function () {\n return {\n mode: 'memory',\n value: data.get()\n };\n };\n var isNotSet = function () {\n return data.get() === null;\n };\n var clear = function () {\n data.set(null);\n };\n return nu$5({\n set: data.set,\n get: data.get,\n isNotSet: isNotSet,\n clear: clear,\n readState: readState\n });\n };\n var manual = function () {\n var readState = function () {\n };\n return nu$5({ readState: readState });\n };\n var dataset = function () {\n var dataByValue = Cell({});\n var dataByText = Cell({});\n var readState = function () {\n return {\n mode: 'dataset',\n dataByValue: dataByValue.get(),\n dataByText: dataByText.get()\n };\n };\n var clear = function () {\n dataByValue.set({});\n dataByText.set({});\n };\n var lookup = function (itemString) {\n return readOptFrom$1(dataByValue.get(), itemString).orThunk(function () {\n return readOptFrom$1(dataByText.get(), itemString);\n });\n };\n var update = function (items) {\n var currentDataByValue = dataByValue.get();\n var currentDataByText = dataByText.get();\n var newDataByValue = {};\n var newDataByText = {};\n each(items, function (item) {\n newDataByValue[item.value] = item;\n readOptFrom$1(item, 'meta').each(function (meta) {\n readOptFrom$1(meta, 'text').each(function (text) {\n newDataByText[text] = item;\n });\n });\n });\n dataByValue.set(__assign(__assign({}, currentDataByValue), newDataByValue));\n dataByText.set(__assign(__assign({}, currentDataByText), newDataByText));\n };\n return nu$5({\n readState: readState,\n lookup: lookup,\n update: update,\n clear: clear\n });\n };\n var init$1 = function (spec) {\n return spec.store.manager.state(spec);\n };\n\n var RepresentState = /*#__PURE__*/Object.freeze({\n memory: memory,\n dataset: dataset,\n manual: manual,\n init: init$1\n });\n\n var setValue$1 = function (component, repConfig, repState, data) {\n var store = repConfig.store;\n repState.update([data]);\n store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n var getValue$1 = function (component, repConfig, repState) {\n var store = repConfig.store;\n var key = store.getDataKey(component);\n return repState.lookup(key).fold(function () {\n return store.getFallbackEntry(key);\n }, function (data) {\n return data;\n });\n };\n var onLoad$1 = function (component, repConfig, repState) {\n var store = repConfig.store;\n store.initialValue.each(function (data) {\n setValue$1(component, repConfig, repState, data);\n });\n };\n var onUnload$1 = function (component, repConfig, repState) {\n repState.clear();\n };\n var DatasetStore = [\n option('initialValue'),\n strict$1('getFallbackEntry'),\n strict$1('getDataKey'),\n strict$1('setValue'),\n output('manager', {\n setValue: setValue$1,\n getValue: getValue$1,\n onLoad: onLoad$1,\n onUnload: onUnload$1,\n state: dataset\n })\n ];\n\n var getValue$2 = function (component, repConfig, repState) {\n return repConfig.store.getValue(component);\n };\n var setValue$2 = function (component, repConfig, repState, data) {\n repConfig.store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n var onLoad$2 = function (component, repConfig, repState) {\n repConfig.store.initialValue.each(function (data) {\n repConfig.store.setValue(component, data);\n });\n };\n var ManualStore = [\n strict$1('getValue'),\n defaulted$1('setValue', noop),\n option('initialValue'),\n output('manager', {\n setValue: setValue$2,\n getValue: getValue$2,\n onLoad: onLoad$2,\n onUnload: noop,\n state: NoState.init\n })\n ];\n\n var setValue$3 = function (component, repConfig, repState, data) {\n repState.set(data);\n repConfig.onSetValue(component, data);\n };\n var getValue$3 = function (component, repConfig, repState) {\n return repState.get();\n };\n var onLoad$3 = function (component, repConfig, repState) {\n repConfig.store.initialValue.each(function (initVal) {\n if (repState.isNotSet()) {\n repState.set(initVal);\n }\n });\n };\n var onUnload$2 = function (component, repConfig, repState) {\n repState.clear();\n };\n var MemoryStore = [\n option('initialValue'),\n output('manager', {\n setValue: setValue$3,\n getValue: getValue$3,\n onLoad: onLoad$3,\n onUnload: onUnload$2,\n state: memory\n })\n ];\n\n var RepresentSchema = [\n defaultedOf('store', { mode: 'memory' }, choose$1('mode', {\n memory: MemoryStore,\n manual: ManualStore,\n dataset: DatasetStore\n })),\n onHandler('onSetValue'),\n defaulted$1('resetOnDom', false)\n ];\n\n var Representing = create$1({\n fields: RepresentSchema,\n name: 'representing',\n active: ActiveRepresenting,\n apis: RepresentApis,\n extra: {\n setValueFrom: function (component, source) {\n var value = Representing.getValue(source);\n Representing.setValue(component, value);\n }\n },\n state: RepresentState\n });\n\n var field$1 = function (name, forbidden) {\n return defaultedObjOf(name, {}, map(forbidden, function (f) {\n return forbid(f.name(), 'Cannot configure ' + f.name() + ' for ' + name);\n }).concat([state$1('dump', identity)]));\n };\n var get$b = function (data) {\n return data.dump;\n };\n var augment = function (data, original) {\n return __assign(__assign({}, data.dump), derive$1(original));\n };\n var SketchBehaviours = {\n field: field$1,\n augment: augment,\n get: get$b\n };\n\n var _placeholder = 'placeholder';\n var adt$9 = Adt.generate([\n {\n single: [\n 'required',\n 'valueThunk'\n ]\n },\n {\n multiple: [\n 'required',\n 'valueThunks'\n ]\n }\n ]);\n var subPlaceholder = function (owner, detail, compSpec, placeholders) {\n if (owner.exists(function (o) {\n return o !== compSpec.owner;\n })) {\n return adt$9.single(true, constant(compSpec));\n }\n return readOptFrom$1(placeholders, compSpec.name).fold(function () {\n throw new Error('Unknown placeholder component: ' + compSpec.name + '\\nKnown: [' + keys(placeholders) + ']\\nNamespace: ' + owner.getOr('none') + '\\nSpec: ' + JSON.stringify(compSpec, null, 2));\n }, function (newSpec) {\n return newSpec.replace();\n });\n };\n var scan = function (owner, detail, compSpec, placeholders) {\n if (compSpec.uiType === _placeholder) {\n return subPlaceholder(owner, detail, compSpec, placeholders);\n } else {\n return adt$9.single(false, constant(compSpec));\n }\n };\n var substitute = function (owner, detail, compSpec, placeholders) {\n var base = scan(owner, detail, compSpec, placeholders);\n return base.fold(function (req, valueThunk) {\n var value = valueThunk(detail, compSpec.config, compSpec.validated);\n var childSpecs = readOptFrom$1(value, 'components').getOr([]);\n var substituted = bind(childSpecs, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n return [__assign(__assign({}, value), { components: substituted })];\n }, function (req, valuesThunk) {\n var values = valuesThunk(detail, compSpec.config, compSpec.validated);\n var preprocessor = compSpec.validated.preprocess.getOr(identity);\n return preprocessor(values);\n });\n };\n var substituteAll = function (owner, detail, components, placeholders) {\n return bind(components, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n };\n var oneReplace = function (label, replacements) {\n var called = false;\n var used = function () {\n return called;\n };\n var replace = function () {\n if (called === true) {\n throw new Error('Trying to use the same placeholder more than once: ' + label);\n }\n called = true;\n return replacements;\n };\n var required = function () {\n return replacements.fold(function (req, _) {\n return req;\n }, function (req, _) {\n return req;\n });\n };\n return {\n name: constant(label),\n required: required,\n used: used,\n replace: replace\n };\n };\n var substitutePlaces = function (owner, detail, components, placeholders) {\n var ps = map$1(placeholders, function (ph, name) {\n return oneReplace(name, ph);\n });\n var outcome = substituteAll(owner, detail, components, ps);\n each$1(ps, function (p) {\n if (p.used() === false && p.required()) {\n throw new Error('Placeholder: ' + p.name() + ' was not found in components list\\nNamespace: ' + owner.getOr('none') + '\\nComponents: ' + JSON.stringify(detail.components, null, 2));\n }\n });\n return outcome;\n };\n var single = adt$9.single;\n var multiple = adt$9.multiple;\n var placeholder = constant(_placeholder);\n\n var adt$a = Adt.generate([\n { required: ['data'] },\n { external: ['data'] },\n { optional: ['data'] },\n { group: ['data'] }\n ]);\n var fFactory = defaulted$1('factory', { sketch: identity });\n var fSchema = defaulted$1('schema', []);\n var fName = strict$1('name');\n var fPname = field('pname', 'pname', defaultedThunk(function (typeSpec) {\n return '<alloy.' + generate$1(typeSpec.name) + '>';\n }), anyValue$1());\n var fGroupSchema = state$1('schema', function () {\n return [option('preprocess')];\n });\n var fDefaults = defaulted$1('defaults', constant({}));\n var fOverrides = defaulted$1('overrides', constant({}));\n var requiredSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n var externalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fDefaults,\n fOverrides\n ]);\n var optionalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n var groupSpec = objOf([\n fFactory,\n fGroupSchema,\n fName,\n strict$1('unit'),\n fPname,\n fDefaults,\n fOverrides\n ]);\n var asNamedPart = function (part) {\n return part.fold(Option.some, Option.none, Option.some, Option.some);\n };\n var name$1 = function (part) {\n var get = function (data) {\n return data.name;\n };\n return part.fold(get, get, get, get);\n };\n var asCommon = function (part) {\n return part.fold(identity, identity, identity, identity);\n };\n var convert = function (adtConstructor, partSchema) {\n return function (spec) {\n var data = asRawOrDie('Converting part type', partSchema, spec);\n return adtConstructor(data);\n };\n };\n var required = convert(adt$a.required, requiredSpec);\n var external$1 = convert(adt$a.external, externalSpec);\n var optional = convert(adt$a.optional, optionalSpec);\n var group = convert(adt$a.group, groupSpec);\n var original = constant('entirety');\n\n var PartType = /*#__PURE__*/Object.freeze({\n required: required,\n external: external$1,\n optional: optional,\n group: group,\n asNamedPart: asNamedPart,\n name: name$1,\n asCommon: asCommon,\n original: original\n });\n\n var combine$2 = function (detail, data, partSpec, partValidated) {\n return deepMerge(data.defaults(detail, partSpec, partValidated), partSpec, { uid: detail.partUids[data.name] }, data.overrides(detail, partSpec, partValidated));\n };\n var subs = function (owner, detail, parts) {\n var internals = {};\n var externals = {};\n each(parts, function (part) {\n part.fold(function (data) {\n internals[data.pname] = single(true, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine$2(detail, data, partSpec, partValidated));\n });\n }, function (data) {\n var partSpec = detail.parts[data.name];\n externals[data.name] = constant(data.factory.sketch(combine$2(detail, data, partSpec[original()]), partSpec));\n }, function (data) {\n internals[data.pname] = single(false, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine$2(detail, data, partSpec, partValidated));\n });\n }, function (data) {\n internals[data.pname] = multiple(true, function (detail, _partSpec, _partValidated) {\n var units = detail[data.name];\n return map(units, function (u) {\n return data.factory.sketch(deepMerge(data.defaults(detail, u, _partValidated), u, data.overrides(detail, u)));\n });\n });\n });\n });\n return {\n internals: constant(internals),\n externals: constant(externals)\n };\n };\n\n var generate$4 = function (owner, parts) {\n var r = {};\n each(parts, function (part) {\n asNamedPart(part).each(function (np) {\n var g = doGenerateOne(owner, np.pname);\n r[np.name] = function (config) {\n var validated = asRawOrDie('Part: ' + np.name + ' in ' + owner, objOf(np.schema), config);\n return __assign(__assign({}, g), {\n config: config,\n validated: validated\n });\n };\n });\n });\n return r;\n };\n var doGenerateOne = function (owner, pname) {\n return {\n uiType: placeholder(),\n owner: owner,\n name: pname\n };\n };\n var generateOne = function (owner, pname, config) {\n return {\n uiType: placeholder(),\n owner: owner,\n name: pname,\n config: config,\n validated: {}\n };\n };\n var schemas = function (parts) {\n return bind(parts, function (part) {\n return part.fold(Option.none, Option.some, Option.none, Option.none).map(function (data) {\n return strictObjOf(data.name, data.schema.concat([snapshot(original())]));\n }).toArray();\n });\n };\n var names = function (parts) {\n return map(parts, name$1);\n };\n var substitutes = function (owner, detail, parts) {\n return subs(owner, detail, parts);\n };\n var components = function (owner, detail, internals) {\n return substitutePlaces(Option.some(owner), detail, detail.components, internals);\n };\n var getPart = function (component, detail, partKey) {\n var uid = detail.partUids[partKey];\n return component.getSystem().getByUid(uid).toOption();\n };\n var getPartOrDie = function (component, detail, partKey) {\n return getPart(component, detail, partKey).getOrDie('Could not find part: ' + partKey);\n };\n var getParts = function (component, detail, partKeys) {\n var r = {};\n var uids = detail.partUids;\n var system = component.getSystem();\n each(partKeys, function (pk) {\n r[pk] = constant(system.getByUid(uids[pk]));\n });\n return r;\n };\n var getAllParts = function (component, detail) {\n var system = component.getSystem();\n return map$1(detail.partUids, function (pUid, k) {\n return constant(system.getByUid(pUid));\n });\n };\n var getAllPartNames = function (detail) {\n return keys(detail.partUids);\n };\n var getPartsOrDie = function (component, detail, partKeys) {\n var r = {};\n var uids = detail.partUids;\n var system = component.getSystem();\n each(partKeys, function (pk) {\n r[pk] = constant(system.getByUid(uids[pk]).getOrDie());\n });\n return r;\n };\n var defaultUids = function (baseUid, partTypes) {\n var partNames = names(partTypes);\n return wrapAll$1(map(partNames, function (pn) {\n return {\n key: pn,\n value: baseUid + '-' + pn\n };\n }));\n };\n var defaultUidsSchema = function (partTypes) {\n return field('partUids', 'partUids', mergeWithThunk(function (spec) {\n return defaultUids(spec.uid, partTypes);\n }), anyValue$1());\n };\n\n var AlloyParts = /*#__PURE__*/Object.freeze({\n generate: generate$4,\n generateOne: generateOne,\n schemas: schemas,\n names: names,\n substitutes: substitutes,\n components: components,\n defaultUids: defaultUids,\n defaultUidsSchema: defaultUidsSchema,\n getAllParts: getAllParts,\n getAllPartNames: getAllPartNames,\n getPart: getPart,\n getPartOrDie: getPartOrDie,\n getParts: getParts,\n getPartsOrDie: getPartsOrDie\n });\n\n var base = function (partSchemas, partUidsSchemas) {\n var ps = partSchemas.length > 0 ? [strictObjOf('parts', partSchemas)] : [];\n return ps.concat([\n strict$1('uid'),\n defaulted$1('dom', {}),\n defaulted$1('components', []),\n snapshot('originalSpec'),\n defaulted$1('debug.sketcher', {})\n ]).concat(partUidsSchemas);\n };\n var asRawOrDie$1 = function (label, schema, spec, partSchemas, partUidsSchemas) {\n var baseS = base(partSchemas, partUidsSchemas);\n return asRawOrDie(label + ' [SpecSchema]', objOfOnly(baseS.concat(schema)), spec);\n };\n\n var single$1 = function (owner, schema, factory, spec) {\n var specWithUid = supplyUid(spec);\n var detail = asRawOrDie$1(owner, schema, specWithUid, [], []);\n return factory(detail, specWithUid);\n };\n var composite = function (owner, schema, partTypes, factory, spec) {\n var specWithUid = supplyUid(spec);\n var partSchemas = schemas(partTypes);\n var partUidsSchema = defaultUidsSchema(partTypes);\n var detail = asRawOrDie$1(owner, schema, specWithUid, partSchemas, [partUidsSchema]);\n var subs = substitutes(owner, detail, partTypes);\n var components$1 = components(owner, detail, subs.internals());\n return factory(detail, components$1, specWithUid, subs.externals());\n };\n var supplyUid = function (spec) {\n return spec.hasOwnProperty('uid') ? spec : __assign(__assign({}, spec), { uid: generate$2('uid') });\n };\n\n function isSketchSpec(spec) {\n return spec.uid !== undefined;\n }\n var singleSchema = objOfOnly([\n strict$1('name'),\n strict$1('factory'),\n strict$1('configFields'),\n defaulted$1('apis', {}),\n defaulted$1('extraApis', {})\n ]);\n var compositeSchema = objOfOnly([\n strict$1('name'),\n strict$1('factory'),\n strict$1('configFields'),\n strict$1('partFields'),\n defaulted$1('apis', {}),\n defaulted$1('extraApis', {})\n ]);\n var single$2 = function (rawConfig) {\n var config = asRawOrDie('Sketcher for ' + rawConfig.name, singleSchema, rawConfig);\n var sketch = function (spec) {\n return single$1(config.name, config.configFields, config.factory, spec);\n };\n var apis = map$1(config.apis, makeApi);\n var extraApis = map$1(config.extraApis, function (f, k) {\n return markAsExtraApi(f, k);\n });\n return __assign(__assign({\n name: constant(config.name),\n partFields: constant([]),\n configFields: constant(config.configFields),\n sketch: sketch\n }, apis), extraApis);\n };\n var composite$1 = function (rawConfig) {\n var config = asRawOrDie('Sketcher for ' + rawConfig.name, compositeSchema, rawConfig);\n var sketch = function (spec) {\n return composite(config.name, config.configFields, config.partFields, config.factory, spec);\n };\n var parts = generate$4(config.name, config.partFields);\n var apis = map$1(config.apis, makeApi);\n var extraApis = map$1(config.extraApis, function (f, k) {\n return markAsExtraApi(f, k);\n });\n return __assign(__assign({\n name: constant(config.name),\n partFields: constant(config.partFields),\n configFields: constant(config.configFields),\n sketch: sketch,\n parts: constant(parts)\n }, apis), extraApis);\n };\n\n var inside = function (target) {\n return name(target) === 'input' && get$2(target, 'type') !== 'radio' || name(target) === 'textarea';\n };\n\n var getCurrent = function (component, composeConfig, composeState) {\n return composeConfig.find(component);\n };\n\n var ComposeApis = /*#__PURE__*/Object.freeze({\n getCurrent: getCurrent\n });\n\n var ComposeSchema = [strict$1('find')];\n\n var Composing = create$1({\n fields: ComposeSchema,\n name: 'composing',\n apis: ComposeApis\n });\n\n var dehighlightAllExcept = function (component, hConfig, hState, skip) {\n var highlighted = descendants(component.element(), '.' + hConfig.highlightClass);\n each(highlighted, function (h) {\n if (!exists(skip, function (skipComp) {\n return skipComp.element() === h;\n })) {\n remove$4(h, hConfig.highlightClass);\n component.getSystem().getByDom(h).each(function (target) {\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight());\n });\n }\n });\n };\n var dehighlightAll = function (component, hConfig, hState) {\n return dehighlightAllExcept(component, hConfig, hState, []);\n };\n var dehighlight$1 = function (component, hConfig, hState, target) {\n if (isHighlighted(component, hConfig, hState, target)) {\n remove$4(target.element(), hConfig.highlightClass);\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight());\n }\n };\n var highlight$1 = function (component, hConfig, hState, target) {\n dehighlightAllExcept(component, hConfig, hState, [target]);\n if (!isHighlighted(component, hConfig, hState, target)) {\n add$2(target.element(), hConfig.highlightClass);\n hConfig.onHighlight(component, target);\n emit(target, highlight());\n }\n };\n var highlightFirst = function (component, hConfig, hState) {\n getFirst(component, hConfig).each(function (firstComp) {\n highlight$1(component, hConfig, hState, firstComp);\n });\n };\n var highlightLast = function (component, hConfig, hState) {\n getLast(component, hConfig).each(function (lastComp) {\n highlight$1(component, hConfig, hState, lastComp);\n });\n };\n var highlightAt = function (component, hConfig, hState, index) {\n getByIndex(component, hConfig, hState, index).fold(function (err) {\n throw new Error(err);\n }, function (firstComp) {\n highlight$1(component, hConfig, hState, firstComp);\n });\n };\n var highlightBy = function (component, hConfig, hState, predicate) {\n var candidates = getCandidates(component, hConfig);\n var targetComp = find(candidates, predicate);\n targetComp.each(function (c) {\n highlight$1(component, hConfig, hState, c);\n });\n };\n var isHighlighted = function (component, hConfig, hState, queryTarget) {\n return has$2(queryTarget.element(), hConfig.highlightClass);\n };\n var getHighlighted = function (component, hConfig, hState) {\n return descendant$1(component.element(), '.' + hConfig.highlightClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOption();\n });\n };\n var getByIndex = function (component, hConfig, hState, index) {\n var items = descendants(component.element(), '.' + hConfig.itemClass);\n return Option.from(items[index]).fold(function () {\n return Result.error('No element found with index ' + index);\n }, component.getSystem().getByDom);\n };\n var getFirst = function (component, hConfig, hState) {\n return descendant$1(component.element(), '.' + hConfig.itemClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOption();\n });\n };\n var getLast = function (component, hConfig, hState) {\n var items = descendants(component.element(), '.' + hConfig.itemClass);\n var last = items.length > 0 ? Option.some(items[items.length - 1]) : Option.none();\n return last.bind(function (c) {\n return component.getSystem().getByDom(c).toOption();\n });\n };\n var getDelta = function (component, hConfig, hState, delta) {\n var items = descendants(component.element(), '.' + hConfig.itemClass);\n var current = findIndex(items, function (item) {\n return has$2(item, hConfig.highlightClass);\n });\n return current.bind(function (selected) {\n var dest = cycleBy(selected, delta, 0, items.length - 1);\n return component.getSystem().getByDom(items[dest]).toOption();\n });\n };\n var getPrevious = function (component, hConfig, hState) {\n return getDelta(component, hConfig, hState, -1);\n };\n var getNext = function (component, hConfig, hState) {\n return getDelta(component, hConfig, hState, +1);\n };\n var getCandidates = function (component, hConfig, hState) {\n var items = descendants(component.element(), '.' + hConfig.itemClass);\n return cat(map(items, function (i) {\n return component.getSystem().getByDom(i).toOption();\n }));\n };\n\n var HighlightApis = /*#__PURE__*/Object.freeze({\n dehighlightAll: dehighlightAll,\n dehighlight: dehighlight$1,\n highlight: highlight$1,\n highlightFirst: highlightFirst,\n highlightLast: highlightLast,\n highlightAt: highlightAt,\n highlightBy: highlightBy,\n isHighlighted: isHighlighted,\n getHighlighted: getHighlighted,\n getFirst: getFirst,\n getLast: getLast,\n getPrevious: getPrevious,\n getNext: getNext,\n getCandidates: getCandidates\n });\n\n var HighlightSchema = [\n strict$1('highlightClass'),\n strict$1('itemClass'),\n onHandler('onHighlight'),\n onHandler('onDehighlight')\n ];\n\n var Highlighting = create$1({\n fields: HighlightSchema,\n name: 'highlighting',\n apis: HighlightApis\n });\n\n var BACKSPACE = function () {\n return [8];\n };\n var TAB = function () {\n return [9];\n };\n var ENTER = function () {\n return [13];\n };\n var ESCAPE = function () {\n return [27];\n };\n var SPACE = function () {\n return [32];\n };\n var LEFT = function () {\n return [37];\n };\n var UP = function () {\n return [38];\n };\n var RIGHT = function () {\n return [39];\n };\n var DOWN = function () {\n return [40];\n };\n\n var cyclePrev = function (values, index, predicate) {\n var before = reverse(values.slice(0, index));\n var after = reverse(values.slice(index + 1));\n return find(before.concat(after), predicate);\n };\n var tryPrev = function (values, index, predicate) {\n var before = reverse(values.slice(0, index));\n return find(before, predicate);\n };\n var cycleNext = function (values, index, predicate) {\n var before = values.slice(0, index);\n var after = values.slice(index + 1);\n return find(after.concat(before), predicate);\n };\n var tryNext = function (values, index, predicate) {\n var after = values.slice(index + 1);\n return find(after, predicate);\n };\n\n var inSet = function (keys) {\n return function (event) {\n var raw = event.raw();\n return contains(keys, raw.which);\n };\n };\n var and = function (preds) {\n return function (event) {\n return forall(preds, function (pred) {\n return pred(event);\n });\n };\n };\n var isShift = function (event) {\n var raw = event.raw();\n return raw.shiftKey === true;\n };\n var isControl = function (event) {\n var raw = event.raw();\n return raw.ctrlKey === true;\n };\n var isNotShift = not(isShift);\n\n var rule = function (matches, action) {\n return {\n matches: matches,\n classification: action\n };\n };\n var choose$2 = function (transitions, event) {\n var transition = find(transitions, function (t) {\n return t.matches(event);\n });\n return transition.map(function (t) {\n return t.classification;\n });\n };\n\n var reportFocusShifting = function (component, prevFocus, newFocus) {\n var noChange = prevFocus.exists(function (p) {\n return newFocus.exists(function (n) {\n return eq(n, p);\n });\n });\n if (!noChange) {\n emitWith(component, focusShifted(), {\n prevFocus: prevFocus,\n newFocus: newFocus\n });\n }\n };\n var dom = function () {\n var get = function (component) {\n return search(component.element());\n };\n var set = function (component, focusee) {\n var prevFocus = get(component);\n component.getSystem().triggerFocus(focusee, component.element());\n var newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get: get,\n set: set\n };\n };\n var highlights = function () {\n var get = function (component) {\n return Highlighting.getHighlighted(component).map(function (item) {\n return item.element();\n });\n };\n var set = function (component, element) {\n var prevFocus = get(component);\n component.getSystem().getByDom(element).fold(noop, function (item) {\n Highlighting.highlight(component, item);\n });\n var newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get: get,\n set: set\n };\n };\n\n var FocusInsideModes;\n (function (FocusInsideModes) {\n FocusInsideModes['OnFocusMode'] = 'onFocus';\n FocusInsideModes['OnEnterOrSpaceMode'] = 'onEnterOrSpace';\n FocusInsideModes['OnApiMode'] = 'onApi';\n }(FocusInsideModes || (FocusInsideModes = {})));\n\n var typical = function (infoSchema, stateInit, getKeydownRules, getKeyupRules, optFocusIn) {\n var schema = function () {\n return infoSchema.concat([\n defaulted$1('focusManager', dom()),\n defaultedOf('focusInside', 'onFocus', valueOf(function (val) {\n return contains([\n 'onFocus',\n 'onEnterOrSpace',\n 'onApi'\n ], val) ? Result.value(val) : Result.error('Invalid value for focusInside');\n })),\n output('handler', me),\n output('state', stateInit),\n output('sendFocusIn', optFocusIn)\n ]);\n };\n var processKey = function (component, simulatedEvent, getRules, keyingConfig, keyingState) {\n var rules = getRules(component, simulatedEvent, keyingConfig, keyingState);\n return choose$2(rules, simulatedEvent.event()).bind(function (rule) {\n return rule(component, simulatedEvent, keyingConfig, keyingState);\n });\n };\n var toEvents = function (keyingConfig, keyingState) {\n var onFocusHandler = keyingConfig.focusInside !== FocusInsideModes.OnFocusMode ? Option.none() : optFocusIn(keyingConfig).map(function (focusIn) {\n return run(focus(), function (component, simulatedEvent) {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n });\n var tryGoInsideComponent = function (component, simulatedEvent) {\n var isEnterOrSpace = inSet(SPACE().concat(ENTER()))(simulatedEvent.event());\n if (keyingConfig.focusInside === FocusInsideModes.OnEnterOrSpaceMode && isEnterOrSpace && isSource(component, simulatedEvent)) {\n optFocusIn(keyingConfig).each(function (focusIn) {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n }\n };\n return derive(onFocusHandler.toArray().concat([\n run(keydown(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeydownRules, keyingConfig, keyingState).fold(function () {\n tryGoInsideComponent(component, simulatedEvent);\n }, function (_) {\n simulatedEvent.stop();\n });\n }),\n run(keyup(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeyupRules, keyingConfig, keyingState).each(function (_) {\n simulatedEvent.stop();\n });\n })\n ]));\n };\n var me = {\n schema: schema,\n processKey: processKey,\n toEvents: toEvents\n };\n return me;\n };\n\n var create$3 = function (cyclicField) {\n var schema = [\n option('onEscape'),\n option('onEnter'),\n defaulted$1('selector', '[data-alloy-tabstop=\"true\"]:not(:disabled)'),\n defaulted$1('firstTabstop', 0),\n defaulted$1('useTabstopAt', constant(true)),\n option('visibilitySelector')\n ].concat([cyclicField]);\n var isVisible = function (tabbingConfig, element) {\n var target = tabbingConfig.visibilitySelector.bind(function (sel) {\n return closest$3(element, sel);\n }).getOr(element);\n return get$6(target) > 0;\n };\n var findInitial = function (component, tabbingConfig) {\n var tabstops = descendants(component.element(), tabbingConfig.selector);\n var visibles = filter(tabstops, function (elem) {\n return isVisible(tabbingConfig, elem);\n });\n return Option.from(visibles[tabbingConfig.firstTabstop]);\n };\n var findCurrent = function (component, tabbingConfig) {\n return tabbingConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, tabbingConfig.selector);\n });\n };\n var isTabstop = function (tabbingConfig, element) {\n return isVisible(tabbingConfig, element) && tabbingConfig.useTabstopAt(element);\n };\n var focusIn = function (component, tabbingConfig) {\n findInitial(component, tabbingConfig).each(function (target) {\n tabbingConfig.focusManager.set(component, target);\n });\n };\n var goFromTabstop = function (component, tabstops, stopIndex, tabbingConfig, cycle) {\n return cycle(tabstops, stopIndex, function (elem) {\n return isTabstop(tabbingConfig, elem);\n }).fold(function () {\n return tabbingConfig.cyclic ? Option.some(true) : Option.none();\n }, function (target) {\n tabbingConfig.focusManager.set(component, target);\n return Option.some(true);\n });\n };\n var go = function (component, simulatedEvent, tabbingConfig, cycle) {\n var tabstops = descendants(component.element(), tabbingConfig.selector);\n return findCurrent(component, tabbingConfig).bind(function (tabstop) {\n var optStopIndex = findIndex(tabstops, curry(eq, tabstop));\n return optStopIndex.bind(function (stopIndex) {\n return goFromTabstop(component, tabstops, stopIndex, tabbingConfig, cycle);\n });\n });\n };\n var goBackwards = function (component, simulatedEvent, tabbingConfig, tabbingState) {\n var navigate = tabbingConfig.cyclic ? cyclePrev : tryPrev;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n var goForwards = function (component, simulatedEvent, tabbingConfig, tabbingState) {\n var navigate = tabbingConfig.cyclic ? cycleNext : tryNext;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n var execute = function (component, simulatedEvent, tabbingConfig, tabbingState) {\n return tabbingConfig.onEnter.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n var exit = function (component, simulatedEvent, tabbingConfig, tabbingState) {\n return tabbingConfig.onEscape.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n var getKeydownRules = constant([\n rule(and([\n isShift,\n inSet(TAB())\n ]), goBackwards),\n rule(inSet(TAB()), goForwards),\n rule(inSet(ESCAPE()), exit),\n rule(and([\n isNotShift,\n inSet(ENTER())\n ]), execute)\n ]);\n var getKeyupRules = constant([]);\n return typical(schema, NoState.init, getKeydownRules, getKeyupRules, function () {\n return Option.some(focusIn);\n });\n };\n\n var AcyclicType = create$3(state$1('cyclic', constant(false)));\n\n var CyclicType = create$3(state$1('cyclic', constant(true)));\n\n var doDefaultExecute = function (component, simulatedEvent, focused) {\n dispatch(component, focused, execute());\n return Option.some(true);\n };\n var defaultExecute = function (component, simulatedEvent, focused) {\n return inside(focused) && inSet(SPACE())(simulatedEvent.event()) ? Option.none() : doDefaultExecute(component, simulatedEvent, focused);\n };\n var stopEventForFirefox = function (component, simulatedEvent) {\n return Option.some(true);\n };\n\n var schema$4 = [\n defaulted$1('execute', defaultExecute),\n defaulted$1('useSpace', false),\n defaulted$1('useEnter', true),\n defaulted$1('useControlEnter', false),\n defaulted$1('useDown', false)\n ];\n var execute$1 = function (component, simulatedEvent, executeConfig) {\n return executeConfig.execute(component, simulatedEvent, component.element());\n };\n var getKeydownRules = function (component, simulatedEvent, executeConfig, executeState) {\n var spaceExec = executeConfig.useSpace && !inside(component.element()) ? SPACE() : [];\n var enterExec = executeConfig.useEnter ? ENTER() : [];\n var downExec = executeConfig.useDown ? DOWN() : [];\n var execKeys = spaceExec.concat(enterExec).concat(downExec);\n return [rule(inSet(execKeys), execute$1)].concat(executeConfig.useControlEnter ? [rule(and([\n isControl,\n inSet(ENTER())\n ]), execute$1)] : []);\n };\n var getKeyupRules = function (component, simulatedEvent, executeConfig, executeState) {\n return executeConfig.useSpace && !inside(component.element()) ? [rule(inSet(SPACE()), stopEventForFirefox)] : [];\n };\n var ExecutionType = typical(schema$4, NoState.init, getKeydownRules, getKeyupRules, function () {\n return Option.none();\n });\n\n var flatgrid = function (spec) {\n var dimensions = Cell(Option.none());\n var setGridSize = function (numRows, numColumns) {\n dimensions.set(Option.some({\n numRows: constant(numRows),\n numColumns: constant(numColumns)\n }));\n };\n var getNumRows = function () {\n return dimensions.get().map(function (d) {\n return d.numRows();\n });\n };\n var getNumColumns = function () {\n return dimensions.get().map(function (d) {\n return d.numColumns();\n });\n };\n return nu$5({\n readState: function () {\n return dimensions.get().map(function (d) {\n return {\n numRows: d.numRows(),\n numColumns: d.numColumns()\n };\n }).getOr({\n numRows: '?',\n numColumns: '?'\n });\n },\n setGridSize: setGridSize,\n getNumRows: getNumRows,\n getNumColumns: getNumColumns\n });\n };\n var init$2 = function (spec) {\n return spec.state(spec);\n };\n\n var KeyingState = /*#__PURE__*/Object.freeze({\n flatgrid: flatgrid,\n init: init$2\n });\n\n var useH = function (movement) {\n return function (component, simulatedEvent, config, state) {\n var move = movement(component.element());\n return use(move, component, simulatedEvent, config, state);\n };\n };\n var west$2 = function (moveLeft, moveRight) {\n var movement = onDirection(moveLeft, moveRight);\n return useH(movement);\n };\n var east$2 = function (moveLeft, moveRight) {\n var movement = onDirection(moveRight, moveLeft);\n return useH(movement);\n };\n var useV = function (move) {\n return function (component, simulatedEvent, config, state) {\n return use(move, component, simulatedEvent, config, state);\n };\n };\n var use = function (move, component, simulatedEvent, config, state) {\n var outcome = config.focusManager.get(component).bind(function (focused) {\n return move(component.element(), focused, config, state);\n });\n return outcome.map(function (newFocus) {\n config.focusManager.set(component, newFocus);\n return true;\n });\n };\n var north$2 = useV;\n var south$2 = useV;\n var move = useV;\n\n var isHidden = function (dom) {\n return dom.offsetWidth <= 0 && dom.offsetHeight <= 0;\n };\n var isVisible = function (element) {\n var dom = element.dom();\n return !isHidden(dom);\n };\n\n var indexInfo = MixedBag([\n 'index',\n 'candidates'\n ], []);\n var locate$2 = function (candidates, predicate) {\n return findIndex(candidates, predicate).map(function (index) {\n return indexInfo({\n index: index,\n candidates: candidates\n });\n });\n };\n\n var locateVisible = function (container, current, selector) {\n var predicate = curry(eq, current);\n var candidates = descendants(container, selector);\n var visible = filter(candidates, isVisible);\n return locate$2(visible, predicate);\n };\n var findIndex$1 = function (elements, target) {\n return findIndex(elements, function (elem) {\n return eq(target, elem);\n });\n };\n\n var withGrid = function (values, index, numCols, f) {\n var oldRow = Math.floor(index / numCols);\n var oldColumn = index % numCols;\n return f(oldRow, oldColumn).bind(function (address) {\n var newIndex = address.row() * numCols + address.column();\n return newIndex >= 0 && newIndex < values.length ? Option.some(values[newIndex]) : Option.none();\n });\n };\n var cycleHorizontal = function (values, index, numRows, numCols, delta) {\n return withGrid(values, index, numCols, function (oldRow, oldColumn) {\n var onLastRow = oldRow === numRows - 1;\n var colsInRow = onLastRow ? values.length - oldRow * numCols : numCols;\n var newColumn = cycleBy(oldColumn, delta, 0, colsInRow - 1);\n return Option.some({\n row: constant(oldRow),\n column: constant(newColumn)\n });\n });\n };\n var cycleVertical = function (values, index, numRows, numCols, delta) {\n return withGrid(values, index, numCols, function (oldRow, oldColumn) {\n var newRow = cycleBy(oldRow, delta, 0, numRows - 1);\n var onLastRow = newRow === numRows - 1;\n var colsInRow = onLastRow ? values.length - newRow * numCols : numCols;\n var newCol = cap(oldColumn, 0, colsInRow - 1);\n return Option.some({\n row: constant(newRow),\n column: constant(newCol)\n });\n });\n };\n var cycleRight = function (values, index, numRows, numCols) {\n return cycleHorizontal(values, index, numRows, numCols, +1);\n };\n var cycleLeft = function (values, index, numRows, numCols) {\n return cycleHorizontal(values, index, numRows, numCols, -1);\n };\n var cycleUp = function (values, index, numRows, numCols) {\n return cycleVertical(values, index, numRows, numCols, -1);\n };\n var cycleDown = function (values, index, numRows, numCols) {\n return cycleVertical(values, index, numRows, numCols, +1);\n };\n\n var schema$5 = [\n strict$1('selector'),\n defaulted$1('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted$1('captureTab', false),\n initSize()\n ];\n var focusIn = function (component, gridConfig, gridState) {\n descendant$1(component.element(), gridConfig.selector).each(function (first) {\n gridConfig.focusManager.set(component, first);\n });\n };\n var findCurrent = function (component, gridConfig) {\n return gridConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, gridConfig.selector);\n });\n };\n var execute$2 = function (component, simulatedEvent, gridConfig, gridState) {\n return findCurrent(component, gridConfig).bind(function (focused) {\n return gridConfig.execute(component, simulatedEvent, focused);\n });\n };\n var doMove = function (cycle) {\n return function (element, focused, gridConfig, gridState) {\n return locateVisible(element, focused, gridConfig.selector).bind(function (identified) {\n return cycle(identified.candidates(), identified.index(), gridState.getNumRows().getOr(gridConfig.initSize.numRows), gridState.getNumColumns().getOr(gridConfig.initSize.numColumns));\n });\n };\n };\n var handleTab = function (component, simulatedEvent, gridConfig, gridState) {\n return gridConfig.captureTab ? Option.some(true) : Option.none();\n };\n var doEscape = function (component, simulatedEvent, gridConfig, gridState) {\n return gridConfig.onEscape(component, simulatedEvent);\n };\n var moveLeft = doMove(cycleLeft);\n var moveRight = doMove(cycleRight);\n var moveNorth = doMove(cycleUp);\n var moveSouth = doMove(cycleDown);\n var getKeydownRules$1 = constant([\n rule(inSet(LEFT()), west$2(moveLeft, moveRight)),\n rule(inSet(RIGHT()), east$2(moveLeft, moveRight)),\n rule(inSet(UP()), north$2(moveNorth)),\n rule(inSet(DOWN()), south$2(moveSouth)),\n rule(and([\n isShift,\n inSet(TAB())\n ]), handleTab),\n rule(and([\n isNotShift,\n inSet(TAB())\n ]), handleTab),\n rule(inSet(ESCAPE()), doEscape),\n rule(inSet(SPACE().concat(ENTER())), execute$2)\n ]);\n var getKeyupRules$1 = constant([rule(inSet(SPACE()), stopEventForFirefox)]);\n var FlatgridType = typical(schema$5, flatgrid, getKeydownRules$1, getKeyupRules$1, function () {\n return Option.some(focusIn);\n });\n\n var horizontal = function (container, selector, current, delta) {\n var isDisabledButton = function (candidate) {\n return name(candidate) === 'button' && get$2(candidate, 'disabled') === 'disabled';\n };\n var tryCycle = function (initial, index, candidates) {\n var newIndex = cycleBy(index, delta, 0, candidates.length - 1);\n if (newIndex === initial) {\n return Option.none();\n } else {\n return isDisabledButton(candidates[newIndex]) ? tryCycle(initial, newIndex, candidates) : Option.from(candidates[newIndex]);\n }\n };\n return locateVisible(container, current, selector).bind(function (identified) {\n var index = identified.index();\n var candidates = identified.candidates();\n return tryCycle(index, index, candidates);\n });\n };\n\n var schema$6 = [\n strict$1('selector'),\n defaulted$1('getInitial', Option.none),\n defaulted$1('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted$1('executeOnMove', false),\n defaulted$1('allowVertical', true)\n ];\n var findCurrent$1 = function (component, flowConfig) {\n return flowConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, flowConfig.selector);\n });\n };\n var execute$3 = function (component, simulatedEvent, flowConfig) {\n return findCurrent$1(component, flowConfig).bind(function (focused) {\n return flowConfig.execute(component, simulatedEvent, focused);\n });\n };\n var focusIn$1 = function (component, flowConfig) {\n flowConfig.getInitial(component).orThunk(function () {\n return descendant$1(component.element(), flowConfig.selector);\n }).each(function (first) {\n flowConfig.focusManager.set(component, first);\n });\n };\n var moveLeft$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n var moveRight$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n var doMove$1 = function (movement) {\n return function (component, simulatedEvent, flowConfig) {\n return movement(component, simulatedEvent, flowConfig).bind(function () {\n return flowConfig.executeOnMove ? execute$3(component, simulatedEvent, flowConfig) : Option.some(true);\n });\n };\n };\n var doEscape$1 = function (component, simulatedEvent, flowConfig, _flowState) {\n return flowConfig.onEscape(component, simulatedEvent);\n };\n var getKeydownRules$2 = function (_component, _se, flowConfig, _flowState) {\n var westMovers = LEFT().concat(flowConfig.allowVertical ? UP() : []);\n var eastMovers = RIGHT().concat(flowConfig.allowVertical ? DOWN() : []);\n return [\n rule(inSet(westMovers), doMove$1(west$2(moveLeft$1, moveRight$1))),\n rule(inSet(eastMovers), doMove$1(east$2(moveLeft$1, moveRight$1))),\n rule(inSet(ENTER()), execute$3),\n rule(inSet(SPACE()), execute$3),\n rule(inSet(ESCAPE()), doEscape$1)\n ];\n };\n var getKeyupRules$2 = constant([rule(inSet(SPACE()), stopEventForFirefox)]);\n var FlowType = typical(schema$6, NoState.init, getKeydownRules$2, getKeyupRules$2, function () {\n return Option.some(focusIn$1);\n });\n\n var outcome = MixedBag([\n 'rowIndex',\n 'columnIndex',\n 'cell'\n ], []);\n var toCell = function (matrix, rowIndex, columnIndex) {\n return Option.from(matrix[rowIndex]).bind(function (row) {\n return Option.from(row[columnIndex]).map(function (cell) {\n return outcome({\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n cell: cell\n });\n });\n });\n };\n var cycleHorizontal$1 = function (matrix, rowIndex, startCol, deltaCol) {\n var row = matrix[rowIndex];\n var colsInRow = row.length;\n var newColIndex = cycleBy(startCol, deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n var cycleVertical$1 = function (matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = cycleBy(startRow, deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = cap(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n var moveHorizontal = function (matrix, rowIndex, startCol, deltaCol) {\n var row = matrix[rowIndex];\n var colsInRow = row.length;\n var newColIndex = cap(startCol + deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n var moveVertical = function (matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = cap(startRow + deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = cap(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n var cycleRight$1 = function (matrix, startRow, startCol) {\n return cycleHorizontal$1(matrix, startRow, startCol, +1);\n };\n var cycleLeft$1 = function (matrix, startRow, startCol) {\n return cycleHorizontal$1(matrix, startRow, startCol, -1);\n };\n var cycleUp$1 = function (matrix, startRow, startCol) {\n return cycleVertical$1(matrix, startCol, startRow, -1);\n };\n var cycleDown$1 = function (matrix, startRow, startCol) {\n return cycleVertical$1(matrix, startCol, startRow, +1);\n };\n var moveLeft$2 = function (matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, -1);\n };\n var moveRight$2 = function (matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, +1);\n };\n var moveUp = function (matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, -1);\n };\n var moveDown = function (matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, +1);\n };\n\n var schema$7 = [\n strictObjOf('selectors', [\n strict$1('row'),\n strict$1('cell')\n ]),\n defaulted$1('cycles', true),\n defaulted$1('previousSelector', Option.none),\n defaulted$1('execute', defaultExecute)\n ];\n var focusIn$2 = function (component, matrixConfig) {\n var focused = matrixConfig.previousSelector(component).orThunk(function () {\n var selectors = matrixConfig.selectors;\n return descendant$1(component.element(), selectors.cell);\n });\n focused.each(function (cell) {\n matrixConfig.focusManager.set(component, cell);\n });\n };\n var execute$4 = function (component, simulatedEvent, matrixConfig) {\n return search(component.element()).bind(function (focused) {\n return matrixConfig.execute(component, simulatedEvent, focused);\n });\n };\n var toMatrix = function (rows, matrixConfig) {\n return map(rows, function (row) {\n return descendants(row, matrixConfig.selectors.cell);\n });\n };\n var doMove$2 = function (ifCycle, ifMove) {\n return function (element, focused, matrixConfig) {\n var move = matrixConfig.cycles ? ifCycle : ifMove;\n return closest$3(focused, matrixConfig.selectors.row).bind(function (inRow) {\n var cellsInRow = descendants(inRow, matrixConfig.selectors.cell);\n return findIndex$1(cellsInRow, focused).bind(function (colIndex) {\n var allRows = descendants(element, matrixConfig.selectors.row);\n return findIndex$1(allRows, inRow).bind(function (rowIndex) {\n var matrix = toMatrix(allRows, matrixConfig);\n return move(matrix, rowIndex, colIndex).map(function (next) {\n return next.cell();\n });\n });\n });\n });\n };\n };\n var moveLeft$3 = doMove$2(cycleLeft$1, moveLeft$2);\n var moveRight$3 = doMove$2(cycleRight$1, moveRight$2);\n var moveNorth$1 = doMove$2(cycleUp$1, moveUp);\n var moveSouth$1 = doMove$2(cycleDown$1, moveDown);\n var getKeydownRules$3 = constant([\n rule(inSet(LEFT()), west$2(moveLeft$3, moveRight$3)),\n rule(inSet(RIGHT()), east$2(moveLeft$3, moveRight$3)),\n rule(inSet(UP()), north$2(moveNorth$1)),\n rule(inSet(DOWN()), south$2(moveSouth$1)),\n rule(inSet(SPACE().concat(ENTER())), execute$4)\n ]);\n var getKeyupRules$3 = constant([rule(inSet(SPACE()), stopEventForFirefox)]);\n var MatrixType = typical(schema$7, NoState.init, getKeydownRules$3, getKeyupRules$3, function () {\n return Option.some(focusIn$2);\n });\n\n var schema$8 = [\n strict$1('selector'),\n defaulted$1('execute', defaultExecute),\n defaulted$1('moveOnTab', false)\n ];\n var execute$5 = function (component, simulatedEvent, menuConfig) {\n return menuConfig.focusManager.get(component).bind(function (focused) {\n return menuConfig.execute(component, simulatedEvent, focused);\n });\n };\n var focusIn$3 = function (component, menuConfig) {\n descendant$1(component.element(), menuConfig.selector).each(function (first) {\n menuConfig.focusManager.set(component, first);\n });\n };\n var moveUp$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n var moveDown$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n var fireShiftTab = function (component, simulatedEvent, menuConfig) {\n return menuConfig.moveOnTab ? move(moveUp$1)(component, simulatedEvent, menuConfig) : Option.none();\n };\n var fireTab = function (component, simulatedEvent, menuConfig) {\n return menuConfig.moveOnTab ? move(moveDown$1)(component, simulatedEvent, menuConfig) : Option.none();\n };\n var getKeydownRules$4 = constant([\n rule(inSet(UP()), move(moveUp$1)),\n rule(inSet(DOWN()), move(moveDown$1)),\n rule(and([\n isShift,\n inSet(TAB())\n ]), fireShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB())\n ]), fireTab),\n rule(inSet(ENTER()), execute$5),\n rule(inSet(SPACE()), execute$5)\n ]);\n var getKeyupRules$4 = constant([rule(inSet(SPACE()), stopEventForFirefox)]);\n var MenuType = typical(schema$8, NoState.init, getKeydownRules$4, getKeyupRules$4, function () {\n return Option.some(focusIn$3);\n });\n\n var schema$9 = [\n onKeyboardHandler('onSpace'),\n onKeyboardHandler('onEnter'),\n onKeyboardHandler('onShiftEnter'),\n onKeyboardHandler('onLeft'),\n onKeyboardHandler('onRight'),\n onKeyboardHandler('onTab'),\n onKeyboardHandler('onShiftTab'),\n onKeyboardHandler('onUp'),\n onKeyboardHandler('onDown'),\n onKeyboardHandler('onEscape'),\n defaulted$1('stopSpaceKeyup', false),\n option('focusIn')\n ];\n var getKeydownRules$5 = function (component, simulatedEvent, specialInfo) {\n return [\n rule(inSet(SPACE()), specialInfo.onSpace),\n rule(and([\n isNotShift,\n inSet(ENTER())\n ]), specialInfo.onEnter),\n rule(and([\n isShift,\n inSet(ENTER())\n ]), specialInfo.onShiftEnter),\n rule(and([\n isShift,\n inSet(TAB())\n ]), specialInfo.onShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB())\n ]), specialInfo.onTab),\n rule(inSet(UP()), specialInfo.onUp),\n rule(inSet(DOWN()), specialInfo.onDown),\n rule(inSet(LEFT()), specialInfo.onLeft),\n rule(inSet(RIGHT()), specialInfo.onRight),\n rule(inSet(SPACE()), specialInfo.onSpace),\n rule(inSet(ESCAPE()), specialInfo.onEscape)\n ];\n };\n var getKeyupRules$5 = function (component, simulatedEvent, specialInfo) {\n return specialInfo.stopSpaceKeyup ? [rule(inSet(SPACE()), stopEventForFirefox)] : [];\n };\n var SpecialType = typical(schema$9, NoState.init, getKeydownRules$5, getKeyupRules$5, function (specialInfo) {\n return specialInfo.focusIn;\n });\n\n var acyclic = AcyclicType.schema();\n var cyclic = CyclicType.schema();\n var flow = FlowType.schema();\n var flatgrid$1 = FlatgridType.schema();\n var matrix = MatrixType.schema();\n var execution = ExecutionType.schema();\n var menu = MenuType.schema();\n var special = SpecialType.schema();\n\n var KeyboardBranches = /*#__PURE__*/Object.freeze({\n acyclic: acyclic,\n cyclic: cyclic,\n flow: flow,\n flatgrid: flatgrid$1,\n matrix: matrix,\n execution: execution,\n menu: menu,\n special: special\n });\n\n var Keying = createModes$1({\n branchKey: 'mode',\n branches: KeyboardBranches,\n name: 'keying',\n active: {\n events: function (keyingConfig, keyingState) {\n var handler = keyingConfig.handler;\n return handler.toEvents(keyingConfig, keyingState);\n }\n },\n apis: {\n focusIn: function (component, keyConfig, keyState) {\n keyConfig.sendFocusIn(keyConfig).fold(function () {\n component.getSystem().triggerFocus(component.element(), component.element());\n }, function (sendFocusIn) {\n sendFocusIn(component, keyConfig, keyState);\n });\n },\n setGridSize: function (component, keyConfig, keyState, numRows, numColumns) {\n if (!hasKey$1(keyState, 'setGridSize')) {\n domGlobals.console.error('Layout does not support setGridSize');\n } else {\n keyState.setGridSize(numRows, numColumns);\n }\n }\n },\n state: KeyingState\n });\n\n var set$5 = function (component, replaceConfig, replaceState, data) {\n preserve(function () {\n var newChildren = map(data, component.getSystem().build);\n replaceChildren(component, newChildren);\n }, component.element());\n };\n var insert = function (component, replaceConfig, insertion, childSpec) {\n var child = component.getSystem().build(childSpec);\n attachWith(component, child, insertion);\n };\n var append$2 = function (component, replaceConfig, replaceState, appendee) {\n insert(component, replaceConfig, append, appendee);\n };\n var prepend$1 = function (component, replaceConfig, replaceState, prependee) {\n insert(component, replaceConfig, prepend, prependee);\n };\n var remove$7 = function (component, replaceConfig, replaceState, removee) {\n var children = contents(component);\n var foundChild = find(children, function (child) {\n return eq(removee.element(), child.element());\n });\n foundChild.each(detach);\n };\n var contents = function (component, replaceConfig) {\n return component.components();\n };\n var replaceAt = function (component, replaceConfig, replaceState, replaceeIndex, replacer) {\n var children = contents(component);\n return Option.from(children[replaceeIndex]).map(function (replacee) {\n remove$7(component, replaceConfig, replaceState, replacee);\n replacer.each(function (r) {\n insert(component, replaceConfig, function (p, c) {\n appendAt(p, c, replaceeIndex);\n }, r);\n });\n return replacee;\n });\n };\n var replaceBy = function (component, replaceConfig, replaceState, replaceePred, replacer) {\n var children = contents(component);\n return findIndex(children, replaceePred).bind(function (replaceeIndex) {\n return replaceAt(component, replaceConfig, replaceState, replaceeIndex, replacer);\n });\n };\n\n var ReplaceApis = /*#__PURE__*/Object.freeze({\n append: append$2,\n prepend: prepend$1,\n remove: remove$7,\n replaceAt: replaceAt,\n replaceBy: replaceBy,\n set: set$5,\n contents: contents\n });\n\n var Replacing = create$1({\n fields: [],\n name: 'replacing',\n apis: ReplaceApis\n });\n\n var events$4 = function (name, eventHandlers) {\n var events = derive(eventHandlers);\n return create$1({\n fields: [strict$1('enabled')],\n name: name,\n active: { events: constant(events) }\n });\n };\n var config = function (name, eventHandlers) {\n var me = events$4(name, eventHandlers);\n return {\n key: name,\n value: {\n config: {},\n me: me,\n configAsRaw: constant({}),\n initialConfig: {},\n state: NoState\n }\n };\n };\n\n var focus$2 = function (component, focusConfig) {\n if (!focusConfig.ignore) {\n focus$1(component.element());\n focusConfig.onFocus(component);\n }\n };\n var blur$1 = function (component, focusConfig) {\n if (!focusConfig.ignore) {\n blur(component.element());\n }\n };\n var isFocused = function (component) {\n return hasFocus(component.element());\n };\n\n var FocusApis = /*#__PURE__*/Object.freeze({\n focus: focus$2,\n blur: blur$1,\n isFocused: isFocused\n });\n\n var exhibit$1 = function (base, focusConfig) {\n var mod = focusConfig.ignore ? {} : { attributes: { tabindex: '-1' } };\n return nu$6(mod);\n };\n var events$5 = function (focusConfig) {\n return derive([run(focus(), function (component, simulatedEvent) {\n focus$2(component, focusConfig);\n simulatedEvent.stop();\n })].concat(focusConfig.stopMousedown ? [run(mousedown(), function (_, simulatedEvent) {\n simulatedEvent.event().prevent();\n })] : []));\n };\n\n var ActiveFocus = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$1,\n events: events$5\n });\n\n var FocusSchema = [\n onHandler('onFocus'),\n defaulted$1('stopMousedown', false),\n defaulted$1('ignore', false)\n ];\n\n var Focusing = create$1({\n fields: FocusSchema,\n name: 'focusing',\n active: ActiveFocus,\n apis: FocusApis\n });\n\n var updateAriaState = function (component, toggleConfig, toggleState) {\n var ariaInfo = toggleConfig.aria;\n ariaInfo.update(component, ariaInfo, toggleState.get());\n };\n var updateClass = function (component, toggleConfig, toggleState) {\n toggleConfig.toggleClass.each(function (toggleClass) {\n if (toggleState.get()) {\n add$2(component.element(), toggleClass);\n } else {\n remove$4(component.element(), toggleClass);\n }\n });\n };\n var toggle = function (component, toggleConfig, toggleState) {\n set$6(component, toggleConfig, toggleState, !toggleState.get());\n };\n var on$1 = function (component, toggleConfig, toggleState) {\n toggleState.set(true);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n var off = function (component, toggleConfig, toggleState) {\n toggleState.set(false);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n var set$6 = function (component, toggleConfig, toggleState, state) {\n var action = state ? on$1 : off;\n action(component, toggleConfig, toggleState);\n };\n var isOn = function (component, toggleConfig, toggleState) {\n return toggleState.get();\n };\n var onLoad$4 = function (component, toggleConfig, toggleState) {\n set$6(component, toggleConfig, toggleState, toggleConfig.selected);\n };\n\n var ToggleApis = /*#__PURE__*/Object.freeze({\n onLoad: onLoad$4,\n toggle: toggle,\n isOn: isOn,\n on: on$1,\n off: off,\n set: set$6\n });\n\n var exhibit$2 = function (base, toggleConfig, toggleState) {\n return nu$6({});\n };\n var events$6 = function (toggleConfig, toggleState) {\n var execute = executeEvent(toggleConfig, toggleState, toggle);\n var load = loadEvent(toggleConfig, toggleState, onLoad$4);\n return derive(flatten([\n toggleConfig.toggleOnExecute ? [execute] : [],\n [load]\n ]));\n };\n\n var ActiveToggle = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$2,\n events: events$6\n });\n\n var SetupBehaviourCellState = function (initialState) {\n var init = function () {\n var cell = Cell(initialState);\n var get = function () {\n return cell.get();\n };\n var set = function (newState) {\n return cell.set(newState);\n };\n var clear = function () {\n return cell.set(initialState);\n };\n var readState = function () {\n return cell.get();\n };\n return {\n get: get,\n set: set,\n clear: clear,\n readState: readState\n };\n };\n return { init: init };\n };\n\n var updatePressed = function (component, ariaInfo, status) {\n set$1(component.element(), 'aria-pressed', status);\n if (ariaInfo.syncWithExpanded) {\n updateExpanded(component, ariaInfo, status);\n }\n };\n var updateSelected = function (component, ariaInfo, status) {\n set$1(component.element(), 'aria-selected', status);\n };\n var updateChecked = function (component, ariaInfo, status) {\n set$1(component.element(), 'aria-checked', status);\n };\n var updateExpanded = function (component, ariaInfo, status) {\n set$1(component.element(), 'aria-expanded', status);\n };\n\n var ToggleSchema = [\n defaulted$1('selected', false),\n option('toggleClass'),\n defaulted$1('toggleOnExecute', true),\n defaultedOf('aria', { mode: 'none' }, choose$1('mode', {\n pressed: [\n defaulted$1('syncWithExpanded', false),\n output('update', updatePressed)\n ],\n checked: [output('update', updateChecked)],\n expanded: [output('update', updateExpanded)],\n selected: [output('update', updateSelected)],\n none: [output('update', noop)]\n }))\n ];\n\n var Toggling = create$1({\n fields: ToggleSchema,\n name: 'toggling',\n active: ActiveToggle,\n apis: ToggleApis,\n state: SetupBehaviourCellState(false)\n });\n\n var pointerEvents = function () {\n return [\n run(tapOrClick(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n emitExecute(component);\n }),\n cutter(detect$3().deviceType.isTouch() ? touchstart() : mousedown())\n ];\n };\n var events$7 = function (optAction) {\n var executeHandler = function (action) {\n return runOnExecute(function (component, simulatedEvent) {\n action(component);\n simulatedEvent.stop();\n });\n };\n return derive(flatten([\n optAction.map(executeHandler).toArray(),\n pointerEvents()\n ]));\n };\n\n var hoverEvent = 'alloy.item-hover';\n var focusEvent = 'alloy.item-focus';\n var onHover = function (item) {\n if (search(item.element()).isNone() || Focusing.isFocused(item)) {\n if (!Focusing.isFocused(item)) {\n Focusing.focus(item);\n }\n emitWith(item, hoverEvent, { item: item });\n }\n };\n var onFocus = function (item) {\n emitWith(item, focusEvent, { item: item });\n };\n var hover = constant(hoverEvent);\n var focus$3 = constant(focusEvent);\n\n var builder = function (detail) {\n return {\n dom: detail.dom,\n domModification: __assign(__assign({}, detail.domModification), { attributes: __assign(__assign(__assign({ 'role': detail.toggling.isSome() ? 'menuitemcheckbox' : 'menuitem' }, detail.domModification.attributes), { 'aria-haspopup': detail.hasSubmenu }), detail.hasSubmenu ? { 'aria-expanded': false } : {}) }),\n behaviours: SketchBehaviours.augment(detail.itemBehaviours, [\n detail.toggling.fold(Toggling.revoke, function (tConfig) {\n return Toggling.config(__assign({ aria: { mode: 'checked' } }, tConfig));\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n stopMousedown: detail.ignoreFocus,\n onFocus: function (component) {\n onFocus(component);\n }\n }),\n Keying.config({ mode: 'execution' }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n config('item-type-events', __spreadArrays(pointerEvents(), [\n run(mouseover(), onHover),\n run(focusItem(), Focusing.focus)\n ]))\n ]),\n components: detail.components,\n eventOrder: detail.eventOrder\n };\n };\n var schema$a = [\n strict$1('data'),\n strict$1('components'),\n strict$1('dom'),\n defaulted$1('hasSubmenu', false),\n option('toggling'),\n SketchBehaviours.field('itemBehaviours', [\n Toggling,\n Focusing,\n Keying,\n Representing\n ]),\n defaulted$1('ignoreFocus', false),\n defaulted$1('domModification', {}),\n output('builder', builder),\n defaulted$1('eventOrder', {})\n ];\n\n var builder$1 = function (detail) {\n return {\n dom: detail.dom,\n components: detail.components,\n events: derive([stopper(focusItem())])\n };\n };\n var schema$b = [\n strict$1('dom'),\n strict$1('components'),\n output('builder', builder$1)\n ];\n\n var owner$2 = function () {\n return 'item-widget';\n };\n var parts = constant([required({\n name: 'widget',\n overrides: function (detail) {\n return {\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: function (component) {\n return detail.data;\n },\n setValue: function () {\n }\n }\n })])\n };\n }\n })]);\n\n var builder$2 = function (detail) {\n var subs = substitutes(owner$2(), detail, parts());\n var components$1 = components(owner$2(), detail, subs.internals());\n var focusWidget = function (component) {\n return getPart(component, detail, 'widget').map(function (widget) {\n Keying.focusIn(widget);\n return widget;\n });\n };\n var onHorizontalArrow = function (component, simulatedEvent) {\n return inside(simulatedEvent.event().target()) ? Option.none() : function () {\n if (detail.autofocus) {\n simulatedEvent.setSource(component.element());\n return Option.none();\n } else {\n return Option.none();\n }\n }();\n };\n return {\n dom: detail.dom,\n components: components$1,\n domModification: detail.domModification,\n events: derive([\n runOnExecute(function (component, simulatedEvent) {\n focusWidget(component).each(function (widget) {\n simulatedEvent.stop();\n });\n }),\n run(mouseover(), onHover),\n run(focusItem(), function (component, simulatedEvent) {\n if (detail.autofocus) {\n focusWidget(component);\n } else {\n Focusing.focus(component);\n }\n })\n ]),\n behaviours: SketchBehaviours.augment(detail.widgetBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n onFocus: function (component) {\n onFocus(component);\n }\n }),\n Keying.config({\n mode: 'special',\n focusIn: detail.autofocus ? function (component) {\n focusWidget(component);\n } : revoke(),\n onLeft: onHorizontalArrow,\n onRight: onHorizontalArrow,\n onEscape: function (component, simulatedEvent) {\n if (!Focusing.isFocused(component) && !detail.autofocus) {\n Focusing.focus(component);\n return Option.some(true);\n } else if (detail.autofocus) {\n simulatedEvent.setSource(component.element());\n return Option.none();\n } else {\n return Option.none();\n }\n }\n })\n ])\n };\n };\n var schema$c = [\n strict$1('uid'),\n strict$1('data'),\n strict$1('components'),\n strict$1('dom'),\n defaulted$1('autofocus', false),\n defaulted$1('ignoreFocus', false),\n SketchBehaviours.field('widgetBehaviours', [\n Representing,\n Focusing,\n Keying\n ]),\n defaulted$1('domModification', {}),\n defaultUidsSchema(parts()),\n output('builder', builder$2)\n ];\n\n var itemSchema$1 = choose$1('type', {\n widget: schema$c,\n item: schema$a,\n separator: schema$b\n });\n var configureGrid = function (detail, movementInfo) {\n return {\n mode: 'flatgrid',\n selector: '.' + detail.markers.item,\n initSize: {\n numColumns: movementInfo.initSize.numColumns,\n numRows: movementInfo.initSize.numRows\n },\n focusManager: detail.focusManager\n };\n };\n var configureMatrix = function (detail, movementInfo) {\n return {\n mode: 'matrix',\n selectors: {\n row: movementInfo.rowSelector,\n cell: '.' + detail.markers.item\n },\n focusManager: detail.focusManager\n };\n };\n var configureMenu = function (detail, movementInfo) {\n return {\n mode: 'menu',\n selector: '.' + detail.markers.item,\n moveOnTab: movementInfo.moveOnTab,\n focusManager: detail.focusManager\n };\n };\n var parts$1 = constant([group({\n factory: {\n sketch: function (spec) {\n var itemInfo = asRawOrDie('menu.spec item', itemSchema$1, spec);\n return itemInfo.builder(itemInfo);\n }\n },\n name: 'items',\n unit: 'item',\n defaults: function (detail, u) {\n return u.hasOwnProperty('uid') ? u : __assign(__assign({}, u), { uid: generate$2('item') });\n },\n overrides: function (detail, u) {\n return {\n type: u.type,\n ignoreFocus: detail.fakeFocus,\n domModification: { classes: [detail.markers.item] }\n };\n }\n })]);\n var schema$d = constant([\n strict$1('value'),\n strict$1('items'),\n strict$1('dom'),\n strict$1('components'),\n defaulted$1('eventOrder', {}),\n field$1('menuBehaviours', [\n Highlighting,\n Representing,\n Composing,\n Keying\n ]),\n defaultedOf('movement', {\n mode: 'menu',\n moveOnTab: true\n }, choose$1('mode', {\n grid: [\n initSize(),\n output('config', configureGrid)\n ],\n matrix: [\n output('config', configureMatrix),\n strict$1('rowSelector')\n ],\n menu: [\n defaulted$1('moveOnTab', true),\n output('config', configureMenu)\n ]\n })),\n itemMarkers(),\n defaulted$1('fakeFocus', false),\n defaulted$1('focusManager', dom()),\n onHandler('onHighlight')\n ]);\n\n var focus$4 = constant('alloy.menu-focus');\n\n var make$1 = function (detail, components, spec, externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.menuBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedItem,\n itemClass: detail.markers.item,\n onHighlight: detail.onHighlight\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n }),\n Composing.config({ find: Option.some }),\n Keying.config(detail.movement.config(detail, detail.movement))\n ]),\n events: derive([\n run(focus$3(), function (menu, simulatedEvent) {\n var event = simulatedEvent.event();\n menu.getSystem().getByDom(event.target()).each(function (item) {\n Highlighting.highlight(menu, item);\n simulatedEvent.stop();\n emitWith(menu, focus$4(), {\n menu: menu,\n item: item\n });\n });\n }),\n run(hover(), function (menu, simulatedEvent) {\n var item = simulatedEvent.event().item();\n Highlighting.highlight(menu, item);\n })\n ]),\n components: components,\n eventOrder: detail.eventOrder,\n domModification: { attributes: { role: 'menu' } }\n };\n };\n\n var Menu = composite$1({\n name: 'Menu',\n configFields: schema$d(),\n partFields: parts$1(),\n factory: make$1\n });\n\n var transpose = function (obj) {\n return tupleMap(obj, function (v, k) {\n return {\n k: v,\n v: k\n };\n });\n };\n var trace = function (items, byItem, byMenu, finish) {\n return readOptFrom$1(byMenu, finish).bind(function (triggerItem) {\n return readOptFrom$1(items, triggerItem).bind(function (triggerMenu) {\n var rest = trace(items, byItem, byMenu, triggerMenu);\n return Option.some([triggerMenu].concat(rest));\n });\n }).getOr([]);\n };\n var generate$5 = function (menus, expansions) {\n var items = {};\n each$1(menus, function (menuItems, menu) {\n each(menuItems, function (item) {\n items[item] = menu;\n });\n });\n var byItem = expansions;\n var byMenu = transpose(expansions);\n var menuPaths = map$1(byMenu, function (_triggerItem, submenu) {\n return [submenu].concat(trace(items, byItem, byMenu, submenu));\n });\n return map$1(items, function (menu) {\n return readOptFrom$1(menuPaths, menu).getOr([menu]);\n });\n };\n\n var init$3 = function () {\n var expansions = Cell({});\n var menus = Cell({});\n var paths = Cell({});\n var primary = Cell(Option.none());\n var directory = Cell({});\n var clear = function () {\n expansions.set({});\n menus.set({});\n paths.set({});\n primary.set(Option.none());\n };\n var isClear = function () {\n return primary.get().isNone();\n };\n var setMenuBuilt = function (menuName, built) {\n var _a;\n menus.set(__assign(__assign({}, menus.get()), (_a = {}, _a[menuName] = {\n type: 'prepared',\n menu: built\n }, _a)));\n };\n var setContents = function (sPrimary, sMenus, sExpansions, dir) {\n primary.set(Option.some(sPrimary));\n expansions.set(sExpansions);\n menus.set(sMenus);\n directory.set(dir);\n var sPaths = generate$5(dir, sExpansions);\n paths.set(sPaths);\n };\n var getTriggeringItem = function (menuValue) {\n return find$1(expansions.get(), function (v, k) {\n return v === menuValue;\n });\n };\n var getTriggerData = function (menuValue, getItemByValue, path) {\n return getPreparedMenu(menuValue).bind(function (menu) {\n return getTriggeringItem(menuValue).bind(function (triggeringItemValue) {\n return getItemByValue(triggeringItemValue).map(function (triggeredItem) {\n return {\n triggeredMenu: menu,\n triggeringItem: triggeredItem,\n triggeringPath: path\n };\n });\n });\n });\n };\n var getTriggeringPath = function (itemValue, getItemByValue) {\n var extraPath = filter(lookupItem(itemValue).toArray(), function (menuValue) {\n return getPreparedMenu(menuValue).isSome();\n });\n return readOptFrom$1(paths.get(), itemValue).bind(function (path) {\n var revPath = reverse(extraPath.concat(path));\n var triggers = bind(revPath, function (menuValue, menuIndex) {\n return getTriggerData(menuValue, getItemByValue, revPath.slice(0, menuIndex + 1)).fold(function () {\n return primary.get().is(menuValue) ? [] : [Option.none()];\n }, function (data) {\n return [Option.some(data)];\n });\n });\n return sequence(triggers);\n });\n };\n var expand = function (itemValue) {\n return readOptFrom$1(expansions.get(), itemValue).map(function (menu) {\n var current = readOptFrom$1(paths.get(), itemValue).getOr([]);\n return [menu].concat(current);\n });\n };\n var collapse = function (itemValue) {\n return readOptFrom$1(paths.get(), itemValue).bind(function (path) {\n return path.length > 1 ? Option.some(path.slice(1)) : Option.none();\n });\n };\n var refresh = function (itemValue) {\n return readOptFrom$1(paths.get(), itemValue);\n };\n var getPreparedMenu = function (menuValue) {\n return lookupMenu(menuValue).bind(extractPreparedMenu);\n };\n var lookupMenu = function (menuValue) {\n return readOptFrom$1(menus.get(), menuValue);\n };\n var lookupItem = function (itemValue) {\n return readOptFrom$1(expansions.get(), itemValue);\n };\n var otherMenus = function (path) {\n var menuValues = directory.get();\n return difference(keys(menuValues), path);\n };\n var getPrimary = function () {\n return primary.get().bind(getPreparedMenu);\n };\n var getMenus = function () {\n return menus.get();\n };\n return {\n setMenuBuilt: setMenuBuilt,\n setContents: setContents,\n expand: expand,\n refresh: refresh,\n collapse: collapse,\n lookupMenu: lookupMenu,\n lookupItem: lookupItem,\n otherMenus: otherMenus,\n getPrimary: getPrimary,\n getMenus: getMenus,\n clear: clear,\n isClear: isClear,\n getTriggeringPath: getTriggeringPath\n };\n };\n var extractPreparedMenu = function (prep) {\n return prep.type === 'prepared' ? Option.some(prep.menu) : Option.none();\n };\n var LayeredState = {\n init: init$3,\n extractPreparedMenu: extractPreparedMenu\n };\n\n var make$2 = function (detail, rawUiSpec) {\n var submenuParentItems = Cell(Option.none());\n var buildMenus = function (container, primaryName, menus) {\n return map$1(menus, function (spec, name) {\n var makeSketch = function () {\n return Menu.sketch(__assign(__assign({ dom: spec.dom }, spec), {\n value: name,\n items: spec.items,\n markers: detail.markers,\n fakeFocus: detail.fakeFocus,\n onHighlight: detail.onHighlight,\n focusManager: detail.fakeFocus ? highlights() : dom()\n }));\n };\n return name === primaryName ? {\n type: 'prepared',\n menu: container.getSystem().build(makeSketch())\n } : {\n type: 'notbuilt',\n nbMenu: makeSketch\n };\n });\n };\n var layeredState = LayeredState.init();\n var setup = function (container) {\n var componentMap = buildMenus(container, detail.data.primary, detail.data.menus);\n var directory = toDirectory();\n layeredState.setContents(detail.data.primary, componentMap, detail.data.expansions, directory);\n return layeredState.getPrimary();\n };\n var getItemValue = function (item) {\n return Representing.getValue(item).value;\n };\n var getItemByValue = function (container, menus, itemValue) {\n return findMap(menus, function (menu) {\n if (!menu.getSystem().isConnected()) {\n return Option.none();\n }\n var candidates = Highlighting.getCandidates(menu);\n return find(candidates, function (c) {\n return getItemValue(c) === itemValue;\n });\n });\n };\n var toDirectory = function (container) {\n return map$1(detail.data.menus, function (data, menuName) {\n return bind(data.items, function (item) {\n return item.type === 'separator' ? [] : [item.data.value];\n });\n });\n };\n var setActiveMenu = function (container, menu) {\n Highlighting.highlight(container, menu);\n Highlighting.getHighlighted(menu).orThunk(function () {\n return Highlighting.getFirst(menu);\n }).each(function (item) {\n dispatch(container, item.element(), focusItem());\n });\n };\n var getMenus = function (state, menuValues) {\n return cat(map(menuValues, function (mv) {\n return state.lookupMenu(mv).bind(function (prep) {\n return prep.type === 'prepared' ? Option.some(prep.menu) : Option.none();\n });\n }));\n };\n var closeOthers = function (container, state, path) {\n var others = getMenus(state, state.otherMenus(path));\n each(others, function (o) {\n remove$5(o.element(), [detail.markers.backgroundMenu]);\n if (!detail.stayInDom) {\n Replacing.remove(container, o);\n }\n });\n };\n var getSubmenuParents = function (container) {\n return submenuParentItems.get().getOrThunk(function () {\n var r = {};\n var items = descendants(container.element(), '.' + detail.markers.item);\n var parentItems = filter(items, function (i) {\n return get$2(i, 'aria-haspopup') === 'true';\n });\n each(parentItems, function (i) {\n container.getSystem().getByDom(i).each(function (itemComp) {\n var key = getItemValue(itemComp);\n r[key] = itemComp;\n });\n });\n submenuParentItems.set(Option.some(r));\n return r;\n });\n };\n var updateAriaExpansions = function (container, path) {\n var parentItems = getSubmenuParents(container);\n each$1(parentItems, function (v, k) {\n var expanded = contains(path, k);\n set$1(v.element(), 'aria-expanded', expanded);\n });\n };\n var updateMenuPath = function (container, state, path) {\n return Option.from(path[0]).bind(function (latestMenuName) {\n return state.lookupMenu(latestMenuName).bind(function (menuPrep) {\n if (menuPrep.type === 'notbuilt') {\n return Option.none();\n } else {\n var activeMenu = menuPrep.menu;\n var rest = getMenus(state, path.slice(1));\n each(rest, function (r) {\n add$2(r.element(), detail.markers.backgroundMenu);\n });\n if (!inBody(activeMenu.element())) {\n Replacing.append(container, premade$1(activeMenu));\n }\n remove$5(activeMenu.element(), [detail.markers.backgroundMenu]);\n setActiveMenu(container, activeMenu);\n closeOthers(container, state, path);\n return Option.some(activeMenu);\n }\n });\n });\n };\n var ExpandHighlightDecision;\n (function (ExpandHighlightDecision) {\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightSubmenu'] = 0] = 'HighlightSubmenu';\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightParent'] = 1] = 'HighlightParent';\n }(ExpandHighlightDecision || (ExpandHighlightDecision = {})));\n var buildIfRequired = function (container, menuName, menuPrep) {\n if (menuPrep.type === 'notbuilt') {\n var menu = container.getSystem().build(menuPrep.nbMenu());\n layeredState.setMenuBuilt(menuName, menu);\n return menu;\n } else {\n return menuPrep.menu;\n }\n };\n var expandRight = function (container, item, decision) {\n if (decision === void 0) {\n decision = ExpandHighlightDecision.HighlightSubmenu;\n }\n var value = getItemValue(item);\n return layeredState.expand(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return Option.from(path[0]).bind(function (menuName) {\n return layeredState.lookupMenu(menuName).bind(function (activeMenuPrep) {\n var activeMenu = buildIfRequired(container, menuName, activeMenuPrep);\n if (!inBody(activeMenu.element())) {\n Replacing.append(container, premade$1(activeMenu));\n }\n detail.onOpenSubmenu(container, item, activeMenu, reverse(path));\n if (decision === ExpandHighlightDecision.HighlightSubmenu) {\n Highlighting.highlightFirst(activeMenu);\n return updateMenuPath(container, layeredState, path);\n } else {\n Highlighting.dehighlightAll(activeMenu);\n return Option.some(item);\n }\n });\n });\n });\n };\n var collapseLeft = function (container, item) {\n var value = getItemValue(item);\n return layeredState.collapse(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path).map(function (activeMenu) {\n detail.onCollapseMenu(container, item, activeMenu);\n return activeMenu;\n });\n });\n };\n var updateView = function (container, item) {\n var value = getItemValue(item);\n return layeredState.refresh(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path);\n });\n };\n var onRight = function (container, item) {\n return inside(item.element()) ? Option.none() : expandRight(container, item, ExpandHighlightDecision.HighlightSubmenu);\n };\n var onLeft = function (container, item) {\n return inside(item.element()) ? Option.none() : collapseLeft(container, item);\n };\n var onEscape = function (container, item) {\n return collapseLeft(container, item).orThunk(function () {\n return detail.onEscape(container, item).map(function () {\n return container;\n });\n });\n };\n var keyOnItem = function (f) {\n return function (container, simulatedEvent) {\n return closest$3(simulatedEvent.getSource(), '.' + detail.markers.item).bind(function (target) {\n return container.getSystem().getByDom(target).toOption().bind(function (item) {\n return f(container, item).map(function () {\n return true;\n });\n });\n });\n };\n };\n var events = derive([\n run(focus$4(), function (sandbox, simulatedEvent) {\n var item = simulatedEvent.event().item();\n layeredState.lookupItem(getItemValue(item)).each(function () {\n var menu = simulatedEvent.event().menu();\n Highlighting.highlight(sandbox, menu);\n var value = getItemValue(simulatedEvent.event().item());\n layeredState.refresh(value).each(function (path) {\n return closeOthers(sandbox, layeredState, path);\n });\n });\n }),\n runOnExecute(function (component, simulatedEvent) {\n var target = simulatedEvent.event().target();\n component.getSystem().getByDom(target).each(function (item) {\n var itemValue = getItemValue(item);\n if (itemValue.indexOf('collapse-item') === 0) {\n collapseLeft(component, item);\n }\n expandRight(component, item, ExpandHighlightDecision.HighlightSubmenu).fold(function () {\n detail.onExecute(component, item);\n }, function () {\n });\n });\n }),\n runOnAttached(function (container, simulatedEvent) {\n setup(container).each(function (primary) {\n Replacing.append(container, premade$1(primary));\n detail.onOpenMenu(container, primary);\n if (detail.highlightImmediately) {\n setActiveMenu(container, primary);\n }\n });\n })\n ].concat(detail.navigateOnHover ? [run(hover(), function (sandbox, simulatedEvent) {\n var item = simulatedEvent.event().item();\n updateView(sandbox, item);\n expandRight(sandbox, item, ExpandHighlightDecision.HighlightParent);\n detail.onHover(sandbox, item);\n })] : []));\n var getActiveItem = function (container) {\n return Highlighting.getHighlighted(container).bind(Highlighting.getHighlighted);\n };\n var collapseMenuApi = function (container) {\n getActiveItem(container).each(function (currentItem) {\n collapseLeft(container, currentItem);\n });\n };\n var highlightPrimary = function (container) {\n layeredState.getPrimary().each(function (primary) {\n setActiveMenu(container, primary);\n });\n };\n var extractMenuFromContainer = function (container) {\n return Option.from(container.components()[0]).filter(function (comp) {\n return get$2(comp.element(), 'role') === 'menu';\n });\n };\n var repositionMenus = function (container) {\n var maybeActivePrimary = layeredState.getPrimary().bind(function (primary) {\n return getActiveItem(container).bind(function (currentItem) {\n var itemValue = getItemValue(currentItem);\n var allMenus = values(layeredState.getMenus());\n var preparedMenus = cat(map(allMenus, LayeredState.extractPreparedMenu));\n return layeredState.getTriggeringPath(itemValue, function (v) {\n return getItemByValue(container, preparedMenus, v);\n });\n }).map(function (triggeringPath) {\n return {\n primary: primary,\n triggeringPath: triggeringPath\n };\n });\n });\n maybeActivePrimary.fold(function () {\n extractMenuFromContainer(container).each(function (primaryMenu) {\n detail.onRepositionMenu(container, primaryMenu, []);\n });\n }, function (_a) {\n var primary = _a.primary, triggeringPath = _a.triggeringPath;\n detail.onRepositionMenu(container, primary, triggeringPath);\n });\n };\n var apis = {\n collapseMenu: collapseMenuApi,\n highlightPrimary: highlightPrimary,\n repositionMenus: repositionMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.tmenuBehaviours, [\n Keying.config({\n mode: 'special',\n onRight: keyOnItem(onRight),\n onLeft: keyOnItem(onLeft),\n onEscape: keyOnItem(onEscape),\n focusIn: function (container, keyInfo) {\n layeredState.getPrimary().each(function (primary) {\n dispatch(container, primary.element(), focusItem());\n });\n }\n }),\n Highlighting.config({\n highlightClass: detail.markers.selectedMenu,\n itemClass: detail.markers.menu\n }),\n Composing.config({\n find: function (container) {\n return Highlighting.getHighlighted(container);\n }\n }),\n Replacing.config({})\n ]),\n eventOrder: detail.eventOrder,\n apis: apis,\n events: events\n };\n };\n var collapseItem = constant('collapse-item');\n\n var tieredData = function (primary, menus, expansions) {\n return {\n primary: primary,\n menus: menus,\n expansions: expansions\n };\n };\n var singleData = function (name, menu) {\n return {\n primary: name,\n menus: wrap$1(name, menu),\n expansions: {}\n };\n };\n var collapseItem$1 = function (text) {\n return {\n value: generate$1(collapseItem()),\n meta: { text: text }\n };\n };\n var tieredMenu = single$2({\n name: 'TieredMenu',\n configFields: [\n onStrictKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape'),\n onStrictHandler('onOpenMenu'),\n onStrictHandler('onOpenSubmenu'),\n onStrictHandler('onRepositionMenu'),\n onHandler('onCollapseMenu'),\n defaulted$1('highlightImmediately', true),\n strictObjOf('data', [\n strict$1('primary'),\n strict$1('menus'),\n strict$1('expansions')\n ]),\n defaulted$1('fakeFocus', false),\n onHandler('onHighlight'),\n onHandler('onHover'),\n tieredMenuMarkers(),\n strict$1('dom'),\n defaulted$1('navigateOnHover', true),\n defaulted$1('stayInDom', false),\n field$1('tmenuBehaviours', [\n Keying,\n Highlighting,\n Composing,\n Replacing\n ]),\n defaulted$1('eventOrder', {})\n ],\n apis: {\n collapseMenu: function (apis, tmenu) {\n apis.collapseMenu(tmenu);\n },\n highlightPrimary: function (apis, tmenu) {\n apis.highlightPrimary(tmenu);\n },\n repositionMenus: function (apis, tmenu) {\n apis.repositionMenus(tmenu);\n }\n },\n factory: make$2,\n extraApis: {\n tieredData: tieredData,\n singleData: singleData,\n collapseItem: collapseItem$1\n }\n });\n\n var makeMenu = function (detail, menuSandbox, anchor, menuSpec, getBounds) {\n var lazySink = function () {\n return detail.lazySink(menuSandbox);\n };\n var layouts = menuSpec.type === 'horizontal' ? {\n layouts: {\n onLtr: function () {\n return belowOrAbove();\n },\n onRtl: function () {\n return belowOrAboveRtl();\n }\n }\n } : {};\n var isFirstTierSubmenu = function (triggeringPaths) {\n return triggeringPaths.length === 2;\n };\n var getSubmenuLayouts = function (triggeringPaths) {\n return isFirstTierSubmenu(triggeringPaths) ? layouts : {};\n };\n return tieredMenu.sketch({\n dom: { tag: 'div' },\n data: menuSpec.data,\n markers: menuSpec.menu.markers,\n onEscape: function () {\n Sandboxing.close(menuSandbox);\n detail.onEscape.map(function (handler) {\n return handler(menuSandbox);\n });\n return Option.some(true);\n },\n onExecute: function () {\n return Option.some(true);\n },\n onOpenMenu: function (tmenu, menu) {\n Positioning.positionWithinBounds(lazySink().getOrDie(), anchor, menu, getBounds());\n },\n onOpenSubmenu: function (tmenu, item, submenu, triggeringPaths) {\n var sink = lazySink().getOrDie();\n Positioning.position(sink, __assign({\n anchor: 'submenu',\n item: item\n }, getSubmenuLayouts(triggeringPaths)), submenu);\n },\n onRepositionMenu: function (tmenu, primaryMenu, submenuTriggers) {\n var sink = lazySink().getOrDie();\n Positioning.positionWithinBounds(sink, anchor, primaryMenu, getBounds());\n each(submenuTriggers, function (st) {\n var submenuLayouts = getSubmenuLayouts(st.triggeringPath);\n Positioning.position(sink, __assign({\n anchor: 'submenu',\n item: st.triggeringItem\n }, submenuLayouts), st.triggeredMenu);\n });\n }\n });\n };\n var factory = function (detail, spec) {\n var isPartOfRelated = function (sandbox, queryElem) {\n var related = detail.getRelated(sandbox);\n return related.exists(function (rel) {\n return isPartOf(rel, queryElem);\n });\n };\n var setContent = function (sandbox, thing) {\n Sandboxing.setContent(sandbox, thing);\n };\n var showAt = function (sandbox, anchor, thing) {\n showWithin(sandbox, anchor, thing, Option.none());\n };\n var showWithin = function (sandbox, anchor, thing, boxElement) {\n showWithinBounds(sandbox, anchor, thing, function () {\n return boxElement.map(function (elem) {\n return box(elem);\n });\n });\n };\n var showWithinBounds = function (sandbox, anchor, thing, getBounds) {\n var sink = detail.lazySink(sandbox).getOrDie();\n Sandboxing.openWhileCloaked(sandbox, thing, function () {\n return Positioning.positionWithinBounds(sink, anchor, sandbox, getBounds());\n });\n Representing.setValue(sandbox, Option.some({\n mode: 'position',\n anchor: anchor,\n getBounds: getBounds\n }));\n };\n var showMenuAt = function (sandbox, anchor, menuSpec) {\n showMenuWithinBounds(sandbox, anchor, menuSpec, function () {\n return Option.none();\n });\n };\n var showMenuWithinBounds = function (sandbox, anchor, menuSpec, getBounds) {\n var menu = makeMenu(detail, sandbox, anchor, menuSpec, getBounds);\n Sandboxing.open(sandbox, menu);\n Representing.setValue(sandbox, Option.some({\n mode: 'menu',\n menu: menu\n }));\n };\n var hide = function (sandbox) {\n Representing.setValue(sandbox, Option.none());\n Sandboxing.close(sandbox);\n };\n var getContent = function (sandbox) {\n return Sandboxing.getState(sandbox);\n };\n var reposition = function (sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.getValue(sandbox).each(function (state) {\n switch (state.mode) {\n case 'menu':\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.repositionMenus(tmenu);\n });\n break;\n case 'position':\n var sink = detail.lazySink(sandbox).getOrDie();\n Positioning.positionWithinBounds(sink, state.anchor, sandbox, state.getBounds());\n break;\n }\n });\n }\n };\n var apis = {\n setContent: setContent,\n showAt: showAt,\n showWithin: showWithin,\n showWithinBounds: showWithinBounds,\n showMenuAt: showMenuAt,\n showMenuWithinBounds: showMenuWithinBounds,\n hide: hide,\n getContent: getContent,\n reposition: reposition,\n isOpen: Sandboxing.isOpen\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.inlineBehaviours, [\n Sandboxing.config({\n isPartOf: function (sandbox, data, queryElem) {\n return isPartOf(data, queryElem) || isPartOfRelated(sandbox, queryElem);\n },\n getAttachPoint: function (sandbox) {\n return detail.lazySink(sandbox).getOrDie();\n },\n onOpen: function (sandbox) {\n detail.onShow(sandbox);\n },\n onClose: function (sandbox) {\n detail.onHide(sandbox);\n }\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: Option.none()\n }\n }),\n Receiving.config({\n channels: __assign(__assign({}, receivingChannel(__assign({ isExtraPart: constant(false) }, detail.fireDismissalEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})))), receivingChannel$1(__assign(__assign({ isExtraPart: constant(false) }, detail.fireRepositionEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})), { doReposition: reposition })))\n })\n ]),\n eventOrder: detail.eventOrder,\n apis: apis\n };\n };\n var InlineView = single$2({\n name: 'InlineView',\n configFields: [\n strict$1('lazySink'),\n onHandler('onShow'),\n onHandler('onHide'),\n optionFunction('onEscape'),\n field$1('inlineBehaviours', [\n Sandboxing,\n Representing,\n Receiving\n ]),\n optionObjOf('fireDismissalEventInstead', [defaulted$1('event', dismissRequested())]),\n optionObjOf('fireRepositionEventInstead', [defaulted$1('event', repositionRequested())]),\n defaulted$1('getRelated', Option.none),\n defaulted$1('eventOrder', Option.none)\n ],\n factory: factory,\n apis: {\n showAt: function (apis, component, anchor, thing) {\n apis.showAt(component, anchor, thing);\n },\n showWithin: function (apis, component, anchor, thing, boxElement) {\n apis.showWithin(component, anchor, thing, boxElement);\n },\n showWithinBounds: function (apis, component, anchor, thing, bounds) {\n apis.showWithinBounds(component, anchor, thing, bounds);\n },\n showMenuAt: function (apis, component, anchor, menuSpec) {\n apis.showMenuAt(component, anchor, menuSpec);\n },\n showMenuWithinBounds: function (apis, component, anchor, menuSpec, bounds) {\n apis.showMenuWithinBounds(component, anchor, menuSpec, bounds);\n },\n hide: function (apis, component) {\n apis.hide(component);\n },\n isOpen: function (apis, component) {\n return apis.isOpen(component);\n },\n getContent: function (apis, component) {\n return apis.getContent(component);\n },\n setContent: function (apis, component, thing) {\n apis.setContent(component, thing);\n },\n reposition: function (apis, component) {\n apis.reposition(component);\n }\n }\n });\n\n var westEdgeX$1 = function (anchor) {\n return anchor.x();\n };\n var middleX$1 = function (anchor, element) {\n return anchor.x() + anchor.width() / 2 - element.width() / 2;\n };\n var eastEdgeX$1 = function (anchor, element) {\n return anchor.x() + anchor.width() - element.width();\n };\n var northY$2 = function (anchor) {\n return anchor.y();\n };\n var southY$2 = function (anchor, element) {\n return anchor.y() + anchor.height() - element.height();\n };\n var southeast$3 = function (anchor, element, bubbles) {\n return nu$7(westEdgeX$1(anchor), southY$2(anchor, element), bubbles.innerSoutheast(), southeast(), 'layout-se');\n };\n var southwest$3 = function (anchor, element, bubbles) {\n return nu$7(eastEdgeX$1(anchor, element), southY$2(anchor, element), bubbles.innerSouthwest(), southwest(), 'layout-sw');\n };\n var northeast$3 = function (anchor, element, bubbles) {\n return nu$7(westEdgeX$1(anchor), northY$2(anchor), bubbles.innerNortheast(), northeast(), 'layout-ne');\n };\n var northwest$3 = function (anchor, element, bubbles) {\n return nu$7(eastEdgeX$1(anchor, element), northY$2(anchor), bubbles.innerNorthwest(), northwest(), 'layout-nw');\n };\n var north$3 = function (anchor, element, bubbles) {\n return nu$7(middleX$1(anchor, element), northY$2(anchor), bubbles.innerNorth(), north(), 'layout-n');\n };\n var south$3 = function (anchor, element, bubbles) {\n return nu$7(middleX$1(anchor, element), southY$2(anchor, element), bubbles.innerSouth(), south(), 'layout-s');\n };\n\n var factory$1 = function (detail) {\n var events = events$7(detail.action);\n var tag = detail.dom.tag;\n var lookupAttr = function (attr) {\n return readOptFrom$1(detail.dom, 'attributes').bind(function (attrs) {\n return readOptFrom$1(attrs, attr);\n });\n };\n var getModAttributes = function () {\n if (tag === 'button') {\n var type = lookupAttr('type').getOr('button');\n var roleAttrs = lookupAttr('role').map(function (role) {\n return { role: role };\n }).getOr({});\n return __assign({ type: type }, roleAttrs);\n } else {\n var role = lookupAttr('role').getOr('button');\n return { role: role };\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events,\n behaviours: SketchBehaviours.augment(detail.buttonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n })\n ]),\n domModification: { attributes: getModAttributes() },\n eventOrder: detail.eventOrder\n };\n };\n var Button = single$2({\n name: 'Button',\n factory: factory$1,\n configFields: [\n defaulted$1('uid', undefined),\n strict$1('dom'),\n defaulted$1('components', []),\n SketchBehaviours.field('buttonBehaviours', [\n Focusing,\n Keying\n ]),\n option('action'),\n option('role'),\n defaulted$1('eventOrder', {})\n ]\n });\n\n var record = function (spec) {\n var uid = isSketchSpec(spec) && hasKey$1(spec, 'uid') ? spec.uid : generate$2('memento');\n var get = function (anyInSystem) {\n return anyInSystem.getSystem().getByUid(uid).getOrDie();\n };\n var getOpt = function (anyInSystem) {\n return anyInSystem.getSystem().getByUid(uid).toOption();\n };\n var asSpec = function () {\n return __assign(__assign({}, spec), { uid: uid });\n };\n return {\n get: get,\n getOpt: getOpt,\n asSpec: asSpec\n };\n };\n\n var defaultIcon = function (icons) {\n return Option.from(icons()['temporary-placeholder']).getOr('!not found!');\n };\n var get$c = function (name, icons) {\n return Option.from(icons()[name]).getOrThunk(function () {\n return defaultIcon(icons);\n });\n };\n var getOr = function (name, icons, fallback) {\n return Option.from(icons()[name]).or(fallback).getOrThunk(function () {\n return defaultIcon(icons);\n });\n };\n var getFirst$1 = function (names, icons) {\n return findMap(names, function (name) {\n return Option.from(icons()[name]);\n }).getOrThunk(function () {\n return defaultIcon(icons);\n });\n };\n\n var notificationIconMap = {\n success: 'checkmark',\n error: 'warning',\n err: 'error',\n warning: 'warning',\n warn: 'warning',\n info: 'info'\n };\n var factory$2 = function (detail) {\n var memBannerText = record({\n dom: {\n tag: 'p',\n innerHtml: detail.translationProvider(detail.text)\n },\n behaviours: derive$1([Replacing.config({})])\n });\n var renderPercentBar = function (percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-bar'],\n attributes: { style: 'width: ' + percent + '%' }\n }\n };\n };\n var renderPercentText = function (percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-text'],\n innerHtml: percent + '%'\n }\n };\n };\n var memBannerProgress = record({\n dom: {\n tag: 'div',\n classes: detail.progress ? [\n 'tox-progress-bar',\n 'tox-progress-indicator'\n ] : ['tox-progress-bar']\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(0)]\n },\n renderPercentText(0)\n ],\n behaviours: derive$1([Replacing.config({})])\n });\n var updateProgress = function (comp, percent) {\n if (comp.getSystem().isConnected()) {\n memBannerProgress.getOpt(comp).each(function (progress) {\n Replacing.set(progress, [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(percent)]\n },\n renderPercentText(percent)\n ]);\n });\n }\n };\n var updateText = function (comp, text$1) {\n if (comp.getSystem().isConnected()) {\n var banner = memBannerText.get(comp);\n Replacing.set(banner, [text(text$1)]);\n }\n };\n var apis = {\n updateProgress: updateProgress,\n updateText: updateText\n };\n var iconChoices = flatten([\n detail.icon.toArray(),\n detail.level.toArray(),\n detail.level.bind(function (level) {\n return Option.from(notificationIconMap[level]);\n }).toArray()\n ]);\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: detail.level.map(function (level) {\n return [\n 'tox-notification',\n 'tox-notification--in',\n 'tox-notification--' + level\n ];\n }).getOr([\n 'tox-notification',\n 'tox-notification--in'\n ])\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon'],\n innerHtml: getFirst$1(iconChoices, detail.iconProvider)\n }\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n }\n ].concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-notification__dismiss',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-icon'],\n innerHtml: get$c('close', detail.iconProvider),\n attributes: { 'aria-label': detail.translationProvider('Close') }\n }\n }],\n action: function (comp) {\n detail.onAction(comp);\n }\n })),\n apis: apis\n };\n };\n var Notification = single$2({\n name: 'Notification',\n factory: factory$2,\n configFields: [\n option('level'),\n strict$1('progress'),\n strict$1('icon'),\n strict$1('onAction'),\n strict$1('text'),\n strict$1('iconProvider'),\n strict$1('translationProvider')\n ],\n apis: {\n updateProgress: function (apis, comp, percent) {\n apis.updateProgress(comp, percent);\n },\n updateText: function (apis, comp, text) {\n apis.updateText(comp, text);\n }\n }\n });\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n function NotificationManagerImpl (editor, extras, uiMothership) {\n var backstage = extras.backstage;\n var getLayoutDirection = function (rel) {\n switch (rel) {\n case 'bc-bc':\n return south$3;\n case 'tc-tc':\n return north$3;\n case 'tc-bc':\n return north$1;\n case 'bc-tc':\n default:\n return south$1;\n }\n };\n var prePositionNotifications = function (notifications) {\n each(notifications, function (notification) {\n return notification.moveTo(0, 0);\n });\n };\n var positionNotifications = function (notifications) {\n if (notifications.length > 0) {\n head(notifications).each(function (firstItem) {\n return firstItem.moveRel(null, 'banner');\n });\n each(notifications, function (notification, index) {\n if (index > 0) {\n notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');\n }\n });\n }\n };\n var reposition = function (notifications) {\n prePositionNotifications(notifications);\n positionNotifications(notifications);\n };\n var open = function (settings, closeCallback) {\n var close = function () {\n closeCallback();\n InlineView.hide(notificationWrapper);\n };\n var notification = build$1(Notification.sketch({\n text: settings.text,\n level: contains([\n 'success',\n 'error',\n 'warning',\n 'warn',\n 'info'\n ], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: Option.from(settings.icon),\n onAction: close,\n iconProvider: backstage.shared.providers.icons,\n translationProvider: backstage.shared.providers.translate\n }));\n var notificationWrapper = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container']\n },\n lazySink: extras.backstage.shared.getSink,\n fireDismissalEventInstead: {}\n }));\n uiMothership.add(notificationWrapper);\n if (settings.timeout > 0) {\n global$2.setTimeout(function () {\n close();\n }, settings.timeout);\n }\n return {\n close: close,\n moveTo: function (x, y) {\n InlineView.showAt(notificationWrapper, {\n anchor: 'makeshift',\n x: x,\n y: y\n }, premade$1(notification));\n },\n moveRel: function (element, rel) {\n if (rel !== 'banner') {\n var layoutDirection_1 = getLayoutDirection(rel);\n var nodeAnchor = {\n anchor: 'node',\n root: body(),\n node: Option.some(Element.fromDom(element)),\n layouts: {\n onRtl: function () {\n return [layoutDirection_1];\n },\n onLtr: function () {\n return [layoutDirection_1];\n }\n }\n };\n InlineView.showAt(notificationWrapper, nodeAnchor, premade$1(notification));\n } else {\n InlineView.showAt(notificationWrapper, extras.backstage.shared.anchors.banner(), premade$1(notification));\n }\n },\n text: function (nuText) {\n Notification.updateText(notification, nuText);\n },\n settings: settings,\n getEl: function () {\n return notification.element().dom();\n },\n progressBar: {\n value: function (percent) {\n Notification.updateProgress(notification, percent);\n }\n }\n };\n };\n var close = function (notification) {\n notification.close();\n };\n var getArgs = function (notification) {\n return notification.settings;\n };\n return {\n open: open,\n close: close,\n reposition: reposition,\n getArgs: getArgs\n };\n }\n\n var first$1 = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer === null) {\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n }\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n var last$2 = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n }\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var isText$1 = function (node) {\n return node.nodeType === domGlobals.Node.TEXT_NODE;\n };\n var isBoundary = function (dom, node) {\n return dom.isBlock(node) || contains([\n 'BR',\n 'IMG',\n 'HR',\n 'INPUT'\n ], node.nodeName) || dom.getContentEditable(node) === 'false';\n };\n var outcome$1 = Adt.generate([\n { aborted: [] },\n { edge: ['element'] },\n { success: ['info'] }\n ]);\n var phase = Adt.generate([\n { abort: [] },\n { kontinue: [] },\n { finish: ['info'] }\n ]);\n var repeat = function (dom, node, offset, process, walker, recent) {\n var terminate = function () {\n return recent.fold(outcome$1.aborted, outcome$1.edge);\n };\n var recurse = function () {\n var next = walker();\n if (next) {\n return repeat(dom, next, Option.none(), process, walker, Option.some(node));\n } else {\n return terminate();\n }\n };\n if (isBoundary(dom, node)) {\n return terminate();\n } else if (!isText$1(node)) {\n return recurse();\n } else {\n var text = node.textContent;\n return process(phase, node, text, offset).fold(outcome$1.aborted, function () {\n return recurse();\n }, outcome$1.success);\n }\n };\n var repeatLeft = function (dom, node, offset, process, rootNode) {\n var walker = new global$3(node, rootNode || dom.getRoot());\n return repeat(dom, node, Option.some(offset), process, walker.prev, Option.none());\n };\n\n var autocompleteSelector = '[data-mce-autocompleter]';\n var create$4 = function (editor, range) {\n return detect$4(Element.fromDom(editor.selection.getNode())).getOrThunk(function () {\n var wrapper = Element.fromHtml('<span data-mce-autocompleter=\"1\" data-mce-bogus=\"1\"></span>', editor.getDoc());\n append(wrapper, Element.fromDom(range.extractContents()));\n range.insertNode(wrapper.dom());\n parent(wrapper).each(function (elm) {\n return elm.dom().normalize();\n });\n last$1(wrapper).map(function (last) {\n editor.selection.setCursorLocation(last.dom(), getEnd(last));\n });\n return wrapper;\n });\n };\n var detect$4 = function (elm) {\n return closest$3(elm, autocompleteSelector);\n };\n\n var isValidTextRange = function (rng) {\n return rng.collapsed && rng.startContainer.nodeType === 3;\n };\n var whiteSpace = /[\\u00a0 \\t\\r\\n]/;\n var parse = function (text, index, ch, minChars) {\n var i;\n for (i = index - 1; i >= 0; i--) {\n var char = text.charAt(i);\n if (whiteSpace.test(char)) {\n return Option.none();\n }\n if (char === ch) {\n break;\n }\n }\n if (i === -1 || index - i < minChars) {\n return Option.none();\n }\n return Option.some(text.substring(i + 1, index));\n };\n var getText = function (rng, ch) {\n var text = rng.toString().substring(ch.length);\n return text.replace(/\\u00A0/g, ' ').replace(/\\uFEFF/g, '');\n };\n var findStart = function (dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n if (!isValidTextRange(initRange)) {\n return Option.none();\n }\n var findTriggerCh = function (phase, element, text, optOffset) {\n var index = optOffset.getOr(text.length);\n return parse(text, index, ch, 1).fold(function () {\n return text.match(whiteSpace) ? phase.abort() : phase.kontinue();\n }, function (newText) {\n var range = initRange.cloneRange();\n range.setStart(element, index - newText.length - 1);\n range.setEnd(initRange.endContainer, initRange.endOffset);\n return text.length < minChars ? phase.abort() : phase.finish({\n text: getText(range, ch),\n range: range,\n triggerChar: ch\n });\n });\n };\n return repeatLeft(dom, initRange.startContainer, initRange.startOffset, findTriggerCh).fold(Option.none, Option.none, Option.some);\n };\n var getContext = function (dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n return detect$4(Element.fromDom(initRange.startContainer)).fold(function () {\n return findStart(dom, initRange, ch, minChars);\n }, function (elm) {\n var range = dom.createRng();\n range.selectNode(elm.dom());\n return Option.some({\n range: range,\n text: getText(range, ch),\n triggerChar: ch\n });\n });\n };\n\n var setup = function (api, editor) {\n editor.on('keypress compositionend', api.onKeypress.throttle);\n editor.on('remove', api.onKeypress.cancel);\n var redirectKeyToItem = function (item, e) {\n emitWith(item, keydown(), { raw: e });\n };\n editor.on('keydown', function (e) {\n var getItem = function () {\n return api.getView().bind(Highlighting.getHighlighted);\n };\n if (e.which === 8) {\n api.onKeypress.throttle(e);\n }\n if (api.isActive()) {\n if (e.which === 27) {\n api.cancelIfNecessary();\n }\n if (api.isMenuOpen()) {\n if (e.which === 13) {\n getItem().each(emitExecute);\n e.preventDefault();\n } else if (e.which === 40) {\n getItem().fold(function () {\n api.getView().each(Highlighting.highlightFirst);\n }, function (item) {\n redirectKeyToItem(item, e);\n });\n e.preventDefault();\n e.stopImmediatePropagation();\n } else if (e.which === 37 || e.which === 38 || e.which === 39) {\n getItem().each(function (item) {\n redirectKeyToItem(item, e);\n e.preventDefault();\n e.stopImmediatePropagation();\n });\n }\n } else {\n if (e.which === 13 || e.which === 38 || e.which === 40) {\n api.cancelIfNecessary();\n }\n }\n }\n });\n editor.on('NodeChange', function (e) {\n if (api.isActive() && !api.isProcessingAction() && detect$4(Element.fromDom(e.element)).isNone()) {\n api.cancelIfNecessary();\n }\n });\n };\n var AutocompleterEditorEvents = { setup: setup };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var point$2 = function (element, offset) {\n return {\n element: element,\n offset: offset\n };\n };\n\n var isText$2 = function (node) {\n return node.nodeType === domGlobals.Node.TEXT_NODE;\n };\n var isElement$1 = function (node) {\n return node.nodeType === domGlobals.Node.ELEMENT_NODE;\n };\n var toLast = function (node) {\n if (isText$2(node)) {\n return point$2(node, node.data.length);\n } else {\n var children = node.childNodes;\n return children.length > 0 ? toLast(children[children.length - 1]) : point$2(node, children.length);\n }\n };\n var toLeaf = function (node, offset) {\n var children = node.childNodes;\n if (children.length > 0 && offset < children.length) {\n return toLeaf(children[offset], 0);\n } else if (children.length > 0 && isElement$1(node) && children.length === offset) {\n return toLast(children[children.length - 1]);\n } else {\n return point$2(node, offset);\n }\n };\n\n var isStartOfWord = function (dom) {\n var process = function (phase, element, text, optOffset) {\n var index = optOffset.getOr(text.length);\n return index === 0 ? phase.kontinue() : phase.finish(/\\s/.test(text.charAt(index - 1)));\n };\n return function (rng) {\n var leaf = toLeaf(rng.startContainer, rng.startOffset);\n return repeatLeft(dom, leaf.element, leaf.offset, process).fold(constant(true), constant(true), identity);\n };\n };\n var getTriggerContext = function (dom, initRange, database) {\n return findMap(database.triggerChars, function (ch) {\n return getContext(dom, initRange, ch);\n });\n };\n var lookup = function (editor, getDatabase) {\n var database = getDatabase();\n var rng = editor.selection.getRng();\n return getTriggerContext(editor.dom, rng, database).bind(function (context) {\n return lookupWithContext(editor, getDatabase, context);\n });\n };\n var lookupWithContext = function (editor, getDatabase, context, fetchOptions) {\n if (fetchOptions === void 0) {\n fetchOptions = {};\n }\n var database = getDatabase();\n var rng = editor.selection.getRng();\n var startText = rng.startContainer.nodeValue;\n var autocompleters = filter(database.lookupByChar(context.triggerChar), function (autocompleter) {\n return context.text.length >= autocompleter.minChars && autocompleter.matches.getOrThunk(function () {\n return isStartOfWord(editor.dom);\n })(context.range, startText, context.text);\n });\n if (autocompleters.length === 0) {\n return Option.none();\n }\n var lookupData = global$4.all(map(autocompleters, function (ac) {\n var fetchResult = ac.fetch(context.text, ac.maxResults, fetchOptions);\n return fetchResult.then(function (results) {\n return {\n matchText: context.text,\n items: results,\n columns: ac.columns,\n onAction: ac.onAction\n };\n });\n }));\n return Option.some({\n lookupData: lookupData,\n context: context\n });\n };\n\n var separatorMenuItemSchema = objOf([\n strictString('type'),\n optionString('text')\n ]);\n var createSeparatorMenuItem = function (spec) {\n return asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n };\n\n var autocompleterItemSchema = objOf([\n state$1('type', function () {\n return 'autocompleteitem';\n }),\n state$1('active', function () {\n return false;\n }),\n state$1('disabled', function () {\n return false;\n }),\n defaulted$1('meta', {}),\n strictString('value'),\n optionString('text'),\n optionString('icon')\n ]);\n var autocompleterSchema = objOf([\n strictString('type'),\n strictString('ch'),\n defaultedNumber('minChars', 1),\n defaulted$1('columns', 1),\n defaultedNumber('maxResults', 10),\n optionFunction('matches'),\n strictFunction('fetch'),\n strictFunction('onAction')\n ]);\n var createSeparatorItem = function (spec) {\n return asRaw('Autocompleter.Separator', separatorMenuItemSchema, spec);\n };\n var createAutocompleterItem = function (spec) {\n return asRaw('Autocompleter.Item', autocompleterItemSchema, spec);\n };\n var createAutocompleter = function (spec) {\n return asRaw('Autocompleter', autocompleterSchema, spec);\n };\n\n var stringArray = function (a) {\n var all = {};\n each(a, function (key) {\n all[key] = {};\n });\n return keys(all);\n };\n\n var register = function (editor) {\n var popups = editor.ui.registry.getAll().popups;\n var dataset = map$1(popups, function (popup) {\n return createAutocompleter(popup).fold(function (err) {\n throw new Error(formatError(err));\n }, function (x) {\n return x;\n });\n });\n var triggerChars = stringArray(mapToArray(dataset, function (v) {\n return v.ch;\n }));\n var datasetValues = values(dataset);\n var lookupByChar = function (ch) {\n return filter(datasetValues, function (dv) {\n return dv.ch === ch;\n });\n };\n return {\n dataset: dataset,\n triggerChars: triggerChars,\n lookupByChar: lookupByChar\n };\n };\n\n var commonMenuItemFields = [\n defaultedBoolean('disabled', false),\n optionString('text'),\n optionString('shortcut'),\n field('value', 'value', defaultedThunk(function () {\n return generate$1('menuitem-value');\n }), anyValue$1()),\n defaulted$1('meta', {})\n ];\n\n var menuItemSchema = objOf([\n strictString('type'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedFunction('onAction', noop),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createMenuItem = function (spec) {\n return asRaw('menuitem', menuItemSchema, spec);\n };\n\n var nestedMenuItemSchema = objOf([\n strictString('type'),\n strictFunction('getSubmenuItems'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createNestedMenuItem = function (spec) {\n return asRaw('nestedmenuitem', nestedMenuItemSchema, spec);\n };\n\n var toggleMenuItemSchema = objOf([\n strictString('type'),\n defaultedBoolean('active', false),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n strictFunction('onAction')\n ].concat(commonMenuItemFields));\n var createToggleMenuItem = function (spec) {\n return asRaw('togglemenuitem', toggleMenuItemSchema, spec);\n };\n\n var choiceMenuItemSchema = objOf([\n strictString('type'),\n defaultedBoolean('active', false),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createChoiceMenuItem = function (spec) {\n return asRaw('choicemenuitem', choiceMenuItemSchema, spec);\n };\n\n var fancyTypes = [\n 'inserttable',\n 'colorswatch'\n ];\n var fancyMenuItemSchema = objOf([\n strictString('type'),\n strictStringEnum('fancytype', fancyTypes),\n defaultedFunction('onAction', noop)\n ]);\n var createFancyMenuItem = function (spec) {\n return asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n };\n\n var detectSize = function (comp, margin, selectorClass) {\n var descendants$1 = descendants(comp.element(), '.' + selectorClass);\n if (descendants$1.length > 0) {\n var columnLength = findIndex(descendants$1, function (c) {\n var thisTop = c.dom().getBoundingClientRect().top;\n var cTop = descendants$1[0].dom().getBoundingClientRect().top;\n return Math.abs(thisTop - cTop) > margin;\n }).getOr(descendants$1.length);\n return Option.some({\n numColumns: columnLength,\n numRows: Math.ceil(descendants$1.length / columnLength)\n });\n } else {\n return Option.none();\n }\n };\n\n var namedEvents = function (name, handlers) {\n return derive$1([config(name, handlers)]);\n };\n var unnamedEvents = function (handlers) {\n return namedEvents(generate$1('unnamed-events'), handlers);\n };\n var SimpleBehaviours = {\n namedEvents: namedEvents,\n unnamedEvents: unnamedEvents\n };\n\n var TooltippingSchema = [\n strict$1('lazySink'),\n strict$1('tooltipDom'),\n defaulted$1('exclusive', true),\n defaulted$1('tooltipComponents', []),\n defaulted$1('delay', 300),\n defaultedStringEnum('mode', 'normal', [\n 'normal',\n 'follow-highlight'\n ]),\n defaulted$1('anchor', function (comp) {\n return {\n anchor: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant([\n south$1,\n north$1,\n southeast$1,\n northeast$1,\n southwest$1,\n northwest$1\n ]),\n onRtl: constant([\n south$1,\n north$1,\n southeast$1,\n northeast$1,\n southwest$1,\n northwest$1\n ])\n }\n };\n }),\n onHandler('onHide'),\n onHandler('onShow')\n ];\n\n var init$4 = function () {\n var timer = Cell(Option.none());\n var popup = Cell(Option.none());\n var getTooltip = function () {\n return popup.get();\n };\n var setTooltip = function (s) {\n popup.set(Option.some(s));\n };\n var clearTooltip = function () {\n popup.set(Option.none());\n };\n var clearTimer = function () {\n timer.get().each(function (t) {\n domGlobals.clearTimeout(t);\n });\n };\n var resetTimer = function (f, delay) {\n clearTimer();\n timer.set(Option.some(domGlobals.setTimeout(function () {\n f();\n }, delay)));\n };\n var isShowing = function () {\n return popup.get().isSome();\n };\n var readState = constant('not-implemented');\n return nu$5({\n getTooltip: getTooltip,\n isShowing: isShowing,\n setTooltip: setTooltip,\n clearTooltip: clearTooltip,\n clearTimer: clearTimer,\n resetTimer: resetTimer,\n readState: readState\n });\n };\n\n var TooltippingState = /*#__PURE__*/Object.freeze({\n init: init$4\n });\n\n var ExclusivityChannel = generate$1('tooltip.exclusive');\n var ShowTooltipEvent = generate$1('tooltip.show');\n var HideTooltipEvent = generate$1('tooltip.hide');\n\n var hideAllExclusive = function (component, tConfig, tState) {\n component.getSystem().broadcastOn([ExclusivityChannel], {});\n };\n var setComponents = function (component, tConfig, tState, specs) {\n tState.getTooltip().each(function (tooltip) {\n if (tooltip.getSystem().isConnected()) {\n Replacing.set(tooltip, specs);\n }\n });\n };\n\n var TooltippingApis = /*#__PURE__*/Object.freeze({\n hideAllExclusive: hideAllExclusive,\n setComponents: setComponents\n });\n\n var events$8 = function (tooltipConfig, state) {\n var hide = function (comp) {\n state.getTooltip().each(function (p) {\n detach(p);\n tooltipConfig.onHide(comp, p);\n state.clearTooltip();\n });\n state.clearTimer();\n };\n var show = function (comp) {\n if (!state.isShowing()) {\n hideAllExclusive(comp);\n var sink = tooltipConfig.lazySink(comp).getOrDie();\n var popup = comp.getSystem().build({\n dom: tooltipConfig.tooltipDom,\n components: tooltipConfig.tooltipComponents,\n events: derive(tooltipConfig.mode === 'normal' ? [\n run(mouseover(), function (_) {\n emit(comp, ShowTooltipEvent);\n }),\n run(mouseout(), function (_) {\n emit(comp, HideTooltipEvent);\n })\n ] : []),\n behaviours: derive$1([Replacing.config({})])\n });\n state.setTooltip(popup);\n attach$1(sink, popup);\n tooltipConfig.onShow(comp, popup);\n Positioning.position(sink, tooltipConfig.anchor(comp), popup);\n }\n };\n return derive(flatten([\n [\n run(ShowTooltipEvent, function (comp) {\n state.resetTimer(function () {\n show(comp);\n }, tooltipConfig.delay);\n }),\n run(HideTooltipEvent, function (comp) {\n state.resetTimer(function () {\n hide(comp);\n }, tooltipConfig.delay);\n }),\n run(receive(), function (comp, message) {\n var receivingData = message;\n if (contains(receivingData.channels(), ExclusivityChannel)) {\n hide(comp);\n }\n }),\n runOnDetached(function (comp) {\n hide(comp);\n })\n ],\n tooltipConfig.mode === 'normal' ? [\n run(focusin(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }),\n run(postBlur(), function (comp) {\n emit(comp, HideTooltipEvent);\n }),\n run(mouseover(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }),\n run(mouseout(), function (comp) {\n emit(comp, HideTooltipEvent);\n })\n ] : [\n run(highlight(), function (comp, se) {\n emit(comp, ShowTooltipEvent);\n }),\n run(dehighlight(), function (comp) {\n emit(comp, HideTooltipEvent);\n })\n ]\n ]));\n };\n\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n events: events$8\n });\n\n var Tooltipping = create$1({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n\n var getAttrs = function (elem) {\n var attributes = elem.dom().attributes !== undefined ? elem.dom().attributes : [];\n return foldl(attributes, function (b, attr) {\n var _a;\n if (attr.name === 'class') {\n return b;\n } else {\n return __assign(__assign({}, b), (_a = {}, _a[attr.name] = attr.value, _a));\n }\n }, {});\n };\n var getClasses = function (elem) {\n return Array.prototype.slice.call(elem.dom().classList, 0);\n };\n var fromHtml$2 = function (html) {\n var elem = Element.fromHtml(html);\n var children$1 = children(elem);\n var attrs = getAttrs(elem);\n var classes = getClasses(elem);\n var contents = children$1.length === 0 ? {} : { innerHtml: get$1(elem) };\n return __assign({\n tag: name(elem),\n classes: classes,\n attributes: attrs\n }, contents);\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.I18n');\n\n var navClass = 'tox-menu-nav__js';\n var selectableClass = 'tox-collection__item';\n var colorClass = 'tox-swatch';\n var presetClasses = {\n normal: navClass,\n color: colorClass\n };\n var tickedClass = 'tox-collection__item--enabled';\n var groupHeadingClass = 'tox-collection__group-heading';\n var iconClass = 'tox-collection__item-icon';\n var textClass = 'tox-collection__item-label';\n var accessoryClass = 'tox-collection__item-accessory';\n var caretClass = 'tox-collection__item-caret';\n var checkmarkClass = 'tox-collection__item-checkmark';\n var activeClass = 'tox-collection__item--active';\n var iconClassRtl = 'tox-collection__item-icon-rtl';\n var classForPreset = function (presets) {\n return readOptFrom$1(presetClasses, presets).getOr(navClass);\n };\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var convertText = function (source) {\n var mac = {\n alt: '&#x2325;',\n ctrl: '&#x2303;',\n shift: '&#x21E7;',\n meta: '&#x2318;',\n access: '&#x2303;&#x2325;'\n };\n var other = {\n meta: 'Ctrl',\n access: 'Shift+Alt'\n };\n var replace = global$6.mac ? mac : other;\n var shortcut = source.split('+');\n var updated = map(shortcut, function (segment) {\n var search = segment.toLowerCase().trim();\n return has(replace, search) ? replace[search] : segment;\n });\n return global$6.mac ? updated.join('') : updated.join('+');\n };\n var ConvertShortcut = { convertText: convertText };\n\n var renderIcon = function (iconHtml) {\n return {\n dom: {\n tag: 'div',\n classes: [iconClass],\n innerHtml: iconHtml\n }\n };\n };\n var renderText = function (text$1) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text(global$5.translate(text$1))]\n };\n };\n var renderHtml = function (html) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass],\n innerHtml: html\n }\n };\n };\n var renderStyledText = function (style, text$1) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [{\n dom: {\n tag: style.tag,\n attributes: { style: style.styleAttr }\n },\n components: [text(global$5.translate(text$1))]\n }]\n };\n };\n var renderShortcut = function (shortcut) {\n return {\n dom: {\n tag: 'div',\n classes: [accessoryClass],\n innerHtml: ConvertShortcut.convertText(shortcut)\n }\n };\n };\n var renderCheckmark = function (icons) {\n return {\n dom: {\n tag: 'div',\n classes: [\n iconClass,\n checkmarkClass\n ],\n innerHtml: get$c('checkmark', icons)\n }\n };\n };\n var renderSubmenuCaret = function (icons) {\n return {\n dom: {\n tag: 'div',\n classes: [caretClass],\n innerHtml: get$c('chevron-right', icons)\n }\n };\n };\n var renderDownwardsCaret = function (icons) {\n return {\n dom: {\n tag: 'div',\n classes: [caretClass],\n innerHtml: get$c('chevron-down', icons)\n }\n };\n };\n\n var renderColorStructure = function (itemText, itemValue, iconSvg, providerBackstage) {\n var colorPickerCommand = 'custom';\n var removeColorCommand = 'remove';\n var getDom = function () {\n var common = colorClass;\n var icon = iconSvg.getOr('');\n var title = itemText.map(function (text) {\n return ' title=\"' + providerBackstage.translate(text) + '\"';\n }).getOr('');\n if (itemValue === colorPickerCommand) {\n return fromHtml$2('<button class=\"' + common + ' tox-swatches__picker-btn\"' + title + '>' + icon + '</button>');\n } else if (itemValue === removeColorCommand) {\n return fromHtml$2('<div class=\"' + common + ' tox-swatch--remove\"' + title + '>' + icon + '</div>');\n } else {\n return fromHtml$2('<div class=\"' + common + '\" style=\"background-color: ' + itemValue + '\" data-mce-color=\"' + itemValue + '\"' + title + '></div>');\n }\n };\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n var renderNormalItemStructure = function (info, icon, renderIcons, textRender, rtlClass) {\n var leftIcon = renderIcons ? info.checkMark.orThunk(function () {\n return icon.or(Option.some('')).map(renderIcon);\n }) : Option.none();\n var domTitle = info.ariaLabel.map(function (label) {\n return { attributes: { title: global$5.translate(label) } };\n }).getOr({});\n var dom = merge({\n tag: 'div',\n classes: [\n navClass,\n selectableClass\n ].concat(rtlClass ? [iconClassRtl] : [])\n }, domTitle);\n var content = info.htmlContent.fold(function () {\n return info.textContent.map(textRender);\n }, function (html) {\n return Option.some(renderHtml(html));\n });\n var menuItem = {\n dom: dom,\n optComponents: [\n leftIcon,\n content,\n info.shortcutContent.map(renderShortcut),\n info.caret\n ]\n };\n return menuItem;\n };\n var rtlIcon = [\n 'list-num-default',\n 'list-num-lower-alpha',\n 'list-num-lower-greek',\n 'list-num-lower-roman',\n 'list-num-upper-alpha',\n 'list-num-upper-roman'\n ];\n var rtlTransform = [\n 'list-bull-circle',\n 'list-bull-default',\n 'list-bull-square'\n ];\n var renderItemStructure = function (info, providersBackstage, renderIcons, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Option.none();\n }\n var getIconName = function (iconName) {\n return iconName.map(function (name) {\n return global$5.isRtl() && contains(rtlIcon, name) ? name + '-rtl' : name;\n });\n };\n var needRtlClass = global$5.isRtl() && info.iconContent.exists(function (name) {\n return contains(rtlTransform, name);\n });\n var icon = getIconName(info.iconContent).map(function (iconName) {\n return getOr(iconName, providersBackstage.icons, fallbackIcon);\n });\n var textRender = Option.from(info.meta).fold(function () {\n return renderText;\n }, function (meta) {\n return has(meta, 'style') ? curry(renderStyledText, meta.style) : renderText;\n });\n if (info.presets === 'color') {\n return renderColorStructure(info.ariaLabel, info.value, icon, providersBackstage);\n } else {\n return renderNormalItemStructure(info, icon, renderIcons, textRender, needRtlClass);\n }\n };\n\n var nativeDisabled = [\n 'input',\n 'button',\n 'textarea',\n 'select'\n ];\n var onLoad$5 = function (component, disableConfig, disableState) {\n if (disableConfig.disabled) {\n disable(component, disableConfig);\n }\n };\n var hasNative = function (component, config) {\n return config.useNative === true && contains(nativeDisabled, name(component.element()));\n };\n var nativeIsDisabled = function (component) {\n return has$1(component.element(), 'disabled');\n };\n var nativeDisable = function (component) {\n set$1(component.element(), 'disabled', 'disabled');\n };\n var nativeEnable = function (component) {\n remove$1(component.element(), 'disabled');\n };\n var ariaIsDisabled = function (component) {\n return get$2(component.element(), 'aria-disabled') === 'true';\n };\n var ariaDisable = function (component) {\n set$1(component.element(), 'aria-disabled', 'true');\n };\n var ariaEnable = function (component) {\n set$1(component.element(), 'aria-disabled', 'false');\n };\n var disable = function (component, disableConfig, disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n add$2(component.element(), disableClass);\n });\n var f = hasNative(component, disableConfig) ? nativeDisable : ariaDisable;\n f(component);\n disableConfig.onDisabled(component);\n };\n var enable = function (component, disableConfig, disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n remove$4(component.element(), disableClass);\n });\n var f = hasNative(component, disableConfig) ? nativeEnable : ariaEnable;\n f(component);\n disableConfig.onEnabled(component);\n };\n var isDisabled = function (component, disableConfig) {\n return hasNative(component, disableConfig) ? nativeIsDisabled(component) : ariaIsDisabled(component);\n };\n var set$7 = function (component, disableConfig, disableState, disabled) {\n var f = disabled ? disable : enable;\n f(component, disableConfig, disableState);\n };\n\n var DisableApis = /*#__PURE__*/Object.freeze({\n enable: enable,\n disable: disable,\n isDisabled: isDisabled,\n onLoad: onLoad$5,\n set: set$7\n });\n\n var exhibit$3 = function (base, disableConfig, disableState) {\n return nu$6({ classes: disableConfig.disabled ? disableConfig.disableClass.map(pure).getOr([]) : [] });\n };\n var events$9 = function (disableConfig, disableState) {\n return derive([\n abort(execute(), function (component, simulatedEvent) {\n return isDisabled(component, disableConfig);\n }),\n loadEvent(disableConfig, disableState, onLoad$5)\n ]);\n };\n\n var ActiveDisable = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$3,\n events: events$9\n });\n\n var DisableSchema = [\n defaulted$1('disabled', false),\n defaulted$1('useNative', true),\n option('disableClass'),\n onHandler('onDisabled'),\n onHandler('onEnabled')\n ];\n\n var Disabling = create$1({\n fields: DisableSchema,\n name: 'disabling',\n active: ActiveDisable,\n apis: DisableApis\n });\n\n var item = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-collection__item--state-disabled'\n });\n };\n var button = function (disabled) {\n return Disabling.config({ disabled: disabled });\n };\n var splitButton = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled'\n });\n };\n var toolbarButton = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled',\n useNative: false\n });\n };\n var DisablingConfigs = {\n item: item,\n button: button,\n splitButton: splitButton,\n toolbarButton: toolbarButton\n };\n\n var runWithApi = function (info, comp) {\n var api = info.getApi(comp);\n return function (f) {\n f(api);\n };\n };\n var onControlAttached = function (info, editorOffCell) {\n return runOnAttached(function (comp) {\n var run = runWithApi(info, comp);\n run(function (api) {\n var onDestroy = info.onSetup(api);\n if (onDestroy !== null && onDestroy !== undefined) {\n editorOffCell.set(onDestroy);\n }\n });\n });\n };\n var onControlDetached = function (getApi, editorOffCell) {\n return runOnDetached(function (comp) {\n return runWithApi(getApi, comp)(editorOffCell.get());\n });\n };\n\n var ItemResponse;\n (function (ItemResponse) {\n ItemResponse[ItemResponse['CLOSE_ON_EXECUTE'] = 0] = 'CLOSE_ON_EXECUTE';\n ItemResponse[ItemResponse['BUBBLE_TO_SANDBOX'] = 1] = 'BUBBLE_TO_SANDBOX';\n }(ItemResponse || (ItemResponse = {})));\n var ItemResponse$1 = ItemResponse;\n\n var onMenuItemExecute = function (info, itemResponse) {\n return runOnExecute(function (comp, simulatedEvent) {\n runWithApi(info, comp)(info.onAction);\n if (!info.triggersSubmenu && itemResponse === ItemResponse$1.CLOSE_ON_EXECUTE) {\n emit(comp, sandboxClose());\n simulatedEvent.stop();\n }\n });\n };\n var menuItemEventOrder = {\n 'alloy.execute': [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'item-events'\n ]\n };\n\n var componentRenderPipeline = function (xs) {\n return bind(xs, function (o) {\n return o.toArray();\n });\n };\n var renderCommonItem = function (spec, structure, itemResponse) {\n var editorOffCell = Cell(noop);\n return {\n type: 'item',\n dom: structure.dom,\n components: componentRenderPipeline(structure.optComponents),\n data: spec.data,\n eventOrder: menuItemEventOrder,\n hasSubmenu: spec.triggersSubmenu,\n itemBehaviours: derive$1([\n config('item-events', [\n onMenuItemExecute(spec, itemResponse),\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n DisablingConfigs.item(spec.disabled),\n Replacing.config({})\n ].concat(spec.itemBehaviours))\n };\n };\n var buildData = function (source) {\n return {\n value: source.value,\n meta: merge({ text: source.text.getOr('') }, source.meta)\n };\n };\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var tooltipBehaviour = function (meta, sharedBackstage) {\n return get(meta, 'tooltipWorker').map(function (tooltipWorker) {\n return [Tooltipping.config({\n lazySink: sharedBackstage.getSink,\n tooltipDom: {\n tag: 'div',\n classes: ['tox-tooltip-worker-container']\n },\n tooltipComponents: [],\n anchor: function (comp) {\n return {\n anchor: 'submenu',\n item: comp,\n overrides: { maxHeightFunction: expandable }\n };\n },\n mode: 'follow-highlight',\n onShow: function (component, _tooltip) {\n tooltipWorker(function (elm) {\n Tooltipping.setComponents(component, [external({ element: Element.fromDom(elm) })]);\n });\n }\n })];\n }).getOr([]);\n };\n var escapeRegExp = function (text) {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n };\n var encodeText = function (text) {\n return global$7.DOM.encode(text);\n };\n var replaceText = function (text, matchText) {\n var translated = global$5.translate(text);\n var encoded = encodeText(translated);\n if (matchText.length > 0) {\n var escapedMatchRegex = new RegExp(escapeRegExp(matchText), 'gi');\n return encoded.replace(escapedMatchRegex, function (match) {\n return '<span class=\"tox-autocompleter-highlight\">' + match + '</span>';\n });\n } else {\n return encoded;\n }\n };\n var renderAutocompleteItem = function (spec, matchText, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var structure = renderItemStructure({\n presets: presets,\n textContent: Option.none(),\n htmlContent: useText ? spec.text.map(function (text) {\n return replaceText(text, matchText);\n }) : Option.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: Option.none(),\n checkMark: Option.none(),\n caret: Option.none(),\n value: spec.value\n }, sharedBackstage.providers, renderIcons, spec.icon);\n return renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: function () {\n return {};\n },\n onAction: function (_api) {\n return onItemValueHandler(spec.value, spec.meta);\n },\n onSetup: function () {\n return function () {\n };\n },\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec.meta, sharedBackstage)\n }, structure, itemResponse);\n };\n\n var renderChoiceItem = function (spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage) {\n var getApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: presets,\n textContent: useText ? spec.text : Option.none(),\n htmlContent: Option.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: useText ? spec.shortcut : Option.none(),\n checkMark: useText ? Option.some(renderCheckmark(providersBackstage.icons)) : Option.none(),\n caret: Option.none(),\n value: spec.value\n }, providersBackstage, true);\n return deepMerge(renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: function (_api) {\n return onItemValueHandler(spec.value);\n },\n onSetup: function (api) {\n api.setActive(isSelected);\n return function () {\n };\n },\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n\n var parts$2 = constant(generate$4(owner$2(), parts()));\n\n var cellOverEvent = generate$1('cell-over');\n var cellExecuteEvent = generate$1('cell-execute');\n var makeCell = function (row, col, labelId) {\n var _a;\n var emitCellOver = function (c) {\n return emitWith(c, cellOverEvent, {\n row: row,\n col: col\n });\n };\n var emitExecute = function (c) {\n return emitWith(c, cellExecuteEvent, {\n row: row,\n col: col\n });\n };\n return build$1({\n dom: {\n tag: 'div',\n attributes: (_a = { role: 'button' }, _a['aria-labelledby'] = labelId, _a)\n },\n behaviours: derive$1([\n config('insert-table-picker-cell', [\n run(mouseover(), Focusing.focus),\n run(execute(), emitExecute),\n run(tapOrClick(), function (c, se) {\n se.stop();\n emitExecute(c);\n })\n ]),\n Toggling.config({\n toggleClass: 'tox-insert-table-picker__selected',\n toggleOnExecute: false\n }),\n Focusing.config({ onFocus: emitCellOver })\n ])\n });\n };\n var makeCells = function (labelId, numRows, numCols) {\n var cells = [];\n for (var i = 0; i < numRows; i++) {\n var row = [];\n for (var j = 0; j < numCols; j++) {\n row.push(makeCell(i, j, labelId));\n }\n cells.push(row);\n }\n return cells;\n };\n var selectCells = function (cells, selectedRow, selectedColumn, numRows, numColumns) {\n for (var i = 0; i < numRows; i++) {\n for (var j = 0; j < numColumns; j++) {\n Toggling.set(cells[i][j], i <= selectedRow && j <= selectedColumn);\n }\n }\n };\n var makeComponents = function (cells) {\n return bind(cells, function (cellRow) {\n return map(cellRow, premade$1);\n });\n };\n var makeLabelText = function (row, col) {\n return text(col + 1 + 'x' + (row + 1));\n };\n function renderInsertTableMenuItem(spec) {\n var numRows = 10;\n var numColumns = 10;\n var sizeLabelId = generate$1('size-label');\n var cells = makeCells(sizeLabelId, numRows, numColumns);\n var memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label'],\n attributes: { id: sizeLabelId }\n },\n components: [text('0x0')],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: { value: generate$1('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$2().widget({\n dom: {\n tag: 'div',\n classes: ['tox-insert-table-picker']\n },\n components: makeComponents(cells).concat(memLabel.asSpec()),\n behaviours: derive$1([\n config('insert-table-picker', [\n runWithTarget(cellOverEvent, function (c, t, e) {\n var row = e.event().row();\n var col = e.event().col();\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row, col)]);\n }),\n runWithTarget(cellExecuteEvent, function (c, _, e) {\n spec.onAction({\n numRows: e.event().row() + 1,\n numColumns: e.event().col() + 1\n });\n emit(c, sandboxClose());\n })\n ]),\n Keying.config({\n initSize: {\n numRows: numRows,\n numColumns: numColumns\n },\n mode: 'flatgrid',\n selector: '[role=\"button\"]'\n })\n ])\n })]\n };\n }\n\n var hexColour = function (hexString) {\n return { value: constant(hexString) };\n };\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n var isHexString = function (hex) {\n return shorthandRegex.test(hex) || longformRegex.test(hex);\n };\n var getLongForm = function (hex) {\n var hexString = hex.value().replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n return { value: constant(hexString) };\n };\n var extractValues = function (hex) {\n var longForm = getLongForm(hex);\n var splitForm = longformRegex.exec(longForm.value());\n return splitForm === null ? [\n 'FFFFFF',\n 'FF',\n 'FF',\n 'FF'\n ] : splitForm;\n };\n var toHex = function (component) {\n var hex = component.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n };\n var fromRgba = function (rgbaColour) {\n var value = toHex(rgbaColour.red()) + toHex(rgbaColour.green()) + toHex(rgbaColour.blue());\n return hexColour(value);\n };\n\n var min = Math.min;\n var max = Math.max;\n var round = Math.round;\n var rgbRegex = /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/;\n var rgbaRegex = /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d?(?:\\.\\d+)?)\\)/;\n var rgbaColour = function (red, green, blue, alpha) {\n return {\n red: constant(red),\n green: constant(green),\n blue: constant(blue),\n alpha: constant(alpha)\n };\n };\n var isRgbaComponent = function (value) {\n var num = parseInt(value, 10);\n return num.toString() === value && num >= 0 && num <= 255;\n };\n var fromHsv = function (hsv) {\n var r;\n var g;\n var b;\n var hue = (hsv.hue() || 0) % 360;\n var saturation = hsv.saturation() / 100;\n var brightness = hsv.value() / 100;\n saturation = max(0, min(saturation, 1));\n brightness = max(0, min(brightness, 1));\n if (saturation === 0) {\n r = g = b = round(255 * brightness);\n return rgbaColour(r, g, b, 1);\n }\n var side = hue / 60;\n var chroma = brightness * saturation;\n var x = chroma * (1 - Math.abs(side % 2 - 1));\n var match = brightness - chroma;\n switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n default:\n r = g = b = 0;\n }\n r = round(255 * (r + match));\n g = round(255 * (g + match));\n b = round(255 * (b + match));\n return rgbaColour(r, g, b, 1);\n };\n var fromHex = function (hexColour) {\n var result = extractValues(hexColour);\n var red = parseInt(result[1], 16);\n var green = parseInt(result[2], 16);\n var blue = parseInt(result[3], 16);\n return rgbaColour(red, green, blue, 1);\n };\n var fromStringValues = function (red, green, blue, alpha) {\n var r = parseInt(red, 10);\n var g = parseInt(green, 10);\n var b = parseInt(blue, 10);\n var a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n var fromString = function (rgbaString) {\n if (rgbaString === 'transparent') {\n return Option.some(rgbaColour(0, 0, 0, 0));\n }\n var rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Option.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n var rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Option.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Option.none();\n };\n var toString = function (rgba) {\n return 'rgba(' + rgba.red() + ',' + rgba.green() + ',' + rgba.blue() + ',' + rgba.alpha() + ')';\n };\n var redColour = constant(rgbaColour(255, 0, 0, 1));\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n\n var storageName = 'tinymce-custom-colors';\n function ColorCache (max) {\n if (max === void 0) {\n max = 10;\n }\n var storageString = global$8.getItem(storageName);\n var localstorage = isString(storageString) ? JSON.parse(storageString) : [];\n var prune = function (list) {\n var diff = max - list.length;\n return diff < 0 ? list.slice(0, max) : list;\n };\n var cache = prune(localstorage);\n var add = function (key) {\n indexOf(cache, key).each(remove);\n cache.unshift(key);\n if (cache.length > max) {\n cache.pop();\n }\n global$8.setItem(storageName, JSON.stringify(cache));\n };\n var remove = function (idx) {\n cache.splice(idx, 1);\n };\n var state = function () {\n return cache.slice(0);\n };\n return {\n add: add,\n state: state\n };\n }\n\n var choiceItem = 'choiceitem';\n var defaultColors = [\n {\n type: choiceItem,\n text: 'Light Green',\n value: '#BFEDD2'\n },\n {\n type: choiceItem,\n text: 'Light Yellow',\n value: '#FBEEB8'\n },\n {\n type: choiceItem,\n text: 'Light Red',\n value: '#F8CAC6'\n },\n {\n type: choiceItem,\n text: 'Light Purple',\n value: '#ECCAFA'\n },\n {\n type: choiceItem,\n text: 'Light Blue',\n value: '#C2E0F4'\n },\n {\n type: choiceItem,\n text: 'Green',\n value: '#2DC26B'\n },\n {\n type: choiceItem,\n text: 'Yellow',\n value: '#F1C40F'\n },\n {\n type: choiceItem,\n text: 'Red',\n value: '#E03E2D'\n },\n {\n type: choiceItem,\n text: 'Purple',\n value: '#B96AD9'\n },\n {\n type: choiceItem,\n text: 'Blue',\n value: '#3598DB'\n },\n {\n type: choiceItem,\n text: 'Dark Turquoise',\n value: '#169179'\n },\n {\n type: choiceItem,\n text: 'Orange',\n value: '#E67E23'\n },\n {\n type: choiceItem,\n text: 'Dark Red',\n value: '#BA372A'\n },\n {\n type: choiceItem,\n text: 'Dark Purple',\n value: '#843FA1'\n },\n {\n type: choiceItem,\n text: 'Dark Blue',\n value: '#236FA1'\n },\n {\n type: choiceItem,\n text: 'Light Gray',\n value: '#ECF0F1'\n },\n {\n type: choiceItem,\n text: 'Medium Gray',\n value: '#CED4D9'\n },\n {\n type: choiceItem,\n text: 'Gray',\n value: '#95A5A6'\n },\n {\n type: choiceItem,\n text: 'Dark Gray',\n value: '#7E8C8D'\n },\n {\n type: choiceItem,\n text: 'Navy Blue',\n value: '#34495E'\n },\n {\n type: choiceItem,\n text: 'Black',\n value: '#000000'\n },\n {\n type: choiceItem,\n text: 'White',\n value: '#ffffff'\n }\n ];\n var colorCache = ColorCache(10);\n var mapColors = function (colorMap) {\n var colors = [];\n var canvas = domGlobals.document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n var ctx = canvas.getContext('2d');\n var byteAsHex = function (colorByte, alphaByte) {\n var bg = 255;\n var alpha = alphaByte / 255;\n var colorByteWithWhiteBg = Math.round(colorByte * alpha + bg * (1 - alpha));\n return ('0' + colorByteWithWhiteBg.toString(16)).slice(-2).toUpperCase();\n };\n var asHexColor = function (color) {\n if (/^[0-9A-Fa-f]{6}$/.test(color)) {\n return '#' + color.toUpperCase();\n }\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = '#FFFFFF';\n ctx.fillStyle = color;\n ctx.fillRect(0, 0, 1, 1);\n var rgba = ctx.getImageData(0, 0, 1, 1).data;\n var r = rgba[0], g = rgba[1], b = rgba[2], a = rgba[3];\n return '#' + byteAsHex(r, a) + byteAsHex(g, a) + byteAsHex(b, a);\n };\n for (var i = 0; i < colorMap.length; i += 2) {\n colors.push({\n text: colorMap[i + 1],\n value: asHexColor(colorMap[i]),\n type: 'choiceitem'\n });\n }\n return colors;\n };\n var getColorCols = function (editor, defaultCols) {\n return editor.getParam('color_cols', defaultCols, 'number');\n };\n var hasCustomColors = function (editor) {\n return editor.getParam('custom_colors') !== false;\n };\n var getColorMap = function (editor) {\n return editor.getParam('color_map');\n };\n var getColors = function (editor) {\n var unmapped = getColorMap(editor);\n return unmapped !== undefined ? mapColors(unmapped) : defaultColors;\n };\n var getCurrentColors = function () {\n return map(colorCache.state(), function (color) {\n return {\n type: choiceItem,\n text: color,\n value: color\n };\n });\n };\n var addColor = function (color) {\n colorCache.add(color);\n };\n var Settings = {\n mapColors: mapColors,\n getColorCols: getColorCols,\n hasCustomColors: hasCustomColors,\n getColorMap: getColorMap,\n getColors: getColors,\n getCurrentColors: getCurrentColors,\n addColor: addColor\n };\n\n var fireSkinLoaded = function (editor) {\n return editor.fire('SkinLoaded');\n };\n var fireResizeEditor = function (editor) {\n return editor.fire('ResizeEditor');\n };\n var fireBeforeRenderUI = function (editor) {\n return editor.fire('BeforeRenderUI');\n };\n var fireResizeContent = function (editor, e) {\n return editor.fire('ResizeContent', e);\n };\n var fireScrollContent = function (editor, e) {\n return editor.fire('ScrollContent', e);\n };\n var fireTextColorChange = function (editor, data) {\n return editor.fire('TextColorChange', data);\n };\n var Events = {\n fireSkinLoaded: fireSkinLoaded,\n fireResizeEditor: fireResizeEditor,\n fireScrollContent: fireScrollContent,\n fireBeforeRenderUI: fireBeforeRenderUI,\n fireResizeContent: fireResizeContent,\n fireTextColorChange: fireTextColorChange\n };\n\n var getCurrentColor = function (editor, format) {\n var color;\n editor.dom.getParents(editor.selection.getStart(), function (elm) {\n var value;\n if (value = elm.style[format === 'forecolor' ? 'color' : 'background-color']) {\n color = color ? color : value;\n }\n });\n return color;\n };\n var applyFormat = function (editor, format, value) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.apply(format, { value: value });\n editor.nodeChanged();\n });\n };\n var removeFormat = function (editor, format) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.remove(format, { value: null }, null, true);\n editor.nodeChanged();\n });\n };\n var registerCommands = function (editor) {\n editor.addCommand('mceApplyTextcolor', function (format, value) {\n applyFormat(editor, format, value);\n });\n editor.addCommand('mceRemoveTextcolor', function (format) {\n removeFormat(editor, format);\n });\n };\n var calcCols = function (colors) {\n return Math.max(5, Math.ceil(Math.sqrt(colors)));\n };\n var getColorCols$1 = function (editor) {\n var colors = Settings.getColors(editor);\n var defaultCols = calcCols(colors.length);\n return Settings.getColorCols(editor, defaultCols);\n };\n var getAdditionalColors = function (hasCustom) {\n var type = 'choiceitem';\n var remove = {\n type: type,\n text: 'Remove color',\n icon: 'color-swatch-remove-color',\n value: 'remove'\n };\n var custom = {\n type: type,\n text: 'Custom color',\n icon: 'color-picker',\n value: 'custom'\n };\n return hasCustom ? [\n remove,\n custom\n ] : [remove];\n };\n var applyColor = function (editor, format, value, onChoice) {\n if (value === 'custom') {\n var dialog = colorPickerDialog(editor);\n dialog(function (colorOpt) {\n colorOpt.each(function (color) {\n Settings.addColor(color);\n editor.execCommand('mceApplyTextcolor', format, color);\n onChoice(color);\n });\n }, '#000000');\n } else if (value === 'remove') {\n onChoice('');\n editor.execCommand('mceRemoveTextcolor', format);\n } else {\n onChoice(value);\n editor.execCommand('mceApplyTextcolor', format, value);\n }\n };\n var getMenuColors = function (colors, hasCustom) {\n return colors.concat(Settings.getCurrentColors().concat(getAdditionalColors(hasCustom)));\n };\n var getFetch = function (colors, hasCustom) {\n return function (callback) {\n callback(getMenuColors(colors, hasCustom));\n };\n };\n var setIconColor = function (splitButtonApi, name, newColor) {\n var setIconFillAndStroke = function (pathId, color) {\n splitButtonApi.setIconFill(pathId, color);\n splitButtonApi.setIconStroke(pathId, color);\n };\n var id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n setIconFillAndStroke(id, newColor);\n };\n var registerTextColorButton = function (editor, name, format, tooltip, lastColor) {\n editor.ui.registry.addSplitButton(name, {\n tooltip: tooltip,\n presets: 'color',\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n select: function (value) {\n var optCurrentRgb = Option.from(getCurrentColor(editor, format));\n return optCurrentRgb.bind(function (currentRgb) {\n return fromString(currentRgb).map(function (rgba) {\n var currentHex = fromRgba(rgba).value();\n return contains$1(value.toLowerCase(), currentHex);\n });\n }).getOr(false);\n },\n columns: getColorCols$1(editor),\n fetch: getFetch(Settings.getColors(editor), Settings.hasCustomColors(editor)),\n onAction: function (splitButtonApi) {\n if (lastColor.get() !== null) {\n applyColor(editor, format, lastColor.get(), function () {\n });\n }\n },\n onItemAction: function (splitButtonApi, value) {\n applyColor(editor, format, value, function (newColor) {\n lastColor.set(newColor);\n Events.fireTextColorChange(editor, {\n name: name,\n color: newColor\n });\n });\n },\n onSetup: function (splitButtonApi) {\n if (lastColor.get() !== null) {\n setIconColor(splitButtonApi, name, lastColor.get());\n }\n var handler = function (e) {\n if (e.name === name) {\n setIconColor(splitButtonApi, e.name, e.color);\n }\n };\n editor.on('TextColorChange', handler);\n return function () {\n editor.off('TextColorChange', handler);\n };\n }\n });\n };\n var registerTextColorMenuItem = function (editor, name, format, text) {\n editor.ui.registry.addNestedMenuItem(name, {\n text: text,\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n getSubmenuItems: function () {\n return [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n onAction: function (data) {\n applyColor(editor, format, data.value, noop);\n }\n }];\n }\n });\n };\n var colorPickerDialog = function (editor) {\n return function (callback, value) {\n var getOnSubmit = function (callback) {\n return function (api) {\n var data = api.getData();\n callback(Option.from(data.colorpicker));\n api.close();\n };\n };\n var onAction = function (api, details) {\n if (details.name === 'hex-valid') {\n if (details.value) {\n api.enable('ok');\n } else {\n api.disable('ok');\n }\n }\n };\n var initialData = { colorpicker: value };\n var submit = getOnSubmit(callback);\n editor.windowManager.open({\n title: 'Color Picker',\n size: 'normal',\n body: {\n type: 'panel',\n items: [{\n type: 'colorpicker',\n name: 'colorpicker',\n label: 'Color'\n }]\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: initialData,\n onAction: onAction,\n onSubmit: submit,\n onClose: function () {\n },\n onCancel: function () {\n callback(Option.none());\n }\n });\n };\n };\n var register$1 = function (editor) {\n registerCommands(editor);\n var lastForeColor = Cell(null);\n var lastBackColor = Cell(null);\n registerTextColorButton(editor, 'forecolor', 'forecolor', 'Text color', lastForeColor);\n registerTextColorButton(editor, 'backcolor', 'hilitecolor', 'Background color', lastBackColor);\n registerTextColorMenuItem(editor, 'forecolor', 'forecolor', 'Text color');\n registerTextColorMenuItem(editor, 'backcolor', 'hilitecolor', 'Background color');\n };\n var ColorSwatch = {\n register: register$1,\n getColors: getMenuColors,\n getFetch: getFetch,\n colorPickerDialog: colorPickerDialog,\n getCurrentColor: getCurrentColor,\n getColorCols: getColorCols$1,\n calcCols: calcCols\n };\n\n var chunk$1 = function (rowDom, numColumns) {\n return function (items) {\n var chunks = chunk(items, numColumns);\n return map(chunks, function (c) {\n return {\n dom: rowDom,\n components: c\n };\n });\n };\n };\n var forSwatch = function (columns) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-swatches-menu'\n ]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-swatches']\n },\n components: [Menu.parts().items({\n preprocess: columns !== 'auto' ? chunk$1({\n tag: 'div',\n classes: ['tox-swatches__row']\n }, columns) : identity\n })]\n }]\n };\n };\n var forToolbar = function (columns) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection',\n 'tox-collection--toolbar',\n 'tox-collection--toolbar-lg'\n ]\n },\n components: [Menu.parts().items({\n preprocess: chunk$1({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)\n })]\n };\n };\n var preprocessCollection = function (items, isSeparator) {\n var allSplits = [];\n var currentSplit = [];\n each(items, function (item, i) {\n if (isSeparator(item, i)) {\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n currentSplit = [];\n if (has(item.dom, 'innerHtml')) {\n currentSplit.push(item);\n }\n } else {\n currentSplit.push(item);\n }\n });\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n return map(allSplits, function (s) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-collection__group']\n },\n components: s\n };\n });\n };\n var forCollection = function (columns, initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection'\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [Menu.parts().items({\n preprocess: function (items) {\n if (columns !== 'auto' && columns > 1) {\n return chunk$1({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)(items);\n } else {\n return preprocessCollection(items, function (_item, i) {\n return initItems[i].type === 'separator';\n });\n }\n }\n })]\n };\n };\n var forHorizontalCollection = function (initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-collection',\n 'tox-collection--horizontal'\n ]\n },\n components: [Menu.parts().items({\n preprocess: function (items) {\n return preprocessCollection(items, function (_item, i) {\n return initItems[i].type === 'separator';\n });\n }\n })]\n };\n };\n\n var forMenu = function (presets) {\n if (presets === 'color') {\n return 'tox-swatches';\n } else {\n return 'tox-menu';\n }\n };\n var classes = function (presets) {\n return {\n backgroundMenu: 'tox-background-menu',\n selectedMenu: 'tox-selected-menu',\n selectedItem: 'tox-collection__item--active',\n hasIcons: 'tox-menu--has-icons',\n menu: forMenu(presets),\n tieredMenu: 'tox-tiered-menu'\n };\n };\n\n var markers$1 = function (presets) {\n var menuClasses = classes(presets);\n return {\n backgroundMenu: menuClasses.backgroundMenu,\n selectedMenu: menuClasses.selectedMenu,\n menu: menuClasses.menu,\n selectedItem: menuClasses.selectedItem,\n item: classForPreset(presets)\n };\n };\n var dom$1 = function (hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n return {\n tag: 'div',\n classes: flatten([\n [\n menuClasses.menu,\n 'tox-menu-' + columns + '-column'\n ],\n hasIcons ? [menuClasses.hasIcons] : []\n ])\n };\n };\n var components$1 = [Menu.parts().items({})];\n var part = function (hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n var d = {\n tag: 'div',\n classes: flatten([[menuClasses.tieredMenu]])\n };\n return {\n dom: d,\n markers: markers$1(presets)\n };\n };\n\n var hasIcon = function (item) {\n return item.icon !== undefined || item.type === 'togglemenuitem' || item.type === 'choicemenuitem';\n };\n var menuHasIcons = function (xs) {\n return exists(xs, hasIcon);\n };\n var handleError = function (error) {\n domGlobals.console.error(formatError(error));\n domGlobals.console.log(error);\n return Option.none();\n };\n var createHorizontalPartialMenuWithAlloyItems = function (value, _hasIcons, items, _columns, _presets) {\n var structure = forHorizontalCollection(items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n };\n var createPartialMenuWithAlloyItems = function (value, hasIcons, items, columns, presets) {\n if (presets === 'color') {\n var structure = forSwatch(columns);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal' && columns === 'auto') {\n var structure = forCollection(columns, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal' && columns === 1) {\n var structure = forCollection(1, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal') {\n var structure = forCollection(columns, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'listpreview' && columns !== 'auto') {\n var structure = forToolbar(columns);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n return {\n value: value,\n dom: dom$1(hasIcons, columns, presets),\n components: components$1,\n items: items\n };\n };\n\n var createPartialChoiceMenu = function (value, items, onItemValueHandler, columns, presets, itemResponse, select, providersBackstage) {\n var hasIcons = menuHasIcons(items);\n var presetItemTypes = presets !== 'color' ? 'normal' : 'color';\n var alloyItems = createChoiceItems(items, onItemValueHandler, columns, presetItemTypes, itemResponse, select, providersBackstage);\n return createPartialMenuWithAlloyItems(value, hasIcons, alloyItems, columns, presets);\n };\n var createChoiceItems = function (items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) {\n return cat(map(items, function (item) {\n if (item.type === 'choiceitem') {\n return createChoiceMenuItem(item).fold(handleError, function (d) {\n return Option.some(renderChoiceItem(d, columns === 1, itemPresets, onItemValueHandler, select(item.value), itemResponse, providersBackstage));\n });\n } else {\n return Option.none();\n }\n }));\n };\n\n var deriveMenuMovement = function (columns, presets) {\n var menuMarkers = markers$1(presets);\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: true\n };\n } else if (columns === 'auto') {\n return {\n mode: 'grid',\n selector: '.' + menuMarkers.item,\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n var rowClass = presets === 'color' ? 'tox-swatches__row' : 'tox-collection__group';\n return {\n mode: 'matrix',\n rowSelector: '.' + rowClass\n };\n }\n };\n var deriveCollectionMovement = function (columns, presets) {\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: false,\n selector: '.tox-collection__item'\n };\n } else if (columns === 'auto') {\n return {\n mode: 'flatgrid',\n selector: '.' + 'tox-collection__item',\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n return {\n mode: 'matrix',\n selectors: {\n row: presets === 'color' ? '.tox-swatches__row' : '.tox-collection__group',\n cell: presets === 'color' ? '.' + colorClass : '.' + selectableClass\n }\n };\n }\n };\n\n function renderColorSwatchItem(spec, backstage) {\n var items = ColorSwatch.getColors(backstage.colorinput.getColors(), backstage.colorinput.hasCustomColors());\n var columns = backstage.colorinput.getColorCols();\n var presets = 'color';\n var menuSpec = createPartialChoiceMenu(generate$1('menu-value'), items, function (value) {\n spec.onAction({ value: value });\n }, columns, presets, ItemResponse$1.CLOSE_ON_EXECUTE, function () {\n return false;\n }, backstage.shared.providers);\n var widgetSpec = deepMerge(__assign(__assign({}, menuSpec), {\n markers: markers$1(presets),\n movement: deriveMenuMovement(columns, presets)\n }));\n return {\n type: 'widget',\n data: { value: generate$1('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$2().widget(Menu.sketch(widgetSpec))]\n };\n }\n\n var fancyMenuItems = {\n inserttable: renderInsertTableMenuItem,\n colorswatch: renderColorSwatchItem\n };\n var valueOpt = function (obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key) ? Option.some(obj[key]) : Option.none();\n };\n var renderFancyMenuItem = function (spec, backstage) {\n return valueOpt(fancyMenuItems, spec.fancytype).map(function (render) {\n return render(spec, backstage);\n });\n };\n\n var renderNormalItem = function (spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Option.none(),\n ariaLabel: spec.text,\n caret: Option.none(),\n checkMark: Option.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n data: buildData(spec),\n getApi: getApi,\n disabled: spec.disabled,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse);\n };\n\n var renderNestedItem = function (spec, itemResponse, providersBackstage, renderIcons, downwardsCaret) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n if (downwardsCaret === void 0) {\n downwardsCaret = false;\n }\n var caret = downwardsCaret ? renderDownwardsCaret(providersBackstage.icons) : renderSubmenuCaret(providersBackstage.icons);\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Option.none(),\n ariaLabel: spec.text,\n caret: Option.some(caret),\n checkMark: Option.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n data: buildData(spec),\n getApi: getApi,\n disabled: spec.disabled,\n onAction: noop,\n onSetup: spec.onSetup,\n triggersSubmenu: true,\n itemBehaviours: []\n }, structure, itemResponse);\n };\n\n var renderSeparatorItem = function (spec) {\n var innerHtml = spec.text.fold(function () {\n return {};\n }, function (text) {\n return { innerHtml: text };\n });\n return {\n type: 'separator',\n dom: __assign({\n tag: 'div',\n classes: [\n selectableClass,\n groupHeadingClass\n ]\n }, innerHtml),\n components: []\n };\n };\n\n var renderToggleMenuItem = function (spec, itemResponse, providersBackstage) {\n var getApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n iconContent: Option.none(),\n textContent: spec.text,\n htmlContent: Option.none(),\n ariaLabel: spec.text,\n checkMark: Option.some(renderCheckmark(providersBackstage.icons)),\n caret: Option.none(),\n shortcutContent: spec.shortcut,\n presets: 'normal',\n meta: spec.meta\n }, providersBackstage, true);\n return deepMerge(renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n\n var autocomplete = renderAutocompleteItem;\n var separator = renderSeparatorItem;\n var normal = renderNormalItem;\n var nested = renderNestedItem;\n var toggle$1 = renderToggleMenuItem;\n var fancy = renderFancyMenuItem;\n\n var FocusMode;\n (function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n }(FocusMode || (FocusMode = {})));\n var hasIcon$1 = function (item) {\n return item.icon !== undefined || item.type === 'togglemenuitem' || item.type === 'choicemenuitem';\n };\n var menuHasIcons$1 = function (xs) {\n return exists(xs, hasIcon$1);\n };\n var createMenuItemFromBridge = function (item, itemResponse, backstage, menuHasIcons, isHorizontalMenu) {\n var providersBackstage = backstage.shared.providers;\n var parseForHorizontalMenu = function (menuitem) {\n return !isHorizontalMenu ? menuitem : __assign(__assign({}, menuitem), {\n shortcut: Option.none(),\n icon: menuitem.text.isSome() ? Option.none() : menuitem.icon\n });\n };\n switch (item.type) {\n case 'menuitem':\n return createMenuItem(item).fold(handleError, function (d) {\n return Option.some(normal(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons));\n });\n case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, function (d) {\n return Option.some(nested(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons, isHorizontalMenu));\n });\n case 'togglemenuitem':\n return createToggleMenuItem(item).fold(handleError, function (d) {\n return Option.some(toggle$1(parseForHorizontalMenu(d), itemResponse, providersBackstage));\n });\n case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, function (d) {\n return Option.some(separator(d));\n });\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, function (d) {\n return fancy(parseForHorizontalMenu(d), backstage);\n });\n default: {\n domGlobals.console.error('Unknown item in general menu', item);\n return Option.none();\n }\n }\n };\n var createAutocompleteItems = function (items, matchText, onItemValueHandler, columns, itemResponse, sharedBackstage) {\n var renderText = columns === 1;\n var renderIcons = !renderText || menuHasIcons$1(items);\n return cat(map(items, function (item) {\n if (item.type === 'separator') {\n return createSeparatorItem(item).fold(handleError, function (d) {\n return Option.some(separator(d));\n });\n } else {\n return createAutocompleterItem(item).fold(handleError, function (d) {\n return Option.some(autocomplete(d, matchText, renderText, 'normal', onItemValueHandler, itemResponse, sharedBackstage, renderIcons));\n });\n }\n }));\n };\n var createPartialMenu = function (value, items, itemResponse, backstage, isHorizontalMenu) {\n var hasIcons = menuHasIcons$1(items);\n var alloyItems = cat(map(items, function (item) {\n var itemHasIcon = function (i) {\n return isHorizontalMenu ? !i.hasOwnProperty('text') : hasIcons;\n };\n var createItem = function (i) {\n return createMenuItemFromBridge(i, itemResponse, backstage, itemHasIcon(i), isHorizontalMenu);\n };\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem(merge(item, { disabled: true }));\n } else {\n return createItem(item);\n }\n }));\n var createPartial = isHorizontalMenu ? createHorizontalPartialMenuWithAlloyItems : createPartialMenuWithAlloyItems;\n return createPartial(value, hasIcons, alloyItems, 1, 'normal');\n };\n var createTieredDataFrom = function (partialMenu) {\n return tieredMenu.singleData(partialMenu.value, partialMenu);\n };\n var createMenuFrom = function (partialMenu, columns, focusMode, presets) {\n var focusManager = focusMode === FocusMode.ContentFocus ? highlights() : dom();\n var movement = deriveMenuMovement(columns, presets);\n var menuMarkers = markers$1(presets);\n return {\n dom: partialMenu.dom,\n components: partialMenu.components,\n items: partialMenu.items,\n value: partialMenu.value,\n markers: {\n selectedItem: menuMarkers.selectedItem,\n item: menuMarkers.item\n },\n movement: movement,\n fakeFocus: focusMode === FocusMode.ContentFocus,\n focusManager: focusManager,\n menuBehaviours: SimpleBehaviours.unnamedEvents(columns !== 'auto' ? [] : [runOnAttached(function (comp, se) {\n detectSize(comp, 4, menuMarkers.item).each(function (_a) {\n var numColumns = _a.numColumns, numRows = _a.numRows;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n };\n };\n\n var register$2 = function (editor, sharedBackstage) {\n var activeAutocompleter = Cell(Option.none());\n var processingAction = Cell(false);\n var autocompleter = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-autocompleter']\n },\n components: [],\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissAutocompleter', [run(dismissRequested(), function () {\n return cancelIfNecessary();\n })])]),\n lazySink: sharedBackstage.getSink\n }));\n var isMenuOpen = function () {\n return InlineView.isOpen(autocompleter);\n };\n var isActive = function () {\n return activeAutocompleter.get().isSome();\n };\n var hideIfNecessary = function () {\n if (isActive()) {\n InlineView.hide(autocompleter);\n }\n };\n var cancelIfNecessary = function () {\n if (isActive()) {\n var lastElement = activeAutocompleter.get().map(function (ac) {\n return ac.element;\n });\n detect$4(lastElement.getOr(Element.fromDom(editor.selection.getNode()))).each(unwrap);\n hideIfNecessary();\n activeAutocompleter.set(Option.none());\n processingAction.set(false);\n }\n };\n var getAutocompleters = cached(function () {\n return register(editor);\n });\n var getCombinedItems = function (triggerChar, matches) {\n var columns = findMap(matches, function (m) {\n return Option.from(m.columns);\n }).getOr(1);\n return bind(matches, function (match) {\n var choices = match.items;\n return createAutocompleteItems(choices, match.matchText, function (itemValue, itemMeta) {\n var nr = editor.selection.getRng();\n getContext(editor.dom, nr, triggerChar).fold(function () {\n return domGlobals.console.error('Lost context. Cursor probably moved');\n }, function (_a) {\n var range = _a.range;\n var autocompleterApi = {\n hide: function () {\n cancelIfNecessary();\n },\n reload: function (fetchOptions) {\n hideIfNecessary();\n load(fetchOptions);\n }\n };\n processingAction.set(true);\n match.onAction(autocompleterApi, range, itemValue, itemMeta);\n processingAction.set(false);\n });\n }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage);\n });\n };\n var commenceIfNecessary = function (context) {\n if (!isActive()) {\n var wrapper = create$4(editor, context.range);\n activeAutocompleter.set(Option.some({\n triggerChar: context.triggerChar,\n element: wrapper,\n matchLength: context.text.length\n }));\n processingAction.set(false);\n }\n };\n var display = function (ac, context, lookupData, items) {\n ac.matchLength = context.text.length;\n var columns = findMap(lookupData, function (ld) {\n return Option.from(ld.columns);\n }).getOr(1);\n InlineView.showAt(autocompleter, {\n anchor: 'node',\n root: Element.fromDom(editor.getBody()),\n node: Option.from(ac.element)\n }, Menu.sketch(createMenuFrom(createPartialMenuWithAlloyItems('autocompleter-value', true, items, columns, 'normal'), columns, FocusMode.ContentFocus, 'normal')));\n InlineView.getContent(autocompleter).each(Highlighting.highlightFirst);\n };\n var doLookup = function (fetchOptions) {\n return activeAutocompleter.get().map(function (ac) {\n return getContext(editor.dom, editor.selection.getRng(), ac.triggerChar).bind(function (newContext) {\n return lookupWithContext(editor, getAutocompleters, newContext, fetchOptions);\n });\n }).getOrThunk(function () {\n return lookup(editor, getAutocompleters);\n });\n };\n var load = function (fetchOptions) {\n doLookup(fetchOptions).fold(cancelIfNecessary, function (lookupInfo) {\n commenceIfNecessary(lookupInfo.context);\n lookupInfo.lookupData.then(function (lookupData) {\n activeAutocompleter.get().map(function (ac) {\n var context = lookupInfo.context;\n if (ac.triggerChar === context.triggerChar) {\n var combinedItems = getCombinedItems(context.triggerChar, lookupData);\n if (combinedItems.length > 0) {\n display(ac, context, lookupData, combinedItems);\n } else if (context.text.length - ac.matchLength >= 10) {\n cancelIfNecessary();\n } else {\n hideIfNecessary();\n }\n }\n });\n });\n });\n };\n var onKeypress = last$2(function (e) {\n if (e.which === 27) {\n return;\n }\n load();\n }, 50);\n var autocompleterUiApi = {\n onKeypress: onKeypress,\n cancelIfNecessary: cancelIfNecessary,\n isMenuOpen: isMenuOpen,\n isActive: isActive,\n isProcessingAction: processingAction.get,\n getView: function () {\n return InlineView.getContent(autocompleter);\n }\n };\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n };\n var Autocompleter = { register: register$2 };\n\n var mkEvent = function (target, x, y, stop, prevent, kill, raw) {\n return {\n target: constant(target),\n x: constant(x),\n y: constant(y),\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: constant(raw)\n };\n };\n var fromRawEvent = function (rawEvent) {\n var target = Element.fromDom(rawEvent.target);\n var stop = function () {\n rawEvent.stopPropagation();\n };\n var prevent = function () {\n rawEvent.preventDefault();\n };\n var kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n var handle = function (filter, handler) {\n return function (rawEvent) {\n if (!filter(rawEvent)) {\n return;\n }\n handler(fromRawEvent(rawEvent));\n };\n };\n var binder = function (element, event, filter, handler, useCapture) {\n var wrapped = handle(filter, handler);\n element.dom().addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n var bind$2 = function (element, event, filter, handler) {\n return binder(element, event, filter, handler, false);\n };\n var capture = function (element, event, filter, handler) {\n return binder(element, event, filter, handler, true);\n };\n var unbind = function (element, event, handler, useCapture) {\n element.dom().removeEventListener(event, handler, useCapture);\n };\n\n var filter$1 = constant(true);\n var bind$3 = function (element, event, handler) {\n return bind$2(element, event, filter$1, handler);\n };\n var capture$1 = function (element, event, handler) {\n return capture(element, event, filter$1, handler);\n };\n var fromRawEvent$1 = fromRawEvent;\n\n var closest$4 = function (scope, selector, isRoot) {\n return closest$3(scope, selector, isRoot).isSome();\n };\n\n function DelayedFunction (fun, delay) {\n var ref = null;\n var schedule = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n ref = domGlobals.setTimeout(function () {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n var cancel = function () {\n if (ref !== null) {\n domGlobals.clearTimeout(ref);\n ref = null;\n }\n };\n return {\n cancel: cancel,\n schedule: schedule\n };\n }\n\n var SIGNIFICANT_MOVE = 5;\n var LONGPRESS_DELAY = 400;\n var getTouch = function (event) {\n var raw = event.raw();\n if (raw.touches === undefined || raw.touches.length !== 1) {\n return Option.none();\n }\n return Option.some(raw.touches[0]);\n };\n var isFarEnough = function (touch, data) {\n var distX = Math.abs(touch.clientX - data.x());\n var distY = Math.abs(touch.clientY - data.y());\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n var monitor = function (settings) {\n var startData = Cell(Option.none());\n var longpressFired = Cell(false);\n var longpress$1 = DelayedFunction(function (event) {\n settings.triggerEvent(longpress(), event);\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n var handleTouchstart = function (event) {\n getTouch(event).each(function (touch) {\n longpress$1.cancel();\n var data = {\n x: constant(touch.clientX),\n y: constant(touch.clientY),\n target: event.target\n };\n longpress$1.schedule(event);\n longpressFired.set(false);\n startData.set(Option.some(data));\n });\n return Option.none();\n };\n var handleTouchmove = function (event) {\n longpress$1.cancel();\n getTouch(event).each(function (touch) {\n startData.get().each(function (data) {\n if (isFarEnough(touch, data)) {\n startData.set(Option.none());\n }\n });\n });\n return Option.none();\n };\n var handleTouchend = function (event) {\n longpress$1.cancel();\n var isSame = function (data) {\n return eq(data.target(), event.target());\n };\n return startData.get().filter(isSame).map(function (data) {\n if (longpressFired.get()) {\n event.prevent();\n return false;\n } else {\n return settings.triggerEvent(tap(), event);\n }\n });\n };\n var handlers = wrapAll$1([\n {\n key: touchstart(),\n value: handleTouchstart\n },\n {\n key: touchmove(),\n value: handleTouchmove\n },\n {\n key: touchend(),\n value: handleTouchend\n }\n ]);\n var fireIfReady = function (event, type) {\n return readOptFrom$1(handlers, type).bind(function (handler) {\n return handler(event);\n });\n };\n return { fireIfReady: fireIfReady };\n };\n\n var isDangerous = function (event) {\n var keyEv = event.raw();\n return keyEv.which === BACKSPACE()[0] && !contains([\n 'input',\n 'textarea'\n ], name(event.target())) && !closest$4(event.target(), '[contenteditable=\"true\"]');\n };\n var isFirefox = detect$3().browser.isFirefox();\n var settingsSchema = objOfOnly([\n strictFunction('triggerEvent'),\n defaulted$1('stopBackspace', true)\n ]);\n var bindFocus = function (container, handler) {\n if (isFirefox) {\n return capture$1(container, 'focus', handler);\n } else {\n return bind$3(container, 'focusin', handler);\n }\n };\n var bindBlur = function (container, handler) {\n if (isFirefox) {\n return capture$1(container, 'blur', handler);\n } else {\n return bind$3(container, 'focusout', handler);\n }\n };\n var setup$1 = function (container, rawSettings) {\n var settings = asRawOrDie('Getting GUI events settings', settingsSchema, rawSettings);\n var pointerEvents = detect$3().deviceType.isTouch() ? [\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'gesturestart'\n ] : [\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mousemove',\n 'mouseout',\n 'click'\n ];\n var tapEvent = monitor(settings);\n var simpleEvents = map(pointerEvents.concat([\n 'selectstart',\n 'input',\n 'contextmenu',\n 'change',\n 'transitionend',\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'keyup'\n ]), function (type) {\n return bind$3(container, type, function (event) {\n tapEvent.fireIfReady(event, type).each(function (tapStopped) {\n if (tapStopped) {\n event.kill();\n }\n });\n var stopped = settings.triggerEvent(type, event);\n if (stopped) {\n event.kill();\n }\n });\n });\n var pasteTimeout = Cell(Option.none());\n var onPaste = bind$3(container, 'paste', function (event) {\n tapEvent.fireIfReady(event, 'paste').each(function (tapStopped) {\n if (tapStopped) {\n event.kill();\n }\n });\n var stopped = settings.triggerEvent('paste', event);\n if (stopped) {\n event.kill();\n }\n pasteTimeout.set(Option.some(domGlobals.setTimeout(function () {\n settings.triggerEvent(postPaste(), event);\n }, 0)));\n });\n var onKeydown = bind$3(container, 'keydown', function (event) {\n var stopped = settings.triggerEvent('keydown', event);\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace === true && isDangerous(event)) {\n event.prevent();\n }\n });\n var onFocusIn = bindFocus(container, function (event) {\n var stopped = settings.triggerEvent('focusin', event);\n if (stopped) {\n event.kill();\n }\n });\n var focusoutTimeout = Cell(Option.none());\n var onFocusOut = bindBlur(container, function (event) {\n var stopped = settings.triggerEvent('focusout', event);\n if (stopped) {\n event.kill();\n }\n focusoutTimeout.set(Option.some(domGlobals.setTimeout(function () {\n settings.triggerEvent(postBlur(), event);\n }, 0)));\n });\n var unbind = function () {\n each(simpleEvents, function (e) {\n e.unbind();\n });\n onKeydown.unbind();\n onFocusIn.unbind();\n onFocusOut.unbind();\n onPaste.unbind();\n pasteTimeout.get().each(domGlobals.clearTimeout);\n focusoutTimeout.get().each(domGlobals.clearTimeout);\n };\n return { unbind: unbind };\n };\n\n var derive$2 = function (rawEvent, rawTarget) {\n var source = readOptFrom$1(rawEvent, 'target').map(function (getTarget) {\n return getTarget();\n }).getOr(rawTarget);\n return Cell(source);\n };\n\n var fromSource = function (event, source) {\n var stopper = Cell(false);\n var cutter = Cell(false);\n var stop = function () {\n stopper.set(true);\n };\n var cut = function () {\n cutter.set(true);\n };\n return {\n stop: stop,\n cut: cut,\n isStopped: stopper.get,\n isCut: cutter.get,\n event: constant(event),\n setSource: source.set,\n getSource: source.get\n };\n };\n var fromExternal = function (event) {\n var stopper = Cell(false);\n var stop = function () {\n stopper.set(true);\n };\n return {\n stop: stop,\n cut: noop,\n isStopped: stopper.get,\n isCut: constant(false),\n event: constant(event),\n setSource: die('Cannot set source of a broadcasted event'),\n getSource: die('Cannot get source of a broadcasted event')\n };\n };\n\n var adt$b = Adt.generate([\n { stopped: [] },\n { resume: ['element'] },\n { complete: [] }\n ]);\n var doTriggerHandler = function (lookup, eventType, rawEvent, target, source, logger) {\n var handler = lookup(eventType, target);\n var simulatedEvent = fromSource(rawEvent, source);\n return handler.fold(function () {\n logger.logEventNoHandlers(eventType, target);\n return adt$b.complete();\n }, function (handlerInfo) {\n var descHandler = handlerInfo.descHandler();\n var eventHandler = getCurried(descHandler);\n eventHandler(simulatedEvent);\n if (simulatedEvent.isStopped()) {\n logger.logEventStopped(eventType, handlerInfo.element(), descHandler.purpose());\n return adt$b.stopped();\n } else if (simulatedEvent.isCut()) {\n logger.logEventCut(eventType, handlerInfo.element(), descHandler.purpose());\n return adt$b.complete();\n } else {\n return parent(handlerInfo.element()).fold(function () {\n logger.logNoParent(eventType, handlerInfo.element(), descHandler.purpose());\n return adt$b.complete();\n }, function (parent) {\n logger.logEventResponse(eventType, handlerInfo.element(), descHandler.purpose());\n return adt$b.resume(parent);\n });\n }\n });\n };\n var doTriggerOnUntilStopped = function (lookup, eventType, rawEvent, rawTarget, source, logger) {\n return doTriggerHandler(lookup, eventType, rawEvent, rawTarget, source, logger).fold(function () {\n return true;\n }, function (parent) {\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, parent, source, logger);\n }, function () {\n return false;\n });\n };\n var triggerHandler = function (lookup, eventType, rawEvent, target, logger) {\n var source = derive$2(rawEvent, target);\n return doTriggerHandler(lookup, eventType, rawEvent, target, source, logger);\n };\n var broadcast = function (listeners, rawEvent, logger) {\n var simulatedEvent = fromExternal(rawEvent);\n each(listeners, function (listener) {\n var descHandler = listener.descHandler();\n var handler = getCurried(descHandler);\n handler(simulatedEvent);\n });\n return simulatedEvent.isStopped();\n };\n var triggerUntilStopped = function (lookup, eventType, rawEvent, logger) {\n var rawTarget = rawEvent.target();\n return triggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, logger);\n };\n var triggerOnUntilStopped = function (lookup, eventType, rawEvent, rawTarget, logger) {\n var source = derive$2(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n\n var eventHandler = Immutable('element', 'descHandler');\n var broadcastHandler = function (id, handler) {\n return {\n id: constant(id),\n descHandler: constant(handler)\n };\n };\n function EventRegistry () {\n var registry = {};\n var registerId = function (extraArgs, id, events) {\n each$1(events, function (v, k) {\n var handlers = registry[k] !== undefined ? registry[k] : {};\n handlers[id] = curryArgs(v, extraArgs);\n registry[k] = handlers;\n });\n };\n var findHandler = function (handlers, elem) {\n return read$1(elem).fold(function () {\n return Option.none();\n }, function (id) {\n var reader = readOpt$1(id);\n return handlers.bind(reader).map(function (descHandler) {\n return eventHandler(elem, descHandler);\n });\n });\n };\n var filterByType = function (type) {\n return readOptFrom$1(registry, type).map(function (handlers) {\n return mapToArray(handlers, function (f, id) {\n return broadcastHandler(id, f);\n });\n }).getOr([]);\n };\n var find = function (isAboveRoot, type, target) {\n var readType = readOpt$1(type);\n var handlers = readType(registry);\n return closest$1(target, function (elem) {\n return findHandler(handlers, elem);\n }, isAboveRoot);\n };\n var unregisterId = function (id) {\n each$1(registry, function (handlersById, eventName) {\n if (handlersById.hasOwnProperty(id)) {\n delete handlersById[id];\n }\n });\n };\n return {\n registerId: registerId,\n unregisterId: unregisterId,\n filterByType: filterByType,\n find: find\n };\n }\n\n function Registry () {\n var events = EventRegistry();\n var components = {};\n var readOrTag = function (component) {\n var elem = component.element();\n return read$1(elem).fold(function () {\n return write('uid-', component.element());\n }, function (uid) {\n return uid;\n });\n };\n var failOnDuplicate = function (component, tagId) {\n var conflict = components[tagId];\n if (conflict === component) {\n unregister(component);\n } else {\n throw new Error('The tagId \"' + tagId + '\" is already used by: ' + element(conflict.element()) + '\\nCannot use it for: ' + element(component.element()) + '\\n' + 'The conflicting element is' + (inBody(conflict.element()) ? ' ' : ' not ') + 'already in the DOM');\n }\n };\n var register = function (component) {\n var tagId = readOrTag(component);\n if (hasKey$1(components, tagId)) {\n failOnDuplicate(component, tagId);\n }\n var extraArgs = [component];\n events.registerId(extraArgs, tagId, component.events());\n components[tagId] = component;\n };\n var unregister = function (component) {\n read$1(component.element()).each(function (tagId) {\n delete components[tagId];\n events.unregisterId(tagId);\n });\n };\n var filter = function (type) {\n return events.filterByType(type);\n };\n var find = function (isAboveRoot, type, target) {\n return events.find(isAboveRoot, type, target);\n };\n var getById = function (id) {\n return readOpt$1(id)(components);\n };\n return {\n find: find,\n filter: filter,\n register: register,\n unregister: unregister,\n getById: getById\n };\n }\n\n var factory$3 = function (detail) {\n var _a = detail.dom, attributes = _a.attributes, domWithoutAttributes = __rest(_a, ['attributes']);\n return {\n uid: detail.uid,\n dom: __assign({\n tag: 'div',\n attributes: __assign({ role: 'presentation' }, attributes)\n }, domWithoutAttributes),\n components: detail.components,\n behaviours: get$b(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n var Container = single$2({\n name: 'Container',\n factory: factory$3,\n configFields: [\n defaulted$1('components', []),\n field$1('containerBehaviours', []),\n defaulted$1('events', {}),\n defaulted$1('domModification', {}),\n defaulted$1('eventOrder', {})\n ]\n });\n\n var takeover = function (root) {\n var isAboveRoot = function (el) {\n return parent(root.element()).fold(function () {\n return true;\n }, function (parent) {\n return eq(el, parent);\n });\n };\n var registry = Registry();\n var lookup = function (eventName, target) {\n return registry.find(isAboveRoot, eventName, target);\n };\n var domEvents = setup$1(root.element(), {\n triggerEvent: function (eventName, event) {\n return monitorEvent(eventName, event.target(), function (logger) {\n return triggerUntilStopped(lookup, eventName, event, logger);\n });\n }\n });\n var systemApi = {\n debugInfo: constant('real'),\n triggerEvent: function (eventName, target, data) {\n monitorEvent(eventName, target, function (logger) {\n triggerOnUntilStopped(lookup, eventName, data, target, logger);\n });\n },\n triggerFocus: function (target, originator) {\n read$1(target).fold(function () {\n focus$1(target);\n }, function (_alloyId) {\n monitorEvent(focus(), target, function (logger) {\n triggerHandler(lookup, focus(), {\n originator: constant(originator),\n kill: noop,\n prevent: noop,\n target: constant(target)\n }, target, logger);\n });\n });\n },\n triggerEscape: function (comp, simulatedEvent) {\n systemApi.triggerEvent('keydown', comp.element(), simulatedEvent.event());\n },\n getByUid: function (uid) {\n return getByUid(uid);\n },\n getByDom: function (elem) {\n return getByDom(elem);\n },\n build: build$1,\n addToGui: function (c) {\n add(c);\n },\n removeFromGui: function (c) {\n remove$1(c);\n },\n addToWorld: function (c) {\n addToWorld(c);\n },\n removeFromWorld: function (c) {\n removeFromWorld(c);\n },\n broadcast: function (message) {\n broadcast$1(message);\n },\n broadcastOn: function (channels, message) {\n broadcastOn(channels, message);\n },\n broadcastEvent: function (eventName, event) {\n broadcastEvent(eventName, event);\n },\n isConnected: constant(true)\n };\n var addToWorld = function (component) {\n component.connect(systemApi);\n if (!isText(component.element())) {\n registry.register(component);\n each(component.components(), addToWorld);\n systemApi.triggerEvent(systemInit(), component.element(), { target: constant(component.element()) });\n }\n };\n var removeFromWorld = function (component) {\n if (!isText(component.element())) {\n each(component.components(), removeFromWorld);\n registry.unregister(component);\n }\n component.disconnect();\n };\n var add = function (component) {\n attach$1(root, component);\n };\n var remove$1 = function (component) {\n detach(component);\n };\n var destroy = function () {\n domEvents.unbind();\n remove(root.element());\n };\n var broadcastData = function (data) {\n var receivers = registry.filter(receive());\n each(receivers, function (receiver) {\n var descHandler = receiver.descHandler();\n var handler = getCurried(descHandler);\n handler(data);\n });\n };\n var broadcast$1 = function (message) {\n broadcastData({\n universal: constant(true),\n data: constant(message)\n });\n };\n var broadcastOn = function (channels, message) {\n broadcastData({\n universal: constant(false),\n channels: constant(channels),\n data: constant(message)\n });\n };\n var broadcastEvent = function (eventName, event) {\n var listeners = registry.filter(eventName);\n return broadcast(listeners, event);\n };\n var getByUid = function (uid) {\n return registry.getById(uid).fold(function () {\n return Result.error(new Error('Could not find component with uid: \"' + uid + '\" in system.'));\n }, Result.value);\n };\n var getByDom = function (elem) {\n var uid = read$1(elem).getOr('not found');\n return getByUid(uid);\n };\n addToWorld(root);\n return {\n root: constant(root),\n element: root.element,\n destroy: destroy,\n add: add,\n remove: remove$1,\n getByUid: getByUid,\n getByDom: getByDom,\n addToWorld: addToWorld,\n removeFromWorld: removeFromWorld,\n broadcast: broadcast$1,\n broadcastOn: broadcastOn,\n broadcastEvent: broadcastEvent\n };\n };\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n var getSkinUrl = function (editor) {\n var settings = editor.settings;\n var skin = settings.skin;\n var skinUrl = settings.skin_url;\n if (skin !== false) {\n var skinName = skin ? skin : 'oxide';\n if (skinUrl) {\n skinUrl = editor.documentBaseURI.toAbsolute(skinUrl);\n } else {\n skinUrl = global$9.baseURL + '/skins/ui/' + skinName;\n }\n }\n return skinUrl;\n };\n var isReadOnly = function (editor) {\n return editor.getParam('readonly', false, 'boolean');\n };\n var isSkinDisabled = function (editor) {\n return editor.getParam('skin') === false;\n };\n var getHeightSetting = function (editor) {\n return editor.getParam('height', Math.max(editor.getElement().offsetHeight, 200));\n };\n var getWidthSetting = function (editor) {\n return editor.getParam('width', global$7.DOM.getStyle(editor.getElement(), 'width'));\n };\n var getMinWidthSetting = function (editor) {\n return Option.from(editor.settings.min_width).filter(isNumber);\n };\n var getMinHeightSetting = function (editor) {\n return Option.from(editor.settings.min_height).filter(isNumber);\n };\n var getMaxWidthSetting = function (editor) {\n return Option.from(editor.getParam('max_width')).filter(isNumber);\n };\n var getMaxHeightSetting = function (editor) {\n return Option.from(editor.getParam('max_height')).filter(isNumber);\n };\n var getUserStyleFormats = function (editor) {\n return Option.from(editor.getParam('style_formats')).filter(isArray);\n };\n var isMergeStyleFormats = function (editor) {\n return editor.getParam('style_formats_merge', false, 'boolean');\n };\n var getRemovedMenuItems = function (editor) {\n return editor.getParam('removed_menuitems', '');\n };\n var isMenubarEnabled = function (editor) {\n return editor.getParam('menubar', true, 'boolean') !== false;\n };\n var isToolbarEnabled = function (editor) {\n var toolbar = editor.getParam('toolbar', true);\n var isToolbarTrue = toolbar === true;\n var isToolbarString = isString(toolbar);\n var isToolbarObjectArray = isArray(toolbar) && toolbar.length > 0;\n return !isMultipleToolbars(editor) && (isToolbarObjectArray || isToolbarString || isToolbarTrue);\n };\n var getMultipleToolbarsSetting = function (editor) {\n var keys$1 = keys(editor.settings);\n var toolbarKeys = filter(keys$1, function (key) {\n return /^toolbar([1-9])$/.test(key);\n });\n var toolbars = map(toolbarKeys, function (key) {\n return editor.getParam(key, false, 'string');\n });\n var toolbarArray = filter(toolbars, function (toolbar) {\n return typeof toolbar === 'string';\n });\n return toolbarArray.length > 0 ? Option.some(toolbarArray) : Option.none();\n };\n var isMultipleToolbars = function (editor) {\n return getMultipleToolbarsSetting(editor).fold(function () {\n var toolbar = editor.getParam('toolbar', [], 'string[]');\n return toolbar.length > 0;\n }, function () {\n return true;\n });\n };\n var ToolbarDrawer;\n (function (ToolbarDrawer) {\n ToolbarDrawer['default'] = '';\n ToolbarDrawer['floating'] = 'floating';\n ToolbarDrawer['sliding'] = 'sliding';\n ToolbarDrawer['scrolling'] = 'scrolling';\n }(ToolbarDrawer || (ToolbarDrawer = {})));\n var getToolbarDrawer = function (editor) {\n return editor.getParam('toolbar_drawer', '', 'string');\n };\n var fixedContainerSelector = function (editor) {\n return editor.getParam('fixed_toolbar_container', '', 'string');\n };\n var fixedContainerElement = function (editor) {\n var selector = fixedContainerSelector(editor);\n return selector.length > 0 && editor.inline ? descendant$1(body(), selector) : Option.none();\n };\n var useFixedContainer = function (editor) {\n return editor.inline && fixedContainerElement(editor).isSome();\n };\n var getUiContainer = function (editor) {\n var fixedContainer = fixedContainerElement(editor);\n return fixedContainer.getOr(body());\n };\n var isDistractionFree = function (editor) {\n return editor.inline && !isMenubarEnabled(editor) && !isToolbarEnabled(editor) && !isMultipleToolbars(editor);\n };\n var isStickyToolbar = function (editor) {\n var isStickyToolbar = editor.getParam('toolbar_sticky', false, 'boolean');\n return (isStickyToolbar || editor.inline) && !useFixedContainer(editor) && !isDistractionFree(editor);\n };\n var isDraggableModal = function (editor) {\n return editor.getParam('draggable_modal', false, 'boolean');\n };\n\n var SIGNIFICANT_MOVE$1 = 5;\n var LONGPRESS_DELAY$1 = 400;\n var getTouch$1 = function (event) {\n if (event.touches === undefined || event.touches.length !== 1) {\n return Option.none();\n }\n return Option.some(event.touches[0]);\n };\n var isFarEnough$1 = function (touch, data) {\n var distX = Math.abs(touch.clientX - data.x());\n var distY = Math.abs(touch.clientY - data.y());\n return distX > SIGNIFICANT_MOVE$1 || distY > SIGNIFICANT_MOVE$1;\n };\n var setup$2 = function (editor) {\n var startData = Cell(Option.none());\n var longpressFired = Cell(false);\n var debounceLongpress = last$2(function (e) {\n editor.fire('longpress', __assign(__assign({}, e), { type: 'longpress' }));\n longpressFired.set(true);\n }, LONGPRESS_DELAY$1);\n editor.on('touchstart', function (e) {\n getTouch$1(e).each(function (touch) {\n debounceLongpress.cancel();\n var data = {\n x: constant(touch.clientX),\n y: constant(touch.clientY),\n target: constant(e.target)\n };\n debounceLongpress.throttle(e);\n longpressFired.set(false);\n startData.set(Option.some(data));\n });\n }, true);\n editor.on('touchmove', function (e) {\n debounceLongpress.cancel();\n getTouch$1(e).each(function (touch) {\n startData.get().each(function (data) {\n if (isFarEnough$1(touch, data)) {\n startData.set(Option.none());\n longpressFired.set(false);\n editor.fire('longpresscancel');\n }\n });\n });\n }, true);\n editor.on('touchend touchcancel', function (e) {\n debounceLongpress.cancel();\n if (e.type === 'touchcancel') {\n return;\n }\n startData.get().filter(function (data) {\n return data.target().isEqualNode(e.target);\n }).each(function () {\n if (longpressFired.get()) {\n e.preventDefault();\n } else {\n var result = editor.fire('tap');\n if (result.isDefaultPrevented()) {\n e.preventDefault();\n }\n }\n });\n }, true);\n };\n var TouchEvents = { setup: setup$2 };\n\n var formChangeEvent = generate$1('form-component-change');\n var formCloseEvent = generate$1('form-close');\n var formCancelEvent = generate$1('form-cancel');\n var formActionEvent = generate$1('form-action');\n var formSubmitEvent = generate$1('form-submit');\n var formBlockEvent = generate$1('form-block');\n var formUnblockEvent = generate$1('form-unblock');\n var formTabChangeEvent = generate$1('form-tabchange');\n var formResizeEvent = generate$1('form-resize');\n\n var renderAlertBanner = function (spec, providersBackstage) {\n return Container.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: [\n 'tox-notification',\n 'tox-notification--in',\n 'tox-notification--' + spec.level\n ]\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon']\n },\n components: [Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n innerHtml: get$c(spec.icon, providersBackstage.icons),\n attributes: { title: providersBackstage.translate(spec.iconTooltip) }\n },\n action: function (comp) {\n emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n });\n }\n })]\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body'],\n innerHtml: providersBackstage.translate(spec.text)\n }\n }\n ]\n });\n };\n\n var renderBar = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-bar',\n 'tox-form__controls-h-stack'\n ]\n },\n components: map(spec.items, backstage.interpreter)\n };\n };\n\n var schema$e = constant([\n defaulted$1('prefix', 'form-field'),\n field$1('fieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n var parts$3 = constant([\n optional({\n schema: [strict$1('dom')],\n name: 'label'\n }),\n optional({\n factory: {\n sketch: function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [strict$1('text')],\n name: 'aria-descriptor'\n }),\n required({\n factory: {\n sketch: function (spec) {\n var excludeFactory = exclude$1(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [strict$1('factory')],\n name: 'field'\n })\n ]);\n\n var factory$4 = function (detail, components, spec, externals) {\n var behaviours = augment(detail.fieldBehaviours, [\n Composing.config({\n find: function (container) {\n return getPart(container, detail, 'field');\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (field) {\n return Composing.getCurrent(field).bind(Representing.getValue);\n },\n setValue: function (field, value) {\n Composing.getCurrent(field).each(function (current) {\n Representing.setValue(current, value);\n });\n }\n }\n })\n ]);\n var events = derive([runOnAttached(function (component, simulatedEvent) {\n var ps = getParts(component, detail, [\n 'label',\n 'field',\n 'aria-descriptor'\n ]);\n ps.field().each(function (field) {\n var id = generate$1(detail.prefix);\n ps.label().each(function (label) {\n set$1(label.element(), 'for', id);\n set$1(field.element(), 'id', id);\n });\n ps['aria-descriptor']().each(function (descriptor) {\n var descriptorId = generate$1(detail.prefix);\n set$1(descriptor.element(), 'id', descriptorId);\n set$1(field.element(), 'aria-describedby', descriptorId);\n });\n });\n })]);\n var apis = {\n getField: function (container) {\n return getPart(container, detail, 'field');\n },\n getLabel: function (container) {\n return getPart(container, detail, 'label');\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: behaviours,\n events: events,\n apis: apis\n };\n };\n var FormField = composite$1({\n name: 'FormField',\n configFields: schema$e(),\n partFields: parts$3(),\n factory: factory$4,\n apis: {\n getField: function (apis, comp) {\n return apis.getField(comp);\n },\n getLabel: function (apis, comp) {\n return apis.getLabel(comp);\n }\n }\n });\n\n var schema$f = constant([\n option('data'),\n defaulted$1('inputAttributes', {}),\n defaulted$1('inputStyles', {}),\n defaulted$1('tag', 'input'),\n defaulted$1('inputClasses', []),\n onHandler('onSetValue'),\n defaulted$1('styles', {}),\n defaulted$1('eventOrder', {}),\n field$1('inputBehaviours', [\n Representing,\n Focusing\n ]),\n defaulted$1('selectOnFocus', true)\n ]);\n var focusBehaviours = function (detail) {\n return derive$1([Focusing.config({\n onFocus: detail.selectOnFocus === false ? noop : function (component) {\n var input = component.element();\n var value = get$5(input);\n input.dom().setSelectionRange(0, value.length);\n }\n })]);\n };\n var behaviours = function (detail) {\n return __assign(__assign({}, focusBehaviours(detail)), augment(detail.inputBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n initialValue: detail.data.getOr(undefined),\n getValue: function (input) {\n return get$5(input.element());\n },\n setValue: function (input, data) {\n var current = get$5(input.element());\n if (current !== data) {\n set$3(input.element(), data);\n }\n }\n },\n onSetValue: detail.onSetValue\n })]));\n };\n var dom$2 = function (detail) {\n return {\n tag: detail.tag,\n attributes: __assign({ type: 'text' }, detail.inputAttributes),\n styles: detail.inputStyles,\n classes: detail.inputClasses\n };\n };\n\n var factory$5 = function (detail, spec) {\n return {\n uid: detail.uid,\n dom: dom$2(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n };\n };\n var Input = single$2({\n name: 'Input',\n configFields: schema$f(),\n factory: factory$5\n });\n\n var exports$1 = {}, module = { exports: exports$1 };\n (function (define, exports, module, require) {\n (function (f) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = f();\n } else if (typeof define === 'function' && define.amd) {\n define([], f);\n } else {\n var g;\n if (typeof window !== 'undefined') {\n g = window;\n } else if (typeof global !== 'undefined') {\n g = global;\n } else if (typeof self !== 'undefined') {\n g = self;\n } else {\n g = this;\n }\n g.EphoxContactWrapper = f();\n }\n }(function () {\n return function () {\n function r(e, n, t) {\n function o(i, f) {\n if (!n[i]) {\n if (!e[i]) {\n var c = 'function' == typeof require && require;\n if (!f && c)\n return c(i, !0);\n if (u)\n return u(i, !0);\n var a = new Error('Cannot find module \\'' + i + '\\'');\n throw a.code = 'MODULE_NOT_FOUND', a;\n }\n var p = n[i] = { exports: {} };\n e[i][0].call(p.exports, function (r) {\n var n = e[i][1][r];\n return o(n || r);\n }, p, p.exports, r, e, n, t);\n }\n return n[i].exports;\n }\n for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++)\n o(t[i]);\n return o;\n }\n return r;\n }()({\n 1: [\n function (require, module, exports) {\n var process = module.exports = {};\n var cachedSetTimeout;\n var cachedClearTimeout;\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n (function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n }());\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n }\n function drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n };\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = '';\n process.versions = {};\n function noop() {\n }\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n process.listeners = function (name) {\n return [];\n };\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n process.cwd = function () {\n return '/';\n };\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n process.umask = function () {\n return 0;\n };\n },\n {}\n ],\n 2: [\n function (require, module, exports) {\n (function (setImmediate) {\n (function (root) {\n var setTimeoutFunc = setTimeout;\n function noop() {\n }\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n function Promise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n }\n function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n }\n function resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n }\n function finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n }\n function Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n }\n function doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n }\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n };\n Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n return new Promise(function (resolve, reject) {\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n } : function (fn) {\n setTimeoutFunc(fn, 0);\n };\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n };\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n }(this));\n }.call(this, require('timers').setImmediate));\n },\n { 'timers': 3 }\n ],\n 3: [\n function (require, module, exports) {\n (function (setImmediate, clearImmediate) {\n var nextTick = require('process/browser.js').nextTick;\n var apply = Function.prototype.apply;\n var slice = Array.prototype.slice;\n var immediateIds = {};\n var nextImmediateId = 0;\n exports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n };\n exports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n };\n exports.clearTimeout = exports.clearInterval = function (timeout) {\n timeout.close();\n };\n function Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n }\n Timeout.prototype.unref = Timeout.prototype.ref = function () {\n };\n Timeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n };\n exports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n };\n exports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n };\n exports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n };\n exports.setImmediate = typeof setImmediate === 'function' ? setImmediate : function (fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n immediateIds[id] = true;\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n exports.clearImmediate(id);\n }\n });\n return id;\n };\n exports.clearImmediate = typeof clearImmediate === 'function' ? clearImmediate : function (id) {\n delete immediateIds[id];\n };\n }.call(this, require('timers').setImmediate, require('timers').clearImmediate));\n },\n {\n 'process/browser.js': 1,\n 'timers': 3\n }\n ],\n 4: [\n function (require, module, exports) {\n var promisePolyfill = require('promise-polyfill');\n var Global = function () {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this;')();\n }\n }();\n module.exports = { boltExport: Global.Promise || promisePolyfill };\n },\n { 'promise-polyfill': 2 }\n ]\n }, {}, [4])(4);\n }));\n }(undefined, exports$1, module, undefined));\n var Promise = module.exports.boltExport;\n\n var nu$a = function (baseFn) {\n var data = Option.none();\n var callbacks = [];\n var map = function (f) {\n return nu$a(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n var set = function (x) {\n data = Option.some(x);\n run(callbacks);\n callbacks = [];\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n domGlobals.setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure$1 = function (a) {\n return nu$a(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu$a,\n pure: pure$1\n };\n\n var errorReporter = function (err) {\n domGlobals.setTimeout(function () {\n throw err;\n }, 0);\n };\n var make$3 = function (run) {\n var get = function (callback) {\n run().then(callback, errorReporter);\n };\n var map = function (fab) {\n return make$3(function () {\n return run().then(fab);\n });\n };\n var bind = function (aFutureB) {\n return make$3(function () {\n return run().then(function (v) {\n return aFutureB(v).toPromise();\n });\n });\n };\n var anonBind = function (futureB) {\n return make$3(function () {\n return run().then(function () {\n return futureB.toPromise();\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return make$3(function () {\n if (cache === null) {\n cache = run();\n }\n return cache;\n });\n };\n var toPromise = run;\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n toPromise: toPromise,\n get: get\n };\n };\n var nu$b = function (baseFn) {\n return make$3(function () {\n return new Promise(baseFn);\n });\n };\n var pure$2 = function (a) {\n return make$3(function () {\n return Promise.resolve(a);\n });\n };\n var Future = {\n nu: nu$b,\n pure: pure$2\n };\n\n var ariaElements = [\n 'input',\n 'textarea'\n ];\n var isAriaElement = function (elem) {\n var name$1 = name(elem);\n return contains(ariaElements, name$1);\n };\n var markValid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element());\n remove$4(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element())) {\n set$1(component.element(), 'aria-invalid', false);\n }\n notifyInfo.getContainer(component).each(function (container) {\n set(container, notifyInfo.validHtml);\n });\n notifyInfo.onValid(component);\n });\n };\n var markInvalid = function (component, invalidConfig, invalidState, text) {\n var elem = invalidConfig.getRoot(component).getOr(component.element());\n add$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element())) {\n set$1(component.element(), 'aria-invalid', true);\n }\n notifyInfo.getContainer(component).each(function (container) {\n set(container, text);\n });\n notifyInfo.onInvalid(component, text);\n });\n };\n var query = function (component, invalidConfig, invalidState) {\n return invalidConfig.validator.fold(function () {\n return Future.pure(Result.value(true));\n }, function (validatorInfo) {\n return validatorInfo.validate(component);\n });\n };\n var run$1 = function (component, invalidConfig, invalidState) {\n invalidConfig.notify.each(function (notifyInfo) {\n notifyInfo.onValidate(component);\n });\n return query(component, invalidConfig).map(function (valid) {\n if (component.getSystem().isConnected()) {\n return valid.fold(function (err) {\n markInvalid(component, invalidConfig, invalidState, err);\n return Result.error(err);\n }, function (v) {\n markValid(component, invalidConfig);\n return Result.value(v);\n });\n } else {\n return Result.error('No longer in system');\n }\n });\n };\n var isInvalid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element());\n return has$2(elem, invalidConfig.invalidClass);\n };\n\n var InvalidateApis = /*#__PURE__*/Object.freeze({\n markValid: markValid,\n markInvalid: markInvalid,\n query: query,\n run: run$1,\n isInvalid: isInvalid\n });\n\n var events$a = function (invalidConfig, invalidState) {\n return invalidConfig.validator.map(function (validatorInfo) {\n return derive([run(validatorInfo.onEvent, function (component) {\n run$1(component, invalidConfig, invalidState).get(identity);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(function (component) {\n run$1(component, invalidConfig, invalidState).get(noop);\n })] : []));\n }).getOr({});\n };\n\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n events: events$a\n });\n\n var InvalidateSchema = [\n strict$1('invalidClass'),\n defaulted$1('getRoot', Option.none),\n optionObjOf('notify', [\n defaulted$1('aria', 'alert'),\n defaulted$1('getContainer', Option.none),\n defaulted$1('validHtml', ''),\n onHandler('onValid'),\n onHandler('onInvalid'),\n onHandler('onValidate')\n ]),\n optionObjOf('validator', [\n strict$1('validate'),\n defaulted$1('onEvent', 'input'),\n defaulted$1('validateOnLoad', true)\n ])\n ];\n\n var Invalidating = create$1({\n fields: InvalidateSchema,\n name: 'invalidating',\n active: ActiveInvalidate,\n apis: InvalidateApis,\n extra: {\n validation: function (validator) {\n return function (component) {\n var v = Representing.getValue(component);\n return Future.pure(validator(v));\n };\n }\n }\n });\n\n var exhibit$4 = function (base, tabConfig) {\n return nu$6({\n attributes: wrapAll$1([{\n key: tabConfig.tabAttr,\n value: 'true'\n }])\n });\n };\n\n var ActiveTabstopping = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$4\n });\n\n var TabstopSchema = [defaulted$1('tabAttr', 'data-alloy-tabstop')];\n\n var Tabstopping = create$1({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n\n var renderFormFieldWith = function (pLabel, pField, extraClasses, extraBehaviours) {\n var spec = renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours);\n return FormField.sketch(spec);\n };\n var renderFormField = function (pLabel, pField) {\n return renderFormFieldWith(pLabel, pField, [], []);\n };\n var renderFormFieldSpecWith = function (pLabel, pField, extraClasses, extraBehaviours) {\n return {\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField]),\n fieldBehaviours: derive$1(extraBehaviours)\n };\n };\n var renderFormFieldDom = function () {\n return renderFormFieldDomWith([]);\n };\n var renderFormFieldDomWith = function (extraClasses) {\n return {\n tag: 'div',\n classes: ['tox-form__group'].concat(extraClasses)\n };\n };\n var renderLabel = function (label, providersBackstage) {\n return FormField.parts().label({\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n });\n };\n\n var getCoupled = function (component, coupleConfig, coupleState, name) {\n return coupleState.getOrCreate(component, coupleConfig, name);\n };\n\n var CouplingApis = /*#__PURE__*/Object.freeze({\n getCoupled: getCoupled\n });\n\n var CouplingSchema = [strictOf('others', setOf$1(Result.value, anyValue$1()))];\n\n var init$5 = function (spec) {\n var coupled = {};\n var getOrCreate = function (component, coupleConfig, name) {\n var available = keys(coupleConfig.others);\n if (!available) {\n throw new Error('Cannot find coupled component: ' + name + '. Known coupled components: ' + JSON.stringify(available, null, 2));\n } else {\n return readOptFrom$1(coupled, name).getOrThunk(function () {\n var builder = readOptFrom$1(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n var spec = builder(component);\n var built = component.getSystem().build(spec);\n coupled[name] = built;\n return built;\n });\n }\n };\n var readState = constant({});\n return nu$5({\n readState: readState,\n getOrCreate: getOrCreate\n });\n };\n\n var CouplingState = /*#__PURE__*/Object.freeze({\n init: init$5\n });\n\n var Coupling = create$1({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n\n var suffix = constant('sink');\n var partType = constant(optional({\n name: suffix(),\n overrides: constant({\n dom: { tag: 'div' },\n behaviours: derive$1([Positioning.config({ useFixed: always })]),\n events: derive([\n cutter(keydown()),\n cutter(mousedown()),\n cutter(click())\n ])\n })\n }));\n\n var HighlightOnOpen;\n (function (HighlightOnOpen) {\n HighlightOnOpen[HighlightOnOpen['HighlightFirst'] = 0] = 'HighlightFirst';\n HighlightOnOpen[HighlightOnOpen['HighlightNone'] = 1] = 'HighlightNone';\n }(HighlightOnOpen || (HighlightOnOpen = {})));\n var getAnchor = function (detail, component) {\n var hotspot = detail.getHotspot(component).getOr(component);\n var anchor = 'hotspot';\n var overrides = detail.getAnchorOverrides();\n return detail.layouts.fold(function () {\n return {\n anchor: anchor,\n hotspot: hotspot,\n overrides: overrides\n };\n }, function (layouts) {\n return {\n anchor: anchor,\n hotspot: hotspot,\n overrides: overrides,\n layouts: layouts\n };\n });\n };\n var fetch = function (detail, mapFetch, component) {\n var fetcher = detail.fetch;\n return fetcher(component).map(mapFetch);\n };\n var openF = function (detail, mapFetch, anchor, component, sandbox, externals, highlightOnOpen) {\n var futureData = fetch(detail, mapFetch, component);\n var getLazySink = getSink(component, detail);\n return futureData.map(function (tdata) {\n return tdata.bind(function (data) {\n return Option.from(tieredMenu.sketch(__assign(__assign({}, externals.menu()), {\n uid: generate$2(''),\n data: data,\n highlightImmediately: highlightOnOpen === HighlightOnOpen.HighlightFirst,\n onOpenMenu: function (tmenu, menu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, anchor, menu);\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: function (tmenu, item, submenu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, {\n anchor: 'submenu',\n item: item\n }, submenu);\n Sandboxing.decloak(sandbox);\n },\n onRepositionMenu: function (tmenu, primaryMenu, submenuTriggers) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, anchor, primaryMenu);\n each(submenuTriggers, function (st) {\n Positioning.position(sink, {\n anchor: 'submenu',\n item: st.triggeringItem\n }, st.triggeredMenu);\n });\n },\n onEscape: function () {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Option.some(true);\n }\n })));\n });\n });\n };\n var open$1 = function (detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen) {\n var anchor = getAnchor(detail, hotspot);\n var processed = openF(detail, mapFetch, anchor, hotspot, sandbox, externals, highlightOnOpen);\n return processed.map(function (tdata) {\n tdata.fold(function () {\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n }\n }, function (data) {\n Sandboxing.cloak(sandbox);\n Sandboxing.open(sandbox, data);\n onOpenSync(sandbox);\n });\n return sandbox;\n });\n };\n var close$1 = function (detail, mapFetch, component, sandbox, _externals, _onOpenSync, _highlightOnOpen) {\n Sandboxing.close(sandbox);\n return Future.pure(sandbox);\n };\n var togglePopup = function (detail, mapFetch, hotspot, externals, onOpenSync, highlightOnOpen) {\n var sandbox = Coupling.getCoupled(hotspot, 'sandbox');\n var showing = Sandboxing.isOpen(sandbox);\n var action = showing ? close$1 : open$1;\n return action(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen);\n };\n var matchWidth = function (hotspot, container, useMinWidth) {\n var menu = Composing.getCurrent(container).getOr(container);\n var buttonWidth = get$7(hotspot.element());\n if (useMinWidth) {\n set$2(menu.element(), 'min-width', buttonWidth + 'px');\n } else {\n set$4(menu.element(), buttonWidth);\n }\n };\n var getSink = function (anyInSystem, sinkDetail) {\n return anyInSystem.getSystem().getByUid(sinkDetail.uid + '-' + suffix()).map(function (internalSink) {\n return function () {\n return Result.value(internalSink);\n };\n }).getOrThunk(function () {\n return sinkDetail.lazySink.fold(function () {\n return function () {\n return Result.error(new Error('No internal sink is specified, nor could an external sink be found'));\n };\n }, function (lazySinkFn) {\n return function () {\n return lazySinkFn(anyInSystem);\n };\n });\n });\n };\n var doRepositionMenus = function (sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.repositionMenus(tmenu);\n });\n };\n var makeSandbox = function (detail, hotspot, extras) {\n var ariaOwner = manager();\n var onOpen = function (component, menu) {\n var anchor = getAnchor(detail, hotspot);\n ariaOwner.link(hotspot.element());\n if (detail.matchWidth) {\n matchWidth(anchor.hotspot, menu, detail.useMinWidth);\n }\n detail.onOpen(anchor, component, menu);\n if (extras !== undefined && extras.onOpen !== undefined) {\n extras.onOpen(component, menu);\n }\n };\n var onClose = function (component, menu) {\n ariaOwner.unlink(hotspot.element());\n if (extras !== undefined && extras.onClose !== undefined) {\n extras.onClose(component, menu);\n }\n };\n var lazySink = getSink(hotspot, detail);\n return {\n dom: {\n tag: 'div',\n classes: detail.sandboxClasses,\n attributes: {\n id: ariaOwner.id(),\n role: 'listbox'\n }\n },\n behaviours: SketchBehaviours.augment(detail.sandboxBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: hotspot\n }\n }),\n Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function (container, data, queryElem) {\n return isPartOf(data, queryElem) || isPartOf(hotspot, queryElem);\n },\n getAttachPoint: function () {\n return lazySink().getOrDie();\n }\n }),\n Composing.config({\n find: function (sandbox) {\n return Sandboxing.getState(sandbox).bind(function (menu) {\n return Composing.getCurrent(menu);\n });\n }\n }),\n Receiving.config({\n channels: __assign(__assign({}, receivingChannel({ isExtraPart: constant(false) })), receivingChannel$1({\n isExtraPart: constant(false),\n doReposition: doRepositionMenus\n }))\n })\n ])\n };\n };\n var repositionMenus = function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n doRepositionMenus(sandbox);\n };\n\n var sandboxFields = function () {\n return [\n defaulted$1('sandboxClasses', []),\n SketchBehaviours.field('sandboxBehaviours', [\n Composing,\n Receiving,\n Sandboxing,\n Representing\n ])\n ];\n };\n\n var schema$g = constant([\n strict$1('dom'),\n strict$1('fetch'),\n onHandler('onOpen'),\n onKeyboardHandler('onExecute'),\n defaulted$1('getHotspot', Option.some),\n defaulted$1('getAnchorOverrides', constant({})),\n defaulted$1('layouts', Option.none()),\n field$1('dropdownBehaviours', [\n Toggling,\n Coupling,\n Keying,\n Focusing\n ]),\n strict$1('toggleClass'),\n defaulted$1('eventOrder', {}),\n option('lazySink'),\n defaulted$1('matchWidth', false),\n defaulted$1('useMinWidth', false),\n option('role')\n ].concat(sandboxFields()));\n var parts$4 = constant([\n external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return { onExecute: detail.onExecute };\n }\n }),\n partType()\n ]);\n\n var factory$6 = function (detail, components, _spec, externals) {\n var _a;\n var lookupAttr = function (attr) {\n return readOptFrom$1(detail.dom, 'attributes').bind(function (attrs) {\n return readOptFrom$1(attrs, attr);\n });\n };\n var switchToMenu = function (sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.highlightPrimary(tmenu);\n });\n };\n var action = function (component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, function (x) {\n return x;\n }, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var apis = {\n expand: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n isOpen: Toggling.isOn,\n close: function (comp) {\n if (Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n repositionMenus: function (comp) {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n var triggerExecute = function (comp, se) {\n emitExecute(comp);\n return Option.some(true);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.dropdownBehaviours, [\n Toggling.config({\n toggleClass: detail.toggleClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox(detail, hotspot, {\n onOpen: function () {\n Toggling.on(hotspot);\n },\n onClose: function () {\n Toggling.off(hotspot);\n }\n });\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: triggerExecute,\n onEnter: triggerExecute,\n onDown: function (comp, se) {\n if (Dropdown.isOpen(comp)) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n switchToMenu(sandbox);\n } else {\n Dropdown.open(comp);\n }\n return Option.some(true);\n },\n onEscape: function (comp, se) {\n if (Dropdown.isOpen(comp)) {\n Dropdown.close(comp);\n return Option.some(true);\n } else {\n return Option.none();\n }\n }\n }),\n Focusing.config({})\n ]),\n events: events$7(Option.some(action)),\n eventOrder: __assign(__assign({}, detail.eventOrder), (_a = {}, _a[execute()] = [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ], _a)),\n apis: apis,\n domModification: {\n attributes: __assign(__assign({ 'aria-haspopup': 'true' }, detail.role.fold(function () {\n return {};\n }, function (role) {\n return { role: role };\n })), detail.dom.tag === 'button' ? { type: lookupAttr('type').getOr('button') } : {})\n }\n };\n };\n var Dropdown = composite$1({\n name: 'Dropdown',\n configFields: schema$g(),\n partFields: parts$4(),\n factory: factory$6,\n apis: {\n open: function (apis, comp) {\n return apis.open(comp);\n },\n expand: function (apis, comp) {\n return apis.expand(comp);\n },\n close: function (apis, comp) {\n return apis.close(comp);\n },\n isOpen: function (apis, comp) {\n return apis.isOpen(comp);\n },\n repositionMenus: function (apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n\n var exhibit$5 = function (base, unselectConfig) {\n return nu$6({\n styles: {\n '-webkit-user-select': 'none',\n 'user-select': 'none',\n '-ms-user-select': 'none',\n '-moz-user-select': '-moz-none'\n },\n attributes: { unselectable: 'on' }\n });\n };\n var events$b = function (unselectConfig) {\n return derive([abort(selectstart(), constant(true))]);\n };\n\n var ActiveUnselecting = /*#__PURE__*/Object.freeze({\n events: events$b,\n exhibit: exhibit$5\n });\n\n var Unselecting = create$1({\n fields: [],\n name: 'unselecting',\n active: ActiveUnselecting\n });\n\n var renderPanelButton = function (spec, sharedBackstage) {\n return Dropdown.sketch({\n dom: spec.dom,\n components: spec.components,\n toggleClass: 'mce-active',\n dropdownBehaviours: derive$1([\n Unselecting.config({}),\n Tabstopping.config({})\n ]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: function (comp) {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Option.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$1('menu-value'), items, function (value) {\n spec.onItemAction(comp, value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, function () {\n return false;\n }, sharedBackstage.providers), { movement: deriveMenuMovement(spec.columns, spec.presets) })));\n });\n },\n parts: { menu: part(false, 1, spec.presets) }\n });\n };\n\n var colorInputChangeEvent = generate$1('color-input-change');\n var colorSwatchChangeEvent = generate$1('color-swatch-change');\n var colorPickerCancelEvent = generate$1('color-picker-cancel');\n var renderColorInput = function (spec, sharedBackstage, colorInputBackstage) {\n var pField = FormField.parts().field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n onSetValue: function (c) {\n return Invalidating.run(c).get(function () {\n });\n },\n inputBehaviours: derive$1([\n Tabstopping.config({}),\n Invalidating.config({\n invalidClass: 'tox-textbox-field-invalid',\n getRoot: function (comp) {\n return parent(comp.element());\n },\n notify: {\n onValid: function (comp) {\n var val = Representing.getValue(comp);\n emitWith(comp, colorInputChangeEvent, { color: val });\n }\n },\n validator: {\n validateOnLoad: false,\n validate: function (input) {\n var inputValue = Representing.getValue(input);\n if (inputValue.length === 0) {\n return Future.pure(Result.value(true));\n } else {\n var span = Element.fromTag('span');\n set$2(span, 'background-color', inputValue);\n var res = getRaw(span, 'background-color').fold(function () {\n return Result.error('blah');\n }, function (_) {\n return Result.value(inputValue);\n });\n return Future.pure(res);\n }\n }\n }\n })\n ]),\n selectOnFocus: false\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, sharedBackstage.providers);\n });\n var emitSwatchChange = function (colorBit, value) {\n emitWith(colorBit, colorSwatchChangeEvent, { value: value });\n };\n var onItemAction = function (comp, value) {\n memColorButton.getOpt(comp).each(function (colorBit) {\n if (value === 'custom') {\n colorInputBackstage.colorPicker(function (valueOpt) {\n valueOpt.fold(function () {\n return emit(colorBit, colorPickerCancelEvent);\n }, function (value) {\n emitSwatchChange(colorBit, value);\n Settings.addColor(value);\n });\n }, '#ffffff');\n } else if (value === 'remove') {\n emitSwatchChange(colorBit, '');\n } else {\n emitSwatchChange(colorBit, value);\n }\n });\n };\n var memColorButton = record(renderPanelButton({\n dom: {\n tag: 'span',\n attributes: { 'aria-label': sharedBackstage.providers.translate('Color swatch') }\n },\n layouts: Option.some({\n onRtl: function () {\n return [southeast$1];\n },\n onLtr: function () {\n return [southwest$1];\n }\n }),\n components: [],\n fetch: ColorSwatch.getFetch(colorInputBackstage.getColors(), colorInputBackstage.hasCustomColors()),\n columns: colorInputBackstage.getColorCols(),\n presets: 'color',\n onItemAction: onItemAction\n }, sharedBackstage));\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: pLabel.toArray().concat([{\n dom: {\n tag: 'div',\n classes: ['tox-color-input']\n },\n components: [\n pField,\n memColorButton.asSpec()\n ]\n }]),\n fieldBehaviours: derive$1([config('form-field-events', [\n run(colorInputChangeEvent, function (comp, se) {\n memColorButton.getOpt(comp).each(function (colorButton) {\n set$2(colorButton.element(), 'background-color', se.event().color());\n });\n emitWith(comp, formChangeEvent, { name: spec.name });\n }),\n run(colorSwatchChangeEvent, function (comp, se) {\n FormField.getField(comp).each(function (field) {\n Representing.setValue(field, se.event().value());\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n }),\n run(colorPickerCancelEvent, function (comp, se) {\n FormField.getField(comp).each(function (field) {\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n })\n ])])\n });\n };\n\n var hsvColour = function (hue, saturation, value) {\n return {\n hue: constant(hue),\n saturation: constant(saturation),\n value: constant(value)\n };\n };\n var fromRgb = function (rgbaColour) {\n var h = 0;\n var s = 0;\n var v = 0;\n var r = rgbaColour.red() / 255;\n var g = rgbaColour.green() / 255;\n var b = rgbaColour.blue() / 255;\n var minRGB = Math.min(r, Math.min(g, b));\n var maxRGB = Math.max(r, Math.max(g, b));\n if (minRGB === maxRGB) {\n v = minRGB;\n return hsvColour(0, 0, v * 100);\n }\n var d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\n h = 60 * (h - d / (maxRGB - minRGB));\n s = (maxRGB - minRGB) / maxRGB;\n v = maxRGB;\n return hsvColour(Math.round(h), Math.round(s * 100), Math.round(v * 100));\n };\n\n var calcHex = function (value) {\n var hue = (100 - value) / 100 * 360;\n var hsv = hsvColour(hue, 100, 100);\n var rgb = fromHsv(hsv);\n return fromRgba(rgb);\n };\n\n var fieldsUpdate = constant(generate$1('rgb-hex-update'));\n var sliderUpdate = constant(generate$1('slider-update'));\n var paletteUpdate = constant(generate$1('palette-update'));\n\n var platform$1 = detect$3();\n var isTouch = platform$1.deviceType.isTouch();\n var labelPart = optional({\n schema: [strict$1('dom')],\n name: 'label'\n });\n var edgePart = function (name) {\n return optional({\n name: '' + name + '-edge',\n overrides: function (detail) {\n var action = detail.model.manager.edgeActions[name];\n return action.fold(function () {\n return {};\n }, function (a) {\n var touchEvents = derive([runActionExtra(touchstart(), a, [detail])]);\n var mouseEvents = derive([\n runActionExtra(mousedown(), a, [detail]),\n runActionExtra(mousemove(), function (l, det) {\n if (det.mouseIsDown.get()) {\n a(l, det);\n }\n }, [detail])\n ]);\n return { events: isTouch ? touchEvents : mouseEvents };\n });\n }\n });\n };\n var tlEdgePart = edgePart('top-left');\n var tedgePart = edgePart('top');\n var trEdgePart = edgePart('top-right');\n var redgePart = edgePart('right');\n var brEdgePart = edgePart('bottom-right');\n var bedgePart = edgePart('bottom');\n var blEdgePart = edgePart('bottom-left');\n var ledgePart = edgePart('left');\n var thumbPart = required({\n name: 'thumb',\n defaults: constant({ dom: { styles: { position: 'absolute' } } }),\n overrides: function (detail) {\n return {\n events: derive([\n redirectToPart(touchstart(), detail, 'spectrum'),\n redirectToPart(touchmove(), detail, 'spectrum'),\n redirectToPart(touchend(), detail, 'spectrum'),\n redirectToPart(mousedown(), detail, 'spectrum'),\n redirectToPart(mousemove(), detail, 'spectrum'),\n redirectToPart(mouseup(), detail, 'spectrum')\n ])\n };\n }\n });\n var spectrumPart = required({\n schema: [state$1('mouseIsDown', function () {\n return Cell(false);\n })],\n name: 'spectrum',\n overrides: function (detail) {\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n var setValueFrom = function (component, simulatedEvent) {\n return model.getValueFromEvent(simulatedEvent).map(function (value) {\n return model.setValueFrom(component, detail, value);\n });\n };\n var touchEvents = derive([\n run(touchstart(), setValueFrom),\n run(touchmove(), setValueFrom)\n ]);\n var mouseEvents = derive([\n run(mousedown(), setValueFrom),\n run(mousemove(), function (spectrum, se) {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })\n ]);\n return {\n behaviours: derive$1(isTouch ? [] : [\n Keying.config({\n mode: 'special',\n onLeft: function (spectrum) {\n return model.onLeft(spectrum, detail);\n },\n onRight: function (spectrum) {\n return model.onRight(spectrum, detail);\n },\n onUp: function (spectrum) {\n return model.onUp(spectrum, detail);\n },\n onDown: function (spectrum) {\n return model.onDown(spectrum, detail);\n }\n }),\n Focusing.config({})\n ]),\n events: isTouch ? touchEvents : mouseEvents\n };\n }\n });\n var SliderParts = [\n labelPart,\n ledgePart,\n redgePart,\n tedgePart,\n bedgePart,\n tlEdgePart,\n trEdgePart,\n blEdgePart,\n brEdgePart,\n thumbPart,\n spectrumPart\n ];\n\n var isTouch$1 = detect$3().deviceType.isTouch();\n var _sliderChangeEvent = 'slider.change.value';\n var sliderChangeEvent = constant(_sliderChangeEvent);\n var getEventSource = function (simulatedEvent) {\n var evt = simulatedEvent.event().raw();\n if (isTouch$1) {\n var touchEvent = evt;\n return touchEvent.touches !== undefined && touchEvent.touches.length === 1 ? Option.some(touchEvent.touches[0]).map(function (t) {\n return Position(t.clientX, t.clientY);\n }) : Option.none();\n } else {\n var mouseEvent = evt;\n return mouseEvent.clientX !== undefined ? Option.some(mouseEvent).map(function (me) {\n return Position(me.clientX, me.clientY);\n }) : Option.none();\n }\n };\n\n var t = 'top', r$1 = 'right', b = 'bottom', l = 'left';\n var minX = function (detail) {\n return detail.model.minX;\n };\n var minY = function (detail) {\n return detail.model.minY;\n };\n var min1X = function (detail) {\n return detail.model.minX - 1;\n };\n var min1Y = function (detail) {\n return detail.model.minY - 1;\n };\n var maxX = function (detail) {\n return detail.model.maxX;\n };\n var maxY = function (detail) {\n return detail.model.maxY;\n };\n var max1X = function (detail) {\n return detail.model.maxX + 1;\n };\n var max1Y = function (detail) {\n return detail.model.maxY + 1;\n };\n var range$2 = function (detail, max, min) {\n return max(detail) - min(detail);\n };\n var xRange = function (detail) {\n return range$2(detail, maxX, minX);\n };\n var yRange = function (detail) {\n return range$2(detail, maxY, minY);\n };\n var halfX = function (detail) {\n return xRange(detail) / 2;\n };\n var halfY = function (detail) {\n return yRange(detail) / 2;\n };\n var step = function (detail) {\n return detail.stepSize;\n };\n var snap = function (detail) {\n return detail.snapToGrid;\n };\n var snapStart = function (detail) {\n return detail.snapStart;\n };\n var rounded = function (detail) {\n return detail.rounded;\n };\n var hasEdge = function (detail, edgeName) {\n return detail[edgeName + '-edge'] !== undefined;\n };\n var hasLEdge = function (detail) {\n return hasEdge(detail, l);\n };\n var hasREdge = function (detail) {\n return hasEdge(detail, r$1);\n };\n var hasTEdge = function (detail) {\n return hasEdge(detail, t);\n };\n var hasBEdge = function (detail) {\n return hasEdge(detail, b);\n };\n var currentValue = function (detail) {\n return detail.model.value.get();\n };\n\n var xValue = function (x) {\n return { x: constant(x) };\n };\n var yValue = function (y) {\n return { y: constant(y) };\n };\n var xyValue = function (x, y) {\n return {\n x: constant(x),\n y: constant(y)\n };\n };\n var fireSliderChange = function (component, value) {\n emitWith(component, sliderChangeEvent(), { value: value });\n };\n var setToTLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n var setToTEdge = function (edge, detail) {\n fireSliderChange(edge, yValue(min1Y(detail)));\n };\n var setToTEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n var setToTREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n var setToREdge = function (edge, detail) {\n fireSliderChange(edge, xValue(max1X(detail)));\n };\n var setToREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), halfY(detail)));\n };\n var setToBREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n var setToBEdge = function (edge, detail) {\n fireSliderChange(edge, yValue(max1Y(detail)));\n };\n var setToBEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n var setToBLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n var setToLEdge = function (edge, detail) {\n fireSliderChange(edge, xValue(min1X(detail)));\n };\n var setToLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), halfY(detail)));\n };\n\n var reduceBy = function (value, min, max, step) {\n if (value < min) {\n return value;\n } else if (value > max) {\n return max;\n } else if (value === min) {\n return min - 1;\n } else {\n return Math.max(min, value - step);\n }\n };\n var increaseBy = function (value, min, max, step) {\n if (value > max) {\n return value;\n } else if (value < min) {\n return min;\n } else if (value === max) {\n return max + 1;\n } else {\n return Math.min(max, value + step);\n }\n };\n var capValue = function (value, min, max) {\n return Math.max(min, Math.min(max, value));\n };\n var snapValueOf = function (value, min, max, step, snapStart) {\n return snapStart.fold(function () {\n var initValue = value - min;\n var extraValue = Math.round(initValue / step) * step;\n return capValue(min + extraValue, min - 1, max + 1);\n }, function (start) {\n var remainder = (value - start) % step;\n var adjustment = Math.round(remainder / step);\n var rawSteps = Math.floor((value - start) / step);\n var maxSteps = Math.floor((max - start) / step);\n var numSteps = Math.min(maxSteps, rawSteps + adjustment);\n var r = start + numSteps * step;\n return Math.max(start, r);\n });\n };\n var findOffsetOf = function (value, min, max) {\n return Math.min(max, Math.max(value, min)) - min;\n };\n var findValueOf = function (args) {\n var min = args.min, max = args.max, range = args.range, value = args.value, step = args.step, snap = args.snap, snapStart = args.snapStart, rounded = args.rounded, hasMinEdge = args.hasMinEdge, hasMaxEdge = args.hasMaxEdge, minBound = args.minBound, maxBound = args.maxBound, screenRange = args.screenRange;\n var capMin = hasMinEdge ? min - 1 : min;\n var capMax = hasMaxEdge ? max + 1 : max;\n if (value < minBound) {\n return capMin;\n } else if (value > maxBound) {\n return capMax;\n } else {\n var offset = findOffsetOf(value, minBound, maxBound);\n var newValue = capValue(offset / screenRange * range + min, capMin, capMax);\n if (snap && newValue >= min && newValue <= max) {\n return snapValueOf(newValue, min, max, step, snapStart);\n } else if (rounded) {\n return Math.round(newValue);\n } else {\n return newValue;\n }\n }\n };\n var findOffsetOfValue = function (args) {\n var min = args.min, max = args.max, range = args.range, value = args.value, hasMinEdge = args.hasMinEdge, hasMaxEdge = args.hasMaxEdge, maxBound = args.maxBound, maxOffset = args.maxOffset, centerMinEdge = args.centerMinEdge, centerMaxEdge = args.centerMaxEdge;\n if (value < min) {\n return hasMinEdge ? 0 : centerMinEdge;\n } else if (value > max) {\n return hasMaxEdge ? maxBound : centerMaxEdge;\n } else {\n return (value - min) / range * maxOffset;\n }\n };\n\n var top = 'top', right = 'right', bottom = 'bottom', left = 'left', width = 'width', height = 'height';\n var getBounds$1 = function (component) {\n return component.element().dom().getBoundingClientRect();\n };\n var getBoundsProperty = function (bounds, property) {\n return bounds[property];\n };\n var getMinXBounds = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, left);\n };\n var getMaxXBounds = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, right);\n };\n var getMinYBounds = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, top);\n };\n var getMaxYBounds = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, bottom);\n };\n var getXScreenRange = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, width);\n };\n var getYScreenRange = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, height);\n };\n var getCenterOffsetOf = function (componentMinEdge, componentMaxEdge, spectrumMinEdge) {\n return (componentMinEdge + componentMaxEdge) / 2 - spectrumMinEdge;\n };\n var getXCenterOffSetOf = function (component, spectrum) {\n var componentBounds = getBounds$1(component);\n var spectrumBounds = getBounds$1(spectrum);\n var componentMinEdge = getBoundsProperty(componentBounds, left);\n var componentMaxEdge = getBoundsProperty(componentBounds, right);\n var spectrumMinEdge = getBoundsProperty(spectrumBounds, left);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n var getYCenterOffSetOf = function (component, spectrum) {\n var componentBounds = getBounds$1(component);\n var spectrumBounds = getBounds$1(spectrum);\n var componentMinEdge = getBoundsProperty(componentBounds, top);\n var componentMaxEdge = getBoundsProperty(componentBounds, bottom);\n var spectrumMinEdge = getBoundsProperty(spectrumBounds, top);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n\n var fireSliderChange$1 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue = function (x) {\n return { x: constant(x) };\n };\n var findValueOfOffset = function (spectrum, detail, left) {\n var args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: left,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n maxBound: getMaxXBounds(spectrum),\n screenRange: getXScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n var setValueFrom = function (spectrum, detail, value) {\n var xValue = findValueOfOffset(spectrum, detail, value);\n var sliderVal = sliderValue(xValue);\n fireSliderChange$1(spectrum, sliderVal);\n return xValue;\n };\n var setToMin = function (spectrum, detail) {\n var min = minX(detail);\n fireSliderChange$1(spectrum, sliderValue(min));\n };\n var setToMax = function (spectrum, detail) {\n var max = maxX(detail);\n fireSliderChange$1(spectrum, sliderValue(max));\n };\n var moveBy = function (direction, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var xValue = f(currentValue(detail).x(), minX(detail), maxX(detail), step(detail));\n fireSliderChange$1(spectrum, sliderValue(xValue));\n return Option.some(xValue);\n };\n var handleMovement = function (direction) {\n return function (spectrum, detail) {\n return moveBy(direction, spectrum, detail).map(function () {\n return true;\n });\n };\n };\n var getValueFromEvent = function (simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.left();\n });\n };\n var findOffsetOfValue$1 = function (spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getXScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Option.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Option.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(maxOffset);\n var args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: value,\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n minOffset: minOffset,\n maxBound: getMaxXBounds(spectrum),\n maxOffset: maxOffset,\n centerMinEdge: centerMinEdge,\n centerMaxEdge: centerMaxEdge\n };\n return findOffsetOfValue(args);\n };\n var findPositionOfValue = function (slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue$1(spectrum, detail, value, minEdge, maxEdge);\n return getMinXBounds(spectrum) - getMinXBounds(slider) + offset;\n };\n var setPositionFromValue = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue(slider, edges.getSpectrum(slider), value.x(), edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var thumbRadius = get$7(thumb.element()) / 2;\n set$2(thumb.element(), 'left', pos - thumbRadius + 'px');\n };\n var onLeft = handleMovement(-1);\n var onRight = handleMovement(1);\n var onUp = Option.none;\n var onDown = Option.none;\n var edgeActions = {\n 'top-left': Option.none(),\n 'top': Option.none(),\n 'top-right': Option.none(),\n 'right': Option.some(setToREdge),\n 'bottom-right': Option.none(),\n 'bottom': Option.none(),\n 'bottom-left': Option.none(),\n 'left': Option.some(setToLEdge)\n };\n\n var HorizontalModel = /*#__PURE__*/Object.freeze({\n setValueFrom: setValueFrom,\n setToMin: setToMin,\n setToMax: setToMax,\n findValueOfOffset: findValueOfOffset,\n getValueFromEvent: getValueFromEvent,\n findPositionOfValue: findPositionOfValue,\n setPositionFromValue: setPositionFromValue,\n onLeft: onLeft,\n onRight: onRight,\n onUp: onUp,\n onDown: onDown,\n edgeActions: edgeActions\n });\n\n var fireSliderChange$2 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue$1 = function (y) {\n return { y: constant(y) };\n };\n var findValueOfOffset$1 = function (spectrum, detail, top) {\n var args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: top,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n maxBound: getMaxYBounds(spectrum),\n screenRange: getYScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n var setValueFrom$1 = function (spectrum, detail, value) {\n var yValue = findValueOfOffset$1(spectrum, detail, value);\n var sliderVal = sliderValue$1(yValue);\n fireSliderChange$2(spectrum, sliderVal);\n return yValue;\n };\n var setToMin$1 = function (spectrum, detail) {\n var min = minY(detail);\n fireSliderChange$2(spectrum, sliderValue$1(min));\n };\n var setToMax$1 = function (spectrum, detail) {\n var max = maxY(detail);\n fireSliderChange$2(spectrum, sliderValue$1(max));\n };\n var moveBy$1 = function (direction, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var yValue = f(currentValue(detail).y(), minY(detail), maxY(detail), step(detail));\n fireSliderChange$2(spectrum, sliderValue$1(yValue));\n return Option.some(yValue);\n };\n var handleMovement$1 = function (direction) {\n return function (spectrum, detail) {\n return moveBy$1(direction, spectrum, detail).map(function () {\n return true;\n });\n };\n };\n var getValueFromEvent$1 = function (simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.top();\n });\n };\n var findOffsetOfValue$2 = function (spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getYScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Option.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Option.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(maxOffset);\n var args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: value,\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n minOffset: minOffset,\n maxBound: getMaxYBounds(spectrum),\n maxOffset: maxOffset,\n centerMinEdge: centerMinEdge,\n centerMaxEdge: centerMaxEdge\n };\n return findOffsetOfValue(args);\n };\n var findPositionOfValue$1 = function (slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue$2(spectrum, detail, value, minEdge, maxEdge);\n return getMinYBounds(spectrum) - getMinYBounds(slider) + offset;\n };\n var setPositionFromValue$1 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.y(), edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbRadius = get$6(thumb.element()) / 2;\n set$2(thumb.element(), 'top', pos - thumbRadius + 'px');\n };\n var onLeft$1 = Option.none;\n var onRight$1 = Option.none;\n var onUp$1 = handleMovement$1(-1);\n var onDown$1 = handleMovement$1(1);\n var edgeActions$1 = {\n 'top-left': Option.none(),\n 'top': Option.some(setToTEdge),\n 'top-right': Option.none(),\n 'right': Option.none(),\n 'bottom-right': Option.none(),\n 'bottom': Option.some(setToBEdge),\n 'bottom-left': Option.none(),\n 'left': Option.none()\n };\n\n var VerticalModel = /*#__PURE__*/Object.freeze({\n setValueFrom: setValueFrom$1,\n setToMin: setToMin$1,\n setToMax: setToMax$1,\n findValueOfOffset: findValueOfOffset$1,\n getValueFromEvent: getValueFromEvent$1,\n findPositionOfValue: findPositionOfValue$1,\n setPositionFromValue: setPositionFromValue$1,\n onLeft: onLeft$1,\n onRight: onRight$1,\n onUp: onUp$1,\n onDown: onDown$1,\n edgeActions: edgeActions$1\n });\n\n var fireSliderChange$3 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue$2 = function (x, y) {\n return {\n x: constant(x),\n y: constant(y)\n };\n };\n var setValueFrom$2 = function (spectrum, detail, value) {\n var xValue = findValueOfOffset(spectrum, detail, value.left());\n var yValue = findValueOfOffset$1(spectrum, detail, value.top());\n var val = sliderValue$2(xValue, yValue);\n fireSliderChange$3(spectrum, val);\n return val;\n };\n var moveBy$2 = function (direction, isVerticalMovement, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var xValue = isVerticalMovement ? currentValue(detail).x() : f(currentValue(detail).x(), minX(detail), maxX(detail), step(detail));\n var yValue = !isVerticalMovement ? currentValue(detail).y() : f(currentValue(detail).y(), minY(detail), maxY(detail), step(detail));\n fireSliderChange$3(spectrum, sliderValue$2(xValue, yValue));\n return Option.some(xValue);\n };\n var handleMovement$2 = function (direction, isVerticalMovement) {\n return function (spectrum, detail) {\n return moveBy$2(direction, isVerticalMovement, spectrum, detail).map(function () {\n return true;\n });\n };\n };\n var setToMin$2 = function (spectrum, detail) {\n var mX = minX(detail);\n var mY = minY(detail);\n fireSliderChange$3(spectrum, sliderValue$2(mX, mY));\n };\n var setToMax$2 = function (spectrum, detail) {\n var mX = maxX(detail);\n var mY = maxY(detail);\n fireSliderChange$3(spectrum, sliderValue$2(mX, mY));\n };\n var getValueFromEvent$2 = function (simulatedEvent) {\n return getEventSource(simulatedEvent);\n };\n var setPositionFromValue$2 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var xPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.x(), edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var yPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.y(), edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbXRadius = get$7(thumb.element()) / 2;\n var thumbYRadius = get$6(thumb.element()) / 2;\n set$2(thumb.element(), 'left', xPos - thumbXRadius + 'px');\n set$2(thumb.element(), 'top', yPos - thumbYRadius + 'px');\n };\n var onLeft$2 = handleMovement$2(-1, false);\n var onRight$2 = handleMovement$2(1, false);\n var onUp$2 = handleMovement$2(-1, true);\n var onDown$2 = handleMovement$2(1, true);\n var edgeActions$2 = {\n 'top-left': Option.some(setToTLEdgeXY),\n 'top': Option.some(setToTEdgeXY),\n 'top-right': Option.some(setToTREdgeXY),\n 'right': Option.some(setToREdgeXY),\n 'bottom-right': Option.some(setToBREdgeXY),\n 'bottom': Option.some(setToBEdgeXY),\n 'bottom-left': Option.some(setToBLEdgeXY),\n 'left': Option.some(setToLEdgeXY)\n };\n\n var TwoDModel = /*#__PURE__*/Object.freeze({\n setValueFrom: setValueFrom$2,\n setToMin: setToMin$2,\n setToMax: setToMax$2,\n getValueFromEvent: getValueFromEvent$2,\n setPositionFromValue: setPositionFromValue$2,\n onLeft: onLeft$2,\n onRight: onRight$2,\n onUp: onUp$2,\n onDown: onDown$2,\n edgeActions: edgeActions$2\n });\n\n var isTouch$2 = detect$3().deviceType.isTouch();\n var SliderSchema = [\n defaulted$1('stepSize', 1),\n defaulted$1('onChange', noop),\n defaulted$1('onChoose', noop),\n defaulted$1('onInit', noop),\n defaulted$1('onDragStart', noop),\n defaulted$1('onDragEnd', noop),\n defaulted$1('snapToGrid', false),\n defaulted$1('rounded', true),\n option('snapStart'),\n strictOf('model', choose$1('mode', {\n x: [\n defaulted$1('minX', 0),\n defaulted$1('maxX', 100),\n state$1('value', function (spec) {\n return Cell(spec.mode.minX);\n }),\n strict$1('getInitialValue'),\n output('manager', HorizontalModel)\n ],\n y: [\n defaulted$1('minY', 0),\n defaulted$1('maxY', 100),\n state$1('value', function (spec) {\n return Cell(spec.mode.minY);\n }),\n strict$1('getInitialValue'),\n output('manager', VerticalModel)\n ],\n xy: [\n defaulted$1('minX', 0),\n defaulted$1('maxX', 100),\n defaulted$1('minY', 0),\n defaulted$1('maxY', 100),\n state$1('value', function (spec) {\n return Cell({\n x: constant(spec.mode.minX),\n y: constant(spec.mode.minY)\n });\n }),\n strict$1('getInitialValue'),\n output('manager', TwoDModel)\n ]\n })),\n field$1('sliderBehaviours', [\n Keying,\n Representing\n ])\n ].concat(!isTouch$2 ? [state$1('mouseIsDown', function () {\n return Cell(false);\n })] : []);\n\n var isTouch$3 = detect$3().deviceType.isTouch();\n var sketch = function (detail, components, _spec, _externals) {\n var getThumb = function (component) {\n return getPartOrDie(component, detail, 'thumb');\n };\n var getSpectrum = function (component) {\n return getPartOrDie(component, detail, 'spectrum');\n };\n var getLeftEdge = function (component) {\n return getPart(component, detail, 'left-edge');\n };\n var getRightEdge = function (component) {\n return getPart(component, detail, 'right-edge');\n };\n var getTopEdge = function (component) {\n return getPart(component, detail, 'top-edge');\n };\n var getBottomEdge = function (component) {\n return getPart(component, detail, 'bottom-edge');\n };\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n var refresh = function (slider, thumb) {\n model.setPositionFromValue(slider, thumb, detail, {\n getLeftEdge: getLeftEdge,\n getRightEdge: getRightEdge,\n getTopEdge: getTopEdge,\n getBottomEdge: getBottomEdge,\n getSpectrum: getSpectrum\n });\n };\n var changeValue = function (slider, newValue) {\n modelDetail.value.set(newValue);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n detail.onChange(slider, thumb, newValue);\n return Option.some(true);\n };\n var resetToMin = function (slider) {\n model.setToMin(slider, detail);\n };\n var resetToMax = function (slider) {\n model.setToMax(slider, detail);\n };\n var touchEvents = [\n run(touchstart(), function (slider, _simulatedEvent) {\n detail.onDragStart(slider, getThumb(slider));\n }),\n run(touchend(), function (slider, _simulatedEvent) {\n detail.onDragEnd(slider, getThumb(slider));\n })\n ];\n var mouseEvents = [\n run(mousedown(), function (slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.onDragStart(slider, getThumb(slider));\n detail.mouseIsDown.set(true);\n }),\n run(mouseup(), function (slider, _simulatedEvent) {\n detail.onDragEnd(slider, getThumb(slider));\n })\n ];\n var uiEventsArr = isTouch$3 ? touchEvents : mouseEvents;\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.sliderBehaviours, flatten([\n !isTouch$3 ? [Keying.config({\n mode: 'special',\n focusIn: function (slider) {\n return getPart(slider, detail, 'spectrum').map(Keying.focusIn).map(constant(true));\n }\n })] : [],\n [\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (_) {\n return modelDetail.value.get();\n }\n }\n }),\n Receiving.config({\n channels: {\n 'mouse.released': {\n onReceive: function (slider, se) {\n var fireOnChoose = function () {\n getPart(slider, detail, 'thumb').each(function (thumb) {\n var value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n };\n if (isTouch$3) {\n fireOnChoose();\n } else {\n var wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n if (wasDown) {\n fireOnChoose();\n }\n }\n }\n }\n }\n })\n ]\n ])),\n events: derive([\n run(sliderChangeEvent(), function (slider, simulatedEvent) {\n changeValue(slider, simulatedEvent.event().value());\n }),\n runOnAttached(function (slider, simulatedEvent) {\n var getInitial = modelDetail.getInitialValue();\n modelDetail.value.set(getInitial);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n var spectrum = getSpectrum(slider);\n detail.onInit(slider, thumb, spectrum, modelDetail.value.get());\n })\n ].concat(uiEventsArr)),\n apis: {\n resetToMin: resetToMin,\n resetToMax: resetToMax,\n changeValue: changeValue,\n refresh: refresh\n },\n domModification: { styles: { position: 'relative' } }\n };\n };\n\n var Slider = composite$1({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch,\n apis: {\n resetToMin: function (apis, slider) {\n apis.resetToMin(slider);\n },\n resetToMax: function (apis, slider) {\n apis.resetToMax(slider);\n },\n refresh: function (apis, slider) {\n apis.refresh(slider);\n }\n }\n });\n\n var sliderFactory = function (translate, getClass) {\n var spectrum = Slider.parts().spectrum({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-spectrum')],\n attributes: { role: 'presentation' }\n }\n });\n var thumb = Slider.parts().thumb({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-thumb')],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider')],\n attributes: { role: 'presentation' }\n },\n rounded: false,\n model: {\n mode: 'y',\n getInitialValue: constant({ y: constant(0) })\n },\n components: [\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChange: function (slider, _thumb, value) {\n emitWith(slider, sliderUpdate(), { value: value });\n }\n });\n };\n var HueSlider = { sliderFactory: sliderFactory };\n\n var owner$3 = 'form';\n var schema$h = [field$1('formBehaviours', [Representing])];\n var getPartName = function (name) {\n return '<alloy.field.' + name + '>';\n };\n var sketch$1 = function (fSpec) {\n var parts = function () {\n var record = [];\n var field = function (name, config) {\n record.push(name);\n return generateOne(owner$3, getPartName(name), config);\n };\n return {\n field: field,\n record: function () {\n return record;\n }\n };\n }();\n var spec = fSpec(parts);\n var partNames = parts.record();\n var fieldParts = map(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName(n)\n });\n });\n return composite(owner$3, schema$h, fieldParts, make$4, spec);\n };\n var toResult$1 = function (o, e) {\n return o.fold(function () {\n return Result.error(e);\n }, Result.value);\n };\n var make$4 = function (detail, components, spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.formBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n getValue: function (form) {\n var resPs = getAllParts(form, detail);\n return map$1(resPs, function (resPThunk, pName) {\n return resPThunk().bind(function (v) {\n var opt = Composing.getCurrent(v);\n return toResult$1(opt, 'missing current');\n }).map(Representing.getValue);\n });\n },\n setValue: function (form, values) {\n each$1(values, function (newValue, key) {\n getPart(form, detail, key).each(function (wrapper) {\n Composing.getCurrent(wrapper).each(function (field) {\n Representing.setValue(field, newValue);\n });\n });\n });\n }\n }\n })]),\n apis: {\n getField: function (form, key) {\n return getPart(form, detail, key).bind(Composing.getCurrent);\n }\n }\n };\n };\n var Form = {\n getField: makeApi(function (apis, component, key) {\n return apis.getField(component, key);\n }),\n sketch: sketch$1\n };\n\n var validInput = generate$1('valid-input');\n var invalidInput = generate$1('invalid-input');\n var validatingInput = generate$1('validating-input');\n var translatePrefix = 'colorcustom.rgb.';\n var rgbFormFactory = function (translate, getClass, onValidHexx, onInvalidHexx) {\n var invalidation = function (label, isValid) {\n return Invalidating.config({\n invalidClass: getClass('invalid'),\n notify: {\n onValidate: function (comp) {\n emitWith(comp, validatingInput, { type: label });\n },\n onValid: function (comp) {\n emitWith(comp, validInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n },\n onInvalid: function (comp) {\n emitWith(comp, invalidInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n }\n },\n validator: {\n validate: function (comp) {\n var value = Representing.getValue(comp);\n var res = isValid(value) ? Result.value(true) : Result.error(translate('aria.input.invalid'));\n return Future.pure(res);\n },\n validateOnLoad: false\n }\n });\n };\n var renderTextField = function (isValid, name, label, description, data) {\n var helptext = translate(translatePrefix + 'range');\n var pLabel = FormField.parts().label({\n dom: {\n tag: 'label',\n innerHtml: label,\n attributes: { 'aria-label': description }\n }\n });\n var pField = FormField.parts().field({\n data: data,\n factory: Input,\n inputAttributes: __assign({ type: 'text' }, name === 'hex' ? { 'aria-live': 'polite' } : {}),\n inputClasses: [getClass('textfield')],\n inputBehaviours: derive$1([\n invalidation(name, isValid),\n Tabstopping.config({})\n ]),\n onSetValue: function (input) {\n if (Invalidating.isInvalid(input)) {\n var run = Invalidating.run(input);\n run.get(noop);\n }\n }\n });\n var comps = [\n pLabel,\n pField\n ];\n var concats = name !== 'hex' ? [FormField.parts()['aria-descriptor']({ text: helptext })] : [];\n var components = comps.concat(concats);\n return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' }\n },\n components: components\n };\n };\n var copyRgbToHex = function (form, rgba) {\n var hex = fromRgba(rgba);\n Form.getField(form, 'hex').each(function (hexField) {\n if (!Focusing.isFocused(hexField)) {\n Representing.setValue(form, { hex: hex.value() });\n }\n });\n return hex;\n };\n var copyRgbToForm = function (form, rgb) {\n var red = rgb.red();\n var green = rgb.green();\n var blue = rgb.blue();\n Representing.setValue(form, {\n red: red,\n green: green,\n blue: blue\n });\n };\n var memPreview = record({\n dom: {\n tag: 'div',\n classes: [getClass('rgba-preview')],\n styles: { 'background-color': 'white' },\n attributes: { role: 'presentation' }\n }\n });\n var updatePreview = function (anyInSystem, hex) {\n memPreview.getOpt(anyInSystem).each(function (preview) {\n set$2(preview.element(), 'background-color', '#' + hex.value());\n });\n };\n var factory = function () {\n var state = {\n red: constant(Cell(Option.some(255))),\n green: constant(Cell(Option.some(255))),\n blue: constant(Cell(Option.some(255))),\n hex: constant(Cell(Option.some('ffffff')))\n };\n var copyHexToRgb = function (form, hex) {\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n };\n var get = function (prop) {\n return state[prop]().get();\n };\n var set = function (prop, value) {\n state[prop]().set(value);\n };\n var getValueRgb = function () {\n return get('red').bind(function (red) {\n return get('green').bind(function (green) {\n return get('blue').map(function (blue) {\n return rgbaColour(red, green, blue, 1);\n });\n });\n });\n };\n var setValueRgb = function (rgb) {\n var red = rgb.red();\n var green = rgb.green();\n var blue = rgb.blue();\n set('red', Option.some(red));\n set('green', Option.some(green));\n set('blue', Option.some(blue));\n };\n var onInvalidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event();\n if (data.type() !== 'hex') {\n set(data.type(), Option.none());\n } else {\n onInvalidHexx(form);\n }\n };\n var onValidHex = function (form, value) {\n onValidHexx(form);\n var hex = hexColour(value);\n set('hex', Option.some(value));\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n emitWith(form, fieldsUpdate(), { hex: hex });\n updatePreview(form, hex);\n };\n var onValidRgb = function (form, prop, value) {\n var val = parseInt(value, 10);\n set(prop, Option.some(val));\n getValueRgb().each(function (rgb) {\n var hex = copyRgbToHex(form, rgb);\n updatePreview(form, hex);\n });\n };\n var isHexInputEvent = function (data) {\n return data.type() === 'hex';\n };\n var onValidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event();\n if (isHexInputEvent(data)) {\n onValidHex(form, data.value());\n } else {\n onValidRgb(form, data.type(), data.value());\n }\n };\n var formPartStrings = function (key) {\n return {\n label: translate(translatePrefix + key + '.label'),\n description: translate(translatePrefix + key + '.description')\n };\n };\n var redStrings = formPartStrings('red');\n var greenStrings = formPartStrings('green');\n var blueStrings = formPartStrings('blue');\n var hexStrings = formPartStrings('hex');\n return deepMerge(Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'form',\n classes: [getClass('rgb-form')],\n attributes: { 'aria-label': translate('aria.color.picker') }\n },\n components: [\n parts.field('red', FormField.sketch(renderTextField(isRgbaComponent, 'red', redStrings.label, redStrings.description, 255))),\n parts.field('green', FormField.sketch(renderTextField(isRgbaComponent, 'green', greenStrings.label, greenStrings.description, 255))),\n parts.field('blue', FormField.sketch(renderTextField(isRgbaComponent, 'blue', blueStrings.label, blueStrings.description, 255))),\n parts.field('hex', FormField.sketch(renderTextField(isHexString, 'hex', hexStrings.label, hexStrings.description, 'ffffff'))),\n memPreview.asSpec()\n ],\n formBehaviours: derive$1([\n Invalidating.config({ invalidClass: getClass('form-invalid') }),\n config('rgb-form-events', [\n run(validInput, onValidInput),\n run(invalidInput, onInvalidInput),\n run(validatingInput, onInvalidInput)\n ])\n ])\n };\n }), {\n apis: {\n updateHex: function (form, hex) {\n Representing.setValue(form, { hex: hex.value() });\n copyHexToRgb(form, hex);\n updatePreview(form, hex);\n }\n }\n });\n };\n var rgbFormSketcher = single$2({\n factory: factory,\n name: 'RgbForm',\n configFields: [],\n apis: {\n updateHex: function (apis, form, hex) {\n apis.updateHex(form, hex);\n }\n },\n extraApis: {}\n });\n return rgbFormSketcher;\n };\n var RgbForm = { rgbFormFactory: rgbFormFactory };\n\n var paletteFactory = function (_translate, getClass) {\n var spectrumPart = Slider.parts().spectrum({\n dom: {\n tag: 'canvas',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-spectrum')]\n }\n });\n var thumbPart = Slider.parts().thumb({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-thumb')],\n innerHtml: '<div class=' + getClass('sv-palette-inner-thumb') + ' role=\"presentation\"></div>'\n }\n });\n var setColour = function (canvas, rgba) {\n var width = canvas.width, height = canvas.height;\n var ctx = canvas.getContext('2d');\n if (ctx === null) {\n return;\n }\n ctx.fillStyle = rgba;\n ctx.fillRect(0, 0, width, height);\n var grdWhite = ctx.createLinearGradient(0, 0, width, 0);\n grdWhite.addColorStop(0, 'rgba(255,255,255,1)');\n grdWhite.addColorStop(1, 'rgba(255,255,255,0)');\n ctx.fillStyle = grdWhite;\n ctx.fillRect(0, 0, width, height);\n var grdBlack = ctx.createLinearGradient(0, 0, 0, height);\n grdBlack.addColorStop(0, 'rgba(0,0,0,0)');\n grdBlack.addColorStop(1, 'rgba(0,0,0,1)');\n ctx.fillStyle = grdBlack;\n ctx.fillRect(0, 0, width, height);\n };\n var setSliderColour = function (slider, rgba) {\n var canvas = slider.components()[0].element().dom();\n setColour(canvas, toString(rgba));\n };\n var factory = function (_detail) {\n var getInitialValue = constant({\n x: constant(0),\n y: constant(0)\n });\n var onChange = function (slider, _thumb, value) {\n emitWith(slider, paletteUpdate(), { value: value });\n };\n var onInit = function (_slider, _thumb, spectrum, _value) {\n setColour(spectrum.element().dom(), toString(redColour()));\n };\n var sliderBehaviours = derive$1([\n Composing.config({ find: Option.some }),\n Focusing.config({})\n ]);\n return Slider.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette')]\n },\n model: {\n mode: 'xy',\n getInitialValue: getInitialValue\n },\n rounded: false,\n components: [\n spectrumPart,\n thumbPart\n ],\n onChange: onChange,\n onInit: onInit,\n sliderBehaviours: sliderBehaviours\n });\n };\n var saturationBrightnessPaletteSketcher = single$2({\n factory: factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setRgba: function (_apis, slider, rgba) {\n setSliderColour(slider, rgba);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n var SaturationBrightnessPalette = { paletteFactory: paletteFactory };\n\n var makeFactory = function (translate, getClass) {\n var factory = function (detail) {\n var rgbForm = RgbForm.rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex);\n var sbPalette = SaturationBrightnessPalette.paletteFactory(translate, getClass);\n var state = { paletteRgba: constant(Cell(redColour())) };\n var memPalette = record(sbPalette.sketch({}));\n var memRgb = record(rgbForm.sketch({}));\n var updatePalette = function (anyInSystem, hex) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n var rgba = fromHex(hex);\n state.paletteRgba().set(rgba);\n sbPalette.setRgba(palette, rgba);\n });\n };\n var updateFields = function (anyInSystem, hex) {\n memRgb.getOpt(anyInSystem).each(function (form) {\n rgbForm.updateHex(form, hex);\n });\n };\n var runUpdates = function (anyInSystem, hex, updates) {\n each(updates, function (update) {\n update(anyInSystem, hex);\n });\n };\n var paletteUpdates = function () {\n var updates = [updateFields];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event().value();\n var oldRgb = state.paletteRgba().get();\n var hsvColour$1 = fromRgb(oldRgb);\n var newHsvColour = hsvColour(hsvColour$1.hue(), value.x(), 100 - value.y());\n var rgb = fromHsv(newHsvColour);\n var nuHex = fromRgba(rgb);\n runUpdates(form, nuHex, updates);\n };\n };\n var sliderUpdates = function () {\n var updates = [\n updatePalette,\n updateFields\n ];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event().value();\n var hex = calcHex(value.y());\n runUpdates(form, hex, updates);\n };\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [\n memPalette.asSpec(),\n HueSlider.sliderFactory(translate, getClass),\n memRgb.asSpec()\n ],\n behaviours: derive$1([\n config('colour-picker-events', [\n run(paletteUpdate(), paletteUpdates()),\n run(sliderUpdate(), sliderUpdates())\n ]),\n Composing.config({\n find: function (comp) {\n return memRgb.getOpt(comp);\n }\n }),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n var colourPickerSketcher = single$2({\n name: 'ColourPicker',\n configFields: [\n strict$1('dom'),\n defaulted$1('onValidHex', noop),\n defaulted$1('onInvalidHex', noop)\n ],\n factory: factory\n });\n return colourPickerSketcher;\n };\n var ColourPicker = { makeFactory: makeFactory };\n\n var self$1 = function () {\n return Composing.config({ find: Option.some });\n };\n var memento = function (mem) {\n return Composing.config({ find: mem.getOpt });\n };\n var childAt = function (index) {\n return Composing.config({\n find: function (comp) {\n return child(comp.element(), index).bind(function (element) {\n return comp.getSystem().getByDom(element).toOption();\n });\n }\n });\n };\n var ComposingConfigs = {\n self: self$1,\n memento: memento,\n childAt: childAt\n };\n\n var english = {\n 'colorcustom.rgb.red.label': 'R',\n 'colorcustom.rgb.red.description': 'Red component',\n 'colorcustom.rgb.green.label': 'G',\n 'colorcustom.rgb.green.description': 'Green component',\n 'colorcustom.rgb.blue.label': 'B',\n 'colorcustom.rgb.blue.description': 'Blue component',\n 'colorcustom.rgb.hex.label': '#',\n 'colorcustom.rgb.hex.description': 'Hex color code',\n 'colorcustom.rgb.range': 'Range 0 to 255',\n 'colorcustom.sb.saturation': 'Saturation',\n 'colorcustom.sb.brightness': 'Brightness',\n 'colorcustom.sb.picker': 'Saturation and Brightness Picker',\n 'colorcustom.sb.palette': 'Saturation and Brightness Palette',\n 'colorcustom.sb.instructions': 'Use arrow keys to select saturation and brightness, on x and y axes',\n 'colorcustom.hue.hue': 'Hue',\n 'colorcustom.hue.slider': 'Hue Slider',\n 'colorcustom.hue.palette': 'Hue Palette',\n 'colorcustom.hue.instructions': 'Use arrow keys to select a hue',\n 'aria.color.picker': 'Color Picker',\n 'aria.input.invalid': 'Invalid input'\n };\n var getEnglishText = function (key) {\n return english[key];\n };\n var translate$1 = function (key) {\n return getEnglishText(key);\n };\n var renderColorPicker = function (spec) {\n var getClass = function (key) {\n return 'tox-' + key;\n };\n var colourPickerFactory = ColourPicker.makeFactory(translate$1, getClass);\n var onValidHex = function (form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: true\n });\n };\n var onInvalidHex = function (form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: false\n });\n };\n var memPicker = record(colourPickerFactory.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('color-picker-container')],\n attributes: { role: 'presentation' }\n },\n onValidHex: onValidHex,\n onInvalidHex: onInvalidHex\n }));\n return {\n dom: { tag: 'div' },\n components: [memPicker.asSpec()],\n behaviours: derive$1([\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var picker = memPicker.get(comp);\n var optRgbForm = Composing.getCurrent(picker);\n var optHex = optRgbForm.bind(function (rgbForm) {\n var formValues = Representing.getValue(rgbForm);\n return formValues.hex;\n });\n return optHex.map(function (hex) {\n return '#' + hex;\n }).getOr('');\n },\n setValue: function (comp, newValue) {\n var pattern = /^#([a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?)/;\n var m = pattern.exec(newValue);\n var picker = memPicker.get(comp);\n var optRgbForm = Composing.getCurrent(picker);\n optRgbForm.fold(function () {\n domGlobals.console.log('Can not find form');\n }, function (rgbForm) {\n Representing.setValue(rgbForm, { hex: Option.from(m[1]).getOr('') });\n Form.getField(rgbForm, 'hex').each(function (hexField) {\n emit(hexField, input());\n });\n });\n }\n }\n }),\n ComposingConfigs.self()\n ])\n };\n };\n\n var global$a = tinymce.util.Tools.resolve('tinymce.Resource');\n\n var isOldCustomEditor = function (spec) {\n return Object.prototype.hasOwnProperty.call(spec, 'init');\n };\n var renderCustomEditor = function (spec) {\n var editorApi = Cell(Option.none());\n var memReplaced = record({ dom: { tag: spec.tag } });\n var initialValue = Cell(Option.none());\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([\n config('editor-foo-events', [runOnAttached(function (component) {\n memReplaced.getOpt(component).each(function (ta) {\n (isOldCustomEditor(spec) ? spec.init(ta.element().dom()) : global$a.load(spec.scriptId, spec.scriptUrl).then(function (init) {\n return init(ta.element().dom(), spec.settings);\n })).then(function (ea) {\n initialValue.get().each(function (cvalue) {\n ea.setValue(cvalue);\n });\n initialValue.set(Option.none());\n editorApi.set(Option.some(ea));\n });\n });\n })]),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function () {\n return editorApi.get().fold(function () {\n return initialValue.get().getOr('');\n }, function (ed) {\n return ed.getValue();\n });\n },\n setValue: function (component, value) {\n editorApi.get().fold(function () {\n initialValue.set(Option.some(value));\n }, function (ed) {\n return ed.setValue(value);\n });\n }\n }\n }),\n ComposingConfigs.self()\n ]),\n components: [memReplaced.asSpec()]\n };\n };\n\n var processors = objOf([\n defaulted$1('preprocess', identity),\n defaulted$1('postprocess', identity)\n ]);\n var memento$1 = function (mem, rawProcessors) {\n var ps = asRawOrDie('RepresentingConfigs.memento processors', processors, rawProcessors);\n return Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var other = mem.get(comp);\n var rawValue = Representing.getValue(other);\n return ps.postprocess(rawValue);\n },\n setValue: function (comp, rawValue) {\n var newValue = ps.preprocess(rawValue);\n var other = mem.get(comp);\n Representing.setValue(other, newValue);\n }\n }\n });\n };\n var withComp = function (optInitialValue, getter, setter) {\n return Representing.config(deepMerge({\n store: {\n mode: 'manual',\n getValue: getter,\n setValue: setter\n }\n }, optInitialValue.map(function (initialValue) {\n return { store: { initialValue: initialValue } };\n }).getOr({})));\n };\n var withElement = function (initialValue, getter, setter) {\n return withComp(initialValue, function (c) {\n return getter(c.element());\n }, function (c, v) {\n return setter(c.element(), v);\n });\n };\n var domValue = function (optInitialValue) {\n return withElement(optInitialValue, get$5, set$3);\n };\n var domHtml = function (optInitialValue) {\n return withElement(optInitialValue, get$1, set);\n };\n var memory$1 = function (initialValue) {\n return Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialValue\n }\n });\n };\n var RepresentingConfigs = {\n memento: memento$1,\n withElement: withElement,\n withComp: withComp,\n domValue: domValue,\n domHtml: domHtml,\n memory: memory$1\n };\n\n var extensionsAccepted = '.jpg,.jpeg,.png,.gif';\n var filterByExtension = function (files) {\n var re = new RegExp('(' + extensionsAccepted.split(/\\s*,\\s*/).join('|') + ')$', 'i');\n return filter(from$1(files), function (file) {\n return re.test(file.name);\n });\n };\n var renderDropZone = function (spec, providersBackstage) {\n var stopper = function (_, se) {\n se.stop();\n };\n var sequence = function (actions) {\n return function (comp, se) {\n each(actions, function (a) {\n a(comp, se);\n });\n };\n };\n var onDrop = function (comp, se) {\n if (!Disabling.isDisabled(comp)) {\n var transferEvent = se.event().raw();\n handleFiles(comp, transferEvent.dataTransfer.files);\n }\n };\n var onSelect = function (component, simulatedEvent) {\n var files = simulatedEvent.event().raw().target.files;\n handleFiles(component, files);\n };\n var handleFiles = function (component, files) {\n Representing.setValue(component, filterByExtension(files));\n emitWith(component, formChangeEvent, { name: spec.name });\n };\n var memInput = record({\n dom: {\n tag: 'input',\n attributes: {\n type: 'file',\n accept: 'image/*'\n },\n styles: { display: 'none' }\n },\n behaviours: derive$1([config('input-file-events', [cutter(tapOrClick())])])\n });\n var renderField = function (s) {\n return {\n uid: s.uid,\n dom: {\n tag: 'div',\n classes: ['tox-dropzone-container']\n },\n behaviours: derive$1([\n RepresentingConfigs.memory([]),\n ComposingConfigs.self(),\n Disabling.config({}),\n Toggling.config({\n toggleClass: 'dragenter',\n toggleOnExecute: false\n }),\n config('dropzone-events', [\n run('dragenter', sequence([\n stopper,\n Toggling.toggle\n ])),\n run('dragleave', sequence([\n stopper,\n Toggling.toggle\n ])),\n run('dragover', stopper),\n run('drop', sequence([\n stopper,\n onDrop\n ])),\n run(change(), onSelect)\n ])\n ]),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dropzone'],\n styles: {}\n },\n components: [\n {\n dom: {\n tag: 'p',\n innerHtml: providersBackstage.translate('Drop an image here')\n }\n },\n Button.sketch({\n dom: {\n tag: 'button',\n innerHtml: providersBackstage.translate('Browse for an image'),\n styles: { position: 'relative' },\n classes: [\n 'tox-button',\n 'tox-button--secondary'\n ]\n },\n components: [memInput.asSpec()],\n action: function (comp) {\n var inputComp = memInput.get(comp);\n inputComp.element().dom().click();\n },\n buttonBehaviours: derive$1([Tabstopping.config({})])\n })\n ]\n }]\n };\n };\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var pField = FormField.parts().field({ factory: { sketch: renderField } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n var renderGrid = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-form__grid',\n 'tox-form__grid--' + spec.columns + 'col'\n ]\n },\n components: map(spec.items, backstage.interpreter)\n };\n };\n\n var beforeObject = generate$1('alloy-fake-before-tabstop');\n var afterObject = generate$1('alloy-fake-after-tabstop');\n var craftWithClasses = function (classes) {\n return {\n dom: {\n tag: 'div',\n styles: {\n width: '1px',\n height: '1px',\n outline: 'none'\n },\n attributes: { tabindex: '0' },\n classes: classes\n },\n behaviours: derive$1([\n Focusing.config({ ignore: true }),\n Tabstopping.config({})\n ])\n };\n };\n var craft = function (spec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-navobj']\n },\n components: [\n craftWithClasses([beforeObject]),\n spec,\n craftWithClasses([afterObject])\n ],\n behaviours: derive$1([ComposingConfigs.childAt(1)])\n };\n };\n var triggerTab = function (placeholder, shiftKey) {\n emitWith(placeholder, keydown(), {\n raw: {\n which: 9,\n shiftKey: shiftKey\n }\n });\n };\n var onFocus$1 = function (container, targetComp) {\n var target = targetComp.element();\n if (has$2(target, beforeObject)) {\n triggerTab(container, true);\n } else if (has$2(target, afterObject)) {\n triggerTab(container, false);\n }\n };\n var isPseudoStop = function (element) {\n return closest$4(element, [\n '.' + beforeObject,\n '.' + afterObject\n ].join(','), constant(false));\n };\n var NavigableObject = {\n isPseudoStop: isPseudoStop,\n onFocus: onFocus$1,\n craft: craft\n };\n\n var platformNeedsSandboxing = !(detect$3().browser.isIE() || detect$3().browser.isEdge());\n var getDynamicSource = function (isSandbox) {\n var cachedValue = Cell('');\n return {\n getValue: function (frameComponent) {\n return cachedValue.get();\n },\n setValue: function (frameComponent, html) {\n if (!isSandbox) {\n set$1(frameComponent.element(), 'src', 'javascript:\\'\\'');\n var doc = frameComponent.element().dom().contentWindow.document;\n doc.open();\n doc.write(html);\n doc.close();\n } else {\n set$1(frameComponent.element(), 'srcdoc', html);\n }\n cachedValue.set(html);\n }\n };\n };\n var renderIFrame = function (spec, providersBackstage) {\n var isSandbox = platformNeedsSandboxing && spec.sandboxed;\n var attributes = __assign(__assign({}, spec.label.map(function (title) {\n return { title: title };\n }).getOr({})), isSandbox ? { sandbox: 'allow-scripts allow-same-origin' } : {});\n var sourcing = getDynamicSource(isSandbox);\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var factory = function (newSpec) {\n return NavigableObject.craft({\n uid: newSpec.uid,\n dom: {\n tag: 'iframe',\n attributes: attributes\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n RepresentingConfigs.withComp(Option.none(), sourcing.getValue, sourcing.setValue)\n ])\n });\n };\n var pField = FormField.parts().field({ factory: { sketch: factory } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n function create$5(width, height) {\n return resize(domGlobals.document.createElement('canvas'), width, height);\n }\n function clone$1(canvas) {\n var tCanvas = create$5(canvas.width, canvas.height);\n var ctx = get2dContext(tCanvas);\n ctx.drawImage(canvas, 0, 0);\n return tCanvas;\n }\n function get2dContext(canvas) {\n return canvas.getContext('2d');\n }\n function resize(canvas, width, height) {\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n function getWidth(image) {\n return image.naturalWidth || image.width;\n }\n function getHeight(image) {\n return image.naturalHeight || image.height;\n }\n\n var promise = function () {\n var Promise = function (fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('not a function');\n }\n this._state = null;\n this._value = null;\n this._deferreds = [];\n doResolve(fn, bind(resolve, this), bind(reject, this));\n };\n var asap = Promise.immediateFn || typeof window.setImmediate === 'function' && window.setImmediate || function (fn) {\n domGlobals.setTimeout(fn, 1);\n };\n function bind(fn, thisArg) {\n return function () {\n return fn.apply(thisArg, arguments);\n };\n }\n var isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n };\n function handle(deferred) {\n var me = this;\n if (this._state === null) {\n this._deferreds.push(deferred);\n return;\n }\n asap(function () {\n var cb = me._state ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (me._state ? deferred.resolve : deferred.reject)(me._value);\n return;\n }\n var ret;\n try {\n ret = cb(me._value);\n } catch (e) {\n deferred.reject(e);\n return;\n }\n deferred.resolve(ret);\n });\n }\n function resolve(newValue) {\n try {\n if (newValue === this) {\n throw new TypeError('A promise cannot be resolved with itself.');\n }\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (typeof then === 'function') {\n doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n return;\n }\n }\n this._state = true;\n this._value = newValue;\n finale.call(this);\n } catch (e) {\n reject.call(this, e);\n }\n }\n function reject(newValue) {\n this._state = false;\n this._value = newValue;\n finale.call(this);\n }\n function finale() {\n for (var _i = 0, _a = this._deferreds; _i < _a.length; _i++) {\n var deferred = _a[_i];\n handle.call(this, deferred);\n }\n this._deferreds = [];\n }\n function Handler(onFulfilled, onRejected, resolve, reject) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n }\n function doResolve(fn, onFulfilled, onRejected) {\n var done = false;\n try {\n fn(function (value) {\n if (done) {\n return;\n }\n done = true;\n onFulfilled(value);\n }, function (reason) {\n if (done) {\n return;\n }\n done = true;\n onRejected(reason);\n });\n } catch (ex) {\n if (done) {\n return;\n }\n done = true;\n onRejected(ex);\n }\n }\n Promise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var me = this;\n return new Promise(function (resolve, reject) {\n handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n });\n };\n Promise.all = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var args = Array.prototype.slice.call(values.length === 1 && isArray(values[0]) ? values[0] : values);\n return new Promise(function (resolve, reject) {\n if (args.length === 0) {\n return resolve([]);\n }\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (reason) {\n return new Promise(function (resolve, reject) {\n reject(reason);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n value.then(resolve, reject);\n }\n });\n };\n return Promise;\n };\n var Promise$1 = window.Promise ? window.Promise : promise();\n\n function blobToImage(blob) {\n return new Promise$1(function (resolve, reject) {\n var blobUrl = domGlobals.URL.createObjectURL(blob);\n var image = new domGlobals.Image();\n var removeListeners = function () {\n image.removeEventListener('load', loaded);\n image.removeEventListener('error', error);\n };\n function loaded() {\n removeListeners();\n resolve(image);\n }\n function error() {\n removeListeners();\n reject('Unable to load data of type ' + blob.type + ': ' + blobUrl);\n }\n image.addEventListener('load', loaded);\n image.addEventListener('error', error);\n image.src = blobUrl;\n if (image.complete) {\n loaded();\n }\n });\n }\n function dataUriToBlobSync(uri) {\n var data = uri.split(',');\n var matches = /data:([^;]+)/.exec(data[0]);\n if (!matches) {\n return Option.none();\n }\n var mimetype = matches[1];\n var base64 = data[1];\n var sliceSize = 1024;\n var byteCharacters = domGlobals.atob(base64);\n var bytesLength = byteCharacters.length;\n var slicesCount = Math.ceil(bytesLength / sliceSize);\n var byteArrays = new Array(slicesCount);\n for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\n var begin = sliceIndex * sliceSize;\n var end = Math.min(begin + sliceSize, bytesLength);\n var bytes = new Array(end - begin);\n for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\n bytes[i] = byteCharacters[offset].charCodeAt(0);\n }\n byteArrays[sliceIndex] = new Uint8Array(bytes);\n }\n return Option.some(new domGlobals.Blob(byteArrays, { type: mimetype }));\n }\n function dataUriToBlob(uri) {\n return new Promise$1(function (resolve, reject) {\n dataUriToBlobSync(uri).fold(function () {\n reject('uri is not base64: ' + uri);\n }, resolve);\n });\n }\n function canvasToBlob(canvas, type, quality) {\n type = type || 'image/png';\n if (domGlobals.HTMLCanvasElement.prototype.toBlob) {\n return new Promise$1(function (resolve, reject) {\n canvas.toBlob(function (blob) {\n if (blob) {\n resolve(blob);\n } else {\n reject();\n }\n }, type, quality);\n });\n } else {\n return dataUriToBlob(canvas.toDataURL(type, quality));\n }\n }\n function canvasToDataURL(canvas, type, quality) {\n type = type || 'image/png';\n return canvas.toDataURL(type, quality);\n }\n function blobToCanvas(blob) {\n return blobToImage(blob).then(function (image) {\n revokeImageUrl(image);\n var canvas = create$5(getWidth(image), getHeight(image));\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0);\n return canvas;\n });\n }\n function blobToDataUri(blob) {\n return new Promise$1(function (resolve) {\n var reader = new domGlobals.FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n }\n function revokeImageUrl(image) {\n domGlobals.URL.revokeObjectURL(image.src);\n }\n\n function create$6(getCanvas, blob, uri) {\n var initialType = blob.type;\n var getType = constant(initialType);\n function toBlob() {\n return Promise$1.resolve(blob);\n }\n function toDataURL() {\n return uri;\n }\n function toBase64() {\n return uri.split(',')[1];\n }\n function toAdjustedBlob(type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n }\n function toAdjustedDataURL(type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToDataURL(canvas, type, quality);\n });\n }\n function toAdjustedBase64(type, quality) {\n return toAdjustedDataURL(type, quality).then(function (dataurl) {\n return dataurl.split(',')[1];\n });\n }\n function toCanvas() {\n return getCanvas.then(clone$1);\n }\n return {\n getType: getType,\n toBlob: toBlob,\n toDataURL: toDataURL,\n toBase64: toBase64,\n toAdjustedBlob: toAdjustedBlob,\n toAdjustedDataURL: toAdjustedDataURL,\n toAdjustedBase64: toAdjustedBase64,\n toCanvas: toCanvas\n };\n }\n function fromBlob(blob) {\n return blobToDataUri(blob).then(function (uri) {\n return create$6(blobToCanvas(blob), blob, uri);\n });\n }\n function fromCanvas(canvas, type) {\n return canvasToBlob(canvas, type).then(function (blob) {\n return create$6(Promise$1.resolve(canvas), blob, canvas.toDataURL());\n });\n }\n\n var blobToImageResult = function (blob) {\n return fromBlob(blob);\n };\n\n function clamp(value, min, max) {\n var parsedValue = typeof value === 'string' ? parseFloat(value) : value;\n if (parsedValue > max) {\n parsedValue = max;\n } else if (parsedValue < min) {\n parsedValue = min;\n }\n return parsedValue;\n }\n function identity$1() {\n return [\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n }\n var DELTA_INDEX = [\n 0,\n 0.01,\n 0.02,\n 0.04,\n 0.05,\n 0.06,\n 0.07,\n 0.08,\n 0.1,\n 0.11,\n 0.12,\n 0.14,\n 0.15,\n 0.16,\n 0.17,\n 0.18,\n 0.2,\n 0.21,\n 0.22,\n 0.24,\n 0.25,\n 0.27,\n 0.28,\n 0.3,\n 0.32,\n 0.34,\n 0.36,\n 0.38,\n 0.4,\n 0.42,\n 0.44,\n 0.46,\n 0.48,\n 0.5,\n 0.53,\n 0.56,\n 0.59,\n 0.62,\n 0.65,\n 0.68,\n 0.71,\n 0.74,\n 0.77,\n 0.8,\n 0.83,\n 0.86,\n 0.89,\n 0.92,\n 0.95,\n 0.98,\n 1,\n 1.06,\n 1.12,\n 1.18,\n 1.24,\n 1.3,\n 1.36,\n 1.42,\n 1.48,\n 1.54,\n 1.6,\n 1.66,\n 1.72,\n 1.78,\n 1.84,\n 1.9,\n 1.96,\n 2,\n 2.12,\n 2.25,\n 2.37,\n 2.5,\n 2.62,\n 2.75,\n 2.87,\n 3,\n 3.2,\n 3.4,\n 3.6,\n 3.8,\n 4,\n 4.3,\n 4.7,\n 4.9,\n 5,\n 5.5,\n 6,\n 6.5,\n 6.8,\n 7,\n 7.3,\n 7.5,\n 7.8,\n 8,\n 8.4,\n 8.7,\n 9,\n 9.4,\n 9.6,\n 9.8,\n 10\n ];\n function multiply(matrix1, matrix2) {\n var col = [];\n var out = new Array(25);\n var val;\n for (var i = 0; i < 5; i++) {\n for (var j = 0; j < 5; j++) {\n col[j] = matrix2[j + i * 5];\n }\n for (var j = 0; j < 5; j++) {\n val = 0;\n for (var k = 0; k < 5; k++) {\n val += matrix1[j + k * 5] * col[k];\n }\n out[j + i * 5] = val;\n }\n }\n return out;\n }\n function adjustContrast(matrix, value) {\n var x;\n value = clamp(value, -1, 1);\n value *= 100;\n if (value < 0) {\n x = 127 + value / 100 * 127;\n } else {\n x = value % 1;\n if (x === 0) {\n x = DELTA_INDEX[value];\n } else {\n x = DELTA_INDEX[Math.floor(value)] * (1 - x) + DELTA_INDEX[Math.floor(value) + 1] * x;\n }\n x = x * 127 + 127;\n }\n return multiply(matrix, [\n x / 127,\n 0,\n 0,\n 0,\n 0.5 * (127 - x),\n 0,\n x / 127,\n 0,\n 0,\n 0.5 * (127 - x),\n 0,\n 0,\n x / 127,\n 0,\n 0.5 * (127 - x),\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n function adjustBrightness(matrix, value) {\n value = clamp(255 * value, -255, 255);\n return multiply(matrix, [\n 1,\n 0,\n 0,\n 0,\n value,\n 0,\n 1,\n 0,\n 0,\n value,\n 0,\n 0,\n 1,\n 0,\n value,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n function adjustColors(matrix, adjustR, adjustG, adjustB) {\n adjustR = clamp(adjustR, 0, 2);\n adjustG = clamp(adjustG, 0, 2);\n adjustB = clamp(adjustB, 0, 2);\n return multiply(matrix, [\n adjustR,\n 0,\n 0,\n 0,\n 0,\n 0,\n adjustG,\n 0,\n 0,\n 0,\n 0,\n 0,\n adjustB,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n\n function colorFilter(ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyColorFilter(canvas, ir.getType(), matrix);\n });\n }\n function applyColorFilter(canvas, type, matrix) {\n var context = get2dContext(canvas);\n function applyMatrix(pixelsData, m) {\n var r, g, b, a;\n var data = pixelsData.data, m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], m4 = m[4], m5 = m[5], m6 = m[6], m7 = m[7], m8 = m[8], m9 = m[9], m10 = m[10], m11 = m[11], m12 = m[12], m13 = m[13], m14 = m[14], m15 = m[15], m16 = m[16], m17 = m[17], m18 = m[18], m19 = m[19];\n for (var i = 0; i < data.length; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i] = r * m0 + g * m1 + b * m2 + a * m3 + m4;\n data[i + 1] = r * m5 + g * m6 + b * m7 + a * m8 + m9;\n data[i + 2] = r * m10 + g * m11 + b * m12 + a * m13 + m14;\n data[i + 3] = r * m15 + g * m16 + b * m17 + a * m18 + m19;\n }\n return pixelsData;\n }\n var pixels = applyMatrix(context.getImageData(0, 0, canvas.width, canvas.height), matrix);\n context.putImageData(pixels, 0, 0);\n return fromCanvas(canvas, type);\n }\n function convoluteFilter(ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyConvoluteFilter(canvas, ir.getType(), matrix);\n });\n }\n function applyConvoluteFilter(canvas, type, matrix) {\n var context = get2dContext(canvas);\n function applyMatrix(pIn, pOut, aMatrix) {\n function clamp(value, min, max) {\n if (value > max) {\n value = max;\n } else if (value < min) {\n value = min;\n }\n return value;\n }\n var side = Math.round(Math.sqrt(aMatrix.length));\n var halfSide = Math.floor(side / 2);\n var rgba = pIn.data;\n var drgba = pOut.data;\n var w = pIn.width;\n var h = pIn.height;\n for (var y = 0; y < h; y++) {\n for (var x = 0; x < w; x++) {\n var r = 0;\n var g = 0;\n var b = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scx = clamp(x + cx - halfSide, 0, w - 1);\n var scy = clamp(y + cy - halfSide, 0, h - 1);\n var innerOffset = (scy * w + scx) * 4;\n var wt = aMatrix[cy * side + cx];\n r += rgba[innerOffset] * wt;\n g += rgba[innerOffset + 1] * wt;\n b += rgba[innerOffset + 2] * wt;\n }\n }\n var offset = (y * w + x) * 4;\n drgba[offset] = clamp(r, 0, 255);\n drgba[offset + 1] = clamp(g, 0, 255);\n drgba[offset + 2] = clamp(b, 0, 255);\n }\n }\n return pOut;\n }\n var pixelsIn = context.getImageData(0, 0, canvas.width, canvas.height);\n var pixelsOut = context.getImageData(0, 0, canvas.width, canvas.height);\n pixelsOut = applyMatrix(pixelsIn, pixelsOut, matrix);\n context.putImageData(pixelsOut, 0, 0);\n return fromCanvas(canvas, type);\n }\n function functionColorFilter(colorFn) {\n var filterImpl = function (canvas, type, value) {\n var context = get2dContext(canvas);\n var lookup = new Array(256);\n function applyLookup(pixelsData, lookupData) {\n var data = pixelsData.data;\n for (var i = 0; i < data.length; i += 4) {\n data[i] = lookupData[data[i]];\n data[i + 1] = lookupData[data[i + 1]];\n data[i + 2] = lookupData[data[i + 2]];\n }\n return pixelsData;\n }\n for (var i = 0; i < lookup.length; i++) {\n lookup[i] = colorFn(i, value);\n }\n var pixels = applyLookup(context.getImageData(0, 0, canvas.width, canvas.height), lookup);\n context.putImageData(pixels, 0, 0);\n return fromCanvas(canvas, type);\n };\n return function (ir, value) {\n return ir.toCanvas().then(function (canvas) {\n return filterImpl(canvas, ir.getType(), value);\n });\n };\n }\n function complexAdjustableColorFilter(matrixAdjustFn) {\n return function (ir, adjust) {\n return colorFilter(ir, matrixAdjustFn(identity$1(), adjust));\n };\n }\n function basicColorFilter(matrix) {\n return function (ir) {\n return colorFilter(ir, matrix);\n };\n }\n function basicConvolutionFilter(kernel) {\n return function (ir) {\n return convoluteFilter(ir, kernel);\n };\n }\n var invert = basicColorFilter([\n -1,\n 0,\n 0,\n 0,\n 255,\n 0,\n -1,\n 0,\n 0,\n 255,\n 0,\n 0,\n -1,\n 0,\n 255,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n var brightness = complexAdjustableColorFilter(adjustBrightness);\n var contrast = complexAdjustableColorFilter(adjustContrast);\n var colorize = function (ir, adjustR, adjustG, adjustB) {\n return colorFilter(ir, adjustColors(identity$1(), adjustR, adjustG, adjustB));\n };\n var sharpen = basicConvolutionFilter([\n 0,\n -1,\n 0,\n -1,\n 5,\n -1,\n 0,\n -1,\n 0\n ]);\n var gamma = functionColorFilter(function (color, value) {\n return Math.pow(color / 255, 1 - value) * 255;\n });\n\n function scale(image, dW, dH) {\n var sW = getWidth(image);\n var sH = getHeight(image);\n var wRatio = dW / sW;\n var hRatio = dH / sH;\n var scaleCapped = false;\n if (wRatio < 0.5 || wRatio > 2) {\n wRatio = wRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n if (hRatio < 0.5 || hRatio > 2) {\n hRatio = hRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n var scaled = _scale(image, wRatio, hRatio);\n return !scaleCapped ? scaled : scaled.then(function (tCanvas) {\n return scale(tCanvas, dW, dH);\n });\n }\n function _scale(image, wRatio, hRatio) {\n return new Promise$1(function (resolve) {\n var sW = getWidth(image);\n var sH = getHeight(image);\n var dW = Math.floor(sW * wRatio);\n var dH = Math.floor(sH * hRatio);\n var canvas = create$5(dW, dH);\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0, sW, sH, 0, 0, dW, dH);\n resolve(canvas);\n });\n }\n\n function rotate(ir, angle) {\n return ir.toCanvas().then(function (canvas) {\n return applyRotate(canvas, ir.getType(), angle);\n });\n }\n function applyRotate(image, type, angle) {\n var canvas = create$5(image.width, image.height);\n var context = get2dContext(canvas);\n var translateX = 0;\n var translateY = 0;\n angle = angle < 0 ? 360 + angle : angle;\n if (angle === 90 || angle === 270) {\n resize(canvas, canvas.height, canvas.width);\n }\n if (angle === 90 || angle === 180) {\n translateX = canvas.width;\n }\n if (angle === 270 || angle === 180) {\n translateY = canvas.height;\n }\n context.translate(translateX, translateY);\n context.rotate(angle * Math.PI / 180);\n context.drawImage(image, 0, 0);\n return fromCanvas(canvas, type);\n }\n function flip(ir, axis) {\n return ir.toCanvas().then(function (canvas) {\n return applyFlip(canvas, ir.getType(), axis);\n });\n }\n function applyFlip(image, type, axis) {\n var canvas = create$5(image.width, image.height);\n var context = get2dContext(canvas);\n if (axis === 'v') {\n context.scale(1, -1);\n context.drawImage(image, 0, -canvas.height);\n } else {\n context.scale(-1, 1);\n context.drawImage(image, -canvas.width, 0);\n }\n return fromCanvas(canvas, type);\n }\n function crop(ir, x, y, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return applyCrop(canvas, ir.getType(), x, y, w, h);\n });\n }\n function applyCrop(image, type, x, y, w, h) {\n var canvas = create$5(w, h);\n var context = get2dContext(canvas);\n context.drawImage(image, -x, -y);\n return fromCanvas(canvas, type);\n }\n function resize$1(ir, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return scale(canvas, w, h).then(function (newCanvas) {\n return fromCanvas(newCanvas, ir.getType());\n });\n });\n }\n\n var invert$1 = function (ir) {\n return invert(ir);\n };\n var sharpen$1 = function (ir) {\n return sharpen(ir);\n };\n var gamma$1 = function (ir, value) {\n return gamma(ir, value);\n };\n var colorize$1 = function (ir, adjustR, adjustG, adjustB) {\n return colorize(ir, adjustR, adjustG, adjustB);\n };\n var brightness$1 = function (ir, adjust) {\n return brightness(ir, adjust);\n };\n var contrast$1 = function (ir, adjust) {\n return contrast(ir, adjust);\n };\n var flip$1 = function (ir, axis) {\n return flip(ir, axis);\n };\n var crop$1 = function (ir, x, y, w, h) {\n return crop(ir, x, y, w, h);\n };\n var resize$2 = function (ir, w, h) {\n return resize$1(ir, w, h);\n };\n var rotate$1 = function (ir, angle) {\n return rotate(ir, angle);\n };\n\n var renderIcon$1 = function (iconHtml, behaviours) {\n return __assign({\n dom: {\n tag: 'span',\n innerHtml: iconHtml,\n classes: [\n 'tox-icon',\n 'tox-tbtn__icon-wrap'\n ]\n }\n }, behaviours);\n };\n var renderIconFromPack = function (iconName, iconsProvider) {\n return renderIcon$1(get$c(iconName, iconsProvider), {});\n };\n var renderReplacableIconFromPack = function (iconName, iconsProvider) {\n return renderIcon$1(get$c(iconName, iconsProvider), { behaviours: derive$1([Replacing.config({})]) });\n };\n var renderLabel$1 = function (text, prefix, providersBackstage) {\n return {\n dom: {\n tag: 'span',\n innerHtml: providersBackstage.translate(text),\n classes: [prefix + '__select-label']\n },\n behaviours: derive$1([Replacing.config({})])\n };\n };\n\n var internalToolbarButtonExecute = generate$1('toolbar.button.execute');\n var onToolbarButtonExecute = function (info) {\n return runOnExecute(function (comp, simulatedEvent) {\n runWithApi(info, comp)(function (itemApi) {\n emitWith(comp, internalToolbarButtonExecute, { buttonApi: itemApi });\n info.onAction(itemApi);\n });\n });\n };\n var toolbarButtonEventOrder = {\n 'alloy.execute': [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'toolbar-button-events'\n ]\n };\n\n var updateMenuText = generate$1('update-menu-text');\n var updateMenuIcon = generate$1('update-menu-icon');\n var renderCommonDropdown = function (spec, prefix, sharedBackstage) {\n var editorOffCell = Cell(noop);\n var optMemDisplayText = spec.text.map(function (text) {\n return record(renderLabel$1(text, prefix, sharedBackstage.providers));\n });\n var optMemDisplayIcon = spec.icon.map(function (iconName) {\n return record(renderReplacableIconFromPack(iconName, sharedBackstage.providers.icons));\n });\n var onLeftOrRightInMenu = function (comp, se) {\n var dropdown = Representing.getValue(comp);\n Focusing.focus(dropdown);\n emitWith(dropdown, 'keydown', { raw: se.event().raw() });\n Dropdown.close(dropdown);\n return Option.some(true);\n };\n var role = spec.role.fold(function () {\n return {};\n }, function (role) {\n return { role: role };\n });\n var tooltipAttributes = spec.tooltip.fold(function () {\n return {};\n }, function (tooltip) {\n var translatedTooltip = sharedBackstage.providers.translate(tooltip);\n return {\n 'title': translatedTooltip,\n 'aria-label': translatedTooltip\n };\n });\n var memDropdown = record(Dropdown.sketch(__assign(__assign({}, role), {\n dom: {\n tag: 'button',\n classes: [\n prefix,\n prefix + '--select'\n ].concat(map(spec.classes, function (c) {\n return prefix + '--' + c;\n })),\n attributes: __assign({}, tooltipAttributes)\n },\n components: componentRenderPipeline([\n optMemDisplayIcon.map(function (mem) {\n return mem.asSpec();\n }),\n optMemDisplayText.map(function (mem) {\n return mem.asSpec();\n }),\n Option.some({\n dom: {\n tag: 'div',\n classes: [prefix + '__select-chevron'],\n innerHtml: get$c('chevron-down', sharedBackstage.providers.icons)\n }\n })\n ]),\n matchWidth: true,\n useMinWidth: true,\n dropdownBehaviours: derive$1(__spreadArrays(spec.dropdownBehaviours, [\n DisablingConfigs.button(spec.disabled),\n Unselecting.config({}),\n Replacing.config({}),\n config('dropdown-events', [\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n config('menubutton-update-display-text', [\n run(updateMenuText, function (comp, se) {\n optMemDisplayText.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayText) {\n Replacing.set(displayText, [text(sharedBackstage.providers.translate(se.event().text()))]);\n });\n }),\n run(updateMenuIcon, function (comp, se) {\n optMemDisplayIcon.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayIcon) {\n Replacing.set(displayIcon, [renderReplacableIconFromPack(se.event().icon(), sharedBackstage.providers.icons)]);\n });\n })\n ])\n ])),\n eventOrder: deepMerge(toolbarButtonEventOrder, {\n mousedown: [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events',\n 'normal-dropdown-events'\n ]\n }),\n sandboxBehaviours: derive$1([Keying.config({\n mode: 'special',\n onLeft: onLeftOrRightInMenu,\n onRight: onLeftOrRightInMenu\n })]),\n lazySink: sharedBackstage.getSink,\n toggleClass: prefix + '--active',\n parts: { menu: part(false, spec.columns, spec.presets) },\n fetch: function () {\n return Future.nu(spec.fetch);\n }\n })));\n return memDropdown.asSpec();\n };\n\n var isMenuItemReference = function (item) {\n return isString(item);\n };\n var isSeparator = function (item) {\n return item.type === 'separator';\n };\n var isExpandingMenuItem = function (item) {\n return has(item, 'getSubmenuItems');\n };\n var separator$1 = { type: 'separator' };\n var unwrapReferences = function (items, menuItems) {\n var realItems = foldl(items, function (acc, item) {\n if (isMenuItemReference(item)) {\n if (item === '') {\n return acc;\n } else if (item === '|') {\n return acc.length > 0 && !isSeparator(acc[acc.length - 1]) ? acc.concat([separator$1]) : acc;\n } else if (has(menuItems, item.toLowerCase())) {\n return acc.concat([menuItems[item.toLowerCase()]]);\n } else {\n return acc;\n }\n } else {\n return acc.concat([item]);\n }\n }, []);\n if (realItems.length > 0 && isSeparator(realItems[realItems.length - 1])) {\n realItems.pop();\n }\n return realItems;\n };\n var getFromExpandingItem = function (item, menuItems) {\n var submenuItems = item.getSubmenuItems();\n var rest = expand(submenuItems, menuItems);\n var newMenus = deepMerge(rest.menus, wrap$1(item.value, rest.items));\n var newExpansions = deepMerge(rest.expansions, wrap$1(item.value, item.value));\n return {\n item: item,\n menus: newMenus,\n expansions: newExpansions\n };\n };\n var getFromItem = function (item, menuItems) {\n return isExpandingMenuItem(item) ? getFromExpandingItem(item, menuItems) : {\n item: item,\n menus: {},\n expansions: {}\n };\n };\n var generateValueIfRequired = function (item) {\n if (isSeparator(item)) {\n return item;\n } else {\n var itemValue = readOptFrom$1(item, 'value').getOrThunk(function () {\n return generate$1('generated-menu-item');\n });\n return deepMerge({ value: itemValue }, item);\n }\n };\n var expand = function (items, menuItems) {\n var realItems = unwrapReferences(isString(items) ? items.split(' ') : items, menuItems);\n return foldr(realItems, function (acc, item) {\n var itemWithValue = generateValueIfRequired(item);\n var newData = getFromItem(itemWithValue, menuItems);\n return {\n menus: deepMerge(acc.menus, newData.menus),\n items: [newData.item].concat(acc.items),\n expansions: deepMerge(acc.expansions, newData.expansions)\n };\n }, {\n menus: {},\n expansions: {},\n items: []\n });\n };\n\n var build$2 = function (items, itemResponse, backstage, isHorizontalMenu) {\n var primary = generate$1('primary-menu');\n var data = expand(items, backstage.shared.providers.menuItems());\n if (data.items.length === 0) {\n return Option.none();\n }\n var mainMenu = createPartialMenu(primary, data.items, itemResponse, backstage, isHorizontalMenu);\n var submenus = map$1(data.menus, function (menuItems, menuName) {\n return createPartialMenu(menuName, menuItems, itemResponse, backstage, false);\n });\n var menus = deepMerge(submenus, wrap$1(primary, mainMenu));\n return Option.from(tieredMenu.tieredData(primary, menus, data.expansions));\n };\n\n var getMenuButtonApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n },\n setActive: function (state) {\n var elm = component.element();\n if (state) {\n add$2(elm, 'tox-tbtn--enabled');\n set$1(elm, 'aria-pressed', true);\n } else {\n remove$4(elm, 'tox-tbtn--enabled');\n remove$1(elm, 'aria-pressed');\n }\n },\n isActive: function () {\n return has$2(component.element(), 'tox-tbtn--enabled');\n }\n };\n };\n var renderMenuButton = function (spec, prefix, backstage, role) {\n return renderCommonDropdown({\n text: spec.text,\n icon: spec.icon,\n tooltip: spec.tooltip,\n role: role,\n fetch: function (callback) {\n spec.fetch(function (items) {\n callback(build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false));\n });\n },\n onSetup: spec.onSetup,\n getApi: getMenuButtonApi,\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [Tabstopping.config({})]\n }, prefix, backstage.shared);\n };\n var getFetch$1 = function (items, getButton, backstage) {\n var getMenuItemAction = function (item) {\n return function (api) {\n var newValue = !api.isActive();\n api.setActive(newValue);\n item.storage.set(newValue);\n backstage.shared.getSink().each(function (sink) {\n getButton().getOpt(sink).each(function (orig) {\n focus$1(orig.element());\n emitWith(orig, formActionEvent, {\n name: item.name,\n value: item.storage.get()\n });\n });\n });\n };\n };\n var getMenuItemSetup = function (item) {\n return function (api) {\n api.setActive(item.storage.get());\n };\n };\n return function (success) {\n success(map(items, function (item) {\n var text = item.text.fold(function () {\n return {};\n }, function (text) {\n return { text: text };\n });\n return __assign(__assign({ type: item.type }, text), {\n onAction: getMenuItemAction(item),\n onSetup: getMenuItemSetup(item)\n });\n }));\n };\n };\n\n var renderCommonSpec = function (spec, actionOpt, extraBehaviours, dom, components) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var action = actionOpt.fold(function () {\n return {};\n }, function (action) {\n return { action: action };\n });\n var common = __assign({\n buttonBehaviours: derive$1([\n DisablingConfigs.button(spec.disabled),\n Tabstopping.config({}),\n config('button press', [\n preventDefault('click'),\n preventDefault('mousedown')\n ])\n ].concat(extraBehaviours)),\n eventOrder: {\n click: [\n 'button press',\n 'alloy.base.behaviour'\n ],\n mousedown: [\n 'button press',\n 'alloy.base.behaviour'\n ]\n }\n }, action);\n var domFinal = deepMerge(common, { dom: dom });\n return deepMerge(domFinal, { components: components });\n };\n var renderIconButtonSpec = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var tooltipAttributes = spec.tooltip.map(function (tooltip) {\n return {\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n };\n }).getOr({});\n var dom = {\n tag: 'button',\n classes: ['tox-tbtn'],\n attributes: tooltipAttributes\n };\n var icon = spec.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n });\n var components = componentRenderPipeline([icon]);\n return renderCommonSpec(spec, action, extraBehaviours, dom, components);\n };\n var renderIconButton = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var iconButtonSpec = renderIconButtonSpec(spec, Option.some(action), providersBackstage, extraBehaviours);\n return Button.sketch(iconButtonSpec);\n };\n var renderButtonSpec = function (spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n if (extraClasses === void 0) {\n extraClasses = [];\n }\n var translatedText = providersBackstage.translate(spec.text);\n var icon = spec.icon ? spec.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }) : Option.none();\n var components = icon.isSome() ? componentRenderPipeline([icon]) : [];\n var innerHtml = icon.isSome() ? {} : { innerHtml: translatedText };\n var classes = __spreadArrays(!spec.primary && !spec.borderless ? [\n 'tox-button',\n 'tox-button--secondary'\n ] : ['tox-button'], icon.isSome() ? ['tox-button--icon'] : [], spec.borderless ? ['tox-button--naked'] : [], extraClasses);\n var dom = __assign(__assign({\n tag: 'button',\n classes: classes\n }, innerHtml), { attributes: { title: translatedText } });\n return renderCommonSpec(spec, action, extraBehaviours, dom, components);\n };\n var renderButton = function (spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n if (extraClasses === void 0) {\n extraClasses = [];\n }\n var buttonSpec = renderButtonSpec(spec, Option.some(action), providersBackstage, extraBehaviours, extraClasses);\n return Button.sketch(buttonSpec);\n };\n var getAction = function (name, buttonType) {\n return function (comp) {\n if (buttonType === 'custom') {\n emitWith(comp, formActionEvent, {\n name: name,\n value: {}\n });\n } else if (buttonType === 'submit') {\n emit(comp, formSubmitEvent);\n } else if (buttonType === 'cancel') {\n emit(comp, formCancelEvent);\n } else {\n domGlobals.console.error('Unknown button type: ', buttonType);\n }\n };\n };\n var isMenuFooterButtonSpec = function (spec, buttonType) {\n return buttonType === 'menu';\n };\n var isNormalFooterButtonSpec = function (spec, buttonType) {\n return buttonType === 'custom' || buttonType === 'cancel' || buttonType === 'submit';\n };\n var renderFooterButton = function (spec, buttonType, backstage) {\n if (isMenuFooterButtonSpec(spec, buttonType)) {\n var getButton = function () {\n return memButton_1;\n };\n var menuButtonSpec = spec;\n var fixedSpec = __assign(__assign({}, spec), { fetch: getFetch$1(menuButtonSpec.items, getButton, backstage) });\n var memButton_1 = record(renderMenuButton(fixedSpec, 'tox-tbtn', backstage, Option.none()));\n return memButton_1.asSpec();\n } else if (isNormalFooterButtonSpec(spec, buttonType)) {\n var action = getAction(spec.name, buttonType);\n var buttonSpec = __assign(__assign({}, spec), { borderless: false });\n return renderButton(buttonSpec, action, backstage.shared.providers, []);\n } else {\n domGlobals.console.error('Unknown footer button type: ', buttonType);\n }\n };\n var renderDialogButton = function (spec, providersBackstage) {\n var action = getAction(spec.name, 'custom');\n return renderFormField(Option.none(), FormField.parts().field(__assign({ factory: Button }, renderButtonSpec(spec, Option.some(action), providersBackstage, [\n RepresentingConfigs.memory(''),\n ComposingConfigs.self()\n ]))));\n };\n\n var schema$i = constant([\n defaulted$1('field1Name', 'field1'),\n defaulted$1('field2Name', 'field2'),\n onStrictHandler('onLockedChange'),\n markers(['lockClass']),\n defaulted$1('locked', false),\n SketchBehaviours.field('coupledFieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n var getField = function (comp, detail, partName) {\n return getPart(comp, detail, partName).bind(Composing.getCurrent);\n };\n var coupledPart = function (selfName, otherName) {\n return required({\n factory: FormField,\n name: selfName,\n overrides: function (detail) {\n return {\n fieldBehaviours: derive$1([config('coupled-input-behaviour', [run(input(), function (me) {\n getField(me, detail, otherName).each(function (other) {\n getPart(me, detail, 'lock').each(function (lock) {\n if (Toggling.isOn(lock)) {\n detail.onLockedChange(me, other, lock);\n }\n });\n });\n })])])\n };\n }\n });\n };\n var parts$5 = constant([\n coupledPart('field1', 'field2'),\n coupledPart('field2', 'field1'),\n required({\n factory: Button,\n schema: [strict$1('dom')],\n name: 'lock',\n overrides: function (detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n selected: detail.locked,\n toggleClass: detail.markers.lockClass,\n aria: { mode: 'pressed' }\n })])\n };\n }\n })\n ]);\n\n var factory$7 = function (detail, components, spec, externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: SketchBehaviours.augment(detail.coupledFieldBehaviours, [\n Composing.config({ find: Option.some }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var _a;\n var parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n return _a = {}, _a[detail.field1Name] = Representing.getValue(parts.field1()), _a[detail.field2Name] = Representing.getValue(parts.field2()), _a;\n },\n setValue: function (comp, value) {\n var parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n if (hasKey$1(value, detail.field1Name)) {\n Representing.setValue(parts.field1(), value[detail.field1Name]);\n }\n if (hasKey$1(value, detail.field2Name)) {\n Representing.setValue(parts.field2(), value[detail.field2Name]);\n }\n }\n }\n })\n ]),\n apis: {\n getField1: function (component) {\n return getPart(component, detail, 'field1');\n },\n getField2: function (component) {\n return getPart(component, detail, 'field2');\n },\n getLock: function (component) {\n return getPart(component, detail, 'lock');\n }\n }\n };\n };\n var FormCoupledInputs = composite$1({\n name: 'FormCoupledInputs',\n configFields: schema$i(),\n partFields: parts$5(),\n factory: factory$7,\n apis: {\n getField1: function (apis, component) {\n return apis.getField1(component);\n },\n getField2: function (apis, component) {\n return apis.getField2(component);\n },\n getLock: function (apis, component) {\n return apis.getLock(component);\n }\n }\n });\n\n var formatSize = function (size) {\n var unitDec = {\n '': 0,\n 'px': 0,\n 'pt': 1,\n 'mm': 1,\n 'pc': 2,\n 'ex': 2,\n 'em': 2,\n 'ch': 2,\n 'rem': 2,\n 'cm': 3,\n 'in': 4,\n '%': 4\n };\n var maxDecimal = function (unit) {\n return unit in unitDec ? unitDec[unit] : 1;\n };\n var numText = size.value.toFixed(maxDecimal(size.unit));\n if (numText.indexOf('.') !== -1) {\n numText = numText.replace(/\\.?0*$/, '');\n }\n return numText + size.unit;\n };\n var parseSize = function (sizeText) {\n var numPattern = /^\\s*(\\d+(?:\\.\\d+)?)\\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\\s*$/;\n var match = numPattern.exec(sizeText);\n if (match !== null) {\n var value = parseFloat(match[1]);\n var unit = match[2];\n return Result.value({\n value: value,\n unit: unit\n });\n } else {\n return Result.error(sizeText);\n }\n };\n var convertUnit = function (size, unit) {\n var inInch = {\n '': 96,\n 'px': 96,\n 'pt': 72,\n 'cm': 2.54,\n 'pc': 12,\n 'mm': 25.4,\n 'in': 1\n };\n var supported = function (u) {\n return Object.prototype.hasOwnProperty.call(inInch, u);\n };\n if (size.unit === unit) {\n return Option.some(size.value);\n } else if (supported(size.unit) && supported(unit)) {\n if (inInch[size.unit] === inInch[unit]) {\n return Option.some(size.value);\n } else {\n return Option.some(size.value / inInch[size.unit] * inInch[unit]);\n }\n } else {\n return Option.none();\n }\n };\n var noSizeConversion = function (input) {\n return Option.none();\n };\n var ratioSizeConversion = function (scale, unit) {\n return function (size) {\n return convertUnit(size, unit).map(function (value) {\n return {\n value: value * scale,\n unit: unit\n };\n });\n };\n };\n var makeRatioConverter = function (currentFieldText, otherFieldText) {\n var cValue = parseSize(currentFieldText).toOption();\n var oValue = parseSize(otherFieldText).toOption();\n return lift2(cValue, oValue, function (cSize, oSize) {\n return convertUnit(cSize, oSize.unit).map(function (val) {\n return oSize.value / val;\n }).map(function (r) {\n return ratioSizeConversion(r, oSize.unit);\n }).getOr(noSizeConversion);\n }).getOr(noSizeConversion);\n };\n\n var renderSizeInput = function (spec, providersBackstage) {\n var converter = noSizeConversion;\n var ratioEvent = generate$1('ratio-event');\n var pLock = FormCoupledInputs.parts().lock({\n dom: {\n tag: 'button',\n classes: [\n 'tox-lock',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: { title: providersBackstage.translate(spec.label.getOr('Constrain proportions')) }\n },\n components: [\n {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__lock'\n ],\n innerHtml: get$c('lock', providersBackstage.icons)\n }\n },\n {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__unlock'\n ],\n innerHtml: get$c('unlock', providersBackstage.icons)\n }\n }\n ],\n buttonBehaviours: derive$1([\n DisablingConfigs.button(spec.disabled),\n Tabstopping.config({})\n ])\n });\n var formGroup = function (components) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: components\n };\n };\n var getFieldPart = function (isField1) {\n return FormField.parts().field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n inputBehaviours: derive$1([\n Disabling.config({ disabled: spec.disabled }),\n Tabstopping.config({}),\n config('size-input-events', [\n run(focusin(), function (component, simulatedEvent) {\n emitWith(component, ratioEvent, { isField1: isField1 });\n }),\n run(change(), function (component, simulatedEvent) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ])\n ]),\n selectOnFocus: false\n });\n };\n var getLabel = function (label) {\n return {\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n };\n };\n var widthField = FormCoupledInputs.parts().field1(formGroup([\n FormField.parts().label(getLabel('Width')),\n getFieldPart(true)\n ]));\n var heightField = FormCoupledInputs.parts().field2(formGroup([\n FormField.parts().label(getLabel('Height')),\n getFieldPart(false)\n ]));\n return FormCoupledInputs.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: [\n widthField,\n heightField,\n formGroup([\n getLabel('&nbsp;'),\n pLock\n ])\n ]\n }],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: { lockClass: 'tox-locked' },\n onLockedChange: function (current, other, lock) {\n parseSize(Representing.getValue(current)).each(function (size) {\n converter(size).each(function (newSize) {\n Representing.setValue(other, formatSize(newSize));\n });\n });\n },\n coupledFieldBehaviours: derive$1([\n Disabling.config({\n disabled: spec.disabled,\n onDisabled: function (comp) {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getLock(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getLock(comp).each(Disabling.enable);\n }\n }),\n config('size-input-events2', [run(ratioEvent, function (component, simulatedEvent) {\n var isField1 = simulatedEvent.event().isField1();\n var optCurrent = isField1 ? FormCoupledInputs.getField1(component) : FormCoupledInputs.getField2(component);\n var optOther = isField1 ? FormCoupledInputs.getField2(component) : FormCoupledInputs.getField1(component);\n var value1 = optCurrent.map(Representing.getValue).getOr('');\n var value2 = optOther.map(Representing.getValue).getOr('');\n converter = makeRatioConverter(value1, value2);\n })])\n ])\n });\n };\n\n var undo = constant(generate$1('undo'));\n var redo = constant(generate$1('redo'));\n var zoom = constant(generate$1('zoom'));\n var back = constant(generate$1('back'));\n var apply = constant(generate$1('apply'));\n var swap = constant(generate$1('swap'));\n var transform = constant(generate$1('transform'));\n var tempTransform = constant(generate$1('temp-transform'));\n var transformApply = constant(generate$1('transform-apply'));\n var internal = {\n undo: undo,\n redo: redo,\n zoom: zoom,\n back: back,\n apply: apply,\n swap: swap,\n transform: transform,\n tempTransform: tempTransform,\n transformApply: transformApply\n };\n var saveState = constant('save-state');\n var disable$1 = constant('disable');\n var enable$1 = constant('enable');\n var external$2 = {\n formActionEvent: formActionEvent,\n saveState: saveState,\n disable: disable$1,\n enable: enable$1\n };\n\n var renderEditPanel = function (imagePanel, providersBackstage) {\n var createButton = function (text, action, disabled, primary) {\n return record(renderButton({\n name: text,\n text: text,\n disabled: disabled,\n primary: primary,\n icon: Option.none(),\n borderless: false\n }, action, providersBackstage));\n };\n var createIconButton = function (icon, tooltip, action, disabled) {\n return record(renderIconButton({\n name: icon,\n icon: Option.some(icon),\n tooltip: Option.some(tooltip),\n disabled: disabled,\n primary: false,\n borderless: false\n }, action, providersBackstage));\n };\n var disableAllComponents = function (comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n if (component.hasConfigured(Disabling)) {\n Disabling.disable(component);\n }\n });\n };\n var enableAllComponents = function (comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n if (component.hasConfigured(Disabling)) {\n Disabling.enable(component);\n }\n });\n };\n var panelDom = {\n tag: 'div',\n classes: [\n 'tox-image-tools__toolbar',\n 'tox-image-tools-edit-panel'\n ]\n };\n var noop$1 = noop;\n var emit$1 = function (comp, event, data) {\n emitWith(comp, event, data);\n };\n var emitDisable = function (component) {\n return emit(component, external$2.disable());\n };\n var emitEnable = function (component) {\n return emit(component, external$2.enable());\n };\n var emitTransform = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transform(), { transform: transform });\n emitEnable(comp);\n };\n var emitTempTransform = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.tempTransform(), { transform: transform });\n emitEnable(comp);\n };\n var getBackSwap = function (anyInSystem) {\n return function () {\n memContainer.getOpt(anyInSystem).each(function (container) {\n Replacing.set(container, [ButtonPanel]);\n });\n };\n };\n var emitTransformApply = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transformApply(), {\n transform: transform,\n swap: getBackSwap(comp)\n });\n emitEnable(comp);\n };\n var createBackButton = function () {\n return createButton('Back', function (button) {\n return emit$1(button, internal.back(), { swap: getBackSwap(button) });\n }, false, false);\n };\n var createSpacer = function () {\n return record({\n dom: {\n tag: 'div',\n classes: ['tox-spacer']\n },\n behaviours: derive$1([Disabling.config({})])\n });\n };\n var createApplyButton = function () {\n return createButton('Apply', function (button) {\n return emit$1(button, internal.apply(), { swap: getBackSwap(button) });\n }, true, true);\n };\n var makeCropTransform = function () {\n return function (ir) {\n var rect = imagePanel.getRect();\n return crop$1(ir, rect.x, rect.y, rect.w, rect.h);\n };\n };\n var cropPanelComponents = [\n createBackButton(),\n createSpacer(),\n createButton('Apply', function (button) {\n var transform = makeCropTransform();\n emitTransformApply(button, transform);\n imagePanel.hideCrop();\n }, false, true)\n ];\n var CropPanel = Container.sketch({\n dom: panelDom,\n components: cropPanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-crop-buttons-events', [\n run(external$2.disable(), function (comp, se) {\n disableAllComponents(cropPanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, se) {\n enableAllComponents(cropPanelComponents, comp);\n })\n ])])\n });\n var memSize = record(renderSizeInput({\n name: 'size',\n label: Option.none(),\n constrain: true,\n disabled: false\n }, providersBackstage));\n var makeResizeTransform = function (width, height) {\n return function (ir) {\n return resize$2(ir, width, height);\n };\n };\n var resizePanelComponents = [\n createBackButton(),\n createSpacer(),\n memSize,\n createSpacer(),\n createButton('Apply', function (button) {\n memSize.getOpt(button).each(function (sizeInput) {\n var value = Representing.getValue(sizeInput);\n var width = parseInt(value.width, 10);\n var height = parseInt(value.height, 10);\n var transform = makeResizeTransform(width, height);\n emitTransformApply(button, transform);\n });\n }, false, true)\n ];\n var ResizePanel = Container.sketch({\n dom: panelDom,\n components: resizePanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-resize-buttons-events', [\n run(external$2.disable(), function (comp, se) {\n disableAllComponents(resizePanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, se) {\n enableAllComponents(resizePanelComponents, comp);\n })\n ])])\n });\n var makeValueTransform = function (transform, value) {\n return function (ir) {\n return transform(ir, value);\n };\n };\n var horizontalFlip = makeValueTransform(flip$1, 'h');\n var verticalFlip = makeValueTransform(flip$1, 'v');\n var counterclockwiseRotate = makeValueTransform(rotate$1, -90);\n var clockwiseRotate = makeValueTransform(rotate$1, 90);\n var flipRotateOnAction = function (comp, operation) {\n emitTempTransform(comp, operation);\n };\n var flipRotateComponents = [\n createBackButton(),\n createSpacer(),\n createIconButton('flip-horizontally', 'Flip horizontally', function (button) {\n flipRotateOnAction(button, horizontalFlip);\n }, false),\n createIconButton('flip-vertically', 'Flip vertically', function (button) {\n flipRotateOnAction(button, verticalFlip);\n }, false),\n createIconButton('rotate-left', 'Rotate counterclockwise', function (button) {\n flipRotateOnAction(button, counterclockwiseRotate);\n }, false),\n createIconButton('rotate-right', 'Rotate clockwise', function (button) {\n flipRotateOnAction(button, clockwiseRotate);\n }, false),\n createSpacer(),\n createApplyButton()\n ];\n var FlipRotatePanel = Container.sketch({\n dom: panelDom,\n components: flipRotateComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-fliprotate-buttons-events', [\n run(external$2.disable(), function (comp, se) {\n disableAllComponents(flipRotateComponents, comp);\n }),\n run(external$2.enable(), function (comp, se) {\n enableAllComponents(flipRotateComponents, comp);\n })\n ])])\n });\n var makeSlider = function (label, onChoose, min, value, max) {\n var labelPart = Slider.parts().label({\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n });\n var spectrum = Slider.parts().spectrum({\n dom: {\n tag: 'div',\n classes: ['tox-slider__rail'],\n attributes: { role: 'presentation' }\n }\n });\n var thumb = Slider.parts().thumb({\n dom: {\n tag: 'div',\n classes: ['tox-slider__handle'],\n attributes: { role: 'presentation' }\n }\n });\n return record(Slider.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-slider'],\n attributes: { role: 'presentation' }\n },\n model: {\n mode: 'x',\n minX: min,\n maxX: max,\n getInitialValue: constant({ x: constant(value) })\n },\n components: [\n labelPart,\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChoose: onChoose\n }));\n };\n var makeVariableSlider = function (label, transform, min, value, max) {\n var onChoose = function (slider, thumb, value) {\n var valTransform = makeValueTransform(transform, value.x() / 100);\n emitTransform(slider, valTransform);\n };\n return makeSlider(label, onChoose, min, value, max);\n };\n var variableFilterPanelComponents = function (label, transform, min, value, max) {\n return [\n createBackButton(),\n makeVariableSlider(label, transform, min, value, max),\n createApplyButton()\n ];\n };\n var createVariableFilterPanel = function (label, transform, min, value, max) {\n var filterPanelComponents = variableFilterPanelComponents(label, transform, min, value, max);\n return Container.sketch({\n dom: panelDom,\n components: filterPanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-filter-panel-buttons-events', [\n run(external$2.disable(), function (comp, se) {\n disableAllComponents(filterPanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, se) {\n enableAllComponents(filterPanelComponents, comp);\n })\n ])])\n });\n };\n var filterPanelComponents = [\n createBackButton(),\n createSpacer(),\n createApplyButton()\n ];\n var FilterPanel = Container.sketch({\n dom: panelDom,\n components: filterPanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var BrightnessPanel = createVariableFilterPanel('Brightness', brightness$1, -100, 0, 100);\n var ContrastPanel = createVariableFilterPanel('Contrast', contrast$1, -100, 0, 100);\n var GammaPanel = createVariableFilterPanel('Gamma', gamma$1, -100, 0, 100);\n var makeColorTransform = function (red, green, blue) {\n return function (ir) {\n return colorize$1(ir, red, green, blue);\n };\n };\n var makeColorSlider = function (label) {\n var onChoose = function (slider, thumb, value) {\n var redOpt = memRed.getOpt(slider);\n var blueOpt = memBlue.getOpt(slider);\n var greenOpt = memGreen.getOpt(slider);\n redOpt.each(function (red) {\n blueOpt.each(function (blue) {\n greenOpt.each(function (green) {\n var r = Representing.getValue(red).x() / 100;\n var g = Representing.getValue(green).x() / 100;\n var b = Representing.getValue(blue).x() / 100;\n var transform = makeColorTransform(r, g, b);\n emitTransform(slider, transform);\n });\n });\n });\n };\n return makeSlider(label, onChoose, 0, 100, 200);\n };\n var memRed = makeColorSlider('R');\n var memGreen = makeColorSlider('G');\n var memBlue = makeColorSlider('B');\n var colorizePanelComponents = [\n createBackButton(),\n memRed,\n memGreen,\n memBlue,\n createApplyButton()\n ];\n var ColorizePanel = Container.sketch({\n dom: panelDom,\n components: colorizePanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var getTransformPanelEvent = function (panel, transform, update) {\n return function (button) {\n var swap = function () {\n memContainer.getOpt(button).each(function (container) {\n Replacing.set(container, [panel]);\n update(container);\n });\n };\n emit$1(button, internal.swap(), {\n transform: transform,\n swap: swap\n });\n };\n };\n var cropPanelUpdate = function (_anyInSystem) {\n imagePanel.showCrop();\n };\n var resizePanelUpdate = function (anyInSystem) {\n memSize.getOpt(anyInSystem).each(function (sizeInput) {\n var measurements = imagePanel.getMeasurements();\n var width = measurements.width;\n var height = measurements.height;\n Representing.setValue(sizeInput, {\n width: width,\n height: height\n });\n });\n };\n var sharpenTransform = Option.some(sharpen$1);\n var invertTransform = Option.some(invert$1);\n var buttonPanelComponents = [\n createIconButton('crop', 'Crop', getTransformPanelEvent(CropPanel, Option.none(), cropPanelUpdate), false),\n createIconButton('resize', 'Resize', getTransformPanelEvent(ResizePanel, Option.none(), resizePanelUpdate), false),\n createIconButton('orientation', 'Orientation', getTransformPanelEvent(FlipRotatePanel, Option.none(), noop$1), false),\n createIconButton('brightness', 'Brightness', getTransformPanelEvent(BrightnessPanel, Option.none(), noop$1), false),\n createIconButton('sharpen', 'Sharpen', getTransformPanelEvent(FilterPanel, sharpenTransform, noop$1), false),\n createIconButton('contrast', 'Contrast', getTransformPanelEvent(ContrastPanel, Option.none(), noop$1), false),\n createIconButton('color-levels', 'Color levels', getTransformPanelEvent(ColorizePanel, Option.none(), noop$1), false),\n createIconButton('gamma', 'Gamma', getTransformPanelEvent(GammaPanel, Option.none(), noop$1), false),\n createIconButton('invert', 'Invert', getTransformPanelEvent(FilterPanel, invertTransform, noop$1), false)\n ];\n var ButtonPanel = Container.sketch({\n dom: panelDom,\n components: buttonPanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var container = Container.sketch({\n dom: { tag: 'div' },\n components: [ButtonPanel],\n containerBehaviours: derive$1([Replacing.config({})])\n });\n var memContainer = record(container);\n var getApplyButton = function (anyInSystem) {\n return memContainer.getOpt(anyInSystem).map(function (container) {\n var panel = container.components()[0];\n return panel.components()[panel.components().length - 1];\n });\n };\n return {\n memContainer: memContainer,\n getApplyButton: getApplyButton\n };\n };\n\n var global$b = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');\n\n var global$c = tinymce.util.Tools.resolve('tinymce.geom.Rect');\n\n var global$d = tinymce.util.Tools.resolve('tinymce.util.Observable');\n\n var global$e = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var global$f = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n function getDocumentSize(doc) {\n var documentElement, body, scrollWidth, clientWidth;\n var offsetWidth, scrollHeight, clientHeight, offsetHeight;\n var max = Math.max;\n documentElement = doc.documentElement;\n body = doc.body;\n scrollWidth = max(documentElement.scrollWidth, body.scrollWidth);\n clientWidth = max(documentElement.clientWidth, body.clientWidth);\n offsetWidth = max(documentElement.offsetWidth, body.offsetWidth);\n scrollHeight = max(documentElement.scrollHeight, body.scrollHeight);\n clientHeight = max(documentElement.clientHeight, body.clientHeight);\n offsetHeight = max(documentElement.offsetHeight, body.offsetHeight);\n return {\n width: scrollWidth < offsetWidth ? clientWidth : scrollWidth,\n height: scrollHeight < offsetHeight ? clientHeight : scrollHeight\n };\n }\n function updateWithTouchData(e) {\n var keys, i;\n if (e.changedTouches) {\n keys = 'screenX screenY pageX pageY clientX clientY'.split(' ');\n for (i = 0; i < keys.length; i++) {\n e[keys[i]] = e.changedTouches[0][keys[i]];\n }\n }\n }\n function DragHelper (id, settings) {\n var $eventOverlay;\n var doc = settings.document || domGlobals.document;\n var downButton;\n var start, stop, drag, startX, startY;\n settings = settings || {};\n var handleElement = doc.getElementById(settings.handle || id);\n start = function (e) {\n var docSize = getDocumentSize(doc);\n var handleElm, cursor;\n updateWithTouchData(e);\n e.preventDefault();\n downButton = e.button;\n handleElm = handleElement;\n startX = e.screenX;\n startY = e.screenY;\n if (domGlobals.window.getComputedStyle) {\n cursor = domGlobals.window.getComputedStyle(handleElm, null).getPropertyValue('cursor');\n } else {\n cursor = handleElm.runtimeStyle.cursor;\n }\n $eventOverlay = global$b('<div></div>').css({\n position: 'absolute',\n top: 0,\n left: 0,\n width: docSize.width,\n height: docSize.height,\n zIndex: 2147483647,\n opacity: 0.0001,\n cursor: cursor\n }).appendTo(doc.body);\n global$b(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop);\n settings.start(e);\n };\n drag = function (e) {\n updateWithTouchData(e);\n if (e.button !== downButton) {\n return stop(e);\n }\n e.deltaX = e.screenX - startX;\n e.deltaY = e.screenY - startY;\n e.preventDefault();\n settings.drag(e);\n };\n stop = function (e) {\n updateWithTouchData(e);\n global$b(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop);\n $eventOverlay.remove();\n if (settings.stop) {\n settings.stop(e);\n }\n };\n this.destroy = function () {\n global$b(handleElement).off();\n };\n global$b(handleElement).on('mousedown touchstart', start);\n }\n\n var count = 0;\n var create$7 = function (currentRect, viewPortRect, clampRect, containerElm, action) {\n var instance;\n var dragHelpers;\n var blockers;\n var prefix = 'tox-';\n var id = prefix + 'crid-' + count++;\n var handles = [\n {\n name: 'move',\n xMul: 0,\n yMul: 0,\n deltaX: 1,\n deltaY: 1,\n deltaW: 0,\n deltaH: 0,\n label: 'Crop Mask'\n },\n {\n name: 'nw',\n xMul: 0,\n yMul: 0,\n deltaX: 1,\n deltaY: 1,\n deltaW: -1,\n deltaH: -1,\n label: 'Top Left Crop Handle'\n },\n {\n name: 'ne',\n xMul: 1,\n yMul: 0,\n deltaX: 0,\n deltaY: 1,\n deltaW: 1,\n deltaH: -1,\n label: 'Top Right Crop Handle'\n },\n {\n name: 'sw',\n xMul: 0,\n yMul: 1,\n deltaX: 1,\n deltaY: 0,\n deltaW: -1,\n deltaH: 1,\n label: 'Bottom Left Crop Handle'\n },\n {\n name: 'se',\n xMul: 1,\n yMul: 1,\n deltaX: 0,\n deltaY: 0,\n deltaW: 1,\n deltaH: 1,\n label: 'Bottom Right Crop Handle'\n }\n ];\n blockers = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ];\n var getAbsoluteRect = function (outerRect, relativeRect) {\n return {\n x: relativeRect.x + outerRect.x,\n y: relativeRect.y + outerRect.y,\n w: relativeRect.w,\n h: relativeRect.h\n };\n };\n var getRelativeRect = function (outerRect, innerRect) {\n return {\n x: innerRect.x - outerRect.x,\n y: innerRect.y - outerRect.y,\n w: innerRect.w,\n h: innerRect.h\n };\n };\n var getInnerRect = function () {\n return getRelativeRect(clampRect, currentRect);\n };\n function moveRect(handle, startRect, deltaX, deltaY) {\n var x, y, w, h, rect;\n x = startRect.x;\n y = startRect.y;\n w = startRect.w;\n h = startRect.h;\n x += deltaX * handle.deltaX;\n y += deltaY * handle.deltaY;\n w += deltaX * handle.deltaW;\n h += deltaY * handle.deltaH;\n if (w < 20) {\n w = 20;\n }\n if (h < 20) {\n h = 20;\n }\n rect = currentRect = global$c.clamp({\n x: x,\n y: y,\n w: w,\n h: h\n }, clampRect, handle.name === 'move');\n rect = getRelativeRect(clampRect, rect);\n instance.fire('updateRect', { rect: rect });\n setInnerRect(rect);\n }\n function render() {\n function createDragHelper(handle) {\n var startRect;\n return new DragHelper(id, {\n document: containerElm.ownerDocument,\n handle: id + '-' + handle.name,\n start: function () {\n startRect = currentRect;\n },\n drag: function (e) {\n moveRect(handle, startRect, e.deltaX, e.deltaY);\n }\n });\n }\n global$b('<div id=\"' + id + '\" class=\"' + prefix + 'croprect-container\"' + ' role=\"grid\" aria-dropeffect=\"execute\">').appendTo(containerElm);\n global$e.each(blockers, function (blocker) {\n global$b('#' + id, containerElm).append('<div id=\"' + id + '-' + blocker + '\"class=\"' + prefix + 'croprect-block\" style=\"display: none\" data-mce-bogus=\"all\">');\n });\n global$e.each(handles, function (handle) {\n global$b('#' + id, containerElm).append('<div id=\"' + id + '-' + handle.name + '\" class=\"' + prefix + 'croprect-handle ' + prefix + 'croprect-handle-' + handle.name + '\"' + 'style=\"display: none\" data-mce-bogus=\"all\" role=\"gridcell\" tabindex=\"-1\"' + ' aria-label=\"' + handle.label + '\" aria-grabbed=\"false\" title=\"' + handle.label + '\">');\n });\n dragHelpers = global$e.map(handles, createDragHelper);\n repaint(currentRect);\n global$b(containerElm).on('focusin focusout', function (e) {\n global$b(e.target).attr('aria-grabbed', e.type === 'focus' ? 'true' : 'false');\n });\n global$b(containerElm).on('keydown', function (e) {\n var activeHandle;\n global$e.each(handles, function (handle) {\n if (e.target.id === id + '-' + handle.name) {\n activeHandle = handle;\n return false;\n }\n });\n function moveAndBlock(evt, handle, startRect, deltaX, deltaY) {\n evt.stopPropagation();\n evt.preventDefault();\n moveRect(activeHandle, startRect, deltaX, deltaY);\n }\n switch (e.keyCode) {\n case global$f.LEFT:\n moveAndBlock(e, activeHandle, currentRect, -10, 0);\n break;\n case global$f.RIGHT:\n moveAndBlock(e, activeHandle, currentRect, 10, 0);\n break;\n case global$f.UP:\n moveAndBlock(e, activeHandle, currentRect, 0, -10);\n break;\n case global$f.DOWN:\n moveAndBlock(e, activeHandle, currentRect, 0, 10);\n break;\n case global$f.ENTER:\n case global$f.SPACEBAR:\n e.preventDefault();\n action();\n break;\n }\n });\n }\n function toggleVisibility(state) {\n var selectors;\n selectors = global$e.map(handles, function (handle) {\n return '#' + id + '-' + handle.name;\n }).concat(global$e.map(blockers, function (blocker) {\n return '#' + id + '-' + blocker;\n })).join(',');\n if (state) {\n global$b(selectors, containerElm).show();\n } else {\n global$b(selectors, containerElm).hide();\n }\n }\n function repaint(rect) {\n function updateElementRect(name, rect) {\n if (rect.h < 0) {\n rect.h = 0;\n }\n if (rect.w < 0) {\n rect.w = 0;\n }\n global$b('#' + id + '-' + name, containerElm).css({\n left: rect.x,\n top: rect.y,\n width: rect.w,\n height: rect.h\n });\n }\n global$e.each(handles, function (handle) {\n global$b('#' + id + '-' + handle.name, containerElm).css({\n left: rect.w * handle.xMul + rect.x,\n top: rect.h * handle.yMul + rect.y\n });\n });\n updateElementRect('top', {\n x: viewPortRect.x,\n y: viewPortRect.y,\n w: viewPortRect.w,\n h: rect.y - viewPortRect.y\n });\n updateElementRect('right', {\n x: rect.x + rect.w,\n y: rect.y,\n w: viewPortRect.w - rect.x - rect.w + viewPortRect.x,\n h: rect.h\n });\n updateElementRect('bottom', {\n x: viewPortRect.x,\n y: rect.y + rect.h,\n w: viewPortRect.w,\n h: viewPortRect.h - rect.y - rect.h + viewPortRect.y\n });\n updateElementRect('left', {\n x: viewPortRect.x,\n y: rect.y,\n w: rect.x - viewPortRect.x,\n h: rect.h\n });\n updateElementRect('move', rect);\n }\n function setRect(rect) {\n currentRect = rect;\n repaint(currentRect);\n }\n function setViewPortRect(rect) {\n viewPortRect = rect;\n repaint(currentRect);\n }\n function setInnerRect(rect) {\n setRect(getAbsoluteRect(clampRect, rect));\n }\n function setClampRect(rect) {\n clampRect = rect;\n repaint(currentRect);\n }\n function destroy() {\n global$e.each(dragHelpers, function (helper) {\n helper.destroy();\n });\n dragHelpers = [];\n }\n render();\n instance = global$e.extend({\n toggleVisibility: toggleVisibility,\n setClampRect: setClampRect,\n setRect: setRect,\n getInnerRect: getInnerRect,\n setInnerRect: setInnerRect,\n setViewPortRect: setViewPortRect,\n destroy: destroy\n }, global$d);\n return instance;\n };\n var CropRect = { create: create$7 };\n\n var loadImage = function (image) {\n return new global$4(function (resolve) {\n var loaded = function () {\n image.removeEventListener('load', loaded);\n resolve(image);\n };\n if (image.complete) {\n resolve(image);\n } else {\n image.addEventListener('load', loaded);\n }\n });\n };\n var renderImagePanel = function (initialUrl) {\n var memBg = record({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image-bg'],\n attributes: { role: 'presentation' }\n }\n });\n var zoomState = Cell(1);\n var cropRect = Cell(Option.none());\n var rectState = Cell({\n x: 0,\n y: 0,\n w: 1,\n h: 1\n });\n var viewRectState = Cell({\n x: 0,\n y: 0,\n w: 1,\n h: 1\n });\n var repaintImg = function (anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var zoom = zoomState.get();\n var panelW = get$7(panel.element());\n var panelH = get$6(panel.element());\n var width = img.dom().naturalWidth * zoom;\n var height = img.dom().naturalHeight * zoom;\n var left = Math.max(0, panelW / 2 - width / 2);\n var top = Math.max(0, panelH / 2 - height / 2);\n var css = {\n left: left.toString() + 'px',\n top: top.toString() + 'px',\n width: width.toString() + 'px',\n height: height.toString() + 'px',\n position: 'absolute'\n };\n setAll$1(img, css);\n memBg.getOpt(panel).each(function (bg) {\n setAll$1(bg.element(), css);\n });\n cropRect.get().each(function (cRect) {\n var rect = rectState.get();\n cRect.setRect({\n x: rect.x * zoom + left,\n y: rect.y * zoom + top,\n w: rect.w * zoom,\n h: rect.h * zoom\n });\n cRect.setClampRect({\n x: left,\n y: top,\n w: width,\n h: height\n });\n cRect.setViewPortRect({\n x: 0,\n y: 0,\n w: panelW,\n h: panelH\n });\n });\n });\n };\n var zoomFit = function (anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var panelW = get$7(panel.element());\n var panelH = get$6(panel.element());\n var width = img.dom().naturalWidth;\n var height = img.dom().naturalHeight;\n var zoom = Math.min(panelW / width, panelH / height);\n if (zoom >= 1) {\n zoomState.set(1);\n } else {\n zoomState.set(zoom);\n }\n });\n };\n var updateSrc = function (anyInSystem, url) {\n var img = Element.fromTag('img');\n set$1(img, 'src', url);\n return loadImage(img.dom()).then(function () {\n return memContainer.getOpt(anyInSystem).map(function (panel) {\n var aImg = external({ element: img });\n Replacing.replaceAt(panel, 1, Option.some(aImg));\n var lastViewRect = viewRectState.get();\n var viewRect = {\n x: 0,\n y: 0,\n w: img.dom().naturalWidth,\n h: img.dom().naturalHeight\n };\n viewRectState.set(viewRect);\n var rect = global$c.inflate(viewRect, -20, -20);\n rectState.set(rect);\n if (lastViewRect.w !== viewRect.w || lastViewRect.h !== viewRect.h) {\n zoomFit(panel, img);\n }\n repaintImg(panel, img);\n return img;\n });\n });\n };\n var zoom = function (anyInSystem, direction) {\n var currentZoom = zoomState.get();\n var newZoom = direction > 0 ? Math.min(2, currentZoom + 0.1) : Math.max(0.1, currentZoom - 0.1);\n zoomState.set(newZoom);\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var img = panel.components()[1].element();\n repaintImg(panel, img);\n });\n };\n var showCrop = function () {\n cropRect.get().each(function (cRect) {\n cRect.toggleVisibility(true);\n });\n };\n var hideCrop = function () {\n cropRect.get().each(function (cRect) {\n cRect.toggleVisibility(false);\n });\n };\n var getRect = function () {\n return rectState.get();\n };\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image']\n },\n components: [\n memBg.asSpec(),\n {\n dom: {\n tag: 'img',\n attributes: { src: initialUrl }\n }\n },\n {\n dom: { tag: 'div' },\n behaviours: derive$1([config('image-panel-crop-events', [runOnAttached(function (comp) {\n memContainer.getOpt(comp).each(function (container) {\n var el = container.element().dom();\n var cRect = CropRect.create({\n x: 10,\n y: 10,\n w: 100,\n h: 100\n }, {\n x: 0,\n y: 0,\n w: 200,\n h: 200\n }, {\n x: 0,\n y: 0,\n w: 200,\n h: 200\n }, el, function () {\n });\n cRect.toggleVisibility(false);\n cRect.on('updateRect', function (e) {\n var rect = e.rect;\n var zoom = zoomState.get();\n var newRect = {\n x: Math.round(rect.x / zoom),\n y: Math.round(rect.y / zoom),\n w: Math.round(rect.w / zoom),\n h: Math.round(rect.h / zoom)\n };\n rectState.set(newRect);\n });\n cropRect.set(Option.some(cRect));\n });\n })])])\n }\n ],\n containerBehaviours: derive$1([\n Replacing.config({}),\n config('image-panel-events', [runOnAttached(function (comp) {\n updateSrc(comp, initialUrl);\n })])\n ])\n });\n var memContainer = record(container);\n var getMeasurements = function () {\n var viewRect = viewRectState.get();\n return {\n width: viewRect.w,\n height: viewRect.h\n };\n };\n return {\n memContainer: memContainer,\n updateSrc: updateSrc,\n zoom: zoom,\n showCrop: showCrop,\n hideCrop: hideCrop,\n getRect: getRect,\n getMeasurements: getMeasurements\n };\n };\n\n var createButton = function (innerHtml, icon, disabled, action, providersBackstage) {\n return renderIconButton({\n name: innerHtml,\n icon: Option.some(icon),\n disabled: disabled,\n tooltip: Option.some(innerHtml),\n primary: false,\n borderless: false\n }, action, providersBackstage);\n };\n var setButtonEnabled = function (button, enabled) {\n if (enabled) {\n Disabling.enable(button);\n } else {\n Disabling.disable(button);\n }\n };\n var renderSideBar = function (providersBackstage) {\n var updateButtonUndoStates = function (anyInSystem, undoEnabled, redoEnabled) {\n memUndo.getOpt(anyInSystem).each(function (undo) {\n setButtonEnabled(undo, undoEnabled);\n });\n memRedo.getOpt(anyInSystem).each(function (redo) {\n setButtonEnabled(redo, redoEnabled);\n });\n };\n var memUndo = record(createButton('Undo', 'undo', true, function (button) {\n emitWith(button, internal.undo(), { direction: 1 });\n }, providersBackstage));\n var memRedo = record(createButton('Redo', 'redo', true, function (button) {\n emitWith(button, internal.redo(), { direction: 1 });\n }, providersBackstage));\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox-image-tools__toolbar',\n 'tox-image-tools__sidebar'\n ]\n },\n components: [\n memUndo.asSpec(),\n memRedo.asSpec(),\n createButton('Zoom in', 'zoom-in', false, function (button) {\n emitWith(button, internal.zoom(), { direction: 1 });\n }, providersBackstage),\n createButton('Zoom out', 'zoom-out', false, function (button) {\n emitWith(button, internal.zoom(), { direction: -1 });\n }, providersBackstage)\n ]\n });\n return {\n container: container,\n updateButtonUndoStates: updateButtonUndoStates\n };\n };\n\n function UndoStack () {\n var data = [];\n var index = -1;\n function add(state) {\n var removed;\n removed = data.splice(++index);\n data.push(state);\n return {\n state: state,\n removed: removed\n };\n }\n function undo() {\n if (canUndo()) {\n return data[--index];\n }\n }\n function redo() {\n if (canRedo()) {\n return data[++index];\n }\n }\n function canUndo() {\n return index > 0;\n }\n function canRedo() {\n return index !== -1 && index < data.length - 1;\n }\n return {\n data: data,\n add: add,\n undo: undo,\n redo: redo,\n canUndo: canUndo,\n canRedo: canRedo\n };\n }\n\n var makeState = function (initialState) {\n var blobState = Cell(initialState);\n var tempState = Cell(Option.none());\n var undoStack = UndoStack();\n undoStack.add(initialState);\n var getBlobState = function () {\n return blobState.get();\n };\n var setBlobState = function (state) {\n blobState.set(state);\n };\n var getTempState = function () {\n return tempState.get().fold(function () {\n return blobState.get();\n }, function (temp) {\n return temp;\n });\n };\n var updateTempState = function (blob) {\n var newTempState = createState(blob);\n destroyTempState();\n tempState.set(Option.some(newTempState));\n return newTempState.url;\n };\n var createState = function (blob) {\n return {\n blob: blob,\n url: domGlobals.URL.createObjectURL(blob)\n };\n };\n var destroyState = function (state) {\n domGlobals.URL.revokeObjectURL(state.url);\n };\n var destroyStates = function (states) {\n global$e.each(states, destroyState);\n };\n var destroyTempState = function () {\n tempState.get().each(destroyState);\n tempState.set(Option.none());\n };\n var addBlobState = function (blob) {\n var newState = createState(blob);\n setBlobState(newState);\n var removed = undoStack.add(newState).removed;\n destroyStates(removed);\n return newState.url;\n };\n var addTempState = function (blob) {\n var newState = createState(blob);\n tempState.set(Option.some(newState));\n return newState.url;\n };\n var applyTempState = function (postApply) {\n return tempState.get().fold(function () {\n }, function (temp) {\n addBlobState(temp.blob);\n postApply();\n });\n };\n var undo = function () {\n var currentState = undoStack.undo();\n setBlobState(currentState);\n return currentState.url;\n };\n var redo = function () {\n var currentState = undoStack.redo();\n setBlobState(currentState);\n return currentState.url;\n };\n var getHistoryStates = function () {\n var undoEnabled = undoStack.canUndo();\n var redoEnabled = undoStack.canRedo();\n return {\n undoEnabled: undoEnabled,\n redoEnabled: redoEnabled\n };\n };\n return {\n getBlobState: getBlobState,\n setBlobState: setBlobState,\n addBlobState: addBlobState,\n getTempState: getTempState,\n updateTempState: updateTempState,\n addTempState: addTempState,\n applyTempState: applyTempState,\n destroyTempState: destroyTempState,\n undo: undo,\n redo: redo,\n getHistoryStates: getHistoryStates\n };\n };\n\n var renderImageTools = function (detail, providersBackstage) {\n var state = makeState(detail.currentState);\n var zoom = function (anyInSystem, simulatedEvent) {\n var direction = simulatedEvent.event().direction();\n imagePanel.zoom(anyInSystem, direction);\n };\n var updateButtonUndoStates = function (anyInSystem) {\n var historyStates = state.getHistoryStates();\n sideBar.updateButtonUndoStates(anyInSystem, historyStates.undoEnabled, historyStates.redoEnabled);\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.saveState(),\n value: historyStates.undoEnabled\n });\n };\n var disableUndoRedo = function (anyInSystem) {\n sideBar.updateButtonUndoStates(anyInSystem, false, false);\n };\n var undo = function (anyInSystem, _simulatedEvent) {\n var url = state.undo();\n updateSrc(anyInSystem, url).then(function (oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n var redo = function (anyInSystem, _simulatedEvent) {\n var url = state.redo();\n updateSrc(anyInSystem, url).then(function (oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n var imageResultToBlob = function (ir) {\n return ir.toBlob();\n };\n var block = function (anyInSystem) {\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.disable(),\n value: {}\n });\n };\n var unblock = function (anyInSystem) {\n editPanel.getApplyButton(anyInSystem).each(function (applyButton) {\n Disabling.enable(applyButton);\n });\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.enable(),\n value: {}\n });\n };\n var updateSrc = function (anyInSystem, src) {\n block(anyInSystem);\n return imagePanel.updateSrc(anyInSystem, src);\n };\n var blobManipulate = function (anyInSystem, blob, filter, action, swap) {\n block(anyInSystem);\n return blobToImageResult(blob).then(filter).then(imageResultToBlob).then(action).then(function (url) {\n return updateSrc(anyInSystem, url).then(function (oImg) {\n updateButtonUndoStates(anyInSystem);\n swap();\n unblock(anyInSystem);\n return oImg;\n });\n }).catch(function (err) {\n domGlobals.console.log(err);\n unblock(anyInSystem);\n return err;\n });\n };\n var manipulate = function (anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n var action = function (blob) {\n return state.updateTempState(blob);\n };\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n var tempManipulate = function (anyInSystem, filter) {\n var blob = state.getTempState().blob;\n var action = function (blob) {\n return state.addTempState(blob);\n };\n blobManipulate(anyInSystem, blob, filter, action, noop);\n };\n var manipulateApply = function (anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n var action = function (blob) {\n var url = state.addBlobState(blob);\n destroyTempState(anyInSystem);\n return url;\n };\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n var apply = function (anyInSystem, simulatedEvent) {\n var postApply = function () {\n destroyTempState(anyInSystem);\n var swap = simulatedEvent.event().swap();\n swap();\n };\n state.applyTempState(postApply);\n };\n var destroyTempState = function (anyInSystem) {\n var currentUrl = state.getBlobState().url;\n state.destroyTempState();\n updateButtonUndoStates(anyInSystem);\n return currentUrl;\n };\n var cancel = function (anyInSystem) {\n var currentUrl = destroyTempState(anyInSystem);\n updateSrc(anyInSystem, currentUrl).then(function (oImg) {\n unblock(anyInSystem);\n });\n };\n var back = function (anyInSystem, simulatedEvent) {\n cancel(anyInSystem);\n var swap = simulatedEvent.event().swap();\n swap();\n imagePanel.hideCrop();\n };\n var transform = function (anyInSystem, simulatedEvent) {\n return manipulate(anyInSystem, simulatedEvent.event().transform(), noop);\n };\n var tempTransform = function (anyInSystem, simulatedEvent) {\n return tempManipulate(anyInSystem, simulatedEvent.event().transform());\n };\n var transformApply = function (anyInSystem, simulatedEvent) {\n return manipulateApply(anyInSystem, simulatedEvent.event().transform(), simulatedEvent.event().swap());\n };\n var imagePanel = renderImagePanel(detail.currentState.url);\n var sideBar = renderSideBar(providersBackstage);\n var editPanel = renderEditPanel(imagePanel, providersBackstage);\n var swap = function (anyInSystem, simulatedEvent) {\n disableUndoRedo(anyInSystem);\n var transform = simulatedEvent.event().transform();\n var swap = simulatedEvent.event().swap();\n transform.fold(function () {\n swap();\n }, function (transform) {\n manipulate(anyInSystem, transform, swap);\n });\n };\n return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' }\n },\n components: [\n editPanel.memContainer.asSpec(),\n imagePanel.memContainer.asSpec(),\n sideBar.container\n ],\n behaviours: derive$1([\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function () {\n return state.getBlobState();\n }\n }\n }),\n config('image-tools-events', [\n run(internal.undo(), undo),\n run(internal.redo(), redo),\n run(internal.zoom(), zoom),\n run(internal.back(), back),\n run(internal.apply(), apply),\n run(internal.transform(), transform),\n run(internal.tempTransform(), tempTransform),\n run(internal.transformApply(), transformApply),\n run(internal.swap(), swap)\n ]),\n ComposingConfigs.self()\n ])\n };\n };\n\n var factory$8 = function (detail, spec) {\n var options = map(detail.options, function (option) {\n return {\n dom: {\n tag: 'option',\n value: option.value,\n innerHtml: option.text\n }\n };\n });\n var initialValues = detail.data.map(function (v) {\n return wrap$1('initialValue', v);\n }).getOr({});\n return {\n uid: detail.uid,\n dom: {\n tag: 'select',\n classes: detail.selectClasses,\n attributes: detail.selectAttributes\n },\n components: options,\n behaviours: augment(detail.selectBehaviours, [\n Focusing.config({}),\n Representing.config({\n store: __assign({\n mode: 'manual',\n getValue: function (select) {\n return get$5(select.element());\n },\n setValue: function (select, newValue) {\n var found = find(detail.options, function (opt) {\n return opt.value === newValue;\n });\n if (found.isSome()) {\n set$3(select.element(), newValue);\n }\n }\n }, initialValues)\n })\n ])\n };\n };\n var HtmlSelect = single$2({\n name: 'HtmlSelect',\n configFields: [\n strict$1('options'),\n field$1('selectBehaviours', [\n Focusing,\n Representing\n ]),\n defaulted$1('selectClasses', []),\n defaulted$1('selectAttributes', {}),\n option('data')\n ],\n factory: factory$8\n });\n\n var renderSelectBox = function (spec, providersBackstage) {\n var translatedOptions = map(spec.items, function (item) {\n return {\n text: providersBackstage.translate(item.text),\n value: item.value\n };\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var pField = FormField.parts().field({\n dom: {},\n selectAttributes: { size: spec.size },\n options: translatedOptions,\n factory: HtmlSelect,\n selectBehaviours: derive$1([\n Disabling.config({ disabled: spec.disabled }),\n Tabstopping.config({}),\n config('selectbox-change', [run(change(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n var chevron = spec.size > 1 ? Option.none() : Option.some({\n dom: {\n tag: 'div',\n classes: ['tox-selectfield__icon-js'],\n innerHtml: get$c('chevron-down', providersBackstage.icons)\n }\n });\n var selectWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-selectfield']\n },\n components: flatten([\n [pField],\n chevron.toArray()\n ])\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [selectWrap]\n ]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: spec.disabled,\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n\n var renderTextField = function (spec, providersBackstage) {\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var baseInputBehaviours = [\n Disabling.config({ disabled: spec.disabled }),\n Keying.config({\n mode: 'execution',\n useEnter: spec.multiline !== true,\n useControlEnter: spec.multiline === true,\n execute: function (comp) {\n emit(comp, formSubmitEvent);\n return Option.some(true);\n }\n }),\n config('textfield-change', [\n run(input(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n }),\n run(postPaste(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ]),\n Tabstopping.config({})\n ];\n var validatingBehaviours = spec.validation.map(function (vl) {\n return Invalidating.config({\n getRoot: function (input) {\n return parent(input.element());\n },\n invalidClass: 'tox-invalid',\n validator: {\n validate: function (input) {\n var v = Representing.getValue(input);\n var result = vl.validator(v);\n return Future.pure(result === true ? Result.value(v) : Result.error(result));\n },\n validateOnLoad: vl.validateOnLoad\n }\n });\n }).toArray();\n var placeholder = spec.placeholder.fold(constant({}), function (p) {\n return { placeholder: providersBackstage.translate(p) };\n });\n var inputMode = spec.inputMode.fold(constant({}), function (mode) {\n return { inputmode: mode };\n });\n var inputAttributes = __assign(__assign({}, placeholder), inputMode);\n var pField = FormField.parts().field({\n tag: spec.multiline === true ? 'textarea' : 'input',\n inputAttributes: inputAttributes,\n inputClasses: [spec.classname],\n inputBehaviours: derive$1(flatten([\n baseInputBehaviours,\n validatingBehaviours\n ])),\n selectOnFocus: false,\n factory: Input\n });\n var extraClasses = spec.flex ? ['tox-form__group--stretched'] : [];\n var extraClasses2 = extraClasses.concat(spec.maximized ? ['tox-form-group--maximize'] : []);\n var extraBehaviours = [Disabling.config({\n disabled: spec.disabled,\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n })];\n return renderFormFieldWith(pLabel, pField, extraClasses2, extraBehaviours);\n };\n var renderInput = function (spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: false,\n label: spec.label,\n inputMode: spec.inputMode,\n placeholder: spec.placeholder,\n flex: false,\n disabled: spec.disabled,\n classname: 'tox-textfield',\n validation: Option.none(),\n maximized: spec.maximized\n }, providersBackstage);\n };\n var renderTextarea = function (spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: true,\n label: spec.label,\n inputMode: Option.none(),\n placeholder: spec.placeholder,\n flex: true,\n disabled: spec.disabled,\n classname: 'tox-textarea',\n validation: Option.none(),\n maximized: spec.maximized\n }, providersBackstage);\n };\n\n var events$c = function (streamConfig, streamState) {\n var streams = streamConfig.stream.streams;\n var processor = streams.setup(streamConfig, streamState);\n return derive([\n run(streamConfig.event, processor),\n runOnDetached(function () {\n return streamState.cancel();\n })\n ].concat(streamConfig.cancelEvent.map(function (e) {\n return [run(e, function () {\n return streamState.cancel();\n })];\n }).getOr([])));\n };\n\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n events: events$c\n });\n\n var throttle = function (_config) {\n var state = Cell(null);\n var readState = function () {\n return { timer: state.get() !== null ? 'set' : 'unset' };\n };\n var setTimer = function (t) {\n state.set(t);\n };\n var cancel = function () {\n var t = state.get();\n if (t !== null) {\n t.cancel();\n }\n };\n return nu$5({\n readState: readState,\n setTimer: setTimer,\n cancel: cancel\n });\n };\n var init$6 = function (spec) {\n return spec.stream.streams.state(spec);\n };\n\n var StreamingState = /*#__PURE__*/Object.freeze({\n throttle: throttle,\n init: init$6\n });\n\n var setup$3 = function (streamInfo, streamState) {\n var sInfo = streamInfo.stream;\n var throttler = last$2(streamInfo.onStream, sInfo.delay);\n streamState.setTimer(throttler);\n return function (component, simulatedEvent) {\n throttler.throttle(component, simulatedEvent);\n if (sInfo.stopEvent) {\n simulatedEvent.stop();\n }\n };\n };\n var StreamingSchema = [\n strictOf('stream', choose$1('mode', {\n throttle: [\n strict$1('delay'),\n defaulted$1('stopEvent', true),\n output('streams', {\n setup: setup$3,\n state: throttle\n })\n ]\n })),\n defaulted$1('event', 'input'),\n option('cancelEvent'),\n onStrictHandler('onStream')\n ];\n\n var Streaming = create$1({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\n });\n\n var setValueFromItem = function (model, input, item) {\n var itemData = Representing.getValue(item);\n Representing.setValue(input, itemData);\n setCursorAtEnd(input);\n };\n var setSelectionOn = function (input, f) {\n var el = input.element();\n var value = get$5(el);\n var node = el.dom();\n if (get$2(el, 'type') !== 'number') {\n f(node, value);\n }\n };\n var setCursorAtEnd = function (input) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(value.length, value.length);\n });\n };\n var setSelectionToEnd = function (input, startOffset) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(startOffset, value.length);\n });\n };\n var attemptSelectOver = function (model, input, item) {\n if (!model.selectsOver) {\n return Option.none();\n } else {\n var currentValue = Representing.getValue(input);\n var inputDisplay_1 = model.getDisplayText(currentValue);\n var itemValue = Representing.getValue(item);\n var itemDisplay = model.getDisplayText(itemValue);\n return itemDisplay.indexOf(inputDisplay_1) === 0 ? Option.some(function () {\n setValueFromItem(model, input, item);\n setSelectionToEnd(input, inputDisplay_1.length);\n }) : Option.none();\n }\n };\n\n var itemExecute = constant('alloy.typeahead.itemexecute');\n\n var make$5 = function (detail, components, spec, externals) {\n var navigateList = function (comp, simulatedEvent, highlighter) {\n detail.previewing.set(false);\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Composing.getCurrent(sandbox).each(function (menu) {\n Highlighting.getHighlighted(menu).fold(function () {\n highlighter(menu);\n }, function () {\n dispatchEvent(sandbox, menu.element(), 'keydown', simulatedEvent);\n });\n });\n } else {\n var onOpenSync = function (sandbox) {\n Composing.getCurrent(sandbox).each(highlighter);\n };\n open$1(detail, mapFetch(comp), comp, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n };\n var focusBehaviours$1 = focusBehaviours(detail);\n var mapFetch = function (comp) {\n return function (tdata) {\n return tdata.map(function (data) {\n var menus = values(data.menus);\n var items = bind(menus, function (menu) {\n return filter(menu.items, function (item) {\n return item.type === 'item';\n });\n });\n var repState = Representing.getState(comp);\n repState.update(map(items, function (item) {\n return item.data;\n }));\n return data;\n });\n };\n };\n var behaviours = [\n Focusing.config({}),\n Representing.config({\n onSetValue: detail.onSetValue,\n store: __assign({\n mode: 'dataset',\n getDataKey: function (comp) {\n return get$5(comp.element());\n },\n getFallbackEntry: function (itemString) {\n return {\n value: itemString,\n meta: {}\n };\n },\n setValue: function (comp, data) {\n set$3(comp.element(), detail.model.getDisplayText(data));\n }\n }, detail.initialData.map(function (d) {\n return wrap$1('initialValue', d);\n }).getOr({}))\n }),\n Streaming.config({\n stream: {\n mode: 'throttle',\n delay: detail.responseTime,\n stopEvent: false\n },\n onStream: function (component, simulatedEvent) {\n var sandbox = Coupling.getCoupled(component, 'sandbox');\n var focusInInput = Focusing.isFocused(component);\n if (focusInInput) {\n if (get$5(component.element()).length >= detail.minChars) {\n var previousValue_1 = Composing.getCurrent(sandbox).bind(function (menu) {\n return Highlighting.getHighlighted(menu).map(Representing.getValue);\n });\n detail.previewing.set(true);\n var onOpenSync = function (_sandbox) {\n Composing.getCurrent(sandbox).each(function (menu) {\n previousValue_1.fold(function () {\n if (detail.model.selectsOver) {\n Highlighting.highlightFirst(menu);\n }\n }, function (pv) {\n Highlighting.highlightBy(menu, function (item) {\n var itemData = Representing.getValue(item);\n return itemData.value === pv.value;\n });\n Highlighting.getHighlighted(menu).orThunk(function () {\n Highlighting.highlightFirst(menu);\n return Option.none();\n });\n });\n });\n };\n open$1(detail, mapFetch(component), component, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n }\n },\n cancelEvent: typeaheadCancel()\n }),\n Keying.config({\n mode: 'special',\n onDown: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightFirst);\n return Option.some(true);\n },\n onEscape: function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n return Option.some(true);\n }\n return Option.none();\n },\n onUp: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Option.some(true);\n },\n onEnter: function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n var sandboxIsOpen = Sandboxing.isOpen(sandbox);\n if (sandboxIsOpen && !detail.previewing.get()) {\n return Composing.getCurrent(sandbox).bind(function (menu) {\n return Highlighting.getHighlighted(menu);\n }).map(function (item) {\n emitWith(comp, itemExecute(), { item: item });\n return true;\n });\n } else {\n var currentValue = Representing.getValue(comp);\n emit(comp, typeaheadCancel());\n detail.onExecute(sandbox, comp, currentValue);\n if (sandboxIsOpen) {\n Sandboxing.close(sandbox);\n }\n return Option.some(true);\n }\n }\n }),\n Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox(detail, hotspot, {\n onOpen: function () {\n return Toggling.on(hotspot);\n },\n onClose: function () {\n return Toggling.off(hotspot);\n }\n });\n }\n }\n }),\n config('typeaheadevents', [\n runOnExecute(function (comp) {\n var onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }),\n run(itemExecute(), function (comp, se) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n setValueFromItem(detail.model, comp, se.event().item());\n emit(comp, typeaheadCancel());\n detail.onItemExecute(comp, sandbox, se.event().item(), Representing.getValue(comp));\n Sandboxing.close(sandbox);\n setCursorAtEnd(comp);\n })\n ].concat(detail.dismissOnBlur ? [run(postBlur(), function (typeahead) {\n var sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n if (search(sandbox.element()).isNone()) {\n Sandboxing.close(sandbox);\n }\n })] : []))\n ];\n return {\n uid: detail.uid,\n dom: dom$2(deepMerge(detail, {\n inputAttributes: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true'\n }\n })),\n behaviours: __assign(__assign({}, focusBehaviours$1), augment(detail.typeaheadBehaviours, behaviours)),\n eventOrder: detail.eventOrder\n };\n };\n\n var schema$j = constant([\n option('lazySink'),\n strict$1('fetch'),\n defaulted$1('minChars', 5),\n defaulted$1('responseTime', 1000),\n onHandler('onOpen'),\n defaulted$1('getHotspot', Option.some),\n defaulted$1('getAnchorOverrides', constant({})),\n defaulted$1('layouts', Option.none()),\n defaulted$1('eventOrder', {}),\n defaultedObjOf('model', {}, [\n defaulted$1('getDisplayText', function (itemData) {\n return itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value;\n }),\n defaulted$1('selectsOver', true),\n defaulted$1('populateFromBrowse', true)\n ]),\n onHandler('onSetValue'),\n onKeyboardHandler('onExecute'),\n onHandler('onItemExecute'),\n defaulted$1('inputClasses', []),\n defaulted$1('inputAttributes', {}),\n defaulted$1('inputStyles', {}),\n defaulted$1('matchWidth', true),\n defaulted$1('useMinWidth', false),\n defaulted$1('dismissOnBlur', true),\n markers(['openClass']),\n option('initialData'),\n field$1('typeaheadBehaviours', [\n Focusing,\n Representing,\n Streaming,\n Keying,\n Toggling,\n Coupling\n ]),\n state$1('previewing', function () {\n return Cell(true);\n })\n ].concat(schema$f()).concat(sandboxFields()));\n var parts$6 = constant([external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n overrides: function (detail) {\n return {\n fakeFocus: true,\n onHighlight: function (menu, item) {\n if (!detail.previewing.get()) {\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n } else {\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n attemptSelectOver(detail.model, input, item).fold(function () {\n return Highlighting.dehighlight(menu, item);\n }, function (fn) {\n return fn();\n });\n });\n }\n detail.previewing.set(false);\n },\n onExecute: function (menu, item) {\n return menu.getSystem().getByUid(detail.uid).toOption().map(function (typeahead) {\n emitWith(typeahead, itemExecute(), { item: item });\n return true;\n });\n },\n onHover: function (menu, item) {\n detail.previewing.set(false);\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n }\n };\n }\n })]);\n\n var Typeahead = composite$1({\n name: 'Typeahead',\n configFields: schema$j(),\n partFields: parts$6(),\n factory: make$5\n });\n\n var wrap$2 = function (delegate) {\n var toCached = function () {\n return wrap$2(delegate.toCached());\n };\n var bindFuture = function (f) {\n return wrap$2(delegate.bind(function (resA) {\n return resA.fold(function (err) {\n return Future.pure(Result.error(err));\n }, function (a) {\n return f(a);\n });\n }));\n };\n var bindResult = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.bind(f);\n }));\n };\n var mapResult = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.map(f);\n }));\n };\n var mapError = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.mapError(f);\n }));\n };\n var foldResult = function (whenError, whenValue) {\n return delegate.map(function (res) {\n return res.fold(whenError, whenValue);\n });\n };\n var withTimeout = function (timeout, errorThunk) {\n return wrap$2(Future.nu(function (callback) {\n var timedOut = false;\n var timer = domGlobals.setTimeout(function () {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(function (result) {\n if (!timedOut) {\n domGlobals.clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return __assign(__assign({}, delegate), {\n toCached: toCached,\n bindFuture: bindFuture,\n bindResult: bindResult,\n mapResult: mapResult,\n mapError: mapError,\n foldResult: foldResult,\n withTimeout: withTimeout\n });\n };\n var nu$c = function (worker) {\n return wrap$2(Future.nu(worker));\n };\n var value$2 = function (value) {\n return wrap$2(Future.pure(Result.value(value)));\n };\n var error$1 = function (error) {\n return wrap$2(Future.pure(Result.error(error)));\n };\n var fromResult$1 = function (result) {\n return wrap$2(Future.pure(result));\n };\n var fromFuture = function (future) {\n return wrap$2(future.map(Result.value));\n };\n var fromPromise = function (promise) {\n return nu$c(function (completer) {\n promise.then(function (value) {\n completer(Result.value(value));\n }, function (error) {\n completer(Result.error(error));\n });\n });\n };\n var FutureResult = {\n nu: nu$c,\n wrap: wrap$2,\n pure: value$2,\n value: value$2,\n error: error$1,\n fromResult: fromResult$1,\n fromFuture: fromFuture,\n fromPromise: fromPromise\n };\n\n var separator$2 = { type: 'separator' };\n var toMenuItem = function (target) {\n return {\n type: 'menuitem',\n value: target.url,\n text: target.title,\n meta: { attach: target.attach },\n onAction: function () {\n }\n };\n };\n var staticMenuItem = function (title, url) {\n return {\n type: 'menuitem',\n value: url,\n text: title,\n meta: { attach: undefined },\n onAction: function () {\n }\n };\n };\n var toMenuItems = function (targets) {\n return map(targets, toMenuItem);\n };\n var filterLinkTargets = function (type, targets) {\n return filter(targets, function (target) {\n return target.type === type;\n });\n };\n var filteredTargets = function (type, targets) {\n return toMenuItems(filterLinkTargets(type, targets));\n };\n var headerTargets = function (linkInfo) {\n return filteredTargets('header', linkInfo.targets);\n };\n var anchorTargets = function (linkInfo) {\n return filteredTargets('anchor', linkInfo.targets);\n };\n var anchorTargetTop = function (linkInfo) {\n return Option.from(linkInfo.anchorTop).map(function (url) {\n return staticMenuItem('<top>', url);\n }).toArray();\n };\n var anchorTargetBottom = function (linkInfo) {\n return Option.from(linkInfo.anchorBottom).map(function (url) {\n return staticMenuItem('<bottom>', url);\n }).toArray();\n };\n var historyTargets = function (history) {\n return map(history, function (url) {\n return staticMenuItem(url, url);\n });\n };\n var joinMenuLists = function (items) {\n return foldl(items, function (a, b) {\n var bothEmpty = a.length === 0 || b.length === 0;\n return bothEmpty ? a.concat(b) : a.concat(separator$2, b);\n }, []);\n };\n var filterByQuery = function (term, menuItems) {\n var lowerCaseTerm = term.toLowerCase();\n return filter(menuItems, function (item) {\n var text = item.meta !== undefined && item.meta.text !== undefined ? item.meta.text : item.text;\n return contains$1(text.toLowerCase(), lowerCaseTerm) || contains$1(item.value.toLowerCase(), lowerCaseTerm);\n });\n };\n\n var getItems = function (fileType, input, urlBackstage) {\n var urlInputValue = Representing.getValue(input);\n var term = urlInputValue.meta.text !== undefined ? urlInputValue.meta.text : urlInputValue.value;\n var info = urlBackstage.getLinkInformation();\n return info.fold(function () {\n return [];\n }, function (linkInfo) {\n var history = filterByQuery(term, historyTargets(urlBackstage.getHistory(fileType)));\n return fileType === 'file' ? joinMenuLists([\n history,\n filterByQuery(term, headerTargets(linkInfo)),\n filterByQuery(term, flatten([\n anchorTargetTop(linkInfo),\n anchorTargets(linkInfo),\n anchorTargetBottom(linkInfo)\n ]))\n ]) : history;\n });\n };\n var errorId = generate$1('aria-invalid');\n var renderUrlInput = function (spec, backstage, urlBackstage) {\n var _a;\n var providersBackstage = backstage.shared.providers;\n var updateHistory = function (component) {\n var urlEntry = Representing.getValue(component);\n urlBackstage.addToHistory(urlEntry.value, spec.filetype);\n };\n var pField = FormField.parts().field({\n factory: Typeahead,\n dismissOnBlur: true,\n inputClasses: ['tox-textfield'],\n sandboxClasses: ['tox-dialog__popups'],\n inputAttributes: {\n 'aria-errormessage': errorId,\n 'type': 'url'\n },\n minChars: 0,\n responseTime: 0,\n fetch: function (input) {\n var items = getItems(spec.filetype, input, urlBackstage);\n var tdata = build$2(items, ItemResponse$1.BUBBLE_TO_SANDBOX, backstage, false);\n return Future.pure(tdata);\n },\n getHotspot: function (comp) {\n return memUrlBox.getOpt(comp);\n },\n onSetValue: function (comp, newValue) {\n if (comp.hasConfigured(Invalidating)) {\n Invalidating.run(comp).get(noop);\n }\n },\n typeaheadBehaviours: derive$1(flatten([\n urlBackstage.getValidationHandler().map(function (handler) {\n return Invalidating.config({\n getRoot: function (comp) {\n return parent(comp.element());\n },\n invalidClass: 'tox-control-wrap--status-invalid',\n notify: {\n onInvalid: function (comp, err) {\n memInvalidIcon.getOpt(comp).each(function (invalidComp) {\n set$1(invalidComp.element(), 'title', providersBackstage.translate(err));\n });\n }\n },\n validator: {\n validate: function (input) {\n var urlEntry = Representing.getValue(input);\n return FutureResult.nu(function (completer) {\n handler({\n type: spec.filetype,\n url: urlEntry.value\n }, function (validation) {\n if (validation.status === 'invalid') {\n var err = Result.error(validation.message);\n completer(err);\n } else {\n var val = Result.value(validation.message);\n completer(val);\n }\n });\n });\n },\n validateOnLoad: false\n }\n });\n }).toArray(),\n [\n Disabling.config({ disabled: spec.disabled }),\n Tabstopping.config({}),\n config('urlinput-events', flatten([\n spec.filetype === 'file' ? [run(input(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n })] : [],\n [\n run(change(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n }),\n run(postPaste(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n })\n ]\n ]))\n ]\n ])),\n eventOrder: (_a = {}, _a[input()] = [\n 'streaming',\n 'urlinput-events',\n 'invalidating'\n ], _a),\n model: {\n getDisplayText: function (itemData) {\n return itemData.value;\n },\n selectsOver: false,\n populateFromBrowse: false\n },\n markers: { openClass: 'tox-textfield--popup-open' },\n lazySink: backstage.shared.getSink,\n parts: { menu: part(false, 1, 'normal') },\n onExecute: function (_menu, component, _entry) {\n emitWith(component, formSubmitEvent, {});\n },\n onItemExecute: function (typeahead, _sandbox, _item, _value) {\n updateHistory(typeahead);\n emitWith(typeahead, formChangeEvent, { name: spec.name });\n }\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var makeIcon = function (name, errId, icon, label) {\n if (icon === void 0) {\n icon = name;\n }\n if (label === void 0) {\n label = name;\n }\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n innerHtml: get$c(icon, providersBackstage.icons),\n attributes: __assign({\n 'title': providersBackstage.translate(label),\n 'aria-live': 'polite'\n }, errId.fold(function () {\n return {};\n }, function (id) {\n return { id: id };\n }))\n }\n };\n };\n var memInvalidIcon = record(makeIcon('invalid', Option.some(errorId), 'warning'));\n var memStatus = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap__status-icon-wrap']\n },\n components: [memInvalidIcon.asSpec()]\n });\n var optUrlPicker = urlBackstage.getUrlPicker(spec.filetype);\n var browseUrlEvent = generate$1('browser.url.event');\n var memUrlBox = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap']\n },\n components: [\n pField,\n memStatus.asSpec()\n ],\n behaviours: derive$1([Disabling.config({ disabled: spec.disabled })])\n });\n var memUrlPickerButton = record(renderButton({\n name: spec.name,\n icon: Option.some('browse'),\n text: spec.label.getOr(''),\n disabled: spec.disabled,\n primary: false,\n borderless: true\n }, function (component) {\n return emit(component, browseUrlEvent);\n }, providersBackstage, [], ['tox-browse-url']));\n var controlHWrapper = function () {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: flatten([\n [memUrlBox.asSpec()],\n optUrlPicker.map(function () {\n return memUrlPickerButton.asSpec();\n }).toArray()\n ])\n };\n };\n var openUrlPicker = function (comp) {\n Composing.getCurrent(comp).each(function (field) {\n var urlData = Representing.getValue(field);\n optUrlPicker.each(function (picker) {\n picker(urlData).get(function (chosenData) {\n Representing.setValue(field, chosenData);\n emitWith(comp, formChangeEvent, { name: spec.name });\n });\n });\n });\n };\n return FormField.sketch({\n dom: renderFormFieldDom(),\n components: pLabel.toArray().concat([controlHWrapper()]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: spec.disabled,\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n memUrlPickerButton.getOpt(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n memUrlPickerButton.getOpt(comp).each(Disabling.enable);\n }\n }),\n config('url-input-events', [run(browseUrlEvent, openUrlPicker)])\n ])\n });\n };\n\n var renderCheckbox = function (spec, providerBackstage) {\n var repBehaviour = Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var el = comp.element().dom();\n return el.checked;\n },\n setValue: function (comp, value) {\n var el = comp.element().dom();\n el.checked = value;\n }\n }\n });\n var toggleCheckboxHandler = function (comp) {\n comp.element().dom().click();\n return Option.some(true);\n };\n var pField = FormField.parts().field({\n factory: { sketch: identity },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: { type: 'checkbox' }\n },\n behaviours: derive$1([\n ComposingConfigs.self(),\n Disabling.config({ disabled: spec.disabled }),\n Tabstopping.config({}),\n Focusing.config({}),\n repBehaviour,\n Keying.config({\n mode: 'special',\n onEnter: toggleCheckboxHandler,\n onSpace: toggleCheckboxHandler,\n stopSpaceKeyup: true\n }),\n config('checkbox-events', [run(change(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n var pLabel = FormField.parts().label({\n dom: {\n tag: 'span',\n classes: ['tox-checkbox__label'],\n innerHtml: providerBackstage.translate(spec.label)\n },\n behaviours: derive$1([Unselecting.config({})])\n });\n var makeIcon = function (className) {\n var iconName = className === 'checked' ? 'selected' : 'unselected';\n return {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-checkbox-icon__' + className\n ],\n innerHtml: get$c(iconName, providerBackstage.icons)\n }\n };\n };\n var memIcons = record({\n dom: {\n tag: 'div',\n classes: ['tox-checkbox__icons']\n },\n components: [\n makeIcon('checked'),\n makeIcon('unchecked')\n ]\n });\n return FormField.sketch({\n dom: {\n tag: 'label',\n classes: ['tox-checkbox']\n },\n components: [\n pField,\n memIcons.asSpec(),\n pLabel\n ],\n fieldBehaviours: derive$1([Disabling.config({\n disabled: spec.disabled,\n disableClass: 'tox-checkbox--disabled',\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n\n var renderHtmlPanel = function (spec) {\n if (spec.presets === 'presentation') {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group'],\n innerHtml: spec.html\n }\n });\n } else {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group'],\n innerHtml: spec.html,\n attributes: { role: 'document' }\n },\n containerBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n });\n }\n };\n\n var renderLabel$2 = function (spec, backstageShared) {\n var label = {\n dom: {\n tag: 'label',\n innerHtml: backstageShared.providers.translate(spec.label),\n classes: ['tox-label']\n }\n };\n var comps = map(spec.items, backstageShared.interpreter);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [label].concat(comps),\n behaviours: derive$1([\n ComposingConfigs.self(),\n Replacing.config({}),\n RepresentingConfigs.domHtml(Option.none()),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n\n var renderCollection = function (spec, providersBackstage) {\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var runOnItem = function (f) {\n return function (comp, se) {\n closest$3(se.event().target(), '[data-collection-item-value]').each(function (target) {\n f(comp, se, target, get$2(target, 'data-collection-item-value'));\n });\n };\n };\n var escapeAttribute = function (ch) {\n if (ch === '\"') {\n return '&quot;';\n }\n return ch;\n };\n var setContents = function (comp, items) {\n var htmlLines = map(items, function (item) {\n var itemText = global$5.translate(item.text);\n var textContent = spec.columns === 1 ? '<div class=\"tox-collection__item-label\">' + itemText + '</div>' : '';\n var iconContent = '<div class=\"tox-collection__item-icon\">' + item.icon + '</div>';\n var mapItemName = {\n '_': ' ',\n ' - ': ' ',\n '-': ' '\n };\n var ariaLabel = itemText.replace(/\\_| \\- |\\-/g, function (match) {\n return mapItemName[match];\n });\n return '<div class=\"tox-collection__item\" tabindex=\"-1\" data-collection-item-value=\"' + escapeAttribute(item.value) + '\" title=\"' + ariaLabel + '\" aria-label=\"' + ariaLabel + '\">' + iconContent + textContent + '</div>';\n });\n var chunks = spec.columns > 1 && spec.columns !== 'auto' ? chunk(htmlLines, spec.columns) : [htmlLines];\n var html = map(chunks, function (ch) {\n return '<div class=\"tox-collection__group\">' + ch.join('') + '</div>';\n });\n set(comp.element(), html.join(''));\n };\n var collectionEvents = [\n run(mouseover(), runOnItem(function (comp, se, tgt) {\n focus$1(tgt);\n })),\n run(tapOrClick(), runOnItem(function (comp, se, tgt, itemValue) {\n se.stop();\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n })),\n run(focusin(), runOnItem(function (comp, se, tgt) {\n descendant$1(comp.element(), '.' + activeClass).each(function (currentActive) {\n remove$4(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })),\n run(focusout(), runOnItem(function (comp) {\n descendant$1(comp.element(), '.' + activeClass).each(function (currentActive) {\n remove$4(currentActive, activeClass);\n });\n })),\n runOnExecute(runOnItem(function (comp, se, tgt, itemValue) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))\n ];\n var pField = FormField.parts().field({\n dom: {\n tag: 'div',\n classes: ['tox-collection'].concat(spec.columns !== 1 ? ['tox-collection--grid'] : ['tox-collection--list'])\n },\n components: [],\n factory: { sketch: identity },\n behaviours: derive$1([\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: []\n },\n onSetValue: function (comp, items) {\n setContents(comp, items);\n if (spec.columns === 'auto') {\n detectSize(comp, 5, 'tox-collection__item').each(function (_a) {\n var numRows = _a.numRows, numColumns = _a.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n }\n emit(comp, formResizeEvent);\n }\n }),\n Tabstopping.config({}),\n Keying.config(deriveCollectionMovement(spec.columns, 'normal')),\n config('collection-events', collectionEvents)\n ])\n });\n var extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses, []);\n };\n\n var renderTable = function (spec, providersBackstage) {\n var renderTh = function (text) {\n return {\n dom: {\n tag: 'th',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n var renderHeader = function (header) {\n return {\n dom: { tag: 'thead' },\n components: [{\n dom: { tag: 'tr' },\n components: map(header, renderTh)\n }]\n };\n };\n var renderTd = function (text) {\n return {\n dom: {\n tag: 'td',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n var renderTr = function (row) {\n return {\n dom: { tag: 'tr' },\n components: map(row, renderTd)\n };\n };\n var renderRows = function (rows) {\n return {\n dom: { tag: 'tbody' },\n components: map(rows, renderTr)\n };\n };\n return {\n dom: {\n tag: 'table',\n classes: ['tox-dialog__table']\n },\n components: [\n renderHeader(spec.header),\n renderRows(spec.cells)\n ],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n\n var renderPanel = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: spec.classes\n },\n components: map(spec.items, backstage.shared.interpreter)\n };\n };\n\n var make$6 = function (render) {\n return function (parts, spec, backstage) {\n return readOptFrom$1(spec, 'name').fold(function () {\n return render(spec, backstage);\n }, function (fieldName) {\n return parts.field(fieldName, render(spec, backstage));\n });\n };\n };\n var makeIframe = function (render) {\n return function (parts, spec, backstage) {\n var iframeSpec = deepMerge(spec, { source: 'dynamic' });\n return make$6(render)(parts, iframeSpec, backstage);\n };\n };\n var factories = {\n bar: make$6(function (spec, backstage) {\n return renderBar(spec, backstage.shared);\n }),\n collection: make$6(function (spec, backstage) {\n return renderCollection(spec, backstage.shared.providers);\n }),\n alertbanner: make$6(function (spec, backstage) {\n return renderAlertBanner(spec, backstage.shared.providers);\n }),\n input: make$6(function (spec, backstage) {\n return renderInput(spec, backstage.shared.providers);\n }),\n textarea: make$6(function (spec, backstage) {\n return renderTextarea(spec, backstage.shared.providers);\n }),\n label: make$6(function (spec, backstage) {\n return renderLabel$2(spec, backstage.shared);\n }),\n iframe: makeIframe(function (spec, backstage) {\n return renderIFrame(spec, backstage.shared.providers);\n }),\n button: make$6(function (spec, backstage) {\n return renderDialogButton(spec, backstage.shared.providers);\n }),\n checkbox: make$6(function (spec, backstage) {\n return renderCheckbox(spec, backstage.shared.providers);\n }),\n colorinput: make$6(function (spec, backstage) {\n return renderColorInput(spec, backstage.shared, backstage.colorinput);\n }),\n colorpicker: make$6(renderColorPicker),\n dropzone: make$6(function (spec, backstage) {\n return renderDropZone(spec, backstage.shared.providers);\n }),\n grid: make$6(function (spec, backstage) {\n return renderGrid(spec, backstage.shared);\n }),\n selectbox: make$6(function (spec, backstage) {\n return renderSelectBox(spec, backstage.shared.providers);\n }),\n sizeinput: make$6(function (spec, backstage) {\n return renderSizeInput(spec, backstage.shared.providers);\n }),\n urlinput: make$6(function (spec, backstage) {\n return renderUrlInput(spec, backstage, backstage.urlinput);\n }),\n customeditor: make$6(renderCustomEditor),\n htmlpanel: make$6(renderHtmlPanel),\n imagetools: make$6(function (spec, backstage) {\n return renderImageTools(spec, backstage.shared.providers);\n }),\n table: make$6(function (spec, backstage) {\n return renderTable(spec, backstage.shared.providers);\n }),\n panel: make$6(function (spec, backstage) {\n return renderPanel(spec, backstage);\n })\n };\n var noFormParts = {\n field: function (_name, spec) {\n return spec;\n }\n };\n var interpretInForm = function (parts, spec, oldBackstage) {\n var newBackstage = deepMerge(oldBackstage, {\n shared: {\n interpreter: function (childSpec) {\n return interpretParts(parts, childSpec, newBackstage);\n }\n }\n });\n return interpretParts(parts, spec, newBackstage);\n };\n var interpretParts = function (parts, spec, backstage) {\n return readOptFrom$1(factories, spec.type).fold(function () {\n domGlobals.console.error('Unknown factory type \"' + spec.type + '\", defaulting to container: ', spec);\n return spec;\n }, function (factory) {\n return factory(parts, spec, backstage);\n });\n };\n var interpretWithoutForm = function (spec, backstage) {\n var parts = noFormParts;\n return interpretParts(parts, spec, backstage);\n };\n\n var expandable$1 = constant(function (element, available) {\n setMax$1(element, Math.floor(available));\n });\n\n var bubbleAlignments = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n var getToolbarAnchor = function (bodyElement, lazyAnchorbar, useFixedToolbarContainer) {\n var fixedToolbarAnchor = function () {\n return {\n anchor: 'node',\n root: bodyElement(),\n node: Option.from(bodyElement()),\n bubble: nu$8(-12, -12, bubbleAlignments),\n layouts: {\n onRtl: function () {\n return [northeast$3];\n },\n onLtr: function () {\n return [northwest$3];\n }\n },\n overrides: { maxHeightFunction: expandable() }\n };\n };\n var standardAnchor = function () {\n return {\n anchor: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: nu$8(-12, 12, bubbleAlignments),\n layouts: {\n onRtl: function () {\n return [southeast$1];\n },\n onLtr: function () {\n return [southwest$1];\n }\n },\n overrides: { maxHeightFunction: expandable() }\n };\n };\n return useFixedToolbarContainer ? fixedToolbarAnchor : standardAnchor;\n };\n var getBannerAnchor = function (bodyElement, lazyAnchorbar, useFixedToolbarContainer) {\n var fixedToolbarAnchor = function () {\n return {\n anchor: 'node',\n root: bodyElement(),\n node: Option.from(bodyElement()),\n layouts: {\n onRtl: function () {\n return [north$3];\n },\n onLtr: function () {\n return [north$3];\n }\n }\n };\n };\n var standardAnchor = function () {\n return {\n anchor: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: function () {\n return [south$1];\n },\n onLtr: function () {\n return [south$1];\n }\n }\n };\n };\n return useFixedToolbarContainer ? fixedToolbarAnchor : standardAnchor;\n };\n var getToolbarOverflowAnchor = function (lazyMoreButton) {\n return function () {\n return {\n anchor: 'hotspot',\n hotspot: lazyMoreButton(),\n overrides: { maxWidthFunction: expandable$1() },\n layouts: {\n onRtl: function () {\n return [\n southeast$1,\n southwest$1\n ];\n },\n onLtr: function () {\n return [\n southwest$1,\n southeast$1\n ];\n }\n }\n };\n };\n };\n var getCursorAnchor = function (editor, bodyElement) {\n return function () {\n return {\n anchor: 'selection',\n root: bodyElement(),\n getSelection: function () {\n var rng = editor.selection.getRng();\n return Option.some(Selection.range(Element.fromDom(rng.startContainer), rng.startOffset, Element.fromDom(rng.endContainer), rng.endOffset));\n }\n };\n };\n };\n var getNodeAnchor = function (bodyElement) {\n return function (element) {\n return {\n anchor: 'node',\n root: bodyElement(),\n node: element\n };\n };\n };\n var getAnchors = function (editor, lazyAnchorbar, lazyMoreButton) {\n var useFixedToolbarContainer = useFixedContainer(editor);\n var bodyElement = function () {\n return Element.fromDom(editor.getBody());\n };\n return {\n toolbar: getToolbarAnchor(bodyElement, lazyAnchorbar, useFixedToolbarContainer),\n toolbarOverflow: getToolbarOverflowAnchor(lazyMoreButton),\n banner: getBannerAnchor(bodyElement, lazyAnchorbar, useFixedToolbarContainer),\n cursor: getCursorAnchor(editor, bodyElement),\n node: getNodeAnchor(bodyElement)\n };\n };\n var Anchors = { getAnchors: getAnchors };\n\n var colorPicker = function (editor) {\n return function (callback, value) {\n var dialog = ColorSwatch.colorPickerDialog(editor);\n dialog(callback, value);\n };\n };\n var hasCustomColors$1 = function (editor) {\n return function () {\n return Settings.hasCustomColors(editor);\n };\n };\n var getColors$1 = function (editor) {\n return function () {\n return Settings.getColors(editor);\n };\n };\n var getColorCols$2 = function (editor) {\n return function () {\n return ColorSwatch.getColorCols(editor);\n };\n };\n var ColorInputBackstage = function (editor) {\n return {\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors$1(editor),\n getColors: getColors$1(editor),\n getColorCols: getColorCols$2(editor)\n };\n };\n\n var isDraggableModal$1 = function (editor) {\n return function () {\n return isDraggableModal(editor);\n };\n };\n var DialogBackstage = function (editor) {\n return { isDraggableModal: isDraggableModal$1(editor) };\n };\n\n var defaultStyleFormats = [\n {\n title: 'Headings',\n items: [\n {\n title: 'Heading 1',\n format: 'h1'\n },\n {\n title: 'Heading 2',\n format: 'h2'\n },\n {\n title: 'Heading 3',\n format: 'h3'\n },\n {\n title: 'Heading 4',\n format: 'h4'\n },\n {\n title: 'Heading 5',\n format: 'h5'\n },\n {\n title: 'Heading 6',\n format: 'h6'\n }\n ]\n },\n {\n title: 'Inline',\n items: [\n {\n title: 'Bold',\n icon: 'bold',\n format: 'bold'\n },\n {\n title: 'Italic',\n icon: 'italic',\n format: 'italic'\n },\n {\n title: 'Underline',\n icon: 'underline',\n format: 'underline'\n },\n {\n title: 'Strikethrough',\n icon: 'strike-through',\n format: 'strikethrough'\n },\n {\n title: 'Superscript',\n icon: 'superscript',\n format: 'superscript'\n },\n {\n title: 'Subscript',\n icon: 'subscript',\n format: 'subscript'\n },\n {\n title: 'Code',\n icon: 'code',\n format: 'code'\n }\n ]\n },\n {\n title: 'Blocks',\n items: [\n {\n title: 'Paragraph',\n format: 'p'\n },\n {\n title: 'Blockquote',\n format: 'blockquote'\n },\n {\n title: 'Div',\n format: 'div'\n },\n {\n title: 'Pre',\n format: 'pre'\n }\n ]\n },\n {\n title: 'Align',\n items: [\n {\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify'\n }\n ]\n }\n ];\n var isNestedFormat = function (format) {\n return has(format, 'items');\n };\n var isBlockFormat = function (format) {\n return has(format, 'block');\n };\n var isInlineFormat = function (format) {\n return has(format, 'inline');\n };\n var isSelectorFormat = function (format) {\n return has(format, 'selector');\n };\n var mapFormats = function (userFormats) {\n return foldl(userFormats, function (acc, fmt) {\n if (isNestedFormat(fmt)) {\n var result = mapFormats(fmt.items);\n return {\n customFormats: acc.customFormats.concat(result.customFormats),\n formats: acc.formats.concat([{\n title: fmt.title,\n items: result.formats\n }])\n };\n } else if (isInlineFormat(fmt) || isBlockFormat(fmt) || isSelectorFormat(fmt)) {\n var formatName = 'custom-' + fmt.title.toLowerCase();\n return {\n customFormats: acc.customFormats.concat([{\n name: formatName,\n format: fmt\n }]),\n formats: acc.formats.concat([{\n title: fmt.title,\n format: formatName,\n icon: fmt.icon\n }])\n };\n } else {\n return __assign(__assign({}, acc), { formats: acc.formats.concat(fmt) });\n }\n }, {\n customFormats: [],\n formats: []\n });\n };\n var registerCustomFormats = function (editor, userFormats) {\n var result = mapFormats(userFormats);\n var registerFormats = function (customFormats) {\n each(customFormats, function (fmt) {\n if (!editor.formatter.has(fmt.name)) {\n editor.formatter.register(fmt.name, fmt.format);\n }\n });\n };\n if (editor.formatter) {\n registerFormats(result.customFormats);\n } else {\n editor.on('init', function () {\n registerFormats(result.customFormats);\n });\n }\n return result.formats;\n };\n var getStyleFormats = function (editor) {\n return getUserStyleFormats(editor).map(function (userFormats) {\n var registeredUserFormats = registerCustomFormats(editor, userFormats);\n return isMergeStyleFormats(editor) ? defaultStyleFormats.concat(registeredUserFormats) : registeredUserFormats;\n }).getOr(defaultStyleFormats);\n };\n\n var processBasic = function (item, isSelectedFor, getPreviewFor) {\n var formatterSpec = {\n type: 'formatter',\n isSelected: isSelectedFor(item.format),\n getStylePreview: getPreviewFor(item.format)\n };\n return deepMerge(item, formatterSpec);\n };\n var register$3 = function (editor, formats, isSelectedFor, getPreviewFor) {\n var enrichSupported = function (item) {\n return processBasic(item, isSelectedFor, getPreviewFor);\n };\n var enrichMenu = function (item) {\n var submenuSpec = {\n type: 'submenu',\n isSelected: constant(false),\n getStylePreview: function () {\n return Option.none();\n }\n };\n return deepMerge(item, submenuSpec);\n };\n var enrichCustom = function (item) {\n var formatName = generate$1(item.title);\n var customSpec = {\n type: 'formatter',\n format: formatName,\n isSelected: isSelectedFor(formatName),\n getStylePreview: getPreviewFor(formatName)\n };\n var newItem = deepMerge(item, customSpec);\n editor.formatter.register(formatName, newItem);\n return newItem;\n };\n var doEnrich = function (items) {\n return map(items, function (item) {\n var keys$1 = keys(item);\n if (hasKey$1(item, 'items')) {\n var newItems_1 = doEnrich(item.items);\n return deepMerge(enrichMenu(item), {\n getStyleItems: function () {\n return newItems_1;\n }\n });\n } else if (hasKey$1(item, 'format')) {\n return enrichSupported(item);\n } else if (keys$1.length === 1 && contains(keys$1, 'title')) {\n return deepMerge(item, { type: 'separator' });\n } else {\n return enrichCustom(item);\n }\n });\n };\n return doEnrich(formats);\n };\n\n var init$7 = function (editor) {\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return fmt !== undefined ? Option.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styleAttr: editor.formatter.getCssText(format)\n }) : Option.none();\n };\n };\n var flatten = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind(subs, flatten) : [fmt.format];\n };\n var settingsFormats = Cell([]);\n var settingsFlattenedFormats = Cell([]);\n var eventsFormats = Cell([]);\n var eventsFlattenedFormats = Cell([]);\n var replaceSettings = Cell(false);\n editor.on('init', function () {\n var formats = getStyleFormats(editor);\n var enriched = register$3(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n settingsFlattenedFormats.set(bind(enriched, flatten));\n });\n editor.on('addStyleModifications', function (e) {\n var modifications = register$3(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n eventsFlattenedFormats.set(bind(modifications, flatten));\n });\n var getData = function () {\n var fromSettings = replaceSettings.get() ? [] : settingsFormats.get();\n var fromEvents = eventsFormats.get();\n return fromSettings.concat(fromEvents);\n };\n var getFlattenedKeys = function () {\n var fromSettings = replaceSettings.get() ? [] : settingsFlattenedFormats.get();\n var fromEvents = eventsFlattenedFormats.get();\n return fromSettings.concat(fromEvents);\n };\n return {\n getData: getData,\n getFlattenedKeys: getFlattenedKeys\n };\n };\n\n var trim$1 = global$e.trim;\n var hasContentEditableState = function (value) {\n return function (node) {\n if (node && node.nodeType === 1) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n var isContentEditableTrue = hasContentEditableState('true');\n var isContentEditableFalse = hasContentEditableState('false');\n var create$8 = function (type, title, url, level, attach) {\n return {\n type: type,\n title: title,\n url: url,\n level: level,\n attach: attach\n };\n };\n var isChildOfContentEditableTrue = function (node) {\n while (node = node.parentNode) {\n var value = node.contentEditable;\n if (value && value !== 'inherit') {\n return isContentEditableTrue(node);\n }\n }\n return false;\n };\n var select = function (selector, root) {\n return map(descendants(Element.fromDom(root), selector), function (element) {\n return element.dom();\n });\n };\n var getElementText = function (elm) {\n return elm.innerText || elm.textContent;\n };\n var getOrGenerateId = function (elm) {\n return elm.id ? elm.id : generate$1('h');\n };\n var isAnchor = function (elm) {\n return elm && elm.nodeName === 'A' && (elm.id || elm.name) !== undefined;\n };\n var isValidAnchor = function (elm) {\n return isAnchor(elm) && isEditable(elm);\n };\n var isHeader = function (elm) {\n return elm && /^(H[1-6])$/.test(elm.nodeName);\n };\n var isEditable = function (elm) {\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\n };\n var isValidHeader = function (elm) {\n return isHeader(elm) && isEditable(elm);\n };\n var getLevel = function (elm) {\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n };\n var headerTarget = function (elm) {\n var headerId = getOrGenerateId(elm);\n var attach = function () {\n elm.id = headerId;\n };\n return create$8('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);\n };\n var anchorTarget = function (elm) {\n var anchorId = elm.id || elm.name;\n var anchorText = getElementText(elm);\n return create$8('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n var getHeaderTargets = function (elms) {\n return map(filter(elms, isValidHeader), headerTarget);\n };\n var getAnchorTargets = function (elms) {\n return map(filter(elms, isValidAnchor), anchorTarget);\n };\n var getTargetElements = function (elm) {\n var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n return elms;\n };\n var hasTitle = function (target) {\n return trim$1(target.title).length > 0;\n };\n var find$5 = function (elm) {\n var elms = getTargetElements(elm);\n return filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n var LinkTargets = { find: find$5 };\n\n var STORAGE_KEY = 'tinymce-url-history';\n var HISTORY_LENGTH = 5;\n var isHttpUrl = function (url) {\n return isString(url) && /^https?/.test(url);\n };\n var isArrayOfUrl = function (a) {\n return isArray(a) && a.length <= HISTORY_LENGTH && forall(a, isHttpUrl);\n };\n var isRecordOfUrlArray = function (r) {\n return isObject(r) && find$1(r, function (value) {\n return !isArrayOfUrl(value);\n }).isNone();\n };\n var getAllHistory = function () {\n var unparsedHistory = domGlobals.localStorage.getItem(STORAGE_KEY);\n if (unparsedHistory === null) {\n return {};\n }\n var history;\n try {\n history = JSON.parse(unparsedHistory);\n } catch (e) {\n if (e instanceof SyntaxError) {\n domGlobals.console.log('Local storage ' + STORAGE_KEY + ' was not valid JSON', e);\n return {};\n }\n throw e;\n }\n if (!isRecordOfUrlArray(history)) {\n domGlobals.console.log('Local storage ' + STORAGE_KEY + ' was not valid format', history);\n return {};\n }\n return history;\n };\n var setAllHistory = function (history) {\n if (!isRecordOfUrlArray(history)) {\n throw new Error('Bad format for history:\\n' + JSON.stringify(history));\n }\n domGlobals.localStorage.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n var getHistory = function (fileType) {\n var history = getAllHistory();\n return Object.prototype.hasOwnProperty.call(history, fileType) ? history[fileType] : [];\n };\n var addToHistory = function (url, fileType) {\n if (!isHttpUrl(url)) {\n return;\n }\n var history = getAllHistory();\n var items = Object.prototype.hasOwnProperty.call(history, fileType) ? history[fileType] : [];\n var itemsWithoutUrl = filter(items, function (item) {\n return item !== url;\n });\n history[fileType] = [url].concat(itemsWithoutUrl).slice(0, HISTORY_LENGTH);\n setAllHistory(history);\n };\n\n var hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n var isTruthy = function (value) {\n return !!value;\n };\n var makeMap = function (value) {\n return map$1(global$e.makeMap(value, /[, ]/), isTruthy);\n };\n var getOpt = function (obj, key) {\n return hasOwnProperty$2.call(obj, key) ? Option.some(obj[key]) : Option.none();\n };\n var getTextSetting = function (settings, name, defaultValue) {\n var value = getOpt(settings, name).getOr(defaultValue);\n return isString(value) ? Option.some(value) : Option.none();\n };\n var getPicker = function (settings) {\n return Option.some(settings.file_picker_callback).filter(isFunction);\n };\n var getPickerTypes = function (settings) {\n var optFileTypes = Option.some(settings.file_picker_types).filter(isTruthy);\n var optLegacyTypes = Option.some(settings.file_browser_callback_types).filter(isTruthy);\n var optTypes = optFileTypes.or(optLegacyTypes).map(makeMap);\n return getPicker(settings).fold(function () {\n return false;\n }, function (_picker) {\n return optTypes.fold(function () {\n return true;\n }, function (types) {\n return keys(types).length > 0 ? types : false;\n });\n });\n };\n var getPickerSetting = function (settings, filetype) {\n var pickerTypes = getPickerTypes(settings);\n if (isBoolean(pickerTypes)) {\n return pickerTypes ? getPicker(settings) : Option.none();\n } else {\n return pickerTypes[filetype] ? getPicker(settings) : Option.none();\n }\n };\n var getUrlPicker = function (editor, filetype) {\n return getPickerSetting(editor.settings, filetype).map(function (picker) {\n return function (entry) {\n return Future.nu(function (completer) {\n var handler = function (value, meta) {\n if (!isString(value)) {\n throw new Error('Expected value to be string');\n }\n if (meta !== undefined && !isObject(meta)) {\n throw new Error('Expected meta to be a object');\n }\n var r = {\n value: value,\n meta: meta\n };\n completer(r);\n };\n var meta = global$e.extend({ filetype: filetype }, Option.from(entry.meta).getOr({}));\n picker.call(editor, handler, entry.value, meta);\n });\n };\n });\n };\n var getLinkInformation = function (editor) {\n if (editor.settings.typeahead_urls === false) {\n return Option.none();\n }\n return Option.some({\n targets: LinkTargets.find(editor.getBody()),\n anchorTop: getTextSetting(editor.settings, 'anchor_top', '#top').getOrUndefined(),\n anchorBottom: getTextSetting(editor.settings, 'anchor_bottom', '#bottom').getOrUndefined()\n });\n };\n var getValidationHandler = function (editor) {\n var optValidator = Option.from(editor.settings.file_picker_validator_handler).filter(isFunction);\n return optValidator.orThunk(function () {\n return Option.from(editor.settings.filepicker_validator_handler).filter(isFunction);\n });\n };\n var UrlInputBackstage = function (editor) {\n return {\n getHistory: getHistory,\n addToHistory: addToHistory,\n getLinkInformation: function () {\n return getLinkInformation(editor);\n },\n getValidationHandler: function () {\n return getValidationHandler(editor);\n },\n getUrlPicker: function (filetype) {\n return getUrlPicker(editor, filetype);\n }\n };\n };\n\n var init$8 = function (sink, editor, lazyAnchorbar, lazyMoreButton) {\n var contextMenuState = Cell(false);\n var backstage = {\n shared: {\n providers: {\n icons: function () {\n return editor.ui.registry.getAll().icons;\n },\n menuItems: function () {\n return editor.ui.registry.getAll().menuItems;\n },\n translate: global$5.translate\n },\n interpreter: function (s) {\n return interpretWithoutForm(s, backstage);\n },\n anchors: Anchors.getAnchors(editor, lazyAnchorbar, lazyMoreButton),\n getSink: function () {\n return Result.value(sink);\n }\n },\n urlinput: UrlInputBackstage(editor),\n styleselect: init$7(editor),\n colorinput: ColorInputBackstage(editor),\n dialog: DialogBackstage(editor),\n isContextMenuOpen: function () {\n return contextMenuState.get();\n },\n setContextMenuState: function (state) {\n return contextMenuState.set(state);\n }\n };\n return backstage;\n };\n\n var showContextToolbarEvent = 'contexttoolbar-show';\n var hideContextToolbarEvent = 'contexttoolbar-hide';\n\n var schema$k = constant([\n strict$1('dom'),\n defaulted$1('shell', true),\n field$1('toolbarBehaviours', [Replacing])\n ]);\n var enhanceGroups = function (detail) {\n return { behaviours: derive$1([Replacing.config({})]) };\n };\n var parts$7 = constant([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n\n var factory$9 = function (detail, components, spec, _externals) {\n var setGroups = function (toolbar, groups) {\n getGroupContainer(toolbar).fold(function () {\n domGlobals.console.error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n throw new Error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n }, function (container) {\n Replacing.set(container, groups);\n });\n };\n var getGroupContainer = function (component) {\n return detail.shell ? Option.some(component) : getPart(component, detail, 'groups');\n };\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.toolbarBehaviours, extra.behaviours),\n apis: { setGroups: setGroups },\n domModification: { attributes: { role: 'group' } }\n };\n };\n var Toolbar = composite$1({\n name: 'Toolbar',\n configFields: schema$k(),\n partFields: parts$7(),\n factory: factory$9,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n\n var generate$6 = function (xs, f) {\n var init = {\n len: 0,\n list: []\n };\n var r = foldl(xs, function (b, a) {\n var value = f(a, b.len);\n return value.fold(constant(b), function (v) {\n return {\n len: v.finish(),\n list: b.list.concat([v])\n };\n });\n }, init);\n return r.list;\n };\n\n var output$1 = Immutable('within', 'extra', 'withinWidth');\n var apportion = function (units, total, len) {\n var parray = generate$6(units, function (unit, current) {\n var width = len(unit);\n return Option.some({\n element: constant(unit),\n start: constant(current),\n finish: constant(current + width),\n width: constant(width)\n });\n });\n var within = filter(parray, function (unit) {\n return unit.finish() <= total;\n });\n var withinWidth = foldr(within, function (acc, el) {\n return acc + el.width();\n }, 0);\n var extra = parray.slice(within.length);\n return {\n within: constant(within),\n extra: constant(extra),\n withinWidth: constant(withinWidth)\n };\n };\n var toUnit = function (parray) {\n return map(parray, function (unit) {\n return unit.element();\n });\n };\n var fitLast = function (within, extra, withinWidth) {\n var fits = toUnit(within.concat(extra));\n return output$1(fits, [], withinWidth);\n };\n var overflow = function (within, extra, overflower, withinWidth) {\n var fits = toUnit(within).concat([overflower]);\n return output$1(fits, toUnit(extra), withinWidth);\n };\n var fitAll = function (within, extra, withinWidth) {\n return output$1(toUnit(within), [], withinWidth);\n };\n var tryFit = function (total, units, len) {\n var divide = apportion(units, total, len);\n return divide.extra().length === 0 ? Option.some(divide) : Option.none();\n };\n var partition$3 = function (total, units, len, overflower) {\n var divide = tryFit(total, units, len).getOrThunk(function () {\n return apportion(units, total - len(overflower), len);\n });\n var within = divide.within();\n var extra = divide.extra();\n var withinWidth = divide.withinWidth();\n if (extra.length === 1 && extra[0].width() <= len(overflower)) {\n return fitLast(within, extra, withinWidth);\n } else if (extra.length >= 1) {\n return overflow(within, extra, overflower, withinWidth);\n } else {\n return fitAll(within, extra, withinWidth);\n }\n };\n\n var setStoredGroups = function (toolbar, storedGroups) {\n var bGroups = map(storedGroups, function (g) {\n return premade$1(g);\n });\n Toolbar.setGroups(toolbar, bGroups);\n };\n var findFocusedComp = function (overflow, overflowButton) {\n return overflow.bind(function (overf) {\n return search(overf.element()).bind(function (focusedElm) {\n return overf.getSystem().getByDom(focusedElm).toOption();\n });\n }).orThunk(function () {\n return overflowButton.filter(Focusing.isFocused);\n });\n };\n var refresh = function (toolbar, detail, overflow, isOpen) {\n var primary = getPartOrDie(toolbar, detail, 'primary');\n var overflowButton = getPart(toolbar, detail, 'overflow-button');\n var overflowGroup = Coupling.getCoupled(toolbar, 'overflowGroup');\n set$2(primary.element(), 'visibility', 'hidden');\n var focusedComp = findFocusedComp(overflow, overflowButton);\n overflow.each(function (overf) {\n Toolbar.setGroups(overf, []);\n });\n var groups = detail.builtGroups.get();\n setStoredGroups(primary, groups.concat([overflowGroup]));\n var total = get$7(primary.element());\n var overflows = partition$3(total, groups, function (comp) {\n return get$7(comp.element());\n }, overflowGroup);\n if (overflows.extra().length === 0) {\n Replacing.remove(primary, overflowGroup);\n overflow.each(function (overf) {\n Toolbar.setGroups(overf, []);\n });\n } else {\n setStoredGroups(primary, overflows.within());\n overflow.each(function (overf) {\n setStoredGroups(overf, overflows.extra());\n });\n }\n remove$6(primary.element(), 'visibility');\n reflow(primary.element());\n overflow.each(function (overf) {\n overflowButton.each(function (button) {\n return Toggling.set(button, isOpen(overf));\n });\n focusedComp.each(Focusing.focus);\n });\n };\n\n var schema$l = constant([\n strict$1('items'),\n markers(['itemSelector']),\n field$1('tgroupBehaviours', [Keying])\n ]);\n var parts$8 = constant([group({\n name: 'items',\n unit: 'item'\n })]);\n\n var factory$a = function (detail, components, spec, _externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.tgroupBehaviours, [Keying.config({\n mode: 'flow',\n selector: detail.markers.itemSelector\n })]),\n domModification: { attributes: { role: 'toolbar' } }\n };\n };\n var ToolbarGroup = composite$1({\n name: 'ToolbarGroup',\n configFields: schema$l(),\n partFields: parts$8(),\n factory: factory$a\n });\n\n var schema$m = constant([\n field$1('splitToolbarBehaviours', [Coupling]),\n state$1('builtGroups', function () {\n return Cell([]);\n })\n ]);\n var spec = function (detail, components, spec, externals, extras) {\n var toolbarToggleEvent = 'alloy.toolbar.toggle';\n var doSetGroups = function (toolbar, groups) {\n var built = map(groups, toolbar.getSystem().build);\n detail.builtGroups.set(built);\n };\n var setGroups = function (toolbar, groups) {\n doSetGroups(toolbar, groups);\n extras.apis.refresh(toolbar);\n };\n var getMoreButton = function (toolbar) {\n return getPart(toolbar, detail, 'overflow-button');\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, [\n Coupling.config({\n others: __assign(__assign({}, extras.coupling), {\n overflowGroup: function (toolbar) {\n return ToolbarGroup.sketch(__assign(__assign({}, externals['overflow-group']()), {\n items: [Button.sketch(__assign(__assign({}, externals['overflow-button']()), {\n action: function (_button) {\n emit(toolbar, toolbarToggleEvent);\n }\n }))]\n }));\n }\n })\n }),\n config('toolbar-toggle-events', [run(toolbarToggleEvent, function (toolbar) {\n extras.apis.toggle(toolbar);\n })])\n ]),\n apis: __assign({\n setGroups: setGroups,\n getMoreButton: function (toolbar) {\n return getMoreButton(toolbar);\n }\n }, extras.apis),\n domModification: { attributes: { role: 'group' } }\n };\n };\n\n var schema$n = constant([\n markers(['overflowToggledClass']),\n strict$1('getAnchor'),\n optionFunction('getOverflowBounds'),\n strict$1('lazySink')\n ].concat(schema$m()));\n var parts$9 = constant([\n required({\n factory: Toolbar,\n schema: schema$k(),\n name: 'primary'\n }),\n external$1({\n factory: Toolbar,\n schema: schema$k(),\n name: 'overflow',\n overrides: function (detail) {\n return {\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Option.none();\n }\n })])\n };\n }\n }),\n external$1({\n name: 'overflow-button',\n overrides: function (detail) {\n return {\n dom: { attributes: { 'aria-haspopup': 'true' } },\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: { mode: 'expanded' },\n toggleOnExecute: false\n })])\n };\n }\n }),\n external$1({ name: 'overflow-group' })\n ]);\n\n var toggleToolbar = function (toolbar, detail, externals) {\n var sandbox = Coupling.getCoupled(toolbar, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n } else {\n Sandboxing.open(sandbox, externals.overflow());\n }\n };\n var isOpen$1 = function (over) {\n return over.getSystem().isConnected();\n };\n var position$2 = function (toolbar, detail, overf) {\n var sink = detail.lazySink(toolbar).getOrDie();\n var anchor = detail.getAnchor(toolbar);\n var bounds = detail.getOverflowBounds.map(function (bounder) {\n return bounder();\n });\n Positioning.positionWithinBounds(sink, anchor, overf, bounds);\n };\n var refresh$1 = function (toolbar, detail) {\n var overflow = Sandboxing.getState(Coupling.getCoupled(toolbar, 'sandbox'));\n refresh(toolbar, detail, overflow, isOpen$1);\n overflow.each(function (overf) {\n return position$2(toolbar, detail, overf);\n });\n };\n var reposition$1 = function (toolbar, detail) {\n var overflow = Sandboxing.getState(Coupling.getCoupled(toolbar, 'sandbox'));\n overflow.each(function (overf) {\n return position$2(toolbar, detail, overf);\n });\n };\n var makeSandbox$1 = function (toolbar, detail) {\n var ariaOwner = manager();\n var onOpen = function (sandbox, overf) {\n refresh$1(toolbar, detail);\n getPart(toolbar, detail, 'overflow-button').each(function (button) {\n Toggling.on(button);\n ariaOwner.link(button.element());\n });\n Keying.focusIn(overf);\n };\n var onClose = function () {\n getPart(toolbar, detail, 'overflow-button').each(function (button) {\n Toggling.off(button);\n Focusing.focus(button);\n ariaOwner.unlink(button.element());\n });\n };\n return {\n dom: {\n tag: 'div',\n attributes: { id: ariaOwner.id() }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n Sandboxing.close(comp);\n return Option.some(true);\n }\n }),\n Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function (container, data, queryElem) {\n return isPartOf(data, queryElem) || isPartOf(toolbar, queryElem);\n },\n getAttachPoint: function () {\n return detail.lazySink(toolbar).getOrDie();\n }\n }),\n Receiving.config({\n channels: __assign({}, receivingChannel$1({\n isExtraPart: constant(false),\n doReposition: function () {\n return reposition$1(toolbar, detail);\n }\n }))\n })\n ])\n };\n };\n var factory$b = function (detail, components, spec$1, externals) {\n return spec(detail, components, spec$1, externals, {\n coupling: {\n sandbox: function (toolbar) {\n return makeSandbox$1(toolbar, detail);\n }\n },\n apis: {\n refresh: function (toolbar) {\n return refresh$1(toolbar, detail);\n },\n toggle: function (toolbar) {\n return toggleToolbar(toolbar, detail, externals);\n },\n getOverflow: function (toolbar) {\n return Sandboxing.getState(Coupling.getCoupled(toolbar, 'sandbox'));\n },\n reposition: function (toolbar) {\n return reposition$1(toolbar, detail);\n }\n }\n });\n };\n var SplitFloatingToolbar = composite$1({\n name: 'SplitFloatingToolbar',\n configFields: schema$n(),\n partFields: parts$9(),\n factory: factory$b,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function (apis, toolbar) {\n apis.refresh(toolbar);\n },\n reposition: function (apis, toolbar) {\n apis.reposition(toolbar);\n },\n getMoreButton: function (apis, toolbar) {\n return apis.getMoreButton(toolbar);\n },\n getOverflow: function (apis, toolbar) {\n return apis.getOverflow(toolbar);\n },\n toggle: function (apis, toolbar) {\n apis.toggle(toolbar);\n }\n }\n });\n\n var getAnimationRoot = function (component, slideConfig) {\n return slideConfig.getAnimationRoot.fold(function () {\n return component.element();\n }, function (get) {\n return get(component);\n });\n };\n\n var getDimensionProperty = function (slideConfig) {\n return slideConfig.dimension.property;\n };\n var getDimension = function (slideConfig, elem) {\n return slideConfig.dimension.getDimension(elem);\n };\n var disableTransitions = function (component, slideConfig) {\n var root = getAnimationRoot(component, slideConfig);\n remove$5(root, [\n slideConfig.shrinkingClass,\n slideConfig.growingClass\n ]);\n };\n var setShrunk = function (component, slideConfig) {\n remove$4(component.element(), slideConfig.openClass);\n add$2(component.element(), slideConfig.closedClass);\n set$2(component.element(), getDimensionProperty(slideConfig), '0px');\n reflow(component.element());\n };\n var setGrown = function (component, slideConfig) {\n remove$4(component.element(), slideConfig.closedClass);\n add$2(component.element(), slideConfig.openClass);\n remove$6(component.element(), getDimensionProperty(slideConfig));\n };\n var doImmediateShrink = function (component, slideConfig, slideState, _calculatedSize) {\n slideState.setCollapsed();\n set$2(component.element(), getDimensionProperty(slideConfig), getDimension(slideConfig, component.element()));\n reflow(component.element());\n disableTransitions(component, slideConfig);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n slideConfig.onShrunk(component);\n };\n var doStartShrink = function (component, slideConfig, slideState, calculatedSize) {\n var size = calculatedSize.getOrThunk(function () {\n return getDimension(slideConfig, component.element());\n });\n slideState.setCollapsed();\n set$2(component.element(), getDimensionProperty(slideConfig), size);\n reflow(component.element());\n var root = getAnimationRoot(component, slideConfig);\n remove$4(root, slideConfig.growingClass);\n add$2(root, slideConfig.shrinkingClass);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n };\n var doStartSmartShrink = function (component, slideConfig, slideState) {\n var size = getDimension(slideConfig, component.element());\n var shrinker = size === '0px' ? doImmediateShrink : doStartShrink;\n shrinker(component, slideConfig, slideState, Option.some(size));\n };\n var doStartGrow = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n var wasShrinking = has$2(root, slideConfig.shrinkingClass);\n var beforeSize = getDimension(slideConfig, component.element());\n setGrown(component, slideConfig);\n var fullSize = getDimension(slideConfig, component.element());\n var startPartialGrow = function () {\n set$2(component.element(), getDimensionProperty(slideConfig), beforeSize);\n reflow(component.element());\n };\n var startCompleteGrow = function () {\n setShrunk(component, slideConfig);\n };\n var setStartSize = wasShrinking ? startPartialGrow : startCompleteGrow;\n setStartSize();\n remove$4(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$2(component.element(), getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n var refresh$2 = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n remove$6(component.element(), getDimensionProperty(slideConfig));\n var fullSize = getDimension(slideConfig, component.element());\n set$2(component.element(), getDimensionProperty(slideConfig), fullSize);\n }\n };\n var grow = function (component, slideConfig, slideState) {\n if (!slideState.isExpanded()) {\n doStartGrow(component, slideConfig, slideState);\n }\n };\n var shrink = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doStartSmartShrink(component, slideConfig, slideState);\n }\n };\n var immediateShrink = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doImmediateShrink(component, slideConfig, slideState);\n }\n };\n var hasGrown = function (component, slideConfig, slideState) {\n return slideState.isExpanded();\n };\n var hasShrunk = function (component, slideConfig, slideState) {\n return slideState.isCollapsed();\n };\n var isGrowing = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has$2(root, slideConfig.growingClass) === true;\n };\n var isShrinking = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has$2(root, slideConfig.shrinkingClass) === true;\n };\n var isTransitioning = function (component, slideConfig, slideState) {\n return isGrowing(component, slideConfig) === true || isShrinking(component, slideConfig) === true;\n };\n var toggleGrow = function (component, slideConfig, slideState) {\n var f = slideState.isExpanded() ? doStartSmartShrink : doStartGrow;\n f(component, slideConfig, slideState);\n };\n\n var SlidingApis = /*#__PURE__*/Object.freeze({\n refresh: refresh$2,\n grow: grow,\n shrink: shrink,\n immediateShrink: immediateShrink,\n hasGrown: hasGrown,\n hasShrunk: hasShrunk,\n isGrowing: isGrowing,\n isShrinking: isShrinking,\n isTransitioning: isTransitioning,\n toggleGrow: toggleGrow,\n disableTransitions: disableTransitions\n });\n\n var exhibit$6 = function (base, slideConfig) {\n var expanded = slideConfig.expanded;\n return expanded ? nu$6({\n classes: [slideConfig.openClass],\n styles: {}\n }) : nu$6({\n classes: [slideConfig.closedClass],\n styles: wrap$1(slideConfig.dimension.property, '0px')\n });\n };\n var events$d = function (slideConfig, slideState) {\n return derive([runOnSource(transitionend(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event().raw();\n if (raw.propertyName === slideConfig.dimension.property) {\n disableTransitions(component, slideConfig);\n if (slideState.isExpanded()) {\n remove$6(component.element(), slideConfig.dimension.property);\n }\n var notify = slideState.isExpanded() ? slideConfig.onGrown : slideConfig.onShrunk;\n notify(component);\n }\n })]);\n };\n\n var ActiveSliding = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$6,\n events: events$d\n });\n\n var SlidingSchema = [\n strict$1('closedClass'),\n strict$1('openClass'),\n strict$1('shrinkingClass'),\n strict$1('growingClass'),\n option('getAnimationRoot'),\n onHandler('onShrunk'),\n onHandler('onStartShrink'),\n onHandler('onGrown'),\n onHandler('onStartGrow'),\n defaulted$1('expanded', false),\n strictOf('dimension', choose$1('property', {\n width: [\n output('property', 'width'),\n output('getDimension', function (elem) {\n return get$7(elem) + 'px';\n })\n ],\n height: [\n output('property', 'height'),\n output('getDimension', function (elem) {\n return get$6(elem) + 'px';\n })\n ]\n }))\n ];\n\n var init$9 = function (spec) {\n var state = Cell(spec.expanded);\n var readState = function () {\n return 'expanded: ' + state.get();\n };\n return nu$5({\n isExpanded: function () {\n return state.get() === true;\n },\n isCollapsed: function () {\n return state.get() === false;\n },\n setCollapsed: curry(state.set, false),\n setExpanded: curry(state.set, true),\n readState: readState\n });\n };\n\n var SlidingState = /*#__PURE__*/Object.freeze({\n init: init$9\n });\n\n var Sliding = create$1({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n\n var schema$o = constant([\n markers([\n 'closedClass',\n 'openClass',\n 'shrinkingClass',\n 'growingClass',\n 'overflowToggledClass'\n ]),\n onHandler('onOpened'),\n onHandler('onClosed')\n ].concat(schema$m()));\n var parts$a = constant([\n required({\n factory: Toolbar,\n schema: schema$k(),\n name: 'primary'\n }),\n required({\n factory: Toolbar,\n schema: schema$k(),\n name: 'overflow',\n overrides: function (detail) {\n return {\n toolbarBehaviours: derive$1([\n Sliding.config({\n dimension: { property: 'height' },\n closedClass: detail.markers.closedClass,\n openClass: detail.markers.openClass,\n shrinkingClass: detail.markers.shrinkingClass,\n growingClass: detail.markers.growingClass,\n onShrunk: function (comp) {\n getPart(comp, detail, 'overflow-button').each(function (button) {\n Toggling.off(button);\n Focusing.focus(button);\n });\n detail.onClosed(comp);\n },\n onGrown: function (comp) {\n Keying.focusIn(comp);\n detail.onOpened(comp);\n },\n onStartGrow: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Toggling.on);\n }\n }),\n Keying.config({\n mode: 'acyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Option.some(true);\n }\n })\n ])\n };\n }\n }),\n external$1({\n name: 'overflow-button',\n overrides: function (detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })])\n };\n }\n }),\n external$1({ name: 'overflow-group' })\n ]);\n\n var toggleToolbar$1 = function (toolbar, detail) {\n getPart(toolbar, detail, 'overflow').each(function (overf) {\n refresh$3(toolbar, detail);\n Sliding.toggleGrow(overf);\n });\n };\n var isOpen$2 = function (overf) {\n return Sliding.hasGrown(overf);\n };\n var refresh$3 = function (toolbar, detail) {\n var overflow = getPart(toolbar, detail, 'overflow');\n refresh(toolbar, detail, overflow, isOpen$2);\n overflow.each(Sliding.refresh);\n };\n var factory$c = function (detail, components, spec$1, externals) {\n return spec(detail, components, spec$1, externals, {\n coupling: {},\n apis: {\n refresh: function (toolbar) {\n return refresh$3(toolbar, detail);\n },\n toggle: function (toolbar) {\n return toggleToolbar$1(toolbar, detail);\n },\n getOverflow: function (toolbar) {\n return getPart(toolbar, detail, 'overflow');\n }\n }\n });\n };\n var SplitSlidingToolbar = composite$1({\n name: 'SplitSlidingToolbar',\n configFields: schema$o(),\n partFields: parts$a(),\n factory: factory$c,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function (apis, toolbar) {\n apis.refresh(toolbar);\n },\n getMoreButton: function (apis, toolbar) {\n return apis.getMoreButton(toolbar);\n },\n getOverflow: function (apis, toolbar) {\n return apis.getOverflow(toolbar);\n },\n toggle: function (apis, toolbar) {\n apis.toggle(toolbar);\n }\n }\n });\n\n var toolbarHeightChange = constant(generate$1('toolbar-height-change'));\n\n var ReadOnlyChannel = 'silver.readonly';\n var ReadOnlyDataSchema = objOf([strictBoolean('readonly')]);\n var setDisabledAll = function (element, state) {\n all('*', element.element()).forEach(function (elm) {\n element.getSystem().getByDom(elm).each(function (comp) {\n if (comp.hasConfigured(Disabling)) {\n Disabling.set(comp, state);\n }\n });\n });\n };\n var broadcastReadonly = function (uiComponents, readonly) {\n var outerContainer = uiComponents.outerContainer;\n var target = outerContainer.element();\n if (readonly) {\n uiComponents.mothership.broadcastOn([dismissPopups()], { target: target });\n uiComponents.uiMothership.broadcastOn([dismissPopups()], { target: target });\n }\n uiComponents.mothership.broadcastOn([ReadOnlyChannel], { readonly: readonly });\n uiComponents.uiMothership.broadcastOn([ReadOnlyChannel], { readonly: readonly });\n };\n var toggleToReadOnly = function (uiComponents, readonly) {\n var outerContainer = uiComponents.outerContainer;\n broadcastReadonly(uiComponents, readonly);\n all('*', outerContainer.element()).forEach(function (elm) {\n outerContainer.getSystem().getByDom(elm).each(function (comp) {\n if (comp.hasConfigured(Disabling)) {\n Disabling.set(comp, readonly);\n }\n });\n });\n };\n var setupReadonlyModeSwitch = function (editor, uiComponents) {\n editor.on('init', function () {\n if (editor.readonly) {\n toggleToReadOnly(uiComponents, true);\n }\n });\n editor.on('SwitchMode', function () {\n return toggleToReadOnly(uiComponents, editor.readonly);\n });\n if (isReadOnly(editor)) {\n editor.setMode('readonly');\n }\n };\n var createReadonlyReceivingForOverflow = function (getOverflow) {\n var _a;\n return Receiving.config({\n channels: (_a = {}, _a[ReadOnlyChannel] = {\n schema: ReadOnlyDataSchema,\n onReceive: function (comp, data) {\n getOverflow(comp).each(function (toolbar) {\n setDisabledAll(toolbar, data.readonly);\n });\n }\n }, _a)\n });\n };\n\n var renderToolbarGroupCommon = function (toolbarGroup) {\n var attributes = toolbarGroup.title.fold(function () {\n return {};\n }, function (title) {\n return { attributes: { title: title } };\n });\n return {\n dom: __assign({\n tag: 'div',\n classes: ['tox-toolbar__group']\n }, attributes),\n components: [ToolbarGroup.parts().items({})],\n items: toolbarGroup.items,\n markers: { itemSelector: '*:not(.tox-split-button) > .tox-tbtn:not([disabled]), .tox-split-button:not([disabled]), .tox-toolbar-nav-js:not([disabled])' },\n tgroupBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n var renderToolbarGroup = function (toolbarGroup) {\n return ToolbarGroup.sketch(renderToolbarGroupCommon(toolbarGroup));\n };\n var getToolbarbehaviours = function (toolbarSpec, modeName, getOverflow) {\n var onAttached = runOnAttached(function (component) {\n var groups = map(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n return derive$1([\n Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n selector: '.tox-toolbar__group'\n }),\n config('toolbar-events', [onAttached]),\n createReadonlyReceivingForOverflow(getOverflow)\n ]);\n };\n var renderMoreToolbarCommon = function (toolbarSpec, getOverflow) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return {\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n parts: {\n 'overflow-group': renderToolbarGroupCommon({\n title: Option.none(),\n items: []\n }),\n 'overflow-button': renderIconButtonSpec({\n name: 'more',\n icon: Option.some('more-drawer'),\n disabled: false,\n tooltip: Option.some('More...'),\n primary: false,\n borderless: false\n }, Option.none(), toolbarSpec.backstage.shared.providers)\n },\n splitToolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName, getOverflow)\n };\n };\n var renderFloatingMoreToolbar = function (toolbarSpec) {\n var baseSpec = renderMoreToolbarCommon(toolbarSpec, SplitFloatingToolbar.getOverflow);\n var overflowXOffset = 4;\n var primary = SplitFloatingToolbar.parts().primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n return SplitFloatingToolbar.sketch(__assign(__assign({}, baseSpec), {\n lazySink: toolbarSpec.getSink,\n getAnchor: function () {\n return toolbarSpec.backstage.shared.anchors.toolbarOverflow();\n },\n getOverflowBounds: function () {\n var headerElem = toolbarSpec.moreDrawerData.lazyHeader().element();\n var headerBounds = absolute$1(headerElem);\n var docElem = documentElement(headerElem);\n var docBounds = absolute$1(docElem);\n return bounds$1(headerBounds.x() + overflowXOffset, docBounds.y(), headerBounds.width() - overflowXOffset * 2, docBounds.height());\n },\n parts: __assign(__assign({}, baseSpec.parts), {\n overflow: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n }\n }),\n components: [primary],\n markers: { overflowToggledClass: 'tox-tbtn--enabled' }\n }));\n };\n var renderSlidingMoreToolbar = function (toolbarSpec) {\n var primary = SplitSlidingToolbar.parts().primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n var overflow = SplitSlidingToolbar.parts().overflow({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n });\n var baseSpec = renderMoreToolbarCommon(toolbarSpec, SplitSlidingToolbar.getOverflow);\n return SplitSlidingToolbar.sketch(__assign(__assign({}, baseSpec), {\n components: [\n primary,\n overflow\n ],\n markers: {\n openClass: 'tox-toolbar__overflow--open',\n closedClass: 'tox-toolbar__overflow--closed',\n growingClass: 'tox-toolbar__overflow--growing',\n shrinkingClass: 'tox-toolbar__overflow--shrinking',\n overflowToggledClass: 'tox-tbtn--enabled'\n },\n onOpened: function (comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'opened' });\n },\n onClosed: function (comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'closed' });\n }\n }));\n };\n var renderToolbar = function (toolbarSpec) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return Toolbar.sketch({\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar'].concat(toolbarSpec.type === ToolbarDrawer.scrolling ? ['tox-toolbar--scrolling'] : [])\n },\n components: [Toolbar.parts().groups({})],\n toolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName, constant(Option.none()))\n });\n };\n\n var baseToolbarButtonFields = [\n defaultedBoolean('disabled', false),\n optionString('tooltip'),\n optionString('icon'),\n optionString('text'),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ];\n var toolbarButtonSchema = objOf([\n strictString('type'),\n strictFunction('onAction')\n ].concat(baseToolbarButtonFields));\n var createToolbarButton = function (spec) {\n return asRaw('toolbarbutton', toolbarButtonSchema, spec);\n };\n\n var baseMenuButtonFields = [\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n strictFunction('fetch'),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ];\n\n var MenuButtonSchema = objOf(__spreadArrays([strictString('type')], baseMenuButtonFields));\n var createMenuButton = function (spec) {\n return asRaw('menubutton', MenuButtonSchema, spec);\n };\n\n var splitButtonSchema = objOf([\n strictString('type'),\n optionString('tooltip'),\n optionString('icon'),\n optionString('text'),\n optionFunction('select'),\n strictFunction('fetch'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedStringEnum('presets', 'normal', [\n 'normal',\n 'color',\n 'listpreview'\n ]),\n defaulted$1('columns', 1),\n strictFunction('onAction'),\n strictFunction('onItemAction')\n ]);\n var createSplitButton = function (spec) {\n return asRaw('SplitButton', splitButtonSchema, spec);\n };\n\n var baseToolbarToggleButtonFields = [defaultedBoolean('active', false)].concat(baseToolbarButtonFields);\n var toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([\n strictString('type'),\n strictFunction('onAction')\n ]));\n var createToggleButton = function (spec) {\n return asRaw('ToggleButton', toggleButtonSchema, spec);\n };\n\n var contextBarFields = [\n defaultedFunction('predicate', function () {\n return false;\n }),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n var contextButtonFields = baseToolbarButtonFields.concat([\n defaulted$1('type', 'contextformbutton'),\n defaulted$1('primary', false),\n strictFunction('onAction'),\n state$1('original', identity)\n ]);\n var contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaulted$1('type', 'contextformbutton'),\n defaulted$1('primary', false),\n strictFunction('onAction'),\n state$1('original', identity)\n ]);\n var launchButtonFields = baseToolbarButtonFields.concat([defaulted$1('type', 'contextformbutton')]);\n var launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaulted$1('type', 'contextformtogglebutton')]);\n var toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n var contextFormSchema = objOf([\n defaulted$1('type', 'contextform'),\n defaultedFunction('initValue', function () {\n return '';\n }),\n optionString('label'),\n strictArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))\n ].concat(contextBarFields));\n var contextToolbarSchema = objOf([\n defaulted$1('type', 'contexttoolbar'),\n strictString('items')\n ].concat(contextBarFields));\n var createContextToolbar = function (spec) {\n return asRaw('ContextToolbar', contextToolbarSchema, spec);\n };\n var createContextForm = function (spec) {\n return asRaw('ContextForm', contextFormSchema, spec);\n };\n\n var getState$2 = function (component, replaceConfig, reflectState) {\n return reflectState;\n };\n\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n getState: getState$2\n });\n\n var events$e = function (reflectingConfig, reflectingState) {\n var update = function (component, data) {\n reflectingConfig.updateState.each(function (updateState) {\n var newState = updateState(component, data);\n reflectingState.set(newState);\n });\n reflectingConfig.renderComponents.each(function (renderComponents) {\n var newComponents = renderComponents(data, reflectingState.get());\n var newChildren = map(newComponents, component.getSystem().build);\n replaceChildren(component, newChildren);\n });\n };\n return derive([\n run(receive(), function (component, message) {\n var channel = reflectingConfig.channel;\n if (contains(message.channels(), channel)) {\n update(component, message.data());\n }\n }),\n runOnAttached(function (comp, se) {\n reflectingConfig.initialData.each(function (rawData) {\n update(comp, rawData);\n });\n })\n ]);\n };\n\n var ActiveReflecting = /*#__PURE__*/Object.freeze({\n events: events$e\n });\n\n var init$a = function (spec) {\n var cell = Cell(Option.none());\n var set = function (optS) {\n return cell.set(optS);\n };\n var clear = function () {\n return cell.set(Option.none());\n };\n var get = function () {\n return cell.get();\n };\n var readState = function () {\n return cell.get().fold(function () {\n return 'none';\n }, function (x) {\n return x;\n });\n };\n return {\n readState: readState,\n get: get,\n set: set,\n clear: clear\n };\n };\n\n var ReflectingState = /*#__PURE__*/Object.freeze({\n init: init$a\n });\n\n var ReflectingSchema = [\n strict$1('channel'),\n option('renderComponents'),\n option('updateState'),\n option('initialData')\n ];\n\n var Reflecting = create$1({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n\n var schema$p = constant([\n strict$1('toggleClass'),\n strict$1('fetch'),\n onStrictHandler('onExecute'),\n defaulted$1('getHotspot', Option.some),\n defaulted$1('getAnchorOverrides', constant({})),\n defaulted$1('layouts', Option.none()),\n onStrictHandler('onItemExecute'),\n option('lazySink'),\n strict$1('dom'),\n onHandler('onOpen'),\n field$1('splitDropdownBehaviours', [\n Coupling,\n Keying,\n Focusing\n ]),\n defaulted$1('matchWidth', false),\n defaulted$1('useMinWidth', false),\n defaulted$1('eventOrder', {}),\n option('role')\n ].concat(sandboxFields()));\n var arrowPart = required({\n factory: Button,\n schema: [strict$1('dom')],\n name: 'arrow',\n defaults: function (detail) {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: function (detail) {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: function (arrow) {\n arrow.getSystem().getByUid(detail.uid).each(emitExecute);\n },\n buttonBehaviours: derive$1([Toggling.config({\n toggleOnExecute: false,\n toggleClass: detail.toggleClass\n })])\n };\n }\n });\n var buttonPart = required({\n factory: Button,\n schema: [strict$1('dom')],\n name: 'button',\n defaults: function (detail) {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: function (detail) {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: function (btn) {\n btn.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onExecute(splitDropdown, btn);\n });\n }\n };\n }\n });\n var parts$b = constant([\n arrowPart,\n buttonPart,\n optional({\n factory: {\n sketch: function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [strict$1('text')],\n name: 'aria-descriptor'\n }),\n external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return {\n onExecute: function (tmenu, item) {\n tmenu.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onItemExecute(splitDropdown, tmenu, item);\n });\n }\n };\n }\n }),\n partType()\n ]);\n\n var factory$d = function (detail, components, spec, externals) {\n var switchToMenu = function (sandbox) {\n Composing.getCurrent(sandbox).each(function (current) {\n Highlighting.highlightFirst(current);\n Keying.focusIn(current);\n });\n };\n var action = function (component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, function (x) {\n return x;\n }, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var openMenu = function (comp) {\n action(comp);\n return Option.some(true);\n };\n var executeOnButton = function (comp) {\n var button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Option.some(true);\n };\n var buttonEvents = merge(derive([runOnAttached(function (component, simulatedEvent) {\n var ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(function (descriptor) {\n var descriptorId = generate$1('aria');\n set$1(descriptor.element(), 'id', descriptorId);\n set$1(component.element(), 'aria-describedby', descriptorId);\n });\n })]), events$7(Option.some(action)));\n var apis = {\n repositionMenus: function (comp) {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: apis,\n eventOrder: __assign(__assign({}, detail.eventOrder), {\n 'alloy.execute': [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ]\n }),\n events: buttonEvents,\n behaviours: augment(detail.splitDropdownBehaviours, [\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n var arrow = getPartOrDie(hotspot, detail, 'arrow');\n var extras = {\n onOpen: function () {\n Toggling.on(arrow);\n Toggling.on(hotspot);\n },\n onClose: function () {\n Toggling.off(arrow);\n Toggling.off(hotspot);\n }\n };\n return makeSandbox(detail, hotspot, extras);\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: executeOnButton,\n onEnter: executeOnButton,\n onDown: openMenu\n }),\n Focusing.config({}),\n Toggling.config({\n toggleOnExecute: false,\n aria: { mode: 'expanded' }\n })\n ]),\n domModification: {\n attributes: {\n 'role': detail.role.getOr('button'),\n 'aria-haspopup': true\n }\n }\n };\n };\n var SplitDropdown = composite$1({\n name: 'SplitDropdown',\n configFields: schema$p(),\n partFields: parts$b(),\n factory: factory$d,\n apis: {\n repositionMenus: function (apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n\n var getButtonApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var getToggleApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var getTooltipAttributes = function (tooltip, providersBackstage) {\n return tooltip.map(function (tooltip) {\n return {\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n };\n }).getOr({});\n };\n var focusButtonEvent = generate$1('focus-button');\n var rtlIcon$1 = [\n 'checklist',\n 'ordered-list'\n ];\n var rtlTransform$1 = [\n 'indent',\n 'outdent',\n 'table-insert-column-after',\n 'table-insert-column-before',\n 'unordered-list'\n ];\n var renderCommonStructure = function (icon, text, tooltip, receiver, behaviours, providersBackstage) {\n var _a;\n var getIconName = function (iconName) {\n return global$5.isRtl() && contains(rtlIcon$1, iconName) ? iconName + '-rtl' : iconName;\n };\n var needsRtlClass = global$5.isRtl() && icon.exists(function (name) {\n return contains(rtlTransform$1, name);\n });\n return {\n dom: {\n tag: 'button',\n classes: ['tox-tbtn'].concat(text.isSome() ? ['tox-tbtn--select'] : []).concat(needsRtlClass ? ['tox-tbtn__icon-rtl'] : []),\n attributes: getTooltipAttributes(tooltip, providersBackstage)\n },\n components: componentRenderPipeline([\n icon.map(function (iconName) {\n return renderIconFromPack(getIconName(iconName), providersBackstage.icons);\n }),\n text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })\n ]),\n eventOrder: (_a = {}, _a[mousedown()] = [\n 'focusing',\n 'alloy.base.behaviour',\n 'common-button-display-events'\n ], _a),\n buttonBehaviours: derive$1([config('common-button-display-events', [run(mousedown(), function (button, se) {\n se.event().prevent();\n emit(button, focusButtonEvent);\n })])].concat(receiver.map(function (r) {\n return Reflecting.config({\n channel: r,\n initialData: {\n icon: icon,\n text: text\n },\n renderComponents: function (data, _state) {\n return componentRenderPipeline([\n data.icon.map(function (iconName) {\n return renderIconFromPack(getIconName(iconName), providersBackstage.icons);\n }),\n data.text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })\n ]);\n }\n });\n }).toArray()).concat(behaviours.getOr([])))\n };\n };\n var renderCommonToolbarButton = function (spec, specialisation, providersBackstage) {\n var editorOffCell = Cell(noop);\n var structure = renderCommonStructure(spec.icon, spec.text, spec.tooltip, Option.none(), Option.none(), providersBackstage);\n return Button.sketch({\n dom: structure.dom,\n components: structure.components,\n eventOrder: toolbarButtonEventOrder,\n buttonBehaviours: derive$1([\n config('toolbar-button-events', [\n onToolbarButtonExecute({\n onAction: spec.onAction,\n getApi: specialisation.getApi\n }),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n DisablingConfigs.toolbarButton(spec.disabled)\n ].concat(specialisation.toolbarButtonBehaviours))\n });\n };\n var renderToolbarButton = function (spec, providersBackstage) {\n return renderToolbarButtonWith(spec, providersBackstage, []);\n };\n var renderToolbarButtonWith = function (spec, providersBackstage, bonusEvents) {\n return renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [].concat(bonusEvents.length > 0 ? [config('toolbarButtonWith', bonusEvents)] : []),\n getApi: getButtonApi,\n onSetup: spec.onSetup\n }, providersBackstage);\n };\n var renderToolbarToggleButton = function (spec, providersBackstage) {\n return renderToolbarToggleButtonWith(spec, providersBackstage, []);\n };\n var renderToolbarToggleButtonWith = function (spec, providersBackstage, bonusEvents) {\n return deepMerge(renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [\n Replacing.config({}),\n Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })\n ].concat(bonusEvents.length > 0 ? [config('toolbarToggleButtonWith', bonusEvents)] : []),\n getApi: getToggleApi,\n onSetup: spec.onSetup\n }, providersBackstage));\n };\n var fetchChoices = function (getApi, spec, providersBackstage) {\n return function (comp) {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Option.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$1('menu-value'), items, function (value) {\n spec.onItemAction(getApi(comp), value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(function () {\n return false;\n }), providersBackstage), {\n movement: deriveMenuMovement(spec.columns, spec.presets),\n menuBehaviours: SimpleBehaviours.unnamedEvents(spec.columns !== 'auto' ? [] : [runOnAttached(function (comp, se) {\n detectSize(comp, 4, classForPreset(spec.presets)).each(function (_a) {\n var numRows = _a.numRows, numColumns = _a.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n })));\n });\n };\n };\n var renderSplitButton = function (spec, sharedBackstage) {\n var _a;\n var displayChannel = generate$1('channel-update-split-dropdown-display');\n var getApi = function (comp) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(comp);\n },\n setDisabled: function (state) {\n return Disabling.set(comp, state);\n },\n setIconFill: function (id, value) {\n descendant$1(comp.element(), 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$1(underlinePath, 'fill', value);\n });\n },\n setIconStroke: function (id, value) {\n descendant$1(comp.element(), 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$1(underlinePath, 'stroke', value);\n });\n },\n setActive: function (state) {\n set$1(comp.element(), 'aria-pressed', state);\n descendant$1(comp.element(), 'span').each(function (button) {\n comp.getSystem().getByDom(button).each(function (buttonComp) {\n return Toggling.set(buttonComp, state);\n });\n });\n },\n isActive: function () {\n return descendant$1(comp.element(), 'span').exists(function (button) {\n return comp.getSystem().getByDom(button).exists(Toggling.isOn);\n });\n }\n };\n };\n var editorOffCell = Cell(noop);\n var specialisation = {\n getApi: getApi,\n onSetup: spec.onSetup\n };\n return SplitDropdown.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-split-button'],\n attributes: merge({ 'aria-pressed': false }, getTooltipAttributes(spec.tooltip, sharedBackstage.providers))\n },\n onExecute: function (button) {\n spec.onAction(getApi(button));\n },\n onItemExecute: function (a, b, c) {\n },\n splitDropdownBehaviours: derive$1([\n DisablingConfigs.splitButton(false),\n config('split-dropdown-events', [\n run(focusButtonEvent, Focusing.focus),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n Unselecting.config({})\n ]),\n eventOrder: (_a = {}, _a[attachedToDom()] = [\n 'alloy.base.behaviour',\n 'split-dropdown-events'\n ], _a),\n toggleClass: 'tox-tbtn--enabled',\n lazySink: sharedBackstage.getSink,\n fetch: fetchChoices(getApi, spec, sharedBackstage.providers),\n parts: { menu: part(false, spec.columns, spec.presets) },\n components: [\n SplitDropdown.parts().button(renderCommonStructure(spec.icon, spec.text, Option.none(), Option.some(displayChannel), Option.some([Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n toggleOnExecute: false\n })]), sharedBackstage.providers)),\n SplitDropdown.parts().arrow({\n dom: {\n tag: 'button',\n classes: [\n 'tox-tbtn',\n 'tox-split-button__chevron'\n ],\n innerHtml: get$c('chevron-down', sharedBackstage.providers.icons)\n }\n }),\n SplitDropdown.parts()['aria-descriptor']({ text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter') })\n ]\n });\n };\n\n var getFormApi = function (input) {\n return {\n hide: function () {\n return emit(input, sandboxClose());\n },\n getValue: function () {\n return Representing.getValue(input);\n }\n };\n };\n var runOnExecute$1 = function (memInput, original) {\n return run(internalToolbarButtonExecute, function (comp, se) {\n var input = memInput.get(comp);\n var formApi = getFormApi(input);\n original.onAction(formApi, se.event().buttonApi());\n });\n };\n var renderContextButton = function (memInput, button, extras) {\n var _a = button.original, primary = _a.primary, rest = __rest(_a, ['primary']);\n var bridged = getOrDie(createToolbarButton(__assign(__assign({}, rest), {\n type: 'button',\n onAction: function () {\n }\n })));\n return renderToolbarButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute$1(memInput, button)]);\n };\n var renderContextToggleButton = function (memInput, button, extras) {\n var _a = button.original, primary = _a.primary, rest = __rest(_a, ['primary']);\n var bridged = getOrDie(createToggleButton(__assign(__assign({}, rest), {\n type: 'togglebutton',\n onAction: function () {\n }\n })));\n return renderToolbarToggleButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute$1(memInput, button)]);\n };\n var generateOne$1 = function (memInput, button, providersBackstage) {\n var extras = { backstage: { shared: { providers: providersBackstage } } };\n if (button.type === 'contextformtogglebutton') {\n return renderContextToggleButton(memInput, button, extras);\n } else {\n return renderContextButton(memInput, button, extras);\n }\n };\n var generate$7 = function (memInput, buttons, providersBackstage) {\n var mementos = map(buttons, function (button) {\n return record(generateOne$1(memInput, button, providersBackstage));\n });\n var asSpecs = function () {\n return map(mementos, function (mem) {\n return mem.asSpec();\n });\n };\n var findPrimary = function (compInSystem) {\n return findMap(buttons, function (button, i) {\n if (button.primary) {\n return Option.from(mementos[i]).bind(function (mem) {\n return mem.getOpt(compInSystem);\n }).filter(not(Disabling.isDisabled));\n } else {\n return Option.none();\n }\n });\n };\n return {\n asSpecs: asSpecs,\n findPrimary: findPrimary\n };\n };\n\n var renderContextForm = function (toolbarType, ctx, backstage) {\n var inputAttributes = ctx.label.fold(function () {\n return {};\n }, function (label) {\n return { 'aria-label': label };\n });\n var memInput = record(Input.sketch({\n inputClasses: [\n 'tox-toolbar-textfield',\n 'tox-toolbar-nav-js'\n ],\n data: ctx.initValue(),\n inputAttributes: inputAttributes,\n selectOnFocus: true,\n inputBehaviours: derive$1([Keying.config({\n mode: 'special',\n onEnter: function (input) {\n return commands.findPrimary(input).map(function (primary) {\n emitExecute(primary);\n return true;\n });\n },\n onLeft: function (comp, se) {\n se.cut();\n return Option.none();\n },\n onRight: function (comp, se) {\n se.cut();\n return Option.none();\n }\n })])\n }));\n var commands = generate$7(memInput, ctx.commands, backstage.shared.providers);\n return renderToolbar({\n type: toolbarType,\n uid: generate$1('context-toolbar'),\n initGroups: [\n {\n title: Option.none(),\n items: [memInput.asSpec()]\n },\n {\n title: Option.none(),\n items: commands.asSpecs()\n }\n ],\n onEscape: Option.none,\n cyclicKeying: true,\n backstage: backstage,\n getSink: function () {\n return Result.error('');\n }\n });\n };\n var ContextForm = { renderContextForm: renderContextForm };\n\n var getHorizontalBounds = function (contentAreaBox, viewportBounds) {\n var x = Math.max(viewportBounds.x(), contentAreaBox.x());\n var contentBoxWidth = contentAreaBox.right() - x;\n var maxViewportWidth = viewportBounds.width() - (x - viewportBounds.x());\n var width = Math.min(contentBoxWidth, maxViewportWidth);\n return {\n x: x,\n width: width\n };\n };\n var getIframeBounds = function (editor, contentAreaBox, viewportBounds) {\n var _a = getHorizontalBounds(contentAreaBox, viewportBounds), x = _a.x, width = _a.width;\n var container = Element.fromDom(editor.getContainer());\n var header = descendant$1(container, '.tox-editor-header').getOr(container);\n var containerBox = box(container);\n var headerBox = box(header);\n var y = Math.max(viewportBounds.y(), contentAreaBox.y(), headerBox.bottom());\n var contentBoxHeight = containerBox.bottom() - y;\n var maxViewportHeight = viewportBounds.height() - (y - viewportBounds.y());\n var height = Math.min(contentBoxHeight, maxViewportHeight);\n return bounds$1(x, y, width, height);\n };\n var getInlineBounds = function (editor, contentAreaBox, viewportBounds) {\n var _a = getHorizontalBounds(contentAreaBox, viewportBounds), x = _a.x, width = _a.width;\n var container = Element.fromDom(editor.getContainer());\n var header = descendant$1(container, '.tox-editor-header').getOr(container);\n var headerBox = box(header);\n var vpHeight = viewportBounds.height();\n var vpTop = viewportBounds.y();\n if (headerBox.y() >= contentAreaBox.bottom()) {\n var bottom = Math.min(vpHeight + vpTop, headerBox.y());\n var height = bottom - vpTop;\n return bounds$1(x, vpTop, width, height);\n } else {\n var y = Math.max(vpTop, headerBox.bottom());\n var height = vpHeight - (y - vpTop);\n return bounds$1(x, y, width, height);\n }\n };\n var getDistractionFreeBounds = function (_editor, contentAreaBox, viewportBounds) {\n var _a = getHorizontalBounds(contentAreaBox, viewportBounds), x = _a.x, width = _a.width;\n return bounds$1(x, viewportBounds.y(), width, viewportBounds.height());\n };\n var getContextToolbarBounds = function (editor) {\n var toolbarOrMenubarEnabled = isMenubarEnabled(editor) || isToolbarEnabled(editor) || isMultipleToolbars(editor);\n var viewportBounds = getBounds(domGlobals.window);\n var contentAreaBox = box(Element.fromDom(editor.getContentAreaContainer()));\n if (editor.inline && !toolbarOrMenubarEnabled) {\n return getDistractionFreeBounds(editor, contentAreaBox, viewportBounds);\n } else if (editor.inline) {\n return getInlineBounds(editor, contentAreaBox, viewportBounds);\n } else {\n return getIframeBounds(editor, contentAreaBox, viewportBounds);\n }\n };\n\n var ancestor$2 = function (scope, transform, isRoot) {\n var element = scope.dom();\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n while (element.parentNode) {\n element = element.parentNode;\n var el = Element.fromDom(element);\n var transformed = transform(el);\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n return Option.none();\n };\n\n var matchTargetWith = function (elem, toolbars) {\n return findMap(toolbars, function (toolbarApi) {\n return toolbarApi.predicate(elem.dom()) ? Option.some({\n toolbarApi: toolbarApi,\n elem: elem\n }) : Option.none();\n });\n };\n var lookup$1 = function (scopes, editor) {\n var isRoot = function (elem) {\n return elem.dom() === editor.getBody();\n };\n var startNode = Element.fromDom(editor.selection.getNode());\n return matchTargetWith(startNode, scopes.inNodeScope).orThunk(function () {\n return matchTargetWith(startNode, scopes.inEditorScope).orThunk(function () {\n return ancestor$2(startNode, function (elem) {\n return matchTargetWith(elem, scopes.inNodeScope);\n }, isRoot);\n });\n });\n };\n var ToolbarLookup = { lookup: lookup$1 };\n\n var categorise = function (contextToolbars, navigate) {\n var forms = {};\n var inNodeScope = [];\n var inEditorScope = [];\n var formNavigators = {};\n var lookupTable = {};\n var registerForm = function (key, toolbarApi) {\n var contextForm = getOrDie(createContextForm(toolbarApi));\n forms[key] = contextForm;\n contextForm.launch.map(function (launch) {\n formNavigators['form:' + key + ''] = __assign(__assign({}, toolbarApi.launch), {\n type: launch.type === 'contextformtogglebutton' ? 'togglebutton' : 'button',\n onAction: function () {\n navigate(contextForm);\n }\n });\n });\n if (contextForm.scope === 'editor') {\n inEditorScope.push(contextForm);\n } else {\n inNodeScope.push(contextForm);\n }\n lookupTable[key] = contextForm;\n };\n var registerToolbar = function (key, toolbarApi) {\n createContextToolbar(toolbarApi).each(function (contextToolbar) {\n if (toolbarApi.scope === 'editor') {\n inEditorScope.push(contextToolbar);\n } else {\n inNodeScope.push(contextToolbar);\n }\n lookupTable[key] = contextToolbar;\n });\n };\n var keys$1 = keys(contextToolbars);\n each(keys$1, function (key) {\n var toolbarApi = contextToolbars[key];\n if (toolbarApi.type === 'contextform') {\n registerForm(key, toolbarApi);\n } else if (toolbarApi.type === 'contexttoolbar') {\n registerToolbar(key, toolbarApi);\n }\n });\n return {\n forms: forms,\n inNodeScope: inNodeScope,\n inEditorScope: inEditorScope,\n lookupTable: lookupTable,\n formNavigators: formNavigators\n };\n };\n var ToolbarScopes = { categorise: categorise };\n\n var forwardSlideEvent = generate$1('forward-slide');\n var backSlideEvent = generate$1('backward-slide');\n var changeSlideEvent = generate$1('change-slide-event');\n var resizingClass = 'tox-pop--resizing';\n var renderContextToolbar = function (spec) {\n var stack = Cell([]);\n return InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-pop']\n },\n fireDismissalEventInstead: { event: 'doNotDismissYet' },\n onShow: function (comp) {\n stack.set([]);\n InlineView.getContent(comp).each(function (c) {\n remove$6(c.element(), 'visibility');\n });\n remove$4(comp.element(), resizingClass);\n remove$6(comp.element(), 'width');\n },\n inlineBehaviours: derive$1([\n config('context-toolbar-events', [\n runOnSource(transitionend(), function (comp, se) {\n InlineView.getContent(comp).each(function (c) {\n });\n remove$4(comp.element(), resizingClass);\n remove$6(comp.element(), 'width');\n }),\n run(changeSlideEvent, function (comp, se) {\n remove$6(comp.element(), 'width');\n var currentWidth = get$7(comp.element());\n InlineView.setContent(comp, se.event().contents());\n add$2(comp.element(), resizingClass);\n var newWidth = get$7(comp.element());\n set$2(comp.element(), 'width', currentWidth + 'px');\n InlineView.getContent(comp).each(function (newContents) {\n se.event().focus().bind(function (f) {\n focus$1(f);\n return search(comp.element());\n }).orThunk(function () {\n Keying.focusIn(newContents);\n return active();\n });\n });\n global$2.setTimeout(function () {\n set$2(comp.element(), 'width', newWidth + 'px');\n }, 0);\n }),\n run(forwardSlideEvent, function (comp, se) {\n InlineView.getContent(comp).each(function (oldContents) {\n stack.set(stack.get().concat([{\n bar: oldContents,\n focus: active()\n }]));\n });\n emitWith(comp, changeSlideEvent, {\n contents: se.event().forwardContents(),\n focus: Option.none()\n });\n }),\n run(backSlideEvent, function (comp, se) {\n last(stack.get()).each(function (last) {\n stack.set(stack.get().slice(0, stack.get().length - 1));\n emitWith(comp, changeSlideEvent, {\n contents: premade$1(last.bar),\n focus: last.focus\n });\n });\n })\n ]),\n Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n return last(stack.get()).fold(function () {\n return spec.onEscape();\n }, function (_) {\n emit(comp, backSlideEvent);\n return Option.some(true);\n });\n }\n })\n ]),\n lazySink: function () {\n return Result.value(spec.sink);\n }\n });\n };\n\n var onSetupFormatToggle = function (editor, name) {\n return function (api) {\n var unbindCell = Cell(Option.none());\n var init = function () {\n api.setActive(editor.formatter.match(name));\n var unbind = editor.formatter.formatChanged(name, api.setActive).unbind;\n unbindCell.set(Option.some(unbind));\n };\n editor.initialized ? init() : editor.on('init', init);\n return function () {\n return unbindCell.get().each(function (unbind) {\n return unbind();\n });\n };\n };\n };\n var onActionToggleFormat = function (editor) {\n return function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('mceToggleFormat', false, rawItem.format);\n });\n };\n };\n };\n\n var generateSelectItems = function (_editor, backstage, spec) {\n var generateItem = function (rawItem, response, disabled, value) {\n var translatedText = backstage.shared.providers.translate(rawItem.title);\n if (rawItem.type === 'separator') {\n return Option.some({\n type: 'separator',\n text: translatedText\n });\n } else if (rawItem.type === 'submenu') {\n var items = bind(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\n });\n if (response === 0 && items.length <= 0) {\n return Option.none();\n } else {\n return Option.some({\n type: 'nestedmenuitem',\n text: translatedText,\n disabled: items.length <= 0,\n getSubmenuItems: function () {\n return bind(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\n });\n }\n });\n }\n } else {\n return Option.some(__assign({\n type: 'togglemenuitem',\n text: translatedText,\n active: rawItem.isSelected(value),\n disabled: disabled,\n onAction: spec.onAction(rawItem)\n }, rawItem.getStylePreview().fold(function () {\n return {};\n }, function (preview) {\n return { meta: { style: preview } };\n })));\n }\n };\n var validate = function (item, response, value) {\n var invalid = item.type === 'formatter' && spec.isInvalid(item);\n if (response === 0) {\n return invalid ? [] : generateItem(item, response, false, value).toArray();\n } else {\n return generateItem(item, response, invalid, value).toArray();\n }\n };\n var validateItems = function (preItems) {\n var value = spec.getCurrentValue();\n var response = spec.shouldHide ? 0 : 1;\n return bind(preItems, function (item) {\n return validate(item, response, value);\n });\n };\n var getFetch = function (backstage, getStyleItems) {\n return function (callback) {\n var preItems = getStyleItems();\n var items = validateItems(preItems);\n var menu = build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false);\n callback(menu);\n };\n };\n return {\n validateItems: validateItems,\n getFetch: getFetch\n };\n };\n var createMenuItems = function (editor, backstage, spec) {\n var dataset = spec.dataset;\n var getStyleItems = dataset.type === 'basic' ? function () {\n return map(dataset.data, function (d) {\n return processBasic(d, spec.isSelectedFor, spec.getPreviewFor);\n });\n } : dataset.getData;\n return {\n items: generateSelectItems(editor, backstage, spec),\n getStyleItems: getStyleItems\n };\n };\n var createSelectButton = function (editor, backstage, spec) {\n var _a = createMenuItems(editor, backstage, spec), items = _a.items, getStyleItems = _a.getStyleItems;\n var getApi = function (comp) {\n return {\n getComponent: function () {\n return comp;\n }\n };\n };\n var onSetup = function (api) {\n spec.setInitialValue.each(function (f) {\n return f(api.getComponent());\n });\n return spec.nodeChangeHandler.map(function (f) {\n var handler = f(api.getComponent());\n editor.on('NodeChange', handler);\n return function () {\n editor.off('NodeChange', handler);\n };\n }).getOr(noop);\n };\n return renderCommonDropdown({\n text: spec.icon.isSome() ? Option.none() : Option.some(''),\n icon: spec.icon,\n tooltip: Option.from(spec.tooltip),\n role: Option.none(),\n fetch: items.getFetch(backstage, getStyleItems),\n onSetup: onSetup,\n getApi: getApi,\n columns: 1,\n presets: 'normal',\n classes: spec.icon.isSome() ? [] : ['bespoke'],\n dropdownBehaviours: []\n }, 'tox-tbtn', backstage.shared);\n };\n\n var process = function (rawFormats) {\n return map(rawFormats, function (item) {\n var title = item, format = item;\n var values = item.split('=');\n if (values.length > 1) {\n title = values[0];\n format = values[1];\n }\n return {\n title: title,\n format: format\n };\n });\n };\n var buildBasicStaticDataset = function (data) {\n return {\n type: 'basic',\n data: data\n };\n };\n var Delimiter;\n (function (Delimiter) {\n Delimiter[Delimiter['SemiColon'] = 0] = 'SemiColon';\n Delimiter[Delimiter['Space'] = 1] = 'Space';\n }(Delimiter || (Delimiter = {})));\n var split = function (rawFormats, delimiter) {\n if (delimiter === Delimiter.SemiColon) {\n return rawFormats.replace(/;$/, '').split(';');\n } else {\n return rawFormats.split(' ');\n }\n };\n var buildBasicSettingsDataset = function (editor, settingName, defaults, delimiter) {\n var rawFormats = readOptFrom$1(editor.settings, settingName).getOr(defaults);\n var data = process(split(rawFormats, delimiter));\n return {\n type: 'basic',\n data: data\n };\n };\n\n var alignMenuItems = [\n {\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify'\n }\n ];\n var getSpec = function (editor) {\n var getMatchingValue = function () {\n return find(alignMenuItems, function (item) {\n return editor.formatter.match(item.format);\n });\n };\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (_format) {\n return function () {\n return Option.none();\n };\n };\n var updateSelectMenuIcon = function (comp) {\n var match = getMatchingValue();\n var alignment = match.fold(function () {\n return 'left';\n }, function (item) {\n return item.title.toLowerCase();\n });\n emitWith(comp, updateMenuIcon, { icon: 'align-' + alignment });\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function () {\n return updateSelectMenuIcon(comp);\n };\n });\n var setInitialValue = Option.some(function (comp) {\n return updateSelectMenuIcon(comp);\n });\n var dataset = buildBasicStaticDataset(alignMenuItems);\n return {\n tooltip: 'Align',\n icon: Option.some('align-left'),\n isSelectedFor: isSelectedFor,\n getCurrentValue: constant(Option.none()),\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat(editor),\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createAlignSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec(editor));\n };\n var alignSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec(editor));\n editor.ui.registry.addNestedMenuItem('align', {\n text: backstage.shared.providers.translate('Align'),\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultFontsFormats = 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats';\n var systemStackFonts = [\n '-apple-system',\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n 'sans-serif'\n ];\n var splitFonts = function (fontFamily) {\n var fonts = fontFamily.split(/\\s*,\\s*/);\n return map(fonts, function (font) {\n return font.replace(/^['\"]+|['\"]+$/g, '');\n });\n };\n var isSystemFontStack = function (fontFamily) {\n var matchesSystemStack = function () {\n var fonts = splitFonts(fontFamily.toLowerCase());\n return forall(systemStackFonts, function (font) {\n return fonts.indexOf(font.toLowerCase()) > -1;\n });\n };\n return fontFamily.indexOf('-apple-system') === 0 && matchesSystemStack();\n };\n var getSpec$1 = function (editor) {\n var getMatchingValue = function () {\n var getFirstFont = function (fontFamily) {\n return fontFamily ? splitFonts(fontFamily)[0] : '';\n };\n var fontFamily = editor.queryCommandValue('FontName');\n var items = dataset.data;\n var font = fontFamily ? fontFamily.toLowerCase() : '';\n var matchOpt = find(items, function (item) {\n var format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(function () {\n if (isSystemFontStack(font)) {\n return Option.from({\n title: 'System Font',\n format: font\n });\n } else {\n return Option.none();\n }\n });\n return {\n matchOpt: matchOpt,\n font: fontFamily\n };\n };\n var isSelectedFor = function (item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n var getCurrentValue = function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n var getPreviewFor = function (item) {\n return function () {\n return Option.some({\n tag: 'div',\n styleAttr: item.indexOf('dings') === -1 ? 'font-family:' + item : ''\n });\n };\n };\n var onAction = function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontName', false, rawItem.format);\n });\n };\n };\n var updateSelectMenuText = function (comp) {\n var _a = getMatchingValue(), matchOpt = _a.matchOpt, font = _a.font;\n var text = matchOpt.fold(function () {\n return font;\n }, function (item) {\n return item.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function () {\n return updateSelectMenuText(comp);\n };\n });\n var setInitialValue = Option.some(function (comp) {\n return updateSelectMenuText(comp);\n });\n var dataset = buildBasicSettingsDataset(editor, 'font_formats', defaultFontsFormats, Delimiter.SemiColon);\n return {\n tooltip: 'Fonts',\n icon: Option.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: getCurrentValue,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function () {\n return false;\n }\n };\n };\n var createFontSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$1(editor));\n };\n var fontSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$1(editor));\n editor.ui.registry.addNestedMenuItem('fontformats', {\n text: backstage.shared.providers.translate('Fonts'),\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt';\n var legacyFontSizes = {\n '8pt': '1',\n '10pt': '2',\n '12pt': '3',\n '14pt': '4',\n '18pt': '5',\n '24pt': '6',\n '36pt': '7'\n };\n var round$1 = function (number, precision) {\n var factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n var toPt = function (fontSize, precision) {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round$1(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n }\n return fontSize;\n };\n var toLegacy = function (fontSize) {\n return get(legacyFontSizes, fontSize).getOr('');\n };\n var getSpec$2 = function (editor) {\n var getMatchingValue = function () {\n var matchOpt = Option.none();\n var items = dataset.data;\n var px = editor.queryCommandValue('FontSize');\n if (px) {\n var _loop_1 = function (precision) {\n var pt = toPt(px, precision);\n var legacy = toLegacy(pt);\n matchOpt = find(items, function (item) {\n return item.format === px || item.format === pt || item.format === legacy;\n });\n };\n for (var precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n _loop_1(precision);\n }\n }\n return {\n matchOpt: matchOpt,\n px: px\n };\n };\n var isSelectedFor = function (item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n var getCurrentValue = function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n var getPreviewFor = constant(constant(Option.none()));\n var onAction = function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontSize', false, rawItem.format);\n });\n };\n };\n var updateSelectMenuText = function (comp) {\n var _a = getMatchingValue(), matchOpt = _a.matchOpt, px = _a.px;\n var text = matchOpt.fold(function () {\n return px;\n }, function (match) {\n return match.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function () {\n return updateSelectMenuText(comp);\n };\n });\n var setInitialValue = Option.some(function (comp) {\n return updateSelectMenuText(comp);\n });\n var dataset = buildBasicSettingsDataset(editor, 'fontsize_formats', defaultFontsizeFormats, Delimiter.Space);\n return {\n tooltip: 'Font sizes',\n icon: Option.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n getCurrentValue: getCurrentValue,\n onAction: onAction,\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function () {\n return false;\n }\n };\n };\n var createFontsizeSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$2(editor));\n };\n var fontsizeSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$2(editor));\n editor.ui.registry.addNestedMenuItem('fontsizes', {\n text: 'Font sizes',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var findNearest = function (editor, getStyles, parents) {\n var styles = getStyles();\n return findMap(parents, function (parent) {\n return find(styles, function (fmt) {\n return editor.formatter.matchNode(parent, fmt.format);\n });\n }).orThunk(function () {\n if (editor.formatter.match('p')) {\n return Option.some({\n title: 'Paragraph',\n format: 'p'\n });\n }\n return Option.none();\n });\n };\n var getCurrentSelectionParents = function (editor) {\n var currentNode = editor.selection.getStart(true) || editor.getBody();\n return editor.dom.getParents(currentNode, function () {\n return true;\n }, editor.getBody());\n };\n\n var defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre';\n var getSpec$3 = function (editor) {\n var getMatchingValue = function (nodeChangeEvent) {\n return findNearest(editor, function () {\n return dataset.data;\n }, nodeChangeEvent);\n };\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return Option.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styleAttr: editor.formatter.getCssText(format)\n });\n };\n };\n var updateSelectMenuText = function (parents, comp) {\n var detectedFormat = getMatchingValue(parents);\n var text = detectedFormat.fold(function () {\n return 'Paragraph';\n }, function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function (e) {\n return updateSelectMenuText(e.parents, comp);\n };\n });\n var setInitialValue = Option.some(function (comp) {\n var parents = getCurrentSelectionParents(editor);\n updateSelectMenuText(parents, comp);\n });\n var dataset = buildBasicSettingsDataset(editor, 'block_formats', defaultBlocks, Delimiter.SemiColon);\n return {\n tooltip: 'Blocks',\n icon: Option.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: constant(Option.none()),\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat(editor),\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createFormatSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$3(editor));\n };\n var formatSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$3(editor));\n editor.ui.registry.addNestedMenuItem('blockformats', {\n text: 'Blocks',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var getSpec$4 = function (editor, dataset) {\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return fmt !== undefined ? Option.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styleAttr: editor.formatter.getCssText(format)\n }) : Option.none();\n };\n };\n var updateSelectMenuText = function (parents, comp) {\n var getFormatItems = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind(subs, getFormatItems) : [{\n title: fmt.title,\n format: fmt.format\n }];\n };\n var flattenedItems = bind(getStyleFormats(editor), getFormatItems);\n var detectedFormat = findNearest(editor, function () {\n return flattenedItems;\n }, parents);\n var text = detectedFormat.fold(function () {\n return 'Paragraph';\n }, function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function (e) {\n return updateSelectMenuText(e.parents, comp);\n };\n });\n var setInitialValue = Option.some(function (comp) {\n var parents = getCurrentSelectionParents(editor);\n updateSelectMenuText(parents, comp);\n });\n return {\n tooltip: 'Formats',\n icon: Option.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: constant(Option.none()),\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat(editor),\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n shouldHide: editor.getParam('style_formats_autohide', false, 'boolean'),\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n },\n dataset: dataset\n };\n };\n var createStyleSelect = function (editor, backstage) {\n var dataset = __assign({ type: 'advanced' }, backstage.styleselect);\n return createSelectButton(editor, backstage, getSpec$4(editor, dataset));\n };\n var styleSelectMenu = function (editor, backstage) {\n var dataset = __assign({ type: 'advanced' }, backstage.styleselect);\n var menuItems = createMenuItems(editor, backstage, getSpec$4(editor, dataset));\n editor.ui.registry.addNestedMenuItem('formats', {\n text: 'Formats',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultToolbar = [\n {\n name: 'history',\n items: [\n 'undo',\n 'redo'\n ]\n },\n {\n name: 'styles',\n items: ['styleselect']\n },\n {\n name: 'formatting',\n items: [\n 'bold',\n 'italic'\n ]\n },\n {\n name: 'alignment',\n items: [\n 'alignleft',\n 'aligncenter',\n 'alignright',\n 'alignjustify'\n ]\n },\n {\n name: 'indentation',\n items: [\n 'outdent',\n 'indent'\n ]\n },\n {\n name: 'permanent pen',\n items: ['permanentpen']\n },\n {\n name: 'comments',\n items: ['addcomment']\n }\n ];\n var renderFromBridge = function (bridgeBuilder, render) {\n return function (spec, extras) {\n var internal = bridgeBuilder(spec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return render(internal, extras);\n };\n };\n var types = {\n button: renderFromBridge(createToolbarButton, function (s, extras) {\n return renderToolbarButton(s, extras.backstage.shared.providers);\n }),\n togglebutton: renderFromBridge(createToggleButton, function (s, extras) {\n return renderToolbarToggleButton(s, extras.backstage.shared.providers);\n }),\n menubutton: renderFromBridge(createMenuButton, function (s, extras) {\n return renderMenuButton(s, 'tox-tbtn', extras.backstage, Option.none());\n }),\n splitbutton: renderFromBridge(createSplitButton, function (s, extras) {\n return renderSplitButton(s, extras.backstage.shared);\n }),\n styleSelectButton: function (editor, extras) {\n return createStyleSelect(editor, extras.backstage);\n },\n fontsizeSelectButton: function (editor, extras) {\n return createFontsizeSelect(editor, extras.backstage);\n },\n fontSelectButton: function (editor, extras) {\n return createFontSelect(editor, extras.backstage);\n },\n formatButton: function (editor, extras) {\n return createFormatSelect(editor, extras.backstage);\n },\n alignMenuButton: function (editor, extras) {\n return createAlignSelect(editor, extras.backstage);\n }\n };\n var extractFrom = function (spec, extras) {\n return get(types, spec.type).fold(function () {\n domGlobals.console.error('skipping button defined by', spec);\n return Option.none();\n }, function (render) {\n return Option.some(render(spec, extras));\n });\n };\n var bespokeButtons = {\n styleselect: types.styleSelectButton,\n fontsizeselect: types.fontsizeSelectButton,\n fontselect: types.fontSelectButton,\n formatselect: types.formatButton,\n align: types.alignMenuButton\n };\n var removeUnusedDefaults = function (buttons) {\n var filteredItemGroups = map(defaultToolbar, function (group) {\n var items = filter(group.items, function (subItem) {\n return has(buttons, subItem) || has(bespokeButtons, subItem);\n });\n return {\n name: group.name,\n items: items\n };\n });\n return filter(filteredItemGroups, function (group) {\n return group.items.length > 0;\n });\n };\n var convertStringToolbar = function (strToolbar) {\n var groupsStrings = strToolbar.split('|');\n return map(groupsStrings, function (g) {\n return { items: g.trim().split(' ') };\n });\n };\n var isToolbarGroupSettingArray = function (toolbar) {\n return isArrayOf(toolbar, function (t) {\n return has(t, 'name') && has(t, 'items');\n });\n };\n var createToolbar = function (toolbarConfig) {\n var toolbar = toolbarConfig.toolbar;\n var buttons = toolbarConfig.buttons;\n if (toolbar === false) {\n return [];\n } else if (toolbar === undefined || toolbar === true) {\n return removeUnusedDefaults(buttons);\n } else if (isString(toolbar)) {\n return convertStringToolbar(toolbar);\n } else if (isToolbarGroupSettingArray(toolbar)) {\n return toolbar;\n } else {\n domGlobals.console.error('Toolbar type should be string, string[], boolean or ToolbarGroup[]');\n return [];\n }\n };\n var lookupButton = function (editor, buttons, toolbarItem, extras, prefixes) {\n return get(buttons, toolbarItem.toLowerCase()).orThunk(function () {\n return prefixes.bind(function (ps) {\n return findMap(ps, function (prefix) {\n return get(buttons, prefix + toolbarItem.toLowerCase());\n });\n });\n }).fold(function () {\n return get(bespokeButtons, toolbarItem.toLowerCase()).map(function (r) {\n return r(editor, extras);\n }).orThunk(function () {\n return Option.none();\n });\n }, function (spec) {\n return extractFrom(spec, extras);\n });\n };\n var identifyButtons = function (editor, toolbarConfig, extras, prefixes) {\n var toolbarGroups = createToolbar(toolbarConfig);\n var groups = map(toolbarGroups, function (group) {\n var items = bind(group.items, function (toolbarItem) {\n return toolbarItem.trim().length === 0 ? [] : lookupButton(editor, toolbarConfig.buttons, toolbarItem, extras, prefixes).toArray();\n });\n return {\n title: Option.from(editor.translate(group.name)),\n items: items\n };\n });\n return filter(groups, function (group) {\n return group.items.length > 0;\n });\n };\n\n var bubbleSize = 12;\n var bubbleAlignments$1 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top']\n };\n var anchorOverrides = {\n maxHeightFunction: expandable(),\n maxWidthFunction: expandable$1()\n };\n var desktopAnchorSpecLayouts = {\n onLtr: function () {\n return [\n north$1,\n south$1,\n northeast$1,\n southeast$1,\n northwest$1,\n southwest$1,\n north$3,\n south$3,\n northeast$3,\n southeast$3,\n northwest$3,\n southwest$3\n ];\n },\n onRtl: function () {\n return [\n north$1,\n south$1,\n northwest$1,\n southwest$1,\n northeast$1,\n southeast$1,\n north$3,\n south$3,\n northwest$3,\n southwest$3,\n northeast$3,\n southeast$3\n ];\n }\n };\n var mobileAnchorSpecLayouts = {\n onLtr: function () {\n return [\n south$1,\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n north$1,\n north$3,\n south$3,\n northeast$3,\n southeast$3,\n northwest$3,\n southwest$3\n ];\n },\n onRtl: function () {\n return [\n south$1,\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n north$1,\n north$3,\n south$3,\n northwest$3,\n southwest$3,\n northeast$3,\n southeast$3\n ];\n }\n };\n var getAnchorLayout = function (position, isTouch) {\n if (position === 'line') {\n return {\n bubble: nu$8(bubbleSize, 0, bubbleAlignments$1),\n layouts: {\n onLtr: function () {\n return [east$1];\n },\n onRtl: function () {\n return [west$1];\n }\n },\n overrides: anchorOverrides\n };\n } else {\n return {\n bubble: nu$8(0, bubbleSize, bubbleAlignments$1),\n layouts: isTouch ? mobileAnchorSpecLayouts : desktopAnchorSpecLayouts,\n overrides: anchorOverrides\n };\n }\n };\n var register$4 = function (editor, registryContextToolbars, sink, extras) {\n var isTouch = detect$3().deviceType.isTouch;\n var contextbar = build$1(renderContextToolbar({\n sink: sink,\n onEscape: function () {\n editor.focus();\n return Option.some(true);\n }\n }));\n var getBounds = function () {\n return getContextToolbarBounds(editor);\n };\n var isRangeOverlapping = function (aTop, aBottom, bTop, bBottom) {\n return Math.max(aTop, bTop) <= Math.min(aBottom, bBottom);\n };\n var getLastElementVerticalBound = function () {\n var nodeBounds = lastElement.get().map(function (ele) {\n return ele.getBoundingClientRect();\n }).getOrThunk(function () {\n return editor.selection.getRng().getBoundingClientRect();\n });\n var diffTop = editor.inline ? get$8().top() : absolute$1(Element.fromDom(editor.getBody())).y();\n return {\n y: nodeBounds.top + diffTop,\n bottom: nodeBounds.bottom + diffTop\n };\n };\n var shouldContextToolbarHide = function () {\n if (isTouch() && extras.backstage.isContextMenuOpen()) {\n return true;\n }\n var lastElementBounds = getLastElementVerticalBound();\n var contextToolbarBounds = getBounds();\n return !isRangeOverlapping(lastElementBounds.y, lastElementBounds.bottom, contextToolbarBounds.y(), contextToolbarBounds.bottom());\n };\n var forceHide = function () {\n InlineView.hide(contextbar);\n };\n var hideOrRepositionIfNecessary = function () {\n lastAnchor.get().each(function (anchor) {\n var contextBarEle = contextbar.element();\n remove$6(contextBarEle, 'display');\n if (shouldContextToolbarHide()) {\n set$2(contextBarEle, 'display', 'none');\n } else {\n Positioning.positionWithinBounds(sink, anchor, contextbar, Option.some(getBounds()));\n }\n });\n };\n var lastAnchor = Cell(Option.none());\n var lastElement = Cell(Option.none());\n var timer = Cell(null);\n var wrapInPopDialog = function (toolbarSpec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-pop__dialog']\n },\n components: [toolbarSpec],\n behaviours: derive$1([\n Keying.config({ mode: 'acyclic' }),\n config('pop-dialog-wrap-events', [\n runOnAttached(function (comp) {\n editor.shortcuts.add('ctrl+F9', 'focus statusbar', function () {\n return Keying.focusIn(comp);\n });\n }),\n runOnDetached(function (comp) {\n editor.shortcuts.remove('ctrl+F9');\n })\n ])\n ])\n };\n };\n var getScopes = cached(function () {\n return ToolbarScopes.categorise(registryContextToolbars, function (toolbarApi) {\n var alloySpec = buildToolbar(toolbarApi);\n emitWith(contextbar, forwardSlideEvent, { forwardContents: wrapInPopDialog(alloySpec) });\n });\n });\n var buildToolbar = function (ctx) {\n var buttons = editor.ui.registry.getAll().buttons;\n var toolbarType = getToolbarDrawer(editor) === ToolbarDrawer.scrolling ? ToolbarDrawer.scrolling : ToolbarDrawer.default;\n var scopes = getScopes();\n return ctx.type === 'contexttoolbar' ? function () {\n var allButtons = merge(buttons, scopes.formNavigators);\n var initGroups = identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items\n }, extras, Option.some(['form:']));\n return renderToolbar({\n type: toolbarType,\n uid: generate$1('context-toolbar'),\n initGroups: initGroups,\n onEscape: Option.none,\n cyclicKeying: true,\n backstage: extras.backstage,\n getSink: function () {\n return Result.error('');\n }\n });\n }() : function () {\n return ContextForm.renderContextForm(toolbarType, ctx, extras.backstage);\n }();\n };\n editor.on(showContextToolbarEvent, function (e) {\n var scopes = getScopes();\n readOptFrom$1(scopes.lookupTable, e.toolbarKey).each(function (ctx) {\n launchContext(ctx, e.target === editor ? Option.none() : Option.some(e));\n InlineView.getContent(contextbar).each(Keying.focusIn);\n });\n });\n var getAnchor = function (position, element) {\n var anchorage = position === 'node' ? extras.backstage.shared.anchors.node(element) : extras.backstage.shared.anchors.cursor();\n return deepMerge(anchorage, getAnchorLayout(position, isTouch()));\n };\n var launchContext = function (toolbarApi, elem) {\n clearTimer();\n if (isTouch() && extras.backstage.isContextMenuOpen()) {\n return;\n }\n var toolbarSpec = buildToolbar(toolbarApi);\n var sElem = elem.map(Element.fromDom);\n var anchor = getAnchor(toolbarApi.position, sElem);\n lastAnchor.set(Option.some(anchor));\n lastElement.set(elem);\n var contextBarEle = contextbar.element();\n remove$6(contextBarEle, 'display');\n InlineView.showWithinBounds(contextbar, anchor, wrapInPopDialog(toolbarSpec), function () {\n return Option.some(getBounds());\n });\n if (shouldContextToolbarHide()) {\n set$2(contextBarEle, 'display', 'none');\n }\n };\n var launchContextToolbar = function () {\n var scopes = getScopes();\n ToolbarLookup.lookup(scopes, editor).fold(function () {\n lastAnchor.set(Option.none());\n InlineView.hide(contextbar);\n }, function (info) {\n launchContext(info.toolbarApi, Option.some(info.elem.dom()));\n });\n };\n var clearTimer = function () {\n var current = timer.get();\n if (current !== null) {\n global$2.clearTimeout(current);\n timer.set(null);\n }\n };\n var resetTimer = function (t) {\n clearTimer();\n timer.set(t);\n };\n editor.on('init', function () {\n editor.on(hideContextToolbarEvent, forceHide);\n editor.on('ScrollContent ScrollWindow longpress', hideOrRepositionIfNecessary);\n editor.on('click keyup SetContent ObjectResized ResizeEditor', function (e) {\n resetTimer(global$2.setEditorTimeout(editor, launchContextToolbar, 0));\n });\n editor.on('focusout', function (e) {\n global$2.setEditorTimeout(editor, function () {\n if (search(sink.element()).isNone() && search(contextbar.element()).isNone()) {\n lastAnchor.set(Option.none());\n InlineView.hide(contextbar);\n }\n }, 0);\n });\n editor.on('SwitchMode', function () {\n if (editor.readonly) {\n lastAnchor.set(Option.none());\n InlineView.hide(contextbar);\n }\n });\n editor.on('NodeChange', function (e) {\n search(contextbar.element()).fold(function () {\n resetTimer(global$2.setEditorTimeout(editor, launchContextToolbar, 0));\n }, function (_) {\n });\n });\n });\n };\n var ContextToolbar = { register: register$4 };\n\n var setup$4 = function (editor, mothership, uiMothership) {\n var broadcastEvent = function (name, evt) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastEvent(name, evt);\n });\n };\n var broadcastOn = function (channel, message) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastOn([channel], message);\n });\n };\n var fireDismissPopups = function (evt) {\n return broadcastOn(dismissPopups(), { target: evt.target() });\n };\n var onTouchstart = bind$3(Element.fromDom(domGlobals.document), 'touchstart', fireDismissPopups);\n var onTouchmove = bind$3(Element.fromDom(domGlobals.document), 'touchmove', function (evt) {\n return broadcastEvent(documentTouchmove(), evt);\n });\n var onTouchend = bind$3(Element.fromDom(domGlobals.document), 'touchend', function (evt) {\n return broadcastEvent(documentTouchend(), evt);\n });\n var onMousedown = bind$3(Element.fromDom(domGlobals.document), 'mousedown', fireDismissPopups);\n var onMouseup = bind$3(Element.fromDom(domGlobals.document), 'mouseup', function (evt) {\n if (evt.raw().button === 0) {\n broadcastOn(mouseReleased(), { target: evt.target() });\n }\n });\n var onContentClick = function (raw) {\n return broadcastOn(dismissPopups(), { target: Element.fromDom(raw.target) });\n };\n var onContentMouseup = function (raw) {\n if (raw.button === 0) {\n broadcastOn(mouseReleased(), { target: Element.fromDom(raw.target) });\n }\n };\n var onWindowScroll = function (evt) {\n return broadcastEvent(windowScroll(), fromRawEvent$1(evt));\n };\n var onWindowResize = function (evt) {\n broadcastOn(repositionPopups(), {});\n broadcastEvent(windowResize(), fromRawEvent$1(evt));\n };\n var onEditorResize = function () {\n return broadcastOn(repositionPopups(), {});\n };\n editor.on('PostRender', function () {\n editor.on('click', onContentClick);\n editor.on('tap', onContentClick);\n editor.on('mouseup', onContentMouseup);\n editor.on('ScrollWindow', onWindowScroll);\n editor.on('ResizeWindow', onWindowResize);\n editor.on('ResizeEditor', onEditorResize);\n });\n editor.on('remove', function () {\n editor.off('click', onContentClick);\n editor.off('tap', onContentClick);\n editor.off('mouseup', onContentMouseup);\n editor.off('ScrollWindow', onWindowScroll);\n editor.off('ResizeWindow', onWindowResize);\n editor.off('ResizeEditor', onEditorResize);\n onMousedown.unbind();\n onTouchstart.unbind();\n onTouchmove.unbind();\n onTouchend.unbind();\n onMouseup.unbind();\n });\n editor.on('detach', function () {\n detachSystem(mothership);\n detachSystem(uiMothership);\n mothership.destroy();\n uiMothership.destroy();\n });\n };\n var Events$1 = { setup: setup$4 };\n\n var parts$c = AlloyParts;\n var partType$1 = PartType;\n\n var schema$q = constant([\n defaulted$1('shell', false),\n strict$1('makeItem'),\n defaulted$1('setupItem', noop),\n SketchBehaviours.field('listBehaviours', [Replacing])\n ]);\n var customListDetail = function (detail) {\n return { behaviours: derive$1([Replacing.config({})]) };\n };\n var itemsPart = optional({\n name: 'items',\n overrides: customListDetail\n });\n var parts$d = constant([itemsPart]);\n var name$2 = constant('CustomList');\n\n var factory$e = function (detail, components, spec, external) {\n var setItems = function (list, items) {\n getListContainer(list).fold(function () {\n domGlobals.console.error('Custom List was defined to not be a shell, but no item container was specified in components');\n throw new Error('Custom List was defined to not be a shell, but no item container was specified in components');\n }, function (container) {\n var itemComps = Replacing.contents(container);\n var numListsRequired = items.length;\n var numListsToAdd = numListsRequired - itemComps.length;\n var itemsToAdd = numListsToAdd > 0 ? range(numListsToAdd, function () {\n return detail.makeItem();\n }) : [];\n var itemsToRemove = itemComps.slice(numListsRequired);\n each(itemsToRemove, function (item) {\n return Replacing.remove(container, item);\n });\n each(itemsToAdd, function (item) {\n return Replacing.append(container, item);\n });\n var builtLists = Replacing.contents(container);\n each(builtLists, function (item, i) {\n detail.setupItem(list, item, items[i], i);\n });\n });\n };\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n var getListContainer = function (component) {\n return detail.shell ? Option.some(component) : getPart(component, detail, 'items');\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.listBehaviours, extra.behaviours),\n apis: { setItems: setItems }\n };\n };\n var CustomList = composite$1({\n name: name$2(),\n configFields: schema$q(),\n partFields: parts$d(),\n factory: factory$e,\n apis: {\n setItems: function (apis, list, items) {\n apis.setItems(list, items);\n }\n }\n });\n\n var getOrigin = function (element) {\n var isFixed = getRaw(element, 'position').is('fixed');\n var offsetParent$1 = isFixed ? Option.none() : offsetParent(element);\n return offsetParent$1.orThunk(function () {\n var marker = Element.fromTag('span');\n before(element, marker);\n var offsetParent$1 = offsetParent(marker);\n remove(marker);\n return offsetParent$1;\n }).map(absolute).getOrThunk(function () {\n return Position(0, 0);\n });\n };\n\n var adt$c = Adt.generate([\n {\n offset: [\n 'x',\n 'y'\n ]\n },\n {\n absolute: [\n 'x',\n 'y'\n ]\n },\n {\n fixed: [\n 'x',\n 'y'\n ]\n }\n ]);\n var subtract = function (change) {\n return function (point) {\n return point.translate(-change.left(), -change.top());\n };\n };\n var add$4 = function (change) {\n return function (point) {\n return point.translate(change.left(), change.top());\n };\n };\n var transform$1 = function (changes) {\n return function (x, y) {\n return foldl(changes, function (rest, f) {\n return f(rest);\n }, Position(x, y));\n };\n };\n var asFixed = function (coord, scroll, origin) {\n return coord.fold(transform$1([\n add$4(origin),\n subtract(scroll)\n ]), transform$1([subtract(scroll)]), transform$1([]));\n };\n var asAbsolute = function (coord, scroll, origin) {\n return coord.fold(transform$1([add$4(origin)]), transform$1([]), transform$1([add$4(scroll)]));\n };\n var asOffset = function (coord, scroll, origin) {\n return coord.fold(transform$1([]), transform$1([subtract(origin)]), transform$1([\n add$4(scroll),\n subtract(origin)\n ]));\n };\n var withinRange = function (coord1, coord2, xRange, yRange, scroll, origin) {\n var a1 = asAbsolute(coord1, scroll, origin);\n var a2 = asAbsolute(coord2, scroll, origin);\n return Math.abs(a1.left() - a2.left()) <= xRange && Math.abs(a1.top() - a2.top()) <= yRange;\n };\n var getDeltas = function (coord1, coord2, xRange, yRange, scroll, origin) {\n var a1 = asAbsolute(coord1, scroll, origin);\n var a2 = asAbsolute(coord2, scroll, origin);\n var left = Math.abs(a1.left() - a2.left());\n var top = Math.abs(a1.top() - a2.top());\n return Position(left, top);\n };\n var toStyles = function (coord, scroll, origin) {\n return coord.fold(function (x, y) {\n return {\n position: 'absolute',\n left: x + 'px',\n top: y + 'px'\n };\n }, function (x, y) {\n return {\n position: 'absolute',\n left: x - origin.left() + 'px',\n top: y - origin.top() + 'px'\n };\n }, function (x, y) {\n return {\n position: 'fixed',\n left: x + 'px',\n top: y + 'px'\n };\n });\n };\n var translate$2 = function (coord, deltaX, deltaY) {\n return coord.fold(function (x, y) {\n return adt$c.offset(x + deltaX, y + deltaY);\n }, function (x, y) {\n return adt$c.absolute(x + deltaX, y + deltaY);\n }, function (x, y) {\n return adt$c.fixed(x + deltaX, y + deltaY);\n });\n };\n var absorb = function (partialCoord, originalCoord, scroll, origin) {\n var absorbOne = function (stencil, nu) {\n return function (optX, optY) {\n var original = stencil(originalCoord, scroll, origin);\n return nu(optX.getOr(original.left()), optY.getOr(original.top()));\n };\n };\n return partialCoord.fold(absorbOne(asOffset, adt$c.offset), absorbOne(asAbsolute, adt$c.absolute), absorbOne(asFixed, adt$c.fixed));\n };\n var offset = adt$c.offset;\n var absolute$3 = adt$c.absolute;\n var fixed$1 = adt$c.fixed;\n\n var morphAdt = Adt.generate([\n { static: [] },\n {\n absolute: [\n 'x',\n 'y'\n ]\n },\n {\n fixed: [\n 'x',\n 'y'\n ]\n }\n ]);\n var appear = function (component, contextualInfo) {\n var elem = component.element();\n add$2(elem, contextualInfo.transitionClass);\n remove$4(elem, contextualInfo.fadeOutClass);\n add$2(elem, contextualInfo.fadeInClass);\n contextualInfo.onShow(component);\n };\n var disappear = function (component, contextualInfo) {\n var elem = component.element();\n add$2(elem, contextualInfo.transitionClass);\n remove$4(elem, contextualInfo.fadeInClass);\n add$2(elem, contextualInfo.fadeOutClass);\n contextualInfo.onHide(component);\n };\n var isPartiallyVisible = function (box, viewport) {\n return box.y() < viewport.bottom() && box.bottom() > viewport.y();\n };\n var isTopCompletelyVisible = function (box, viewport) {\n return box.y() >= viewport.y();\n };\n var isBottomCompletelyVisible = function (box, viewport) {\n return box.bottom() <= viewport.bottom();\n };\n var isVisibleForModes = function (modes, box, viewport) {\n return forall(modes, function (mode) {\n switch (mode) {\n case 'bottom':\n return isBottomCompletelyVisible(box, viewport);\n case 'top':\n return isTopCompletelyVisible(box, viewport);\n }\n });\n };\n var getAttr = function (elem, attr) {\n return has$1(elem, attr) ? Option.some(parseInt(get$2(elem, attr), 10)) : Option.none();\n };\n var getPrior = function (elem, dockInfo) {\n return getAttr(elem, dockInfo.leftAttr).bind(function (left) {\n return getAttr(elem, dockInfo.topAttr).map(function (top) {\n var w = get$7(elem);\n var h = get$6(elem);\n return bounds$1(left, top, w, h);\n });\n });\n };\n var setPrior = function (elem, dockInfo, absLeft, absTop, position) {\n set$1(elem, dockInfo.leftAttr, absLeft);\n set$1(elem, dockInfo.topAttr, absTop);\n set$1(elem, dockInfo.positionAttr, position);\n };\n var clearPrior = function (elem, dockInfo) {\n remove$1(elem, dockInfo.leftAttr);\n remove$1(elem, dockInfo.topAttr);\n remove$1(elem, dockInfo.positionAttr);\n };\n var revertToOriginal = function (elem, dockInfo, box) {\n var position = get$2(elem, dockInfo.positionAttr);\n clearPrior(elem, dockInfo);\n switch (position) {\n case 'static':\n return Option.some(morphAdt.static());\n case 'absolute':\n return Option.some(morphAdt.absolute(box.x(), box.y()));\n default:\n return Option.none();\n }\n };\n var morphToOriginal = function (elem, dockInfo, viewport) {\n return getPrior(elem, dockInfo).filter(function (box) {\n return isVisibleForModes(dockInfo.modes, box, viewport);\n }).bind(function (box) {\n return revertToOriginal(elem, dockInfo, box);\n });\n };\n var morphToFixed = function (elem, dockInfo, viewport, scroll, lazyOrigin) {\n var box$1 = box(elem);\n if (!isVisibleForModes(dockInfo.modes, box$1, viewport)) {\n var origin = lazyOrigin();\n var position = get$4(elem, 'position');\n setPrior(elem, dockInfo, box$1.x(), box$1.y(), position);\n var coord = absolute$3(box$1.x(), box$1.y());\n var asFixed$1 = asFixed(coord, scroll, origin);\n var viewportPt = absolute$3(viewport.x(), viewport.y());\n var fixedViewport = asFixed(viewportPt, scroll, origin);\n var fixedY = box$1.y() <= viewport.y() ? fixedViewport.top() : fixedViewport.top() + viewport.height() - box$1.height();\n return Option.some(morphAdt.fixed(asFixed$1.left(), fixedY));\n } else {\n return Option.none();\n }\n };\n var getMorph = function (component, dockInfo, viewport, scroll, lazyOrigin) {\n var elem = component.element();\n var isDocked = getRaw(elem, 'position').is('fixed');\n return isDocked ? morphToOriginal(elem, dockInfo, viewport) : morphToFixed(elem, dockInfo, viewport, scroll, lazyOrigin);\n };\n var getMorphToOriginal = function (component, dockInfo) {\n var elem = component.element();\n return getPrior(elem, dockInfo).bind(function (box) {\n return revertToOriginal(elem, dockInfo, box);\n });\n };\n\n var morphToStatic = function (component, config) {\n each([\n 'left',\n 'top',\n 'position'\n ], function (prop) {\n return remove$6(component.element(), prop);\n });\n config.onUndocked(component);\n };\n var morphToCoord = function (component, config, scroll, origin, morph) {\n var styles = toStyles(morph, scroll, origin);\n setAll$1(component.element(), styles);\n var method = styles.position === 'fixed' ? config.onDocked : config.onUndocked;\n method(component);\n };\n var updateVisibility = function (component, config, state, viewport, morphToDocked) {\n if (morphToDocked === void 0) {\n morphToDocked = false;\n }\n config.contextual.each(function (contextInfo) {\n contextInfo.lazyContext(component).each(function (box) {\n var isVisible = isPartiallyVisible(box, viewport);\n if (isVisible !== state.isVisible()) {\n state.setVisible(isVisible);\n if (morphToDocked && !isVisible) {\n add$3(component.element(), [contextInfo.fadeOutClass]);\n contextInfo.onHide(component);\n } else {\n var method = isVisible ? appear : disappear;\n method(component, contextInfo);\n }\n }\n });\n });\n };\n var refreshInternal = function (component, config, state) {\n var viewport = config.lazyViewport(component);\n var elem = component.element();\n var doc = owner(elem);\n var scroll = get$8(doc);\n var lazyOrigin = cached(function () {\n return getOrigin(elem);\n });\n var isDocked = state.isDocked();\n if (isDocked) {\n updateVisibility(component, config, state, viewport);\n }\n getMorph(component, config, viewport, scroll, lazyOrigin).each(function (morph) {\n state.setDocked(!isDocked);\n morph.fold(function () {\n return morphToStatic(component, config);\n }, function (x, y) {\n return morphToCoord(component, config, scroll, lazyOrigin(), absolute$3(x, y));\n }, function (x, y) {\n updateVisibility(component, config, state, viewport, true);\n morphToCoord(component, config, scroll, lazyOrigin(), fixed$1(x, y));\n });\n });\n };\n var resetInternal = function (component, config, state) {\n var elem = component.element();\n state.setDocked(false);\n getMorphToOriginal(component, config).each(function (morph) {\n morph.fold(function () {\n return morphToStatic(component, config);\n }, function (x, y) {\n var doc = owner(elem);\n var scroll = get$8(doc);\n var origin = getOrigin(elem);\n morphToCoord(component, config, scroll, origin, absolute$3(x, y));\n }, noop);\n });\n state.setVisible(true);\n config.contextual.each(function (contextInfo) {\n remove$5(elem, [\n contextInfo.fadeInClass,\n contextInfo.fadeOutClass,\n contextInfo.transitionClass\n ]);\n contextInfo.onShow(component);\n });\n refresh$4(component, config, state);\n };\n var refresh$4 = function (component, config, state) {\n if (component.getSystem().isConnected()) {\n refreshInternal(component, config, state);\n }\n };\n var reset = function (component, config, state) {\n if (state.isDocked()) {\n resetInternal(component, config, state);\n }\n };\n var isDocked = function (component, config, state) {\n return state.isDocked();\n };\n\n var DockingApis = /*#__PURE__*/Object.freeze({\n refresh: refresh$4,\n reset: reset,\n isDocked: isDocked\n });\n\n var events$f = function (dockInfo, dockState) {\n return derive([\n runOnSource(transitionend(), function (component, simulatedEvent) {\n dockInfo.contextual.each(function (contextInfo) {\n if (has$2(component.element(), contextInfo.transitionClass)) {\n remove$5(component.element(), [\n contextInfo.transitionClass,\n contextInfo.fadeInClass\n ]);\n var notify = dockState.isVisible() ? contextInfo.onShown : contextInfo.onHidden;\n notify(component);\n }\n simulatedEvent.stop();\n });\n }),\n run(windowScroll(), function (component, _) {\n refresh$4(component, dockInfo, dockState);\n }),\n run(windowResize(), function (component, _) {\n reset(component, dockInfo, dockState);\n })\n ]);\n };\n\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n events: events$f\n });\n\n var DockingSchema = [\n optionObjOf('contextual', [\n strictString('fadeInClass'),\n strictString('fadeOutClass'),\n strictString('transitionClass'),\n strictFunction('lazyContext'),\n onHandler('onShow'),\n onHandler('onShown'),\n onHandler('onHide'),\n onHandler('onHidden')\n ]),\n defaultedFunction('lazyViewport', win),\n strictString('leftAttr'),\n strictString('topAttr'),\n strictString('positionAttr'),\n defaultedArrayOf('modes', [\n 'top',\n 'bottom'\n ], string),\n onHandler('onDocked'),\n onHandler('onUndocked')\n ];\n\n var init$b = function () {\n var docked = Cell(false);\n var visible = Cell(true);\n var readState = function () {\n return 'docked: ' + docked.get() + ', visible: ' + visible.get();\n };\n return nu$5({\n isDocked: function () {\n return docked.get();\n },\n setDocked: function (state) {\n return docked.set(state);\n },\n isVisible: function () {\n return visible.get();\n },\n setVisible: function (state) {\n return visible.set(state);\n },\n readState: readState\n });\n };\n\n var DockingState = /*#__PURE__*/Object.freeze({\n init: init$b\n });\n\n var Docking = create$1({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis,\n state: DockingState\n });\n\n var visibility = {\n fadeInClass: 'tox-editor-dock-fadein',\n fadeOutClass: 'tox-editor-dock-fadeout',\n transitionClass: 'tox-editor-dock-transition'\n };\n var editorStickyOnClass = 'tox-tinymce--toolbar-sticky-on';\n var editorStickyOffClass = 'tox-tinymce--toolbar-sticky-off';\n var updateIframeContentFlow = function (header) {\n var elm = header.element();\n parent(elm).each(function (parentElem) {\n if (Docking.isDocked(header)) {\n var parentWidth = get$7(parentElem);\n set$2(elm, 'width', parentWidth + 'px');\n var headerHeight = getOuter$1(elm);\n set$2(parentElem, 'padding-top', headerHeight + 'px');\n } else {\n remove$6(elm, 'width');\n remove$6(parentElem, 'padding-top');\n }\n });\n };\n var updateSinkVisibility = function (sinkElem, visible) {\n if (visible) {\n remove$4(sinkElem, visibility.fadeOutClass);\n add$3(sinkElem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n } else {\n remove$4(sinkElem, visibility.fadeInClass);\n add$3(sinkElem, [\n visibility.fadeOutClass,\n visibility.transitionClass\n ]);\n }\n };\n var updateEditorClasses = function (editor, docked) {\n var editorContainer = Element.fromDom(editor.getContainer());\n if (docked) {\n add$2(editorContainer, editorStickyOnClass);\n remove$4(editorContainer, editorStickyOffClass);\n } else {\n add$2(editorContainer, editorStickyOffClass);\n remove$4(editorContainer, editorStickyOnClass);\n }\n };\n var restoreFocus = function (headerElem, focusedElem) {\n var ownerDoc = owner(focusedElem);\n active(ownerDoc).filter(function (activeElm) {\n return !eq(focusedElem, activeElm);\n }).filter(function (activeElm) {\n return eq(activeElm, Element.fromDom(ownerDoc.dom().body)) || contains$2(headerElem, activeElm);\n }).each(function () {\n return focus$1(focusedElem);\n });\n };\n var findFocusedElem = function (rootElm, lazySink) {\n return search(rootElm).orThunk(function () {\n return lazySink().toOption().bind(function (sink) {\n return search(sink.element());\n });\n });\n };\n var setup$5 = function (editor, lazyHeader) {\n if (!editor.inline) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', function () {\n lazyHeader().each(updateIframeContentFlow);\n });\n editor.on('SkinLoaded', function () {\n lazyHeader().each(Docking.reset);\n });\n editor.on('FullscreenStateChanged', function () {\n lazyHeader().each(Docking.refresh);\n });\n }\n editor.on('PostRender', function () {\n updateEditorClasses(editor, false);\n });\n };\n var isDocked$1 = function (lazyHeader) {\n return lazyHeader().map(Docking.isDocked).getOr(false);\n };\n var getIframeBehaviours = function () {\n var _a;\n return [Receiving.config({ channels: (_a = {}, _a[toolbarHeightChange()] = { onReceive: updateIframeContentFlow }, _a) })];\n };\n var getBehaviours$2 = function (editor, lazySink) {\n var focusedElm = Cell(Option.none());\n var runOnSinkElement = function (f) {\n lazySink().each(function (sink) {\n return f(sink.element());\n });\n };\n var onDockingSwitch = function (comp) {\n if (!editor.inline) {\n updateIframeContentFlow(comp);\n }\n updateEditorClasses(editor, Docking.isDocked(comp));\n comp.getSystem().broadcastOn([repositionPopups()], {});\n lazySink().each(function (sink) {\n return sink.getSystem().broadcastOn([repositionPopups()], {});\n });\n };\n var additionalBehaviours = editor.inline ? [] : getIframeBehaviours();\n return __spreadArrays([\n Focusing.config({}),\n Docking.config({\n leftAttr: 'data-dock-left',\n topAttr: 'data-dock-top',\n positionAttr: 'data-dock-pos',\n contextual: __assign({\n lazyContext: function (comp) {\n var headerHeight = getOuter$1(comp.element());\n var container = editor.inline ? editor.getContentAreaContainer() : editor.getContainer();\n var box$1 = box(Element.fromDom(container));\n var boxHeight = box$1.height() - headerHeight;\n return Option.some(bounds$1(box$1.x(), box$1.y(), box$1.width(), boxHeight));\n },\n onShow: function () {\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, true);\n });\n },\n onShown: function (comp) {\n runOnSinkElement(function (elem) {\n return remove$5(elem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n });\n focusedElm.get().each(function (elem) {\n restoreFocus(comp.element(), elem);\n focusedElm.set(Option.none());\n });\n },\n onHide: function (comp) {\n focusedElm.set(findFocusedElem(comp.element(), lazySink));\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, false);\n });\n },\n onHidden: function () {\n runOnSinkElement(function (elem) {\n return remove$5(elem, [visibility.transitionClass]);\n });\n }\n }, visibility),\n modes: ['top'],\n onDocked: onDockingSwitch,\n onUndocked: onDockingSwitch\n })\n ], additionalBehaviours);\n };\n\n var StickyHeader = /*#__PURE__*/Object.freeze({\n setup: setup$5,\n isDocked: isDocked$1,\n getBehaviours: getBehaviours$2\n });\n\n var setup$6 = noop;\n var isDocked$2 = never;\n var getBehaviours$3 = constant([]);\n\n var StaticHeader = /*#__PURE__*/Object.freeze({\n setup: setup$6,\n isDocked: isDocked$2,\n getBehaviours: getBehaviours$3\n });\n\n var renderHeader = function (spec) {\n var editor = spec.editor;\n var getBehaviours = spec.sticky ? getBehaviours$2 : getBehaviours$3;\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: spec.components,\n behaviours: derive$1(getBehaviours(editor, spec.getSink))\n };\n };\n\n var factory$f = function (detail, spec) {\n var setMenus = function (comp, menus) {\n var newMenus = map(menus, function (m) {\n var buttonSpec = {\n type: 'menubutton',\n text: m.text,\n fetch: function (callback) {\n callback(m.getItems());\n }\n };\n var internal = createMenuButton(buttonSpec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return renderMenuButton(internal, 'tox-mbtn', spec.backstage, Option.some('menuitem'));\n });\n Replacing.set(comp, newMenus);\n };\n var apis = {\n focus: Keying.focusIn,\n setMenus: setMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [],\n behaviours: derive$1([\n Replacing.config({}),\n config('menubar-events', [\n runOnAttached(function (component) {\n detail.onSetup(component);\n }),\n run(mouseover(), function (comp, se) {\n descendant$1(comp.element(), '.' + 'tox-mbtn--active').each(function (activeButton) {\n closest$3(se.event().target(), '.' + 'tox-mbtn').each(function (hoveredButton) {\n if (!eq(activeButton, hoveredButton)) {\n comp.getSystem().getByDom(activeButton).each(function (activeComp) {\n comp.getSystem().getByDom(hoveredButton).each(function (hoveredComp) {\n Dropdown.expand(hoveredComp);\n Dropdown.close(activeComp);\n Focusing.focus(hoveredComp);\n });\n });\n }\n });\n });\n }),\n run(focusShifted(), function (comp, se) {\n se.event().prevFocus().bind(function (prev) {\n return comp.getSystem().getByDom(prev).toOption();\n }).each(function (prev) {\n se.event().newFocus().bind(function (nu) {\n return comp.getSystem().getByDom(nu).toOption();\n }).each(function (nu) {\n if (Dropdown.isOpen(prev)) {\n Dropdown.expand(nu);\n Dropdown.close(prev);\n }\n });\n });\n })\n ]),\n Keying.config({\n mode: 'flow',\n selector: '.' + 'tox-mbtn',\n onEscape: function (comp) {\n detail.onEscape(comp);\n return Option.some(true);\n }\n }),\n Tabstopping.config({})\n ]),\n apis: apis,\n domModification: { attributes: { role: 'menubar' } }\n };\n };\n var SilverMenubar = single$2({\n factory: factory$f,\n name: 'silver.Menubar',\n configFields: [\n strict$1('dom'),\n strict$1('uid'),\n strict$1('onEscape'),\n strict$1('backstage'),\n defaulted$1('onSetup', noop)\n ],\n apis: {\n focus: function (apis, comp) {\n apis.focus(comp);\n },\n setMenus: function (apis, comp, menus) {\n apis.setMenus(comp, menus);\n }\n }\n });\n\n var owner$4 = 'container';\n var schema$r = [field$1('slotBehaviours', [])];\n var getPartName$1 = function (name) {\n return '<alloy.field.' + name + '>';\n };\n var sketch$2 = function (sSpec) {\n var parts = function () {\n var record = [];\n var slot = function (name, config) {\n record.push(name);\n return generateOne(owner$4, getPartName$1(name), config);\n };\n return {\n slot: slot,\n record: function () {\n return record;\n }\n };\n }();\n var spec = sSpec(parts);\n var partNames = parts.record();\n var fieldParts = map(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName$1(n)\n });\n });\n return composite(owner$4, schema$r, fieldParts, make$7, spec);\n };\n var make$7 = function (detail, components, spec) {\n var getSlotNames = function (_) {\n return getAllPartNames(detail);\n };\n var getSlot = function (container, key) {\n return getPart(container, detail, key);\n };\n var onSlot = function (f, def) {\n if (def === void 0) {\n def = undefined;\n }\n return function (container, key) {\n return getPart(container, detail, key).map(function (slot) {\n return f(slot, key);\n }).getOr(def);\n };\n };\n var onSlots = function (f) {\n return function (container, keys) {\n each(keys, function (key) {\n return f(container, key);\n });\n };\n };\n var doShowing = function (comp, key) {\n return get$2(comp.element(), 'aria-hidden') !== 'true';\n };\n var doShow = function (comp, key) {\n if (!doShowing(comp)) {\n var element = comp.element();\n remove$6(element, 'display');\n remove$1(element, 'aria-hidden');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: true\n });\n }\n };\n var doHide = function (comp, key) {\n if (doShowing(comp)) {\n var element = comp.element();\n set$2(element, 'display', 'none');\n set$1(element, 'aria-hidden', 'true');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: false\n });\n }\n };\n var isShowing = onSlot(doShowing, false);\n var hideSlot = onSlot(doHide);\n var hideSlots = onSlots(hideSlot);\n var hideAllSlots = function (container) {\n return hideSlots(container, getSlotNames());\n };\n var showSlot = onSlot(doShow);\n var apis = {\n getSlotNames: getSlotNames,\n getSlot: getSlot,\n isShowing: isShowing,\n hideSlot: hideSlot,\n hideAllSlots: hideAllSlots,\n showSlot: showSlot\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: get$b(detail.slotBehaviours),\n apis: apis\n };\n };\n var slotApis = map$1({\n getSlotNames: function (apis, c) {\n return apis.getSlotNames(c);\n },\n getSlot: function (apis, c, key) {\n return apis.getSlot(c, key);\n },\n isShowing: function (apis, c, key) {\n return apis.isShowing(c, key);\n },\n hideSlot: function (apis, c, key) {\n return apis.hideSlot(c, key);\n },\n hideAllSlots: function (apis, c) {\n return apis.hideAllSlots(c);\n },\n showSlot: function (apis, c, key) {\n return apis.showSlot(c, key);\n }\n }, makeApi);\n var SlotContainer = __assign(__assign({}, slotApis), { sketch: sketch$2 });\n\n var sidebarSchema = objOf([\n optionString('icon'),\n optionString('tooltip'),\n defaultedFunction('onShow', noop),\n defaultedFunction('onHide', noop),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ]);\n var createSidebar = function (spec) {\n return asRaw('sidebar', sidebarSchema, spec);\n };\n\n var setup$7 = function (editor) {\n var sidebars = editor.ui.registry.getAll().sidebars;\n each(keys(sidebars), function (name) {\n var spec = sidebars[name];\n var isActive = function () {\n return Option.from(editor.queryCommandValue('ToggleSidebar')).is(name);\n };\n editor.ui.registry.addToggleButton(name, {\n icon: spec.icon,\n tooltip: spec.tooltip,\n onAction: function (buttonApi) {\n editor.execCommand('ToggleSidebar', false, name);\n buttonApi.setActive(isActive());\n },\n onSetup: function (buttonApi) {\n var handleToggle = function () {\n return buttonApi.setActive(isActive());\n };\n editor.on('ToggleSidebar', handleToggle);\n return function () {\n editor.off('ToggleSidebar', handleToggle);\n };\n }\n });\n });\n };\n var getApi = function (comp) {\n return {\n element: function () {\n return comp.element().dom();\n }\n };\n };\n var makePanels = function (parts, panelConfigs) {\n var specs = map(keys(panelConfigs), function (name) {\n var spec = panelConfigs[name];\n var bridged = getOrDie(createSidebar(spec));\n return {\n name: name,\n getApi: getApi,\n onSetup: bridged.onSetup,\n onShow: bridged.onShow,\n onHide: bridged.onHide\n };\n });\n return map(specs, function (spec) {\n var editorOffCell = Cell(noop);\n return parts.slot(spec.name, {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane']\n },\n behaviours: SimpleBehaviours.unnamedEvents([\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell),\n run(slotVisibility(), function (sidepanel, se) {\n var data = se.event();\n var optSidePanelSpec = find(specs, function (config) {\n return config.name === data.name();\n });\n optSidePanelSpec.each(function (sidePanelSpec) {\n var handler = data.visible() ? sidePanelSpec.onShow : sidePanelSpec.onHide;\n handler(sidePanelSpec.getApi(sidepanel));\n });\n })\n ])\n });\n });\n };\n var makeSidebar = function (panelConfigs) {\n return SlotContainer.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane-container']\n },\n components: makePanels(parts, panelConfigs),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(function (slotContainer) {\n return SlotContainer.hideAllSlots(slotContainer);\n })])\n };\n });\n };\n var setSidebar = function (sidebar, panelConfigs) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n return Replacing.set(slider, [makeSidebar(panelConfigs)]);\n });\n };\n var toggleSidebar = function (sidebar, name) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(function (slotContainer) {\n if (Sliding.hasGrown(slider)) {\n if (SlotContainer.isShowing(slotContainer, name)) {\n Sliding.shrink(slider);\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n }\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n Sliding.grow(slider);\n }\n });\n });\n };\n var whichSidebar = function (sidebar) {\n var optSlider = Composing.getCurrent(sidebar);\n return optSlider.bind(function (slider) {\n var sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);\n if (sidebarOpen) {\n var optSlotContainer = Composing.getCurrent(slider);\n return optSlotContainer.bind(function (slotContainer) {\n return find(SlotContainer.getSlotNames(slotContainer), function (name) {\n return SlotContainer.isShowing(slotContainer, name);\n });\n });\n } else {\n return Option.none();\n }\n });\n };\n var fixSize = generate$1('FixSizeEvent');\n var autoSize = generate$1('AutoSizeEvent');\n var renderSidebar = function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-sidebar'],\n attributes: { role: 'complementary' }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__slider']\n },\n components: [],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Sliding.config({\n dimension: { property: 'width' },\n closedClass: 'tox-sidebar--sliding-closed',\n openClass: 'tox-sidebar--sliding-open',\n shrinkingClass: 'tox-sidebar--sliding-shrinking',\n growingClass: 'tox-sidebar--sliding-growing',\n onShrunk: function (slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(SlotContainer.hideAllSlots);\n emit(slider, autoSize);\n },\n onGrown: function (slider) {\n emit(slider, autoSize);\n },\n onStartGrow: function (slider) {\n emitWith(slider, fixSize, { width: getRaw(slider.element(), 'width').getOr('') });\n },\n onStartShrink: function (slider) {\n emitWith(slider, fixSize, { width: get$7(slider.element()) + 'px' });\n }\n }),\n Replacing.config({}),\n Composing.config({\n find: function (comp) {\n var children = Replacing.contents(comp);\n return head(children);\n }\n })\n ])\n }],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n config('sidebar-sliding-events', [\n run(fixSize, function (comp, se) {\n set$2(comp.element(), 'width', se.event().width());\n }),\n run(autoSize, function (comp, se) {\n remove$6(comp.element(), 'width');\n })\n ])\n ])\n };\n };\n\n var renderSpinner = function (providerBackstage) {\n return {\n dom: {\n tag: 'div',\n attributes: { 'aria-label': providerBackstage.translate('Loading...') },\n classes: ['tox-throbber__busy-spinner']\n },\n components: [{ dom: fromHtml$2('<div class=\"tox-spinner\"><div></div><div></div><div></div></div>') }],\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onTab: function () {\n return Option.some(true);\n },\n onShiftTab: function () {\n return Option.some(true);\n }\n }),\n Focusing.config({})\n ])\n };\n };\n var toggleThrobber = function (comp, state, providerBackstage) {\n var element = comp.element();\n if (state === true) {\n Replacing.set(comp, [renderSpinner(providerBackstage)]);\n remove$6(element, 'display');\n remove$1(element, 'aria-hidden');\n } else {\n Replacing.set(comp, []);\n set$2(element, 'display', 'none');\n set$1(element, 'aria-hidden', 'true');\n }\n };\n var renderThrobber = function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n attributes: { 'aria-hidden': 'true' },\n classes: ['tox-throbber'],\n styles: { display: 'none' }\n },\n behaviours: derive$1([Replacing.config({})]),\n components: []\n };\n };\n var setup$8 = function (editor, lazyThrobber, sharedBackstage) {\n var throbberState = Cell(false);\n var timer = Cell(Option.none());\n var toggle = function (state) {\n if (state !== throbberState.get()) {\n toggleThrobber(lazyThrobber(), state, sharedBackstage.providers);\n throbberState.set(state);\n }\n };\n editor.on('ProgressState', function (e) {\n timer.get().each(global$2.clearTimeout);\n if (isNumber(e.time)) {\n var timerId = global$2.setEditorTimeout(editor, function () {\n return toggle(e.state);\n }, e.time);\n timer.set(Option.some(timerId));\n } else {\n toggle(e.state);\n timer.set(Option.none());\n }\n });\n };\n\n var factory$g = function (detail, components, spec) {\n var apis = {\n getSocket: function (comp) {\n return parts$c.getPart(comp, detail, 'socket');\n },\n setSidebar: function (comp, panelConfigs) {\n parts$c.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return setSidebar(sidebar, panelConfigs);\n });\n },\n toggleSidebar: function (comp, name) {\n parts$c.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return toggleSidebar(sidebar, name);\n });\n },\n whichSidebar: function (comp) {\n return parts$c.getPart(comp, detail, 'sidebar').bind(whichSidebar).getOrNull();\n },\n getHeader: function (comp) {\n return parts$c.getPart(comp, detail, 'header');\n },\n getToolbar: function (comp) {\n return parts$c.getPart(comp, detail, 'toolbar');\n },\n setToolbar: function (comp, groups) {\n parts$c.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n toolbar.getApis().setGroups(toolbar, groups);\n });\n },\n setToolbars: function (comp, toolbars) {\n parts$c.getPart(comp, detail, 'multiple-toolbar').each(function (mToolbar) {\n CustomList.setItems(mToolbar, toolbars);\n });\n },\n refreshToolbar: function (comp) {\n var toolbar = parts$c.getPart(comp, detail, 'toolbar');\n toolbar.each(function (toolbar) {\n return toolbar.getApis().refresh(toolbar);\n });\n },\n getMoreButton: function (comp) {\n var toolbar = parts$c.getPart(comp, detail, 'toolbar');\n return toolbar.bind(function (toolbar) {\n return toolbar.getApis().getMoreButton(toolbar);\n });\n },\n getThrobber: function (comp) {\n return parts$c.getPart(comp, detail, 'throbber');\n },\n focusToolbar: function (comp) {\n var optToolbar = parts$c.getPart(comp, detail, 'toolbar').orThunk(function () {\n return parts$c.getPart(comp, detail, 'multiple-toolbar');\n });\n optToolbar.each(function (toolbar) {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: function (comp, menus) {\n parts$c.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: function (comp) {\n parts$c.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.focus(menubar);\n });\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: apis,\n behaviours: detail.behaviours\n };\n };\n var partMenubar = partType$1.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [strict$1('backstage')]\n });\n var toolbarFactory = function (spec) {\n if (spec.split === ToolbarDrawer.sliding) {\n return renderSlidingMoreToolbar;\n } else if (spec.split === ToolbarDrawer.floating) {\n return renderFloatingMoreToolbar;\n } else {\n return renderToolbar;\n }\n };\n var partMultipleToolbar = partType$1.optional({\n factory: {\n sketch: function (spec) {\n return CustomList.sketch({\n uid: spec.uid,\n dom: spec.dom,\n listBehaviours: derive$1([Keying.config({\n mode: 'acyclic',\n selector: '.tox-toolbar'\n })]),\n makeItem: function () {\n return renderToolbar({\n type: spec.split,\n uid: generate$1('multiple-toolbar-item'),\n backstage: spec.backstage,\n cyclicKeying: false,\n getSink: spec.getSink,\n initGroups: [],\n onEscape: function () {\n return Option.none();\n }\n });\n },\n setupItem: function (mToolbar, tc, data, index) {\n Toolbar.setGroups(tc, data);\n },\n shell: true\n });\n }\n },\n name: 'multiple-toolbar',\n schema: [\n strict$1('dom'),\n strict$1('onEscape')\n ]\n });\n var partToolbar = partType$1.optional({\n factory: {\n sketch: function (spec) {\n var renderer = toolbarFactory(spec);\n var toolbarSpec = {\n type: spec.split,\n uid: spec.uid,\n onEscape: function () {\n spec.onEscape();\n return Option.some(true);\n },\n cyclicKeying: false,\n initGroups: [],\n getSink: spec.getSink,\n backstage: spec.backstage,\n moreDrawerData: {\n lazyToolbar: spec.lazyToolbar,\n lazyMoreButton: spec.lazyMoreButton,\n lazyHeader: spec.lazyHeader\n }\n };\n return renderer(toolbarSpec);\n }\n },\n name: 'toolbar',\n schema: [\n strict$1('dom'),\n strict$1('onEscape'),\n strict$1('getSink')\n ]\n });\n var partHeader = partType$1.optional({\n factory: { sketch: renderHeader },\n name: 'header',\n schema: [strict$1('dom')]\n });\n var partSocket = partType$1.optional({\n name: 'socket',\n schema: [strict$1('dom')]\n });\n var partSidebar = partType$1.optional({\n factory: { sketch: renderSidebar },\n name: 'sidebar',\n schema: [strict$1('dom')]\n });\n var partThrobber = partType$1.optional({\n factory: { sketch: renderThrobber },\n name: 'throbber',\n schema: [strict$1('dom')]\n });\n var OuterContainer = composite$1({\n name: 'OuterContainer',\n factory: factory$g,\n configFields: [\n strict$1('dom'),\n strict$1('behaviours')\n ],\n partFields: [\n partHeader,\n partMenubar,\n partToolbar,\n partMultipleToolbar,\n partSocket,\n partSidebar,\n partThrobber\n ],\n apis: {\n getSocket: function (apis, comp) {\n return apis.getSocket(comp);\n },\n setSidebar: function (apis, comp, panelConfigs) {\n apis.setSidebar(comp, panelConfigs);\n },\n toggleSidebar: function (apis, comp, name) {\n apis.toggleSidebar(comp, name);\n },\n whichSidebar: function (apis, comp) {\n return apis.whichSidebar(comp);\n },\n getHeader: function (apis, comp) {\n return apis.getHeader(comp);\n },\n getToolbar: function (apis, comp) {\n return apis.getToolbar(comp);\n },\n setToolbar: function (apis, comp, grps) {\n var groups = map(grps, function (grp) {\n return renderToolbarGroup(grp);\n });\n apis.setToolbar(comp, groups);\n },\n setToolbars: function (apis, comp, ts) {\n var renderedToolbars = map(ts, function (g) {\n return map(g, renderToolbarGroup);\n });\n apis.setToolbars(comp, renderedToolbars);\n },\n getMoreButton: function (apis, comp) {\n return apis.getMoreButton(comp);\n },\n refreshToolbar: function (apis, comp) {\n return apis.refreshToolbar(comp);\n },\n getThrobber: function (apis, comp) {\n return apis.getThrobber(comp);\n },\n setMenubar: function (apis, comp, menus) {\n apis.setMenubar(comp, menus);\n },\n focusMenubar: function (apis, comp) {\n apis.focusMenubar(comp);\n },\n focusToolbar: function (apis, comp) {\n apis.focusToolbar(comp);\n }\n }\n });\n\n var defaultMenubar = 'file edit view insert format tools table help';\n var defaultMenus = {\n file: {\n title: 'File',\n items: 'newdocument restoredraft | preview | print | deleteallconversations'\n },\n edit: {\n title: 'Edit',\n items: 'undo redo | cut copy paste pastetext | selectall | searchreplace'\n },\n view: {\n title: 'View',\n items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen | showcomments'\n },\n insert: {\n title: 'Insert',\n items: 'image link media addcomment pageembed template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime'\n },\n format: {\n title: 'Format',\n items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align | forecolor backcolor | removeformat'\n },\n tools: {\n title: 'Tools',\n items: 'spellchecker spellcheckerlanguage | a11ycheck code wordcount'\n },\n table: {\n title: 'Table',\n items: 'inserttable | cell row column | advtablesort | tableprops deletetable'\n },\n help: {\n title: 'Help',\n items: 'help'\n }\n };\n var make$8 = function (menu, registry, editor) {\n var removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: function () {\n return bind(menu.items, function (i) {\n var itemName = i.toLowerCase();\n if (itemName.trim().length === 0) {\n return [];\n } else if (exists(removedMenuItems, function (removedMenuItem) {\n return removedMenuItem === itemName;\n })) {\n return [];\n } else if (itemName === 'separator' || itemName === '|') {\n return [{ type: 'separator' }];\n } else if (registry.menuItems[itemName]) {\n return [registry.menuItems[itemName]];\n } else {\n return [];\n }\n });\n }\n };\n };\n var parseItemsString = function (items) {\n if (typeof items === 'string') {\n return items.split(' ');\n }\n return items;\n };\n var identifyMenus = function (editor, registry) {\n var rawMenuData = merge(defaultMenus, registry.menus);\n var userDefinedMenus = keys(registry.menus).length > 0;\n var menubar = registry.menubar === undefined || registry.menubar === true ? parseItemsString(defaultMenubar) : parseItemsString(registry.menubar === false ? '' : registry.menubar);\n var validMenus = filter(menubar, function (menuName) {\n return userDefinedMenus ? registry.menus.hasOwnProperty(menuName) && registry.menus[menuName].hasOwnProperty('items') || defaultMenus.hasOwnProperty(menuName) : defaultMenus.hasOwnProperty(menuName);\n });\n var menus = map(validMenus, function (menuName) {\n var menuData = rawMenuData[menuName];\n return make$8({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter(menus, function (menu) {\n var isNotSeparator = function (item) {\n return item.type !== 'separator';\n };\n return menu.getItems().length > 0 && exists(menu.getItems(), isNotSeparator);\n });\n };\n\n var fireSkinLoaded$1 = function (editor) {\n var done = function () {\n editor._skinLoaded = true;\n Events.fireSkinLoaded(editor);\n };\n return function () {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n var SkinLoaded = { fireSkinLoaded: fireSkinLoaded$1 };\n\n var loadSkin = function (isInline, editor) {\n var skinUrl = getSkinUrl(editor);\n var skinUiCss;\n if (skinUrl) {\n skinUiCss = skinUrl + '/skin.min.css';\n editor.contentCSS.push(skinUrl + (isInline ? '/content.inline' : '/content') + '.min.css');\n }\n if (isSkinDisabled(editor) === false && skinUiCss) {\n global$7.DOM.styleSheetLoader.load(skinUiCss, SkinLoaded.fireSkinLoaded(editor));\n } else {\n SkinLoaded.fireSkinLoaded(editor)();\n }\n };\n var iframe = curry(loadSkin, false);\n var inline = curry(loadSkin, true);\n\n var setToolbar = function (editor, uiComponents, rawUiConfig, backstage) {\n var comp = uiComponents.outerContainer;\n var toolbarConfig = rawUiConfig.toolbar;\n var toolbarButtonsConfig = rawUiConfig.buttons;\n if (isArrayOf(toolbarConfig, isString)) {\n var toolbars = toolbarConfig.map(function (t) {\n var config = {\n toolbar: t,\n buttons: toolbarButtonsConfig\n };\n return identifyButtons(editor, config, { backstage: backstage }, Option.none());\n });\n OuterContainer.setToolbars(comp, toolbars);\n } else {\n OuterContainer.setToolbar(comp, identifyButtons(editor, rawUiConfig, { backstage: backstage }, Option.none()));\n }\n };\n\n var DOM = global$7.DOM;\n var detection = detect$3();\n var isiOS12 = detection.os.isiOS() && detection.os.version.major <= 12;\n var setupEvents = function (editor) {\n var contentWindow = editor.getWin();\n var initialDocEle = editor.getDoc().documentElement;\n var lastWindowDimensions = Cell(Position(contentWindow.innerWidth, contentWindow.innerHeight));\n var lastDocumentDimensions = Cell(Position(initialDocEle.offsetWidth, initialDocEle.offsetHeight));\n var resize = function (e) {\n var docEle = editor.getDoc().documentElement;\n var outer = lastWindowDimensions.get();\n var inner = lastDocumentDimensions.get();\n if (outer.left() !== contentWindow.innerWidth || outer.top() !== contentWindow.innerHeight) {\n lastWindowDimensions.set(Position(contentWindow.innerWidth, contentWindow.innerHeight));\n Events.fireResizeContent(editor, e);\n } else if (inner.left() !== docEle.offsetWidth || inner.top() !== docEle.offsetHeight) {\n lastDocumentDimensions.set(Position(docEle.offsetWidth, docEle.offsetHeight));\n Events.fireResizeContent(editor, e);\n }\n };\n var scroll = function (e) {\n return Events.fireScrollContent(editor, e);\n };\n DOM.bind(contentWindow, 'resize', resize);\n DOM.bind(contentWindow, 'scroll', scroll);\n var elementLoad = capture$1(Element.fromDom(editor.getBody()), 'load', resize);\n editor.on('remove', function () {\n elementLoad.unbind();\n DOM.unbind(contentWindow, 'resize', resize);\n DOM.unbind(contentWindow, 'scroll', scroll);\n });\n };\n var render = function (editor, uiComponents, rawUiConfig, backstage, args) {\n var lastToolbarWidth = Cell(0);\n iframe(editor);\n attachSystemAfter(Element.fromDom(args.targetNode), uiComponents.mothership);\n attachSystem(body(), uiComponents.uiMothership);\n editor.on('PostRender', function () {\n setToolbar(editor, uiComponents, rawUiConfig, backstage);\n lastToolbarWidth.set(editor.getWin().innerWidth);\n OuterContainer.setMenubar(uiComponents.outerContainer, identifyMenus(editor, rawUiConfig));\n OuterContainer.setSidebar(uiComponents.outerContainer, rawUiConfig.sidebar);\n setupEvents(editor);\n });\n var socket = OuterContainer.getSocket(uiComponents.outerContainer).getOrDie('Could not find expected socket element');\n if (isiOS12 === true) {\n setAll$1(socket.element(), {\n 'overflow': 'scroll',\n '-webkit-overflow-scrolling': 'touch'\n });\n var limit = first$1(function () {\n editor.fire('ScrollContent');\n }, 20);\n bind$3(socket.element(), 'scroll', limit.throttle);\n }\n setupReadonlyModeSwitch(editor, uiComponents);\n editor.addCommand('ToggleSidebar', function (ui, value) {\n OuterContainer.toggleSidebar(uiComponents.outerContainer, value);\n editor.fire('ToggleSidebar');\n });\n editor.addQueryValueHandler('ToggleSidebar', function () {\n return OuterContainer.whichSidebar(uiComponents.outerContainer);\n });\n var drawer = getToolbarDrawer(editor);\n var refreshDrawer = function () {\n OuterContainer.refreshToolbar(uiComponents.outerContainer);\n };\n if (drawer === ToolbarDrawer.sliding || drawer === ToolbarDrawer.floating) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', function () {\n var width = editor.getWin().innerWidth;\n if (width !== lastToolbarWidth.get()) {\n refreshDrawer();\n lastToolbarWidth.set(width);\n }\n });\n }\n return {\n iframeContainer: socket.element().dom(),\n editorContainer: uiComponents.outerContainer.element().dom()\n };\n };\n var Iframe = { render: render };\n\n var parseToInt = function (val) {\n var re = /^[0-9\\.]+(|px)$/i;\n if (re.test('' + val)) {\n return Option.some(parseInt('' + val, 10));\n }\n return Option.none();\n };\n var numToPx = function (val) {\n return isNumber(val) ? val + 'px' : val;\n };\n var calcCappedSize = function (size, minSize, maxSize) {\n var minOverride = minSize.filter(function (min) {\n return size < min;\n });\n var maxOverride = maxSize.filter(function (max) {\n return size > max;\n });\n return minOverride.or(maxOverride).getOr(size);\n };\n var Utils = {\n calcCappedSize: calcCappedSize,\n parseToInt: parseToInt,\n numToPx: numToPx\n };\n\n var getHeight$1 = function (editor) {\n var baseHeight = getHeightSetting(editor);\n var minHeight = getMinHeightSetting(editor);\n var maxHeight = getMaxHeightSetting(editor);\n return Utils.parseToInt(baseHeight).map(function (height) {\n return Utils.calcCappedSize(height, minHeight, maxHeight);\n });\n };\n var getHeightWithFallback = function (editor) {\n var height = getHeight$1(editor);\n return height.getOr(getHeightSetting(editor));\n };\n var getWidth$1 = function (editor) {\n var baseWidth = getWidthSetting(editor);\n var minWidth = getMinWidthSetting(editor);\n var maxWidth = getMaxWidthSetting(editor);\n return Utils.parseToInt(baseWidth).map(function (width) {\n return Utils.calcCappedSize(width, minWidth, maxWidth);\n });\n };\n var getWidthWithFallback = function (editor) {\n var width = getWidth$1(editor);\n return width.getOr(getWidthSetting(editor));\n };\n\n var render$1 = function (editor, uiComponents, rawUiConfig, backstage, args) {\n var floatContainer;\n var DOM = global$7.DOM;\n var useFixedToolbarContainer = useFixedContainer(editor);\n var isSticky = isStickyToolbar(editor);\n var targetElm = Element.fromDom(args.targetNode);\n var editorMaxWidthOpt = getMaxWidthSetting(editor).or(getWidth$1(editor));\n var splitSetting = getToolbarDrawer(editor);\n var split = splitSetting === ToolbarDrawer.sliding || splitSetting === ToolbarDrawer.floating;\n inline(editor);\n var updateChromePosition = function (toolbar) {\n var offset = split ? toolbar.fold(function () {\n return 0;\n }, function (tbar) {\n return tbar.components().length > 1 ? get$6(tbar.components()[1].element()) : 0;\n }) : 0;\n var location = absolute(targetElm);\n var top = location.top() - get$6(floatContainer.element()) + offset;\n setAll$1(uiComponents.outerContainer.element(), {\n position: 'absolute',\n top: Math.round(top) + 'px',\n left: Math.round(location.left()) + 'px'\n });\n var maxWidth = editorMaxWidthOpt.getOrThunk(function () {\n var bodyMargin = Utils.parseToInt(get$4(body(), 'margin-left')).getOr(0);\n return get$7(body()) - location.left() + bodyMargin;\n });\n set$2(floatContainer.element(), 'max-width', maxWidth + 'px');\n };\n var updateChromeUi = function (resetDocking) {\n if (resetDocking === void 0) {\n resetDocking = false;\n }\n if (split) {\n OuterContainer.refreshToolbar(uiComponents.outerContainer);\n }\n if (!useFixedToolbarContainer) {\n var toolbar = OuterContainer.getToolbar(uiComponents.outerContainer);\n updateChromePosition(toolbar);\n }\n if (isSticky) {\n resetDocking ? Docking.reset(floatContainer) : Docking.refresh(floatContainer);\n }\n };\n var show = function () {\n set$2(uiComponents.outerContainer.element(), 'display', 'flex');\n DOM.addClass(editor.getBody(), 'mce-edit-focus');\n remove$6(uiComponents.uiMothership.element(), 'display');\n updateChromeUi();\n };\n var hide = function () {\n if (uiComponents.outerContainer) {\n set$2(uiComponents.outerContainer.element(), 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n }\n set$2(uiComponents.uiMothership.element(), 'display', 'none');\n };\n var render = function () {\n if (floatContainer) {\n show();\n return;\n }\n floatContainer = OuterContainer.getHeader(uiComponents.outerContainer).getOrDie();\n var uiContainer = getUiContainer(editor);\n attachSystem(uiContainer, uiComponents.mothership);\n attachSystem(uiContainer, uiComponents.uiMothership);\n setToolbar(editor, uiComponents, rawUiConfig, backstage);\n OuterContainer.setMenubar(uiComponents.outerContainer, identifyMenus(editor, rawUiConfig));\n show();\n editor.on('activate', show);\n editor.on('deactivate', hide);\n editor.on('NodeChange SkinLoaded ResizeWindow', function () {\n if (!editor.hidden) {\n updateChromeUi(true);\n }\n });\n editor.nodeChanged();\n };\n editor.on('focus', render);\n editor.on('blur hide', hide);\n editor.on('init', function () {\n if (editor.hasFocus()) {\n render();\n }\n });\n setupReadonlyModeSwitch(editor, uiComponents);\n return { editorContainer: uiComponents.outerContainer.element().dom() };\n };\n var Inline = { render: render$1 };\n\n var register$5 = function (editor) {\n var alignToolbarButtons = [\n {\n name: 'alignleft',\n text: 'Align left',\n cmd: 'JustifyLeft',\n icon: 'align-left'\n },\n {\n name: 'aligncenter',\n text: 'Align center',\n cmd: 'JustifyCenter',\n icon: 'align-center'\n },\n {\n name: 'alignright',\n text: 'Align right',\n cmd: 'JustifyRight',\n icon: 'align-right'\n },\n {\n name: 'alignjustify',\n text: 'Justify',\n cmd: 'JustifyFull',\n icon: 'align-justify'\n }\n ];\n global$e.each(alignToolbarButtons, function (item) {\n editor.ui.registry.addToggleButton(item.name, {\n tooltip: item.text,\n onAction: function () {\n return editor.execCommand(item.cmd);\n },\n icon: item.icon,\n onSetup: onSetupFormatToggle(editor, item.name)\n });\n });\n var alignNoneToolbarButton = {\n name: 'alignnone',\n text: 'No alignment',\n cmd: 'JustifyNone',\n icon: 'align-none'\n };\n editor.ui.registry.addButton(alignNoneToolbarButton.name, {\n tooltip: alignNoneToolbarButton.text,\n onAction: function () {\n return editor.execCommand(alignNoneToolbarButton.cmd);\n },\n icon: alignNoneToolbarButton.icon\n });\n };\n var AlignmentButtons = { register: register$5 };\n\n var toggleFormat = function (editor, fmt) {\n return function () {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n };\n var registerFormatButtons = function (editor) {\n global$e.each([\n {\n name: 'bold',\n text: 'Bold',\n icon: 'bold'\n },\n {\n name: 'italic',\n text: 'Italic',\n icon: 'italic'\n },\n {\n name: 'underline',\n text: 'Underline',\n icon: 'underline'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n icon: 'superscript'\n }\n ], function (btn, idx) {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onSetup: onSetupFormatToggle(editor, btn.name),\n onAction: toggleFormat(editor, btn.name)\n });\n });\n for (var i = 1; i <= 6; i++) {\n var name = 'h' + i;\n editor.ui.registry.addToggleButton(name, {\n text: name.toUpperCase(),\n tooltip: 'Heading ' + i,\n onSetup: onSetupFormatToggle(editor, name),\n onAction: toggleFormat(editor, name)\n });\n }\n };\n var registerCommandButtons = function (editor) {\n global$e.each([\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste'\n },\n {\n name: 'help',\n text: 'Help',\n action: 'mceHelp',\n icon: 'help'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all'\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'remove',\n text: 'Remove',\n action: 'Delete',\n icon: 'remove'\n }\n ], function (btn) {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: function () {\n return editor.execCommand(btn.action);\n }\n });\n });\n };\n var registerCommandToggleButtons = function (editor) {\n global$e.each([{\n name: 'blockquote',\n text: 'Blockquote',\n action: 'mceBlockQuote',\n icon: 'quote'\n }], function (btn) {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: function () {\n return editor.execCommand(btn.action);\n },\n onSetup: onSetupFormatToggle(editor, btn.name)\n });\n });\n };\n var registerButtons = function (editor) {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n var registerMenuItems = function (editor) {\n global$e.each([\n {\n name: 'bold',\n text: 'Bold',\n action: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n },\n {\n name: 'italic',\n text: 'Italic',\n action: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n },\n {\n name: 'underline',\n text: 'Underline',\n action: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n action: 'Strikethrough',\n icon: 'strike-through',\n shortcut: ''\n },\n {\n name: 'subscript',\n text: 'Subscript',\n action: 'Subscript',\n icon: 'subscript',\n shortcut: ''\n },\n {\n name: 'superscript',\n text: 'Superscript',\n action: 'Superscript',\n icon: 'superscript',\n shortcut: ''\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting',\n shortcut: ''\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document',\n shortcut: ''\n },\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut',\n shortcut: 'Meta+X'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n shortcut: 'Meta+C'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste',\n shortcut: 'Meta+V'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A'\n }\n ], function (btn) {\n editor.ui.registry.addMenuItem(btn.name, {\n text: btn.text,\n icon: btn.icon,\n shortcut: btn.shortcut,\n onAction: function () {\n return editor.execCommand(btn.action);\n }\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onAction: toggleFormat(editor, 'code')\n });\n };\n var register$6 = function (editor) {\n registerButtons(editor);\n registerMenuItems(editor);\n };\n var SimpleControls = { register: register$6 };\n\n var toggleUndoRedoState = function (api, editor, type) {\n var checkState = function () {\n return editor.undoManager ? editor.undoManager[type]() : false;\n };\n var onUndoStateChange = function () {\n api.setDisabled(editor.readonly || !checkState());\n };\n api.setDisabled(!checkState());\n editor.on('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', onUndoStateChange);\n return function () {\n return editor.off('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', onUndoStateChange);\n };\n };\n var registerMenuItems$1 = function (editor) {\n editor.ui.registry.addMenuItem('undo', {\n text: 'Undo',\n icon: 'undo',\n shortcut: 'Meta+Z',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasUndo');\n },\n onAction: function () {\n return editor.execCommand('undo');\n }\n });\n editor.ui.registry.addMenuItem('redo', {\n text: 'Redo',\n icon: 'redo',\n shortcut: 'Meta+Y',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasRedo');\n },\n onAction: function () {\n return editor.execCommand('redo');\n }\n });\n };\n var registerButtons$1 = function (editor) {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasUndo');\n },\n onAction: function () {\n return editor.execCommand('undo');\n }\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasRedo');\n },\n onAction: function () {\n return editor.execCommand('redo');\n }\n });\n };\n var register$7 = function (editor) {\n registerMenuItems$1(editor);\n registerButtons$1(editor);\n };\n var UndoRedo = { register: register$7 };\n\n var toggleVisualAidState = function (api, editor) {\n api.setActive(editor.hasVisual);\n var onVisualAid = function (e) {\n api.setActive(e.hasVisual);\n };\n editor.on('VisualAid', onVisualAid);\n return function () {\n return editor.off('VisualAid', onVisualAid);\n };\n };\n var registerMenuItems$2 = function (editor) {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: function (api) {\n return toggleVisualAidState(api, editor);\n },\n onAction: function () {\n editor.execCommand('mceToggleVisualAid');\n }\n });\n };\n var registerToolbarButton = function (editor) {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: function () {\n return editor.execCommand('mceToggleVisualAid');\n }\n });\n };\n var register$8 = function (editor) {\n registerToolbarButton(editor);\n registerMenuItems$2(editor);\n };\n var VisualAid = { register: register$8 };\n\n var toggleOutdentState = function (api, editor) {\n api.setDisabled(!editor.queryCommandState('outdent'));\n var onNodeChange = function () {\n api.setDisabled(!editor.queryCommandState('outdent'));\n };\n editor.on('NodeChange', onNodeChange);\n return function () {\n return editor.off('NodeChange', onNodeChange);\n };\n };\n var registerButtons$2 = function (editor) {\n editor.ui.registry.addButton('outdent', {\n tooltip: 'Decrease indent',\n icon: 'outdent',\n onSetup: function (api) {\n return toggleOutdentState(api, editor);\n },\n onAction: function () {\n return editor.execCommand('outdent');\n }\n });\n editor.ui.registry.addButton('indent', {\n tooltip: 'Increase indent',\n icon: 'indent',\n onAction: function () {\n return editor.execCommand('indent');\n }\n });\n };\n var register$9 = function (editor) {\n registerButtons$2(editor);\n };\n var IndentOutdent = { register: register$9 };\n\n var register$a = function (editor, backstage) {\n alignSelectMenu(editor, backstage);\n fontSelectMenu(editor, backstage);\n styleSelectMenu(editor, backstage);\n formatSelectMenu(editor, backstage);\n fontsizeSelectMenu(editor, backstage);\n };\n var ComplexControls = { register: register$a };\n\n var setup$9 = function (editor, backstage) {\n AlignmentButtons.register(editor);\n SimpleControls.register(editor);\n ComplexControls.register(editor, backstage);\n UndoRedo.register(editor);\n ColorSwatch.register(editor);\n VisualAid.register(editor);\n IndentOutdent.register(editor);\n };\n var FormatControls = { setup: setup$9 };\n\n var nu$d = function (x, y) {\n return {\n anchor: 'makeshift',\n x: x,\n y: y\n };\n };\n var transpose$1 = function (pos, dx, dy) {\n return nu$d(pos.x + dx, pos.y + dy);\n };\n var isTouchEvent = function (e) {\n return e.type === 'longpress' || e.type.indexOf('touch') === 0;\n };\n var fromPageXY = function (e) {\n if (isTouchEvent(e)) {\n var touch = e.touches[0];\n return nu$d(touch.pageX, touch.pageY);\n } else {\n return nu$d(e.pageX, e.pageY);\n }\n };\n var fromClientXY = function (e) {\n if (isTouchEvent(e)) {\n var touch = e.touches[0];\n return nu$d(touch.clientX, touch.clientY);\n } else {\n return nu$d(e.clientX, e.clientY);\n }\n };\n var transposeContentAreaContainer = function (element, pos) {\n var containerPos = global$7.DOM.getPos(element);\n return transpose$1(pos, containerPos.x, containerPos.y);\n };\n var getPointAnchor = function (editor, e) {\n if (e.type === 'contextmenu') {\n if (editor.inline) {\n return fromPageXY(e);\n } else {\n return transposeContentAreaContainer(editor.getContentAreaContainer(), fromClientXY(e));\n }\n } else {\n return getSelectionAnchor(editor);\n }\n };\n var getSelectionAnchor = function (editor) {\n return {\n anchor: 'selection',\n root: Element.fromDom(editor.selection.getNode())\n };\n };\n var getNodeAnchor$1 = function (editor) {\n return {\n anchor: 'node',\n node: Option.some(Element.fromDom(editor.selection.getNode())),\n root: Element.fromDom(editor.getBody())\n };\n };\n\n var getAnchorSpec = function (editor, e, isTriggeredByKeyboardEvent) {\n return isTriggeredByKeyboardEvent ? getNodeAnchor$1(editor) : getPointAnchor(editor, e);\n };\n var initAndShow = function (editor, e, buildMenu, backstage, contextmenu, isTriggeredByKeyboardEvent) {\n var items = buildMenu();\n var anchorSpec = getAnchorSpec(editor, e, isTriggeredByKeyboardEvent);\n build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, anchorSpec, {\n menu: { markers: markers$1('normal') },\n data: menuData\n });\n });\n };\n\n var layouts = {\n onLtr: function () {\n return [\n south$1,\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n north$1,\n north$3,\n south$3,\n northeast$3,\n southeast$3,\n northwest$3,\n southwest$3\n ];\n },\n onRtl: function () {\n return [\n south$1,\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n north$1,\n north$3,\n south$3,\n northwest$3,\n southwest$3,\n northeast$3,\n southeast$3\n ];\n }\n };\n var bubbleSize$1 = 12;\n var bubbleAlignments$2 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top']\n };\n var isTouchWithinSelection = function (editor, e) {\n var selection = editor.selection;\n if (selection.isCollapsed() || e.touches.length < 1) {\n return false;\n } else {\n var touch_1 = e.touches[0];\n var rng = selection.getRng();\n var rngRectOpt = getFirstRect$1(editor.getWin(), Selection.domRange(rng));\n return rngRectOpt.exists(function (rngRect) {\n return rngRect.left() <= touch_1.clientX && rngRect.right() >= touch_1.clientX && rngRect.top() <= touch_1.clientY && rngRect.bottom() >= touch_1.clientY;\n });\n }\n };\n var getAnchorSpec$1 = function (editor, isTriggeredByKeyboardEvent) {\n var anchorSpec = isTriggeredByKeyboardEvent ? getNodeAnchor$1(editor) : getSelectionAnchor(editor);\n return __assign({\n bubble: nu$8(0, bubbleSize$1, bubbleAlignments$2),\n layouts: layouts,\n overrides: {\n maxWidthFunction: expandable$1(),\n maxHeightFunction: expandable()\n }\n }, anchorSpec);\n };\n var setupiOSOverrides = function (editor) {\n var originalSelection = editor.selection.getRng();\n var selectionReset = function () {\n global$2.setEditorTimeout(editor, function () {\n editor.selection.setRng(originalSelection);\n }, 10);\n unbindEventListeners();\n };\n editor.once('touchend', selectionReset);\n var preventMousedown = function (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n editor.on('mousedown', preventMousedown, true);\n var clearSelectionReset = function () {\n return unbindEventListeners();\n };\n editor.once('longpresscancel', clearSelectionReset);\n var unbindEventListeners = function () {\n editor.off('touchend', selectionReset);\n editor.off('longpresscancel', clearSelectionReset);\n editor.off('mousedown', preventMousedown);\n };\n };\n var show = function (editor, e, items, backstage, contextmenu, isTriggeredByKeyboardEvent) {\n var anchorSpec = getAnchorSpec$1(editor, isTriggeredByKeyboardEvent);\n build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, true).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuWithinBounds(contextmenu, anchorSpec, {\n menu: { markers: markers$1('normal') },\n data: menuData,\n type: 'horizontal'\n }, function () {\n return Option.some(getContextToolbarBounds(editor));\n });\n editor.fire(hideContextToolbarEvent);\n });\n };\n var initAndShow$1 = function (editor, e, buildMenu, backstage, contextmenu, isTriggeredByKeyboardEvent) {\n var detection = detect$3();\n var isiOS = detection.os.isiOS();\n var isOSX = detection.os.isOSX();\n var isAndroid = detection.os.isAndroid();\n var open = function () {\n var items = buildMenu();\n show(editor, e, items, backstage, contextmenu, isTriggeredByKeyboardEvent);\n };\n if ((isOSX || isiOS) && !isTriggeredByKeyboardEvent) {\n var openiOS_1 = function () {\n setupiOSOverrides(editor);\n open();\n };\n if (isTouchWithinSelection(editor, e)) {\n openiOS_1();\n } else {\n editor.once('selectionchange', openiOS_1);\n editor.once('touchend', function () {\n return editor.off('selectionchange', openiOS_1);\n });\n }\n } else {\n if (isAndroid && !isTriggeredByKeyboardEvent) {\n editor.selection.setCursorLocation(e.target, 0);\n }\n open();\n }\n };\n\n var patchPipeConfig = function (config) {\n return typeof config === 'string' ? config.split(/[ ,]/) : config;\n };\n var shouldNeverUseNative = function (editor) {\n return editor.settings.contextmenu_never_use_native || false;\n };\n var getMenuItems = function (editor, name, defaultItems) {\n var contextMenus = editor.ui.registry.getAll().contextMenus;\n return get(editor.settings, name).map(patchPipeConfig).getOrThunk(function () {\n return filter(patchPipeConfig(defaultItems), function (item) {\n return has(contextMenus, item);\n });\n });\n };\n var isContextMenuDisabled = function (editor) {\n return editor.getParam('contextmenu') === false;\n };\n var getContextMenu = function (editor) {\n return getMenuItems(editor, 'contextmenu', 'link linkchecker image imagetools table spellchecker configurepermanentpen');\n };\n var Settings$1 = {\n shouldNeverUseNative: shouldNeverUseNative,\n getContextMenu: getContextMenu,\n isContextMenuDisabled: isContextMenuDisabled\n };\n\n var isSeparator$1 = function (item) {\n return isString(item) ? item === '|' : item.type === 'separator';\n };\n var separator$3 = { type: 'separator' };\n var makeContextItem = function (item) {\n if (isString(item)) {\n return item;\n } else {\n switch (item.type) {\n case 'separator':\n return separator$3;\n case 'submenu':\n return {\n type: 'nestedmenuitem',\n text: item.text,\n icon: item.icon,\n getSubmenuItems: function () {\n var items = item.getSubmenuItems();\n if (isString(items)) {\n return items;\n } else {\n return map(items, makeContextItem);\n }\n }\n };\n default:\n return {\n type: 'menuitem',\n text: item.text,\n icon: item.icon,\n onAction: noarg(item.onAction)\n };\n }\n }\n };\n var addContextMenuGroup = function (xs, groupItems) {\n if (groupItems.length === 0) {\n return xs;\n }\n var lastMenuItem = last(xs).filter(function (item) {\n return !isSeparator$1(item);\n });\n var before = lastMenuItem.fold(function () {\n return [];\n }, function (_) {\n return [separator$3];\n });\n return xs.concat(before).concat(groupItems).concat([separator$3]);\n };\n var generateContextMenu = function (contextMenus, menuConfig, selectedElement) {\n var sections = foldl(menuConfig, function (acc, name) {\n if (has(contextMenus, name)) {\n var items = contextMenus[name].update(selectedElement);\n if (isString(items)) {\n return addContextMenuGroup(acc, items.split(' '));\n } else if (items.length > 0) {\n var allItems = map(items, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n } else {\n return acc.concat([name]);\n }\n }, []);\n if (sections.length > 0 && isSeparator$1(sections[sections.length - 1])) {\n sections.pop();\n }\n return sections;\n };\n var isNativeOverrideKeyEvent = function (editor, e) {\n return e.ctrlKey && !Settings$1.shouldNeverUseNative(editor);\n };\n var setup$a = function (editor, lazySink, backstage) {\n var detection = detect$3();\n var isTouch = detection.deviceType.isTouch;\n var contextmenu = build$1(InlineView.sketch({\n dom: { tag: 'div' },\n lazySink: lazySink,\n onEscape: function () {\n return editor.focus();\n },\n onShow: function () {\n return backstage.setContextMenuState(true);\n },\n onHide: function () {\n return backstage.setContextMenuState(false);\n },\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run(dismissRequested(), function (comp, se) {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n var hideContextMenu = function (_e) {\n return InlineView.hide(contextmenu);\n };\n var showContextMenu = function (e) {\n var isLongpress = e.type === 'longpress';\n if (Settings$1.shouldNeverUseNative(editor)) {\n e.preventDefault();\n }\n if (isNativeOverrideKeyEvent(editor, e) || Settings$1.isContextMenuDisabled(editor)) {\n return;\n }\n var isTriggeredByKeyboardEvent = !isLongpress && (e.button !== 2 || e.target === editor.getBody());\n var buildMenu = function () {\n var selectedElement = isTriggeredByKeyboardEvent ? editor.selection.getStart(true) : e.target;\n var registry = editor.ui.registry.getAll();\n var menuConfig = Settings$1.getContextMenu(editor);\n return generateContextMenu(registry.contextMenus, menuConfig, selectedElement);\n };\n var initAndShow$2 = isTouch() ? initAndShow$1 : initAndShow;\n initAndShow$2(editor, e, buildMenu, backstage, contextmenu, isTriggeredByKeyboardEvent);\n };\n editor.on('init', function () {\n var hideEvents = 'ResizeEditor ScrollContent ScrollWindow longpresscancel' + (isTouch() ? '' : ' ResizeWindow');\n editor.on(hideEvents, hideContextMenu);\n editor.on(isTouch() ? 'longpress' : 'longpress contextmenu', showContextMenu);\n });\n };\n\n var initialAttribute = 'data-initial-z-index';\n var resetZIndex = function (blocker) {\n parent(blocker.element()).filter(isElement).each(function (root) {\n var initZIndex = get$2(root, initialAttribute);\n if (has$1(root, initialAttribute)) {\n set$2(root, 'z-index', initZIndex);\n } else {\n remove$6(root, 'z-index');\n }\n remove$1(root, initialAttribute);\n });\n };\n var changeZIndex = function (blocker) {\n parent(blocker.element()).filter(isElement).each(function (root) {\n getRaw(root, 'z-index').each(function (zindex) {\n set$1(root, initialAttribute, zindex);\n });\n set$2(root, 'z-index', get$4(blocker.element(), 'z-index'));\n });\n };\n var instigate = function (anyComponent, blocker) {\n anyComponent.getSystem().addToGui(blocker);\n changeZIndex(blocker);\n };\n var discard = function (blocker) {\n resetZIndex(blocker);\n blocker.getSystem().removeFromGui(blocker);\n };\n var createComponent = function (component, blockerClass, blockerEvents) {\n return component.getSystem().build(Container.sketch({\n dom: {\n styles: {\n 'left': '0px',\n 'top': '0px',\n 'width': '100%',\n 'height': '100%',\n 'position': 'fixed',\n 'z-index': '1000000000000000'\n },\n classes: [blockerClass]\n },\n events: blockerEvents\n }));\n };\n\n var get$d = function (component, snapsInfo) {\n var element = component.element();\n var x = parseInt(get$2(element, snapsInfo.leftAttr), 10);\n var y = parseInt(get$2(element, snapsInfo.topAttr), 10);\n return isNaN(x) || isNaN(y) ? Option.none() : Option.some(Position(x, y));\n };\n var set$8 = function (component, snapsInfo, pt) {\n var element = component.element();\n set$1(element, snapsInfo.leftAttr, pt.left() + 'px');\n set$1(element, snapsInfo.topAttr, pt.top() + 'px');\n };\n var clear = function (component, snapsInfo) {\n var element = component.element();\n remove$1(element, snapsInfo.leftAttr);\n remove$1(element, snapsInfo.topAttr);\n };\n\n var getCoords = function (component, snapInfo, coord, delta) {\n return get$d(component, snapInfo).fold(function () {\n return coord;\n }, function (fixed) {\n return fixed$1(fixed.left() + delta.left(), fixed.top() + delta.top());\n });\n };\n var moveOrSnap = function (component, snapInfo, coord, delta, scroll, origin) {\n var newCoord = getCoords(component, snapInfo, coord, delta);\n var snap = snapInfo.mustSnap ? findClosestSnap(component, snapInfo, newCoord, scroll, origin) : findSnap(component, snapInfo, newCoord, scroll, origin);\n var fixedCoord = asFixed(newCoord, scroll, origin);\n set$8(component, snapInfo, fixedCoord);\n return snap.fold(function () {\n return {\n coord: fixed$1(fixedCoord.left(), fixedCoord.top()),\n extra: Option.none()\n };\n }, function (spanned) {\n return {\n coord: spanned.output(),\n extra: spanned.extra()\n };\n });\n };\n var stopDrag = function (component, snapInfo) {\n clear(component, snapInfo);\n };\n var findMatchingSnap = function (snaps, newCoord, scroll, origin) {\n return findMap(snaps, function (snap) {\n var sensor = snap.sensor();\n var inRange = withinRange(newCoord, sensor, snap.range().left(), snap.range().top(), scroll, origin);\n return inRange ? Option.some({\n output: constant(absorb(snap.output(), newCoord, scroll, origin)),\n extra: snap.extra\n }) : Option.none();\n });\n };\n var findClosestSnap = function (component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n var matchSnap = findMatchingSnap(snaps, newCoord, scroll, origin);\n return matchSnap.orThunk(function () {\n var bestSnap = foldl(snaps, function (acc, snap) {\n var sensor = snap.sensor();\n var deltas = getDeltas(newCoord, sensor, snap.range().left(), snap.range().top(), scroll, origin);\n return acc.deltas.fold(function () {\n return {\n deltas: Option.some(deltas),\n snap: Option.some(snap)\n };\n }, function (bestDeltas) {\n var currAvg = (deltas.left() + deltas.top()) / 2;\n var bestAvg = (bestDeltas.left() + bestDeltas.top()) / 2;\n if (currAvg <= bestAvg) {\n return {\n deltas: Option.some(deltas),\n snap: Option.some(snap)\n };\n } else {\n return acc;\n }\n });\n }, {\n deltas: Option.none(),\n snap: Option.none()\n });\n return bestSnap.snap.map(function (snap) {\n return {\n output: constant(absorb(snap.output(), newCoord, scroll, origin)),\n extra: snap.extra\n };\n });\n });\n };\n var findSnap = function (component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n return findMatchingSnap(snaps, newCoord, scroll, origin);\n };\n var snapTo = function (snap, scroll, origin) {\n return {\n coord: absorb(snap.output(), snap.output(), scroll, origin),\n extra: snap.extra()\n };\n };\n\n var getCurrentCoord = function (target) {\n return lift3(getRaw(target, 'left'), getRaw(target, 'top'), getRaw(target, 'position'), function (left, top, position) {\n var nu = position === 'fixed' ? fixed$1 : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n }).getOrThunk(function () {\n var location = absolute(target);\n return absolute$3(location.left(), location.top());\n });\n };\n var clampCoords = function (component, coords, scroll, origin, startData) {\n var bounds = startData.bounds;\n var absoluteCoord = asAbsolute(coords, scroll, origin);\n var newX = cap(absoluteCoord.left(), bounds.x(), bounds.x() + bounds.width() - startData.width);\n var newY = cap(absoluteCoord.top(), bounds.y(), bounds.y() + bounds.height() - startData.height);\n var newCoords = absolute$3(newX, newY);\n return coords.fold(function () {\n var offset$1 = asOffset(newCoords, scroll, origin);\n return offset(offset$1.left(), offset$1.top());\n }, function () {\n return newCoords;\n }, function () {\n var fixed = asFixed(newCoords, scroll, origin);\n return fixed$1(fixed.left(), fixed.top());\n });\n };\n var calcNewCoord = function (component, optSnaps, currentCoord, scroll, origin, delta, startData) {\n var newCoord = optSnaps.fold(function () {\n var translated = translate$2(currentCoord, delta.left(), delta.top());\n var fixedCoord = asFixed(translated, scroll, origin);\n return fixed$1(fixedCoord.left(), fixedCoord.top());\n }, function (snapInfo) {\n var snapping = moveOrSnap(component, snapInfo, currentCoord, delta, scroll, origin);\n snapping.extra.each(function (extra) {\n snapInfo.onSensor(component, extra);\n });\n return snapping.coord;\n });\n return clampCoords(component, newCoord, scroll, origin, startData);\n };\n var dragBy = function (component, dragConfig, startData, delta) {\n var target = dragConfig.getTarget(component.element());\n if (dragConfig.repositionTarget) {\n var doc = owner(component.element());\n var scroll = get$8(doc);\n var origin = getOrigin(target);\n var currentCoord = getCurrentCoord(target);\n var newCoord = calcNewCoord(component, dragConfig.snaps, currentCoord, scroll, origin, delta, startData);\n var styles = toStyles(newCoord, scroll, origin);\n setAll$1(target, styles);\n }\n dragConfig.onDrag(component, target, delta);\n };\n\n var calcStartData = function (dragConfig, comp) {\n return {\n bounds: dragConfig.getBounds(),\n height: getOuter$1(comp.element()),\n width: getOuter$2(comp.element())\n };\n };\n var move$1 = function (component, dragConfig, dragState, dragMode, event) {\n var delta = dragState.update(dragMode, event);\n var dragStartData = dragState.getStartData().getOrThunk(function () {\n return calcStartData(dragConfig, component);\n });\n delta.each(function (dlt) {\n dragBy(component, dragConfig, dragStartData, dlt);\n });\n };\n var stop = function (component, blocker, dragConfig, dragState) {\n blocker.each(discard);\n dragConfig.snaps.each(function (snapInfo) {\n stopDrag(component, snapInfo);\n });\n var target = dragConfig.getTarget(component.element());\n dragState.reset();\n dragConfig.onDrop(component, target);\n };\n\n var SnapSchema = optionObjOf('snaps', [\n strict$1('getSnapPoints'),\n onHandler('onSensor'),\n strict$1('leftAttr'),\n strict$1('topAttr'),\n defaulted$1('lazyViewport', win),\n defaulted$1('mustSnap', false)\n ]);\n\n var init$c = function (dragApi) {\n return derive([\n run(mousedown(), dragApi.forceDrop),\n run(mouseup(), dragApi.drop),\n run(mousemove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event());\n }),\n run(mouseout(), dragApi.delayDrop)\n ]);\n };\n\n var getData$1 = function (event) {\n return Option.from(Position(event.x(), event.y()));\n };\n var getDelta$1 = function (old, nu) {\n return Position(nu.left() - old.left(), nu.top() - old.top());\n };\n\n var MouseData = /*#__PURE__*/Object.freeze({\n getData: getData$1,\n getDelta: getDelta$1\n });\n\n var handlers = function (dragConfig, dragState) {\n var updateStartState = function (comp) {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n return derive([\n run(windowScroll(), function (comp) {\n dragState.getStartData().each(function () {\n return updateStartState(comp);\n });\n }),\n run(mousedown(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event().raw();\n if (raw.button !== 0) {\n return;\n }\n simulatedEvent.stop();\n var stop$1 = function () {\n return stop(component, Option.some(blocker), dragConfig, dragState);\n };\n var delayDrop = DelayedFunction(stop$1, 200);\n var dragApi = {\n drop: stop$1,\n delayDrop: delayDrop.schedule,\n forceDrop: stop$1,\n move: function (event) {\n delayDrop.cancel();\n move$1(component, dragConfig, dragState, MouseData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$c(dragApi));\n var start = function () {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n })\n ]);\n };\n var schema$s = [\n defaulted$1('useFixed', never),\n strict$1('blockerClass'),\n defaulted$1('getTarget', identity),\n defaulted$1('onDrag', noop),\n defaulted$1('repositionTarget', true),\n onHandler('onDrop'),\n defaultedFunction('getBounds', win),\n SnapSchema,\n output('dragger', { handlers: handlers })\n ];\n\n var init$d = function (dragApi) {\n return derive([\n run(touchstart(), dragApi.forceDrop),\n run(touchend(), dragApi.drop),\n run(touchcancel(), dragApi.drop),\n run(touchmove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event());\n })\n ]);\n };\n\n var getDataFrom = function (touches) {\n var touch = touches[0];\n return Option.some(Position(touch.clientX, touch.clientY));\n };\n var getData$2 = function (event) {\n var raw = event.raw();\n var touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Option.none();\n };\n var getDelta$2 = function (old, nu) {\n return Position(nu.left() - old.left(), nu.top() - old.top());\n };\n\n var TouchData = /*#__PURE__*/Object.freeze({\n getData: getData$2,\n getDelta: getDelta$2\n });\n\n var handlers$1 = function (dragConfig, dragState) {\n var blockerCell = Cell(Option.none());\n var updateStartState = function (comp) {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n return derive([\n run(windowScroll(), function (comp) {\n dragState.getStartData().each(function () {\n return updateStartState(comp);\n });\n }),\n run(touchstart(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n var stop$1 = function () {\n stop(component, blockerCell.get(), dragConfig, dragState);\n blockerCell.set(Option.none());\n };\n var dragApi = {\n drop: stop$1,\n delayDrop: function () {\n },\n forceDrop: stop$1,\n move: function (event) {\n move$1(component, dragConfig, dragState, TouchData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$d(dragApi));\n blockerCell.set(Option.some(blocker));\n var start = function () {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n }),\n run(touchmove(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n move$1(component, dragConfig, dragState, TouchData, simulatedEvent.event());\n }),\n run(touchend(), function (component) {\n stop(component, blockerCell.get(), dragConfig, dragState);\n blockerCell.set(Option.none());\n }),\n run(touchcancel(), function (component) {\n stop(component, blockerCell.get(), dragConfig, dragState);\n blockerCell.set(Option.none());\n })\n ]);\n };\n var schema$t = [\n defaulted$1('useFixed', never),\n strict$1('blockerClass'),\n defaulted$1('getTarget', identity),\n defaulted$1('onDrag', noop),\n defaulted$1('repositionTarget', true),\n defaulted$1('onDrop', noop),\n defaultedFunction('getBounds', win),\n SnapSchema,\n output('dragger', { handlers: handlers$1 })\n ];\n\n var mouse = schema$s;\n var touch = schema$t;\n\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n mouse: mouse,\n touch: touch\n });\n\n var init$e = function () {\n var previous = Option.none();\n var startData = Option.none();\n var reset = function () {\n previous = Option.none();\n startData = Option.none();\n };\n var calculateDelta = function (mode, nu) {\n var result = previous.map(function (old) {\n return mode.getDelta(old, nu);\n });\n previous = Option.some(nu);\n return result;\n };\n var update = function (mode, dragEvent) {\n return mode.getData(dragEvent).bind(function (nuData) {\n return calculateDelta(mode, nuData);\n });\n };\n var setStartData = function (data) {\n startData = Option.some(data);\n };\n var getStartData = function () {\n return startData;\n };\n var readState = constant({});\n return nu$5({\n readState: readState,\n reset: reset,\n update: update,\n getStartData: getStartData,\n setStartData: setStartData\n });\n };\n\n var DragState = /*#__PURE__*/Object.freeze({\n init: init$e\n });\n\n var snapTo$1 = function (component, dragConfig, _state, snap) {\n var target = dragConfig.getTarget(component.element());\n if (dragConfig.repositionTarget) {\n var doc = owner(component.element());\n var scroll = get$8(doc);\n var origin = getOrigin(target);\n var snapPin = snapTo(snap, scroll, origin);\n var styles = toStyles(snapPin.coord, scroll, origin);\n setAll$1(target, styles);\n }\n };\n\n var DraggingApis = /*#__PURE__*/Object.freeze({\n snapTo: snapTo$1\n });\n\n var Dragging = createModes$1({\n branchKey: 'mode',\n branches: DraggingBranches,\n name: 'dragging',\n active: {\n events: function (dragConfig, dragState) {\n var dragger = dragConfig.dragger;\n return dragger.handlers(dragConfig, dragState);\n }\n },\n extra: {\n snap: MixedBag([\n 'sensor',\n 'range',\n 'output'\n ], ['extra'])\n },\n state: DragState,\n apis: DraggingApis\n });\n\n var platform$2 = detect$3();\n var snapWidth = 40;\n var snapOffset = snapWidth / 2;\n var calcSnap = function (selectorOpt, td, x, y, width, height) {\n return selectorOpt.fold(function () {\n return Dragging.snap({\n sensor: absolute$3(x - snapOffset, y - snapOffset),\n range: Position(width, height),\n output: absolute$3(Option.some(x), Option.some(y)),\n extra: { td: td }\n });\n }, function (selectorHandle) {\n var sensorLeft = x - snapOffset;\n var sensorTop = y - snapOffset;\n var sensorWidth = snapWidth;\n var sensorHeight = snapWidth;\n var rect = selectorHandle.element().dom().getBoundingClientRect();\n return Dragging.snap({\n sensor: absolute$3(sensorLeft, sensorTop),\n range: Position(sensorWidth, sensorHeight),\n output: absolute$3(Option.some(x - rect.width / 2), Option.some(y - rect.height / 2)),\n extra: { td: td }\n });\n });\n };\n var getSnapsConfig = function (getSnapPoints, cell, onChange) {\n var isSameCell = function (cellOpt, td) {\n return cellOpt.exists(function (currentTd) {\n return eq(currentTd, td);\n });\n };\n return {\n getSnapPoints: getSnapPoints,\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top',\n onSensor: function (component, extra) {\n var td = extra.td;\n if (!isSameCell(cell.get(), td)) {\n cell.set(Option.some(td));\n onChange(td);\n }\n },\n mustSnap: true\n };\n };\n var createSelector = function (snaps) {\n return record(Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-selector']\n },\n buttonBehaviours: derive$1([\n Dragging.config({\n mode: platform$2.deviceType.isTouch() ? 'touch' : 'mouse',\n blockerClass: 'blocker',\n snaps: snaps\n }),\n Unselecting.config({})\n ]),\n eventOrder: {\n mousedown: [\n 'dragging',\n 'alloy.base.behaviour'\n ],\n touchstart: [\n 'dragging',\n 'alloy.base.behaviour'\n ]\n }\n }));\n };\n var setup$b = function (editor, sink) {\n var tlTds = Cell([]);\n var brTds = Cell([]);\n var isVisible = Cell(false);\n var startCell = Cell(Option.none());\n var finishCell = Cell(Option.none());\n var getTopLeftSnap = function (td) {\n var box = absolute$1(td);\n return calcSnap(memTopLeft.getOpt(sink), td, box.x(), box.y(), box.width(), box.height());\n };\n var getTopLeftSnaps = function () {\n return map(tlTds.get(), function (td) {\n return getTopLeftSnap(td);\n });\n };\n var getBottomRightSnap = function (td) {\n var box = absolute$1(td);\n return calcSnap(memBottomRight.getOpt(sink), td, box.right(), box.bottom(), box.width(), box.height());\n };\n var getBottomRightSnaps = function () {\n return map(brTds.get(), function (td) {\n return getBottomRightSnap(td);\n });\n };\n var topLeftSnaps = getSnapsConfig(getTopLeftSnaps, startCell, function (start) {\n finishCell.get().each(function (finish) {\n editor.fire('TableSelectorChange', {\n start: start,\n finish: finish\n });\n });\n });\n var bottomRightSnaps = getSnapsConfig(getBottomRightSnaps, finishCell, function (finish) {\n startCell.get().each(function (start) {\n editor.fire('TableSelectorChange', {\n start: start,\n finish: finish\n });\n });\n });\n var memTopLeft = createSelector(topLeftSnaps);\n var memBottomRight = createSelector(bottomRightSnaps);\n var topLeft = build$1(memTopLeft.asSpec());\n var bottomRight = build$1(memBottomRight.asSpec());\n var showOrHideHandle = function (selector, cell, isAbove, isBelow) {\n var cellRect = cell.dom().getBoundingClientRect();\n remove$6(selector.element(), 'display');\n var viewportHeight = defaultView(Element.fromDom(editor.getBody())).dom().innerHeight;\n var aboveViewport = isAbove(cellRect);\n var belowViewport = isBelow(cellRect, viewportHeight);\n if (aboveViewport || belowViewport) {\n set$2(selector.element(), 'display', 'none');\n }\n };\n var snapTo = function (selector, cell, getSnapConfig, pos) {\n var snap = getSnapConfig(cell);\n Dragging.snapTo(selector, snap);\n var isAbove = function (rect) {\n return rect[pos] < 0;\n };\n var isBelow = function (rect, viewportHeight) {\n return rect[pos] > viewportHeight;\n };\n showOrHideHandle(selector, cell, isAbove, isBelow);\n };\n var snapTopLeft = function (cell) {\n return snapTo(topLeft, cell, getTopLeftSnap, 'top');\n };\n var snapLastTopLeft = function () {\n return startCell.get().each(snapTopLeft);\n };\n var snapBottomRight = function (cell) {\n return snapTo(bottomRight, cell, getBottomRightSnap, 'bottom');\n };\n var snapLastBottomRight = function () {\n return finishCell.get().each(snapBottomRight);\n };\n if (platform$2.deviceType.isTouch()) {\n editor.on('TableSelectionChange', function (e) {\n if (!isVisible.get()) {\n attach$1(sink, topLeft);\n attach$1(sink, bottomRight);\n isVisible.set(true);\n }\n startCell.set(Option.some(e.start));\n finishCell.set(Option.some(e.finish));\n e.otherCells.each(function (otherCells) {\n tlTds.set(otherCells.upOrLeftCells);\n brTds.set(otherCells.downOrRightCells);\n snapTopLeft(e.start);\n snapBottomRight(e.finish);\n });\n });\n editor.on('resize ScrollContent', function () {\n snapLastTopLeft();\n snapLastBottomRight();\n });\n editor.on('TableSelectionClear', function () {\n if (isVisible.get()) {\n detach(topLeft);\n detach(bottomRight);\n isVisible.set(false);\n }\n startCell.set(Option.none());\n finishCell.set(Option.none());\n });\n }\n };\n var TableSelectorHandles = { setup: setup$b };\n\n var ResizeTypes;\n (function (ResizeTypes) {\n ResizeTypes[ResizeTypes['None'] = 0] = 'None';\n ResizeTypes[ResizeTypes['Both'] = 1] = 'Both';\n ResizeTypes[ResizeTypes['Vertical'] = 2] = 'Vertical';\n }(ResizeTypes || (ResizeTypes = {})));\n var getDimensions = function (editor, deltas, resizeType, originalHeight, originalWidth) {\n var dimensions = {};\n dimensions.height = Utils.calcCappedSize(originalHeight + deltas.top(), getMinHeightSetting(editor), getMaxHeightSetting(editor));\n if (resizeType === ResizeTypes.Both) {\n dimensions.width = Utils.calcCappedSize(originalWidth + deltas.left(), getMinWidthSetting(editor), getMaxWidthSetting(editor));\n }\n return dimensions;\n };\n var resize$3 = function (editor, deltas, resizeType) {\n var container = Element.fromDom(editor.getContainer());\n var dimensions = getDimensions(editor, deltas, resizeType, get$6(container), get$7(container));\n each$1(dimensions, function (val, dim) {\n return set$2(container, dim, Utils.numToPx(val));\n });\n Events.fireResizeEditor(editor);\n };\n\n var isHidden$1 = function (elm) {\n if (elm.nodeType === 1) {\n if (elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus')) {\n return true;\n }\n if (elm.getAttribute('data-mce-type') === 'bookmark') {\n return true;\n }\n }\n return false;\n };\n var renderElementPath = function (editor, settings) {\n if (!settings.delimiter) {\n settings.delimiter = '\\xBB';\n }\n var getDataPath = function (data) {\n var parts = data || [];\n var newPathElements = map(parts, function (part, index) {\n return Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-item'],\n attributes: {\n 'role': 'button',\n 'data-index': index,\n 'tab-index': -1,\n 'aria-level': index + 1\n },\n innerHtml: part.name\n },\n action: function (btn) {\n editor.focus();\n editor.selection.select(part.element);\n editor.nodeChanged();\n }\n });\n });\n var divider = {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-divider'],\n attributes: { 'aria-hidden': true },\n innerHtml: ' ' + settings.delimiter + ' '\n }\n };\n return foldl(newPathElements.slice(1), function (acc, element) {\n var newAcc = acc;\n newAcc.push(divider);\n newAcc.push(element);\n return newAcc;\n }, [newPathElements[0]]);\n };\n var updatePath = function (parents) {\n var newPath = [];\n var i = parents.length;\n while (i-- > 0) {\n var parent = parents[i];\n if (parent.nodeType === 1 && !isHidden$1(parent)) {\n var args = editor.fire('ResolveName', {\n name: parent.nodeName.toLowerCase(),\n target: parent\n });\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent\n });\n }\n if (args.isPropagationStopped()) {\n break;\n }\n }\n }\n return newPath;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path'],\n attributes: { role: 'navigation' }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'flow',\n selector: 'div[role=button]'\n }),\n Tabstopping.config({}),\n Replacing.config({}),\n config('elementPathEvents', [runOnAttached(function (comp, e) {\n editor.shortcuts.add('alt+F11', 'focus statusbar elementpath', function () {\n return Keying.focusIn(comp);\n });\n editor.on('NodeChange', function (e) {\n var newPath = updatePath(e.parents);\n if (newPath.length > 0) {\n Replacing.set(comp, getDataPath(newPath));\n }\n });\n })])\n ]),\n components: []\n };\n };\n var ElementPath = { renderElementPath: renderElementPath };\n\n var renderWordCount = function (editor, providersBackstage) {\n var _a;\n var replaceCountText = function (comp, count, mode) {\n return Replacing.set(comp, [text(providersBackstage.translate([\n '{0} ' + mode,\n count[mode]\n ]))]);\n };\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-statusbar__wordcount']\n },\n components: [],\n buttonBehaviours: derive$1([\n Tabstopping.config({}),\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: {\n mode: 'words',\n count: {\n words: 0,\n characters: 0\n }\n }\n }\n }),\n config('wordcount-events', [\n run(tapOrClick(), function (comp) {\n var currentVal = Representing.getValue(comp);\n var newMode = currentVal.mode === 'words' ? 'characters' : 'words';\n Representing.setValue(comp, {\n mode: newMode,\n count: currentVal.count\n });\n replaceCountText(comp, currentVal.count, newMode);\n }),\n runOnAttached(function (comp) {\n editor.on('wordCountUpdate', function (e) {\n var mode = Representing.getValue(comp).mode;\n Representing.setValue(comp, {\n mode: mode,\n count: e.wordCount\n });\n replaceCountText(comp, e.wordCount, mode);\n });\n })\n ])\n ]),\n eventOrder: (_a = {}, _a[tapOrClick()] = [\n 'wordcount-events',\n 'alloy.base.behaviour'\n ], _a)\n });\n };\n\n var renderStatusbar = function (editor, providersBackstage) {\n var renderResizeHandlerIcon = function (resizeType) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__resize-handle'],\n attributes: { title: providersBackstage.translate('Resize') },\n innerHtml: get$c('resize-handle', providersBackstage.icons)\n },\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: function (comp, target, delta) {\n resize$3(editor, delta, resizeType);\n },\n blockerClass: 'tox-blocker'\n })])\n };\n };\n var renderBranding = function () {\n var label = global$5.translate([\n 'Powered by {0}',\n 'Tiny'\n ]);\n var linkHtml = '<a href=\"https://www.tiny.cloud/?utm_campaign=editor_referral&amp;utm_medium=poweredby&amp;utm_source=tinymce&amp;utm_content=v5\" rel=\"noopener\" target=\"_blank\" tabindex=\"-1\" aria-label=\"' + label + '\">' + label + '</a>';\n return {\n dom: {\n tag: 'span',\n classes: ['tox-statusbar__branding'],\n innerHtml: linkHtml\n }\n };\n };\n var getResizeType = function (editor) {\n var fallback = !contains$1(editor.settings.plugins, 'autoresize');\n var resize = editor.getParam('resize', fallback);\n if (resize === false) {\n return ResizeTypes.None;\n } else if (resize === 'both') {\n return ResizeTypes.Both;\n } else {\n return ResizeTypes.Vertical;\n }\n };\n var getTextComponents = function () {\n var components = [];\n if (editor.getParam('elementpath', true, 'boolean')) {\n components.push(ElementPath.renderElementPath(editor, {}));\n }\n if (contains$1(editor.settings.plugins, 'wordcount')) {\n components.push(renderWordCount(editor, providersBackstage));\n }\n if (editor.getParam('branding', true, 'boolean')) {\n components.push(renderBranding());\n }\n if (components.length > 0) {\n return [{\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__text-container']\n },\n components: components\n }];\n }\n return [];\n };\n var getComponents = function () {\n var components = getTextComponents();\n var resizeType = getResizeType(editor);\n if (resizeType !== ResizeTypes.None) {\n components.push(renderResizeHandlerIcon(resizeType));\n }\n return components;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar']\n },\n components: getComponents()\n };\n };\n\n var setup$c = function (editor) {\n var isInline = editor.inline;\n var mode = isInline ? Inline : Iframe;\n var header = isStickyToolbar(editor) ? StickyHeader : StaticHeader;\n var lazyOuterContainer = Option.none();\n var platform = detect$3();\n var isIE = platform.browser.isIE();\n var platformClasses = isIE ? ['tox-platform-ie'] : [];\n var isTouch = platform.deviceType.isTouch();\n var touchPlatformClass = 'tox-platform-touch';\n var deviceClasses = isTouch ? [touchPlatformClass] : [];\n var dirAttributes = global$5.isRtl() ? { attributes: { dir: 'rtl' } } : {};\n var lazyHeader = function () {\n return lazyOuterContainer.bind(OuterContainer.getHeader);\n };\n var sink = build$1({\n dom: __assign({\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-tinymce-aux'\n ].concat(platformClasses).concat(deviceClasses)\n }, dirAttributes),\n behaviours: derive$1([Positioning.config({\n useFixed: function () {\n return header.isDocked(lazyHeader);\n }\n })])\n });\n var lazySink = function () {\n return Result.value(sink);\n };\n var memAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-anchorbar']\n }\n });\n var lazyAnchorBar = function () {\n return lazyOuterContainer.bind(function (container) {\n return memAnchorBar.getOpt(container);\n }).getOrDie('Could not find a anchor bar element');\n };\n var lazyMoreButton = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getMoreButton(container);\n }).getOrDie('Could not find more button element');\n };\n var lazyToolbar = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getToolbar(container);\n }).getOrDie('Could not find more toolbar element');\n };\n var lazyThrobber = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getThrobber(container);\n }).getOrDie('Could not find throbber element');\n };\n var backstage = init$8(sink, editor, lazyAnchorBar, lazyMoreButton);\n var partMenubar = OuterContainer.parts().menubar({\n dom: {\n tag: 'div',\n classes: ['tox-menubar']\n },\n backstage: backstage,\n onEscape: function () {\n editor.focus();\n }\n });\n var toolbarDrawer = getToolbarDrawer(editor);\n var partToolbar = OuterContainer.parts().toolbar({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n getSink: lazySink,\n backstage: backstage,\n onEscape: function () {\n editor.focus();\n },\n split: toolbarDrawer,\n lazyToolbar: lazyToolbar,\n lazyMoreButton: lazyMoreButton,\n lazyHeader: function () {\n return lazyHeader().getOrDie('Could not find header element');\n }\n });\n var partMultipleToolbar = OuterContainer.parts()['multiple-toolbar']({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n onEscape: function () {\n },\n split: toolbarDrawer\n });\n var partSocket = OuterContainer.parts().socket({\n dom: {\n tag: 'div',\n classes: ['tox-edit-area']\n }\n });\n var partSidebar = OuterContainer.parts().sidebar({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar']\n }\n });\n var partThrobber = OuterContainer.parts().throbber({\n dom: {\n tag: 'div',\n classes: ['tox-throbber']\n },\n backstage: backstage\n });\n var sb = editor.getParam('statusbar', true, 'boolean');\n var statusbar = sb && !isInline ? Option.some(renderStatusbar(editor, backstage.shared.providers)) : Option.none();\n var socketSidebarContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar-wrap']\n },\n components: [\n partSocket,\n partSidebar\n ]\n };\n var hasMultipleToolbar = isMultipleToolbars(editor);\n var hasToolbar = isToolbarEnabled(editor);\n var hasMenubar = isMenubarEnabled(editor);\n var getPartToolbar = function () {\n if (hasMultipleToolbar) {\n return [partMultipleToolbar];\n } else if (hasToolbar) {\n return [partToolbar];\n } else {\n return [];\n }\n };\n var partHeader = OuterContainer.parts().header({\n dom: {\n tag: 'div',\n classes: ['tox-editor-header']\n },\n components: flatten([\n hasMenubar ? [partMenubar] : [],\n getPartToolbar(),\n useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()]\n ]),\n sticky: isStickyToolbar(editor),\n editor: editor,\n getSink: lazySink\n });\n var editorComponents = flatten([\n [partHeader],\n isInline ? [] : [socketSidebarContainer]\n ]);\n var editorContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-editor-container']\n },\n components: editorComponents\n };\n var containerComponents = flatten([\n [editorContainer],\n isInline ? [] : statusbar.toArray(),\n [partThrobber]\n ]);\n var isHidden = isDistractionFree(editor);\n var attributes = __assign(__assign({ role: 'application' }, global$5.isRtl() ? { dir: 'rtl' } : {}), isHidden ? { 'aria-hidden': 'true' } : {});\n var outerContainer = build$1(OuterContainer.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-tinymce'\n ].concat(isInline ? ['tox-tinymce-inline'] : []).concat(deviceClasses).concat(platformClasses),\n styles: __assign({ visibility: 'hidden' }, isHidden ? {\n opacity: '0',\n border: '0'\n } : {}),\n attributes: attributes\n },\n components: containerComponents,\n behaviours: derive$1([Keying.config({\n mode: 'cyclic',\n selector: '.tox-menubar, .tox-toolbar, .tox-toolbar__primary, .tox-toolbar__overflow--open, .tox-sidebar__overflow--open, .tox-statusbar__path, .tox-statusbar__wordcount, .tox-statusbar__branding a'\n })])\n }));\n lazyOuterContainer = Option.some(outerContainer);\n editor.shortcuts.add('alt+F9', 'focus menubar', function () {\n OuterContainer.focusMenubar(outerContainer);\n });\n editor.shortcuts.add('alt+F10', 'focus toolbar', function () {\n OuterContainer.focusToolbar(outerContainer);\n });\n var mothership = takeover(outerContainer);\n var uiMothership = takeover(sink);\n Events$1.setup(editor, mothership, uiMothership);\n TouchEvents.setup(editor);\n var getUi = function () {\n var channels = {\n broadcastAll: uiMothership.broadcast,\n broadcastOn: uiMothership.broadcastOn,\n register: function () {\n }\n };\n return { channels: channels };\n };\n var setEditorSize = function () {\n var parsedHeight = Utils.numToPx(getHeightWithFallback(editor));\n var parsedWidth = Utils.numToPx(getWidthWithFallback(editor));\n if (!editor.inline) {\n if (isValidValue('div', 'width', parsedWidth)) {\n set$2(outerContainer.element(), 'width', parsedWidth);\n }\n if (isValidValue('div', 'height', parsedHeight)) {\n set$2(outerContainer.element(), 'height', parsedHeight);\n } else {\n set$2(outerContainer.element(), 'height', '200px');\n }\n }\n return parsedHeight;\n };\n var renderUI = function () {\n header.setup(editor, lazyHeader);\n FormatControls.setup(editor, backstage);\n setup$a(editor, lazySink, backstage);\n setup$7(editor);\n setup$8(editor, lazyThrobber, backstage.shared);\n var _a = editor.ui.registry.getAll(), buttons = _a.buttons, menuItems = _a.menuItems, contextToolbars = _a.contextToolbars, sidebars = _a.sidebars;\n var toolbarOpt = getMultipleToolbarsSetting(editor);\n var rawUiConfig = {\n menuItems: menuItems,\n menus: !editor.settings.menu ? {} : map$1(editor.settings.menu, function (menu) {\n return merge(menu, { items: menu.items });\n }),\n menubar: editor.settings.menubar,\n toolbar: toolbarOpt.getOrThunk(function () {\n return editor.getParam('toolbar', true);\n }),\n buttons: buttons,\n sidebar: sidebars\n };\n ContextToolbar.register(editor, contextToolbars, sink, { backstage: backstage });\n TableSelectorHandles.setup(editor, sink);\n var elm = editor.getElement();\n var height = setEditorSize();\n var uiComponents = {\n mothership: mothership,\n uiMothership: uiMothership,\n outerContainer: outerContainer\n };\n var args = {\n targetNode: elm,\n height: height\n };\n return mode.render(editor, uiComponents, rawUiConfig, backstage, args);\n };\n return {\n mothership: mothership,\n uiMothership: uiMothership,\n backstage: backstage,\n renderUI: renderUI,\n getUi: getUi\n };\n };\n var Render = { setup: setup$c };\n\n var describedBy = function (describedElement, describeElement) {\n var describeId = Option.from(get$2(describedElement, 'id')).fold(function () {\n var id = generate$1('dialog-describe');\n set$1(describeElement, 'id', id);\n return id;\n }, identity);\n set$1(describedElement, 'aria-describedby', describeId);\n };\n\n var AriaLabel = {\n labelledBy: function (labelledElement, labelElement) {\n var labelId = Option.from(get$2(labelledElement, 'id')).fold(function () {\n var id = generate$1('dialog-label');\n set$1(labelElement, 'id', id);\n return id;\n }, identity);\n set$1(labelledElement, 'aria-labelledby', labelId);\n }\n };\n\n var schema$u = constant([\n strict$1('lazySink'),\n option('dragBlockClass'),\n defaultedFunction('getBounds', win),\n defaulted$1('useTabstopAt', constant(true)),\n defaulted$1('eventOrder', {}),\n field$1('modalBehaviours', [Keying]),\n onKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape')\n ]);\n var basic = { sketch: identity };\n var parts$e = constant([\n optional({\n name: 'draghandle',\n overrides: function (detail, spec) {\n return {\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n getTarget: function (handle) {\n return ancestor$1(handle, '[role=\"dialog\"]').getOr(handle);\n },\n blockerClass: detail.dragBlockClass.getOrDie(new Error('The drag blocker class was not specified for a dialog with a drag handle: \\n' + JSON.stringify(spec, null, 2)).message),\n getBounds: detail.getDragBounds\n })])\n };\n }\n }),\n required({\n schema: [strict$1('dom')],\n name: 'title'\n }),\n required({\n factory: basic,\n schema: [strict$1('dom')],\n name: 'close'\n }),\n required({\n factory: basic,\n schema: [strict$1('dom')],\n name: 'body'\n }),\n optional({\n factory: basic,\n schema: [strict$1('dom')],\n name: 'footer'\n }),\n external$1({\n factory: {\n sketch: function (spec, detail) {\n return __assign(__assign({}, spec), {\n dom: detail.dom,\n components: detail.components\n });\n }\n },\n schema: [\n defaulted$1('dom', {\n tag: 'div',\n styles: {\n position: 'fixed',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px'\n }\n }),\n defaulted$1('components', [])\n ],\n name: 'blocker'\n })\n ]);\n\n var factory$h = function (detail, components, spec, externals) {\n var dialogBusyEvent = generate$1('alloy.dialog.busy');\n var dialogIdleEvent = generate$1('alloy.dialog.idle');\n var busyBehaviours = derive$1([\n Keying.config({\n mode: 'special',\n onTab: function () {\n return Option.some(true);\n },\n onShiftTab: function () {\n return Option.some(true);\n }\n }),\n Focusing.config({})\n ]);\n var showDialog = function (dialog) {\n var sink = detail.lazySink(dialog).getOrDie();\n var busyComp = Cell(Option.none());\n var externalBlocker = externals.blocker();\n var blocker = sink.getSystem().build(__assign(__assign({}, externalBlocker), {\n components: externalBlocker.components.concat([premade$1(dialog)]),\n behaviours: derive$1([\n Focusing.config({}),\n config('dialog-blocker-events', [\n runOnSource(focusin(), function () {\n Keying.focusIn(dialog);\n }),\n run(dialogIdleEvent, function (blocker, se) {\n if (has$1(dialog.element(), 'aria-busy')) {\n remove$1(dialog.element(), 'aria-busy');\n busyComp.get().each(function (bc) {\n return Replacing.remove(dialog, bc);\n });\n }\n }),\n run(dialogBusyEvent, function (blocker, se) {\n set$1(dialog.element(), 'aria-busy', 'true');\n var getBusySpec = se.event().getBusySpec();\n busyComp.get().each(function (bc) {\n Replacing.remove(dialog, bc);\n });\n var busySpec = getBusySpec(dialog, busyBehaviours);\n var busy = blocker.getSystem().build(busySpec);\n busyComp.set(Option.some(busy));\n Replacing.append(dialog, premade$1(busy));\n if (busy.hasConfigured(Keying)) {\n Keying.focusIn(busy);\n }\n })\n ])\n ])\n }));\n attach$1(sink, blocker);\n Keying.focusIn(dialog);\n };\n var hideDialog = function (dialog) {\n parent(dialog.element()).each(function (blockerDom) {\n dialog.getSystem().getByDom(blockerDom).each(function (blocker) {\n detach(blocker);\n });\n });\n };\n var getDialogBody = function (dialog) {\n return getPartOrDie(dialog, detail, 'body');\n };\n var getDialogFooter = function (dialog) {\n return getPartOrDie(dialog, detail, 'footer');\n };\n var setBusy = function (dialog, getBusySpec) {\n emitWith(dialog, dialogBusyEvent, { getBusySpec: getBusySpec });\n };\n var setIdle = function (dialog) {\n emit(dialog, dialogIdleEvent);\n };\n var modalEventsId = generate$1('modal-events');\n var eventOrder = __assign(__assign({}, detail.eventOrder), { 'alloy.system.attached': [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || []) });\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: {\n show: showDialog,\n hide: hideDialog,\n getBody: getDialogBody,\n getFooter: getDialogFooter,\n setIdle: setIdle,\n setBusy: setBusy\n },\n eventOrder: eventOrder,\n domModification: {\n attributes: {\n 'role': 'dialog',\n 'aria-modal': 'true'\n }\n },\n behaviours: augment(detail.modalBehaviours, [\n Replacing.config({}),\n Keying.config({\n mode: 'cyclic',\n onEnter: detail.onExecute,\n onEscape: detail.onEscape,\n useTabstopAt: detail.useTabstopAt\n }),\n config(modalEventsId, [runOnAttached(function (c) {\n AriaLabel.labelledBy(c.element(), getPartOrDie(c, detail, 'title').element());\n describedBy(c.element(), getPartOrDie(c, detail, 'body').element());\n })])\n ])\n };\n };\n var ModalDialog = composite$1({\n name: 'ModalDialog',\n configFields: schema$u(),\n partFields: parts$e(),\n factory: factory$h,\n apis: {\n show: function (apis, dialog) {\n apis.show(dialog);\n },\n hide: function (apis, dialog) {\n apis.hide(dialog);\n },\n getBody: function (apis, dialog) {\n return apis.getBody(dialog);\n },\n getFooter: function (apis, dialog) {\n return apis.getFooter(dialog);\n },\n setBusy: function (apis, dialog, getBusySpec) {\n apis.setBusy(dialog, getBusySpec);\n },\n setIdle: function (apis, dialog) {\n apis.setIdle(dialog);\n }\n }\n });\n\n var alertBannerFields = [\n strictString('type'),\n strictString('text'),\n strictStringEnum('level', [\n 'info',\n 'warn',\n 'error',\n 'success'\n ]),\n strictString('icon'),\n defaulted$1('url', '')\n ];\n var alertBannerSchema = objOf(alertBannerFields);\n\n var createBarFields = function (itemsField) {\n return [\n strictString('type'),\n itemsField\n ];\n };\n\n var buttonFields = [\n strictString('type'),\n strictString('text'),\n defaultedBoolean('disabled', false),\n defaultedBoolean('primary', false),\n field('name', 'name', defaultedThunk(function () {\n return generate$1('button-name');\n }), string),\n optionString('icon'),\n defaultedBoolean('borderless', false)\n ];\n var buttonSchema = objOf(buttonFields);\n\n var checkboxFields = [\n strictString('type'),\n strictString('name'),\n strictString('label'),\n defaultedBoolean('disabled', false)\n ];\n var checkboxSchema = objOf(checkboxFields);\n var checkboxDataProcessor = boolean;\n\n var formComponentFields = [\n strictString('type'),\n strictString('name')\n ];\n var formComponentWithLabelFields = formComponentFields.concat([optionString('label')]);\n\n var colorInputFields = formComponentWithLabelFields;\n var colorInputSchema = objOf(colorInputFields);\n var colorInputDataProcessor = string;\n\n var colorPickerFields = formComponentWithLabelFields;\n var colorPickerSchema = objOf(colorPickerFields);\n var colorPickerDataProcessor = string;\n\n var dropZoneFields = formComponentWithLabelFields;\n var dropZoneSchema = objOf(dropZoneFields);\n var dropZoneDataProcessor = arrOfVal();\n\n var createGridFields = function (itemsField) {\n return [\n strictString('type'),\n strictNumber('columns'),\n itemsField\n ];\n };\n\n var iframeFields = formComponentWithLabelFields.concat([defaultedBoolean('sandboxed', true)]);\n var iframeSchema = objOf(iframeFields);\n var iframeDataProcessor = string;\n\n var inputFields = formComponentWithLabelFields.concat([\n optionString('inputMode'),\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n defaultedBoolean('disabled', false)\n ]);\n var inputSchema = objOf(inputFields);\n var inputDataProcessor = string;\n\n var selectBoxFields = formComponentWithLabelFields.concat([\n strictArrayOfObj('items', [\n strictString('text'),\n strictString('value')\n ]),\n defaultedNumber('size', 1),\n defaultedBoolean('disabled', false)\n ]);\n var selectBoxSchema = objOf(selectBoxFields);\n var selectBoxDataProcessor = string;\n\n var sizeInputFields = formComponentWithLabelFields.concat([\n defaultedBoolean('constrain', true),\n defaultedBoolean('disabled', false)\n ]);\n var sizeInputSchema = objOf(sizeInputFields);\n var sizeInputDataProcessor = objOf([\n strictString('width'),\n strictString('height')\n ]);\n\n var textAreaFields = formComponentWithLabelFields.concat([\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n defaultedBoolean('disabled', false)\n ]);\n var textAreaSchema = objOf(textAreaFields);\n var textAreaDataProcessor = string;\n\n var urlInputFields = formComponentWithLabelFields.concat([\n defaultedStringEnum('filetype', 'file', [\n 'image',\n 'media',\n 'file'\n ]),\n defaulted$1('disabled', false)\n ]);\n var urlInputSchema = objOf(urlInputFields);\n var urlInputDataProcessor = objOf([\n strictString('value'),\n defaulted$1('meta', {})\n ]);\n\n var customEditorFields = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n strictString('scriptId'),\n strictString('scriptUrl'),\n defaultedPostMsg('settings', undefined)\n ]);\n var customEditorFieldsOld = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n strictFunction('init')\n ]);\n var customEditorSchema = valueOf(function (v) {\n return asRaw('customeditor.old', objOfOnly(customEditorFieldsOld), v).orThunk(function () {\n return asRaw('customeditor.new', objOfOnly(customEditorFields), v);\n });\n });\n var customEditorDataProcessor = string;\n\n var htmlPanelFields = [\n strictString('type'),\n strictString('html'),\n defaultedStringEnum('presets', 'presentation', [\n 'presentation',\n 'document'\n ])\n ];\n var htmlPanelSchema = objOf(htmlPanelFields);\n\n var imageToolsFields = formComponentWithLabelFields.concat([strictOf('currentState', objOf([\n strict$1('blob'),\n strictString('url')\n ]))]);\n var imageToolsSchema = objOf(imageToolsFields);\n\n var collectionFields = formComponentWithLabelFields.concat([defaulted$1('columns', 'auto')]);\n var collectionSchema = objOf(collectionFields);\n var collectionDataProcessor = arrOfObj$1([\n strictString('value'),\n strictString('text'),\n strictString('icon')\n ]);\n\n var createLabelFields = function (itemsField) {\n return [\n strictString('type'),\n strictString('label'),\n itemsField\n ];\n };\n\n var tableFields = [\n strictString('type'),\n strictArrayOf('header', string),\n strictArrayOf('cells', arrOf(string))\n ];\n var tableSchema = objOf(tableFields);\n\n var createItemsField = function (name) {\n return field('items', 'items', strict(), arrOf(valueOf(function (v) {\n return asRaw('Checking item of ' + name, itemSchema$2, v).fold(function (sErr) {\n return Result.error(formatError(sErr));\n }, function (passValue) {\n return Result.value(passValue);\n });\n })));\n };\n var itemSchema$2 = valueThunkOf(function () {\n return chooseProcessor('type', {\n alertbanner: alertBannerSchema,\n bar: objOf(createBarFields(createItemsField('bar'))),\n button: buttonSchema,\n checkbox: checkboxSchema,\n colorinput: colorInputSchema,\n colorpicker: colorPickerSchema,\n dropzone: dropZoneSchema,\n grid: objOf(createGridFields(createItemsField('grid'))),\n iframe: iframeSchema,\n input: inputSchema,\n selectbox: selectBoxSchema,\n sizeinput: sizeInputSchema,\n textarea: textAreaSchema,\n urlinput: urlInputSchema,\n customeditor: customEditorSchema,\n htmlpanel: htmlPanelSchema,\n imagetools: imageToolsSchema,\n collection: collectionSchema,\n label: objOf(createLabelFields(createItemsField('label'))),\n table: tableSchema,\n panel: panelSchema\n });\n });\n var panelFields = [\n strictString('type'),\n defaulted$1('classes', []),\n strictArrayOf('items', itemSchema$2)\n ];\n var panelSchema = objOf(panelFields);\n\n var tabFields = [\n field('name', 'name', defaultedThunk(function () {\n return generate$1('tab-name');\n }), string),\n strictString('title'),\n strictArrayOf('items', itemSchema$2)\n ];\n var tabPanelFields = [\n strictString('type'),\n strictArrayOfObj('tabs', tabFields)\n ];\n var tabPanelSchema = objOf(tabPanelFields);\n\n var dialogToggleMenuItemSchema = objOf([\n strictString('type'),\n strictString('name'),\n defaultedBoolean('active', false)\n ].concat(commonMenuItemFields));\n var dialogToggleMenuItemDataProcessor = boolean;\n\n var baseButtonFields = [\n field('name', 'name', defaultedThunk(function () {\n return generate$1('button-name');\n }), string),\n optionString('icon'),\n defaultedStringEnum('align', 'end', [\n 'start',\n 'end'\n ]),\n defaultedBoolean('primary', false),\n defaultedBoolean('disabled', false)\n ];\n var dialogButtonFields = __spreadArrays(baseButtonFields, [strictString('text')]);\n var normalButtonFields = __spreadArrays([strictStringEnum('type', [\n 'submit',\n 'cancel',\n 'custom'\n ])], dialogButtonFields);\n var menuButtonFields = __spreadArrays([\n strictStringEnum('type', ['menu']),\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n strictArrayOf('items', dialogToggleMenuItemSchema),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ], baseButtonFields);\n var dialogButtonSchema = choose$1('type', {\n submit: normalButtonFields,\n cancel: normalButtonFields,\n custom: normalButtonFields,\n menu: menuButtonFields\n });\n\n var dialogButtonFields$1 = dialogButtonFields;\n var dialogButtonSchema$1 = dialogButtonSchema;\n var dialogSchema = objOf([\n strictString('title'),\n strictOf('body', chooseProcessor('type', {\n panel: panelSchema,\n tabpanel: tabPanelSchema\n })),\n defaultedString('size', 'normal'),\n strictArrayOf('buttons', dialogButtonSchema$1),\n defaulted$1('initialData', {}),\n defaultedFunction('onAction', noop),\n defaultedFunction('onChange', noop),\n defaultedFunction('onSubmit', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onCancel', noop),\n defaulted$1('onTabChange', noop)\n ]);\n var createDialog = function (spec) {\n return asRaw('dialog', dialogSchema, spec);\n };\n\n var getAllObjects = function (obj) {\n if (isObject(obj)) {\n return [obj].concat(bind(values(obj), getAllObjects));\n } else if (isArray(obj)) {\n return bind(obj, getAllObjects);\n } else {\n return [];\n }\n };\n\n var isNamedItem = function (obj) {\n return isString(obj.type) && isString(obj.name);\n };\n var dataProcessors = {\n checkbox: checkboxDataProcessor,\n colorinput: colorInputDataProcessor,\n colorpicker: colorPickerDataProcessor,\n dropzone: dropZoneDataProcessor,\n input: inputDataProcessor,\n iframe: iframeDataProcessor,\n sizeinput: sizeInputDataProcessor,\n selectbox: selectBoxDataProcessor,\n size: sizeInputDataProcessor,\n textarea: textAreaDataProcessor,\n urlinput: urlInputDataProcessor,\n customeditor: customEditorDataProcessor,\n collection: collectionDataProcessor,\n togglemenuitem: dialogToggleMenuItemDataProcessor\n };\n var getDataProcessor = function (item) {\n return Option.from(dataProcessors[item.type]);\n };\n var getNamedItems = function (structure) {\n return filter(getAllObjects(structure), isNamedItem);\n };\n\n var createDataValidator = function (structure) {\n var namedItems = getNamedItems(structure);\n var fields = bind(namedItems, function (item) {\n return getDataProcessor(item).fold(function () {\n return [];\n }, function (schema) {\n return [strictOf(item.name, schema)];\n });\n });\n return objOf(fields);\n };\n\n var urlDialogButtonSchema = objOf(__spreadArrays([strictStringEnum('type', [\n 'cancel',\n 'custom'\n ])], dialogButtonFields$1));\n var urlDialogSchema = objOf([\n strictString('title'),\n strictString('url'),\n optionNumber('height'),\n optionNumber('width'),\n optionArrayOf('buttons', urlDialogButtonSchema),\n defaultedFunction('onAction', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onMessage', noop)\n ]);\n var createUrlDialog = function (spec) {\n return asRaw('dialog', urlDialogSchema, spec);\n };\n\n var extract$1 = function (structure) {\n var internalDialog = getOrDie(createDialog(structure));\n var dataValidator = createDataValidator(structure);\n var initialData = structure.initialData;\n return {\n internalDialog: internalDialog,\n dataValidator: dataValidator,\n initialData: initialData\n };\n };\n var DialogManager = {\n open: function (factory, structure) {\n var extraction = extract$1(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: function (factory, structure) {\n var internalDialog = getOrDie(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: function (structure) {\n return extract$1(structure);\n }\n };\n\n var value$3 = function () {\n var subject = Cell(Option.none());\n var clear = function () {\n subject.set(Option.none());\n };\n var set = function (s) {\n subject.set(Option.some(s));\n };\n var on = function (f) {\n subject.get().each(f);\n };\n var isSet = function () {\n return subject.get().isSome();\n };\n return {\n clear: clear,\n set: set,\n isSet: isSet,\n on: on\n };\n };\n\n var toValidValues = function (values) {\n var errors = [];\n var result = {};\n each$1(values, function (value, name) {\n value.fold(function () {\n errors.push(name);\n }, function (v) {\n result[name] = v;\n });\n });\n return errors.length > 0 ? Result.error(errors) : Result.value(result);\n };\n\n var renderBodyPanel = function (spec, backstage) {\n var memForm = record(Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form'].concat(spec.classes)\n },\n components: map(spec.items, function (item) {\n return interpretInForm(parts, item, backstage);\n })\n };\n }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [memForm.asSpec()]\n }],\n behaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(NavigableObject.isPseudoStop)\n }),\n ComposingConfigs.memento(memForm),\n RepresentingConfigs.memento(memForm, {\n postprocess: function (formValue) {\n return toValidValues(formValue).fold(function (err) {\n domGlobals.console.error(err);\n return {};\n }, function (vals) {\n return vals;\n });\n }\n })\n ])\n };\n };\n\n var factory$i = function (detail, spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$7(detail.action),\n behaviours: augment(detail.tabButtonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n })\n ]),\n domModification: detail.domModification\n };\n };\n var TabButton = single$2({\n name: 'TabButton',\n configFields: [\n defaulted$1('uid', undefined),\n strict$1('value'),\n field('dom', 'dom', mergeWithThunk(function (spec) {\n return {\n attributes: {\n 'role': 'tab',\n 'id': generate$1('aria'),\n 'aria-selected': 'false'\n }\n };\n }), anyValue$1()),\n option('action'),\n defaulted$1('domModification', {}),\n field$1('tabButtonBehaviours', [\n Focusing,\n Keying,\n Representing\n ]),\n strict$1('view')\n ],\n factory: factory$i\n });\n\n var schema$v = constant([\n strict$1('tabs'),\n strict$1('dom'),\n defaulted$1('clickToDismiss', false),\n field$1('tabbarBehaviours', [\n Highlighting,\n Keying\n ]),\n markers([\n 'tabClass',\n 'selectedClass'\n ])\n ]);\n var tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: function (barDetail, tabSpec) {\n var dismissTab$1 = function (tabbar, button) {\n Highlighting.dehighlight(tabbar, button);\n emitWith(tabbar, dismissTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n var changeTab$1 = function (tabbar, button) {\n Highlighting.highlight(tabbar, button);\n emitWith(tabbar, changeTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n return {\n action: function (button) {\n var tabbar = button.getSystem().getByUid(barDetail.uid).getOrDie();\n var activeButton = Highlighting.isHighlighted(tabbar, button);\n var response = function () {\n if (activeButton && barDetail.clickToDismiss) {\n return dismissTab$1;\n } else if (!activeButton) {\n return changeTab$1;\n } else {\n return noop;\n }\n }();\n response(tabbar, button);\n },\n domModification: { classes: [barDetail.markers.tabClass] }\n };\n }\n });\n var parts$f = constant([tabsPart]);\n\n var factory$j = function (detail, components, spec, externals) {\n return {\n 'uid': detail.uid,\n 'dom': detail.dom,\n 'components': components,\n 'debug.sketcher': 'Tabbar',\n 'domModification': { attributes: { role: 'tablist' } },\n 'behaviours': augment(detail.tabbarBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedClass,\n itemClass: detail.markers.tabClass,\n onHighlight: function (tabbar, tab) {\n set$1(tab.element(), 'aria-selected', 'true');\n },\n onDehighlight: function (tabbar, tab) {\n set$1(tab.element(), 'aria-selected', 'false');\n }\n }),\n Keying.config({\n mode: 'flow',\n getInitial: function (tabbar) {\n return Highlighting.getHighlighted(tabbar).map(function (tab) {\n return tab.element();\n });\n },\n selector: '.' + detail.markers.tabClass,\n executeOnMove: true\n })\n ])\n };\n };\n var Tabbar = composite$1({\n name: 'Tabbar',\n configFields: schema$v(),\n partFields: parts$f(),\n factory: factory$j\n });\n\n var factory$k = function (detail, spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.tabviewBehaviours, [Replacing.config({})]),\n domModification: { attributes: { role: 'tabpanel' } }\n };\n };\n var Tabview = single$2({\n name: 'Tabview',\n configFields: [field$1('tabviewBehaviours', [Replacing])],\n factory: factory$k\n });\n\n var schema$w = constant([\n defaulted$1('selectFirst', true),\n onHandler('onChangeTab'),\n onHandler('onDismissTab'),\n defaulted$1('tabs', []),\n field$1('tabSectionBehaviours', [])\n ]);\n var barPart = required({\n factory: Tabbar,\n schema: [\n strict$1('dom'),\n strictObjOf('markers', [\n strict$1('tabClass'),\n strict$1('selectedClass')\n ])\n ],\n name: 'tabbar',\n defaults: function (detail) {\n return { tabs: detail.tabs };\n }\n });\n var viewPart = required({\n factory: Tabview,\n name: 'tabview'\n });\n var parts$g = constant([\n barPart,\n viewPart\n ]);\n\n var factory$l = function (detail, components, spec, externals) {\n var changeTab$1 = function (button) {\n var tabValue = Representing.getValue(button);\n getPart(button, detail, 'tabview').each(function (tabview) {\n var tabWithValue = find(detail.tabs, function (t) {\n return t.value === tabValue;\n });\n tabWithValue.each(function (tabData) {\n var panel = tabData.view();\n set$1(tabview.element(), 'aria-labelledby', get$2(button.element(), 'id'));\n Replacing.set(tabview, panel);\n detail.onChangeTab(tabview, button, panel);\n });\n });\n };\n var changeTabBy = function (section, byPred) {\n getPart(section, detail, 'tabbar').each(function (tabbar) {\n byPred(tabbar).each(emitExecute);\n });\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: get$b(detail.tabSectionBehaviours),\n events: derive(flatten([\n detail.selectFirst ? [runOnAttached(function (section, simulatedEvent) {\n changeTabBy(section, Highlighting.getFirst);\n })] : [],\n [\n run(changeTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event().button();\n changeTab$1(button);\n }),\n run(dismissTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event().button();\n detail.onDismissTab(section, button);\n })\n ]\n ])),\n apis: {\n getViewItems: function (section) {\n return getPart(section, detail, 'tabview').map(function (tabview) {\n return Replacing.contents(tabview);\n }).getOr([]);\n },\n showTab: function (section, tabKey) {\n var getTabIfNotActive = function (tabbar) {\n var candidates = Highlighting.getCandidates(tabbar);\n var optTab = find(candidates, function (c) {\n return Representing.getValue(c) === tabKey;\n });\n return optTab.filter(function (tab) {\n return !Highlighting.isHighlighted(tabbar, tab);\n });\n };\n changeTabBy(section, getTabIfNotActive);\n }\n }\n };\n };\n var TabSection = composite$1({\n name: 'TabSection',\n configFields: schema$w(),\n partFields: parts$g(),\n factory: factory$l,\n apis: {\n getViewItems: function (apis, component) {\n return apis.getViewItems(component);\n },\n showTab: function (apis, component, tabKey) {\n apis.showTab(component, tabKey);\n }\n }\n });\n\n var measureHeights = function (allTabs, tabview, tabviewComp) {\n return map(allTabs, function (tab, i) {\n Replacing.set(tabviewComp, allTabs[i].view());\n var rect = tabview.dom().getBoundingClientRect();\n Replacing.set(tabviewComp, []);\n return rect.height;\n });\n };\n var getMaxHeight = function (heights) {\n return head(sort(heights, function (a, b) {\n if (a > b) {\n return -1;\n } else if (a < b) {\n return +1;\n } else {\n return 0;\n }\n }));\n };\n var getMaxTabviewHeight = function (dialog, tabview, tablist) {\n var documentElement$1 = documentElement(dialog).dom();\n var rootElm = ancestor$1(dialog, '.tox-dialog-wrap').getOr(dialog);\n var isFixed = get$4(rootElm, 'position') === 'fixed';\n var maxHeight;\n if (isFixed) {\n maxHeight = Math.max(documentElement$1.clientHeight, domGlobals.window.innerHeight);\n } else {\n maxHeight = Math.max(documentElement$1.offsetHeight, documentElement$1.scrollHeight);\n }\n var tabviewHeight = get$6(tabview);\n var isTabListBeside = tabview.dom().offsetLeft >= tablist.dom().offsetLeft + get$7(tablist);\n var currentTabHeight = isTabListBeside ? Math.max(get$6(tablist), tabviewHeight) : tabviewHeight;\n var dialogTopMargin = parseInt(get$4(dialog, 'margin-top'), 10) || 0;\n var dialogBottomMargin = parseInt(get$4(dialog, 'margin-bottom'), 10) || 0;\n var dialogHeight = get$6(dialog) + dialogTopMargin + dialogBottomMargin;\n var chromeHeight = dialogHeight - currentTabHeight;\n return maxHeight - chromeHeight;\n };\n var showTab = function (allTabs, comp) {\n head(allTabs).each(function (tab) {\n return TabSection.showTab(comp, tab.value);\n });\n };\n var setTabviewHeight = function (tabview, height) {\n set$2(tabview, 'height', height + 'px');\n if (!detect$3().browser.isIE()) {\n set$2(tabview, 'flex-basis', height + 'px');\n } else {\n remove$6(tabview, 'flex-basis');\n }\n };\n var updateTabviewHeight = function (dialogBody, tabview, maxTabHeight) {\n ancestor$1(dialogBody, '[role=\"dialog\"]').each(function (dialog) {\n descendant$1(dialog, '[role=\"tablist\"]').each(function (tablist) {\n maxTabHeight.get().map(function (height) {\n set$2(tabview, 'height', '0');\n set$2(tabview, 'flex-basis', '0');\n return Math.min(height, getMaxTabviewHeight(dialog, tabview, tablist));\n }).each(function (height) {\n setTabviewHeight(tabview, height);\n });\n });\n });\n };\n var getTabview = function (dialog) {\n return descendant$1(dialog, '[role=\"tabpanel\"]');\n };\n var setMode = function (allTabs) {\n var smartTabHeight = function () {\n var maxTabHeight = Cell(Option.none());\n var extraEvents = [\n runOnAttached(function (comp) {\n var dialog = comp.element();\n getTabview(dialog).each(function (tabview) {\n set$2(tabview, 'visibility', 'hidden');\n comp.getSystem().getByDom(tabview).toOption().each(function (tabviewComp) {\n var heights = measureHeights(allTabs, tabview, tabviewComp);\n var maxTabHeightOpt = getMaxHeight(heights);\n maxTabHeight.set(maxTabHeightOpt);\n });\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n remove$6(tabview, 'visibility');\n showTab(allTabs, comp);\n global$2.requestAnimationFrame(function () {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n });\n }),\n run(windowResize(), function (comp) {\n var dialog = comp.element();\n getTabview(dialog).each(function (tabview) {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n }),\n run(formResizeEvent, function (comp, se) {\n var dialog = comp.element();\n getTabview(dialog).each(function (tabview) {\n var oldFocus = active();\n set$2(tabview, 'visibility', 'hidden');\n var oldHeight = getRaw(tabview, 'height').map(function (h) {\n return parseInt(h, 10);\n });\n remove$6(tabview, 'height');\n remove$6(tabview, 'flex-basis');\n var newHeight = tabview.dom().getBoundingClientRect().height;\n var hasGrown = oldHeight.forall(function (h) {\n return newHeight > h;\n });\n if (hasGrown) {\n maxTabHeight.set(Option.from(newHeight));\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n } else {\n oldHeight.each(function (h) {\n setTabviewHeight(tabview, h);\n });\n }\n remove$6(tabview, 'visibility');\n oldFocus.each(focus$1);\n });\n })\n ];\n var selectFirst = false;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n var naiveTabHeight = function () {\n var extraEvents = [];\n var selectFirst = true;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n return {\n smartTabHeight: smartTabHeight,\n naiveTabHeight: naiveTabHeight\n };\n };\n\n var SendDataToSectionChannel = 'send-data-to-section';\n var SendDataToViewChannel = 'send-data-to-view';\n var renderTabPanel = function (spec, backstage) {\n var storedValue = Cell({});\n var updateDataWithForm = function (form) {\n var formData = Representing.getValue(form);\n var validData = toValidValues(formData).getOr({});\n var currentData = storedValue.get();\n var newData = deepMerge(currentData, validData);\n storedValue.set(newData);\n };\n var setDataOnForm = function (form) {\n var tabData = storedValue.get();\n Representing.setValue(form, tabData);\n };\n var oldTab = Cell(null);\n var allTabs = map(spec.tabs, function (tab) {\n return {\n value: tab.name,\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav-item'],\n innerHtml: backstage.shared.providers.translate(tab.title)\n },\n view: function () {\n return [Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map(tab.items, function (item) {\n return interpretInForm(parts, item, backstage);\n }),\n formBehaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(NavigableObject.isPseudoStop)\n }),\n config('TabView.form.events', [\n runOnAttached(setDataOnForm),\n runOnDetached(updateDataWithForm)\n ]),\n Receiving.config({\n channels: wrapAll$1([\n {\n key: SendDataToSectionChannel,\n value: { onReceive: updateDataWithForm }\n },\n {\n key: SendDataToViewChannel,\n value: { onReceive: setDataOnForm }\n }\n ])\n })\n ])\n };\n })];\n }\n };\n });\n var tabMode = setMode(allTabs).smartTabHeight;\n return TabSection.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n onChangeTab: function (section, button, _viewItems) {\n var name = Representing.getValue(button);\n emitWith(section, formTabChangeEvent, {\n name: name,\n oldName: oldTab.get()\n });\n oldTab.set(name);\n },\n tabs: allTabs,\n components: [\n TabSection.parts().tabbar({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav']\n },\n components: [Tabbar.parts().tabs({})],\n markers: {\n tabClass: 'tox-tab',\n selectedClass: 'tox-dialog__body-nav-item--active'\n },\n tabbarBehaviours: derive$1([Tabstopping.config({})])\n }),\n TabSection.parts().tabview({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n }\n })\n ],\n selectFirst: tabMode.selectFirst,\n tabSectionBehaviours: derive$1([\n config('tabpanel', tabMode.extraEvents),\n Keying.config({ mode: 'acyclic' }),\n Composing.config({\n find: function (comp) {\n return head(TabSection.getViewItems(comp));\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (tsection) {\n tsection.getSystem().broadcastOn([SendDataToSectionChannel], {});\n return storedValue.get();\n },\n setValue: function (tsection, value) {\n storedValue.set(value);\n tsection.getSystem().broadcastOn([SendDataToViewChannel], {});\n }\n }\n })\n ])\n });\n };\n\n var dialogChannel = generate$1('update-dialog');\n var titleChannel = generate$1('update-title');\n var bodyChannel = generate$1('update-body');\n var footerChannel = generate$1('update-footer');\n var bodySendMessageChannel = generate$1('body-send-message');\n\n var renderBody = function (spec, id, backstage, ariaAttrs) {\n var renderComponents = function (incoming) {\n switch (incoming.body.type) {\n case 'tabpanel': {\n return [renderTabPanel(incoming.body, backstage)];\n }\n default: {\n return [renderBodyPanel(incoming.body, backstage)];\n }\n }\n };\n var updateState = function (_comp, incoming) {\n return Option.some({\n isTabPanel: function () {\n return incoming.body.type === 'tabpanel';\n }\n });\n };\n var ariaAttributes = { 'aria-live': 'polite' };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js'],\n attributes: __assign(__assign({}, id.map(function (x) {\n return { id: x };\n }).getOr({})), ariaAttrs ? ariaAttributes : {})\n },\n components: [],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n Reflecting.config({\n channel: bodyChannel,\n updateState: updateState,\n renderComponents: renderComponents,\n initialData: spec\n })\n ])\n };\n };\n var renderInlineBody = function (spec, contentId, backstage, ariaAttrs) {\n return renderBody(spec, Option.some(contentId), backstage, ariaAttrs);\n };\n var renderModalBody = function (spec, backstage) {\n var bodySpec = renderBody(spec, Option.none(), backstage, false);\n return ModalDialog.parts().body(bodySpec);\n };\n var renderIframeBody = function (spec) {\n var bodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-iframe']\n },\n components: [NavigableObject.craft({\n dom: {\n tag: 'iframe',\n attributes: { src: spec.url }\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n })]\n }],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(NavigableObject.isPseudoStop)\n })])\n };\n return ModalDialog.parts().body(bodySpec);\n };\n\n var initCommonEvents = function (fireApiEvent, extras) {\n return [\n runWithTarget(focusin(), NavigableObject.onFocus),\n fireApiEvent(formCloseEvent, function (api, spec) {\n extras.onClose();\n spec.onClose();\n }),\n fireApiEvent(formCancelEvent, function (api, spec, _event, self) {\n spec.onCancel(api);\n emit(self, formCloseEvent);\n }),\n run(formUnblockEvent, function (c, se) {\n return extras.onUnblock();\n }),\n run(formBlockEvent, function (c, se) {\n return extras.onBlock(se.event());\n })\n ];\n };\n var initUrlDialog = function (getInstanceApi, extras) {\n var fireApiEvent = function (eventName, f) {\n return run(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event(), c);\n });\n });\n };\n var withSpec = function (c, f) {\n Reflecting.getState(c).get().each(function (currentDialog) {\n f(currentDialog, c);\n });\n };\n return __spreadArrays(initCommonEvents(fireApiEvent, extras), [fireApiEvent(formActionEvent, function (api, spec, event) {\n spec.onAction(api, { name: event.name() });\n })]);\n };\n var initDialog = function (getInstanceApi, extras) {\n var fireApiEvent = function (eventName, f) {\n return run(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event(), c);\n });\n });\n };\n var withSpec = function (c, f) {\n Reflecting.getState(c).get().each(function (currentDialogInit) {\n f(currentDialogInit.internalDialog, c);\n });\n };\n return __spreadArrays(initCommonEvents(fireApiEvent, extras), [\n fireApiEvent(formSubmitEvent, function (api, spec) {\n return spec.onSubmit(api);\n }),\n fireApiEvent(formChangeEvent, function (api, spec, event) {\n spec.onChange(api, { name: event.name() });\n }),\n fireApiEvent(formActionEvent, function (api, spec, event, component) {\n var focusIn = function () {\n return Keying.focusIn(component);\n };\n var current = active();\n spec.onAction(api, {\n name: event.name(),\n value: event.value()\n });\n active().fold(function () {\n focusIn();\n }, function (focused) {\n if (!contains$2(component.element(), focused) || has$1(focused, 'disabled')) {\n focusIn();\n } else if (contains$2(focused, current.getOrNull()) && has$1(current.getOrDie(), 'disabled')) {\n focusIn();\n }\n });\n }),\n fireApiEvent(formTabChangeEvent, function (api, spec, event) {\n spec.onTabChange(api, {\n newTabName: event.name(),\n oldTabName: event.oldName()\n });\n }),\n runOnDetached(function (component) {\n var api = getInstanceApi();\n Representing.setValue(component, api.getData());\n })\n ]);\n };\n var SilverDialogEvents = {\n initUrlDialog: initUrlDialog,\n initDialog: initDialog\n };\n\n var makeButton = function (button, backstage) {\n return renderFooterButton(button, button.type, backstage);\n };\n var lookup$2 = function (compInSystem, footerButtons, buttonName) {\n return find(footerButtons, function (button) {\n return button.name === buttonName;\n }).bind(function (memButton) {\n return memButton.memento.getOpt(compInSystem);\n });\n };\n var renderComponents = function (_data, state) {\n var footerButtons = state.map(function (s) {\n return s.footerButtons;\n }).getOr([]);\n var buttonGroups = partition(footerButtons, function (button) {\n return button.align === 'start';\n });\n var makeGroup = function (edge, buttons) {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-' + edge]\n },\n components: map(buttons, function (button) {\n return button.memento.asSpec();\n })\n });\n };\n var startButtons = makeGroup('start', buttonGroups.pass);\n var endButtons = makeGroup('end', buttonGroups.fail);\n return [\n startButtons,\n endButtons\n ];\n };\n var renderFooter = function (initSpec, backstage) {\n var updateState = function (_comp, data) {\n var footerButtons = map(data.buttons, function (button) {\n var memButton = record(makeButton(button, backstage));\n return {\n name: button.name,\n align: button.align,\n memento: memButton\n };\n });\n var lookupByName = function (compInSystem, buttonName) {\n return lookup$2(compInSystem, footerButtons, buttonName);\n };\n return Option.some({\n lookupByName: lookupByName,\n footerButtons: footerButtons\n });\n };\n return {\n dom: fromHtml$2('<div class=\"tox-dialog__footer\"></div>'),\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: footerChannel,\n initialData: initSpec,\n updateState: updateState,\n renderComponents: renderComponents\n })])\n };\n };\n var renderInlineFooter = function (initSpec, backstage) {\n return renderFooter(initSpec, backstage);\n };\n var renderModalFooter = function (initSpec, backstage) {\n return ModalDialog.parts().footer(renderFooter(initSpec, backstage));\n };\n\n var getCompByName = function (access, name) {\n var root = access.getRoot();\n if (root.getSystem().isConnected()) {\n var form_1 = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());\n return Form.getField(form_1, name).fold(function () {\n var footer = access.getFooter();\n var footerState = Reflecting.getState(footer);\n return footerState.get().bind(function (f) {\n return f.lookupByName(form_1, name);\n });\n }, function (comp) {\n return Option.some(comp);\n });\n } else {\n return Option.none();\n }\n };\n var validateData = function (access, data) {\n var root = access.getRoot();\n return Reflecting.getState(root).get().map(function (dialogState) {\n return getOrDie(asRaw('data', dialogState.dataValidator, data));\n }).getOr(data);\n };\n var getDialogApi = function (access, doRedial, menuItemStates) {\n var withRoot = function (f) {\n var root = access.getRoot();\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n var getData = function () {\n var root = access.getRoot();\n var valueComp = root.getSystem().isConnected() ? access.getFormWrapper() : root;\n var representedValues = Representing.getValue(valueComp);\n var menuItemCurrentState = map$1(menuItemStates, function (cell) {\n return cell.get();\n });\n return __assign(__assign({}, representedValues), menuItemCurrentState);\n };\n var setData = function (newData) {\n withRoot(function (_) {\n var prevData = instanceApi.getData();\n var mergedData = merge(prevData, newData);\n var newInternalData = validateData(access, mergedData);\n var form = access.getFormWrapper();\n Representing.setValue(form, newInternalData);\n each$1(menuItemStates, function (v, k) {\n if (has(mergedData, k)) {\n v.set(mergedData[k]);\n }\n });\n });\n };\n var disable = function (name) {\n getCompByName(access, name).each(Disabling.disable);\n };\n var enable = function (name) {\n getCompByName(access, name).each(Disabling.enable);\n };\n var focus = function (name) {\n getCompByName(access, name).each(Focusing.focus);\n };\n var block = function (message) {\n if (!isString(message)) {\n throw new Error('The dialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(function (root) {\n emitWith(root, formBlockEvent, { message: message });\n });\n };\n var unblock = function () {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n var showTab = function (name) {\n withRoot(function (_) {\n var body = access.getBody();\n var bodyState = Reflecting.getState(body);\n if (bodyState.get().exists(function (b) {\n return b.isTabPanel();\n })) {\n Composing.getCurrent(body).each(function (tabSection) {\n TabSection.showTab(tabSection, name);\n });\n }\n });\n };\n var redial = function (d) {\n withRoot(function (root) {\n var dialogInit = doRedial(d);\n root.getSystem().broadcastOn([dialogChannel], dialogInit);\n root.getSystem().broadcastOn([titleChannel], dialogInit.internalDialog);\n root.getSystem().broadcastOn([bodyChannel], dialogInit.internalDialog);\n root.getSystem().broadcastOn([footerChannel], dialogInit.internalDialog);\n instanceApi.setData(dialogInit.initialData);\n });\n };\n var close = function () {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n var instanceApi = {\n getData: getData,\n setData: setData,\n disable: disable,\n enable: enable,\n focus: focus,\n block: block,\n unblock: unblock,\n showTab: showTab,\n redial: redial,\n close: close\n };\n return instanceApi;\n };\n\n var isTouch$4 = global$6.deviceType.isTouch();\n var hiddenHeader = function (title, close) {\n return {\n dom: {\n tag: 'div',\n styles: { display: 'none' },\n classes: ['tox-dialog__header']\n },\n components: [\n title,\n close\n ]\n };\n };\n var pClose = function (onClose, providersBackstage) {\n return ModalDialog.parts().close(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close')\n }\n },\n action: onClose,\n buttonBehaviours: derive$1([Tabstopping.config({})])\n }));\n };\n var pUntitled = function () {\n return ModalDialog.parts().title({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n innerHtml: '',\n styles: { display: 'none' }\n }\n });\n };\n var pBodyMessage = function (message, providersBackstage) {\n return ModalDialog.parts().body({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [{ dom: fromHtml$2('<p>' + providersBackstage.translate(message) + '</p>') }]\n }]\n });\n };\n var pFooter = function (buttons) {\n return ModalDialog.parts().footer({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer']\n },\n components: buttons\n });\n };\n var pFooterGroup = function (startButtons, endButtons) {\n return [\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-start']\n },\n components: startButtons\n }),\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-end']\n },\n components: endButtons\n })\n ];\n };\n var renderDialog = function (spec) {\n var _a;\n var dialogClass = 'tox-dialog';\n var blockerClass = dialogClass + '-wrap';\n var blockerBackdropClass = blockerClass + '__backdrop';\n var scrollLockClass = dialogClass + '__disable-scroll';\n return ModalDialog.sketch({\n lazySink: spec.lazySink,\n onEscape: function (comp) {\n spec.onEscape(comp);\n return Option.some(true);\n },\n useTabstopAt: function (elem) {\n return !NavigableObject.isPseudoStop(elem);\n },\n dom: {\n tag: 'div',\n classes: [dialogClass].concat(spec.extraClasses),\n styles: __assign({ position: 'relative' }, spec.extraStyles)\n },\n components: __spreadArrays([\n spec.header,\n spec.body\n ], spec.footer.toArray()),\n parts: {\n blocker: {\n dom: fromHtml$2('<div class=\"' + blockerClass + '\"></div>'),\n components: [{\n dom: {\n tag: 'div',\n classes: isTouch$4 ? [\n blockerBackdropClass,\n blockerBackdropClass + '--opaque'\n ] : [blockerBackdropClass]\n }\n }]\n }\n },\n dragBlockClass: blockerClass,\n modalBehaviours: derive$1(__spreadArrays([\n Focusing.config({}),\n config('dialog-events', spec.dialogEvents.concat([runOnSource(focusin(), function (comp, se) {\n Keying.focusIn(comp);\n })])),\n config('scroll-lock', [\n runOnAttached(function () {\n add$2(body(), scrollLockClass);\n }),\n runOnDetached(function () {\n remove$4(body(), scrollLockClass);\n })\n ])\n ], spec.extraBehaviours)),\n eventOrder: __assign((_a = {}, _a[execute()] = ['dialog-events'], _a[attachedToDom()] = [\n 'scroll-lock',\n 'dialog-events',\n 'alloy.base.behaviour'\n ], _a[detachedFromDom()] = [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'scroll-lock'\n ], _a), spec.eventOrder)\n });\n };\n\n var renderClose = function (providersBackstage) {\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close'),\n 'title': providersBackstage.translate('Close')\n }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-icon'],\n innerHtml: '<svg width=\"24\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.953 7.453L13.422 12l4.531 4.547-1.406 1.406L12 13.422l-4.547 4.531-1.406-1.406L10.578 12 6.047 7.453l1.406-1.406L12 10.578l4.547-4.531z\" fill-rule=\"evenodd\"></path></svg>'\n }\n }],\n action: function (comp) {\n emit(comp, formCancelEvent);\n }\n });\n };\n var renderTitle = function (spec, id, providersBackstage) {\n var renderComponents = function (data) {\n return [text(providersBackstage.translate(data.title))];\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n attributes: __assign({}, id.map(function (x) {\n return { id: x };\n }).getOr({}))\n },\n components: renderComponents(spec),\n behaviours: derive$1([Reflecting.config({\n channel: titleChannel,\n renderComponents: renderComponents\n })])\n };\n };\n var renderDragHandle = function () {\n return { dom: fromHtml$2('<div class=\"tox-dialog__draghandle\"></div>') };\n };\n var renderInlineHeader = function (spec, titleId, providersBackstage) {\n return Container.sketch({\n dom: fromHtml$2('<div class=\"tox-dialog__header\"></div>'),\n components: [\n renderTitle(spec, Option.some(titleId), providersBackstage),\n renderDragHandle(),\n renderClose(providersBackstage)\n ],\n containerBehaviours: derive$1([Dragging.config({\n mode: 'mouse',\n blockerClass: 'blocker',\n getTarget: function (handle) {\n return closest$3(handle, '[role=\"dialog\"]').getOrDie();\n },\n snaps: {\n getSnapPoints: function () {\n return [];\n },\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top'\n }\n })])\n });\n };\n var renderModalHeader = function (spec, providersBackstage) {\n var pTitle = ModalDialog.parts().title(renderTitle(spec, Option.none(), providersBackstage));\n var pHandle = ModalDialog.parts().draghandle(renderDragHandle());\n var pClose = ModalDialog.parts().close(renderClose(providersBackstage));\n var components = [pTitle].concat(spec.draggable ? [pHandle] : []).concat([pClose]);\n return Container.sketch({\n dom: fromHtml$2('<div class=\"tox-dialog__header\"></div>'),\n components: components\n });\n };\n\n var getHeader = function (title, backstage) {\n return renderModalHeader({\n title: backstage.shared.providers.translate(title),\n draggable: backstage.dialog.isDraggableModal()\n }, backstage.shared.providers);\n };\n var getEventExtras = function (lazyDialog, extra) {\n return {\n onClose: function () {\n return extra.closeWindow();\n },\n onBlock: function (blockEvent) {\n ModalDialog.setBusy(lazyDialog(), function (d, bs) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__busy-spinner'],\n attributes: { 'aria-label': blockEvent.message() },\n styles: {\n left: '0px',\n right: '0px',\n bottom: '0px',\n top: '0px',\n position: 'absolute'\n }\n },\n behaviours: bs,\n components: [{ dom: fromHtml$2('<div class=\"tox-spinner\"><div></div><div></div><div></div></div>') }]\n };\n });\n },\n onUnblock: function () {\n ModalDialog.setIdle(lazyDialog());\n }\n };\n };\n var renderModalDialog = function (spec, initialData, dialogEvents, backstage) {\n var _a;\n var updateState = function (_comp, incoming) {\n return Option.some(incoming);\n };\n return build$1(renderDialog(__assign(__assign({}, spec), {\n lazySink: backstage.shared.getSink,\n extraBehaviours: __spreadArrays([\n Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: initialData\n }),\n RepresentingConfigs.memory({})\n ], spec.extraBehaviours),\n onEscape: function (comp) {\n emit(comp, formCancelEvent);\n },\n dialogEvents: dialogEvents,\n eventOrder: (_a = {}, _a[receive()] = [\n 'reflecting',\n 'receiving'\n ], _a[attachedToDom()] = [\n 'scroll-lock',\n 'reflecting',\n 'messages',\n 'dialog-events',\n 'alloy.base.behaviour'\n ], _a[detachedFromDom()] = [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'messages',\n 'reflecting',\n 'scroll-lock'\n ], _a)\n })));\n };\n var mapMenuButtons = function (buttons) {\n var mapItems = function (button) {\n var items = map(button.items, function (item) {\n var cell = Cell(false);\n return __assign(__assign({}, item), { storage: cell });\n });\n return __assign(__assign({}, button), { items: items });\n };\n return map(buttons, function (button) {\n if (button.type === 'menu') {\n return mapItems(button);\n }\n return button;\n });\n };\n var extractCellsToObject = function (buttons) {\n return foldl(buttons, function (acc, button) {\n if (button.type === 'menu') {\n var menuButton = button;\n return foldl(menuButton.items, function (innerAcc, item) {\n innerAcc[item.name] = item.storage;\n return innerAcc;\n }, acc);\n }\n return acc;\n }, {});\n };\n\n var renderDialog$1 = function (dialogInit, extra, backstage) {\n var header = getHeader(dialogInit.internalDialog.title, backstage);\n var body = renderModalBody({ body: dialogInit.internalDialog.body }, backstage);\n var storagedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons);\n var objOfCells = extractCellsToObject(storagedMenuButtons);\n var footer = renderModalFooter({ buttons: storagedMenuButtons }, backstage);\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, extra));\n var dialogSize = dialogInit.internalDialog.size !== 'normal' ? dialogInit.internalDialog.size === 'large' ? ['tox-dialog--width-lg'] : ['tox-dialog--width-md'] : [];\n var spec = {\n header: header,\n body: body,\n footer: Option.some(footer),\n extraClasses: dialogSize,\n extraBehaviours: [],\n extraStyles: {}\n };\n var dialog = renderModalDialog(spec, dialogInit, dialogEvents, backstage);\n var modalAccess = function () {\n var getForm = function () {\n var outerForm = ModalDialog.getBody(dialog);\n return Composing.getCurrent(outerForm).getOr(outerForm);\n };\n return {\n getRoot: function () {\n return dialog;\n },\n getBody: function () {\n return ModalDialog.getBody(dialog);\n },\n getFooter: function () {\n return ModalDialog.getFooter(dialog);\n },\n getFormWrapper: getForm\n };\n }();\n var instanceApi = getDialogApi(modalAccess, extra.redial, objOfCells);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var renderInlineDialog = function (dialogInit, extra, backstage, ariaAttrs) {\n var _a, _b;\n var dialogLabelId = generate$1('dialog-label');\n var dialogContentId = generate$1('dialog-content');\n var updateState = function (_comp, incoming) {\n return Option.some(incoming);\n };\n var memHeader = record(renderInlineHeader({\n title: dialogInit.internalDialog.title,\n draggable: true\n }, dialogLabelId, backstage.shared.providers));\n var memBody = record(renderInlineBody({ body: dialogInit.internalDialog.body }, dialogContentId, backstage, ariaAttrs));\n var storagedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons);\n var objOfCells = extractCellsToObject(storagedMenuButtons);\n var memFooter = record(renderInlineFooter({ buttons: storagedMenuButtons }, backstage));\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, {\n onBlock: function () {\n },\n onUnblock: function () {\n },\n onClose: function () {\n return extra.closeWindow();\n }\n });\n var dialog = build$1({\n dom: {\n tag: 'div',\n classes: [\n 'tox-dialog',\n 'tox-dialog-inline'\n ],\n attributes: (_a = { role: 'dialog' }, _a['aria-labelledby'] = dialogLabelId, _a['aria-describedby'] = '' + dialogContentId, _a)\n },\n eventOrder: (_b = {}, _b[receive()] = [\n Reflecting.name(),\n Receiving.name()\n ], _b[execute()] = ['execute-on-form'], _b[attachedToDom()] = [\n 'reflecting',\n 'execute-on-form'\n ], _b),\n behaviours: derive$1([\n Keying.config({\n mode: 'cyclic',\n onEscape: function (c) {\n emit(c, formCloseEvent);\n return Option.some(true);\n },\n useTabstopAt: function (elem) {\n return !NavigableObject.isPseudoStop(elem) && (name(elem) !== 'button' || get$2(elem, 'disabled') !== 'disabled');\n }\n }),\n Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: dialogInit\n }),\n Focusing.config({}),\n config('execute-on-form', dialogEvents.concat([runOnSource(focusin(), function (comp, se) {\n Keying.focusIn(comp);\n })])),\n RepresentingConfigs.memory({})\n ]),\n components: [\n memHeader.asSpec(),\n memBody.asSpec(),\n memFooter.asSpec()\n ]\n });\n var instanceApi = getDialogApi({\n getRoot: function () {\n return dialog;\n },\n getFooter: function () {\n return memFooter.get(dialog);\n },\n getBody: function () {\n return memBody.get(dialog);\n },\n getFormWrapper: function () {\n var body = memBody.get(dialog);\n return Composing.getCurrent(body).getOr(body);\n }\n }, extra.redial, objOfCells);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var global$g = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n var getUrlDialogApi = function (root) {\n var withRoot = function (f) {\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n var block = function (message) {\n if (!isString(message)) {\n throw new Error('The urlDialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(function (root) {\n emitWith(root, formBlockEvent, { message: message });\n });\n };\n var unblock = function () {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n var close = function () {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n var sendMessage = function (data) {\n withRoot(function (root) {\n root.getSystem().broadcastOn([bodySendMessageChannel], data);\n });\n };\n return {\n block: block,\n unblock: unblock,\n close: close,\n sendMessage: sendMessage\n };\n };\n\n var SUPPORTED_MESSAGE_ACTIONS = [\n 'insertContent',\n 'setContent',\n 'execCommand',\n 'close',\n 'block',\n 'unblock'\n ];\n var isSupportedMessage = function (data) {\n return isObject(data) && SUPPORTED_MESSAGE_ACTIONS.indexOf(data.mceAction) !== -1;\n };\n var isCustomMessage = function (data) {\n return !isSupportedMessage(data) && isObject(data) && has(data, 'mceAction');\n };\n var handleMessage = function (editor, api, data) {\n switch (data.mceAction) {\n case 'insertContent':\n editor.insertContent(data.content);\n break;\n case 'setContent':\n editor.setContent(data.content);\n break;\n case 'execCommand':\n var ui = isBoolean(data.ui) ? data.ui : false;\n editor.execCommand(data.cmd, ui, data.value);\n break;\n case 'close':\n api.close();\n break;\n case 'block':\n api.block(data.message);\n break;\n case 'unblock':\n api.unblock();\n break;\n }\n };\n var renderUrlDialog = function (internalDialog, extra, editor, backstage) {\n var _a;\n var header = getHeader(internalDialog.title, backstage);\n var body = renderIframeBody(internalDialog);\n var footer = internalDialog.buttons.bind(function (buttons) {\n if (buttons.length === 0) {\n return Option.none();\n } else {\n return Option.some(renderModalFooter({ buttons: buttons }, backstage));\n }\n });\n var dialogEvents = SilverDialogEvents.initUrlDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, extra));\n var styles = __assign(__assign({}, internalDialog.height.fold(function () {\n return {};\n }, function (height) {\n return {\n 'height': height + 'px',\n 'max-height': height + 'px'\n };\n })), internalDialog.width.fold(function () {\n return {};\n }, function (width) {\n return {\n 'width': width + 'px',\n 'max-width': width + 'px'\n };\n }));\n var classes = internalDialog.width.isNone() && internalDialog.height.isNone() ? ['tox-dialog--width-lg'] : [];\n var iframeUri = new global$g(internalDialog.url, { base_uri: new global$g(domGlobals.window.location.href) });\n var iframeDomain = iframeUri.protocol + '://' + iframeUri.host + (iframeUri.port ? ':' + iframeUri.port : '');\n var messageHandlerUnbinder = Cell(Option.none());\n var extraBehaviours = [\n config('messages', [\n runOnAttached(function () {\n var unbind = bind$3(Element.fromDom(domGlobals.window), 'message', function (e) {\n if (iframeUri.isSameOrigin(new global$g(e.raw().origin))) {\n var data = e.raw().data;\n if (isSupportedMessage(data)) {\n handleMessage(editor, instanceApi, data);\n } else if (isCustomMessage(data)) {\n internalDialog.onMessage(instanceApi, data);\n }\n }\n });\n messageHandlerUnbinder.set(Option.some(unbind));\n }),\n runOnDetached(function () {\n messageHandlerUnbinder.get().each(function (unbinder) {\n return unbinder.unbind();\n });\n })\n ]),\n Receiving.config({\n channels: (_a = {}, _a[bodySendMessageChannel] = {\n onReceive: function (comp, data) {\n descendant$1(comp.element(), 'iframe').each(function (iframeEle) {\n var iframeWin = iframeEle.dom().contentWindow;\n iframeWin.postMessage(data, iframeDomain);\n });\n }\n }, _a)\n })\n ];\n var spec = {\n header: header,\n body: body,\n footer: footer,\n extraClasses: classes,\n extraBehaviours: extraBehaviours,\n extraStyles: styles\n };\n var dialog = renderModalDialog(spec, internalDialog, dialogEvents, backstage);\n var instanceApi = getUrlDialogApi(dialog);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var setup$d = function (extras) {\n var sharedBackstage = extras.backstage.shared;\n var open = function (message, callback) {\n var closeDialog = function () {\n ModalDialog.hide(alertDialog);\n callback();\n };\n var memFooterClose = record(renderFooterButton({\n name: 'close-alert',\n text: 'OK',\n primary: true,\n align: 'end',\n disabled: false,\n icon: Option.none()\n }, 'cancel', extras.backstage));\n var titleSpec = pUntitled();\n var closeSpec = pClose(closeDialog, sharedBackstage.providers);\n var alertDialog = build$1(renderDialog({\n lazySink: function () {\n return sharedBackstage.getSink();\n },\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Option.some(pFooter(pFooterGroup([], [memFooterClose.asSpec()]))),\n onEscape: closeDialog,\n extraClasses: ['tox-alert-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [run(formCancelEvent, closeDialog)],\n eventOrder: {}\n }));\n ModalDialog.show(alertDialog);\n var footerCloseButton = memFooterClose.get(alertDialog);\n Focusing.focus(footerCloseButton);\n };\n return { open: open };\n };\n\n var setup$e = function (extras) {\n var sharedBackstage = extras.backstage.shared;\n var open = function (message, callback) {\n var closeDialog = function (state) {\n ModalDialog.hide(confirmDialog);\n callback(state);\n };\n var memFooterYes = record(renderFooterButton({\n name: 'yes',\n text: 'Yes',\n primary: true,\n align: 'end',\n disabled: false,\n icon: Option.none()\n }, 'submit', extras.backstage));\n var footerNo = renderFooterButton({\n name: 'no',\n text: 'No',\n primary: true,\n align: 'end',\n disabled: false,\n icon: Option.none()\n }, 'cancel', extras.backstage);\n var titleSpec = pUntitled();\n var closeSpec = pClose(function () {\n return closeDialog(false);\n }, sharedBackstage.providers);\n var confirmDialog = build$1(renderDialog({\n lazySink: function () {\n return sharedBackstage.getSink();\n },\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Option.some(pFooter(pFooterGroup([], [\n footerNo,\n memFooterYes.asSpec()\n ]))),\n onEscape: function () {\n return closeDialog(false);\n },\n extraClasses: ['tox-confirm-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [\n run(formCancelEvent, function () {\n return closeDialog(false);\n }),\n run(formSubmitEvent, function () {\n return closeDialog(true);\n })\n ],\n eventOrder: {}\n }));\n ModalDialog.show(confirmDialog);\n var footerYesButton = memFooterYes.get(confirmDialog);\n Focusing.focus(footerYesButton);\n };\n return { open: open };\n };\n\n var validateData$1 = function (data, validator) {\n return getOrDie(asRaw('data', validator, data));\n };\n var inlineAdditionalBehaviours = function (editor, isStickyToolbar) {\n if (isStickyToolbar) {\n return [];\n } else {\n return [Docking.config({\n contextual: {\n lazyContext: function () {\n return Option.some(box(Element.fromDom(editor.getContentAreaContainer())));\n },\n fadeInClass: 'tox-dialog-dock-fadein',\n fadeOutClass: 'tox-dialog-dock-fadeout',\n transitionClass: 'tox-dialog-dock-transition'\n },\n leftAttr: 'data-dock-left',\n topAttr: 'data-dock-top',\n positionAttr: 'data-dock-pos',\n modes: ['top']\n })];\n }\n };\n var setup$f = function (extras) {\n var backstage = extras.backstage;\n var editor = extras.editor;\n var isStickyToolbar$1 = isStickyToolbar(editor);\n var alertDialog = setup$d(extras);\n var confirmDialog = setup$e(extras);\n var open = function (config, params, closeWindow) {\n if (params !== undefined && params.inline === 'toolbar') {\n return openInlineDialog(config, backstage.shared.anchors.toolbar(), closeWindow, params.ariaAttrs);\n } else if (params !== undefined && params.inline === 'cursor') {\n return openInlineDialog(config, backstage.shared.anchors.cursor(), closeWindow, params.ariaAttrs);\n } else {\n return openModalDialog(config, closeWindow);\n }\n };\n var openUrl = function (config, closeWindow) {\n return openModalUrlDialog(config, closeWindow);\n };\n var openModalUrlDialog = function (config, closeWindow) {\n var factory = function (contents) {\n var dialog = renderUrlDialog(contents, {\n closeWindow: function () {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, editor, backstage);\n ModalDialog.show(dialog.dialog);\n return dialog.instanceApi;\n };\n return DialogManager.openUrl(factory, config);\n };\n var openModalDialog = function (config, closeWindow) {\n var factory = function (contents, internalInitialData, dataValidator) {\n var initialData = internalInitialData;\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var dialog = renderDialog$1(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function () {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, backstage);\n ModalDialog.show(dialog.dialog);\n dialog.instanceApi.setData(initialData);\n return dialog.instanceApi;\n };\n return DialogManager.open(factory, config);\n };\n var openInlineDialog = function (config$1, anchor, closeWindow, ariaAttrs) {\n var factory = function (contents, internalInitialData, dataValidator) {\n var initialData = validateData$1(internalInitialData, dataValidator);\n var inlineDialog = value$3();\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var refreshDocking = function () {\n return inlineDialog.on(function (dialog) {\n Docking.refresh(dialog);\n });\n };\n var dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function () {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor', refreshDocking);\n inlineDialog.clear();\n closeWindow(dialogUi.instanceApi);\n }\n }, backstage, ariaAttrs);\n var inlineDialogComp = build$1(InlineView.sketch({\n lazySink: backstage.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1(__spreadArrays([config('window-manager-inline-events', [run(dismissRequested(), function (comp, se) {\n emit(dialogUi.dialog, formCancelEvent);\n })])], inlineAdditionalBehaviours(editor, isStickyToolbar$1)))\n }));\n inlineDialog.set(inlineDialogComp);\n InlineView.showWithin(inlineDialogComp, anchor, premade$1(dialogUi.dialog), Option.some(body()));\n if (!isStickyToolbar$1) {\n Docking.refresh(inlineDialogComp);\n editor.on('ResizeEditor', refreshDocking);\n }\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n return DialogManager.open(factory, config$1);\n };\n var confirm = function (message, callback) {\n confirmDialog.open(message, function (state) {\n callback(state);\n });\n };\n var alert = function (message, callback) {\n alertDialog.open(message, function () {\n callback();\n });\n };\n var close = function (instanceApi) {\n instanceApi.close();\n };\n return {\n open: open,\n openUrl: openUrl,\n alert: alert,\n close: close,\n confirm: confirm\n };\n };\n var WindowManager = { setup: setup$f };\n\n function Theme () {\n global$1.add('silver', function (editor) {\n var _a = Render.setup(editor), uiMothership = _a.uiMothership, backstage = _a.backstage, renderUI = _a.renderUI, getUi = _a.getUi;\n Autocompleter.register(editor, backstage.shared);\n var windowMgr = WindowManager.setup({\n editor: editor,\n backstage: backstage\n });\n return {\n renderUI: renderUI,\n getWindowManagerImpl: constant(windowMgr),\n getNotificationManagerImpl: function () {\n return NotificationManagerImpl(editor, { backstage: backstage }, uiMothership);\n },\n ui: getUi()\n };\n });\n }\n\n Theme();\n\n}(window));\n","// Exports the \"table\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/table')\n// ES2015:\n// import 'tinymce/plugins/table'\nrequire('./plugin.js');","// Exports the \"silver\" theme for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/themes/silver')\n// ES2015:\n// import 'tinymce/themes/silver'\nrequire('./theme.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.1.4 (2019-12-11)\n */\n(function (domGlobals) {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var noop = function () {\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var not = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !f.apply(null, args);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze) {\n Object.freeze(me);\n }\n return me;\n }();\n var some = function (a) {\n var constant_a = constant(a);\n var self = function () {\n return me;\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never, function (b) {\n return elementEq(a, b);\n });\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null) {\n return 'null';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isArray = isType('array');\n var isBoolean = isType('boolean');\n var isFunction = isType('function');\n var isNumber = isType('number');\n\n var nativeSlice = Array.prototype.slice;\n var nativePush = Array.prototype.push;\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n var groupBy = function (xs, f) {\n if (xs.length === 0) {\n return [];\n } else {\n var wasType = f(xs[0]);\n var r = [];\n var group = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var type = f(x);\n if (type !== wasType) {\n r.push(group);\n group = [];\n }\n wasType = type;\n group.push(x);\n }\n if (group.length !== 0) {\n r.push(group);\n }\n return r;\n }\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n var output = map(xs, f);\n return flatten(output);\n };\n var reverse = function (xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var last = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionPreceding = function (a, b) {\n return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_PRECEDING);\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n var Node = {\n documentPositionPreceding: documentPositionPreceding,\n documentPositionContainedBy: documentPositionContainedBy\n };\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var firstMatch = function (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n var find$1 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown();\n }\n return find$1(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu(0, 0);\n };\n var nu = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu,\n detect: detect,\n unknown: unknown\n };\n\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n var isBrowser = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$1 = function () {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$1 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge, current),\n isChrome: isBrowser(chrome, current),\n isIE: isBrowser(ie, current),\n isOpera: isBrowser(opera, current),\n isFirefox: isBrowser(firefox, current),\n isSafari: isBrowser(safari, current)\n };\n };\n var Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var isOS = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$2 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isWindows: isOS(windows, current),\n isiOS: isOS(ios, current),\n isAndroid: isOS(android, current),\n isOSX: isOS(osx, current),\n isLinux: isOS(linux, current),\n isSolaris: isOS(solaris, current),\n isFreeBSD: isOS(freebsd, current)\n };\n };\n var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$2,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd)\n };\n\n var DeviceType = function (os, browser, userAgent, mediaMatch) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isMobile = os.isiOS() || os.isAndroid();\n var isTouch = isMobile || mediaMatch('(pointer:coarse)');\n var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n var isPhone = isiPhone || isMobile && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n var isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n var detectOs = function (oses, userAgent) {\n return detect$1(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var contains = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains(uastring, 'msie') || contains(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains(uastring, 'iphone') || contains(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('os x'),\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n var detect$2 = function (userAgent, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var mediaMatch = function (query) {\n return domGlobals.window.matchMedia(query).matches;\n };\n var platform = Cell(PlatformDetection.detect(domGlobals.navigator.userAgent, mediaMatch));\n var detect$3 = function () {\n return platform.get();\n };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var ELEMENT$1 = ELEMENT;\n var is = function (element, selector) {\n var dom = element.dom();\n if (dom.nodeType !== ELEMENT$1) {\n return false;\n } else {\n var elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n\n var eq = function (e1, e2) {\n return e1.dom() === e2.dom();\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom();\n var d2 = e2.dom();\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return Node.documentPositionContainedBy(e1.dom(), e2.dom());\n };\n var browser = detect$3().browser;\n var contains$1 = browser.isIE() ? ieContains : regularContains;\n var is$1 = is;\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var lift2 = function (oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none();\n };\n\n var fromElements = function (elements, scope) {\n var doc = scope || domGlobals.document;\n var fragment = doc.createDocumentFragment();\n each(elements, function (element) {\n fragment.appendChild(element.dom());\n });\n return Element.fromDom(fragment);\n };\n\n var Immutable = function () {\n var fields = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fields[_i] = arguments[_i];\n }\n return function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n if (fields.length !== values.length) {\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\n }\n var struct = {};\n each(fields, function (name, i) {\n struct[name] = constant(values[i]);\n });\n return struct;\n };\n };\n\n var keys = Object.keys;\n var each$1 = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n\n var parent = function (element) {\n return Option.from(element.dom().parentNode).map(Element.fromDom);\n };\n var children = function (element) {\n return map(element.dom().childNodes, Element.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom().childNodes;\n return Option.from(cs[index]).map(Element.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n var lastChild = function (element) {\n return child(element, element.dom().childNodes.length - 1);\n };\n var spot = Immutable('element', 'offset');\n\n var before = function (marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom().insertBefore(element.dom(), marker.dom());\n });\n };\n var append = function (parent, element) {\n parent.dom().appendChild(element.dom());\n };\n\n var before$1 = function (marker, elements) {\n each(elements, function (x) {\n before(marker, x);\n });\n };\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var remove = function (element) {\n var dom = element.dom();\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n var fireListEvent = function (editor, action, element) {\n return editor.fire('ListMutation', {\n action: action,\n element: element\n });\n };\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var path = function (parts, scope) {\n var o = scope !== undefined && scope !== null ? scope : Global;\n for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n var resolve = function (p, scope) {\n var parts = p.split('.');\n return path(parts, scope);\n };\n\n var unsafe = function (name, scope) {\n return resolve(name, scope);\n };\n var getOrDie = function (name, scope) {\n var actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n var Global$1 = { getOrDie: getOrDie };\n\n var htmlElement = function (scope) {\n return Global$1.getOrDie('HTMLElement', scope);\n };\n var isPrototypeOf = function (x) {\n var scope = resolve('ownerDocument.defaultView', x);\n return htmlElement(scope).prototype.isPrototypeOf(x);\n };\n var HTMLElement = { isPrototypeOf: isPrototypeOf };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var isTextNode = function (node) {\n return node && node.nodeType === 3;\n };\n var isListNode = function (node) {\n return node && /^(OL|UL|DL)$/.test(node.nodeName);\n };\n var isOlUlNode = function (node) {\n return node && /^(OL|UL)$/.test(node.nodeName);\n };\n var isListItemNode = function (node) {\n return node && /^(LI|DT|DD)$/.test(node.nodeName);\n };\n var isDlItemNode = function (node) {\n return node && /^(DT|DD)$/.test(node.nodeName);\n };\n var isTableCellNode = function (node) {\n return node && /^(TH|TD)$/.test(node.nodeName);\n };\n var isBr = function (node) {\n return node && node.nodeName === 'BR';\n };\n var isFirstChild = function (node) {\n return node.parentNode.firstChild === node;\n };\n var isLastChild = function (node) {\n return node.parentNode.lastChild === node;\n };\n var isTextBlock = function (editor, node) {\n return node && !!editor.schema.getTextBlockElements()[node.nodeName];\n };\n var isBlock = function (node, blockElements) {\n return node && node.nodeName in blockElements;\n };\n var isBogusBr = function (dom, node) {\n if (!isBr(node)) {\n return false;\n }\n if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) {\n return true;\n }\n return false;\n };\n var isEmpty = function (dom, elm, keepBookmarks) {\n var empty = dom.isEmpty(elm);\n if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {\n return false;\n }\n return empty;\n };\n var isChildOfBody = function (dom, elm) {\n return dom.isChildOf(elm, dom.getRoot());\n };\n var NodeType = {\n isTextNode: isTextNode,\n isListNode: isListNode,\n isOlUlNode: isOlUlNode,\n isDlItemNode: isDlItemNode,\n isListItemNode: isListItemNode,\n isTableCellNode: isTableCellNode,\n isBr: isBr,\n isFirstChild: isFirstChild,\n isLastChild: isLastChild,\n isTextBlock: isTextBlock,\n isBlock: isBlock,\n isBogusBr: isBogusBr,\n isEmpty: isEmpty,\n isChildOfBody: isChildOfBody\n };\n\n var getParentList = function (editor) {\n var selectionStart = editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart));\n };\n var isParentListSelected = function (parentList, selectedBlocks) {\n return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList;\n };\n var findSubLists = function (parentList) {\n return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) {\n return NodeType.isListNode(elm);\n });\n };\n var getSelectedSubLists = function (editor) {\n var parentList = getParentList(editor);\n var selectedBlocks = editor.selection.getSelectedBlocks();\n if (isParentListSelected(parentList, selectedBlocks)) {\n return findSubLists(parentList);\n } else {\n return global$5.grep(selectedBlocks, function (elm) {\n return NodeType.isListNode(elm) && parentList !== elm;\n });\n }\n };\n var findParentListItemsNodes = function (editor, elms) {\n var listItemsElms = global$5.map(elms, function (elm) {\n var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm));\n return parentLi ? parentLi : elm;\n });\n return global$4.unique(listItemsElms);\n };\n var getSelectedListItems = function (editor) {\n var selectedBlocks = editor.selection.getSelectedBlocks();\n return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) {\n return NodeType.isListItemNode(block);\n });\n };\n var getSelectedDlItems = function (editor) {\n return filter(getSelectedListItems(editor), NodeType.isDlItemNode);\n };\n var getClosestListRootElm = function (editor, elm) {\n var parentTableCell = editor.dom.getParents(elm, 'TD,TH');\n var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();\n return root;\n };\n var findLastParentListNode = function (editor, elm) {\n var parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm));\n return last(parentLists);\n };\n var getSelectedLists = function (editor) {\n var firstList = findLastParentListNode(editor, editor.selection.getStart());\n var subsequentLists = filter(editor.selection.getSelectedBlocks(), NodeType.isOlUlNode);\n return firstList.toArray().concat(subsequentLists);\n };\n var getSelectedListRoots = function (editor) {\n var selectedLists = getSelectedLists(editor);\n return getUniqueListRoots(editor, selectedLists);\n };\n var getUniqueListRoots = function (editor, lists) {\n var listRoots = map(lists, function (list) {\n return findLastParentListNode(editor, list).getOr(list);\n });\n return global$4.unique(listRoots);\n };\n var isList = function (editor) {\n var list = getParentList(editor);\n return HTMLElement.isPrototypeOf(list);\n };\n var Selection = {\n isList: isList,\n getParentList: getParentList,\n getSelectedSubLists: getSelectedSubLists,\n getSelectedListItems: getSelectedListItems,\n getClosestListRootElm: getClosestListRootElm,\n getSelectedDlItems: getSelectedDlItems,\n getSelectedListRoots: getSelectedListRoots\n };\n\n var createTextBlock = function (editor, contentNode) {\n var dom = editor.dom;\n var blockElements = editor.schema.getBlockElements();\n var fragment = dom.createFragment();\n var node, textBlock, blockName, hasContentNode;\n if (editor.settings.forced_root_block) {\n blockName = editor.settings.forced_root_block;\n }\n if (blockName) {\n textBlock = dom.create(blockName);\n if (textBlock.tagName === editor.settings.forced_root_block) {\n dom.setAttribs(textBlock, editor.settings.forced_root_block_attrs);\n }\n if (!NodeType.isBlock(contentNode.firstChild, blockElements)) {\n fragment.appendChild(textBlock);\n }\n }\n if (contentNode) {\n while (node = contentNode.firstChild) {\n var nodeName = node.nodeName;\n if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {\n hasContentNode = true;\n }\n if (NodeType.isBlock(node, blockElements)) {\n fragment.appendChild(node);\n textBlock = null;\n } else {\n if (blockName) {\n if (!textBlock) {\n textBlock = dom.create(blockName);\n fragment.appendChild(textBlock);\n }\n textBlock.appendChild(node);\n } else {\n fragment.appendChild(node);\n }\n }\n }\n }\n if (!editor.settings.forced_root_block) {\n fragment.appendChild(dom.create('br'));\n } else {\n if (!hasContentNode) {\n textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' }));\n }\n }\n return fragment;\n };\n\n var name = function (element) {\n var r = element.dom().nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom().nodeType;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isElement = isType$1(ELEMENT);\n\n var rawSet = function (dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var setAll = function (element, attrs) {\n var dom = element.dom();\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var clone = function (element) {\n return foldl(element.dom().attributes, function (acc, attr) {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var internalSet = function (dom, property, value) {\n if (!isString(value)) {\n domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var set = function (element, property, value) {\n var dom = element.dom();\n internalSet(dom, property, value);\n };\n\n var clone$1 = function (original, isDeep) {\n return Element.fromDom(original.dom().cloneNode(isDeep));\n };\n var deep = function (original) {\n return clone$1(original, true);\n };\n var shallowAs = function (original, tag) {\n var nu = Element.fromTag(tag);\n var attributes = clone(original);\n setAll(nu, attributes);\n return nu;\n };\n var mutate = function (original, tag) {\n var nu = shallowAs(original, tag);\n before(original, nu);\n var children$1 = children(original);\n append$1(nu, children$1);\n remove(original);\n return nu;\n };\n\n var joinSegment = function (parent, child) {\n append(parent.item, child.list);\n };\n var joinSegments = function (segments) {\n for (var i = 1; i < segments.length; i++) {\n joinSegment(segments[i - 1], segments[i]);\n }\n };\n var appendSegments = function (head$1, tail) {\n lift2(last(head$1), head(tail), joinSegment);\n };\n var createSegment = function (scope, listType) {\n var segment = {\n list: Element.fromTag(listType, scope),\n item: Element.fromTag('li', scope)\n };\n append(segment.list, segment.item);\n return segment;\n };\n var createSegments = function (scope, entry, size) {\n var segments = [];\n for (var i = 0; i < size; i++) {\n segments.push(createSegment(scope, entry.listType));\n }\n return segments;\n };\n var populateSegments = function (segments, entry) {\n for (var i = 0; i < segments.length - 1; i++) {\n set(segments[i].item, 'list-style-type', 'none');\n }\n last(segments).each(function (segment) {\n setAll(segment.list, entry.listAttributes);\n setAll(segment.item, entry.itemAttributes);\n append$1(segment.item, entry.content);\n });\n };\n var normalizeSegment = function (segment, entry) {\n if (name(segment.list) !== entry.listType) {\n segment.list = mutate(segment.list, entry.listType);\n }\n setAll(segment.list, entry.listAttributes);\n };\n var createItem = function (scope, attr, content) {\n var item = Element.fromTag('li', scope);\n setAll(item, attr);\n append$1(item, content);\n return item;\n };\n var appendItem = function (segment, item) {\n append(segment.list, item);\n segment.item = item;\n };\n var writeShallow = function (scope, cast, entry) {\n var newCast = cast.slice(0, entry.depth);\n last(newCast).each(function (segment) {\n var item = createItem(scope, entry.itemAttributes, entry.content);\n appendItem(segment, item);\n normalizeSegment(segment, entry);\n });\n return newCast;\n };\n var writeDeep = function (scope, cast, entry) {\n var segments = createSegments(scope, entry, entry.depth - cast.length);\n joinSegments(segments);\n populateSegments(segments, entry);\n appendSegments(cast, segments);\n return cast.concat(segments);\n };\n var composeList = function (scope, entries) {\n var cast = foldl(entries, function (cast, entry) {\n return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry);\n }, []);\n return head(cast).map(function (segment) {\n return segment.list;\n });\n };\n\n var isList$1 = function (el) {\n return is$1(el, 'OL,UL');\n };\n var hasFirstChildList = function (el) {\n return firstChild(el).map(isList$1).getOr(false);\n };\n var hasLastChildList = function (el) {\n return lastChild(el).map(isList$1).getOr(false);\n };\n\n var isIndented = function (entry) {\n return entry.depth > 0;\n };\n var isSelected = function (entry) {\n return entry.isSelected;\n };\n var cloneItemContent = function (li) {\n var children$1 = children(li);\n var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1;\n return map(content, deep);\n };\n var createEntry = function (li, depth, isSelected) {\n return parent(li).filter(isElement).map(function (list) {\n return {\n depth: depth,\n isSelected: isSelected,\n content: cloneItemContent(li),\n itemAttributes: clone(li),\n listAttributes: clone(list),\n listType: name(list)\n };\n });\n };\n\n var indentEntry = function (indentation, entry) {\n switch (indentation) {\n case 'Indent':\n entry.depth++;\n break;\n case 'Outdent':\n entry.depth--;\n break;\n case 'Flatten':\n entry.depth = 0;\n }\n };\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var shallow = function (old, nu) {\n return nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++) {\n objects[i] = arguments[i];\n }\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject) {\n if (hasOwnProperty.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n var merge = baseMerge(shallow);\n\n var cloneListProperties = function (target, source) {\n target.listType = source.listType;\n target.listAttributes = merge({}, source.listAttributes);\n };\n var previousSiblingEntry = function (entries, start) {\n var depth = entries[start].depth;\n for (var i = start - 1; i >= 0; i--) {\n if (entries[i].depth === depth) {\n return Option.some(entries[i]);\n }\n if (entries[i].depth < depth) {\n break;\n }\n }\n return Option.none();\n };\n var normalizeEntries = function (entries) {\n each(entries, function (entry, i) {\n previousSiblingEntry(entries, i).each(function (matchingEntry) {\n cloneListProperties(entry, matchingEntry);\n });\n });\n };\n\n var parseItem = function (depth, itemSelection, selectionState, item) {\n return firstChild(item).filter(isList$1).fold(function () {\n itemSelection.each(function (selection) {\n if (eq(selection.start, item)) {\n selectionState.set(true);\n }\n });\n var currentItemEntry = createEntry(item, depth, selectionState.get());\n itemSelection.each(function (selection) {\n if (eq(selection.end, item)) {\n selectionState.set(false);\n }\n });\n var childListEntries = lastChild(item).filter(isList$1).map(function (list) {\n return parseList(depth, itemSelection, selectionState, list);\n }).getOr([]);\n return currentItemEntry.toArray().concat(childListEntries);\n }, function (list) {\n return parseList(depth, itemSelection, selectionState, list);\n });\n };\n var parseList = function (depth, itemSelection, selectionState, list) {\n return bind(children(list), function (element) {\n var parser = isList$1(element) ? parseList : parseItem;\n var newDepth = depth + 1;\n return parser(newDepth, itemSelection, selectionState, element);\n });\n };\n var parseLists = function (lists, itemSelection) {\n var selectionState = Cell(false);\n var initialDepth = 0;\n return map(lists, function (list) {\n return {\n sourceList: list,\n entries: parseList(initialDepth, itemSelection, selectionState, list)\n };\n });\n };\n\n var outdentedComposer = function (editor, entries) {\n return map(entries, function (entry) {\n var content = fromElements(entry.content);\n return Element.fromDom(createTextBlock(editor, content.dom()));\n });\n };\n var indentedComposer = function (editor, entries) {\n normalizeEntries(entries);\n return composeList(editor.contentDocument, entries).toArray();\n };\n var composeEntries = function (editor, entries) {\n return bind(groupBy(entries, isIndented), function (entries) {\n var groupIsIndented = head(entries).map(isIndented).getOr(false);\n return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries);\n });\n };\n var indentSelectedEntries = function (entries, indentation) {\n each(filter(entries, isSelected), function (entry) {\n return indentEntry(indentation, entry);\n });\n };\n var getItemSelection = function (editor) {\n var selectedListItems = map(Selection.getSelectedListItems(editor), Element.fromDom);\n return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), function (start, end) {\n return {\n start: start,\n end: end\n };\n });\n };\n var listIndentation = function (editor, lists, indentation) {\n var entrySets = parseLists(lists, getItemSelection(editor));\n each(entrySets, function (entrySet) {\n indentSelectedEntries(entrySet.entries, indentation);\n var composedLists = composeEntries(editor, entrySet.entries);\n each(composedLists, function (composedList) {\n fireListEvent(editor, indentation === 'Indent' ? 'IndentList' : 'OutdentList', composedList.dom());\n });\n before$1(entrySet.sourceList, composedLists);\n remove(entrySet.sourceList);\n });\n };\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var DOM = global$6.DOM;\n var splitList = function (editor, ul, li) {\n var tmpRng, fragment, bookmarks, node, newBlock;\n var removeAndKeepBookmarks = function (targetNode) {\n global$5.each(bookmarks, function (node) {\n targetNode.parentNode.insertBefore(node, li.parentNode);\n });\n DOM.remove(targetNode);\n };\n bookmarks = DOM.select('span[data-mce-type=\"bookmark\"]', ul);\n newBlock = createTextBlock(editor, li);\n tmpRng = DOM.createRng();\n tmpRng.setStartAfter(li);\n tmpRng.setEndAfter(ul);\n fragment = tmpRng.extractContents();\n for (node = fragment.firstChild; node; node = node.firstChild) {\n if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {\n DOM.remove(node);\n break;\n }\n }\n if (!editor.dom.isEmpty(fragment)) {\n DOM.insertAfter(fragment, ul);\n }\n DOM.insertAfter(newBlock, ul);\n if (NodeType.isEmpty(editor.dom, li.parentNode)) {\n removeAndKeepBookmarks(li.parentNode);\n }\n DOM.remove(li);\n if (NodeType.isEmpty(editor.dom, ul)) {\n DOM.remove(ul);\n }\n };\n var SplitList = { splitList: splitList };\n\n var outdentDlItem = function (editor, item) {\n if (is$1(item, 'dd')) {\n mutate(item, 'dt');\n } else if (is$1(item, 'dt')) {\n parent(item).each(function (dl) {\n return SplitList.splitList(editor, dl.dom(), item.dom());\n });\n }\n };\n var indentDlItem = function (item) {\n if (is$1(item, 'dt')) {\n mutate(item, 'dd');\n }\n };\n var dlIndentation = function (editor, indentation, dlItems) {\n if (indentation === 'Indent') {\n each(dlItems, indentDlItem);\n } else {\n each(dlItems, function (item) {\n return outdentDlItem(editor, item);\n });\n }\n };\n\n var getNormalizedPoint = function (container, offset) {\n if (NodeType.isTextNode(container)) {\n return {\n container: container,\n offset: offset\n };\n }\n var node = global$1.getNode(container, offset);\n if (NodeType.isTextNode(node)) {\n return {\n container: node,\n offset: offset >= container.childNodes.length ? node.data.length : 0\n };\n } else if (node.previousSibling && NodeType.isTextNode(node.previousSibling)) {\n return {\n container: node.previousSibling,\n offset: node.previousSibling.data.length\n };\n } else if (node.nextSibling && NodeType.isTextNode(node.nextSibling)) {\n return {\n container: node.nextSibling,\n offset: 0\n };\n }\n return {\n container: container,\n offset: offset\n };\n };\n var normalizeRange = function (rng) {\n var outRng = rng.cloneRange();\n var rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset);\n outRng.setStart(rangeStart.container, rangeStart.offset);\n var rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset);\n outRng.setEnd(rangeEnd.container, rangeEnd.offset);\n return outRng;\n };\n var Range = {\n getNormalizedPoint: getNormalizedPoint,\n normalizeRange: normalizeRange\n };\n\n var selectionIndentation = function (editor, indentation) {\n var lists = map(Selection.getSelectedListRoots(editor), Element.fromDom);\n var dlItems = map(Selection.getSelectedDlItems(editor), Element.fromDom);\n var isHandled = false;\n if (lists.length || dlItems.length) {\n var bookmark = editor.selection.getBookmark();\n listIndentation(editor, lists, indentation);\n dlIndentation(editor, indentation, dlItems);\n editor.selection.moveToBookmark(bookmark);\n editor.selection.setRng(Range.normalizeRange(editor.selection.getRng()));\n editor.nodeChanged();\n isHandled = true;\n }\n return isHandled;\n };\n var indentListSelection = function (editor) {\n return selectionIndentation(editor, 'Indent');\n };\n var outdentListSelection = function (editor) {\n return selectionIndentation(editor, 'Outdent');\n };\n var flattenListSelection = function (editor) {\n return selectionIndentation(editor, 'Flatten');\n };\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager');\n\n var DOM$1 = global$6.DOM;\n var createBookmark = function (rng) {\n var bookmark = {};\n var setupEndPoint = function (start) {\n var offsetNode, container, offset;\n container = rng[start ? 'startContainer' : 'endContainer'];\n offset = rng[start ? 'startOffset' : 'endOffset'];\n if (container.nodeType === 1) {\n offsetNode = DOM$1.create('span', { 'data-mce-type': 'bookmark' });\n if (container.hasChildNodes()) {\n offset = Math.min(offset, container.childNodes.length - 1);\n if (start) {\n container.insertBefore(offsetNode, container.childNodes[offset]);\n } else {\n DOM$1.insertAfter(offsetNode, container.childNodes[offset]);\n }\n } else {\n container.appendChild(offsetNode);\n }\n container = offsetNode;\n offset = 0;\n }\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n setupEndPoint(true);\n if (!rng.collapsed) {\n setupEndPoint();\n }\n return bookmark;\n };\n var resolveBookmark = function (bookmark) {\n function restoreEndPoint(start) {\n var container, offset, node;\n var nodeIndex = function (container) {\n var node = container.parentNode.firstChild, idx = 0;\n while (node) {\n if (node === container) {\n return idx;\n }\n if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') {\n idx++;\n }\n node = node.nextSibling;\n }\n return -1;\n };\n container = node = bookmark[start ? 'startContainer' : 'endContainer'];\n offset = bookmark[start ? 'startOffset' : 'endOffset'];\n if (!container) {\n return;\n }\n if (container.nodeType === 1) {\n offset = nodeIndex(container);\n container = container.parentNode;\n DOM$1.remove(node);\n if (!container.hasChildNodes() && DOM$1.isBlock(container)) {\n container.appendChild(DOM$1.create('br'));\n }\n }\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n }\n restoreEndPoint(true);\n restoreEndPoint();\n var rng = DOM$1.createRng();\n rng.setStart(bookmark.startContainer, bookmark.startOffset);\n if (bookmark.endContainer) {\n rng.setEnd(bookmark.endContainer, bookmark.endOffset);\n }\n return Range.normalizeRange(rng);\n };\n var Bookmark = {\n createBookmark: createBookmark,\n resolveBookmark: resolveBookmark\n };\n\n var isCustomList = function (list) {\n return /\\btox\\-/.test(list.className);\n };\n\n var listToggleActionFromListName = function (listName) {\n switch (listName) {\n case 'UL':\n return 'ToggleUlList';\n case 'OL':\n return 'ToggleOlList';\n case 'DL':\n return 'ToggleDLList';\n }\n };\n\n var updateListStyle = function (dom, el, detail) {\n var type = detail['list-style-type'] ? detail['list-style-type'] : null;\n dom.setStyle(el, 'list-style-type', type);\n };\n var setAttribs = function (elm, attrs) {\n global$5.each(attrs, function (value, key) {\n elm.setAttribute(key, value);\n });\n };\n var updateListAttrs = function (dom, el, detail) {\n setAttribs(el, detail['list-attributes']);\n global$5.each(dom.select('li', el), function (li) {\n setAttribs(li, detail['list-item-attributes']);\n });\n };\n var updateListWithDetails = function (dom, el, detail) {\n updateListStyle(dom, el, detail);\n updateListAttrs(dom, el, detail);\n };\n var removeStyles = function (dom, element, styles) {\n global$5.each(styles, function (style) {\n var _a;\n return dom.setStyle(element, (_a = {}, _a[style] = '', _a));\n });\n };\n var getEndPointNode = function (editor, rng, start, root) {\n var container, offset;\n container = rng[start ? 'startContainer' : 'endContainer'];\n offset = rng[start ? 'startOffset' : 'endOffset'];\n if (container.nodeType === 1) {\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n }\n if (!start && NodeType.isBr(container.nextSibling)) {\n container = container.nextSibling;\n }\n while (container.parentNode !== root) {\n if (NodeType.isTextBlock(editor, container)) {\n return container;\n }\n if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {\n return container;\n }\n container = container.parentNode;\n }\n return container;\n };\n var getSelectedTextBlocks = function (editor, rng, root) {\n var textBlocks = [], dom = editor.dom;\n var startNode = getEndPointNode(editor, rng, true, root);\n var endNode = getEndPointNode(editor, rng, false, root);\n var block;\n var siblings = [];\n for (var node = startNode; node; node = node.nextSibling) {\n siblings.push(node);\n if (node === endNode) {\n break;\n }\n }\n global$5.each(siblings, function (node) {\n if (NodeType.isTextBlock(editor, node)) {\n textBlocks.push(node);\n block = null;\n return;\n }\n if (dom.isBlock(node) || NodeType.isBr(node)) {\n if (NodeType.isBr(node)) {\n dom.remove(node);\n }\n block = null;\n return;\n }\n var nextSibling = node.nextSibling;\n if (global$7.isBookmarkNode(node)) {\n if (NodeType.isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {\n block = null;\n return;\n }\n }\n if (!block) {\n block = dom.create('p');\n node.parentNode.insertBefore(block, node);\n textBlocks.push(block);\n }\n block.appendChild(node);\n });\n return textBlocks;\n };\n var hasCompatibleStyle = function (dom, sib, detail) {\n var sibStyle = dom.getStyle(sib, 'list-style-type');\n var detailStyle = detail ? detail['list-style-type'] : '';\n detailStyle = detailStyle === null ? '' : detailStyle;\n return sibStyle === detailStyle;\n };\n var applyList = function (editor, listName, detail) {\n if (detail === void 0) {\n detail = {};\n }\n var rng = editor.selection.getRng(true);\n var bookmark;\n var listItemName = 'LI';\n var root = Selection.getClosestListRootElm(editor, editor.selection.getStart(true));\n var dom = editor.dom;\n if (dom.getContentEditable(editor.selection.getNode()) === 'false') {\n return;\n }\n listName = listName.toUpperCase();\n if (listName === 'DL') {\n listItemName = 'DT';\n }\n bookmark = Bookmark.createBookmark(rng);\n global$5.each(getSelectedTextBlocks(editor, rng, root), function (block) {\n var listBlock, sibling;\n sibling = block.previousSibling;\n if (sibling && NodeType.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {\n listBlock = sibling;\n block = dom.rename(block, listItemName);\n sibling.appendChild(block);\n } else {\n listBlock = dom.create(listName);\n block.parentNode.insertBefore(listBlock, block);\n listBlock.appendChild(block);\n block = dom.rename(block, listItemName);\n }\n removeStyles(dom, block, [\n 'margin',\n 'margin-right',\n 'margin-bottom',\n 'margin-left',\n 'margin-top',\n 'padding',\n 'padding-right',\n 'padding-bottom',\n 'padding-left',\n 'padding-top'\n ]);\n updateListWithDetails(dom, listBlock, detail);\n mergeWithAdjacentLists(editor.dom, listBlock);\n });\n editor.selection.setRng(Bookmark.resolveBookmark(bookmark));\n };\n var isValidLists = function (list1, list2) {\n return list1 && list2 && NodeType.isListNode(list1) && list1.nodeName === list2.nodeName;\n };\n var hasSameListStyle = function (dom, list1, list2) {\n var targetStyle = dom.getStyle(list1, 'list-style-type', true);\n var style = dom.getStyle(list2, 'list-style-type', true);\n return targetStyle === style;\n };\n var hasSameClasses = function (elm1, elm2) {\n return elm1.className === elm2.className;\n };\n var shouldMerge = function (dom, list1, list2) {\n return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);\n };\n var mergeWithAdjacentLists = function (dom, listBlock) {\n var sibling, node;\n sibling = listBlock.nextSibling;\n if (shouldMerge(dom, listBlock, sibling)) {\n while (node = sibling.firstChild) {\n listBlock.appendChild(node);\n }\n dom.remove(sibling);\n }\n sibling = listBlock.previousSibling;\n if (shouldMerge(dom, listBlock, sibling)) {\n while (node = sibling.lastChild) {\n listBlock.insertBefore(node, listBlock.firstChild);\n }\n dom.remove(sibling);\n }\n };\n var updateList = function (editor, list, listName, detail) {\n if (list.nodeName !== listName) {\n var newList = editor.dom.rename(list, listName);\n updateListWithDetails(editor.dom, newList, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n } else {\n updateListWithDetails(editor.dom, list, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), list);\n }\n };\n var toggleMultipleLists = function (editor, parentList, lists, listName, detail) {\n if (parentList.nodeName === listName && !hasListStyleDetail(detail)) {\n flattenListSelection(editor);\n } else {\n var bookmark = Bookmark.createBookmark(editor.selection.getRng(true));\n global$5.each([parentList].concat(lists), function (elm) {\n updateList(editor, elm, listName, detail);\n });\n editor.selection.setRng(Bookmark.resolveBookmark(bookmark));\n }\n };\n var hasListStyleDetail = function (detail) {\n return 'list-style-type' in detail;\n };\n var toggleSingleList = function (editor, parentList, listName, detail) {\n if (parentList === editor.getBody()) {\n return;\n }\n if (parentList) {\n if (parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) {\n flattenListSelection(editor);\n } else {\n var bookmark = Bookmark.createBookmark(editor.selection.getRng(true));\n updateListWithDetails(editor.dom, parentList, detail);\n var newList = editor.dom.rename(parentList, listName);\n mergeWithAdjacentLists(editor.dom, newList);\n editor.selection.setRng(Bookmark.resolveBookmark(bookmark));\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n }\n } else {\n applyList(editor, listName, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), parentList);\n }\n };\n var toggleList = function (editor, listName, detail) {\n var parentList = Selection.getParentList(editor);\n var selectedSubLists = Selection.getSelectedSubLists(editor);\n detail = detail ? detail : {};\n if (parentList && selectedSubLists.length > 0) {\n toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);\n } else {\n toggleSingleList(editor, parentList, listName, detail);\n }\n };\n var ToggleList = {\n toggleList: toggleList,\n mergeWithAdjacentLists: mergeWithAdjacentLists\n };\n\n var DOM$2 = global$6.DOM;\n var normalizeList = function (dom, ul) {\n var sibling;\n var parentNode = ul.parentNode;\n if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) {\n sibling = parentNode.previousSibling;\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(ul);\n if (NodeType.isEmpty(dom, parentNode)) {\n DOM$2.remove(parentNode);\n }\n } else {\n DOM$2.setStyle(parentNode, 'listStyleType', 'none');\n }\n }\n if (NodeType.isListNode(parentNode)) {\n sibling = parentNode.previousSibling;\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(ul);\n }\n }\n };\n var normalizeLists = function (dom, element) {\n global$5.each(global$5.grep(dom.select('ol,ul', element)), function (ul) {\n normalizeList(dom, ul);\n });\n };\n var NormalizeLists = {\n normalizeList: normalizeList,\n normalizeLists: normalizeLists\n };\n\n var findNextCaretContainer = function (editor, rng, isForward, root) {\n var node = rng.startContainer;\n var offset = rng.startOffset;\n if (NodeType.isTextNode(node) && (isForward ? offset < node.data.length : offset > 0)) {\n return node;\n }\n var nonEmptyBlocks = editor.schema.getNonEmptyElements();\n if (node.nodeType === 1) {\n node = global$1.getNode(node, offset);\n }\n var walker = new global$2(node, root);\n if (isForward) {\n if (NodeType.isBogusBr(editor.dom, node)) {\n walker.next();\n }\n }\n while (node = walker[isForward ? 'next' : 'prev2']()) {\n if (node.nodeName === 'LI' && !node.hasChildNodes()) {\n return node;\n }\n if (nonEmptyBlocks[node.nodeName]) {\n return node;\n }\n if (NodeType.isTextNode(node) && node.data.length > 0) {\n return node;\n }\n }\n };\n var hasOnlyOneBlockChild = function (dom, elm) {\n var childNodes = elm.childNodes;\n return childNodes.length === 1 && !NodeType.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);\n };\n var unwrapSingleBlockChild = function (dom, elm) {\n if (hasOnlyOneBlockChild(dom, elm)) {\n dom.remove(elm.firstChild, true);\n }\n };\n var moveChildren = function (dom, fromElm, toElm) {\n var node, targetElm;\n targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;\n unwrapSingleBlockChild(dom, fromElm);\n if (!NodeType.isEmpty(dom, fromElm, true)) {\n while (node = fromElm.firstChild) {\n targetElm.appendChild(node);\n }\n }\n };\n var mergeLiElements = function (dom, fromElm, toElm) {\n var node, listNode;\n var ul = fromElm.parentNode;\n if (!NodeType.isChildOfBody(dom, fromElm) || !NodeType.isChildOfBody(dom, toElm)) {\n return;\n }\n if (NodeType.isListNode(toElm.lastChild)) {\n listNode = toElm.lastChild;\n }\n if (ul === toElm.lastChild) {\n if (NodeType.isBr(ul.previousSibling)) {\n dom.remove(ul.previousSibling);\n }\n }\n node = toElm.lastChild;\n if (node && NodeType.isBr(node) && fromElm.hasChildNodes()) {\n dom.remove(node);\n }\n if (NodeType.isEmpty(dom, toElm, true)) {\n dom.$(toElm).empty();\n }\n moveChildren(dom, fromElm, toElm);\n if (listNode) {\n toElm.appendChild(listNode);\n }\n var contains = contains$1(Element.fromDom(toElm), Element.fromDom(fromElm));\n var nestedLists = contains ? dom.getParents(fromElm, NodeType.isListNode, toElm) : [];\n dom.remove(fromElm);\n each(nestedLists, function (list) {\n if (NodeType.isEmpty(dom, list) && list !== dom.getRoot()) {\n dom.remove(list);\n }\n });\n };\n var mergeIntoEmptyLi = function (editor, fromLi, toLi) {\n editor.dom.$(toLi).empty();\n mergeLiElements(editor.dom, fromLi, toLi);\n editor.selection.setCursorLocation(toLi);\n };\n var mergeForward = function (editor, rng, fromLi, toLi) {\n var dom = editor.dom;\n if (dom.isEmpty(toLi)) {\n mergeIntoEmptyLi(editor, fromLi, toLi);\n } else {\n var bookmark = Bookmark.createBookmark(rng);\n mergeLiElements(dom, fromLi, toLi);\n editor.selection.setRng(Bookmark.resolveBookmark(bookmark));\n }\n };\n var mergeBackward = function (editor, rng, fromLi, toLi) {\n var bookmark = Bookmark.createBookmark(rng);\n mergeLiElements(editor.dom, fromLi, toLi);\n var resolvedBookmark = Bookmark.resolveBookmark(bookmark);\n editor.selection.setRng(resolvedBookmark);\n };\n var backspaceDeleteFromListToListCaret = function (editor, isForward) {\n var dom = editor.dom, selection = editor.selection;\n var selectionStartElm = selection.getStart();\n var root = Selection.getClosestListRootElm(editor, selectionStartElm);\n var li = dom.getParent(selection.getStart(), 'LI', root);\n if (li) {\n var ul = li.parentNode;\n if (ul === editor.getBody() && NodeType.isEmpty(dom, ul)) {\n return true;\n }\n var rng_1 = Range.normalizeRange(selection.getRng());\n var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng_1, isForward, root), 'LI', root);\n if (otherLi_1 && otherLi_1 !== li) {\n editor.undoManager.transact(function () {\n if (isForward) {\n mergeForward(editor, rng_1, otherLi_1, li);\n } else {\n if (NodeType.isFirstChild(li)) {\n outdentListSelection(editor);\n } else {\n mergeBackward(editor, rng_1, li, otherLi_1);\n }\n }\n });\n return true;\n } else if (!otherLi_1) {\n if (!isForward && rng_1.startOffset === 0 && rng_1.endOffset === 0) {\n editor.undoManager.transact(function () {\n flattenListSelection(editor);\n });\n return true;\n }\n }\n }\n return false;\n };\n var removeBlock = function (dom, block, root) {\n var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);\n dom.remove(block);\n if (parentBlock && dom.isEmpty(parentBlock)) {\n dom.remove(parentBlock);\n }\n };\n var backspaceDeleteIntoListCaret = function (editor, isForward) {\n var dom = editor.dom;\n var selectionStartElm = editor.selection.getStart();\n var root = Selection.getClosestListRootElm(editor, selectionStartElm);\n var block = dom.getParent(selectionStartElm, dom.isBlock, root);\n if (block && dom.isEmpty(block)) {\n var rng = Range.normalizeRange(editor.selection.getRng());\n var otherLi_2 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);\n if (otherLi_2) {\n editor.undoManager.transact(function () {\n removeBlock(dom, block, root);\n ToggleList.mergeWithAdjacentLists(dom, otherLi_2.parentNode);\n editor.selection.select(otherLi_2, true);\n editor.selection.collapse(isForward);\n });\n return true;\n }\n }\n return false;\n };\n var backspaceDeleteCaret = function (editor, isForward) {\n return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);\n };\n var backspaceDeleteRange = function (editor) {\n var selectionStartElm = editor.selection.getStart();\n var root = Selection.getClosestListRootElm(editor, selectionStartElm);\n var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);\n if (startListParent || Selection.getSelectedListItems(editor).length > 0) {\n editor.undoManager.transact(function () {\n editor.execCommand('Delete');\n NormalizeLists.normalizeLists(editor.dom, editor.getBody());\n });\n return true;\n }\n return false;\n };\n var backspaceDelete = function (editor, isForward) {\n return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor);\n };\n var setup = function (editor) {\n editor.on('keydown', function (e) {\n if (e.keyCode === global$3.BACKSPACE) {\n if (backspaceDelete(editor, false)) {\n e.preventDefault();\n }\n } else if (e.keyCode === global$3.DELETE) {\n if (backspaceDelete(editor, true)) {\n e.preventDefault();\n }\n }\n });\n };\n var Delete = {\n setup: setup,\n backspaceDelete: backspaceDelete\n };\n\n var get = function (editor) {\n return {\n backspaceDelete: function (isForward) {\n Delete.backspaceDelete(editor, isForward);\n }\n };\n };\n var Api = { get: get };\n\n var queryListCommandState = function (editor, listName) {\n return function () {\n var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL');\n return parentList && parentList.nodeName === listName;\n };\n };\n var register = function (editor) {\n editor.on('BeforeExecCommand', function (e) {\n var cmd = e.command.toLowerCase();\n if (cmd === 'indent') {\n indentListSelection(editor);\n } else if (cmd === 'outdent') {\n outdentListSelection(editor);\n }\n });\n editor.addCommand('InsertUnorderedList', function (ui, detail) {\n ToggleList.toggleList(editor, 'UL', detail);\n });\n editor.addCommand('InsertOrderedList', function (ui, detail) {\n ToggleList.toggleList(editor, 'OL', detail);\n });\n editor.addCommand('InsertDefinitionList', function (ui, detail) {\n ToggleList.toggleList(editor, 'DL', detail);\n });\n editor.addCommand('RemoveList', function () {\n flattenListSelection(editor);\n });\n editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));\n editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));\n editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));\n };\n var Commands = { register: register };\n\n var shouldIndentOnTab = function (editor) {\n return editor.getParam('lists_indent_on_tab', true);\n };\n var Settings = { shouldIndentOnTab: shouldIndentOnTab };\n\n var setupTabKey = function (editor) {\n editor.on('keydown', function (e) {\n if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) {\n return;\n }\n editor.undoManager.transact(function () {\n if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {\n e.preventDefault();\n }\n });\n });\n };\n var setup$1 = function (editor) {\n if (Settings.shouldIndentOnTab(editor)) {\n setupTabKey(editor);\n }\n Delete.setup(editor);\n };\n var Keyboard = { setup: setup$1 };\n\n var findIndex = function (list, predicate) {\n for (var index = 0; index < list.length; index++) {\n var element = list[index];\n if (predicate(element)) {\n return index;\n }\n }\n return -1;\n };\n var listState = function (editor, listName) {\n return function (buttonApi) {\n var nodeChangeHandler = function (e) {\n var tableCellIndex = findIndex(e.parents, NodeType.isTableCellNode);\n var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;\n var lists = global$5.grep(parents, NodeType.isListNode);\n buttonApi.setActive(lists.length > 0 && lists[0].nodeName === listName && !isCustomList(lists[0]));\n };\n editor.on('NodeChange', nodeChangeHandler);\n return function () {\n return editor.off('NodeChange', nodeChangeHandler);\n };\n };\n };\n var register$1 = function (editor) {\n var hasPlugin = function (editor, plugin) {\n var plugins = editor.settings.plugins ? editor.settings.plugins : '';\n return global$5.inArray(plugins.split(/[ ,]/), plugin) !== -1;\n };\n var exec = function (command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n if (!hasPlugin(editor, 'advlist')) {\n editor.ui.registry.addToggleButton('numlist', {\n icon: 'ordered-list',\n active: false,\n tooltip: 'Numbered list',\n onAction: exec('InsertOrderedList'),\n onSetup: listState(editor, 'OL')\n });\n editor.ui.registry.addToggleButton('bullist', {\n icon: 'unordered-list',\n active: false,\n tooltip: 'Bullet list',\n onAction: exec('InsertUnorderedList'),\n onSetup: listState(editor, 'UL')\n });\n }\n };\n var Buttons = { register: register$1 };\n\n function Plugin () {\n global.add('lists', function (editor) {\n Keyboard.setup(editor);\n Buttons.register(editor);\n Commands.register(editor);\n return Api.get(editor);\n });\n }\n\n Plugin();\n\n}(window));\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.1.4 (2019-12-11)\n */\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n var noop = function () {\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze) {\n Object.freeze(me);\n }\n return me;\n }();\n var some = function (a) {\n var constant_a = constant(a);\n var self = function () {\n return me;\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never, function (b) {\n return elementEq(a, b);\n });\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null) {\n return 'null';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isArray = isType('array');\n var isFunction = isType('function');\n\n var nativeSlice = Array.prototype.slice;\n var nativePush = Array.prototype.push;\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var shallow = function (old, nu) {\n return nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++) {\n objects[i] = arguments[i];\n }\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject) {\n if (hasOwnProperty.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n var merge = baseMerge(shallow);\n\n var hasOwnProperty$1 = Object.hasOwnProperty;\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty$1.call(obj, key);\n };\n\n var getScripts = function (editor) {\n return editor.getParam('media_scripts');\n };\n var getAudioTemplateCallback = function (editor) {\n return editor.getParam('audio_template_callback');\n };\n var getVideoTemplateCallback = function (editor) {\n return editor.getParam('video_template_callback');\n };\n var hasLiveEmbeds = function (editor) {\n return editor.getParam('media_live_embeds', true);\n };\n var shouldFilterHtml = function (editor) {\n return editor.getParam('media_filter_html', true);\n };\n var getUrlResolver = function (editor) {\n return editor.getParam('media_url_resolver');\n };\n var hasAltSource = function (editor) {\n return editor.getParam('media_alt_source', true);\n };\n var hasPoster = function (editor) {\n return editor.getParam('media_poster', true);\n };\n var hasDimensions = function (editor) {\n return editor.getParam('media_dimensions', true);\n };\n var Settings = {\n getScripts: getScripts,\n getAudioTemplateCallback: getAudioTemplateCallback,\n getVideoTemplateCallback: getVideoTemplateCallback,\n hasLiveEmbeds: hasLiveEmbeds,\n shouldFilterHtml: shouldFilterHtml,\n getUrlResolver: getUrlResolver,\n hasAltSource: hasAltSource,\n hasPoster: hasPoster,\n hasDimensions: hasDimensions\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.html.SaxParser');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var trimPx = function (value) {\n return value.replace(/px$/, '');\n };\n var addPx = function (value) {\n return /^[0-9.]+$/.test(value) ? value + 'px' : value;\n };\n var getSize = function (name) {\n return function (elm) {\n return elm ? trimPx(elm.style[name]) : '';\n };\n };\n var setSize = function (name) {\n return function (elm, value) {\n if (elm) {\n elm.style[name] = addPx(value);\n }\n };\n };\n var Size = {\n getMaxWidth: getSize('maxWidth'),\n getMaxHeight: getSize('maxHeight'),\n setMaxWidth: setSize('maxWidth'),\n setMaxHeight: setSize('maxHeight')\n };\n\n var getVideoScriptMatch = function (prefixes, src) {\n if (prefixes) {\n for (var i = 0; i < prefixes.length; i++) {\n if (src.indexOf(prefixes[i].filter) !== -1) {\n return prefixes[i];\n }\n }\n }\n };\n\n var DOM = global$3.DOM;\n var getEphoxEmbedIri = function (elm) {\n return DOM.getAttrib(elm, 'data-ephox-embed-iri');\n };\n var isEphoxEmbed = function (html) {\n var fragment = DOM.createFragment(html);\n return getEphoxEmbedIri(fragment.firstChild) !== '';\n };\n var htmlToDataSax = function (prefixes, html) {\n var data = {};\n global$2({\n validate: false,\n allow_conditional_comments: true,\n start: function (name, attrs) {\n if (!data.source1 && name === 'param') {\n data.source1 = attrs.map.movie;\n }\n if (name === 'iframe' || name === 'object' || name === 'embed' || name === 'video' || name === 'audio') {\n if (!data.type) {\n data.type = name;\n }\n data = global$1.extend(attrs.map, data);\n }\n if (name === 'script') {\n var videoScript = getVideoScriptMatch(prefixes, attrs.map.src);\n if (!videoScript) {\n return;\n }\n data = {\n type: 'script',\n source1: attrs.map.src,\n width: String(videoScript.width),\n height: String(videoScript.height)\n };\n }\n if (name === 'source') {\n if (!data.source1) {\n data.source1 = attrs.map.src;\n } else if (!data.source2) {\n data.source2 = attrs.map.src;\n }\n }\n if (name === 'img' && !data.poster) {\n data.poster = attrs.map.src;\n }\n }\n }).parse(html);\n data.source1 = data.source1 || data.src || data.data;\n data.source2 = data.source2 || '';\n data.poster = data.poster || '';\n return data;\n };\n var ephoxEmbedHtmlToData = function (html) {\n var fragment = DOM.createFragment(html);\n var div = fragment.firstChild;\n return {\n type: 'ephox-embed-iri',\n source1: getEphoxEmbedIri(div),\n source2: '',\n poster: '',\n width: Size.getMaxWidth(div),\n height: Size.getMaxHeight(div)\n };\n };\n var htmlToData = function (prefixes, html) {\n return isEphoxEmbed(html) ? ephoxEmbedHtmlToData(html) : htmlToDataSax(prefixes, html);\n };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var guess = function (url) {\n var mimes = {\n mp3: 'audio/mpeg',\n m4a: 'audio/x-m4a',\n wav: 'audio/wav',\n mp4: 'video/mp4',\n webm: 'video/webm',\n ogg: 'video/ogg',\n swf: 'application/x-shockwave-flash'\n };\n var fileEnd = url.toLowerCase().split('.').pop();\n var mime = mimes[fileEnd];\n return mime ? mime : '';\n };\n var Mime = { guess: guess };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.html.Writer');\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.html.Schema');\n\n var DOM$1 = global$3.DOM;\n var setAttributes = function (attrs, updatedAttrs) {\n var name;\n var i;\n var value;\n var attr;\n for (name in updatedAttrs) {\n value = '' + updatedAttrs[name];\n if (attrs.map[name]) {\n i = attrs.length;\n while (i--) {\n attr = attrs[i];\n if (attr.name === name) {\n if (value) {\n attrs.map[name] = value;\n attr.value = value;\n } else {\n delete attrs.map[name];\n attrs.splice(i, 1);\n }\n }\n }\n } else if (value) {\n attrs.push({\n name: name,\n value: value\n });\n attrs.map[name] = value;\n }\n }\n };\n var normalizeHtml = function (html) {\n var writer = global$5();\n var parser = global$2(writer);\n parser.parse(html);\n return writer.getContent();\n };\n var updateHtmlSax = function (html, data, updateAll) {\n var writer = global$5();\n var sourceCount = 0;\n var hasImage;\n global$2({\n validate: false,\n allow_conditional_comments: true,\n comment: function (text) {\n writer.comment(text);\n },\n cdata: function (text) {\n writer.cdata(text);\n },\n text: function (text, raw) {\n writer.text(text, raw);\n },\n start: function (name, attrs, empty) {\n switch (name) {\n case 'video':\n case 'object':\n case 'embed':\n case 'img':\n case 'iframe':\n if (data.height !== undefined && data.width !== undefined) {\n setAttributes(attrs, {\n width: data.width,\n height: data.height\n });\n }\n break;\n }\n if (updateAll) {\n switch (name) {\n case 'video':\n setAttributes(attrs, {\n poster: data.poster,\n src: ''\n });\n if (data.source2) {\n setAttributes(attrs, { src: '' });\n }\n break;\n case 'iframe':\n setAttributes(attrs, { src: data.source1 });\n break;\n case 'source':\n sourceCount++;\n if (sourceCount <= 2) {\n setAttributes(attrs, {\n src: data['source' + sourceCount],\n type: data['source' + sourceCount + 'mime']\n });\n if (!data['source' + sourceCount]) {\n return;\n }\n }\n break;\n case 'img':\n if (!data.poster) {\n return;\n }\n hasImage = true;\n break;\n }\n }\n writer.start(name, attrs, empty);\n },\n end: function (name) {\n if (name === 'video' && updateAll) {\n for (var index = 1; index <= 2; index++) {\n if (data['source' + index]) {\n var attrs = [];\n attrs.map = {};\n if (sourceCount < index) {\n setAttributes(attrs, {\n src: data['source' + index],\n type: data['source' + index + 'mime']\n });\n writer.start('source', attrs, true);\n }\n }\n }\n }\n if (data.poster && name === 'object' && updateAll && !hasImage) {\n var imgAttrs = [];\n imgAttrs.map = {};\n setAttributes(imgAttrs, {\n src: data.poster,\n width: data.width,\n height: data.height\n });\n writer.start('img', imgAttrs, true);\n }\n writer.end(name);\n }\n }, global$6({})).parse(html);\n return writer.getContent();\n };\n var isEphoxEmbed$1 = function (html) {\n var fragment = DOM$1.createFragment(html);\n return DOM$1.getAttrib(fragment.firstChild, 'data-ephox-embed-iri') !== '';\n };\n var updateEphoxEmbed = function (html, data) {\n var fragment = DOM$1.createFragment(html);\n var div = fragment.firstChild;\n Size.setMaxWidth(div, data.width);\n Size.setMaxHeight(div, data.height);\n return normalizeHtml(div.outerHTML);\n };\n var updateHtml = function (html, data, updateAll) {\n return isEphoxEmbed$1(html) ? updateEphoxEmbed(html, data) : updateHtmlSax(html, data, updateAll);\n };\n var UpdateHtml = { updateHtml: updateHtml };\n\n var urlPatterns = [\n {\n regex: /youtu\\.be\\/([\\w\\-_\\?&=.]+)/i,\n type: 'iframe',\n w: 560,\n h: 314,\n url: '//www.youtube.com/embed/$1',\n allowFullscreen: true\n },\n {\n regex: /youtube\\.com(.+)v=([^&]+)(&([a-z0-9&=\\-_]+))?/i,\n type: 'iframe',\n w: 560,\n h: 314,\n url: '//www.youtube.com/embed/$2?$4',\n allowFullscreen: true\n },\n {\n regex: /youtube.com\\/embed\\/([a-z0-9\\?&=\\-_]+)/i,\n type: 'iframe',\n w: 560,\n h: 314,\n url: '//www.youtube.com/embed/$1',\n allowFullscreen: true\n },\n {\n regex: /vimeo\\.com\\/([0-9]+)/,\n type: 'iframe',\n w: 425,\n h: 350,\n url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc',\n allowFullscreen: true\n },\n {\n regex: /vimeo\\.com\\/(.*)\\/([0-9]+)/,\n type: 'iframe',\n w: 425,\n h: 350,\n url: '//player.vimeo.com/video/$2?title=0&amp;byline=0',\n allowFullscreen: true\n },\n {\n regex: /maps\\.google\\.([a-z]{2,3})\\/maps\\/(.+)msid=(.+)/,\n type: 'iframe',\n w: 425,\n h: 350,\n url: '//maps.google.com/maps/ms?msid=$2&output=embed\"',\n allowFullscreen: false\n },\n {\n regex: /dailymotion\\.com\\/video\\/([^_]+)/,\n type: 'iframe',\n w: 480,\n h: 270,\n url: '//www.dailymotion.com/embed/video/$1',\n allowFullscreen: true\n },\n {\n regex: /dai\\.ly\\/([^_]+)/,\n type: 'iframe',\n w: 480,\n h: 270,\n url: '//www.dailymotion.com/embed/video/$1',\n allowFullscreen: true\n }\n ];\n var getUrl = function (pattern, url) {\n var match = pattern.regex.exec(url);\n var newUrl = pattern.url;\n var _loop_1 = function (i) {\n newUrl = newUrl.replace('$' + i, function () {\n return match[i] ? match[i] : '';\n });\n };\n for (var i = 0; i < match.length; i++) {\n _loop_1(i);\n }\n return newUrl.replace(/\\?$/, '');\n };\n var matchPattern = function (url) {\n var pattern = urlPatterns.filter(function (pattern) {\n return pattern.regex.test(url);\n });\n if (pattern.length > 0) {\n return global$1.extend({}, pattern[0], { url: getUrl(pattern[0], url) });\n } else {\n return null;\n }\n };\n\n var getIframeHtml = function (data) {\n var allowFullscreen = data.allowFullscreen ? ' allowFullscreen=\"1\"' : '';\n return '<iframe src=\"' + data.source1 + '\" width=\"' + data.width + '\" height=\"' + data.height + '\"' + allowFullscreen + '></iframe>';\n };\n var getFlashHtml = function (data) {\n var html = '<object data=\"' + data.source1 + '\" width=\"' + data.width + '\" height=\"' + data.height + '\" type=\"application/x-shockwave-flash\">';\n if (data.poster) {\n html += '<img src=\"' + data.poster + '\" width=\"' + data.width + '\" height=\"' + data.height + '\" />';\n }\n html += '</object>';\n return html;\n };\n var getAudioHtml = function (data, audioTemplateCallback) {\n if (audioTemplateCallback) {\n return audioTemplateCallback(data);\n } else {\n return '<audio controls=\"controls\" src=\"' + data.source1 + '\">' + (data.source2 ? '\\n<source src=\"' + data.source2 + '\"' + (data.source2mime ? ' type=\"' + data.source2mime + '\"' : '') + ' />\\n' : '') + '</audio>';\n }\n };\n var getVideoHtml = function (data, videoTemplateCallback) {\n if (videoTemplateCallback) {\n return videoTemplateCallback(data);\n } else {\n return '<video width=\"' + data.width + '\" height=\"' + data.height + '\"' + (data.poster ? ' poster=\"' + data.poster + '\"' : '') + ' controls=\"controls\">\\n' + '<source src=\"' + data.source1 + '\"' + (data.source1mime ? ' type=\"' + data.source1mime + '\"' : '') + ' />\\n' + (data.source2 ? '<source src=\"' + data.source2 + '\"' + (data.source2mime ? ' type=\"' + data.source2mime + '\"' : '') + ' />\\n' : '') + '</video>';\n }\n };\n var getScriptHtml = function (data) {\n return '<script src=\"' + data.source1 + '\"></script>';\n };\n var dataToHtml = function (editor, dataIn) {\n var data = global$1.extend({}, dataIn);\n if (!data.source1) {\n global$1.extend(data, htmlToData(Settings.getScripts(editor), data.embed));\n if (!data.source1) {\n return '';\n }\n }\n if (!data.source2) {\n data.source2 = '';\n }\n if (!data.poster) {\n data.poster = '';\n }\n data.source1 = editor.convertURL(data.source1, 'source');\n data.source2 = editor.convertURL(data.source2, 'source');\n data.source1mime = Mime.guess(data.source1);\n data.source2mime = Mime.guess(data.source2);\n data.poster = editor.convertURL(data.poster, 'poster');\n var pattern = matchPattern(data.source1);\n if (pattern) {\n data.source1 = pattern.url;\n data.type = pattern.type;\n data.allowFullscreen = pattern.allowFullscreen;\n data.width = data.width || String(pattern.w);\n data.height = data.height || String(pattern.h);\n }\n if (data.embed) {\n return UpdateHtml.updateHtml(data.embed, data, true);\n } else {\n var videoScript = getVideoScriptMatch(Settings.getScripts(editor), data.source1);\n if (videoScript) {\n data.type = 'script';\n data.width = String(videoScript.width);\n data.height = String(videoScript.height);\n }\n var audioTemplateCallback = Settings.getAudioTemplateCallback(editor);\n var videoTemplateCallback = Settings.getVideoTemplateCallback(editor);\n data.width = data.width || '300';\n data.height = data.height || '150';\n global$1.each(data, function (value, key) {\n data[key] = editor.dom.encode('' + value);\n });\n if (data.type === 'iframe') {\n return getIframeHtml(data);\n } else if (data.source1mime === 'application/x-shockwave-flash') {\n return getFlashHtml(data);\n } else if (data.source1mime.indexOf('audio') !== -1) {\n return getAudioHtml(data, audioTemplateCallback);\n } else if (data.type === 'script') {\n return getScriptHtml(data);\n } else {\n return getVideoHtml(data, videoTemplateCallback);\n }\n }\n };\n\n var cache = {};\n var embedPromise = function (data, dataToHtml, handler) {\n return new global$4(function (res, rej) {\n var wrappedResolve = function (response) {\n if (response.html) {\n cache[data.source1] = response;\n }\n return res({\n url: data.source1,\n html: response.html ? response.html : dataToHtml(data)\n });\n };\n if (cache[data.source1]) {\n wrappedResolve(cache[data.source1]);\n } else {\n handler({ url: data.source1 }, wrappedResolve, rej);\n }\n });\n };\n var defaultPromise = function (data, dataToHtml) {\n return new global$4(function (res) {\n res({\n html: dataToHtml(data),\n url: data.source1\n });\n });\n };\n var loadedData = function (editor) {\n return function (data) {\n return dataToHtml(editor, data);\n };\n };\n var getEmbedHtml = function (editor, data) {\n var embedHandler = Settings.getUrlResolver(editor);\n return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor));\n };\n var isCached = function (url) {\n return cache.hasOwnProperty(url);\n };\n var Service = {\n getEmbedHtml: getEmbedHtml,\n isCached: isCached\n };\n\n var unwrap = function (data) {\n var unwrapped = merge(data, {\n source1: data.source1.value,\n source2: get(data, 'source2').bind(function (source2) {\n return get(source2, 'value');\n }).getOr(''),\n poster: get(data, 'poster').bind(function (poster) {\n return get(poster, 'value');\n }).getOr('')\n });\n get(data, 'dimensions').each(function (dimensions) {\n each([\n 'width',\n 'height'\n ], function (prop) {\n get(dimensions, prop).each(function (value) {\n return unwrapped[prop] = value;\n });\n });\n });\n return unwrapped;\n };\n var wrap = function (data) {\n var wrapped = merge(data, {\n source1: { value: get(data, 'source1').getOr('') },\n source2: { value: get(data, 'source2').getOr('') },\n poster: { value: get(data, 'poster').getOr('') }\n });\n each([\n 'width',\n 'height'\n ], function (prop) {\n get(data, prop).each(function (value) {\n var dimensions = wrapped.dimensions || {};\n dimensions[prop] = value;\n wrapped.dimensions = dimensions;\n });\n });\n return wrapped;\n };\n var handleError = function (editor) {\n return function (error) {\n var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.';\n editor.notificationManager.open({\n type: 'error',\n text: errorMessage\n });\n };\n };\n var snippetToData = function (editor, embedSnippet) {\n return htmlToData(Settings.getScripts(editor), embedSnippet);\n };\n var isMediaElement = function (element) {\n return element.getAttribute('data-mce-object') || element.getAttribute('data-ephox-embed-iri');\n };\n var getEditorData = function (editor) {\n var element = editor.selection.getNode();\n var snippet = isMediaElement(element) ? editor.serializer.serialize(element, { selection: true }) : '';\n return merge({ embed: snippet }, htmlToData(Settings.getScripts(editor), snippet));\n };\n var addEmbedHtml = function (api, editor) {\n return function (response) {\n if (isString(response.url) && response.url.trim().length > 0) {\n var html = response.html;\n var snippetData = snippetToData(editor, html);\n var nuData = __assign(__assign({}, snippetData), {\n source1: response.url,\n embed: html\n });\n api.setData(wrap(nuData));\n }\n };\n };\n var selectPlaceholder = function (editor, beforeObjects) {\n var afterObjects = editor.dom.select('img[data-mce-object]');\n for (var i = 0; i < beforeObjects.length; i++) {\n for (var y = afterObjects.length - 1; y >= 0; y--) {\n if (beforeObjects[i] === afterObjects[y]) {\n afterObjects.splice(y, 1);\n }\n }\n }\n editor.selection.select(afterObjects[0]);\n };\n var handleInsert = function (editor, html) {\n var beforeObjects = editor.dom.select('img[data-mce-object]');\n editor.insertContent(html);\n selectPlaceholder(editor, beforeObjects);\n editor.nodeChanged();\n };\n var submitForm = function (prevData, newData, editor) {\n newData.embed = UpdateHtml.updateHtml(newData.embed, newData);\n if (newData.embed && (prevData.source1 === newData.source1 || Service.isCached(newData.source1))) {\n handleInsert(editor, newData.embed);\n } else {\n Service.getEmbedHtml(editor, newData).then(function (response) {\n handleInsert(editor, response.html);\n }).catch(handleError(editor));\n }\n };\n var showDialog = function (editor) {\n var editorData = getEditorData(editor);\n var currentData = Cell(editorData);\n var initialData = wrap(editorData);\n var getSourceData = function (api) {\n return unwrap(api.getData());\n };\n var handleSource1 = function (prevData, api) {\n var serviceData = getSourceData(api);\n if (prevData.source1 !== serviceData.source1) {\n addEmbedHtml(win, editor)({\n url: serviceData.source1,\n html: ''\n });\n Service.getEmbedHtml(editor, serviceData).then(addEmbedHtml(win, editor)).catch(handleError(editor));\n }\n };\n var handleEmbed = function (api) {\n var data = unwrap(api.getData());\n var dataFromEmbed = snippetToData(editor, data.embed);\n api.setData(wrap(dataFromEmbed));\n };\n var handleUpdate = function (api) {\n var data = getSourceData(api);\n var embed = dataToHtml(editor, data);\n api.setData(wrap(__assign(__assign({}, data), { embed: embed })));\n };\n var mediaInput = [{\n name: 'source1',\n type: 'urlinput',\n filetype: 'media',\n label: 'Source'\n }];\n var sizeInput = !Settings.hasDimensions(editor) ? [] : [{\n type: 'sizeinput',\n name: 'dimensions',\n label: 'Constrain proportions',\n constrain: true\n }];\n var generalTab = {\n title: 'General',\n name: 'general',\n items: flatten([\n mediaInput,\n sizeInput\n ])\n };\n var embedTextarea = {\n type: 'textarea',\n name: 'embed',\n label: 'Paste your embed code below:'\n };\n var embedTab = {\n title: 'Embed',\n items: [embedTextarea]\n };\n var advancedFormItems = [];\n if (Settings.hasAltSource(editor)) {\n advancedFormItems.push({\n name: 'source2',\n type: 'urlinput',\n filetype: 'media',\n label: 'Alternative source URL'\n });\n }\n if (Settings.hasPoster(editor)) {\n advancedFormItems.push({\n name: 'poster',\n type: 'urlinput',\n filetype: 'image',\n label: 'Media poster (Image URL)'\n });\n }\n var advancedTab = {\n title: 'Advanced',\n name: 'advanced',\n items: advancedFormItems\n };\n var tabs = [\n generalTab,\n embedTab\n ];\n if (advancedFormItems.length > 0) {\n tabs.push(advancedTab);\n }\n var body = {\n type: 'tabpanel',\n tabs: tabs\n };\n var win = editor.windowManager.open({\n title: 'Insert/Edit Media',\n size: 'normal',\n body: body,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: function (api) {\n var serviceData = getSourceData(api);\n submitForm(currentData.get(), serviceData, editor);\n api.close();\n },\n onChange: function (api, detail) {\n switch (detail.name) {\n case 'source1':\n handleSource1(currentData.get(), api);\n break;\n case 'embed':\n handleEmbed(api);\n break;\n case 'dimensions':\n case 'poster':\n handleUpdate(api);\n break;\n default:\n break;\n }\n currentData.set(getSourceData(api));\n },\n initialData: initialData\n });\n };\n var Dialog = { showDialog: showDialog };\n\n var get$1 = function (editor) {\n var showDialog = function () {\n Dialog.showDialog(editor);\n };\n return { showDialog: showDialog };\n };\n var Api = { get: get$1 };\n\n var register = function (editor) {\n var showDialog = function () {\n Dialog.showDialog(editor);\n };\n editor.addCommand('mceMedia', showDialog);\n };\n var Commands = { register: register };\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.html.Node');\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var sanitize = function (editor, html) {\n if (Settings.shouldFilterHtml(editor) === false) {\n return html;\n }\n var writer = global$5();\n var blocked;\n global$2({\n validate: false,\n allow_conditional_comments: false,\n comment: function (text) {\n writer.comment(text);\n },\n cdata: function (text) {\n writer.cdata(text);\n },\n text: function (text, raw) {\n writer.text(text, raw);\n },\n start: function (name, attrs, empty) {\n blocked = true;\n if (name === 'script' || name === 'noscript') {\n return;\n }\n for (var i = 0; i < attrs.length; i++) {\n if (attrs[i].name.indexOf('on') === 0) {\n return;\n }\n if (attrs[i].name === 'style') {\n attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name);\n }\n }\n writer.start(name, attrs, empty);\n blocked = false;\n },\n end: function (name) {\n if (blocked) {\n return;\n }\n writer.end(name);\n }\n }, global$6({})).parse(html);\n return writer.getContent();\n };\n var Sanitize = { sanitize: sanitize };\n\n var createPlaceholderNode = function (editor, node) {\n var placeHolder;\n var name = node.name;\n placeHolder = new global$7('img', 1);\n placeHolder.shortEnded = true;\n retainAttributesAndInnerHtml(editor, node, placeHolder);\n placeHolder.attr({\n 'width': node.attr('width') || '300',\n 'height': node.attr('height') || (name === 'audio' ? '30' : '150'),\n 'style': node.attr('style'),\n 'src': global$8.transparentSrc,\n 'data-mce-object': name,\n 'class': 'mce-object mce-object-' + name\n });\n return placeHolder;\n };\n var createPreviewIframeNode = function (editor, node) {\n var previewWrapper;\n var previewNode;\n var shimNode;\n var name = node.name;\n previewWrapper = new global$7('span', 1);\n previewWrapper.attr({\n 'contentEditable': 'false',\n 'style': node.attr('style'),\n 'data-mce-object': name,\n 'class': 'mce-preview-object mce-object-' + name\n });\n retainAttributesAndInnerHtml(editor, node, previewWrapper);\n previewNode = new global$7(name, 1);\n previewNode.attr({\n src: node.attr('src'),\n allowfullscreen: node.attr('allowfullscreen'),\n style: node.attr('style'),\n class: node.attr('class'),\n width: node.attr('width'),\n height: node.attr('height'),\n frameborder: '0'\n });\n shimNode = new global$7('span', 1);\n shimNode.attr('class', 'mce-shim');\n previewWrapper.append(previewNode);\n previewWrapper.append(shimNode);\n return previewWrapper;\n };\n var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) {\n var attrName;\n var attrValue;\n var attribs;\n var ai;\n var innerHtml;\n attribs = sourceNode.attributes;\n ai = attribs.length;\n while (ai--) {\n attrName = attribs[ai].name;\n attrValue = attribs[ai].value;\n if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') {\n if (attrName === 'data' || attrName === 'src') {\n attrValue = editor.convertURL(attrValue, attrName);\n }\n targetNode.attr('data-mce-p-' + attrName, attrValue);\n }\n }\n innerHtml = sourceNode.firstChild && sourceNode.firstChild.value;\n if (innerHtml) {\n targetNode.attr('data-mce-html', escape(Sanitize.sanitize(editor, innerHtml)));\n targetNode.firstChild = null;\n }\n };\n var isPageEmbedWrapper = function (node) {\n var nodeClass = node.attr('class');\n return nodeClass && /\\btiny-pageembed\\b/.test(nodeClass);\n };\n var isWithinEmbedWrapper = function (node) {\n while (node = node.parent) {\n if (node.attr('data-ephox-embed-iri') || isPageEmbedWrapper(node)) {\n return true;\n }\n }\n return false;\n };\n var placeHolderConverter = function (editor) {\n return function (nodes) {\n var i = nodes.length;\n var node;\n var videoScript;\n while (i--) {\n node = nodes[i];\n if (!node.parent) {\n continue;\n }\n if (node.parent.attr('data-mce-object')) {\n continue;\n }\n if (node.name === 'script') {\n videoScript = getVideoScriptMatch(Settings.getScripts(editor), node.attr('src'));\n if (!videoScript) {\n continue;\n }\n }\n if (videoScript) {\n if (videoScript.width) {\n node.attr('width', videoScript.width.toString());\n }\n if (videoScript.height) {\n node.attr('height', videoScript.height.toString());\n }\n }\n if (node.name === 'iframe' && Settings.hasLiveEmbeds(editor) && global$8.ceFalse) {\n if (!isWithinEmbedWrapper(node)) {\n node.replace(createPreviewIframeNode(editor, node));\n }\n } else {\n if (!isWithinEmbedWrapper(node)) {\n node.replace(createPlaceholderNode(editor, node));\n }\n }\n }\n };\n };\n var Nodes = {\n createPreviewIframeNode: createPreviewIframeNode,\n createPlaceholderNode: createPlaceholderNode,\n placeHolderConverter: placeHolderConverter\n };\n\n var setup = function (editor) {\n editor.on('preInit', function () {\n var specialElements = editor.schema.getSpecialElements();\n global$1.each('video audio iframe object'.split(' '), function (name) {\n specialElements[name] = new RegExp('</' + name + '[^>]*>', 'gi');\n });\n var boolAttrs = editor.schema.getBoolAttrs();\n global$1.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) {\n boolAttrs[name] = {};\n });\n editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', Nodes.placeHolderConverter(editor));\n editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) {\n var i = nodes.length;\n var node;\n var realElm;\n var ai;\n var attribs;\n var innerHtml;\n var innerNode;\n var realElmName;\n var className;\n while (i--) {\n node = nodes[i];\n if (!node.parent) {\n continue;\n }\n realElmName = node.attr(name);\n realElm = new global$7(realElmName, 1);\n if (realElmName !== 'audio' && realElmName !== 'script') {\n className = node.attr('class');\n if (className && className.indexOf('mce-preview-object') !== -1) {\n realElm.attr({\n width: node.firstChild.attr('width'),\n height: node.firstChild.attr('height')\n });\n } else {\n realElm.attr({\n width: node.attr('width'),\n height: node.attr('height')\n });\n }\n }\n realElm.attr({ style: node.attr('style') });\n attribs = node.attributes;\n ai = attribs.length;\n while (ai--) {\n var attrName = attribs[ai].name;\n if (attrName.indexOf('data-mce-p-') === 0) {\n realElm.attr(attrName.substr(11), attribs[ai].value);\n }\n }\n if (realElmName === 'script') {\n realElm.attr('type', 'text/javascript');\n }\n innerHtml = node.attr('data-mce-html');\n if (innerHtml) {\n innerNode = new global$7('#text', 3);\n innerNode.raw = true;\n innerNode.value = Sanitize.sanitize(editor, unescape(innerHtml));\n realElm.append(innerNode);\n }\n node.replace(realElm);\n }\n });\n });\n editor.on('SetContent', function () {\n editor.$('span.mce-preview-object').each(function (index, elm) {\n var $elm = editor.$(elm);\n if ($elm.find('span.mce-shim').length === 0) {\n $elm.append('<span class=\"mce-shim\"></span>');\n }\n });\n });\n };\n var FilterContent = { setup: setup };\n\n var setup$1 = function (editor) {\n editor.on('ResolveName', function (e) {\n var name;\n if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) {\n e.name = name;\n }\n });\n };\n var ResolveName = { setup: setup$1 };\n\n var setup$2 = function (editor) {\n editor.on('click keyup touchend', function () {\n var selectedNode = editor.selection.getNode();\n if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) {\n if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) {\n selectedNode.setAttribute('data-mce-selected', '2');\n }\n }\n });\n editor.on('ObjectSelected', function (e) {\n var objectType = e.target.getAttribute('data-mce-object');\n if (objectType === 'audio' || objectType === 'script') {\n e.preventDefault();\n }\n });\n editor.on('ObjectResized', function (e) {\n var target = e.target;\n var html;\n if (target.getAttribute('data-mce-object')) {\n html = target.getAttribute('data-mce-html');\n if (html) {\n html = unescape(html);\n target.setAttribute('data-mce-html', escape(UpdateHtml.updateHtml(html, {\n width: String(e.width),\n height: String(e.height)\n })));\n }\n }\n });\n };\n var Selection = { setup: setup$2 };\n\n var stateSelectorAdapter = function (editor, selector) {\n return function (buttonApi) {\n return editor.selection.selectorChangedWithUnbind(selector.join(','), buttonApi.setActive).unbind;\n };\n };\n var register$1 = function (editor) {\n editor.ui.registry.addToggleButton('media', {\n tooltip: 'Insert/edit media',\n icon: 'embed',\n onAction: function () {\n editor.execCommand('mceMedia');\n },\n onSetup: stateSelectorAdapter(editor, [\n 'img[data-mce-object]',\n 'span[data-mce-object]',\n 'div[data-ephox-embed-iri]'\n ])\n });\n editor.ui.registry.addMenuItem('media', {\n icon: 'embed',\n text: 'Media...',\n onAction: function () {\n editor.execCommand('mceMedia');\n }\n });\n };\n var Buttons = { register: register$1 };\n\n function Plugin () {\n global.add('media', function (editor) {\n Commands.register(editor);\n Buttons.register(editor);\n ResolveName.setup(editor);\n FilterContent.setup(editor);\n Selection.setup(editor);\n return Api.get(editor);\n });\n }\n\n Plugin();\n\n}());\n","// Exports the \"media\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/media')\n// ES2015:\n// import 'tinymce/plugins/media'\nrequire('./plugin.js');","// Exports the \"image\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/image')\n// ES2015:\n// import 'tinymce/plugins/image'\nrequire('./plugin.js');","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=style&index=0&lang=css&\"","// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');","// Exports the \"wordcount\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/wordcount')\n// ES2015:\n// import 'tinymce/plugins/wordcount'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.1.4 (2019-12-11)\n */\n(function (domGlobals) {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var noop = function () {\n };\n var compose = function (fa, fb) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fa(fb.apply(null, args));\n };\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n var not = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !f.apply(null, args);\n };\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze) {\n Object.freeze(me);\n }\n return me;\n }();\n var some = function (a) {\n var constant_a = constant(a);\n var self = function () {\n return me;\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never, function (b) {\n return elementEq(a, b);\n });\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var typeOf = function (x) {\n if (x === null) {\n return 'null';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isArray = isType('array');\n var isBoolean = isType('boolean');\n var isFunction = isType('function');\n var isNumber = isType('number');\n\n var nativeSlice = Array.prototype.slice;\n var nativeIndexOf = Array.prototype.indexOf;\n var nativePush = Array.prototype.push;\n var rawIndexOf = function (ts, t) {\n return nativeIndexOf.call(ts, t);\n };\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var exists = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n var eachr = function (xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i);\n }\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n var foldr = function (xs, f, acc) {\n eachr(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var findIndex = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Option.some(i);\n }\n }\n return Option.none();\n };\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n var output = map(xs, f);\n return flatten(output);\n };\n var forall = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n var reverse = function (xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n var last = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n var each$1 = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n var map$1 = function (obj, f) {\n return tupleMap(obj, function (x, i) {\n return {\n k: i,\n v: f(x, i)\n };\n });\n };\n var tupleMap = function (obj, f) {\n var r = {};\n each$1(obj, function (x, i) {\n var tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var Immutable = function () {\n var fields = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fields[_i] = arguments[_i];\n }\n return function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n if (fields.length !== values.length) {\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\n }\n var struct = {};\n each(fields, function (name, i) {\n struct[name] = constant(values[i]);\n });\n return struct;\n };\n };\n\n var sort = function (arr) {\n return arr.slice(0).sort();\n };\n var reqMessage = function (required, keys) {\n throw new Error('All required keys (' + sort(required).join(', ') + ') were not specified. Specified keys were: ' + sort(keys).join(', ') + '.');\n };\n var unsuppMessage = function (unsupported) {\n throw new Error('Unsupported keys for object: ' + sort(unsupported).join(', '));\n };\n var validateStrArr = function (label, array) {\n if (!isArray(array)) {\n throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');\n }\n each(array, function (a) {\n if (!isString(a)) {\n throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');\n }\n });\n };\n var invalidTypeMessage = function (incorrect, type) {\n throw new Error('All values need to be of type: ' + type + '. Keys (' + sort(incorrect).join(', ') + ') were not.');\n };\n var checkDupes = function (everything) {\n var sorted = sort(everything);\n var dupe = find(sorted, function (s, i) {\n return i < sorted.length - 1 && s === sorted[i + 1];\n });\n dupe.each(function (d) {\n throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');\n });\n };\n\n var MixedBag = function (required, optional) {\n var everything = required.concat(optional);\n if (everything.length === 0) {\n throw new Error('You must specify at least one required or optional field.');\n }\n validateStrArr('required', required);\n validateStrArr('optional', optional);\n checkDupes(everything);\n return function (obj) {\n var keys$1 = keys(obj);\n var allReqd = forall(required, function (req) {\n return contains(keys$1, req);\n });\n if (!allReqd) {\n reqMessage(required, keys$1);\n }\n var unsupported = filter(keys$1, function (key) {\n return !contains(everything, key);\n });\n if (unsupported.length > 0) {\n unsuppMessage(unsupported);\n }\n var r = {};\n each(required, function (req) {\n r[req] = constant(obj[req]);\n });\n each(optional, function (opt) {\n r[opt] = constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());\n });\n return r;\n };\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var name = function (element) {\n var r = element.dom().nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom().nodeType;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isComment = function (element) {\n return type(element) === COMMENT || name(element) === '#comment';\n };\n var isElement = isType$1(ELEMENT);\n var isText = isType$1(TEXT);\n\n var rawSet = function (dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var set = function (element, key, value) {\n rawSet(element.dom(), key, value);\n };\n var setAll = function (element, attrs) {\n var dom = element.dom();\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var get$1 = function (element, key) {\n var v = element.dom().getAttribute(key);\n return v === null ? undefined : v;\n };\n var has$1 = function (element, key) {\n var dom = element.dom();\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n var remove = function (element, key) {\n element.dom().removeAttribute(key);\n };\n var clone = function (element) {\n return foldl(element.dom().attributes, function (acc, attr) {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n };\n\n var checkRange = function (str, substr, start) {\n if (substr === '') {\n return true;\n }\n if (str.length < substr.length) {\n return false;\n }\n var x = str.substr(start, start + substr.length);\n return x === substr;\n };\n var contains$1 = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n var startsWith = function (str, prefix) {\n return checkRange(str, prefix, 0);\n };\n var endsWith = function (str, suffix) {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n var trim = function (str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var cached = function (f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var inBody = function (element) {\n var dom = isText(element) ? element.dom().parentNode : element.dom();\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\n };\n var body = cached(function () {\n return getBody(Element.fromDom(domGlobals.document));\n });\n var getBody = function (doc) {\n var b = doc.dom().body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return Element.fromDom(b);\n };\n\n var internalSet = function (dom, property, value) {\n if (!isString(value)) {\n domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var internalRemove = function (dom, property) {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n var set$1 = function (element, property, value) {\n var dom = element.dom();\n internalSet(dom, property, value);\n };\n var setAll$1 = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n var get$2 = function (element, property) {\n var dom = element.dom();\n var styles = domGlobals.window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n var v = r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n return v === null ? undefined : v;\n };\n var getUnsafeProperty = function (dom, property) {\n return isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n };\n var getRaw = function (element, property) {\n var dom = element.dom();\n var raw = getUnsafeProperty(dom, property);\n return Option.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n var remove$1 = function (element, property) {\n var dom = element.dom();\n internalRemove(dom, property);\n if (has$1(element, 'style') && trim(get$1(element, 'style')) === '') {\n remove(element, 'style');\n }\n };\n var copy = function (source, target) {\n var sourceDom = source.dom();\n var targetDom = target.dom();\n if (isSupported(sourceDom) && isSupported(targetDom)) {\n targetDom.style.cssText = sourceDom.style.cssText;\n }\n };\n\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionPreceding = function (a, b) {\n return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_PRECEDING);\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n var Node = {\n documentPositionPreceding: documentPositionPreceding,\n documentPositionContainedBy: documentPositionContainedBy\n };\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n var firstMatch = function (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n var find$1 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown();\n }\n return find$1(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu(0, 0);\n };\n var nu = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu,\n detect: detect,\n unknown: unknown\n };\n\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n var isBrowser = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$1 = function () {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$1 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge, current),\n isChrome: isBrowser(chrome, current),\n isIE: isBrowser(ie, current),\n isOpera: isBrowser(opera, current),\n isFirefox: isBrowser(firefox, current),\n isSafari: isBrowser(safari, current)\n };\n };\n var Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var isOS = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$2 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isWindows: isOS(windows, current),\n isiOS: isOS(ios, current),\n isAndroid: isOS(android, current),\n isOSX: isOS(osx, current),\n isLinux: isOS(linux, current),\n isSolaris: isOS(solaris, current),\n isFreeBSD: isOS(freebsd, current)\n };\n };\n var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$2,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd)\n };\n\n var DeviceType = function (os, browser, userAgent, mediaMatch) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isMobile = os.isiOS() || os.isAndroid();\n var isTouch = isMobile || mediaMatch('(pointer:coarse)');\n var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n var isPhone = isiPhone || isMobile && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n var isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n var detectOs = function (oses, userAgent) {\n return detect$1(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('os x'),\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n var detect$2 = function (userAgent, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var mediaMatch = function (query) {\n return domGlobals.window.matchMedia(query).matches;\n };\n var platform = Cell(PlatformDetection.detect(domGlobals.navigator.userAgent, mediaMatch));\n var detect$3 = function () {\n return platform.get();\n };\n\n var ELEMENT$1 = ELEMENT;\n var DOCUMENT$1 = DOCUMENT;\n var is = function (element, selector) {\n var dom = element.dom();\n if (dom.nodeType !== ELEMENT$1) {\n return false;\n } else {\n var elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n var bypassSelector = function (dom) {\n return dom.nodeType !== ELEMENT$1 && dom.nodeType !== DOCUMENT$1 || dom.childElementCount === 0;\n };\n var all = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element.fromDom);\n };\n var one = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element.fromDom);\n };\n\n var eq = function (e1, e2) {\n return e1.dom() === e2.dom();\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom();\n var d2 = e2.dom();\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return Node.documentPositionContainedBy(e1.dom(), e2.dom());\n };\n var browser = detect$3().browser;\n var contains$2 = browser.isIE() ? ieContains : regularContains;\n var is$1 = is;\n\n var owner = function (element) {\n return Element.fromDom(element.dom().ownerDocument);\n };\n var defaultView = function (element) {\n return Element.fromDom(element.dom().ownerDocument.defaultView);\n };\n var parent = function (element) {\n return Option.from(element.dom().parentNode).map(Element.fromDom);\n };\n var parents = function (element, isRoot) {\n var stop = isFunction(isRoot) ? isRoot : never;\n var dom = element.dom();\n var ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n var rawParent = dom.parentNode;\n var p = Element.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n var prevSibling = function (element) {\n return Option.from(element.dom().previousSibling).map(Element.fromDom);\n };\n var nextSibling = function (element) {\n return Option.from(element.dom().nextSibling).map(Element.fromDom);\n };\n var children = function (element) {\n return map(element.dom().childNodes, Element.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom().childNodes;\n return Option.from(cs[index]).map(Element.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n var spot = Immutable('element', 'offset');\n\n var before = function (marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom().insertBefore(element.dom(), marker.dom());\n });\n };\n var after = function (marker, element) {\n var sibling = nextSibling(marker);\n sibling.fold(function () {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n append(v, element);\n });\n }, function (v) {\n before(v, element);\n });\n };\n var prepend = function (parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append(parent, element);\n }, function (v) {\n parent.dom().insertBefore(element.dom(), v.dom());\n });\n };\n var append = function (parent, element) {\n parent.dom().appendChild(element.dom());\n };\n var wrap = function (element, wrapper) {\n before(element, wrapper);\n append(wrapper, element);\n };\n\n var before$1 = function (marker, elements) {\n each(elements, function (x) {\n before(marker, x);\n });\n };\n var after$1 = function (marker, elements) {\n each(elements, function (x, i) {\n var e = i === 0 ? marker : elements[i - 1];\n after(e, x);\n });\n };\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var empty = function (element) {\n element.dom().textContent = '';\n each(children(element), function (rogue) {\n remove$2(rogue);\n });\n };\n var remove$2 = function (element) {\n var dom = element.dom();\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n var unwrap = function (wrapper) {\n var children$1 = children(wrapper);\n if (children$1.length > 0) {\n before$1(wrapper, children$1);\n }\n remove$2(wrapper);\n };\n\n var dimension = Immutable('width', 'height');\n var dimensions = Immutable('width', 'height');\n var grid = Immutable('rows', 'columns');\n var address = Immutable('row', 'column');\n var coords = Immutable('x', 'y');\n var detail = Immutable('element', 'rowspan', 'colspan');\n var detailnew = Immutable('element', 'rowspan', 'colspan', 'isNew');\n var extended = Immutable('element', 'rowspan', 'colspan', 'row', 'column');\n var rowdata = Immutable('element', 'cells', 'section');\n var elementnew = Immutable('element', 'isNew');\n var rowdatanew = Immutable('element', 'cells', 'section', 'isNew');\n var rowcells = Immutable('cells', 'section');\n var rowdetails = Immutable('details', 'section');\n var bounds = Immutable('startRow', 'startCol', 'finishRow', 'finishCol');\n\n var ancestors = function (scope, predicate, isRoot) {\n return filter(parents(scope, isRoot), predicate);\n };\n var children$1 = function (scope, predicate) {\n return filter(children(scope), predicate);\n };\n var descendants = function (scope, predicate) {\n var result = [];\n each(children(scope), function (x) {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants(x, predicate));\n });\n return result;\n };\n\n var ancestors$1 = function (scope, selector, isRoot) {\n return ancestors(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var children$2 = function (scope, selector) {\n return children$1(scope, function (e) {\n return is(e, selector);\n });\n };\n var descendants$1 = function (scope, selector) {\n return all(selector, scope);\n };\n\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\n return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);\n }\n\n var ancestor = function (scope, predicate, isRoot) {\n var element = scope.dom();\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n while (element.parentNode) {\n element = element.parentNode;\n var el = Element.fromDom(element);\n if (predicate(el)) {\n return Option.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Option.none();\n };\n var closest = function (scope, predicate, isRoot) {\n var is = function (s, test) {\n return test(s);\n };\n return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);\n };\n var child$1 = function (scope, predicate) {\n var pred = function (node) {\n return predicate(Element.fromDom(node));\n };\n var result = find(scope.dom().childNodes, pred);\n return result.map(Element.fromDom);\n };\n var descendant = function (scope, predicate) {\n var descend = function (node) {\n for (var i = 0; i < node.childNodes.length; i++) {\n var child_1 = Element.fromDom(node.childNodes[i]);\n if (predicate(child_1)) {\n return Option.some(child_1);\n }\n var res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Option.none();\n };\n return descend(scope.dom());\n };\n\n var ancestor$1 = function (scope, selector, isRoot) {\n return ancestor(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var child$2 = function (scope, selector) {\n return child$1(scope, function (e) {\n return is(e, selector);\n });\n };\n var descendant$1 = function (scope, selector) {\n return one(selector, scope);\n };\n var closest$1 = function (scope, selector, isRoot) {\n return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot);\n };\n\n var firstLayer = function (scope, selector) {\n return filterFirstLayer(scope, selector, constant(true));\n };\n var filterFirstLayer = function (scope, selector, predicate) {\n return bind(children(scope), function (x) {\n return is(x, selector) ? predicate(x) ? [x] : [] : filterFirstLayer(x, selector, predicate);\n });\n };\n var LayerSelector = {\n firstLayer: firstLayer,\n filterFirstLayer: filterFirstLayer\n };\n\n var lookup = function (tags, element, isRoot) {\n if (isRoot === void 0) {\n isRoot = never;\n }\n if (isRoot(element)) {\n return Option.none();\n }\n if (contains(tags, name(element))) {\n return Option.some(element);\n }\n var isRootOrUpperTable = function (elm) {\n return is(elm, 'table') || isRoot(elm);\n };\n return ancestor$1(element, tags.join(','), isRootOrUpperTable);\n };\n var cell = function (element, isRoot) {\n return lookup([\n 'td',\n 'th'\n ], element, isRoot);\n };\n var cells = function (ancestor) {\n return LayerSelector.firstLayer(ancestor, 'th,td');\n };\n var notCell = function (element, isRoot) {\n return lookup([\n 'caption',\n 'tr',\n 'tbody',\n 'tfoot',\n 'thead'\n ], element, isRoot);\n };\n var neighbours = function (selector, element) {\n return parent(element).map(function (parent) {\n return children$2(parent, selector);\n });\n };\n var neighbourCells = curry(neighbours, 'th,td');\n var neighbourRows = curry(neighbours, 'tr');\n var firstCell = function (ancestor) {\n return descendant$1(ancestor, 'th,td');\n };\n var table = function (element, isRoot) {\n return closest$1(element, 'table', isRoot);\n };\n var row = function (element, isRoot) {\n return lookup(['tr'], element, isRoot);\n };\n var rows = function (ancestor) {\n return LayerSelector.firstLayer(ancestor, 'tr');\n };\n var attr = function (element, property) {\n return parseInt(get$1(element, property), 10);\n };\n var grid$1 = function (element, rowProp, colProp) {\n var rowsCount = attr(element, rowProp);\n var cols = attr(element, colProp);\n return grid(rowsCount, cols);\n };\n var TableLookup = {\n cell: cell,\n firstCell: firstCell,\n cells: cells,\n neighbourCells: neighbourCells,\n table: table,\n row: row,\n rows: rows,\n notCell: notCell,\n neighbourRows: neighbourRows,\n attr: attr,\n grid: grid$1\n };\n\n var fromTable = function (table) {\n var rows = TableLookup.rows(table);\n return map(rows, function (row) {\n var element = row;\n var parent$1 = parent(element);\n var parentSection = parent$1.map(function (p) {\n var parentName = name(p);\n return parentName === 'tfoot' || parentName === 'thead' || parentName === 'tbody' ? parentName : 'tbody';\n }).getOr('tbody');\n var cells = map(TableLookup.cells(row), function (cell) {\n var rowspan = has$1(cell, 'rowspan') ? parseInt(get$1(cell, 'rowspan'), 10) : 1;\n var colspan = has$1(cell, 'colspan') ? parseInt(get$1(cell, 'colspan'), 10) : 1;\n return detail(cell, rowspan, colspan);\n });\n return rowdata(element, cells, parentSection);\n });\n };\n var fromPastedRows = function (rows, example) {\n return map(rows, function (row) {\n var cells = map(TableLookup.cells(row), function (cell) {\n var rowspan = has$1(cell, 'rowspan') ? parseInt(get$1(cell, 'rowspan'), 10) : 1;\n var colspan = has$1(cell, 'colspan') ? parseInt(get$1(cell, 'colspan'), 10) : 1;\n return detail(cell, rowspan, colspan);\n });\n return rowdata(row, cells, example.section());\n });\n };\n var DetailsList = {\n fromTable: fromTable,\n fromPastedRows: fromPastedRows\n };\n\n var key = function (row, column) {\n return row + ',' + column;\n };\n var getAt = function (warehouse, row, column) {\n var raw = warehouse.access()[key(row, column)];\n return raw !== undefined ? Option.some(raw) : Option.none();\n };\n var findItem = function (warehouse, item, comparator) {\n var filtered = filterItems(warehouse, function (detail) {\n return comparator(item, detail.element());\n });\n return filtered.length > 0 ? Option.some(filtered[0]) : Option.none();\n };\n var filterItems = function (warehouse, predicate) {\n var all = bind(warehouse.all(), function (r) {\n return r.cells();\n });\n return filter(all, predicate);\n };\n var generate = function (list) {\n var access = {};\n var cells = [];\n var maxRows = list.length;\n var maxColumns = 0;\n each(list, function (details, r) {\n var currentRow = [];\n each(details.cells(), function (detail) {\n var start = 0;\n while (access[key(r, start)] !== undefined) {\n start++;\n }\n var current = extended(detail.element(), detail.rowspan(), detail.colspan(), r, start);\n for (var i = 0; i < detail.colspan(); i++) {\n for (var j = 0; j < detail.rowspan(); j++) {\n var cr = r + j;\n var cc = start + i;\n var newpos = key(cr, cc);\n access[newpos] = current;\n maxColumns = Math.max(maxColumns, cc + 1);\n }\n }\n currentRow.push(current);\n });\n cells.push(rowdata(details.element(), currentRow, details.section()));\n });\n var grid$1 = grid(maxRows, maxColumns);\n return {\n grid: constant(grid$1),\n access: constant(access),\n all: constant(cells)\n };\n };\n var justCells = function (warehouse) {\n var rows = map(warehouse.all(), function (w) {\n return w.cells();\n });\n return flatten(rows);\n };\n var Warehouse = {\n generate: generate,\n getAt: getAt,\n findItem: findItem,\n filterItems: filterItems,\n justCells: justCells\n };\n\n var statsStruct = Immutable('minRow', 'minCol', 'maxRow', 'maxCol');\n var findSelectedStats = function (house, isSelected) {\n var totalColumns = house.grid().columns();\n var totalRows = house.grid().rows();\n var minRow = totalRows;\n var minCol = totalColumns;\n var maxRow = 0;\n var maxCol = 0;\n each$1(house.access(), function (detail) {\n if (isSelected(detail)) {\n var startRow = detail.row();\n var endRow = startRow + detail.rowspan() - 1;\n var startCol = detail.column();\n var endCol = startCol + detail.colspan() - 1;\n if (startRow < minRow) {\n minRow = startRow;\n } else if (endRow > maxRow) {\n maxRow = endRow;\n }\n if (startCol < minCol) {\n minCol = startCol;\n } else if (endCol > maxCol) {\n maxCol = endCol;\n }\n }\n });\n return statsStruct(minRow, minCol, maxRow, maxCol);\n };\n var makeCell = function (list, seenSelected, rowIndex) {\n var row = list[rowIndex].element();\n var td = Element.fromTag('td');\n append(td, Element.fromTag('br'));\n var f = seenSelected ? append : prepend;\n f(row, td);\n };\n var fillInGaps = function (list, house, stats, isSelected) {\n var totalColumns = house.grid().columns();\n var totalRows = house.grid().rows();\n for (var i = 0; i < totalRows; i++) {\n var seenSelected = false;\n for (var j = 0; j < totalColumns; j++) {\n if (!(i < stats.minRow() || i > stats.maxRow() || j < stats.minCol() || j > stats.maxCol())) {\n var needCell = Warehouse.getAt(house, i, j).filter(isSelected).isNone();\n if (needCell) {\n makeCell(list, seenSelected, i);\n } else {\n seenSelected = true;\n }\n }\n }\n }\n };\n var clean = function (table, stats) {\n var emptyRows = filter(LayerSelector.firstLayer(table, 'tr'), function (row) {\n return row.dom().childElementCount === 0;\n });\n each(emptyRows, remove$2);\n if (stats.minCol() === stats.maxCol() || stats.minRow() === stats.maxRow()) {\n each(LayerSelector.firstLayer(table, 'th,td'), function (cell) {\n remove(cell, 'rowspan');\n remove(cell, 'colspan');\n });\n }\n remove(table, 'width');\n remove(table, 'height');\n remove$1(table, 'width');\n remove$1(table, 'height');\n };\n var extract = function (table, selectedSelector) {\n var isSelected = function (detail) {\n return is(detail.element(), selectedSelector);\n };\n var list = DetailsList.fromTable(table);\n var house = Warehouse.generate(list);\n var stats = findSelectedStats(house, isSelected);\n var selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')';\n var unselectedCells = LayerSelector.filterFirstLayer(table, 'th,td', function (cell) {\n return is(cell, selector);\n });\n each(unselectedCells, remove$2);\n fillInGaps(list, house, stats, isSelected);\n clean(table, stats);\n return table;\n };\n var CopySelected = { extract: extract };\n\n function NodeValue (is, name) {\n var get = function (element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n var getOption = function (element) {\n return is(element) ? Option.from(element.dom().nodeValue) : Option.none();\n };\n var set = function (element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom().nodeValue = value;\n };\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n }\n\n var api = NodeValue(isText, 'text');\n var get$3 = function (element) {\n return api.get(element);\n };\n var getOption = function (element) {\n return api.getOption(element);\n };\n var set$2 = function (element, value) {\n api.set(element, value);\n };\n\n var getEnd = function (element) {\n return name(element) === 'img' ? 1 : getOption(element).fold(function () {\n return children(element).length;\n }, function (v) {\n return v.length;\n });\n };\n var NBSP = '\\xA0';\n var isTextNodeWithCursorPosition = function (el) {\n return getOption(el).filter(function (text) {\n return text.trim().length !== 0 || text.indexOf(NBSP) > -1;\n }).isSome();\n };\n var elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n var isCursorPosition = function (elem) {\n var hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains(elementsWithCursorPosition, name(elem));\n };\n\n var first = function (element) {\n return descendant(element, isCursorPosition);\n };\n var last$1 = function (element) {\n return descendantRtl(element, isCursorPosition);\n };\n var descendantRtl = function (scope, predicate) {\n var descend = function (element) {\n var children$1 = children(element);\n for (var i = children$1.length - 1; i >= 0; i--) {\n var child = children$1[i];\n if (predicate(child)) {\n return Option.some(child);\n }\n var res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Option.none();\n };\n return descend(scope);\n };\n\n var clone$1 = function (original, isDeep) {\n return Element.fromDom(original.dom().cloneNode(isDeep));\n };\n var shallow = function (original) {\n return clone$1(original, false);\n };\n var deep = function (original) {\n return clone$1(original, true);\n };\n var shallowAs = function (original, tag) {\n var nu = Element.fromTag(tag);\n var attributes = clone(original);\n setAll(nu, attributes);\n return nu;\n };\n var copy$1 = function (original, tag) {\n var nu = shallowAs(original, tag);\n var cloneChildren = children(deep(original));\n append$1(nu, cloneChildren);\n return nu;\n };\n\n var createCell = function () {\n var td = Element.fromTag('td');\n append(td, Element.fromTag('br'));\n return td;\n };\n var replace = function (cell, tag, attrs) {\n var replica = copy$1(cell, tag);\n each$1(attrs, function (v, k) {\n if (v === null) {\n remove(replica, k);\n } else {\n set(replica, k, v);\n }\n });\n return replica;\n };\n var pasteReplace = function (cell) {\n return cell;\n };\n var newRow = function (doc) {\n return function () {\n return Element.fromTag('tr', doc.dom());\n };\n };\n var cloneFormats = function (oldCell, newCell, formats) {\n var first$1 = first(oldCell);\n return first$1.map(function (firstText) {\n var formatSelector = formats.join(',');\n var parents = ancestors$1(firstText, formatSelector, function (element) {\n return eq(element, oldCell);\n });\n return foldr(parents, function (last, parent) {\n var clonedFormat = shallow(parent);\n remove(clonedFormat, 'contenteditable');\n append(last, clonedFormat);\n return clonedFormat;\n }, newCell);\n }).getOr(newCell);\n };\n var cellOperations = function (mutate, doc, formatsToClone) {\n var newCell = function (prev) {\n var docu = owner(prev.element());\n var td = Element.fromTag(name(prev.element()), docu.dom());\n var formats = formatsToClone.getOr([\n 'strong',\n 'em',\n 'b',\n 'i',\n 'span',\n 'font',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div'\n ]);\n var lastNode = formats.length > 0 ? cloneFormats(prev.element(), td, formats) : td;\n append(lastNode, Element.fromTag('br'));\n copy(prev.element(), td);\n remove$1(td, 'height');\n if (prev.colspan() !== 1) {\n remove$1(prev.element(), 'width');\n }\n mutate(prev.element(), td);\n return td;\n };\n return {\n row: newRow(doc),\n cell: newCell,\n replace: replace,\n gap: createCell\n };\n };\n var paste = function (doc) {\n return {\n row: newRow(doc),\n cell: createCell,\n replace: pasteReplace,\n gap: createCell\n };\n };\n var TableFill = {\n cellOperations: cellOperations,\n paste: paste\n };\n\n var fromHtml$1 = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children(Element.fromDom(div));\n };\n\n var inSelection = function (bounds, detail) {\n var leftEdge = detail.column();\n var rightEdge = detail.column() + detail.colspan() - 1;\n var topEdge = detail.row();\n var bottomEdge = detail.row() + detail.rowspan() - 1;\n return leftEdge <= bounds.finishCol() && rightEdge >= bounds.startCol() && (topEdge <= bounds.finishRow() && bottomEdge >= bounds.startRow());\n };\n var isWithin = function (bounds, detail) {\n return detail.column() >= bounds.startCol() && detail.column() + detail.colspan() - 1 <= bounds.finishCol() && detail.row() >= bounds.startRow() && detail.row() + detail.rowspan() - 1 <= bounds.finishRow();\n };\n var isRectangular = function (warehouse, bounds) {\n var isRect = true;\n var detailIsWithin = curry(isWithin, bounds);\n for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {\n for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {\n isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin);\n }\n }\n return isRect ? Option.some(bounds) : Option.none();\n };\n var CellBounds = {\n inSelection: inSelection,\n isWithin: isWithin,\n isRectangular: isRectangular\n };\n\n var getBounds = function (detailA, detailB) {\n return bounds(Math.min(detailA.row(), detailB.row()), Math.min(detailA.column(), detailB.column()), Math.max(detailA.row() + detailA.rowspan() - 1, detailB.row() + detailB.rowspan() - 1), Math.max(detailA.column() + detailA.colspan() - 1, detailB.column() + detailB.colspan() - 1));\n };\n var getAnyBox = function (warehouse, startCell, finishCell) {\n var startCoords = Warehouse.findItem(warehouse, startCell, eq);\n var finishCoords = Warehouse.findItem(warehouse, finishCell, eq);\n return startCoords.bind(function (sc) {\n return finishCoords.map(function (fc) {\n return getBounds(sc, fc);\n });\n });\n };\n var getBox = function (warehouse, startCell, finishCell) {\n return getAnyBox(warehouse, startCell, finishCell).bind(function (bounds) {\n return CellBounds.isRectangular(warehouse, bounds);\n });\n };\n var CellGroup = {\n getAnyBox: getAnyBox,\n getBox: getBox\n };\n\n var moveBy = function (warehouse, cell, row, column) {\n return Warehouse.findItem(warehouse, cell, eq).bind(function (detail) {\n var startRow = row > 0 ? detail.row() + detail.rowspan() - 1 : detail.row();\n var startCol = column > 0 ? detail.column() + detail.colspan() - 1 : detail.column();\n var dest = Warehouse.getAt(warehouse, startRow + row, startCol + column);\n return dest.map(function (d) {\n return d.element();\n });\n });\n };\n var intercepts = function (warehouse, start, finish) {\n return CellGroup.getAnyBox(warehouse, start, finish).map(function (bounds) {\n var inside = Warehouse.filterItems(warehouse, curry(CellBounds.inSelection, bounds));\n return map(inside, function (detail) {\n return detail.element();\n });\n });\n };\n var parentCell = function (warehouse, innerCell) {\n var isContainedBy = function (c1, c2) {\n return contains$2(c2, c1);\n };\n return Warehouse.findItem(warehouse, innerCell, isContainedBy).map(function (detail) {\n return detail.element();\n });\n };\n var CellFinder = {\n moveBy: moveBy,\n intercepts: intercepts,\n parentCell: parentCell\n };\n\n var moveBy$1 = function (cell, deltaRow, deltaColumn) {\n return TableLookup.table(cell).bind(function (table) {\n var warehouse = getWarehouse(table);\n return CellFinder.moveBy(warehouse, cell, deltaRow, deltaColumn);\n });\n };\n var intercepts$1 = function (table, first, last) {\n var warehouse = getWarehouse(table);\n return CellFinder.intercepts(warehouse, first, last);\n };\n var nestedIntercepts = function (table, first, firstTable, last, lastTable) {\n var warehouse = getWarehouse(table);\n var optStartCell = eq(table, firstTable) ? Option.some(first) : CellFinder.parentCell(warehouse, first);\n var optLastCell = eq(table, lastTable) ? Option.some(last) : CellFinder.parentCell(warehouse, last);\n return optStartCell.bind(function (startCell) {\n return optLastCell.bind(function (lastCell) {\n return CellFinder.intercepts(warehouse, startCell, lastCell);\n });\n });\n };\n var getBox$1 = function (table, first, last) {\n var warehouse = getWarehouse(table);\n return CellGroup.getBox(warehouse, first, last);\n };\n var getWarehouse = function (table) {\n var list = DetailsList.fromTable(table);\n return Warehouse.generate(list);\n };\n var TablePositions = {\n moveBy: moveBy$1,\n intercepts: intercepts$1,\n nestedIntercepts: nestedIntercepts,\n getBox: getBox$1\n };\n\n var TagBoundaries = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'li',\n 'table',\n 'thead',\n 'tbody',\n 'tfoot',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n\n function DomUniverse () {\n var clone$1 = function (element) {\n return Element.fromDom(element.dom().cloneNode(false));\n };\n var document = function (element) {\n return element.dom().ownerDocument;\n };\n var isBoundary = function (element) {\n if (!isElement(element)) {\n return false;\n }\n if (name(element) === 'body') {\n return true;\n }\n return contains(TagBoundaries, name(element));\n };\n var isEmptyTag = function (element) {\n if (!isElement(element)) {\n return false;\n }\n return contains([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], name(element));\n };\n var comparePosition = function (element, other) {\n return element.dom().compareDocumentPosition(other.dom());\n };\n var copyAttributesTo = function (source, destination) {\n var as = clone(source);\n setAll(destination, as);\n };\n return {\n up: constant({\n selector: ancestor$1,\n closest: closest$1,\n predicate: ancestor,\n all: parents\n }),\n down: constant({\n selector: descendants$1,\n predicate: descendants\n }),\n styles: constant({\n get: get$2,\n getRaw: getRaw,\n set: set$1,\n remove: remove$1\n }),\n attrs: constant({\n get: get$1,\n set: set,\n remove: remove,\n copyTo: copyAttributesTo\n }),\n insert: constant({\n before: before,\n after: after,\n afterAll: after$1,\n append: append,\n appendAll: append$1,\n prepend: prepend,\n wrap: wrap\n }),\n remove: constant({\n unwrap: unwrap,\n remove: remove$2\n }),\n create: constant({\n nu: Element.fromTag,\n clone: clone$1,\n text: Element.fromText\n }),\n query: constant({\n comparePosition: comparePosition,\n prevSibling: prevSibling,\n nextSibling: nextSibling\n }),\n property: constant({\n children: children,\n name: name,\n parent: parent,\n document: document,\n isText: isText,\n isComment: isComment,\n isElement: isElement,\n getText: get$3,\n setText: set$2,\n isBoundary: isBoundary,\n isEmptyTag: isEmptyTag\n }),\n eq: eq,\n is: is$1\n };\n }\n\n var leftRight = Immutable('left', 'right');\n var brokenPath = Immutable('first', 'second', 'splits');\n var bisect = function (universe, parent, child) {\n var children = universe.property().children(parent);\n var index = findIndex(children, curry(universe.eq, child));\n return index.map(function (ind) {\n return {\n before: constant(children.slice(0, ind)),\n after: constant(children.slice(ind + 1))\n };\n });\n };\n var breakToRight = function (universe, parent, child) {\n return bisect(universe, parent, child).map(function (parts) {\n var second = universe.create().clone(parent);\n universe.insert().appendAll(second, parts.after());\n universe.insert().after(parent, second);\n return leftRight(parent, second);\n });\n };\n var breakToLeft = function (universe, parent, child) {\n return bisect(universe, parent, child).map(function (parts) {\n var prior = universe.create().clone(parent);\n universe.insert().appendAll(prior, parts.before().concat([child]));\n universe.insert().appendAll(parent, parts.after());\n universe.insert().before(parent, prior);\n return leftRight(prior, parent);\n });\n };\n var breakPath = function (universe, item, isTop, breaker) {\n var next = function (child, group, splits) {\n var fallback = brokenPath(child, Option.none(), splits);\n if (isTop(child)) {\n return brokenPath(child, group, splits);\n } else {\n return universe.property().parent(child).bind(function (parent) {\n return breaker(universe, parent, child).map(function (breakage) {\n var extra = [{\n first: breakage.left,\n second: breakage.right\n }];\n var nextChild = isTop(parent) ? parent : breakage.left();\n return next(nextChild, Option.some(breakage.right()), splits.concat(extra));\n });\n }).getOr(fallback);\n }\n };\n return next(item, Option.none(), []);\n };\n\n var all$1 = function (universe, look, elements, f) {\n var head = elements[0];\n var tail = elements.slice(1);\n return f(universe, look, head, tail);\n };\n var oneAll = function (universe, look, elements) {\n return elements.length > 0 ? all$1(universe, look, elements, unsafeOne) : Option.none();\n };\n var unsafeOne = function (universe, look, head, tail) {\n var start = look(universe, head);\n return foldr(tail, function (b, a) {\n var current = look(universe, a);\n return commonElement(universe, b, current);\n }, start);\n };\n var commonElement = function (universe, start, end) {\n return start.bind(function (s) {\n return end.filter(curry(universe.eq, s));\n });\n };\n\n var eq$1 = function (universe, item) {\n return curry(universe.eq, item);\n };\n var unsafeSubset = function (universe, common, ps1, ps2) {\n var children = universe.property().children(common);\n if (universe.eq(common, ps1[0])) {\n return Option.some([ps1[0]]);\n }\n if (universe.eq(common, ps2[0])) {\n return Option.some([ps2[0]]);\n }\n var finder = function (ps) {\n var topDown = reverse(ps);\n var index = findIndex(topDown, eq$1(universe, common)).getOr(-1);\n var item = index < topDown.length - 1 ? topDown[index + 1] : topDown[index];\n return findIndex(children, eq$1(universe, item));\n };\n var startIndex = finder(ps1);\n var endIndex = finder(ps2);\n return startIndex.bind(function (sIndex) {\n return endIndex.map(function (eIndex) {\n var first = Math.min(sIndex, eIndex);\n var last = Math.max(sIndex, eIndex);\n return children.slice(first, last + 1);\n });\n });\n };\n var ancestors$2 = function (universe, start, end, isRoot) {\n if (isRoot === void 0) {\n isRoot = never;\n }\n var ps1 = [start].concat(universe.up().all(start));\n var ps2 = [end].concat(universe.up().all(end));\n var prune = function (path) {\n var index = findIndex(path, isRoot);\n return index.fold(function () {\n return path;\n }, function (ind) {\n return path.slice(0, ind + 1);\n });\n };\n var pruned1 = prune(ps1);\n var pruned2 = prune(ps2);\n var shared = find(pruned1, function (x) {\n return exists(pruned2, eq$1(universe, x));\n });\n return {\n firstpath: constant(pruned1),\n secondpath: constant(pruned2),\n shared: constant(shared)\n };\n };\n var subset = function (universe, start, end) {\n var ancs = ancestors$2(universe, start, end);\n return ancs.shared().bind(function (shared) {\n return unsafeSubset(universe, shared, ancs.firstpath(), ancs.secondpath());\n });\n };\n var SubsetFn = {\n subset: subset,\n ancestors: ancestors$2\n };\n\n var sharedOne = oneAll;\n var subset$1 = SubsetFn.subset;\n var ancestors$3 = SubsetFn.ancestors;\n var breakToLeft$1 = breakToLeft;\n var breakToRight$1 = breakToRight;\n var breakPath$1 = breakPath;\n var Parent = {\n sharedOne: sharedOne,\n subset: subset$1,\n ancestors: ancestors$3,\n breakToLeft: breakToLeft$1,\n breakToRight: breakToRight$1,\n breakPath: breakPath$1\n };\n\n var universe = DomUniverse();\n var sharedOne$1 = function (look, elements) {\n return Parent.sharedOne(universe, function (_universe, element) {\n return look(element);\n }, elements);\n };\n var subset$2 = function (start, finish) {\n return Parent.subset(universe, start, finish);\n };\n var ancestors$4 = function (start, finish, isRoot) {\n return Parent.ancestors(universe, start, finish, isRoot);\n };\n var breakToLeft$2 = function (parent, child) {\n return Parent.breakToLeft(universe, parent, child);\n };\n var breakToRight$2 = function (parent, child) {\n return Parent.breakToRight(universe, parent, child);\n };\n var breakPath$2 = function (child, isTop, breaker) {\n return Parent.breakPath(universe, child, isTop, function (u, p, c) {\n return breaker(p, c);\n });\n };\n var DomParent = {\n sharedOne: sharedOne$1,\n subset: subset$2,\n ancestors: ancestors$4,\n breakToLeft: breakToLeft$2,\n breakToRight: breakToRight$2,\n breakPath: breakPath$2\n };\n\n var create = MixedBag([\n 'boxes',\n 'start',\n 'finish'\n ], []);\n var Identified = { create: create };\n\n var lookupTable = function (container) {\n return ancestor$1(container, 'table');\n };\n var identify = function (start, finish, isRoot) {\n var getIsRoot = function (rootTable) {\n return function (element) {\n return isRoot !== undefined && isRoot(element) || eq(element, rootTable);\n };\n };\n if (eq(start, finish)) {\n return Option.some(Identified.create({\n boxes: Option.some([start]),\n start: start,\n finish: finish\n }));\n } else {\n return lookupTable(start).bind(function (startTable) {\n return lookupTable(finish).bind(function (finishTable) {\n if (eq(startTable, finishTable)) {\n return Option.some(Identified.create({\n boxes: TablePositions.intercepts(startTable, start, finish),\n start: start,\n finish: finish\n }));\n } else if (contains$2(startTable, finishTable)) {\n var ancestorCells = ancestors$1(finish, 'td,th', getIsRoot(startTable));\n var finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;\n return Option.some(Identified.create({\n boxes: TablePositions.nestedIntercepts(startTable, start, startTable, finish, finishTable),\n start: start,\n finish: finishCell\n }));\n } else if (contains$2(finishTable, startTable)) {\n var ancestorCells = ancestors$1(start, 'td,th', getIsRoot(finishTable));\n var startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;\n return Option.some(Identified.create({\n boxes: TablePositions.nestedIntercepts(finishTable, start, startTable, finish, finishTable),\n start: start,\n finish: startCell\n }));\n } else {\n return DomParent.ancestors(start, finish).shared().bind(function (lca) {\n return closest$1(lca, 'table', isRoot).bind(function (lcaTable) {\n var finishAncestorCells = ancestors$1(finish, 'td,th', getIsRoot(lcaTable));\n var finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;\n var startAncestorCells = ancestors$1(start, 'td,th', getIsRoot(lcaTable));\n var startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;\n return Option.some(Identified.create({\n boxes: TablePositions.nestedIntercepts(lcaTable, start, startTable, finish, finishTable),\n start: startCell,\n finish: finishCell\n }));\n });\n });\n }\n });\n });\n }\n };\n var retrieve = function (container, selector) {\n var sels = descendants$1(container, selector);\n return sels.length > 0 ? Option.some(sels) : Option.none();\n };\n var getLast = function (boxes, lastSelectedSelector) {\n return find(boxes, function (box) {\n return is(box, lastSelectedSelector);\n });\n };\n var getEdges = function (container, firstSelectedSelector, lastSelectedSelector) {\n return descendant$1(container, firstSelectedSelector).bind(function (first) {\n return descendant$1(container, lastSelectedSelector).bind(function (last) {\n return DomParent.sharedOne(lookupTable, [\n first,\n last\n ]).map(function (tbl) {\n return {\n first: constant(first),\n last: constant(last),\n table: constant(tbl)\n };\n });\n });\n });\n };\n var expandTo = function (finish, firstSelectedSelector) {\n return ancestor$1(finish, 'table').bind(function (table) {\n return descendant$1(table, firstSelectedSelector).bind(function (start) {\n return identify(start, finish).bind(function (identified) {\n return identified.boxes().map(function (boxes) {\n return {\n boxes: constant(boxes),\n start: constant(identified.start()),\n finish: constant(identified.finish())\n };\n });\n });\n });\n });\n };\n var shiftSelection = function (boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) {\n return getLast(boxes, lastSelectedSelector).bind(function (last) {\n return TablePositions.moveBy(last, deltaRow, deltaColumn).bind(function (finish) {\n return expandTo(finish, firstSelectedSelector);\n });\n });\n };\n var CellSelection = {\n identify: identify,\n retrieve: retrieve,\n shiftSelection: shiftSelection,\n getEdges: getEdges\n };\n\n var retrieve$1 = function (container, selector) {\n return CellSelection.retrieve(container, selector);\n };\n var retrieveBox = function (container, firstSelectedSelector, lastSelectedSelector) {\n return CellSelection.getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(function (edges) {\n var isRoot = function (ancestor) {\n return eq(container, ancestor);\n };\n var firstAncestor = ancestor$1(edges.first(), 'thead,tfoot,tbody,table', isRoot);\n var lastAncestor = ancestor$1(edges.last(), 'thead,tfoot,tbody,table', isRoot);\n return firstAncestor.bind(function (fA) {\n return lastAncestor.bind(function (lA) {\n return eq(fA, lA) ? TablePositions.getBox(edges.table(), edges.first(), edges.last()) : Option.none();\n });\n });\n });\n };\n var TableSelection = {\n retrieve: retrieve$1,\n retrieveBox: retrieveBox\n };\n\n var selected = 'data-mce-selected';\n var selectedSelector = 'td[' + selected + '],th[' + selected + ']';\n var attributeSelector = '[' + selected + ']';\n var firstSelected = 'data-mce-first-selected';\n var firstSelectedSelector = 'td[' + firstSelected + '],th[' + firstSelected + ']';\n var lastSelected = 'data-mce-last-selected';\n var lastSelectedSelector = 'td[' + lastSelected + '],th[' + lastSelected + ']';\n var Ephemera = {\n selected: constant(selected),\n selectedSelector: constant(selectedSelector),\n attributeSelector: constant(attributeSelector),\n firstSelected: constant(firstSelected),\n firstSelectedSelector: constant(firstSelectedSelector),\n lastSelected: constant(lastSelected),\n lastSelectedSelector: constant(lastSelectedSelector)\n };\n\n var generate$1 = function (cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n var constructors = [];\n var adt = {};\n each(cases, function (acase, count) {\n var keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n var key = keys$1[0];\n var value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = function () {\n var argLength = arguments.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n var args = new Array(argLength);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n var match = function (branches) {\n var branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n if (arguments.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length);\n }\n var target = arguments[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n domGlobals.console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n var Adt = { generate: generate$1 };\n\n var type$1 = Adt.generate([\n { none: [] },\n { multiple: ['elements'] },\n { single: ['selection'] }\n ]);\n var cata = function (subject, onNone, onMultiple, onSingle) {\n return subject.fold(onNone, onMultiple, onSingle);\n };\n var SelectionTypes = {\n cata: cata,\n none: type$1.none,\n multiple: type$1.multiple,\n single: type$1.single\n };\n\n var selection = function (cell, selections) {\n return SelectionTypes.cata(selections.get(), constant([]), identity, constant([cell]));\n };\n var unmergable = function (cell, selections) {\n var hasSpan = function (elem) {\n return has$1(elem, 'rowspan') && parseInt(get$1(elem, 'rowspan'), 10) > 1 || has$1(elem, 'colspan') && parseInt(get$1(elem, 'colspan'), 10) > 1;\n };\n var candidates = selection(cell, selections);\n return candidates.length > 0 && forall(candidates, hasSpan) ? Option.some(candidates) : Option.none();\n };\n var mergable = function (table, selections) {\n return SelectionTypes.cata(selections.get(), Option.none, function (cells, _env) {\n if (cells.length === 0) {\n return Option.none();\n }\n return TableSelection.retrieveBox(table, Ephemera.firstSelectedSelector(), Ephemera.lastSelectedSelector()).bind(function (bounds) {\n return cells.length > 1 ? Option.some({\n bounds: constant(bounds),\n cells: constant(cells)\n }) : Option.none();\n });\n }, Option.none);\n };\n var CellOperations = {\n mergable: mergable,\n unmergable: unmergable,\n selection: selection\n };\n\n var noMenu = function (cell) {\n return {\n element: constant(cell),\n mergable: Option.none,\n unmergable: Option.none,\n selection: constant([cell])\n };\n };\n var forMenu = function (selections, table, cell) {\n return {\n element: constant(cell),\n mergable: constant(CellOperations.mergable(table, selections)),\n unmergable: constant(CellOperations.unmergable(cell, selections)),\n selection: constant(CellOperations.selection(cell, selections))\n };\n };\n var notCell$1 = function (element) {\n return noMenu(element);\n };\n var paste$1 = Immutable('element', 'clipboard', 'generators');\n var pasteRows = function (selections, table, cell, clipboard, generators) {\n return {\n element: constant(cell),\n mergable: Option.none,\n unmergable: Option.none,\n selection: constant(CellOperations.selection(cell, selections)),\n clipboard: constant(clipboard),\n generators: constant(generators)\n };\n };\n var TableTargets = {\n noMenu: noMenu,\n forMenu: forMenu,\n notCell: notCell$1,\n paste: paste$1,\n pasteRows: pasteRows\n };\n\n var extractSelected = function (cells) {\n return TableLookup.table(cells[0]).map(deep).map(function (replica) {\n return [CopySelected.extract(replica, Ephemera.attributeSelector())];\n });\n };\n var serializeElements = function (editor, elements) {\n return map(elements, function (elm) {\n return editor.selection.serializer.serialize(elm.dom(), {});\n }).join('');\n };\n var getTextContent = function (elements) {\n return map(elements, function (element) {\n return element.dom().innerText;\n }).join('');\n };\n var registerEvents = function (editor, selections, actions, cellSelection) {\n editor.on('BeforeGetContent', function (e) {\n var multiCellContext = function (cells) {\n e.preventDefault();\n extractSelected(cells).each(function (elements) {\n e.content = e.format === 'text' ? getTextContent(elements) : serializeElements(editor, elements);\n });\n };\n if (e.selection === true) {\n SelectionTypes.cata(selections.get(), noop, multiCellContext, noop);\n }\n });\n editor.on('BeforeSetContent', function (e) {\n if (e.selection === true && e.paste === true) {\n var cellOpt = Option.from(editor.dom.getParent(editor.selection.getStart(), 'th,td'));\n cellOpt.each(function (domCell) {\n var cell = Element.fromDom(domCell);\n TableLookup.table(cell).each(function (table) {\n var elements = filter(fromHtml$1(e.content), function (content) {\n return name(content) !== 'meta';\n });\n if (elements.length === 1 && name(elements[0]) === 'table') {\n e.preventDefault();\n var doc = Element.fromDom(editor.getDoc());\n var generators = TableFill.paste(doc);\n var targets = TableTargets.paste(cell, elements[0], generators);\n actions.pasteCells(table, targets).each(function (rng) {\n editor.selection.setRng(rng);\n editor.focus();\n cellSelection.clear(table);\n });\n }\n });\n });\n }\n });\n };\n var Clipboard = { registerEvents: registerEvents };\n\n function Dimension (name, getOffset) {\n var set = function (element, h) {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n var dom = element.dom();\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n var get = function (element) {\n var r = getOffset(element);\n if (r <= 0 || r === null) {\n var css = get$2(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n var getOuter = get;\n var aggregate = function (element, properties) {\n return foldl(properties, function (acc, property) {\n var val = get$2(element, property);\n var value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n };\n var max = function (element, value, properties) {\n var cumulativeInclusions = aggregate(element, properties);\n var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set: set,\n get: get,\n getOuter: getOuter,\n aggregate: aggregate,\n max: max\n };\n }\n\n var api$1 = Dimension('height', function (element) {\n var dom = element.dom();\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n var get$4 = function (element) {\n return api$1.get(element);\n };\n var getOuter = function (element) {\n return api$1.getOuter(element);\n };\n\n var api$2 = Dimension('width', function (element) {\n return element.dom().offsetWidth;\n });\n var get$5 = function (element) {\n return api$2.get(element);\n };\n var getOuter$1 = function (element) {\n return api$2.getOuter(element);\n };\n\n var platform$1 = detect$3();\n var needManualCalc = function () {\n return platform$1.browser.isIE() || platform$1.browser.isEdge();\n };\n var toNumber = function (px, fallback) {\n var num = parseFloat(px);\n return isNaN(num) ? fallback : num;\n };\n var getProp = function (elm, name, fallback) {\n return toNumber(get$2(elm, name), fallback);\n };\n var getCalculatedHeight = function (cell) {\n var paddingTop = getProp(cell, 'padding-top', 0);\n var paddingBottom = getProp(cell, 'padding-bottom', 0);\n var borderTop = getProp(cell, 'border-top-width', 0);\n var borderBottom = getProp(cell, 'border-bottom-width', 0);\n var height = cell.dom().getBoundingClientRect().height;\n var boxSizing = get$2(cell, 'box-sizing');\n var borders = borderTop + borderBottom;\n return boxSizing === 'border-box' ? height : height - paddingTop - paddingBottom - borders;\n };\n var getWidth = function (cell) {\n return getProp(cell, 'width', get$5(cell));\n };\n var getHeight = function (cell) {\n return needManualCalc() ? getCalculatedHeight(cell) : getProp(cell, 'height', get$4(cell));\n };\n var RuntimeSize = {\n getWidth: getWidth,\n getHeight: getHeight\n };\n\n var genericSizeRegex = /(\\d+(\\.\\d+)?)(\\w|%)*/;\n var percentageBasedSizeRegex = /(\\d+(\\.\\d+)?)%/;\n var pixelBasedSizeRegex = /(\\d+(\\.\\d+)?)px|em/;\n var setPixelWidth = function (cell, amount) {\n set$1(cell, 'width', amount + 'px');\n };\n var setPercentageWidth = function (cell, amount) {\n set$1(cell, 'width', amount + '%');\n };\n var setHeight = function (cell, amount) {\n set$1(cell, 'height', amount + 'px');\n };\n var getHeightValue = function (cell) {\n return getRaw(cell, 'height').getOrThunk(function () {\n return RuntimeSize.getHeight(cell) + 'px';\n });\n };\n var convert = function (cell, number, getter, setter) {\n var newSize = TableLookup.table(cell).map(function (table) {\n var total = getter(table);\n return Math.floor(number / 100 * total);\n }).getOr(number);\n setter(cell, newSize);\n return newSize;\n };\n var normalizePixelSize = function (value, cell, getter, setter) {\n var number = parseInt(value, 10);\n return endsWith(value, '%') && name(cell) !== 'table' ? convert(cell, number, getter, setter) : number;\n };\n var getTotalHeight = function (cell) {\n var value = getHeightValue(cell);\n if (!value) {\n return get$4(cell);\n }\n return normalizePixelSize(value, cell, get$4, setHeight);\n };\n var get$6 = function (cell, type, f) {\n var v = f(cell);\n var span = getSpan(cell, type);\n return v / span;\n };\n var getSpan = function (cell, type) {\n return has$1(cell, type) ? parseInt(get$1(cell, type), 10) : 1;\n };\n var getRawWidth = function (element) {\n var cssWidth = getRaw(element, 'width');\n return cssWidth.fold(function () {\n return Option.from(get$1(element, 'width'));\n }, function (width) {\n return Option.some(width);\n });\n };\n var normalizePercentageWidth = function (cellWidth, tableSize) {\n return cellWidth / tableSize.pixelWidth() * 100;\n };\n var choosePercentageSize = function (element, width, tableSize) {\n var percentMatch = percentageBasedSizeRegex.exec(width);\n if (percentMatch !== null) {\n return parseFloat(percentMatch[1]);\n } else {\n var intWidth = get$5(element);\n return normalizePercentageWidth(intWidth, tableSize);\n }\n };\n var getPercentageWidth = function (cell, tableSize) {\n var width = getRawWidth(cell);\n return width.fold(function () {\n var intWidth = get$5(cell);\n return normalizePercentageWidth(intWidth, tableSize);\n }, function (w) {\n return choosePercentageSize(cell, w, tableSize);\n });\n };\n var normalizePixelWidth = function (cellWidth, tableSize) {\n return cellWidth / 100 * tableSize.pixelWidth();\n };\n var choosePixelSize = function (element, width, tableSize) {\n var pixelMatch = pixelBasedSizeRegex.exec(width);\n if (pixelMatch !== null) {\n return parseInt(pixelMatch[1], 10);\n }\n var percentMatch = percentageBasedSizeRegex.exec(width);\n if (percentMatch !== null) {\n var floatWidth = parseFloat(percentMatch[1]);\n return normalizePixelWidth(floatWidth, tableSize);\n }\n return get$5(element);\n };\n var getPixelWidth = function (cell, tableSize) {\n var width = getRawWidth(cell);\n return width.fold(function () {\n return get$5(cell);\n }, function (w) {\n return choosePixelSize(cell, w, tableSize);\n });\n };\n var getHeight$1 = function (cell) {\n return get$6(cell, 'rowspan', getTotalHeight);\n };\n var getGenericWidth = function (cell) {\n var width = getRawWidth(cell);\n return width.bind(function (w) {\n var match = genericSizeRegex.exec(w);\n if (match !== null) {\n return Option.some({\n width: constant(parseFloat(match[1])),\n unit: constant(match[3])\n });\n } else {\n return Option.none();\n }\n });\n };\n var setGenericWidth = function (cell, amount, unit) {\n set$1(cell, 'width', amount + unit);\n };\n var Sizes = {\n percentageBasedSizeRegex: constant(percentageBasedSizeRegex),\n pixelBasedSizeRegex: constant(pixelBasedSizeRegex),\n setPixelWidth: setPixelWidth,\n setPercentageWidth: setPercentageWidth,\n setHeight: setHeight,\n getPixelWidth: getPixelWidth,\n getPercentageWidth: getPercentageWidth,\n getGenericWidth: getGenericWidth,\n setGenericWidth: setGenericWidth,\n getHeight: getHeight$1,\n getRawWidth: getRawWidth\n };\n\n var halve = function (main, other) {\n var width = Sizes.getGenericWidth(main);\n width.each(function (w) {\n var newWidth = w.width() / 2;\n Sizes.setGenericWidth(main, newWidth, w.unit());\n Sizes.setGenericWidth(other, newWidth, w.unit());\n });\n };\n var CellMutations = { halve: halve };\n\n var r = function (left, top) {\n var translate = function (x, y) {\n return r(left + x, top + y);\n };\n return {\n left: constant(left),\n top: constant(top),\n translate: translate\n };\n };\n var Position = r;\n\n var boxPosition = function (dom) {\n var box = dom.getBoundingClientRect();\n return Position(box.left, box.top);\n };\n var firstDefinedOrZero = function (a, b) {\n return a !== undefined ? a : b !== undefined ? b : 0;\n };\n var absolute = function (element) {\n var doc = element.dom().ownerDocument;\n var body = doc.body;\n var win = doc.defaultView;\n var html = doc.documentElement;\n if (body === element.dom()) {\n return Position(body.offsetLeft, body.offsetTop);\n }\n var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);\n var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);\n var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n var viewport = function (element) {\n var dom = element.dom();\n var doc = dom.ownerDocument;\n var body = doc.body;\n if (body === dom) {\n return Position(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return Position(0, 0);\n }\n return boxPosition(dom);\n };\n\n var rowInfo = Immutable('row', 'y');\n var colInfo = Immutable('col', 'x');\n var rtlEdge = function (cell) {\n var pos = absolute(cell);\n return pos.left() + getOuter$1(cell);\n };\n var ltrEdge = function (cell) {\n return absolute(cell).left();\n };\n var getLeftEdge = function (index, cell) {\n return colInfo(index, ltrEdge(cell));\n };\n var getRightEdge = function (index, cell) {\n return colInfo(index, rtlEdge(cell));\n };\n var getTop = function (cell) {\n return absolute(cell).top();\n };\n var getTopEdge = function (index, cell) {\n return rowInfo(index, getTop(cell));\n };\n var getBottomEdge = function (index, cell) {\n return rowInfo(index, getTop(cell) + getOuter(cell));\n };\n var findPositions = function (getInnerEdge, getOuterEdge, array) {\n if (array.length === 0) {\n return [];\n }\n var lines = map(array.slice(1), function (cellOption, index) {\n return cellOption.map(function (cell) {\n return getInnerEdge(index, cell);\n });\n });\n var lastLine = array[array.length - 1].map(function (cell) {\n return getOuterEdge(array.length - 1, cell);\n });\n return lines.concat([lastLine]);\n };\n var negate = function (step) {\n return -step;\n };\n var height = {\n delta: identity,\n positions: function (optElements) {\n return findPositions(getTopEdge, getBottomEdge, optElements);\n },\n edge: getTop\n };\n var ltr = {\n delta: identity,\n edge: ltrEdge,\n positions: function (optElements) {\n return findPositions(getLeftEdge, getRightEdge, optElements);\n }\n };\n var rtl = {\n delta: negate,\n edge: rtlEdge,\n positions: function (optElements) {\n return findPositions(getRightEdge, getLeftEdge, optElements);\n }\n };\n var BarPositions = {\n height: height,\n rtl: rtl,\n ltr: ltr\n };\n\n var ResizeDirection = {\n ltr: BarPositions.ltr,\n rtl: BarPositions.rtl\n };\n\n function TableDirection (directionAt) {\n var auto = function (table) {\n return directionAt(table).isRtl() ? ResizeDirection.rtl : ResizeDirection.ltr;\n };\n var delta = function (amount, table) {\n return auto(table).delta(amount, table);\n };\n var positions = function (cols, table) {\n return auto(table).positions(cols, table);\n };\n var edge = function (cell) {\n return auto(cell).edge(cell);\n };\n return {\n delta: delta,\n edge: edge,\n positions: positions\n };\n }\n\n var getGridSize = function (table) {\n var input = DetailsList.fromTable(table);\n var warehouse = Warehouse.generate(input);\n return warehouse.grid();\n };\n var TableGridSize = { getGridSize: getGridSize };\n\n var cat = function (arr) {\n var r = [];\n var push = function (x) {\n r.push(x);\n };\n for (var i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n var findMap = function (arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Option.none();\n };\n\n var setIfNot = function (element, property, value, ignore) {\n if (value === ignore) {\n remove(element, property);\n } else {\n set(element, property, value);\n }\n };\n var render = function (table, grid) {\n var newRows = [];\n var newCells = [];\n var renderSection = function (gridSection, sectionName) {\n var section = child$2(table, sectionName).getOrThunk(function () {\n var tb = Element.fromTag(sectionName, owner(table).dom());\n append(table, tb);\n return tb;\n });\n empty(section);\n var rows = map(gridSection, function (row) {\n if (row.isNew()) {\n newRows.push(row.element());\n }\n var tr = row.element();\n empty(tr);\n each(row.cells(), function (cell) {\n if (cell.isNew()) {\n newCells.push(cell.element());\n }\n setIfNot(cell.element(), 'colspan', cell.colspan(), 1);\n setIfNot(cell.element(), 'rowspan', cell.rowspan(), 1);\n append(tr, cell.element());\n });\n return tr;\n });\n append$1(section, rows);\n };\n var removeSection = function (sectionName) {\n child$2(table, sectionName).each(remove$2);\n };\n var renderOrRemoveSection = function (gridSection, sectionName) {\n if (gridSection.length > 0) {\n renderSection(gridSection, sectionName);\n } else {\n removeSection(sectionName);\n }\n };\n var headSection = [];\n var bodySection = [];\n var footSection = [];\n each(grid, function (row) {\n switch (row.section()) {\n case 'thead':\n headSection.push(row);\n break;\n case 'tbody':\n bodySection.push(row);\n break;\n case 'tfoot':\n footSection.push(row);\n break;\n }\n });\n renderOrRemoveSection(headSection, 'thead');\n renderOrRemoveSection(bodySection, 'tbody');\n renderOrRemoveSection(footSection, 'tfoot');\n return {\n newRows: constant(newRows),\n newCells: constant(newCells)\n };\n };\n var copy$2 = function (grid) {\n var rows = map(grid, function (row) {\n var tr = shallow(row.element());\n each(row.cells(), function (cell) {\n var clonedCell = deep(cell.element());\n setIfNot(clonedCell, 'colspan', cell.colspan(), 1);\n setIfNot(clonedCell, 'rowspan', cell.rowspan(), 1);\n append(tr, clonedCell);\n });\n return tr;\n });\n return rows;\n };\n var Redraw = {\n render: render,\n copy: copy$2\n };\n\n var read = function (element, attr) {\n var value = get$1(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n var add = function (element, attr, id) {\n var old = read(element, attr);\n var nu = old.concat([id]);\n set(element, attr, nu.join(' '));\n return true;\n };\n var remove$3 = function (element, attr, id) {\n var nu = filter(read(element, attr), function (v) {\n return v !== id;\n });\n if (nu.length > 0) {\n set(element, attr, nu.join(' '));\n } else {\n remove(element, attr);\n }\n return false;\n };\n\n var supports = function (element) {\n return element.dom().classList !== undefined;\n };\n var get$7 = function (element) {\n return read(element, 'class');\n };\n var add$1 = function (element, clazz) {\n return add(element, 'class', clazz);\n };\n var remove$4 = function (element, clazz) {\n return remove$3(element, 'class', clazz);\n };\n\n var add$2 = function (element, clazz) {\n if (supports(element)) {\n element.dom().classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n var cleanClass = function (element) {\n var classList = supports(element) ? element.dom().classList : get$7(element);\n if (classList.length === 0) {\n remove(element, 'class');\n }\n };\n var remove$5 = function (element, clazz) {\n if (supports(element)) {\n var classList = element.dom().classList;\n classList.remove(clazz);\n } else {\n remove$4(element, clazz);\n }\n cleanClass(element);\n };\n var has$2 = function (element, clazz) {\n return supports(element) && element.dom().classList.contains(clazz);\n };\n\n var repeat = function (repititions, f) {\n var r = [];\n for (var i = 0; i < repititions; i++) {\n r.push(f(i));\n }\n return r;\n };\n var range = function (start, end) {\n var r = [];\n for (var i = start; i < end; i++) {\n r.push(i);\n }\n return r;\n };\n var deduce = function (xs, index) {\n if (index < 0 || index >= xs.length - 1) {\n return Option.none();\n }\n var current = xs[index].fold(function () {\n var rest = reverse(xs.slice(0, index));\n return findMap(rest, function (a, i) {\n return a.map(function (aa) {\n return {\n value: aa,\n delta: i + 1\n };\n });\n });\n }, function (c) {\n return Option.some({\n value: c,\n delta: 0\n });\n });\n var next = xs[index + 1].fold(function () {\n var rest = xs.slice(index + 1);\n return findMap(rest, function (a, i) {\n return a.map(function (aa) {\n return {\n value: aa,\n delta: i + 1\n };\n });\n });\n }, function (n) {\n return Option.some({\n value: n,\n delta: 1\n });\n });\n return current.bind(function (c) {\n return next.map(function (n) {\n var extras = n.delta + c.delta;\n return Math.abs(n.value - c.value) / extras;\n });\n });\n };\n\n var columns = function (warehouse) {\n var grid = warehouse.grid();\n var cols = range(0, grid.columns());\n var rowsArr = range(0, grid.rows());\n return map(cols, function (col) {\n var getBlock = function () {\n return bind(rowsArr, function (r) {\n return Warehouse.getAt(warehouse, r, col).filter(function (detail) {\n return detail.column() === col;\n }).fold(constant([]), function (detail) {\n return [detail];\n });\n });\n };\n var isSingle = function (detail) {\n return detail.colspan() === 1;\n };\n var getFallback = function () {\n return Warehouse.getAt(warehouse, 0, col);\n };\n return decide(getBlock, isSingle, getFallback);\n });\n };\n var decide = function (getBlock, isSingle, getFallback) {\n var inBlock = getBlock();\n var singleInBlock = find(inBlock, isSingle);\n var detailOption = singleInBlock.orThunk(function () {\n return Option.from(inBlock[0]).orThunk(getFallback);\n });\n return detailOption.map(function (detail) {\n return detail.element();\n });\n };\n var rows$1 = function (warehouse) {\n var grid = warehouse.grid();\n var rowsArr = range(0, grid.rows());\n var cols = range(0, grid.columns());\n return map(rowsArr, function (row) {\n var getBlock = function () {\n return bind(cols, function (c) {\n return Warehouse.getAt(warehouse, row, c).filter(function (detail) {\n return detail.row() === row;\n }).fold(constant([]), function (detail) {\n return [detail];\n });\n });\n };\n var isSingle = function (detail) {\n return detail.rowspan() === 1;\n };\n var getFallback = function () {\n return Warehouse.getAt(warehouse, row, 0);\n };\n return decide(getBlock, isSingle, getFallback);\n });\n };\n var Blocks = {\n columns: columns,\n rows: rows$1\n };\n\n var css = function (namespace) {\n var dashNamespace = namespace.replace(/\\./g, '-');\n var resolve = function (str) {\n return dashNamespace + '-' + str;\n };\n return { resolve: resolve };\n };\n\n var styles = css('ephox-snooker');\n var Styles = { resolve: styles.resolve };\n\n var col = function (column, x, y, w, h) {\n var blocker = Element.fromTag('div');\n setAll$1(blocker, {\n position: 'absolute',\n left: x - w / 2 + 'px',\n top: y + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll(blocker, {\n 'data-column': column,\n 'role': 'presentation'\n });\n return blocker;\n };\n var row$1 = function (r, x, y, w, h) {\n var blocker = Element.fromTag('div');\n setAll$1(blocker, {\n position: 'absolute',\n left: x + 'px',\n top: y - h / 2 + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll(blocker, {\n 'data-row': r,\n 'role': 'presentation'\n });\n return blocker;\n };\n var Bar = {\n col: col,\n row: row$1\n };\n\n var resizeBar = Styles.resolve('resizer-bar');\n var resizeRowBar = Styles.resolve('resizer-rows');\n var resizeColBar = Styles.resolve('resizer-cols');\n var BAR_THICKNESS = 7;\n var destroy = function (wire) {\n var previous = descendants$1(wire.parent(), '.' + resizeBar);\n each(previous, remove$2);\n };\n var drawBar = function (wire, positions, create) {\n var origin = wire.origin();\n each(positions, function (cpOption, i) {\n cpOption.each(function (cp) {\n var bar = create(origin, cp);\n add$2(bar, resizeBar);\n append(wire.parent(), bar);\n });\n });\n };\n var refreshCol = function (wire, colPositions, position, tableHeight) {\n drawBar(wire, colPositions, function (origin, cp) {\n var colBar = Bar.col(cp.col(), cp.x() - origin.left(), position.top() - origin.top(), BAR_THICKNESS, tableHeight);\n add$2(colBar, resizeColBar);\n return colBar;\n });\n };\n var refreshRow = function (wire, rowPositions, position, tableWidth) {\n drawBar(wire, rowPositions, function (origin, cp) {\n var rowBar = Bar.row(cp.row(), position.left() - origin.left(), cp.y() - origin.top(), tableWidth, BAR_THICKNESS);\n add$2(rowBar, resizeRowBar);\n return rowBar;\n });\n };\n var refreshGrid = function (wire, table, rows, cols, hdirection, vdirection) {\n var position = absolute(table);\n var rowPositions = rows.length > 0 ? hdirection.positions(rows, table) : [];\n refreshRow(wire, rowPositions, position, getOuter$1(table));\n var colPositions = cols.length > 0 ? vdirection.positions(cols, table) : [];\n refreshCol(wire, colPositions, position, getOuter(table));\n };\n var refresh = function (wire, table, hdirection, vdirection) {\n destroy(wire);\n var list = DetailsList.fromTable(table);\n var warehouse = Warehouse.generate(list);\n var rows = Blocks.rows(warehouse);\n var cols = Blocks.columns(warehouse);\n refreshGrid(wire, table, rows, cols, hdirection, vdirection);\n };\n var each$2 = function (wire, f) {\n var bars = descendants$1(wire.parent(), '.' + resizeBar);\n each(bars, f);\n };\n var hide = function (wire) {\n each$2(wire, function (bar) {\n set$1(bar, 'display', 'none');\n });\n };\n var show = function (wire) {\n each$2(wire, function (bar) {\n set$1(bar, 'display', 'block');\n });\n };\n var isRowBar = function (element) {\n return has$2(element, resizeRowBar);\n };\n var isColBar = function (element) {\n return has$2(element, resizeColBar);\n };\n var Bars = {\n refresh: refresh,\n hide: hide,\n show: show,\n destroy: destroy,\n isRowBar: isRowBar,\n isColBar: isColBar\n };\n\n var addCell = function (gridRow, index, cell) {\n var cells = gridRow.cells();\n var before = cells.slice(0, index);\n var after = cells.slice(index);\n var newCells = before.concat([cell]).concat(after);\n return setCells(gridRow, newCells);\n };\n var mutateCell = function (gridRow, index, cell) {\n var cells = gridRow.cells();\n cells[index] = cell;\n };\n var setCells = function (gridRow, cells) {\n return rowcells(cells, gridRow.section());\n };\n var mapCells = function (gridRow, f) {\n var cells = gridRow.cells();\n var r = map(cells, f);\n return rowcells(r, gridRow.section());\n };\n var getCell = function (gridRow, index) {\n return gridRow.cells()[index];\n };\n var getCellElement = function (gridRow, index) {\n return getCell(gridRow, index).element();\n };\n var cellLength = function (gridRow) {\n return gridRow.cells().length;\n };\n var GridRow = {\n addCell: addCell,\n setCells: setCells,\n mutateCell: mutateCell,\n getCell: getCell,\n getCellElement: getCellElement,\n mapCells: mapCells,\n cellLength: cellLength\n };\n\n var getColumn = function (grid, index) {\n return map(grid, function (row) {\n return GridRow.getCell(row, index);\n });\n };\n var getRow = function (grid, index) {\n return grid[index];\n };\n var findDiff = function (xs, comp) {\n if (xs.length === 0) {\n return 0;\n }\n var first = xs[0];\n var index = findIndex(xs, function (x) {\n return !comp(first.element(), x.element());\n });\n return index.fold(function () {\n return xs.length;\n }, function (ind) {\n return ind;\n });\n };\n var subgrid = function (grid, row, column, comparator) {\n var restOfRow = getRow(grid, row).cells().slice(column);\n var endColIndex = findDiff(restOfRow, comparator);\n var restOfColumn = getColumn(grid, column).slice(row);\n var endRowIndex = findDiff(restOfColumn, comparator);\n return {\n colspan: constant(endColIndex),\n rowspan: constant(endRowIndex)\n };\n };\n var TableGrid = { subgrid: subgrid };\n\n var toDetails = function (grid, comparator) {\n var seen = map(grid, function (row, ri) {\n return map(row.cells(), function (col, ci) {\n return false;\n });\n });\n var updateSeen = function (ri, ci, rowspan, colspan) {\n for (var r = ri; r < ri + rowspan; r++) {\n for (var c = ci; c < ci + colspan; c++) {\n seen[r][c] = true;\n }\n }\n };\n return map(grid, function (row, ri) {\n var details = bind(row.cells(), function (cell, ci) {\n if (seen[ri][ci] === false) {\n var result = TableGrid.subgrid(grid, ri, ci, comparator);\n updateSeen(ri, ci, result.rowspan(), result.colspan());\n return [detailnew(cell.element(), result.rowspan(), result.colspan(), cell.isNew())];\n } else {\n return [];\n }\n });\n return rowdetails(details, row.section());\n });\n };\n var toGrid = function (warehouse, generators, isNew) {\n var grid = [];\n for (var i = 0; i < warehouse.grid().rows(); i++) {\n var rowCells = [];\n for (var j = 0; j < warehouse.grid().columns(); j++) {\n var element = Warehouse.getAt(warehouse, i, j).map(function (item) {\n return elementnew(item.element(), isNew);\n }).getOrThunk(function () {\n return elementnew(generators.gap(), true);\n });\n rowCells.push(element);\n }\n var row = rowcells(rowCells, warehouse.all()[i].section());\n grid.push(row);\n }\n return grid;\n };\n var Transitions = {\n toDetails: toDetails,\n toGrid: toGrid\n };\n\n var fromWarehouse = function (warehouse, generators) {\n return Transitions.toGrid(warehouse, generators, false);\n };\n var deriveRows = function (rendered, generators) {\n var findRow = function (details) {\n var rowOfCells = findMap(details, function (detail) {\n return parent(detail.element()).map(function (row) {\n var isNew = parent(row).isNone();\n return elementnew(row, isNew);\n });\n });\n return rowOfCells.getOrThunk(function () {\n return elementnew(generators.row(), true);\n });\n };\n return map(rendered, function (details) {\n var row = findRow(details.details());\n return rowdatanew(row.element(), details.details(), details.section(), row.isNew());\n });\n };\n var toDetailList = function (grid, generators) {\n var rendered = Transitions.toDetails(grid, eq);\n return deriveRows(rendered, generators);\n };\n var findInWarehouse = function (warehouse, element) {\n var all = flatten(map(warehouse.all(), function (r) {\n return r.cells();\n }));\n return find(all, function (e) {\n return eq(element, e.element());\n });\n };\n var run = function (operation, extract, adjustment, postAction, genWrappers) {\n return function (wire, table, target, generators, direction) {\n var input = DetailsList.fromTable(table);\n var warehouse = Warehouse.generate(input);\n var output = extract(warehouse, target).map(function (info) {\n var model = fromWarehouse(warehouse, generators);\n var result = operation(model, info, eq, genWrappers(generators));\n var grid = toDetailList(result.grid(), generators);\n return {\n grid: constant(grid),\n cursor: result.cursor\n };\n });\n return output.fold(function () {\n return Option.none();\n }, function (out) {\n var newElements = Redraw.render(table, out.grid());\n adjustment(table, out.grid(), direction);\n postAction(table);\n Bars.refresh(wire, table, BarPositions.height, direction);\n return Option.some({\n cursor: out.cursor,\n newRows: newElements.newRows,\n newCells: newElements.newCells\n });\n });\n };\n };\n var onCell = function (warehouse, target) {\n return TableLookup.cell(target.element()).bind(function (cell) {\n return findInWarehouse(warehouse, cell);\n });\n };\n var onPaste = function (warehouse, target) {\n return TableLookup.cell(target.element()).bind(function (cell) {\n return findInWarehouse(warehouse, cell).map(function (details) {\n var value = __assign(__assign({}, details), {\n generators: target.generators,\n clipboard: target.clipboard\n });\n return value;\n });\n });\n };\n var onPasteRows = function (warehouse, target) {\n var details = map(target.selection(), function (cell) {\n return TableLookup.cell(cell).bind(function (lc) {\n return findInWarehouse(warehouse, lc);\n });\n });\n var cells = cat(details);\n return cells.length > 0 ? Option.some({\n cells: cells,\n generators: target.generators,\n clipboard: target.clipboard\n }) : Option.none();\n };\n var onMergable = function (_warehouse, target) {\n return target.mergable();\n };\n var onUnmergable = function (_warehouse, target) {\n return target.unmergable();\n };\n var onCells = function (warehouse, target) {\n var details = map(target.selection(), function (cell) {\n return TableLookup.cell(cell).bind(function (lc) {\n return findInWarehouse(warehouse, lc);\n });\n });\n var cells = cat(details);\n return cells.length > 0 ? Option.some(cells) : Option.none();\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var fromOption = function (opt, err) {\n return opt.fold(function () {\n return error(err);\n }, value);\n };\n var Result = {\n value: value,\n error: error,\n fromOption: fromOption\n };\n\n var measure = function (startAddress, gridA, gridB) {\n if (startAddress.row() >= gridA.length || startAddress.column() > GridRow.cellLength(gridA[0])) {\n return Result.error('invalid start address out of table bounds, row: ' + startAddress.row() + ', column: ' + startAddress.column());\n }\n var rowRemainder = gridA.slice(startAddress.row());\n var colRemainder = rowRemainder[0].cells().slice(startAddress.column());\n var colRequired = GridRow.cellLength(gridB[0]);\n var rowRequired = gridB.length;\n return Result.value({\n rowDelta: constant(rowRemainder.length - rowRequired),\n colDelta: constant(colRemainder.length - colRequired)\n });\n };\n var measureWidth = function (gridA, gridB) {\n var colLengthA = GridRow.cellLength(gridA[0]);\n var colLengthB = GridRow.cellLength(gridB[0]);\n return {\n rowDelta: constant(0),\n colDelta: constant(colLengthA - colLengthB)\n };\n };\n var fill = function (cells, generator) {\n return map(cells, function () {\n return elementnew(generator.cell(), true);\n });\n };\n var rowFill = function (grid, amount, generator) {\n return grid.concat(repeat(amount, function (_row) {\n return GridRow.setCells(grid[grid.length - 1], fill(grid[grid.length - 1].cells(), generator));\n }));\n };\n var colFill = function (grid, amount, generator) {\n return map(grid, function (row) {\n return GridRow.setCells(row, row.cells().concat(fill(range(0, amount), generator)));\n });\n };\n var tailor = function (gridA, delta, generator) {\n var fillCols = delta.colDelta() < 0 ? colFill : identity;\n var fillRows = delta.rowDelta() < 0 ? rowFill : identity;\n var modifiedCols = fillCols(gridA, Math.abs(delta.colDelta()), generator);\n var tailoredGrid = fillRows(modifiedCols, Math.abs(delta.rowDelta()), generator);\n return tailoredGrid;\n };\n var Fitment = {\n measure: measure,\n measureWidth: measureWidth,\n tailor: tailor\n };\n\n var merge = function (grid, bounds, comparator, substitution) {\n if (grid.length === 0) {\n return grid;\n }\n for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {\n for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {\n GridRow.mutateCell(grid[i], j, elementnew(substitution(), false));\n }\n }\n return grid;\n };\n var unmerge = function (grid, target, comparator, substitution) {\n var first = true;\n for (var i = 0; i < grid.length; i++) {\n for (var j = 0; j < GridRow.cellLength(grid[0]); j++) {\n var current = GridRow.getCellElement(grid[i], j);\n var isToReplace = comparator(current, target);\n if (isToReplace === true && first === false) {\n GridRow.mutateCell(grid[i], j, elementnew(substitution(), true));\n } else if (isToReplace === true) {\n first = false;\n }\n }\n }\n return grid;\n };\n var uniqueCells = function (row, comparator) {\n return foldl(row, function (rest, cell) {\n return exists(rest, function (currentCell) {\n return comparator(currentCell.element(), cell.element());\n }) ? rest : rest.concat([cell]);\n }, []);\n };\n var splitRows = function (grid, index, comparator, substitution) {\n if (index > 0 && index < grid.length) {\n var rowPrevCells = grid[index - 1].cells();\n var cells = uniqueCells(rowPrevCells, comparator);\n each(cells, function (cell) {\n var replacement = Option.none();\n var _loop_1 = function (i) {\n var _loop_2 = function (j) {\n var current = grid[i].cells()[j];\n var isToReplace = comparator(current.element(), cell.element());\n if (isToReplace) {\n if (replacement.isNone()) {\n replacement = Option.some(substitution());\n }\n replacement.each(function (sub) {\n GridRow.mutateCell(grid[i], j, elementnew(sub, true));\n });\n }\n };\n for (var j = 0; j < GridRow.cellLength(grid[0]); j++) {\n _loop_2(j);\n }\n };\n for (var i = index; i < grid.length; i++) {\n _loop_1(i);\n }\n });\n }\n return grid;\n };\n var MergingOperations = {\n merge: merge,\n unmerge: unmerge,\n splitRows: splitRows\n };\n\n var isSpanning = function (grid, row, col, comparator) {\n var candidate = GridRow.getCell(grid[row], col);\n var matching = curry(comparator, candidate.element());\n var currentRow = grid[row];\n return grid.length > 1 && GridRow.cellLength(currentRow) > 1 && (col > 0 && matching(GridRow.getCellElement(currentRow, col - 1)) || col < currentRow.cells().length - 1 && matching(GridRow.getCellElement(currentRow, col + 1)) || row > 0 && matching(GridRow.getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(GridRow.getCellElement(grid[row + 1], col)));\n };\n var mergeTables = function (startAddress, gridA, gridB, generator, comparator) {\n var startRow = startAddress.row();\n var startCol = startAddress.column();\n var mergeHeight = gridB.length;\n var mergeWidth = GridRow.cellLength(gridB[0]);\n var endRow = startRow + mergeHeight;\n var endCol = startCol + mergeWidth;\n for (var r = startRow; r < endRow; r++) {\n for (var c = startCol; c < endCol; c++) {\n if (isSpanning(gridA, r, c, comparator)) {\n MergingOperations.unmerge(gridA, GridRow.getCellElement(gridA[r], c), comparator, generator.cell);\n }\n var newCell = GridRow.getCellElement(gridB[r - startRow], c - startCol);\n var replacement = generator.replace(newCell);\n GridRow.mutateCell(gridA[r], c, elementnew(replacement, true));\n }\n }\n return gridA;\n };\n var merge$1 = function (startAddress, gridA, gridB, generator, comparator) {\n var result = Fitment.measure(startAddress, gridA, gridB);\n return result.map(function (delta) {\n var fittedGrid = Fitment.tailor(gridA, delta, generator);\n return mergeTables(startAddress, fittedGrid, gridB, generator, comparator);\n });\n };\n var insert = function (index, gridA, gridB, generator, comparator) {\n MergingOperations.splitRows(gridA, index, comparator, generator.cell);\n var delta = Fitment.measureWidth(gridB, gridA);\n var fittedNewGrid = Fitment.tailor(gridB, delta, generator);\n var secondDelta = Fitment.measureWidth(gridA, fittedNewGrid);\n var fittedOldGrid = Fitment.tailor(gridA, secondDelta, generator);\n return fittedOldGrid.slice(0, index).concat(fittedNewGrid).concat(fittedOldGrid.slice(index, fittedOldGrid.length));\n };\n var TableMerge = {\n merge: merge$1,\n insert: insert\n };\n\n var insertRowAt = function (grid, index, example, comparator, substitution) {\n var before = grid.slice(0, index);\n var after = grid.slice(index);\n var between = GridRow.mapCells(grid[example], function (ex, c) {\n var withinSpan = index > 0 && index < grid.length && comparator(GridRow.getCellElement(grid[index - 1], c), GridRow.getCellElement(grid[index], c));\n var ret = withinSpan ? GridRow.getCell(grid[index], c) : elementnew(substitution(ex.element(), comparator), true);\n return ret;\n });\n return before.concat([between]).concat(after);\n };\n var insertColumnAt = function (grid, index, example, comparator, substitution) {\n return map(grid, function (row) {\n var withinSpan = index > 0 && index < GridRow.cellLength(row) && comparator(GridRow.getCellElement(row, index - 1), GridRow.getCellElement(row, index));\n var sub = withinSpan ? GridRow.getCell(row, index) : elementnew(substitution(GridRow.getCellElement(row, example), comparator), true);\n return GridRow.addCell(row, index, sub);\n });\n };\n var splitCellIntoColumns = function (grid, exampleRow, exampleCol, comparator, substitution) {\n var index = exampleCol + 1;\n return map(grid, function (row, i) {\n var isTargetCell = i === exampleRow;\n var sub = isTargetCell ? elementnew(substitution(GridRow.getCellElement(row, exampleCol), comparator), true) : GridRow.getCell(row, exampleCol);\n return GridRow.addCell(row, index, sub);\n });\n };\n var splitCellIntoRows = function (grid, exampleRow, exampleCol, comparator, substitution) {\n var index = exampleRow + 1;\n var before = grid.slice(0, index);\n var after = grid.slice(index);\n var between = GridRow.mapCells(grid[exampleRow], function (ex, i) {\n var isTargetCell = i === exampleCol;\n return isTargetCell ? elementnew(substitution(ex.element(), comparator), true) : ex;\n });\n return before.concat([between]).concat(after);\n };\n var deleteColumnsAt = function (grid, start, finish) {\n var rows = map(grid, function (row) {\n var cells = row.cells().slice(0, start).concat(row.cells().slice(finish + 1));\n return rowcells(cells, row.section());\n });\n return filter(rows, function (row) {\n return row.cells().length > 0;\n });\n };\n var deleteRowsAt = function (grid, start, finish) {\n return grid.slice(0, start).concat(grid.slice(finish + 1));\n };\n var ModificationOperations = {\n insertRowAt: insertRowAt,\n insertColumnAt: insertColumnAt,\n splitCellIntoColumns: splitCellIntoColumns,\n splitCellIntoRows: splitCellIntoRows,\n deleteRowsAt: deleteRowsAt,\n deleteColumnsAt: deleteColumnsAt\n };\n\n var replaceIn = function (grid, targets, comparator, substitution) {\n var isTarget = function (cell) {\n return exists(targets, function (target) {\n return comparator(cell.element(), target.element());\n });\n };\n return map(grid, function (row) {\n return GridRow.mapCells(row, function (cell) {\n return isTarget(cell) ? elementnew(substitution(cell.element(), comparator), true) : cell;\n });\n });\n };\n var notStartRow = function (grid, rowIndex, colIndex, comparator) {\n return GridRow.getCellElement(grid[rowIndex], colIndex) !== undefined && (rowIndex > 0 && comparator(GridRow.getCellElement(grid[rowIndex - 1], colIndex), GridRow.getCellElement(grid[rowIndex], colIndex)));\n };\n var notStartColumn = function (row, index, comparator) {\n return index > 0 && comparator(GridRow.getCellElement(row, index - 1), GridRow.getCellElement(row, index));\n };\n var replaceColumn = function (grid, index, comparator, substitution) {\n var targets = bind(grid, function (row, i) {\n var alreadyAdded = notStartRow(grid, i, index, comparator) || notStartColumn(row, index, comparator);\n return alreadyAdded ? [] : [GridRow.getCell(row, index)];\n });\n return replaceIn(grid, targets, comparator, substitution);\n };\n var replaceRow = function (grid, index, comparator, substitution) {\n var targetRow = grid[index];\n var targets = bind(targetRow.cells(), function (item, i) {\n var alreadyAdded = notStartRow(grid, index, i, comparator) || notStartColumn(targetRow, i, comparator);\n return alreadyAdded ? [] : [item];\n });\n return replaceIn(grid, targets, comparator, substitution);\n };\n var TransformOperations = {\n replaceColumn: replaceColumn,\n replaceRow: replaceRow\n };\n\n var adt = Adt.generate([\n { none: [] },\n { only: ['index'] },\n {\n left: [\n 'index',\n 'next'\n ]\n },\n {\n middle: [\n 'prev',\n 'index',\n 'next'\n ]\n },\n {\n right: [\n 'prev',\n 'index'\n ]\n }\n ]);\n var ColumnContext = __assign({}, adt);\n\n var neighbours$1 = function (input, index) {\n if (input.length === 0) {\n return ColumnContext.none();\n }\n if (input.length === 1) {\n return ColumnContext.only(0);\n }\n if (index === 0) {\n return ColumnContext.left(0, 1);\n }\n if (index === input.length - 1) {\n return ColumnContext.right(index - 1, index);\n }\n if (index > 0 && index < input.length - 1) {\n return ColumnContext.middle(index - 1, index, index + 1);\n }\n return ColumnContext.none();\n };\n var determine = function (input, column, step, tableSize) {\n var result = input.slice(0);\n var context = neighbours$1(input, column);\n var zero = function (array) {\n return map(array, constant(0));\n };\n var onNone = constant(zero(result));\n var onOnly = function (index) {\n return tableSize.singleColumnWidth(result[index], step);\n };\n var onChange = function (index, next) {\n if (step >= 0) {\n var newNext = Math.max(tableSize.minCellWidth(), result[next] - step);\n return zero(result.slice(0, index)).concat([\n step,\n newNext - result[next]\n ]).concat(zero(result.slice(next + 1)));\n } else {\n var newThis = Math.max(tableSize.minCellWidth(), result[index] + step);\n var diffx = result[index] - newThis;\n return zero(result.slice(0, index)).concat([\n newThis - result[index],\n diffx\n ]).concat(zero(result.slice(next + 1)));\n }\n };\n var onLeft = onChange;\n var onMiddle = function (_prev, index, next) {\n return onChange(index, next);\n };\n var onRight = function (_prev, index) {\n if (step >= 0) {\n return zero(result.slice(0, index)).concat([step]);\n } else {\n var size = Math.max(tableSize.minCellWidth(), result[index] + step);\n return zero(result.slice(0, index)).concat([size - result[index]]);\n }\n };\n return context.fold(onNone, onOnly, onLeft, onMiddle, onRight);\n };\n var Deltas = { determine: determine };\n\n var getSpan$1 = function (cell, type) {\n return has$1(cell, type) && parseInt(get$1(cell, type), 10) > 1;\n };\n var hasColspan = function (cell) {\n return getSpan$1(cell, 'colspan');\n };\n var hasRowspan = function (cell) {\n return getSpan$1(cell, 'rowspan');\n };\n var getInt = function (element, property) {\n return parseInt(get$2(element, property), 10);\n };\n var CellUtils = {\n hasColspan: hasColspan,\n hasRowspan: hasRowspan,\n minWidth: constant(10),\n minHeight: constant(10),\n getInt: getInt\n };\n\n var getRaw$1 = function (cell, property, getter) {\n return getRaw(cell, property).fold(function () {\n return getter(cell) + 'px';\n }, function (raw) {\n return raw;\n });\n };\n var getRawW = function (cell, tableSize) {\n return getRaw$1(cell, 'width', function (e) {\n return Sizes.getPixelWidth(e, tableSize);\n });\n };\n var getRawH = function (cell) {\n return getRaw$1(cell, 'height', Sizes.getHeight);\n };\n var getWidthFrom = function (warehouse, direction, getWidth, fallback, tableSize) {\n var columns = Blocks.columns(warehouse);\n var backups = map(columns, function (cellOption) {\n return cellOption.map(direction.edge);\n });\n return map(columns, function (cellOption, c) {\n var columnCell = cellOption.filter(not(CellUtils.hasColspan));\n return columnCell.fold(function () {\n var deduced = deduce(backups, c);\n return fallback(deduced);\n }, function (cell) {\n return getWidth(cell, tableSize);\n });\n });\n };\n var getDeduced = function (deduced) {\n return deduced.map(function (d) {\n return d + 'px';\n }).getOr('');\n };\n var getRawWidths = function (warehouse, direction, tableSize) {\n return getWidthFrom(warehouse, direction, getRawW, getDeduced, tableSize);\n };\n var getPercentageWidths = function (warehouse, direction, tableSize) {\n return getWidthFrom(warehouse, direction, Sizes.getPercentageWidth, function (deduced) {\n return deduced.fold(function () {\n return tableSize.minCellWidth();\n }, function (cellWidth) {\n return cellWidth / tableSize.pixelWidth() * 100;\n });\n }, tableSize);\n };\n var getPixelWidths = function (warehouse, direction, tableSize) {\n return getWidthFrom(warehouse, direction, Sizes.getPixelWidth, function (deduced) {\n return deduced.getOrThunk(tableSize.minCellWidth);\n }, tableSize);\n };\n var getHeightFrom = function (warehouse, direction, getHeight, fallback) {\n var rows = Blocks.rows(warehouse);\n var backups = map(rows, function (cellOption) {\n return cellOption.map(direction.edge);\n });\n return map(rows, function (cellOption, c) {\n var rowCell = cellOption.filter(not(CellUtils.hasRowspan));\n return rowCell.fold(function () {\n var deduced = deduce(backups, c);\n return fallback(deduced);\n }, function (cell) {\n return getHeight(cell);\n });\n });\n };\n var getPixelHeights = function (warehouse, direction) {\n return getHeightFrom(warehouse, direction, Sizes.getHeight, function (deduced) {\n return deduced.getOrThunk(CellUtils.minHeight);\n });\n };\n var getRawHeights = function (warehouse, direction) {\n return getHeightFrom(warehouse, direction, getRawH, getDeduced);\n };\n var ColumnSizes = {\n getRawWidths: getRawWidths,\n getPixelWidths: getPixelWidths,\n getPercentageWidths: getPercentageWidths,\n getPixelHeights: getPixelHeights,\n getRawHeights: getRawHeights\n };\n\n var total = function (start, end, measures) {\n var r = 0;\n for (var i = start; i < end; i++) {\n r += measures[i] !== undefined ? measures[i] : 0;\n }\n return r;\n };\n var recalculateWidth = function (warehouse, widths) {\n var all = Warehouse.justCells(warehouse);\n return map(all, function (cell) {\n var width = total(cell.column(), cell.column() + cell.colspan(), widths);\n return {\n element: cell.element,\n width: constant(width),\n colspan: cell.colspan\n };\n });\n };\n var recalculateHeight = function (warehouse, heights) {\n var all = Warehouse.justCells(warehouse);\n return map(all, function (cell) {\n var height = total(cell.row(), cell.row() + cell.rowspan(), heights);\n return {\n element: cell.element,\n height: constant(height),\n rowspan: cell.rowspan\n };\n });\n };\n var matchRowHeight = function (warehouse, heights) {\n return map(warehouse.all(), function (row, i) {\n return {\n element: row.element,\n height: constant(heights[i])\n };\n });\n };\n var Recalculations = {\n recalculateWidth: recalculateWidth,\n recalculateHeight: recalculateHeight,\n matchRowHeight: matchRowHeight\n };\n\n var percentageSize = function (width, element) {\n var floatWidth = parseFloat(width);\n var pixelWidth = get$5(element);\n var getCellDelta = function (delta) {\n return delta / pixelWidth * 100;\n };\n var singleColumnWidth = function (w, _delta) {\n return [100 - w];\n };\n var minCellWidth = function () {\n return CellUtils.minWidth() / pixelWidth * 100;\n };\n var setTableWidth = function (table, _newWidths, delta) {\n var ratio = delta / 100;\n var change = ratio * floatWidth;\n Sizes.setPercentageWidth(table, floatWidth + change);\n };\n return {\n width: constant(floatWidth),\n pixelWidth: constant(pixelWidth),\n getWidths: ColumnSizes.getPercentageWidths,\n getCellDelta: getCellDelta,\n singleColumnWidth: singleColumnWidth,\n minCellWidth: minCellWidth,\n setElementWidth: Sizes.setPercentageWidth,\n setTableWidth: setTableWidth\n };\n };\n var pixelSize = function (width) {\n var getCellDelta = identity;\n var singleColumnWidth = function (w, delta) {\n var newNext = Math.max(CellUtils.minWidth(), w + delta);\n return [newNext - w];\n };\n var setTableWidth = function (table, newWidths, _delta) {\n var total = foldr(newWidths, function (b, a) {\n return b + a;\n }, 0);\n Sizes.setPixelWidth(table, total);\n };\n return {\n width: constant(width),\n pixelWidth: constant(width),\n getWidths: ColumnSizes.getPixelWidths,\n getCellDelta: getCellDelta,\n singleColumnWidth: singleColumnWidth,\n minCellWidth: CellUtils.minWidth,\n setElementWidth: Sizes.setPixelWidth,\n setTableWidth: setTableWidth\n };\n };\n var chooseSize = function (element, width) {\n var percentMatch = Sizes.percentageBasedSizeRegex().exec(width);\n if (percentMatch !== null) {\n return percentageSize(percentMatch[1], element);\n }\n var pixelMatch = Sizes.pixelBasedSizeRegex().exec(width);\n if (pixelMatch !== null) {\n var intWidth = parseInt(pixelMatch[1], 10);\n return pixelSize(intWidth);\n }\n var fallbackWidth = get$5(element);\n return pixelSize(fallbackWidth);\n };\n var getTableSize = function (element) {\n var width = Sizes.getRawWidth(element);\n return width.fold(function () {\n var fallbackWidth = get$5(element);\n return pixelSize(fallbackWidth);\n }, function (w) {\n return chooseSize(element, w);\n });\n };\n var TableSize = { getTableSize: getTableSize };\n\n var getWarehouse$1 = function (list) {\n return Warehouse.generate(list);\n };\n var sumUp = function (newSize) {\n return foldr(newSize, function (b, a) {\n return b + a;\n }, 0);\n };\n var getTableWarehouse = function (table) {\n var list = DetailsList.fromTable(table);\n return getWarehouse$1(list);\n };\n var adjustWidth = function (table, delta, index, direction) {\n var tableSize = TableSize.getTableSize(table);\n var step = tableSize.getCellDelta(delta);\n var warehouse = getTableWarehouse(table);\n var widths = tableSize.getWidths(warehouse, direction, tableSize);\n var deltas = Deltas.determine(widths, index, step, tableSize);\n var newWidths = map(deltas, function (dx, i) {\n return dx + widths[i];\n });\n var newSizes = Recalculations.recalculateWidth(warehouse, newWidths);\n each(newSizes, function (cell) {\n tableSize.setElementWidth(cell.element(), cell.width());\n });\n if (index === warehouse.grid().columns() - 1) {\n tableSize.setTableWidth(table, newWidths, step);\n }\n };\n var adjustHeight = function (table, delta, index, direction) {\n var warehouse = getTableWarehouse(table);\n var heights = ColumnSizes.getPixelHeights(warehouse, direction);\n var newHeights = map(heights, function (dy, i) {\n return index === i ? Math.max(delta + dy, CellUtils.minHeight()) : dy;\n });\n var newCellSizes = Recalculations.recalculateHeight(warehouse, newHeights);\n var newRowSizes = Recalculations.matchRowHeight(warehouse, newHeights);\n each(newRowSizes, function (row) {\n Sizes.setHeight(row.element(), row.height());\n });\n each(newCellSizes, function (cell) {\n Sizes.setHeight(cell.element(), cell.height());\n });\n var total = sumUp(newHeights);\n Sizes.setHeight(table, total);\n };\n var adjustWidthTo = function (table, list, direction) {\n var tableSize = TableSize.getTableSize(table);\n var warehouse = getWarehouse$1(list);\n var widths = tableSize.getWidths(warehouse, direction, tableSize);\n var newSizes = Recalculations.recalculateWidth(warehouse, widths);\n each(newSizes, function (cell) {\n tableSize.setElementWidth(cell.element(), cell.width());\n });\n if (newSizes.length > 0) {\n tableSize.setTableWidth(table, widths, tableSize.getCellDelta(0));\n }\n };\n var Adjustments = {\n adjustWidth: adjustWidth,\n adjustHeight: adjustHeight,\n adjustWidthTo: adjustWidthTo\n };\n\n var base = function (handleUnsupported, required) {\n return baseWith(handleUnsupported, required, {\n validate: isFunction,\n label: 'function'\n });\n };\n var baseWith = function (handleUnsupported, required, pred) {\n if (required.length === 0) {\n throw new Error('You must specify at least one required field.');\n }\n validateStrArr('required', required);\n checkDupes(required);\n return function (obj) {\n var keys$1 = keys(obj);\n var allReqd = forall(required, function (req) {\n return contains(keys$1, req);\n });\n if (!allReqd) {\n reqMessage(required, keys$1);\n }\n handleUnsupported(required, keys$1);\n var invalidKeys = filter(required, function (key) {\n return !pred.validate(obj[key], key);\n });\n if (invalidKeys.length > 0) {\n invalidTypeMessage(invalidKeys, pred.label);\n }\n return obj;\n };\n };\n var handleExact = function (required, keys) {\n var unsupported = filter(keys, function (key) {\n return !contains(required, key);\n });\n if (unsupported.length > 0) {\n unsuppMessage(unsupported);\n }\n };\n var exactly = function (required) {\n return base(handleExact, required);\n };\n\n var verifyGenerators = exactly([\n 'cell',\n 'row',\n 'replace',\n 'gap'\n ]);\n var elementToData = function (element) {\n var colspan = has$1(element, 'colspan') ? parseInt(get$1(element, 'colspan'), 10) : 1;\n var rowspan = has$1(element, 'rowspan') ? parseInt(get$1(element, 'rowspan'), 10) : 1;\n return {\n element: constant(element),\n colspan: constant(colspan),\n rowspan: constant(rowspan)\n };\n };\n var modification = function (generators, toData) {\n if (toData === void 0) {\n toData = elementToData;\n }\n verifyGenerators(generators);\n var position = Cell(Option.none());\n var nu = function (data) {\n return generators.cell(data);\n };\n var nuFrom = function (element) {\n var data = toData(element);\n return nu(data);\n };\n var add = function (element) {\n var replacement = nuFrom(element);\n if (position.get().isNone()) {\n position.set(Option.some(replacement));\n }\n recent = Option.some({\n item: element,\n replacement: replacement\n });\n return replacement;\n };\n var recent = Option.none();\n var getOrInit = function (element, comparator) {\n return recent.fold(function () {\n return add(element);\n }, function (p) {\n return comparator(element, p.item) ? p.replacement : add(element);\n });\n };\n return {\n getOrInit: getOrInit,\n cursor: position.get\n };\n };\n var transform = function (scope, tag) {\n return function (generators) {\n var position = Cell(Option.none());\n verifyGenerators(generators);\n var list = [];\n var find$1 = function (element, comparator) {\n return find(list, function (x) {\n return comparator(x.item, element);\n });\n };\n var makeNew = function (element) {\n var attrs = { scope: scope };\n var cell = generators.replace(element, tag, attrs);\n list.push({\n item: element,\n sub: cell\n });\n if (position.get().isNone()) {\n position.set(Option.some(cell));\n }\n return cell;\n };\n var replaceOrInit = function (element, comparator) {\n return find$1(element, comparator).fold(function () {\n return makeNew(element);\n }, function (p) {\n return comparator(element, p.item) ? p.sub : makeNew(element);\n });\n };\n return {\n replaceOrInit: replaceOrInit,\n cursor: position.get\n };\n };\n };\n var merging = function (generators) {\n verifyGenerators(generators);\n var position = Cell(Option.none());\n var combine = function (cell) {\n if (position.get().isNone()) {\n position.set(Option.some(cell));\n }\n return function () {\n var raw = generators.cell({\n element: constant(cell),\n colspan: constant(1),\n rowspan: constant(1)\n });\n remove$1(raw, 'width');\n remove$1(cell, 'width');\n return raw;\n };\n };\n return {\n combine: combine,\n cursor: position.get\n };\n };\n var Generators = {\n modification: modification,\n transform: transform,\n merging: merging\n };\n\n var blockList = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'table',\n 'thead',\n 'tfoot',\n 'tbody',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n var isList = function (universe, item) {\n var tagName = universe.property().name(item);\n return contains([\n 'ol',\n 'ul'\n ], tagName);\n };\n var isBlock = function (universe, item) {\n var tagName = universe.property().name(item);\n return contains(blockList, tagName);\n };\n var isFormatting = function (universe, item) {\n var tagName = universe.property().name(item);\n return contains([\n 'address',\n 'pre',\n 'p',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ], tagName);\n };\n var isHeading = function (universe, item) {\n var tagName = universe.property().name(item);\n return contains([\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ], tagName);\n };\n var isContainer = function (universe, item) {\n return contains([\n 'div',\n 'li',\n 'td',\n 'th',\n 'blockquote',\n 'body',\n 'caption'\n ], universe.property().name(item));\n };\n var isEmptyTag = function (universe, item) {\n return contains([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], universe.property().name(item));\n };\n var isFrame = function (universe, item) {\n return universe.property().name(item) === 'iframe';\n };\n var isInline = function (universe, item) {\n return !(isBlock(universe, item) || isEmptyTag(universe, item)) && universe.property().name(item) !== 'li';\n };\n var Structure = {\n isBlock: isBlock,\n isList: isList,\n isFormatting: isFormatting,\n isHeading: isHeading,\n isContainer: isContainer,\n isEmptyTag: isEmptyTag,\n isFrame: isFrame,\n isInline: isInline\n };\n\n var universe$1 = DomUniverse();\n var isBlock$1 = function (element) {\n return Structure.isBlock(universe$1, element);\n };\n var isList$1 = function (element) {\n return Structure.isList(universe$1, element);\n };\n var isFormatting$1 = function (element) {\n return Structure.isFormatting(universe$1, element);\n };\n var isHeading$1 = function (element) {\n return Structure.isHeading(universe$1, element);\n };\n var isContainer$1 = function (element) {\n return Structure.isContainer(universe$1, element);\n };\n var isEmptyTag$1 = function (element) {\n return Structure.isEmptyTag(universe$1, element);\n };\n var isFrame$1 = function (element) {\n return Structure.isFrame(universe$1, element);\n };\n var isInline$1 = function (element) {\n return Structure.isInline(universe$1, element);\n };\n var DomStructure = {\n isBlock: isBlock$1,\n isList: isList$1,\n isFormatting: isFormatting$1,\n isHeading: isHeading$1,\n isContainer: isContainer$1,\n isEmptyTag: isEmptyTag$1,\n isFrame: isFrame$1,\n isInline: isInline$1\n };\n\n var merge$2 = function (cells) {\n var isBr = function (el) {\n return name(el) === 'br';\n };\n var advancedBr = function (children) {\n return forall(children, function (c) {\n return isBr(c) || isText(c) && get$3(c).trim().length === 0;\n });\n };\n var isListItem = function (el) {\n return name(el) === 'li' || ancestor(el, DomStructure.isList).isSome();\n };\n var siblingIsBlock = function (el) {\n return nextSibling(el).map(function (rightSibling) {\n if (DomStructure.isBlock(rightSibling)) {\n return true;\n }\n if (DomStructure.isEmptyTag(rightSibling)) {\n return name(rightSibling) === 'img' ? false : true;\n }\n return false;\n }).getOr(false);\n };\n var markCell = function (cell) {\n return last$1(cell).bind(function (rightEdge) {\n var rightSiblingIsBlock = siblingIsBlock(rightEdge);\n return parent(rightEdge).map(function (parent) {\n return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || DomStructure.isBlock(parent) && !eq(cell, parent) ? [] : [Element.fromTag('br')];\n });\n }).getOr([]);\n };\n var markContent = function () {\n var content = bind(cells, function (cell) {\n var children$1 = children(cell);\n return advancedBr(children$1) ? [] : children$1.concat(markCell(cell));\n });\n return content.length === 0 ? [Element.fromTag('br')] : content;\n };\n var contents = markContent();\n empty(cells[0]);\n append$1(cells[0], contents);\n };\n var TableContent = { merge: merge$2 };\n\n var prune = function (table) {\n var cells = TableLookup.cells(table);\n if (cells.length === 0) {\n remove$2(table);\n }\n };\n var outcome = Immutable('grid', 'cursor');\n var elementFromGrid = function (grid, row, column) {\n return findIn(grid, row, column).orThunk(function () {\n return findIn(grid, 0, 0);\n });\n };\n var findIn = function (grid, row, column) {\n return Option.from(grid[row]).bind(function (r) {\n return Option.from(r.cells()[column]).bind(function (c) {\n return Option.from(c.element());\n });\n });\n };\n var bundle = function (grid, row, column) {\n return outcome(grid, findIn(grid, row, column));\n };\n var uniqueRows = function (details) {\n return foldl(details, function (rest, detail) {\n return exists(rest, function (currentDetail) {\n return currentDetail.row() === detail.row();\n }) ? rest : rest.concat([detail]);\n }, []).sort(function (detailA, detailB) {\n return detailA.row() - detailB.row();\n });\n };\n var uniqueColumns = function (details) {\n return foldl(details, function (rest, detail) {\n return exists(rest, function (currentDetail) {\n return currentDetail.column() === detail.column();\n }) ? rest : rest.concat([detail]);\n }, []).sort(function (detailA, detailB) {\n return detailA.column() - detailB.column();\n });\n };\n var insertRowBefore = function (grid, detail, comparator, genWrappers) {\n var example = detail.row();\n var targetIndex = detail.row();\n var newGrid = ModificationOperations.insertRowAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);\n return bundle(newGrid, targetIndex, detail.column());\n };\n var insertRowsBefore = function (grid, details, comparator, genWrappers) {\n var example = details[0].row();\n var targetIndex = details[0].row();\n var rows = uniqueRows(details);\n var newGrid = foldl(rows, function (newG, _row) {\n return ModificationOperations.insertRowAt(newG, targetIndex, example, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, targetIndex, details[0].column());\n };\n var insertRowAfter = function (grid, detail, comparator, genWrappers) {\n var example = detail.row();\n var targetIndex = detail.row() + detail.rowspan();\n var newGrid = ModificationOperations.insertRowAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);\n return bundle(newGrid, targetIndex, detail.column());\n };\n var insertRowsAfter = function (grid, details, comparator, genWrappers) {\n var rows = uniqueRows(details);\n var example = rows[rows.length - 1].row();\n var targetIndex = rows[rows.length - 1].row() + rows[rows.length - 1].rowspan();\n var newGrid = foldl(rows, function (newG, _row) {\n return ModificationOperations.insertRowAt(newG, targetIndex, example, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, targetIndex, details[0].column());\n };\n var insertColumnBefore = function (grid, detail, comparator, genWrappers) {\n var example = detail.column();\n var targetIndex = detail.column();\n var newGrid = ModificationOperations.insertColumnAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);\n return bundle(newGrid, detail.row(), targetIndex);\n };\n var insertColumnsBefore = function (grid, details, comparator, genWrappers) {\n var columns = uniqueColumns(details);\n var example = columns[0].column();\n var targetIndex = columns[0].column();\n var newGrid = foldl(columns, function (newG, _row) {\n return ModificationOperations.insertColumnAt(newG, targetIndex, example, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, details[0].row(), targetIndex);\n };\n var insertColumnAfter = function (grid, detail, comparator, genWrappers) {\n var example = detail.column();\n var targetIndex = detail.column() + detail.colspan();\n var newGrid = ModificationOperations.insertColumnAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);\n return bundle(newGrid, detail.row(), targetIndex);\n };\n var insertColumnsAfter = function (grid, details, comparator, genWrappers) {\n var example = details[details.length - 1].column();\n var targetIndex = details[details.length - 1].column() + details[details.length - 1].colspan();\n var columns = uniqueColumns(details);\n var newGrid = foldl(columns, function (newG, _row) {\n return ModificationOperations.insertColumnAt(newG, targetIndex, example, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, details[0].row(), targetIndex);\n };\n var makeRowHeader = function (grid, detail, comparator, genWrappers) {\n var newGrid = TransformOperations.replaceRow(grid, detail.row(), comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var makeColumnHeader = function (grid, detail, comparator, genWrappers) {\n var newGrid = TransformOperations.replaceColumn(grid, detail.column(), comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var unmakeRowHeader = function (grid, detail, comparator, genWrappers) {\n var newGrid = TransformOperations.replaceRow(grid, detail.row(), comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var unmakeColumnHeader = function (grid, detail, comparator, genWrappers) {\n var newGrid = TransformOperations.replaceColumn(grid, detail.column(), comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var splitCellIntoColumns$1 = function (grid, detail, comparator, genWrappers) {\n var newGrid = ModificationOperations.splitCellIntoColumns(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var splitCellIntoRows$1 = function (grid, detail, comparator, genWrappers) {\n var newGrid = ModificationOperations.splitCellIntoRows(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var eraseColumns = function (grid, details, _comparator, _genWrappers) {\n var columns = uniqueColumns(details);\n var newGrid = ModificationOperations.deleteColumnsAt(grid, columns[0].column(), columns[columns.length - 1].column());\n var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());\n return outcome(newGrid, cursor);\n };\n var eraseRows = function (grid, details, _comparator, _genWrappers) {\n var rows = uniqueRows(details);\n var newGrid = ModificationOperations.deleteRowsAt(grid, rows[0].row(), rows[rows.length - 1].row());\n var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());\n return outcome(newGrid, cursor);\n };\n var mergeCells = function (grid, mergable, comparator, _genWrappers) {\n var cells = mergable.cells();\n TableContent.merge(cells);\n var newGrid = MergingOperations.merge(grid, mergable.bounds(), comparator, constant(cells[0]));\n return outcome(newGrid, Option.from(cells[0]));\n };\n var unmergeCells = function (grid, unmergable, comparator, genWrappers) {\n var newGrid = foldr(unmergable, function (b, cell) {\n return MergingOperations.unmerge(b, cell, comparator, genWrappers.combine(cell));\n }, grid);\n return outcome(newGrid, Option.from(unmergable[0]));\n };\n var pasteCells = function (grid, pasteDetails, comparator, _genWrappers) {\n var gridify = function (table, generators) {\n var list = DetailsList.fromTable(table);\n var wh = Warehouse.generate(list);\n return Transitions.toGrid(wh, generators, true);\n };\n var gridB = gridify(pasteDetails.clipboard(), pasteDetails.generators());\n var startAddress = address(pasteDetails.row(), pasteDetails.column());\n var mergedGrid = TableMerge.merge(startAddress, grid, gridB, pasteDetails.generators(), comparator);\n return mergedGrid.fold(function () {\n return outcome(grid, Option.some(pasteDetails.element()));\n }, function (nuGrid) {\n var cursor = elementFromGrid(nuGrid, pasteDetails.row(), pasteDetails.column());\n return outcome(nuGrid, cursor);\n });\n };\n var gridifyRows = function (rows, generators, example) {\n var pasteDetails = DetailsList.fromPastedRows(rows, example);\n var wh = Warehouse.generate(pasteDetails);\n return Transitions.toGrid(wh, generators, true);\n };\n var pasteRowsBefore = function (grid, pasteDetails, comparator, _genWrappers) {\n var example = grid[pasteDetails.cells[0].row()];\n var index = pasteDetails.cells[0].row();\n var gridB = gridifyRows(pasteDetails.clipboard(), pasteDetails.generators(), example);\n var mergedGrid = TableMerge.insert(index, grid, gridB, pasteDetails.generators(), comparator);\n var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());\n return outcome(mergedGrid, cursor);\n };\n var pasteRowsAfter = function (grid, pasteDetails, comparator, _genWrappers) {\n var example = grid[pasteDetails.cells[0].row()];\n var index = pasteDetails.cells[pasteDetails.cells.length - 1].row() + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan();\n var gridB = gridifyRows(pasteDetails.clipboard(), pasteDetails.generators(), example);\n var mergedGrid = TableMerge.insert(index, grid, gridB, pasteDetails.generators(), comparator);\n var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());\n return outcome(mergedGrid, cursor);\n };\n var resize = Adjustments.adjustWidthTo;\n var TableOperations = {\n insertRowBefore: run(insertRowBefore, onCell, noop, noop, Generators.modification),\n insertRowsBefore: run(insertRowsBefore, onCells, noop, noop, Generators.modification),\n insertRowAfter: run(insertRowAfter, onCell, noop, noop, Generators.modification),\n insertRowsAfter: run(insertRowsAfter, onCells, noop, noop, Generators.modification),\n insertColumnBefore: run(insertColumnBefore, onCell, resize, noop, Generators.modification),\n insertColumnsBefore: run(insertColumnsBefore, onCells, resize, noop, Generators.modification),\n insertColumnAfter: run(insertColumnAfter, onCell, resize, noop, Generators.modification),\n insertColumnsAfter: run(insertColumnsAfter, onCells, resize, noop, Generators.modification),\n splitCellIntoColumns: run(splitCellIntoColumns$1, onCell, resize, noop, Generators.modification),\n splitCellIntoRows: run(splitCellIntoRows$1, onCell, noop, noop, Generators.modification),\n eraseColumns: run(eraseColumns, onCells, resize, prune, Generators.modification),\n eraseRows: run(eraseRows, onCells, noop, prune, Generators.modification),\n makeColumnHeader: run(makeColumnHeader, onCell, noop, noop, Generators.transform('row', 'th')),\n unmakeColumnHeader: run(unmakeColumnHeader, onCell, noop, noop, Generators.transform(null, 'td')),\n makeRowHeader: run(makeRowHeader, onCell, noop, noop, Generators.transform('col', 'th')),\n unmakeRowHeader: run(unmakeRowHeader, onCell, noop, noop, Generators.transform(null, 'td')),\n mergeCells: run(mergeCells, onMergable, noop, noop, Generators.merging),\n unmergeCells: run(unmergeCells, onUnmergable, resize, noop, Generators.merging),\n pasteCells: run(pasteCells, onPaste, resize, noop, Generators.modification),\n pasteRowsBefore: run(pasteRowsBefore, onPasteRows, noop, noop, Generators.modification),\n pasteRowsAfter: run(pasteRowsAfter, onPasteRows, noop, noop, Generators.modification)\n };\n\n var getBody$1 = function (editor) {\n return Element.fromDom(editor.getBody());\n };\n var getPixelWidth$1 = function (elm) {\n return elm.getBoundingClientRect().width;\n };\n var getPixelHeight = function (elm) {\n return elm.getBoundingClientRect().height;\n };\n var getIsRoot = function (editor) {\n return function (element) {\n return eq(element, getBody$1(editor));\n };\n };\n var removePxSuffix = function (size) {\n return size ? size.replace(/px$/, '') : '';\n };\n var addSizeSuffix = function (size) {\n if (/^[0-9]+$/.test(size)) {\n size += 'px';\n }\n return size;\n };\n var removeDataStyle = function (table) {\n var dataStyleCells = descendants$1(table, 'td[data-mce-style],th[data-mce-style]');\n remove(table, 'data-mce-style');\n each(dataStyleCells, function (cell) {\n remove(cell, 'data-mce-style');\n });\n };\n\n var getDirection = function (element) {\n return get$2(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var ltr$1 = { isRtl: constant(false) };\n var rtl$1 = { isRtl: constant(true) };\n var directionAt = function (element) {\n var dir = getDirection(element);\n return dir === 'rtl' ? rtl$1 : ltr$1;\n };\n var Direction = { directionAt: directionAt };\n\n var defaultTableToolbar = 'tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol';\n var defaultStyles = {\n 'border-collapse': 'collapse',\n 'width': '100%'\n };\n var defaultAttributes = { border: '1' };\n var getDefaultAttributes = function (editor) {\n return editor.getParam('table_default_attributes', defaultAttributes, 'object');\n };\n var getDefaultStyles = function (editor) {\n return editor.getParam('table_default_styles', defaultStyles, 'object');\n };\n var hasTableResizeBars = function (editor) {\n return editor.getParam('table_resize_bars', true, 'boolean');\n };\n var hasTabNavigation = function (editor) {\n return editor.getParam('table_tab_navigation', true, 'boolean');\n };\n var hasAdvancedCellTab = function (editor) {\n return editor.getParam('table_cell_advtab', true, 'boolean');\n };\n var hasAdvancedRowTab = function (editor) {\n return editor.getParam('table_row_advtab', true, 'boolean');\n };\n var hasAdvancedTableTab = function (editor) {\n return editor.getParam('table_advtab', true, 'boolean');\n };\n var hasAppearanceOptions = function (editor) {\n return editor.getParam('table_appearance_options', true, 'boolean');\n };\n var hasTableGrid = function (editor) {\n return editor.getParam('table_grid', true, 'boolean');\n };\n var shouldStyleWithCss = function (editor) {\n return editor.getParam('table_style_by_css', false, 'boolean');\n };\n var getCellClassList = function (editor) {\n return editor.getParam('table_cell_class_list', [], 'array');\n };\n var getRowClassList = function (editor) {\n return editor.getParam('table_row_class_list', [], 'array');\n };\n var getTableClassList = function (editor) {\n return editor.getParam('table_class_list', [], 'array');\n };\n var isPercentagesForced = function (editor) {\n return editor.getParam('table_responsive_width') === true;\n };\n var isPixelsForced = function (editor) {\n return editor.getParam('table_responsive_width') === false;\n };\n var getToolbar = function (editor) {\n return editor.getParam('table_toolbar', defaultTableToolbar);\n };\n var getCloneElements = function (editor) {\n var cloneElements = editor.getParam('table_clone_elements');\n if (isString(cloneElements)) {\n return Option.some(cloneElements.split(/[ ,]/));\n } else if (Array.isArray(cloneElements)) {\n return Option.some(cloneElements);\n } else {\n return Option.none();\n }\n };\n var hasObjectResizing = function (editor) {\n var objectResizing = editor.getParam('object_resizing', true);\n return isString(objectResizing) ? objectResizing === 'table' : objectResizing;\n };\n\n var fireNewRow = function (editor, row) {\n return editor.fire('newrow', { node: row });\n };\n var fireNewCell = function (editor, cell) {\n return editor.fire('newcell', { node: cell });\n };\n var fireObjectResizeStart = function (editor, target, width, height) {\n editor.fire('ObjectResizeStart', {\n target: target,\n width: width,\n height: height\n });\n };\n var fireObjectResized = function (editor, target, width, height) {\n editor.fire('ObjectResized', {\n target: target,\n width: width,\n height: height\n });\n };\n var fireTableSelectionChange = function (editor, cells, start, finish, otherCells) {\n editor.fire('TableSelectionChange', {\n cells: cells,\n start: start,\n finish: finish,\n otherCells: otherCells\n });\n };\n var fireTableSelectionClear = function (editor) {\n editor.fire('TableSelectionClear');\n };\n\n var TableActions = function (editor, lazyWire) {\n var isTableBody = function (editor) {\n return name(getBody$1(editor)) === 'table';\n };\n var lastRowGuard = function (table) {\n var size = TableGridSize.getGridSize(table);\n return isTableBody(editor) === false || size.rows() > 1;\n };\n var lastColumnGuard = function (table) {\n var size = TableGridSize.getGridSize(table);\n return isTableBody(editor) === false || size.columns() > 1;\n };\n var cloneFormats = getCloneElements(editor);\n var execute = function (operation, guard, mutate, lazyWire) {\n return function (table, target) {\n removeDataStyle(table);\n var wire = lazyWire();\n var doc = Element.fromDom(editor.getDoc());\n var direction = TableDirection(Direction.directionAt);\n var generators = TableFill.cellOperations(mutate, doc, cloneFormats);\n return guard(table) ? operation(wire, table, target, generators, direction).bind(function (result) {\n each(result.newRows(), function (row) {\n fireNewRow(editor, row.dom());\n });\n each(result.newCells(), function (cell) {\n fireNewCell(editor, cell.dom());\n });\n return result.cursor().map(function (cell) {\n var rng = editor.dom.createRng();\n rng.setStart(cell.dom(), 0);\n rng.setEnd(cell.dom(), 0);\n return rng;\n });\n }) : Option.none();\n };\n };\n var deleteRow = execute(TableOperations.eraseRows, lastRowGuard, noop, lazyWire);\n var deleteColumn = execute(TableOperations.eraseColumns, lastColumnGuard, noop, lazyWire);\n var insertRowsBefore = execute(TableOperations.insertRowsBefore, always, noop, lazyWire);\n var insertRowsAfter = execute(TableOperations.insertRowsAfter, always, noop, lazyWire);\n var insertColumnsBefore = execute(TableOperations.insertColumnsBefore, always, CellMutations.halve, lazyWire);\n var insertColumnsAfter = execute(TableOperations.insertColumnsAfter, always, CellMutations.halve, lazyWire);\n var mergeCells = execute(TableOperations.mergeCells, always, noop, lazyWire);\n var unmergeCells = execute(TableOperations.unmergeCells, always, noop, lazyWire);\n var pasteRowsBefore = execute(TableOperations.pasteRowsBefore, always, noop, lazyWire);\n var pasteRowsAfter = execute(TableOperations.pasteRowsAfter, always, noop, lazyWire);\n var pasteCells = execute(TableOperations.pasteCells, always, noop, lazyWire);\n return {\n deleteRow: deleteRow,\n deleteColumn: deleteColumn,\n insertRowsBefore: insertRowsBefore,\n insertRowsAfter: insertRowsAfter,\n insertColumnsBefore: insertColumnsBefore,\n insertColumnsAfter: insertColumnsAfter,\n mergeCells: mergeCells,\n unmergeCells: unmergeCells,\n pasteRowsBefore: pasteRowsBefore,\n pasteRowsAfter: pasteRowsAfter,\n pasteCells: pasteCells\n };\n };\n\n var copyRows = function (table, target, generators) {\n var list = DetailsList.fromTable(table);\n var house = Warehouse.generate(list);\n var details = onCells(house, target);\n return details.map(function (selectedCells) {\n var grid = Transitions.toGrid(house, generators, false);\n var slicedGrid = grid.slice(selectedCells[0].row(), selectedCells[selectedCells.length - 1].row() + selectedCells[selectedCells.length - 1].rowspan());\n var slicedDetails = toDetailList(slicedGrid, generators);\n return Redraw.copy(slicedDetails);\n });\n };\n var CopyRows = { copyRows: copyRows };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var getTDTHOverallStyle = function (dom, elm, name) {\n var cells = dom.select('td,th', elm);\n var firstChildStyle;\n var checkChildren = function (firstChildStyle, elms) {\n for (var i = 0; i < elms.length; i++) {\n var currentStyle = dom.getStyle(elms[i], name);\n if (typeof firstChildStyle === 'undefined') {\n firstChildStyle = currentStyle;\n }\n if (firstChildStyle !== currentStyle) {\n return '';\n }\n }\n return firstChildStyle;\n };\n firstChildStyle = checkChildren(firstChildStyle, cells);\n return firstChildStyle;\n };\n var applyAlign = function (editor, elm, name) {\n if (name) {\n editor.formatter.apply('align' + name, {}, elm);\n }\n };\n var applyVAlign = function (editor, elm, name) {\n if (name) {\n editor.formatter.apply('valign' + name, {}, elm);\n }\n };\n var unApplyAlign = function (editor, elm) {\n global$1.each('left center right'.split(' '), function (name) {\n editor.formatter.remove('align' + name, {}, elm);\n });\n };\n var unApplyVAlign = function (editor, elm) {\n global$1.each('top middle bottom'.split(' '), function (name) {\n editor.formatter.remove('valign' + name, {}, elm);\n });\n };\n var Styles$1 = {\n applyAlign: applyAlign,\n applyVAlign: applyVAlign,\n unApplyAlign: unApplyAlign,\n unApplyVAlign: unApplyVAlign,\n getTDTHOverallStyle: getTDTHOverallStyle\n };\n\n var buildListItems = function (inputList, itemCallback, startItems) {\n var appendItems = function (values, output) {\n output = output || [];\n global$1.each(values, function (item) {\n var menuItem = { text: item.text || item.title };\n if (item.menu) {\n menuItem.menu = appendItems(item.menu);\n } else {\n menuItem.value = item.value;\n if (itemCallback) {\n itemCallback(menuItem);\n }\n }\n output.push(menuItem);\n });\n return output;\n };\n return appendItems(inputList, startItems || []);\n };\n var extractAdvancedStyles = function (dom, elm) {\n var rgbToHex = function (value) {\n return startsWith(value, 'rgb') ? dom.toHex(value) : value;\n };\n var borderWidth = getRaw(Element.fromDom(elm), 'border-width').getOr('');\n var borderStyle = getRaw(Element.fromDom(elm), 'border-style').getOr('');\n var borderColor = getRaw(Element.fromDom(elm), 'border-color').map(rgbToHex).getOr('');\n var bgColor = getRaw(Element.fromDom(elm), 'background-color').map(rgbToHex).getOr('');\n return {\n borderwidth: borderWidth,\n borderstyle: borderStyle,\n bordercolor: borderColor,\n backgroundcolor: bgColor\n };\n };\n var getSharedValues = function (data) {\n var baseData = data[0];\n var comparisonData = data.slice(1);\n var keys$1 = keys(baseData);\n each(comparisonData, function (items) {\n each(keys$1, function (key) {\n each$1(items, function (itemValue, itemKey) {\n var comparisonValue = baseData[key];\n if (comparisonValue !== '' && key === itemKey) {\n if (comparisonValue !== itemValue) {\n baseData[key] = '';\n }\n }\n });\n });\n });\n return baseData;\n };\n var getAdvancedTab = function (dialogName) {\n var advTabItems = [\n {\n name: 'borderstyle',\n type: 'selectbox',\n label: 'Border style',\n items: [\n {\n text: 'Select...',\n value: ''\n },\n {\n text: 'Solid',\n value: 'solid'\n },\n {\n text: 'Dotted',\n value: 'dotted'\n },\n {\n text: 'Dashed',\n value: 'dashed'\n },\n {\n text: 'Double',\n value: 'double'\n },\n {\n text: 'Groove',\n value: 'groove'\n },\n {\n text: 'Ridge',\n value: 'ridge'\n },\n {\n text: 'Inset',\n value: 'inset'\n },\n {\n text: 'Outset',\n value: 'outset'\n },\n {\n text: 'None',\n value: 'none'\n },\n {\n text: 'Hidden',\n value: 'hidden'\n }\n ]\n },\n {\n name: 'bordercolor',\n type: 'colorinput',\n label: 'Border color'\n },\n {\n name: 'backgroundcolor',\n type: 'colorinput',\n label: 'Background color'\n }\n ];\n var borderWidth = {\n name: 'borderwidth',\n type: 'input',\n label: 'Border width'\n };\n var items = dialogName === 'cell' ? [borderWidth].concat(advTabItems) : advTabItems;\n return {\n title: 'Advanced',\n name: 'advanced',\n items: items\n };\n };\n var getAlignment = function (alignments, formatName, dataName, editor, elm) {\n var alignmentData = {};\n global$1.each(alignments.split(' '), function (name) {\n if (editor.formatter.matchNode(elm, formatName + name)) {\n alignmentData[dataName] = name;\n }\n });\n if (!alignmentData[dataName]) {\n alignmentData[dataName] = '';\n }\n return alignmentData;\n };\n var getHAlignment = curry(getAlignment, 'left center right');\n var getVAlignment = curry(getAlignment, 'top middle bottom');\n var extractDataFromSettings = function (editor, hasAdvTableTab) {\n var style = getDefaultStyles(editor);\n var attrs = getDefaultAttributes(editor);\n var extractAdvancedStyleData = function (dom) {\n var rgbToHex = function (value) {\n return startsWith(value, 'rgb') ? dom.toHex(value) : value;\n };\n var borderStyle = get(style, 'border-style').getOr('');\n var borderColor = get(style, 'border-color').getOr('');\n var bgColor = get(style, 'background-color').getOr('');\n return {\n borderstyle: borderStyle,\n bordercolor: rgbToHex(borderColor),\n backgroundcolor: rgbToHex(bgColor)\n };\n };\n var defaultData = {\n height: '',\n width: '100%',\n cellspacing: '',\n cellpadding: '',\n caption: false,\n class: '',\n align: '',\n border: ''\n };\n var getBorder = function () {\n var borderWidth = style['border-width'];\n if (shouldStyleWithCss(editor) && borderWidth) {\n return { border: borderWidth };\n }\n return get(attrs, 'border').fold(function () {\n return {};\n }, function (border) {\n return { border: border };\n });\n };\n var dom = editor.dom;\n var advStyle = hasAdvTableTab ? extractAdvancedStyleData(dom) : {};\n var getCellPaddingCellSpacing = function () {\n var spacing = get(style, 'border-spacing').or(get(attrs, 'cellspacing')).fold(function () {\n return {};\n }, function (cellspacing) {\n return { cellspacing: cellspacing };\n });\n var padding = get(style, 'border-padding').or(get(attrs, 'cellpadding')).fold(function () {\n return {};\n }, function (cellpadding) {\n return { cellpadding: cellpadding };\n });\n return __assign(__assign({}, spacing), padding);\n };\n var data = __assign(__assign(__assign(__assign(__assign(__assign({}, defaultData), style), attrs), advStyle), getBorder()), getCellPaddingCellSpacing());\n return data;\n };\n var extractDataFromTableElement = function (editor, elm, hasAdvTableTab) {\n var getBorder = function (dom, elm) {\n var optBorderWidth = getRaw(Element.fromDom(elm), 'border-width');\n if (shouldStyleWithCss(editor) && optBorderWidth.isSome()) {\n return optBorderWidth.getOr('');\n }\n return dom.getAttrib(elm, 'border') || Styles$1.getTDTHOverallStyle(editor.dom, elm, 'border-width') || Styles$1.getTDTHOverallStyle(editor.dom, elm, 'border');\n };\n var dom = editor.dom;\n var data = __assign(__assign({\n width: dom.getStyle(elm, 'width') || dom.getAttrib(elm, 'width'),\n height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),\n cellspacing: dom.getStyle(elm, 'border-spacing') || dom.getAttrib(elm, 'cellspacing'),\n cellpadding: dom.getAttrib(elm, 'cellpadding') || Styles$1.getTDTHOverallStyle(editor.dom, elm, 'padding'),\n border: getBorder(dom, elm),\n caption: !!dom.select('caption', elm)[0],\n class: dom.getAttrib(elm, 'class', '')\n }, getHAlignment('align', 'align', editor, elm)), hasAdvTableTab ? extractAdvancedStyles(dom, elm) : {});\n return data;\n };\n var extractDataFromRowElement = function (editor, elm, hasAdvancedRowTab) {\n var dom = editor.dom;\n var data = __assign(__assign({\n height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),\n scope: dom.getAttrib(elm, 'scope'),\n class: dom.getAttrib(elm, 'class', ''),\n align: '',\n type: elm.parentNode.nodeName.toLowerCase()\n }, getHAlignment('align', 'align', editor, elm)), hasAdvancedRowTab ? extractAdvancedStyles(dom, elm) : {});\n return data;\n };\n var extractDataFromCellElement = function (editor, elm, hasAdvancedCellTab) {\n var dom = editor.dom;\n var data = __assign(__assign(__assign({\n width: dom.getStyle(elm, 'width') || dom.getAttrib(elm, 'width'),\n height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),\n scope: dom.getAttrib(elm, 'scope'),\n celltype: elm.nodeName.toLowerCase(),\n class: dom.getAttrib(elm, 'class', '')\n }, getHAlignment('align', 'halign', editor, elm)), getVAlignment('valign', 'valign', editor, elm)), hasAdvancedCellTab ? extractAdvancedStyles(dom, elm) : {});\n return data;\n };\n var Helpers = {\n buildListItems: buildListItems,\n extractAdvancedStyles: extractAdvancedStyles,\n getSharedValues: getSharedValues,\n getAdvancedTab: getAdvancedTab,\n extractDataFromTableElement: extractDataFromTableElement,\n extractDataFromRowElement: extractDataFromRowElement,\n extractDataFromCellElement: extractDataFromCellElement,\n extractDataFromSettings: extractDataFromSettings\n };\n\n var getClassList = function (editor) {\n var rowClassList = getCellClassList(editor);\n var classes = Helpers.buildListItems(rowClassList, function (item) {\n if (item.value) {\n item.textStyle = function () {\n return editor.formatter.getCssText({\n block: 'tr',\n classes: [item.value]\n });\n };\n }\n });\n if (rowClassList.length > 0) {\n return Option.some({\n name: 'class',\n type: 'selectbox',\n label: 'Class',\n items: classes\n });\n }\n return Option.none();\n };\n var children$3 = [\n {\n name: 'width',\n type: 'input',\n label: 'Width'\n },\n {\n name: 'height',\n type: 'input',\n label: 'Height'\n },\n {\n name: 'celltype',\n type: 'selectbox',\n label: 'Cell type',\n items: [\n {\n text: 'Cell',\n value: 'td'\n },\n {\n text: 'Header cell',\n value: 'th'\n }\n ]\n },\n {\n name: 'scope',\n type: 'selectbox',\n label: 'Scope',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Row',\n value: 'row'\n },\n {\n text: 'Column',\n value: 'col'\n },\n {\n text: 'Row group',\n value: 'rowgroup'\n },\n {\n text: 'Column group',\n value: 'colgroup'\n }\n ]\n },\n {\n name: 'halign',\n type: 'selectbox',\n label: 'H Align',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Left',\n value: 'left'\n },\n {\n text: 'Center',\n value: 'center'\n },\n {\n text: 'Right',\n value: 'right'\n }\n ]\n },\n {\n name: 'valign',\n type: 'selectbox',\n label: 'V Align',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Top',\n value: 'top'\n },\n {\n text: 'Middle',\n value: 'middle'\n },\n {\n text: 'Bottom',\n value: 'bottom'\n }\n ]\n }\n ];\n var getItems = function (editor) {\n return getClassList(editor).fold(function () {\n return children$3;\n }, function (classlist) {\n return children$3.concat(classlist);\n });\n };\n var CellDialogGeneralTab = { getItems: getItems };\n\n var normal = function (dom, node) {\n var setAttrib = function (attr, value) {\n dom.setAttrib(node, attr, value);\n };\n var setStyle = function (prop, value) {\n dom.setStyle(node, prop, value);\n };\n return {\n setAttrib: setAttrib,\n setStyle: setStyle\n };\n };\n var ifTruthy = function (dom, node) {\n var setAttrib = function (attr, value) {\n if (value) {\n dom.setAttrib(node, attr, value);\n }\n };\n var setStyle = function (prop, value) {\n if (value) {\n dom.setStyle(node, prop, value);\n }\n };\n return {\n setAttrib: setAttrib,\n setStyle: setStyle\n };\n };\n var DomModifier = {\n normal: normal,\n ifTruthy: ifTruthy\n };\n\n var updateSimpleProps = function (modifiers, data) {\n modifiers.setAttrib('scope', data.scope);\n modifiers.setAttrib('class', data.class);\n modifiers.setStyle('width', addSizeSuffix(data.width));\n modifiers.setStyle('height', addSizeSuffix(data.height));\n };\n var updateAdvancedProps = function (modifiers, data) {\n modifiers.setStyle('background-color', data.backgroundcolor);\n modifiers.setStyle('border-color', data.bordercolor);\n modifiers.setStyle('border-style', data.borderstyle);\n modifiers.setStyle('border-width', addSizeSuffix(data.borderwidth));\n };\n var applyToSingle = function (editor, cells, data) {\n var dom = editor.dom;\n var cellElm = data.celltype && cells[0].nodeName.toLowerCase() !== data.celltype ? dom.rename(cells[0], data.celltype) : cells[0];\n var modifiers = DomModifier.normal(dom, cellElm);\n updateSimpleProps(modifiers, data);\n if (hasAdvancedCellTab(editor)) {\n updateAdvancedProps(modifiers, data);\n }\n Styles$1.unApplyAlign(editor, cellElm);\n Styles$1.unApplyVAlign(editor, cellElm);\n if (data.halign) {\n Styles$1.applyAlign(editor, cellElm, data.halign);\n }\n if (data.valign) {\n Styles$1.applyVAlign(editor, cellElm, data.valign);\n }\n };\n var applyToMultiple = function (editor, cells, data) {\n var dom = editor.dom;\n global$1.each(cells, function (cellElm) {\n if (data.celltype && cellElm.nodeName.toLowerCase() !== data.celltype) {\n cellElm = dom.rename(cellElm, data.celltype);\n }\n var modifiers = DomModifier.ifTruthy(dom, cellElm);\n updateSimpleProps(modifiers, data);\n if (hasAdvancedCellTab(editor)) {\n updateAdvancedProps(modifiers, data);\n }\n if (data.halign) {\n Styles$1.applyAlign(editor, cellElm, data.halign);\n }\n if (data.valign) {\n Styles$1.applyVAlign(editor, cellElm, data.valign);\n }\n });\n };\n var onSubmitCellForm = function (editor, cells, api) {\n var data = api.getData();\n api.close();\n editor.undoManager.transact(function () {\n var applicator = cells.length === 1 ? applyToSingle : applyToMultiple;\n applicator(editor, cells, data);\n editor.focus();\n });\n };\n var open = function (editor) {\n var cellElm, cells = [];\n cells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]');\n cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th');\n if (!cells.length && cellElm) {\n cells.push(cellElm);\n }\n cellElm = cellElm || cells[0];\n if (!cellElm) {\n return;\n }\n var cellsData = global$1.map(cells, function (cellElm) {\n return Helpers.extractDataFromCellElement(editor, cellElm, hasAdvancedCellTab(editor));\n });\n var data = Helpers.getSharedValues(cellsData);\n var dialogTabPanel = {\n type: 'tabpanel',\n tabs: [\n {\n title: 'General',\n name: 'general',\n items: CellDialogGeneralTab.getItems(editor)\n },\n Helpers.getAdvancedTab('cell')\n ]\n };\n var dialogPanel = {\n type: 'panel',\n items: [{\n type: 'grid',\n columns: 2,\n items: CellDialogGeneralTab.getItems(editor)\n }]\n };\n editor.windowManager.open({\n title: 'Cell Properties',\n size: 'normal',\n body: hasAdvancedCellTab(editor) ? dialogTabPanel : dialogPanel,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: data,\n onSubmit: curry(onSubmitCellForm, editor, cells)\n });\n };\n var CellDialog = { open: open };\n\n var getClassList$1 = function (editor) {\n var rowClassList = getRowClassList(editor);\n var classes = Helpers.buildListItems(rowClassList, function (item) {\n if (item.value) {\n item.textStyle = function () {\n return editor.formatter.getCssText({\n block: 'tr',\n classes: [item.value]\n });\n };\n }\n });\n if (rowClassList.length > 0) {\n return Option.some({\n name: 'class',\n type: 'selectbox',\n label: 'Class',\n items: classes\n });\n }\n return Option.none();\n };\n var formChildren = [\n {\n type: 'selectbox',\n name: 'type',\n label: 'Row type',\n items: [\n {\n text: 'Header',\n value: 'thead'\n },\n {\n text: 'Body',\n value: 'tbody'\n },\n {\n text: 'Footer',\n value: 'tfoot'\n }\n ]\n },\n {\n type: 'selectbox',\n name: 'align',\n label: 'Alignment',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Left',\n value: 'left'\n },\n {\n text: 'Center',\n value: 'center'\n },\n {\n text: 'Right',\n value: 'right'\n }\n ]\n },\n {\n label: 'Height',\n name: 'height',\n type: 'input'\n }\n ];\n var getItems$1 = function (editor) {\n return getClassList$1(editor).fold(function () {\n return formChildren;\n }, function (classes) {\n return formChildren.concat(classes);\n });\n };\n var RowDialogGeneralTab = { getItems: getItems$1 };\n\n var switchRowType = function (dom, rowElm, toType) {\n var tableElm = dom.getParent(rowElm, 'table');\n var oldParentElm = rowElm.parentNode;\n var parentElm = dom.select(toType, tableElm)[0];\n if (!parentElm) {\n parentElm = dom.create(toType);\n if (tableElm.firstChild) {\n if (tableElm.firstChild.nodeName === 'CAPTION') {\n dom.insertAfter(parentElm, tableElm.firstChild);\n } else {\n tableElm.insertBefore(parentElm, tableElm.firstChild);\n }\n } else {\n tableElm.appendChild(parentElm);\n }\n }\n parentElm.appendChild(rowElm);\n if (!oldParentElm.hasChildNodes()) {\n dom.remove(oldParentElm);\n }\n };\n var updateAdvancedProps$1 = function (modifier, data) {\n modifier.setStyle('background-color', data.backgroundcolor);\n modifier.setStyle('border-color', data.bordercolor);\n modifier.setStyle('border-style', data.borderstyle);\n };\n var onSubmitRowForm = function (editor, rows, oldData, api) {\n var dom = editor.dom;\n var data = api.getData();\n api.close();\n var createModifier = rows.length === 1 ? DomModifier.normal : DomModifier.ifTruthy;\n editor.undoManager.transact(function () {\n global$1.each(rows, function (rowElm) {\n if (data.type !== rowElm.parentNode.nodeName.toLowerCase()) {\n switchRowType(editor.dom, rowElm, data.type);\n }\n var modifier = createModifier(dom, rowElm);\n modifier.setAttrib('scope', data.scope);\n modifier.setAttrib('class', data.class);\n modifier.setStyle('height', addSizeSuffix(data.height));\n if (hasAdvancedRowTab(editor)) {\n updateAdvancedProps$1(modifier, data);\n }\n if (data.align !== oldData.align) {\n Styles$1.unApplyAlign(editor, rowElm);\n Styles$1.applyAlign(editor, rowElm, data.align);\n }\n });\n editor.focus();\n });\n };\n var open$1 = function (editor) {\n var dom = editor.dom;\n var tableElm, cellElm, rowElm;\n var rows = [];\n tableElm = dom.getParent(editor.selection.getStart(), 'table');\n if (!tableElm) {\n return;\n }\n cellElm = dom.getParent(editor.selection.getStart(), 'td,th');\n global$1.each(tableElm.rows, function (row) {\n global$1.each(row.cells, function (cell) {\n if ((dom.getAttrib(cell, 'data-mce-selected') || cell === cellElm) && rows.indexOf(row) < 0) {\n rows.push(row);\n return false;\n }\n });\n });\n rowElm = rows[0];\n if (!rowElm) {\n return;\n }\n var rowsData = global$1.map(rows, function (rowElm) {\n return Helpers.extractDataFromRowElement(editor, rowElm, hasAdvancedRowTab(editor));\n });\n var data = Helpers.getSharedValues(rowsData);\n var dialogTabPanel = {\n type: 'tabpanel',\n tabs: [\n {\n title: 'General',\n name: 'general',\n items: RowDialogGeneralTab.getItems(editor)\n },\n Helpers.getAdvancedTab('row')\n ]\n };\n var dialogPanel = {\n type: 'panel',\n items: [{\n type: 'grid',\n columns: 2,\n items: RowDialogGeneralTab.getItems(editor)\n }]\n };\n editor.windowManager.open({\n title: 'Row Properties',\n size: 'normal',\n body: hasAdvancedRowTab(editor) ? dialogTabPanel : dialogPanel,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: data,\n onSubmit: curry(onSubmitRowForm, editor, rows, data)\n });\n };\n var RowDialog = { open: open$1 };\n\n var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n var shallow$1 = function (old, nu) {\n return nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++) {\n objects[i] = arguments[i];\n }\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject) {\n if (hasOwnProperty$1.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n var merge$3 = baseMerge(shallow$1);\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var DefaultRenderOptions = {\n styles: {\n 'border-collapse': 'collapse',\n 'width': '100%'\n },\n attributes: { border: '1' },\n percentages: true\n };\n var makeTable = function () {\n return Element.fromTag('table');\n };\n var tableBody = function () {\n return Element.fromTag('tbody');\n };\n var tableRow = function () {\n return Element.fromTag('tr');\n };\n var tableHeaderCell = function () {\n return Element.fromTag('th');\n };\n var tableCell = function () {\n return Element.fromTag('td');\n };\n var render$1 = function (rows, columns, rowHeaders, columnHeaders, renderOpts) {\n if (renderOpts === void 0) {\n renderOpts = DefaultRenderOptions;\n }\n var table = makeTable();\n setAll$1(table, renderOpts.styles);\n setAll(table, renderOpts.attributes);\n var tbody = tableBody();\n append(table, tbody);\n var trs = [];\n for (var i = 0; i < rows; i++) {\n var tr = tableRow();\n for (var j = 0; j < columns; j++) {\n var td = i < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell();\n if (j < columnHeaders) {\n set(td, 'scope', 'row');\n }\n if (i < rowHeaders) {\n set(td, 'scope', 'col');\n }\n append(td, Element.fromTag('br'));\n if (renderOpts.percentages) {\n set$1(td, 'width', 100 / columns + '%');\n }\n append(tr, td);\n }\n trs.push(tr);\n }\n append$1(tbody, trs);\n return table;\n };\n\n var get$8 = function (element) {\n return element.dom().innerHTML;\n };\n var getOuter$2 = function (element) {\n var container = Element.fromTag('div');\n var clone = Element.fromDom(element.dom().cloneNode(true));\n append(container, clone);\n return get$8(container);\n };\n\n var placeCaretInCell = function (editor, cell) {\n editor.selection.select(cell.dom(), true);\n editor.selection.collapse(true);\n };\n var selectFirstCellInTable = function (editor, tableElm) {\n descendant$1(tableElm, 'td,th').each(curry(placeCaretInCell, editor));\n };\n var fireEvents = function (editor, table) {\n each(descendants$1(table, 'tr'), function (row) {\n fireNewRow(editor, row.dom());\n each(descendants$1(row, 'th,td'), function (cell) {\n fireNewCell(editor, cell.dom());\n });\n });\n };\n var isPercentage = function (width) {\n return isString(width) && width.indexOf('%') !== -1;\n };\n var insert$1 = function (editor, columns, rows) {\n var defaultStyles = getDefaultStyles(editor);\n var options = {\n styles: defaultStyles,\n attributes: getDefaultAttributes(editor),\n percentages: isPercentage(defaultStyles.width) && !isPixelsForced(editor)\n };\n var table = render$1(rows, columns, 0, 0, options);\n set(table, 'data-mce-id', '__mce');\n var html = getOuter$2(table);\n editor.insertContent(html);\n return descendant$1(getBody$1(editor), 'table[data-mce-id=\"__mce\"]').map(function (table) {\n if (isPixelsForced(editor)) {\n set$1(table, 'width', get$2(table, 'width'));\n }\n remove(table, 'data-mce-id');\n fireEvents(editor, table);\n selectFirstCellInTable(editor, table);\n return table.dom();\n }).getOr(null);\n };\n var InsertTable = { insert: insert$1 };\n\n var getItems$2 = function (editor, hasClasses, insertNewTable) {\n var rowColCountItems = !insertNewTable ? [] : [\n {\n type: 'input',\n name: 'cols',\n label: 'Cols',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n name: 'rows',\n label: 'Rows',\n inputMode: 'numeric'\n }\n ];\n var alwaysItems = [\n {\n type: 'input',\n name: 'width',\n label: 'Width'\n },\n {\n type: 'input',\n name: 'height',\n label: 'Height'\n }\n ];\n var appearanceItems = hasAppearanceOptions(editor) ? [\n {\n type: 'input',\n name: 'cellspacing',\n label: 'Cell spacing',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n name: 'cellpadding',\n label: 'Cell padding',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n name: 'border',\n label: 'Border width'\n },\n {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n }\n ] : [];\n var alignmentItem = [{\n type: 'selectbox',\n name: 'align',\n label: 'Alignment',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Left',\n value: 'left'\n },\n {\n text: 'Center',\n value: 'center'\n },\n {\n text: 'Right',\n value: 'right'\n }\n ]\n }];\n var classListItem = hasClasses ? [{\n type: 'selectbox',\n name: 'class',\n label: 'Class',\n items: Helpers.buildListItems(getTableClassList(editor), function (item) {\n if (item.value) {\n item.textStyle = function () {\n return editor.formatter.getCssText({\n block: 'table',\n classes: [item.value]\n });\n };\n }\n })\n }] : [];\n return rowColCountItems.concat(alwaysItems).concat(appearanceItems).concat(alignmentItem).concat(classListItem);\n };\n var TableDialogGeneralTab = { getItems: getItems$2 };\n\n var styleTDTH = function (dom, elm, name, value) {\n if (elm.tagName === 'TD' || elm.tagName === 'TH') {\n if (isString(name)) {\n dom.setStyle(elm, name, value);\n } else {\n dom.setStyle(elm, name);\n }\n } else {\n if (elm.children) {\n for (var i = 0; i < elm.children.length; i++) {\n styleTDTH(dom, elm.children[i], name, value);\n }\n }\n }\n };\n var applyDataToElement = function (editor, tableElm, data) {\n var dom = editor.dom;\n var attrs = {};\n var styles = {};\n attrs.class = data.class;\n styles.height = addSizeSuffix(data.height);\n if (dom.getAttrib(tableElm, 'width') && !shouldStyleWithCss(editor)) {\n attrs.width = removePxSuffix(data.width);\n } else {\n styles.width = addSizeSuffix(data.width);\n }\n if (shouldStyleWithCss(editor)) {\n styles['border-width'] = addSizeSuffix(data.border);\n styles['border-spacing'] = addSizeSuffix(data.cellspacing);\n } else {\n attrs.border = data.border;\n attrs.cellpadding = data.cellpadding;\n attrs.cellspacing = data.cellspacing;\n }\n if (shouldStyleWithCss(editor) && tableElm.children) {\n for (var i = 0; i < tableElm.children.length; i++) {\n styleTDTH(dom, tableElm.children[i], {\n 'border-width': addSizeSuffix(data.border),\n 'padding': addSizeSuffix(data.cellpadding)\n });\n if (hasAdvancedTableTab(editor)) {\n styleTDTH(dom, tableElm.children[i], { 'border-color': data.bordercolor });\n }\n }\n }\n if (hasAdvancedTableTab(editor)) {\n styles['background-color'] = data.backgroundcolor;\n styles['border-color'] = data.bordercolor;\n styles['border-style'] = data.borderstyle;\n }\n attrs.style = dom.serializeStyle(merge$3(getDefaultStyles(editor), styles));\n dom.setAttribs(tableElm, merge$3(getDefaultAttributes(editor), attrs));\n };\n var onSubmitTableForm = function (editor, tableElm, api) {\n var dom = editor.dom;\n var captionElm;\n var data = api.getData();\n api.close();\n if (data.class === '') {\n delete data.class;\n }\n editor.undoManager.transact(function () {\n if (!tableElm) {\n var cols = parseInt(data.cols, 10) || 1;\n var rows = parseInt(data.rows, 10) || 1;\n tableElm = InsertTable.insert(editor, cols, rows);\n }\n applyDataToElement(editor, tableElm, data);\n captionElm = dom.select('caption', tableElm)[0];\n if (captionElm && !data.caption) {\n dom.remove(captionElm);\n }\n if (!captionElm && data.caption) {\n captionElm = dom.create('caption');\n captionElm.innerHTML = !global$2.ie ? '<br data-mce-bogus=\"1\"/>' : '\\xA0';\n tableElm.insertBefore(captionElm, tableElm.firstChild);\n }\n if (data.align === '') {\n Styles$1.unApplyAlign(editor, tableElm);\n } else {\n Styles$1.applyAlign(editor, tableElm, data.align);\n }\n editor.focus();\n editor.addVisual();\n });\n };\n var open$2 = function (editor, insertNewTable) {\n var dom = editor.dom;\n var tableElm;\n var data = Helpers.extractDataFromSettings(editor, hasAdvancedTableTab(editor));\n if (insertNewTable === false) {\n tableElm = dom.getParent(editor.selection.getStart(), 'table');\n if (tableElm) {\n data = Helpers.extractDataFromTableElement(editor, tableElm, hasAdvancedTableTab(editor));\n } else {\n if (hasAdvancedTableTab(editor)) {\n data.borderstyle = '';\n data.bordercolor = '';\n data.backgroundcolor = '';\n }\n }\n } else {\n data.cols = '1';\n data.rows = '1';\n if (hasAdvancedTableTab(editor)) {\n data.borderstyle = '';\n data.bordercolor = '';\n data.backgroundcolor = '';\n }\n }\n var hasClasses = getTableClassList(editor).length > 0;\n if (hasClasses) {\n if (data.class) {\n data.class = data.class.replace(/\\s*mce\\-item\\-table\\s*/g, '');\n }\n }\n var generalPanel = {\n type: 'grid',\n columns: 2,\n items: TableDialogGeneralTab.getItems(editor, hasClasses, insertNewTable)\n };\n var nonAdvancedForm = function () {\n return {\n type: 'panel',\n items: [generalPanel]\n };\n };\n var advancedForm = function () {\n return {\n type: 'tabpanel',\n tabs: [\n {\n title: 'General',\n name: 'general',\n items: [generalPanel]\n },\n Helpers.getAdvancedTab('table')\n ]\n };\n };\n var dialogBody = hasAdvancedTableTab(editor) ? advancedForm() : nonAdvancedForm();\n editor.windowManager.open({\n title: 'Table Properties',\n size: 'normal',\n body: dialogBody,\n onSubmit: curry(onSubmitTableForm, editor, tableElm),\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: data\n });\n };\n var TableDialog = { open: open$2 };\n\n var getSelectionStartFromSelector = function (selector) {\n return function (editor) {\n return Option.from(editor.dom.getParent(editor.selection.getStart(), selector)).map(Element.fromDom);\n };\n };\n var getSelectionStartCell = getSelectionStartFromSelector('th,td');\n var getSelectionStartCellOrCaption = getSelectionStartFromSelector('th,td,caption');\n\n var each$3 = global$1.each;\n var registerCommands = function (editor, actions, cellSelection, selections, clipboardRows) {\n var isRoot = getIsRoot(editor);\n var eraseTable = function () {\n getSelectionStartCellOrCaption(editor).each(function (cellOrCaption) {\n var tableOpt = TableLookup.table(cellOrCaption, isRoot);\n tableOpt.filter(not(isRoot)).each(function (table) {\n var cursor = Element.fromText('');\n after(table, cursor);\n remove$2(table);\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n var rng = editor.dom.createRng();\n rng.setStart(cursor.dom(), 0);\n rng.setEnd(cursor.dom(), 0);\n editor.selection.setRng(rng);\n editor.nodeChanged();\n }\n });\n });\n };\n var getTableFromCell = function (cell) {\n return TableLookup.table(cell, isRoot);\n };\n var getSize = function (table) {\n return {\n width: getPixelWidth$1(table.dom()),\n height: getPixelWidth$1(table.dom())\n };\n };\n var resizeChange = function (editor, oldSize, table) {\n var newSize = getSize(table);\n if (oldSize.width !== newSize.width || oldSize.height !== newSize.height) {\n fireObjectResizeStart(editor, table.dom(), oldSize.width, oldSize.height);\n fireObjectResized(editor, table.dom(), newSize.width, newSize.height);\n }\n };\n var actOnSelection = function (execute) {\n getSelectionStartCell(editor).each(function (cell) {\n getTableFromCell(cell).each(function (table) {\n var targets = TableTargets.forMenu(selections, table, cell);\n var beforeSize = getSize(table);\n execute(table, targets).each(function (rng) {\n resizeChange(editor, beforeSize, table);\n editor.selection.setRng(rng);\n editor.focus();\n cellSelection.clear(table);\n removeDataStyle(table);\n });\n });\n });\n };\n var copyRowSelection = function (execute) {\n return getSelectionStartCell(editor).map(function (cell) {\n return getTableFromCell(cell).bind(function (table) {\n var doc = Element.fromDom(editor.getDoc());\n var targets = TableTargets.forMenu(selections, table, cell);\n var generators = TableFill.cellOperations(noop, doc, Option.none());\n return CopyRows.copyRows(table, targets, generators);\n });\n });\n };\n var pasteOnSelection = function (execute) {\n clipboardRows.get().each(function (rows) {\n var clonedRows = map(rows, function (row) {\n return deep(row);\n });\n getSelectionStartCell(editor).each(function (cell) {\n getTableFromCell(cell).each(function (table) {\n var doc = Element.fromDom(editor.getDoc());\n var generators = TableFill.paste(doc);\n var targets = TableTargets.pasteRows(selections, table, cell, clonedRows, generators);\n execute(table, targets).each(function (rng) {\n editor.selection.setRng(rng);\n editor.focus();\n cellSelection.clear(table);\n });\n });\n });\n });\n };\n each$3({\n mceTableSplitCells: function () {\n actOnSelection(actions.unmergeCells);\n },\n mceTableMergeCells: function () {\n actOnSelection(actions.mergeCells);\n },\n mceTableInsertRowBefore: function () {\n actOnSelection(actions.insertRowsBefore);\n },\n mceTableInsertRowAfter: function () {\n actOnSelection(actions.insertRowsAfter);\n },\n mceTableInsertColBefore: function () {\n actOnSelection(actions.insertColumnsBefore);\n },\n mceTableInsertColAfter: function () {\n actOnSelection(actions.insertColumnsAfter);\n },\n mceTableDeleteCol: function () {\n actOnSelection(actions.deleteColumn);\n },\n mceTableDeleteRow: function () {\n actOnSelection(actions.deleteRow);\n },\n mceTableCutRow: function (grid) {\n copyRowSelection().each(function (selection) {\n clipboardRows.set(selection);\n actOnSelection(actions.deleteRow);\n });\n },\n mceTableCopyRow: function (grid) {\n copyRowSelection().each(function (selection) {\n clipboardRows.set(selection);\n });\n },\n mceTablePasteRowBefore: function (grid) {\n pasteOnSelection(actions.pasteRowsBefore);\n },\n mceTablePasteRowAfter: function (grid) {\n pasteOnSelection(actions.pasteRowsAfter);\n },\n mceTableDelete: eraseTable\n }, function (func, name) {\n editor.addCommand(name, func);\n });\n each$3({\n mceInsertTable: curry(TableDialog.open, editor, true),\n mceTableProps: curry(TableDialog.open, editor, false),\n mceTableRowProps: curry(RowDialog.open, editor),\n mceTableCellProps: curry(CellDialog.open, editor)\n }, function (func, name) {\n editor.addCommand(name, function () {\n func();\n });\n });\n };\n var Commands = { registerCommands: registerCommands };\n\n var only = function (element) {\n var parent = Option.from(element.dom().documentElement).map(Element.fromDom).getOr(element);\n return {\n parent: constant(parent),\n view: constant(element),\n origin: constant(Position(0, 0))\n };\n };\n var detached = function (editable, chrome) {\n var origin = function () {\n return absolute(chrome);\n };\n return {\n parent: constant(chrome),\n view: constant(editable),\n origin: origin\n };\n };\n var body$1 = function (editable, chrome) {\n return {\n parent: constant(chrome),\n view: constant(editable),\n origin: constant(Position(0, 0))\n };\n };\n var ResizeWire = {\n only: only,\n detached: detached,\n body: body$1\n };\n\n var Event = function (fields) {\n var struct = Immutable.apply(null, fields);\n var handlers = [];\n var bind = function (handler) {\n if (handler === undefined) {\n throw new Error('Event bind error: undefined handler');\n }\n handlers.push(handler);\n };\n var unbind = function (handler) {\n handlers = filter(handlers, function (h) {\n return h !== handler;\n });\n };\n var trigger = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var event = struct.apply(null, args);\n each(handlers, function (handler) {\n handler(event);\n });\n };\n return {\n bind: bind,\n unbind: unbind,\n trigger: trigger\n };\n };\n\n var create$1 = function (typeDefs) {\n var registry = map$1(typeDefs, function (event) {\n return {\n bind: event.bind,\n unbind: event.unbind\n };\n });\n var trigger = map$1(typeDefs, function (event) {\n return event.trigger;\n });\n return {\n registry: registry,\n trigger: trigger\n };\n };\n var Events = { create: create$1 };\n\n var mkEvent = function (target, x, y, stop, prevent, kill, raw) {\n return {\n target: constant(target),\n x: constant(x),\n y: constant(y),\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: constant(raw)\n };\n };\n var fromRawEvent = function (rawEvent) {\n var target = Element.fromDom(rawEvent.target);\n var stop = function () {\n rawEvent.stopPropagation();\n };\n var prevent = function () {\n rawEvent.preventDefault();\n };\n var kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n var handle = function (filter, handler) {\n return function (rawEvent) {\n if (!filter(rawEvent)) {\n return;\n }\n handler(fromRawEvent(rawEvent));\n };\n };\n var binder = function (element, event, filter, handler, useCapture) {\n var wrapped = handle(filter, handler);\n element.dom().addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n var bind$1 = function (element, event, filter, handler) {\n return binder(element, event, filter, handler, false);\n };\n var unbind = function (element, event, handler, useCapture) {\n element.dom().removeEventListener(event, handler, useCapture);\n };\n\n var filter$1 = constant(true);\n var bind$2 = function (element, event, handler) {\n return bind$1(element, event, filter$1, handler);\n };\n\n var styles$1 = css('ephox-dragster');\n var Styles$2 = { resolve: styles$1.resolve };\n\n var Blocker = function (options) {\n var settings = merge$3({ layerClass: Styles$2.resolve('blocker') }, options);\n var div = Element.fromTag('div');\n set(div, 'role', 'presentation');\n setAll$1(div, {\n position: 'fixed',\n left: '0px',\n top: '0px',\n width: '100%',\n height: '100%'\n });\n add$2(div, Styles$2.resolve('blocker'));\n add$2(div, settings.layerClass);\n var element = function () {\n return div;\n };\n var destroy = function () {\n remove$2(div);\n };\n return {\n element: element,\n destroy: destroy\n };\n };\n\n var DragMode = exactly([\n 'compare',\n 'extract',\n 'mutate',\n 'sink'\n ]);\n var DragSink = exactly([\n 'element',\n 'start',\n 'stop',\n 'destroy'\n ]);\n var DragApi = exactly([\n 'forceDrop',\n 'drop',\n 'move',\n 'delayDrop'\n ]);\n\n var compare = function (old, nu) {\n return Position(nu.left() - old.left(), nu.top() - old.top());\n };\n var extract$1 = function (event) {\n return Option.some(Position(event.x(), event.y()));\n };\n var mutate = function (mutation, info) {\n mutation.mutate(info.left(), info.top());\n };\n var sink = function (dragApi, settings) {\n var blocker = Blocker(settings);\n var mdown = bind$2(blocker.element(), 'mousedown', dragApi.forceDrop);\n var mup = bind$2(blocker.element(), 'mouseup', dragApi.drop);\n var mmove = bind$2(blocker.element(), 'mousemove', dragApi.move);\n var mout = bind$2(blocker.element(), 'mouseout', dragApi.delayDrop);\n var destroy = function () {\n blocker.destroy();\n mup.unbind();\n mmove.unbind();\n mout.unbind();\n mdown.unbind();\n };\n var start = function (parent) {\n append(parent, blocker.element());\n };\n var stop = function () {\n remove$2(blocker.element());\n };\n return DragSink({\n element: blocker.element,\n start: start,\n stop: stop,\n destroy: destroy\n });\n };\n var MouseDrag = DragMode({\n compare: compare,\n extract: extract$1,\n sink: sink,\n mutate: mutate\n });\n\n var last$2 = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n }\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n function InDrag () {\n var previous = Option.none();\n var reset = function () {\n previous = Option.none();\n };\n var update = function (mode, nu) {\n var result = previous.map(function (old) {\n return mode.compare(old, nu);\n });\n previous = Option.some(nu);\n return result;\n };\n var onEvent = function (event, mode) {\n var dataOption = mode.extract(event);\n dataOption.each(function (data) {\n var offset = update(mode, data);\n offset.each(function (d) {\n events.trigger.move(d);\n });\n });\n };\n var events = Events.create({ move: Event(['info']) });\n return {\n onEvent: onEvent,\n reset: reset,\n events: events.registry\n };\n }\n\n function NoDrag () {\n return {\n onEvent: noop,\n reset: noop\n };\n }\n\n function Movement () {\n var noDragState = NoDrag();\n var inDragState = InDrag();\n var dragState = noDragState;\n var on = function () {\n dragState.reset();\n dragState = inDragState;\n };\n var off = function () {\n dragState.reset();\n dragState = noDragState;\n };\n var onEvent = function (event, mode) {\n dragState.onEvent(event, mode);\n };\n var isOn = function () {\n return dragState === inDragState;\n };\n return {\n on: on,\n off: off,\n isOn: isOn,\n onEvent: onEvent,\n events: inDragState.events\n };\n }\n\n var setup = function (mutation, mode, settings) {\n var active = false;\n var events = Events.create({\n start: Event([]),\n stop: Event([])\n });\n var movement = Movement();\n var drop = function () {\n sink.stop();\n if (movement.isOn()) {\n movement.off();\n events.trigger.stop();\n }\n };\n var throttledDrop = last$2(drop, 200);\n var go = function (parent) {\n sink.start(parent);\n movement.on();\n events.trigger.start();\n };\n var mousemove = function (event) {\n throttledDrop.cancel();\n movement.onEvent(event, mode);\n };\n movement.events.move.bind(function (event) {\n mode.mutate(mutation, event.info());\n });\n var on = function () {\n active = true;\n };\n var off = function () {\n active = false;\n };\n var runIfActive = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (active) {\n f.apply(null, args);\n }\n };\n };\n var sink = mode.sink(DragApi({\n forceDrop: drop,\n drop: runIfActive(drop),\n move: runIfActive(mousemove),\n delayDrop: runIfActive(throttledDrop.throttle)\n }), settings);\n var destroy = function () {\n sink.destroy();\n };\n return {\n element: sink.element,\n go: go,\n on: on,\n off: off,\n destroy: destroy,\n events: events.registry\n };\n };\n var Dragging = { setup: setup };\n\n var transform$1 = function (mutation, settings) {\n if (settings === void 0) {\n settings = {};\n }\n var mode = settings.mode !== undefined ? settings.mode : MouseDrag;\n return Dragging.setup(mutation, mode, settings);\n };\n var Dragger = { transform: transform$1 };\n\n var Mutation = function () {\n var events = Events.create({\n drag: Event([\n 'xDelta',\n 'yDelta'\n ])\n });\n var mutate = function (x, y) {\n events.trigger.drag(x, y);\n };\n return {\n mutate: mutate,\n events: events.registry\n };\n };\n\n var BarMutation = function () {\n var events = Events.create({\n drag: Event([\n 'xDelta',\n 'yDelta',\n 'target'\n ])\n });\n var target = Option.none();\n var delegate = Mutation();\n delegate.events.drag.bind(function (event) {\n target.each(function (t) {\n events.trigger.drag(event.xDelta(), event.yDelta(), t);\n });\n });\n var assign = function (t) {\n target = Option.some(t);\n };\n var get = function () {\n return target;\n };\n return {\n assign: assign,\n get: get,\n mutate: delegate.mutate,\n events: events.registry\n };\n };\n\n var isContentEditableTrue = function (elm) {\n return get$1(elm, 'contenteditable') === 'true';\n };\n var findClosestContentEditable = function (target, isRoot) {\n return closest$1(target, '[contenteditable]', isRoot);\n };\n\n var resizeBarDragging = Styles.resolve('resizer-bar-dragging');\n var BarManager = function (wire, direction, hdirection) {\n var mutation = BarMutation();\n var resizing = Dragger.transform(mutation, {});\n var hoverTable = Option.none();\n var getResizer = function (element, type) {\n return Option.from(get$1(element, type));\n };\n mutation.events.drag.bind(function (event) {\n getResizer(event.target(), 'data-row').each(function (_dataRow) {\n var currentRow = CellUtils.getInt(event.target(), 'top');\n set$1(event.target(), 'top', currentRow + event.yDelta() + 'px');\n });\n getResizer(event.target(), 'data-column').each(function (_dataCol) {\n var currentCol = CellUtils.getInt(event.target(), 'left');\n set$1(event.target(), 'left', currentCol + event.xDelta() + 'px');\n });\n });\n var getDelta = function (target, dir) {\n var newX = CellUtils.getInt(target, dir);\n var oldX = parseInt(get$1(target, 'data-initial-' + dir), 10);\n return newX - oldX;\n };\n resizing.events.stop.bind(function () {\n mutation.get().each(function (target) {\n hoverTable.each(function (table) {\n getResizer(target, 'data-row').each(function (row) {\n var delta = getDelta(target, 'top');\n remove(target, 'data-initial-top');\n events.trigger.adjustHeight(table, delta, parseInt(row, 10));\n });\n getResizer(target, 'data-column').each(function (column) {\n var delta = getDelta(target, 'left');\n remove(target, 'data-initial-left');\n events.trigger.adjustWidth(table, delta, parseInt(column, 10));\n });\n Bars.refresh(wire, table, hdirection, direction);\n });\n });\n });\n var handler = function (target, dir) {\n events.trigger.startAdjust();\n mutation.assign(target);\n set(target, 'data-initial-' + dir, parseInt(get$2(target, dir), 10));\n add$2(target, resizeBarDragging);\n set$1(target, 'opacity', '0.2');\n resizing.go(wire.parent());\n };\n var mousedown = bind$2(wire.parent(), 'mousedown', function (event) {\n if (Bars.isRowBar(event.target())) {\n handler(event.target(), 'top');\n }\n if (Bars.isColBar(event.target())) {\n handler(event.target(), 'left');\n }\n });\n var isRoot = function (e) {\n return eq(e, wire.view());\n };\n var findClosestEditableTable = function (target) {\n return closest$1(target, 'table', isRoot).filter(function (table) {\n return findClosestContentEditable(table, isRoot).exists(isContentEditableTrue);\n });\n };\n var mouseover = bind$2(wire.view(), 'mouseover', function (event) {\n findClosestEditableTable(event.target()).fold(function () {\n if (inBody(event.target())) {\n Bars.destroy(wire);\n }\n }, function (table) {\n hoverTable = Option.some(table);\n Bars.refresh(wire, table, hdirection, direction);\n });\n });\n var destroy = function () {\n mousedown.unbind();\n mouseover.unbind();\n resizing.destroy();\n Bars.destroy(wire);\n };\n var refresh = function (tbl) {\n Bars.refresh(wire, tbl, hdirection, direction);\n };\n var events = Events.create({\n adjustHeight: Event([\n 'table',\n 'delta',\n 'row'\n ]),\n adjustWidth: Event([\n 'table',\n 'delta',\n 'column'\n ]),\n startAdjust: Event([])\n });\n return {\n destroy: destroy,\n refresh: refresh,\n on: resizing.on,\n off: resizing.off,\n hideBars: curry(Bars.hide, wire),\n showBars: curry(Bars.show, wire),\n events: events.registry\n };\n };\n\n var create$2 = function (wire, vdirection) {\n var hdirection = BarPositions.height;\n var manager = BarManager(wire, vdirection, hdirection);\n var events = Events.create({\n beforeResize: Event(['table']),\n afterResize: Event(['table']),\n startDrag: Event([])\n });\n manager.events.adjustHeight.bind(function (event) {\n events.trigger.beforeResize(event.table());\n var delta = hdirection.delta(event.delta(), event.table());\n Adjustments.adjustHeight(event.table(), delta, event.row(), hdirection);\n events.trigger.afterResize(event.table());\n });\n manager.events.startAdjust.bind(function (event) {\n events.trigger.startDrag();\n });\n manager.events.adjustWidth.bind(function (event) {\n events.trigger.beforeResize(event.table());\n var delta = vdirection.delta(event.delta(), event.table());\n Adjustments.adjustWidth(event.table(), delta, event.column(), vdirection);\n events.trigger.afterResize(event.table());\n });\n return {\n on: manager.on,\n off: manager.off,\n hideBars: manager.hideBars,\n showBars: manager.showBars,\n destroy: manager.destroy,\n events: events.registry\n };\n };\n var TableResize = { create: create$2 };\n\n var createContainer = function () {\n var container = Element.fromTag('div');\n setAll$1(container, {\n position: 'static',\n height: '0',\n width: '0',\n padding: '0',\n margin: '0',\n border: '0'\n });\n append(body(), container);\n return container;\n };\n var get$9 = function (editor, container) {\n return editor.inline ? ResizeWire.body(getBody$1(editor), createContainer()) : ResizeWire.only(Element.fromDom(editor.getDoc()));\n };\n var remove$6 = function (editor, wire) {\n if (editor.inline) {\n remove$2(wire.parent());\n }\n };\n var TableWire = {\n get: get$9,\n remove: remove$6\n };\n\n var calculatePercentageWidth = function (element, parent) {\n return getPixelWidth$1(element.dom()) / getPixelWidth$1(parent.dom()) * 100 + '%';\n };\n var enforcePercentage = function (rawTable) {\n var table = Element.fromDom(rawTable);\n parent(table).map(function (parent) {\n return calculatePercentageWidth(table, parent);\n }).each(function (tablePercentage) {\n set$1(table, 'width', tablePercentage);\n each(descendants$1(table, 'tr'), function (tr) {\n each(children(tr), function (td) {\n set$1(td, 'width', calculatePercentageWidth(td, tr));\n });\n });\n });\n };\n var enforcePixels = function (table) {\n set$1(Element.fromDom(table), 'width', getPixelWidth$1(table).toString() + 'px');\n };\n\n var getResizeHandler = function (editor) {\n var selectionRng = Option.none();\n var resize = Option.none();\n var wire = Option.none();\n var percentageBasedSizeRegex = /(\\d+(\\.\\d+)?)%/;\n var startW;\n var startRawW;\n var isTable = function (elm) {\n return elm.nodeName === 'TABLE';\n };\n var getRawWidth = function (elm) {\n var raw = editor.dom.getStyle(elm, 'width') || editor.dom.getAttrib(elm, 'width');\n return Option.from(raw).filter(function (s) {\n return s.length > 0;\n });\n };\n var lazyResize = function () {\n return resize;\n };\n var lazyWire = function () {\n return wire.getOr(ResizeWire.only(Element.fromDom(editor.getBody())));\n };\n var destroy = function () {\n resize.each(function (sz) {\n sz.destroy();\n });\n wire.each(function (w) {\n TableWire.remove(editor, w);\n });\n };\n editor.on('init', function () {\n var direction = TableDirection(Direction.directionAt);\n var rawWire = TableWire.get(editor);\n wire = Option.some(rawWire);\n if (hasObjectResizing(editor) && hasTableResizeBars(editor)) {\n var sz = TableResize.create(rawWire, direction);\n sz.on();\n sz.events.startDrag.bind(function (event) {\n selectionRng = Option.some(editor.selection.getRng());\n });\n sz.events.beforeResize.bind(function (event) {\n var rawTable = event.table().dom();\n fireObjectResizeStart(editor, rawTable, getPixelWidth$1(rawTable), getPixelHeight(rawTable));\n });\n sz.events.afterResize.bind(function (event) {\n var table = event.table();\n var rawTable = table.dom();\n removeDataStyle(table);\n selectionRng.each(function (rng) {\n editor.selection.setRng(rng);\n editor.focus();\n });\n fireObjectResized(editor, rawTable, getPixelWidth$1(rawTable), getPixelHeight(rawTable));\n editor.undoManager.add();\n });\n resize = Option.some(sz);\n }\n });\n editor.on('ObjectResizeStart', function (e) {\n var targetElm = e.target;\n if (isTable(targetElm)) {\n var tableHasPercentage = getRawWidth(targetElm).map(function (w) {\n return percentageBasedSizeRegex.test(w);\n }).getOr(false);\n if (tableHasPercentage && isPixelsForced(editor)) {\n enforcePixels(targetElm);\n } else if (!tableHasPercentage && isPercentagesForced(editor)) {\n enforcePercentage(targetElm);\n }\n startW = e.width;\n startRawW = getRawWidth(targetElm).getOr('');\n }\n });\n editor.on('ObjectResized', function (e) {\n var targetElm = e.target;\n if (isTable(targetElm)) {\n var table = targetElm;\n if (percentageBasedSizeRegex.test(startRawW)) {\n var percentW = parseFloat(percentageBasedSizeRegex.exec(startRawW)[1]);\n var targetPercentW = e.width * percentW / startW;\n editor.dom.setStyle(table, 'width', targetPercentW + '%');\n } else {\n var newCellSizes_1 = [];\n global$1.each(table.rows, function (row) {\n global$1.each(row.cells, function (cell) {\n var width = editor.dom.getStyle(cell, 'width', true);\n newCellSizes_1.push({\n cell: cell,\n width: width\n });\n });\n });\n global$1.each(newCellSizes_1, function (newCellSize) {\n editor.dom.setStyle(newCellSize.cell, 'width', newCellSize.width);\n editor.dom.setAttrib(newCellSize.cell, 'width', null);\n });\n }\n }\n });\n editor.on('SwitchMode', function () {\n lazyResize().each(function (resize) {\n if (editor.readonly) {\n resize.hideBars();\n } else {\n resize.showBars();\n }\n });\n });\n return {\n lazyResize: lazyResize,\n lazyWire: lazyWire,\n destroy: destroy\n };\n };\n\n var adt$1 = Adt.generate([\n { none: ['current'] },\n { first: ['current'] },\n {\n middle: [\n 'current',\n 'target'\n ]\n },\n { last: ['current'] }\n ]);\n var none$1 = function (current) {\n if (current === void 0) {\n current = undefined;\n }\n return adt$1.none(current);\n };\n var CellLocation = __assign(__assign({}, adt$1), { none: none$1 });\n\n var detect$4 = function (current, isRoot) {\n return TableLookup.table(current, isRoot).bind(function (table) {\n var all = TableLookup.cells(table);\n var index = findIndex(all, function (x) {\n return eq(current, x);\n });\n return index.map(function (ind) {\n return {\n index: constant(ind),\n all: constant(all)\n };\n });\n });\n };\n var next = function (current, isRoot) {\n var detection = detect$4(current, isRoot);\n return detection.fold(function () {\n return CellLocation.none(current);\n }, function (info) {\n return info.index() + 1 < info.all().length ? CellLocation.middle(current, info.all()[info.index() + 1]) : CellLocation.last(current);\n });\n };\n var prev = function (current, isRoot) {\n var detection = detect$4(current, isRoot);\n return detection.fold(function () {\n return CellLocation.none();\n }, function (info) {\n return info.index() - 1 >= 0 ? CellLocation.middle(current, info.all()[info.index() - 1]) : CellLocation.first(current);\n });\n };\n var CellNavigation = {\n next: next,\n prev: prev\n };\n\n var create$3 = Immutable('start', 'soffset', 'finish', 'foffset');\n var SimRange = { create: create$3 };\n\n var adt$2 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n var cata$1 = function (subject, onBefore, onOn, onAfter) {\n return subject.fold(onBefore, onOn, onAfter);\n };\n var getStart = function (situ) {\n return situ.fold(identity, identity, identity);\n };\n var before$2 = adt$2.before;\n var on = adt$2.on;\n var after$2 = adt$2.after;\n var Situ = {\n before: before$2,\n on: on,\n after: after$2,\n cata: cata$1,\n getStart: getStart\n };\n\n var adt$3 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var exactFromRange = function (simRange) {\n return adt$3.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());\n };\n var getStart$1 = function (selection) {\n return selection.match({\n domRange: function (rng) {\n return Element.fromDom(rng.startContainer);\n },\n relative: function (startSitu, finishSitu) {\n return Situ.getStart(startSitu);\n },\n exact: function (start, soffset, finish, foffset) {\n return start;\n }\n });\n };\n var domRange = adt$3.domRange;\n var relative = adt$3.relative;\n var exact = adt$3.exact;\n var getWin = function (selection) {\n var start = getStart$1(selection);\n return defaultView(start);\n };\n var range$1 = SimRange.create;\n var Selection = {\n domRange: domRange,\n relative: relative,\n exact: exact,\n exactFromRange: exactFromRange,\n getWin: getWin,\n range: range$1\n };\n\n var selectNodeContents = function (win, element) {\n var rng = win.document.createRange();\n selectNodeContentsUsing(rng, element);\n return rng;\n };\n var selectNodeContentsUsing = function (rng, element) {\n rng.selectNodeContents(element.dom());\n };\n var setStart = function (rng, situ) {\n situ.fold(function (e) {\n rng.setStartBefore(e.dom());\n }, function (e, o) {\n rng.setStart(e.dom(), o);\n }, function (e) {\n rng.setStartAfter(e.dom());\n });\n };\n var setFinish = function (rng, situ) {\n situ.fold(function (e) {\n rng.setEndBefore(e.dom());\n }, function (e, o) {\n rng.setEnd(e.dom(), o);\n }, function (e) {\n rng.setEndAfter(e.dom());\n });\n };\n var relativeToNative = function (win, startSitu, finishSitu) {\n var range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n var exactToNative = function (win, start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n };\n var toRect = function (rect) {\n return {\n left: constant(rect.left),\n top: constant(rect.top),\n right: constant(rect.right),\n bottom: constant(rect.bottom),\n width: constant(rect.width),\n height: constant(rect.height)\n };\n };\n var getFirstRect = function (rng) {\n var rects = rng.getClientRects();\n var rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Option.some(rect).map(toRect) : Option.none();\n };\n\n var adt$4 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var fromRange = function (win, type, range) {\n return type(Element.fromDom(range.startContainer), range.startOffset, Element.fromDom(range.endContainer), range.endOffset);\n };\n var getRanges = function (win, selection) {\n return selection.match({\n domRange: function (rng) {\n return {\n ltr: constant(rng),\n rtl: Option.none\n };\n },\n relative: function (startSitu, finishSitu) {\n return {\n ltr: cached(function () {\n return relativeToNative(win, startSitu, finishSitu);\n }),\n rtl: cached(function () {\n return Option.some(relativeToNative(win, finishSitu, startSitu));\n })\n };\n },\n exact: function (start, soffset, finish, foffset) {\n return {\n ltr: cached(function () {\n return exactToNative(win, start, soffset, finish, foffset);\n }),\n rtl: cached(function () {\n return Option.some(exactToNative(win, finish, foffset, start, soffset));\n })\n };\n }\n });\n };\n var doDiagnose = function (win, ranges) {\n var rng = ranges.ltr();\n if (rng.collapsed) {\n var reversed = ranges.rtl().filter(function (rev) {\n return rev.collapsed === false;\n });\n return reversed.map(function (rev) {\n return adt$4.rtl(Element.fromDom(rev.endContainer), rev.endOffset, Element.fromDom(rev.startContainer), rev.startOffset);\n }).getOrThunk(function () {\n return fromRange(win, adt$4.ltr, rng);\n });\n } else {\n return fromRange(win, adt$4.ltr, rng);\n }\n };\n var diagnose = function (win, selection) {\n var ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n var asLtrRange = function (win, selection) {\n var diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: function (start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n },\n rtl: function (start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(finish.dom(), foffset);\n rng.setEnd(start.dom(), soffset);\n return rng;\n }\n });\n };\n\n var searchForPoint = function (rectForOffset, x, y, maxX, length) {\n if (length === 0) {\n return 0;\n } else if (x === maxX) {\n return length - 1;\n }\n var xDelta = maxX;\n for (var i = 1; i < length; i++) {\n var rect = rectForOffset(i);\n var curDeltaX = Math.abs(x - rect.left);\n if (y <= rect.bottom) {\n if (y < rect.top || curDeltaX > xDelta) {\n return i - 1;\n } else {\n xDelta = curDeltaX;\n }\n }\n }\n return 0;\n };\n var inRect = function (rect, x, y) {\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n };\n\n var locateOffset = function (doc, textnode, x, y, rect) {\n var rangeForOffset = function (o) {\n var r = doc.dom().createRange();\n r.setStart(textnode.dom(), o);\n r.collapse(true);\n return r;\n };\n var rectForOffset = function (o) {\n var r = rangeForOffset(o);\n return r.getBoundingClientRect();\n };\n var length = get$3(textnode).length;\n var offset = searchForPoint(rectForOffset, x, y, rect.right, length);\n return rangeForOffset(offset);\n };\n var locate = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rects = r.getClientRects();\n var foundRect = findMap(rects, function (rect) {\n return inRect(rect, x, y) ? Option.some(rect) : Option.none();\n });\n return foundRect.map(function (rect) {\n return locateOffset(doc, node, x, y, rect);\n });\n };\n\n var searchInChildren = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n var nodes = children(node);\n return findMap(nodes, function (n) {\n r.selectNode(n.dom());\n return inRect(r.getBoundingClientRect(), x, y) ? locateNode(doc, n, x, y) : Option.none();\n });\n };\n var locateNode = function (doc, node, x, y) {\n return isText(node) ? locate(doc, node, x, y) : searchInChildren(doc, node, x, y);\n };\n var locate$1 = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locateNode(doc, node, boundedX, boundedY);\n };\n\n var COLLAPSE_TO_LEFT = true;\n var COLLAPSE_TO_RIGHT = false;\n var getCollapseDirection = function (rect, x) {\n return x - rect.left < rect.right - x ? COLLAPSE_TO_LEFT : COLLAPSE_TO_RIGHT;\n };\n var createCollapsedNode = function (doc, target, collapseDirection) {\n var r = doc.dom().createRange();\n r.selectNode(target.dom());\n r.collapse(collapseDirection);\n return r;\n };\n var locateInElement = function (doc, node, x) {\n var cursorRange = doc.dom().createRange();\n cursorRange.selectNode(node.dom());\n var rect = cursorRange.getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n var f = collapseDirection === COLLAPSE_TO_LEFT ? first : last$1;\n return f(node).map(function (target) {\n return createCollapsedNode(doc, target, collapseDirection);\n });\n };\n var locateInEmpty = function (doc, node, x) {\n var rect = node.dom().getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n return Option.some(createCollapsedNode(doc, node, collapseDirection));\n };\n var search = function (doc, node, x) {\n var f = children(node).length === 0 ? locateInEmpty : locateInElement;\n return f(doc, node, x);\n };\n\n var caretPositionFromPoint = function (doc, x, y) {\n return Option.from(doc.dom().caretPositionFromPoint(x, y)).bind(function (pos) {\n if (pos.offsetNode === null) {\n return Option.none();\n }\n var r = doc.dom().createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Option.some(r);\n });\n };\n var caretRangeFromPoint = function (doc, x, y) {\n return Option.from(doc.dom().caretRangeFromPoint(x, y));\n };\n var searchTextNodes = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locate$1(doc, node, boundedX, boundedY);\n };\n var searchFromPoint = function (doc, x, y) {\n return Element.fromPoint(doc, x, y).bind(function (elem) {\n var fallback = function () {\n return search(doc, elem, x);\n };\n return children(elem).length === 0 ? fallback() : searchTextNodes(doc, elem, x, y).orThunk(fallback);\n });\n };\n var availableSearch = document.caretPositionFromPoint ? caretPositionFromPoint : document.caretRangeFromPoint ? caretRangeFromPoint : searchFromPoint;\n var fromPoint$1 = function (win, x, y) {\n var doc = Element.fromDom(win.document);\n return availableSearch(doc, x, y).map(function (rng) {\n return SimRange.create(Element.fromDom(rng.startContainer), rng.startOffset, Element.fromDom(rng.endContainer), rng.endOffset);\n });\n };\n\n var beforeSpecial = function (element, offset) {\n var name$1 = name(element);\n if ('input' === name$1) {\n return Situ.after(element);\n } else if (!contains([\n 'br',\n 'img'\n ], name$1)) {\n return Situ.on(element, offset);\n } else {\n return offset === 0 ? Situ.before(element) : Situ.after(element);\n }\n };\n var preprocessRelative = function (startSitu, finishSitu) {\n var start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n var finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n return Selection.relative(start, finish);\n };\n var preprocessExact = function (start, soffset, finish, foffset) {\n var startSitu = beforeSpecial(start, soffset);\n var finishSitu = beforeSpecial(finish, foffset);\n return Selection.relative(startSitu, finishSitu);\n };\n var preprocess = function (selection) {\n return selection.match({\n domRange: function (rng) {\n var start = Element.fromDom(rng.startContainer);\n var finish = Element.fromDom(rng.endContainer);\n return preprocessExact(start, rng.startOffset, finish, rng.endOffset);\n },\n relative: preprocessRelative,\n exact: preprocessExact\n });\n };\n\n var makeRange = function (start, soffset, finish, foffset) {\n var doc = owner(start);\n var rng = doc.dom().createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n };\n var after$3 = function (start, soffset, finish, foffset) {\n var r = makeRange(start, soffset, finish, foffset);\n var same = eq(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n var doSetNativeRange = function (win, rng) {\n Option.from(win.getSelection()).each(function (selection) {\n selection.removeAllRanges();\n selection.addRange(rng);\n });\n };\n var doSetRange = function (win, start, soffset, finish, foffset) {\n var rng = exactToNative(win, start, soffset, finish, foffset);\n doSetNativeRange(win, rng);\n };\n var setLegacyRtlRange = function (win, selection, start, soffset, finish, foffset) {\n selection.collapse(start.dom(), soffset);\n selection.extend(finish.dom(), foffset);\n };\n var setRangeFromRelative = function (win, relative) {\n return diagnose(win, relative).match({\n ltr: function (start, soffset, finish, foffset) {\n doSetRange(win, start, soffset, finish, foffset);\n },\n rtl: function (start, soffset, finish, foffset) {\n var selection = win.getSelection();\n if (selection.setBaseAndExtent) {\n selection.setBaseAndExtent(start.dom(), soffset, finish.dom(), foffset);\n } else if (selection.extend) {\n try {\n setLegacyRtlRange(win, selection, start, soffset, finish, foffset);\n } catch (e) {\n doSetRange(win, finish, foffset, start, soffset);\n }\n } else {\n doSetRange(win, finish, foffset, start, soffset);\n }\n }\n });\n };\n var setExact = function (win, start, soffset, finish, foffset) {\n var relative = preprocessExact(start, soffset, finish, foffset);\n setRangeFromRelative(win, relative);\n };\n var setRelative = function (win, startSitu, finishSitu) {\n var relative = preprocessRelative(startSitu, finishSitu);\n setRangeFromRelative(win, relative);\n };\n var toNative = function (selection) {\n var win = Selection.getWin(selection).dom();\n var getDomRange = function (start, soffset, finish, foffset) {\n return exactToNative(win, start, soffset, finish, foffset);\n };\n var filtered = preprocess(selection);\n return diagnose(win, filtered).match({\n ltr: getDomRange,\n rtl: getDomRange\n });\n };\n var readRange = function (selection) {\n if (selection.rangeCount > 0) {\n var firstRng = selection.getRangeAt(0);\n var lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Option.some(SimRange.create(Element.fromDom(firstRng.startContainer), firstRng.startOffset, Element.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Option.none();\n }\n };\n var doGetExact = function (selection) {\n var anchor = Element.fromDom(selection.anchorNode);\n var focus = Element.fromDom(selection.focusNode);\n return after$3(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Option.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n };\n var setToElement = function (win, element) {\n var rng = selectNodeContents(win, element);\n doSetNativeRange(win, rng);\n };\n var getExact = function (win) {\n return Option.from(win.getSelection()).filter(function (sel) {\n return sel.rangeCount > 0;\n }).bind(doGetExact);\n };\n var get$a = function (win) {\n return getExact(win).map(function (range) {\n return Selection.exact(range.start(), range.soffset(), range.finish(), range.foffset());\n });\n };\n var getFirstRect$1 = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return getFirstRect(rng);\n };\n var getAtPoint = function (win, x, y) {\n return fromPoint$1(win, x, y);\n };\n var clear = function (win) {\n var selection = win.getSelection();\n selection.removeAllRanges();\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var forward = function (editor, isRoot, cell, lazyWire) {\n return go(editor, isRoot, CellNavigation.next(cell), lazyWire);\n };\n var backward = function (editor, isRoot, cell, lazyWire) {\n return go(editor, isRoot, CellNavigation.prev(cell), lazyWire);\n };\n var getCellFirstCursorPosition = function (editor, cell) {\n var selection = Selection.exact(cell, 0, cell, 0);\n return toNative(selection);\n };\n var getNewRowCursorPosition = function (editor, table) {\n var rows = descendants$1(table, 'tr');\n return last(rows).bind(function (last) {\n return descendant$1(last, 'td,th').map(function (first) {\n return getCellFirstCursorPosition(editor, first);\n });\n });\n };\n var go = function (editor, isRoot, cell, actions, lazyWire) {\n return cell.fold(Option.none, Option.none, function (current, next) {\n return first(next).map(function (cell) {\n return getCellFirstCursorPosition(editor, cell);\n });\n }, function (current) {\n return TableLookup.table(current, isRoot).bind(function (table) {\n var targets = TableTargets.noMenu(current);\n editor.undoManager.transact(function () {\n actions.insertRowsAfter(table, targets);\n });\n return getNewRowCursorPosition(editor, table);\n });\n });\n };\n var rootElements = [\n 'table',\n 'li',\n 'dl'\n ];\n var handle$1 = function (event, editor, actions, lazyWire) {\n if (event.keyCode === global$3.TAB) {\n var body_1 = getBody$1(editor);\n var isRoot_1 = function (element) {\n var name$1 = name(element);\n return eq(element, body_1) || contains(rootElements, name$1);\n };\n var rng = editor.selection.getRng();\n if (rng.collapsed) {\n var start = Element.fromDom(rng.startContainer);\n TableLookup.cell(start, isRoot_1).each(function (cell) {\n event.preventDefault();\n var navigation = event.shiftKey ? backward : forward;\n var rng = navigation(editor, isRoot_1, cell, actions, lazyWire);\n rng.each(function (range) {\n editor.selection.setRng(range);\n });\n });\n }\n }\n };\n var TabContext = { handle: handle$1 };\n\n var create$4 = Immutable('selection', 'kill');\n var Response = { create: create$4 };\n\n var create$5 = function (start, soffset, finish, foffset) {\n return {\n start: constant(Situ.on(start, soffset)),\n finish: constant(Situ.on(finish, foffset))\n };\n };\n var Situs = { create: create$5 };\n\n var convertToRange = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return SimRange.create(Element.fromDom(rng.startContainer), rng.startOffset, Element.fromDom(rng.endContainer), rng.endOffset);\n };\n var makeSitus = Situs.create;\n var Util = {\n convertToRange: convertToRange,\n makeSitus: makeSitus\n };\n\n var sync = function (container, isRoot, start, soffset, finish, foffset, selectRange) {\n if (!(eq(start, finish) && soffset === foffset)) {\n return closest$1(start, 'td,th', isRoot).bind(function (s) {\n return closest$1(finish, 'td,th', isRoot).bind(function (f) {\n return detect$5(container, isRoot, s, f, selectRange);\n });\n });\n } else {\n return Option.none();\n }\n };\n var detect$5 = function (container, isRoot, start, finish, selectRange) {\n if (!eq(start, finish)) {\n return CellSelection.identify(start, finish, isRoot).bind(function (cellSel) {\n var boxes = cellSel.boxes().getOr([]);\n if (boxes.length > 0) {\n selectRange(container, boxes, cellSel.start(), cellSel.finish());\n return Option.some(Response.create(Option.some(Util.makeSitus(start, 0, start, getEnd(start))), true));\n } else {\n return Option.none();\n }\n });\n } else {\n return Option.none();\n }\n };\n var update = function (rows, columns, container, selected, annotations) {\n var updateSelection = function (newSels) {\n annotations.clearBeforeUpdate(container);\n annotations.selectRange(container, newSels.boxes(), newSels.start(), newSels.finish());\n return newSels.boxes();\n };\n return CellSelection.shiftSelection(selected, rows, columns, annotations.firstSelectedSelector(), annotations.lastSelectedSelector()).map(updateSelection);\n };\n var KeySelection = {\n sync: sync,\n detect: detect$5,\n update: update\n };\n\n var traverse = Immutable('item', 'mode');\n var backtrack = function (universe, item, _direction, transition) {\n if (transition === void 0) {\n transition = sidestep;\n }\n return universe.property().parent(item).map(function (p) {\n return traverse(p, transition);\n });\n };\n var sidestep = function (universe, item, direction, transition) {\n if (transition === void 0) {\n transition = advance;\n }\n return direction.sibling(universe, item).map(function (p) {\n return traverse(p, transition);\n });\n };\n var advance = function (universe, item, direction, transition) {\n if (transition === void 0) {\n transition = advance;\n }\n var children = universe.property().children(item);\n var result = direction.first(children);\n return result.map(function (r) {\n return traverse(r, transition);\n });\n };\n var successors = [\n {\n current: backtrack,\n next: sidestep,\n fallback: Option.none()\n },\n {\n current: sidestep,\n next: advance,\n fallback: Option.some(backtrack)\n },\n {\n current: advance,\n next: advance,\n fallback: Option.some(sidestep)\n }\n ];\n var go$1 = function (universe, item, mode, direction, rules) {\n if (rules === void 0) {\n rules = successors;\n }\n var ruleOpt = find(rules, function (succ) {\n return succ.current === mode;\n });\n return ruleOpt.bind(function (rule) {\n return rule.current(universe, item, direction, rule.next).orThunk(function () {\n return rule.fallback.bind(function (fb) {\n return go$1(universe, item, fb, direction);\n });\n });\n });\n };\n\n var left = function () {\n var sibling = function (universe, item) {\n return universe.query().prevSibling(item);\n };\n var first = function (children) {\n return children.length > 0 ? Option.some(children[children.length - 1]) : Option.none();\n };\n return {\n sibling: sibling,\n first: first\n };\n };\n var right = function () {\n var sibling = function (universe, item) {\n return universe.query().nextSibling(item);\n };\n var first = function (children) {\n return children.length > 0 ? Option.some(children[0]) : Option.none();\n };\n return {\n sibling: sibling,\n first: first\n };\n };\n var Walkers = {\n left: left,\n right: right\n };\n\n var hone = function (universe, item, predicate, mode, direction, isRoot) {\n var next = go$1(universe, item, mode, direction);\n return next.bind(function (n) {\n if (isRoot(n.item())) {\n return Option.none();\n } else {\n return predicate(n.item()) ? Option.some(n.item()) : hone(universe, n.item(), predicate, n.mode(), direction, isRoot);\n }\n });\n };\n var left$1 = function (universe, item, predicate, isRoot) {\n return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot);\n };\n var right$1 = function (universe, item, predicate, isRoot) {\n return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot);\n };\n\n var isLeaf = function (universe) {\n return function (element) {\n return universe.property().children(element).length === 0;\n };\n };\n var before$3 = function (universe, item, isRoot) {\n return seekLeft(universe, item, isLeaf(universe), isRoot);\n };\n var after$4 = function (universe, item, isRoot) {\n return seekRight(universe, item, isLeaf(universe), isRoot);\n };\n var seekLeft = left$1;\n var seekRight = right$1;\n\n var universe$2 = DomUniverse();\n var before$4 = function (element, isRoot) {\n return before$3(universe$2, element, isRoot);\n };\n var after$5 = function (element, isRoot) {\n return after$4(universe$2, element, isRoot);\n };\n var seekLeft$1 = function (element, predicate, isRoot) {\n return seekLeft(universe$2, element, predicate, isRoot);\n };\n var seekRight$1 = function (element, predicate, isRoot) {\n return seekRight(universe$2, element, predicate, isRoot);\n };\n\n var ancestor$2 = function (scope, predicate, isRoot) {\n return ancestor(scope, predicate, isRoot).isSome();\n };\n\n var point = Immutable('element', 'offset');\n var delta = Immutable('element', 'deltaOffset');\n var range$2 = Immutable('element', 'start', 'finish');\n var points = Immutable('begin', 'end');\n var text = Immutable('element', 'text');\n\n var adt$5 = Adt.generate([\n { none: ['message'] },\n { success: [] },\n { failedUp: ['cell'] },\n { failedDown: ['cell'] }\n ]);\n var isOverlapping = function (bridge, before, after) {\n var beforeBounds = bridge.getRect(before);\n var afterBounds = bridge.getRect(after);\n return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;\n };\n var isRow = function (elem) {\n return closest$1(elem, 'tr');\n };\n var verify = function (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) {\n return closest$1(after, 'td,th', isRoot).bind(function (afterCell) {\n return closest$1(before, 'td,th', isRoot).map(function (beforeCell) {\n if (!eq(afterCell, beforeCell)) {\n return DomParent.sharedOne(isRow, [\n afterCell,\n beforeCell\n ]).fold(function () {\n return isOverlapping(bridge, beforeCell, afterCell) ? adt$5.success() : failure(beforeCell);\n }, function (_sharedRow) {\n return failure(beforeCell);\n });\n } else {\n return eq(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$5.none('in same cell');\n }\n });\n }).getOr(adt$5.none('default'));\n };\n var cata$2 = function (subject, onNone, onSuccess, onFailedUp, onFailedDown) {\n return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);\n };\n var BeforeAfter = __assign(__assign({}, adt$5), {\n verify: verify,\n cata: cata$2\n });\n\n var inAncestor = Immutable('ancestor', 'descendants', 'element', 'index');\n var inParent = Immutable('parent', 'children', 'element', 'index');\n var indexInParent = function (element) {\n return parent(element).bind(function (parent) {\n var children$1 = children(parent);\n return indexOf(children$1, element).map(function (index) {\n return inParent(parent, children$1, element, index);\n });\n });\n };\n var indexOf = function (elements, element) {\n return findIndex(elements, curry(eq, element));\n };\n\n var isBr = function (elem) {\n return name(elem) === 'br';\n };\n var gatherer = function (cand, gather, isRoot) {\n return gather(cand, isRoot).bind(function (target) {\n return isText(target) && get$3(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Option.some(target);\n });\n };\n var handleBr = function (isRoot, element, direction) {\n return direction.traverse(element).orThunk(function () {\n return gatherer(element, direction.gather, isRoot);\n }).map(direction.relative);\n };\n var findBr = function (element, offset) {\n return child(element, offset).filter(isBr).orThunk(function () {\n return child(element, offset - 1).filter(isBr);\n });\n };\n var handleParent = function (isRoot, element, offset, direction) {\n return findBr(element, offset).bind(function (br) {\n return direction.traverse(br).fold(function () {\n return gatherer(br, direction.gather, isRoot).map(direction.relative);\n }, function (adjacent) {\n return indexInParent(adjacent).map(function (info) {\n return Situ.on(info.parent(), info.index());\n });\n });\n });\n };\n var tryBr = function (isRoot, element, offset, direction) {\n var target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);\n return target.map(function (tgt) {\n return {\n start: constant(tgt),\n finish: constant(tgt)\n };\n });\n };\n var process = function (analysis) {\n return BeforeAfter.cata(analysis, function (message) {\n return Option.none();\n }, function () {\n return Option.none();\n }, function (cell) {\n return Option.some(point(cell, 0));\n }, function (cell) {\n return Option.some(point(cell, getEnd(cell)));\n });\n };\n var BrTags = {\n tryBr: tryBr,\n process: process\n };\n\n var nu$3 = MixedBag([\n 'left',\n 'top',\n 'right',\n 'bottom'\n ], []);\n var moveDown = function (caret, amount) {\n return nu$3({\n left: caret.left(),\n top: caret.top() + amount,\n right: caret.right(),\n bottom: caret.bottom() + amount\n });\n };\n var moveUp = function (caret, amount) {\n return nu$3({\n left: caret.left(),\n top: caret.top() - amount,\n right: caret.right(),\n bottom: caret.bottom() - amount\n });\n };\n var moveBottomTo = function (caret, bottom) {\n var height = caret.bottom() - caret.top();\n return nu$3({\n left: caret.left(),\n top: bottom - height,\n right: caret.right(),\n bottom: bottom\n });\n };\n var moveTopTo = function (caret, top) {\n var height = caret.bottom() - caret.top();\n return nu$3({\n left: caret.left(),\n top: top,\n right: caret.right(),\n bottom: top + height\n });\n };\n var translate = function (caret, xDelta, yDelta) {\n return nu$3({\n left: caret.left() + xDelta,\n top: caret.top() + yDelta,\n right: caret.right() + xDelta,\n bottom: caret.bottom() + yDelta\n });\n };\n var getTop$1 = function (caret) {\n return caret.top();\n };\n var getBottom = function (caret) {\n return caret.bottom();\n };\n var toString = function (caret) {\n return '(' + caret.left() + ', ' + caret.top() + ') -> (' + caret.right() + ', ' + caret.bottom() + ')';\n };\n var Carets = {\n nu: nu$3,\n moveUp: moveUp,\n moveDown: moveDown,\n moveBottomTo: moveBottomTo,\n moveTopTo: moveTopTo,\n getTop: getTop$1,\n getBottom: getBottom,\n translate: translate,\n toString: toString\n };\n\n var getPartialBox = function (bridge, element, offset) {\n if (offset >= 0 && offset < getEnd(element)) {\n return bridge.getRangedRect(element, offset, element, offset + 1);\n } else if (offset > 0) {\n return bridge.getRangedRect(element, offset - 1, element, offset);\n }\n return Option.none();\n };\n var toCaret = function (rect) {\n return Carets.nu({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom\n });\n };\n var getElemBox = function (bridge, element) {\n return Option.some(bridge.getRect(element));\n };\n var getBoxAt = function (bridge, element, offset) {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return getPartialBox(bridge, element, offset).map(toCaret);\n } else {\n return Option.none();\n }\n };\n var getEntireBox = function (bridge, element) {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret);\n } else {\n return Option.none();\n }\n };\n var Rectangles = {\n getBoxAt: getBoxAt,\n getEntireBox: getEntireBox\n };\n\n var JUMP_SIZE = 5;\n var NUM_RETRIES = 100;\n var adt$6 = Adt.generate([\n { none: [] },\n { retry: ['caret'] }\n ]);\n var isOutside = function (caret, box) {\n return caret.left() < box.left() || Math.abs(box.right() - caret.left()) < 1 || caret.left() > box.right();\n };\n var inOutsideBlock = function (bridge, element, caret) {\n return closest(element, DomStructure.isBlock).fold(constant(false), function (cell) {\n return Rectangles.getEntireBox(bridge, cell).exists(function (box) {\n return isOutside(caret, box);\n });\n });\n };\n var adjustDown = function (bridge, element, guessBox, original, caret) {\n var lowerCaret = Carets.moveDown(caret, JUMP_SIZE);\n if (Math.abs(guessBox.bottom() - original.bottom()) < 1) {\n return adt$6.retry(lowerCaret);\n } else if (guessBox.top() > caret.bottom()) {\n return adt$6.retry(lowerCaret);\n } else if (guessBox.top() === caret.bottom()) {\n return adt$6.retry(Carets.moveDown(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt$6.retry(Carets.translate(lowerCaret, JUMP_SIZE, 0)) : adt$6.none();\n }\n };\n var adjustUp = function (bridge, element, guessBox, original, caret) {\n var higherCaret = Carets.moveUp(caret, JUMP_SIZE);\n if (Math.abs(guessBox.top() - original.top()) < 1) {\n return adt$6.retry(higherCaret);\n } else if (guessBox.bottom() < caret.top()) {\n return adt$6.retry(higherCaret);\n } else if (guessBox.bottom() === caret.top()) {\n return adt$6.retry(Carets.moveUp(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt$6.retry(Carets.translate(higherCaret, JUMP_SIZE, 0)) : adt$6.none();\n }\n };\n var upMovement = {\n point: Carets.getTop,\n adjuster: adjustUp,\n move: Carets.moveUp,\n gather: before$4\n };\n var downMovement = {\n point: Carets.getBottom,\n adjuster: adjustDown,\n move: Carets.moveDown,\n gather: after$5\n };\n var isAtTable = function (bridge, x, y) {\n return bridge.elementFromPoint(x, y).filter(function (elm) {\n return name(elm) === 'table';\n }).isSome();\n };\n var adjustForTable = function (bridge, movement, original, caret, numRetries) {\n return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries);\n };\n var adjustTil = function (bridge, movement, original, caret, numRetries) {\n if (numRetries === 0) {\n return Option.some(caret);\n }\n if (isAtTable(bridge, caret.left(), movement.point(caret))) {\n return adjustForTable(bridge, movement, original, caret, numRetries - 1);\n }\n return bridge.situsFromPoint(caret.left(), movement.point(caret)).bind(function (guess) {\n return guess.start().fold(Option.none, function (element) {\n return Rectangles.getEntireBox(bridge, element).bind(function (guessBox) {\n return movement.adjuster(bridge, element, guessBox, original, caret).fold(Option.none, function (newCaret) {\n return adjustTil(bridge, movement, original, newCaret, numRetries - 1);\n });\n }).orThunk(function () {\n return Option.some(caret);\n });\n }, Option.none);\n });\n };\n var ieTryDown = function (bridge, caret) {\n return bridge.situsFromPoint(caret.left(), caret.bottom() + JUMP_SIZE);\n };\n var ieTryUp = function (bridge, caret) {\n return bridge.situsFromPoint(caret.left(), caret.top() - JUMP_SIZE);\n };\n var checkScroll = function (movement, adjusted, bridge) {\n if (movement.point(adjusted) > bridge.getInnerHeight()) {\n return Option.some(movement.point(adjusted) - bridge.getInnerHeight());\n } else if (movement.point(adjusted) < 0) {\n return Option.some(-movement.point(adjusted));\n } else {\n return Option.none();\n }\n };\n var retry = function (movement, bridge, caret) {\n var moved = movement.move(caret, JUMP_SIZE);\n var adjusted = adjustTil(bridge, movement, caret, moved, NUM_RETRIES).getOr(moved);\n return checkScroll(movement, adjusted, bridge).fold(function () {\n return bridge.situsFromPoint(adjusted.left(), movement.point(adjusted));\n }, function (delta) {\n bridge.scrollBy(0, delta);\n return bridge.situsFromPoint(adjusted.left(), movement.point(adjusted) - delta);\n });\n };\n var Retries = {\n tryUp: curry(retry, upMovement),\n tryDown: curry(retry, downMovement),\n ieTryUp: ieTryUp,\n ieTryDown: ieTryDown,\n getJumpSize: constant(JUMP_SIZE)\n };\n\n var MAX_RETRIES = 20;\n var platform$2 = detect$3();\n var findSpot = function (bridge, isRoot, direction) {\n return bridge.getSelection().bind(function (sel) {\n return BrTags.tryBr(isRoot, sel.finish(), sel.foffset(), direction).fold(function () {\n return Option.some(point(sel.finish(), sel.foffset()));\n }, function (brNeighbour) {\n var range = bridge.fromSitus(brNeighbour);\n var analysis = BeforeAfter.verify(bridge, sel.finish(), sel.foffset(), range.finish(), range.foffset(), direction.failure, isRoot);\n return BrTags.process(analysis);\n });\n });\n };\n var scan = function (bridge, isRoot, element, offset, direction, numRetries) {\n if (numRetries === 0) {\n return Option.none();\n }\n return tryCursor(bridge, isRoot, element, offset, direction).bind(function (situs) {\n var range = bridge.fromSitus(situs);\n var analysis = BeforeAfter.verify(bridge, element, offset, range.finish(), range.foffset(), direction.failure, isRoot);\n return BeforeAfter.cata(analysis, function () {\n return Option.none();\n }, function () {\n return Option.some(situs);\n }, function (cell) {\n if (eq(element, cell) && offset === 0) {\n return tryAgain(bridge, element, offset, Carets.moveUp, direction);\n } else {\n return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);\n }\n }, function (cell) {\n if (eq(element, cell) && offset === getEnd(cell)) {\n return tryAgain(bridge, element, offset, Carets.moveDown, direction);\n } else {\n return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1);\n }\n });\n });\n };\n var tryAgain = function (bridge, element, offset, move, direction) {\n return Rectangles.getBoxAt(bridge, element, offset).bind(function (box) {\n return tryAt(bridge, direction, move(box, Retries.getJumpSize()));\n });\n };\n var tryAt = function (bridge, direction, box) {\n if (platform$2.browser.isChrome() || platform$2.browser.isSafari() || platform$2.browser.isFirefox() || platform$2.browser.isEdge()) {\n return direction.otherRetry(bridge, box);\n } else if (platform$2.browser.isIE()) {\n return direction.ieRetry(bridge, box);\n } else {\n return Option.none();\n }\n };\n var tryCursor = function (bridge, isRoot, element, offset, direction) {\n return Rectangles.getBoxAt(bridge, element, offset).bind(function (box) {\n return tryAt(bridge, direction, box);\n });\n };\n var handle$2 = function (bridge, isRoot, direction) {\n return findSpot(bridge, isRoot, direction).bind(function (spot) {\n return scan(bridge, isRoot, spot.element(), spot.offset(), direction, MAX_RETRIES).map(bridge.fromSitus);\n });\n };\n var TableKeys = { handle: handle$2 };\n\n var detection = detect$3();\n var inSameTable = function (elem, table) {\n return ancestor$2(elem, function (e) {\n return parent(e).exists(function (p) {\n return eq(p, table);\n });\n });\n };\n var simulate = function (bridge, isRoot, direction, initial, anchor) {\n return closest$1(initial, 'td,th', isRoot).bind(function (start) {\n return closest$1(start, 'table', isRoot).bind(function (table) {\n if (!inSameTable(anchor, table)) {\n return Option.none();\n }\n return TableKeys.handle(bridge, isRoot, direction).bind(function (range) {\n return closest$1(range.finish(), 'td,th', isRoot).map(function (finish) {\n return {\n start: constant(start),\n finish: constant(finish),\n range: constant(range)\n };\n });\n });\n });\n });\n };\n var navigate = function (bridge, isRoot, direction, initial, anchor, precheck) {\n if (detection.browser.isIE()) {\n return Option.none();\n } else {\n return precheck(initial, isRoot).orThunk(function () {\n return simulate(bridge, isRoot, direction, initial, anchor).map(function (info) {\n var range = info.range();\n return Response.create(Option.some(Util.makeSitus(range.start(), range.soffset(), range.finish(), range.foffset())), true);\n });\n });\n }\n };\n var firstUpCheck = function (initial, isRoot) {\n return closest$1(initial, 'tr', isRoot).bind(function (startRow) {\n return closest$1(startRow, 'table', isRoot).bind(function (table) {\n var rows = descendants$1(table, 'tr');\n if (eq(startRow, rows[0])) {\n return seekLeft$1(table, function (element) {\n return last$1(element).isSome();\n }, isRoot).map(function (last) {\n var lastOffset = getEnd(last);\n return Response.create(Option.some(Util.makeSitus(last, lastOffset, last, lastOffset)), true);\n });\n } else {\n return Option.none();\n }\n });\n });\n };\n var lastDownCheck = function (initial, isRoot) {\n return closest$1(initial, 'tr', isRoot).bind(function (startRow) {\n return closest$1(startRow, 'table', isRoot).bind(function (table) {\n var rows = descendants$1(table, 'tr');\n if (eq(startRow, rows[rows.length - 1])) {\n return seekRight$1(table, function (element) {\n return first(element).isSome();\n }, isRoot).map(function (first) {\n return Response.create(Option.some(Util.makeSitus(first, 0, first, 0)), true);\n });\n } else {\n return Option.none();\n }\n });\n });\n };\n var select = function (bridge, container, isRoot, direction, initial, anchor, selectRange) {\n return simulate(bridge, isRoot, direction, initial, anchor).bind(function (info) {\n return KeySelection.detect(container, isRoot, info.start(), info.finish(), selectRange);\n });\n };\n var VerticalMovement = {\n navigate: navigate,\n select: select,\n firstUpCheck: firstUpCheck,\n lastDownCheck: lastDownCheck\n };\n\n var findCell = function (target, isRoot) {\n return closest$1(target, 'td,th', isRoot);\n };\n function MouseSelection (bridge, container, isRoot, annotations) {\n var cursor = Option.none();\n var clearState = function () {\n cursor = Option.none();\n };\n var mousedown = function (event) {\n annotations.clear(container);\n cursor = findCell(event.target(), isRoot);\n };\n var mouseover = function (event) {\n cursor.each(function (start) {\n annotations.clearBeforeUpdate(container);\n findCell(event.target(), isRoot).each(function (finish) {\n CellSelection.identify(start, finish, isRoot).each(function (cellSel) {\n var boxes = cellSel.boxes().getOr([]);\n if (boxes.length > 1 || boxes.length === 1 && !eq(start, finish)) {\n annotations.selectRange(container, boxes, cellSel.start(), cellSel.finish());\n bridge.selectContents(finish);\n }\n });\n });\n });\n };\n var mouseup = function (_event) {\n cursor.each(clearState);\n };\n return {\n mousedown: mousedown,\n mouseover: mouseover,\n mouseup: mouseup\n };\n }\n\n var down = {\n traverse: nextSibling,\n gather: after$5,\n relative: Situ.before,\n otherRetry: Retries.tryDown,\n ieRetry: Retries.ieTryDown,\n failure: BeforeAfter.failedDown\n };\n var up = {\n traverse: prevSibling,\n gather: before$4,\n relative: Situ.before,\n otherRetry: Retries.tryUp,\n ieRetry: Retries.ieTryUp,\n failure: BeforeAfter.failedUp\n };\n var KeyDirection = {\n down: down,\n up: up\n };\n\n var isKey = function (key) {\n return function (keycode) {\n return keycode === key;\n };\n };\n var isUp = isKey(38);\n var isDown = isKey(40);\n var isNavigation = function (keycode) {\n return keycode >= 37 && keycode <= 40;\n };\n var SelectionKeys = {\n ltr: {\n isBackward: isKey(37),\n isForward: isKey(39)\n },\n rtl: {\n isBackward: isKey(39),\n isForward: isKey(37)\n },\n isUp: isUp,\n isDown: isDown,\n isNavigation: isNavigation\n };\n\n var toRaw = function (sr) {\n return {\n left: sr.left(),\n top: sr.top(),\n right: sr.right(),\n bottom: sr.bottom(),\n width: sr.width(),\n height: sr.height()\n };\n };\n var Rect = { toRaw: toRaw };\n\n var isSafari = detect$3().browser.isSafari();\n var get$b = function (_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n var y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return Position(x, y);\n };\n var by = function (x, y, _DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n var win = doc.defaultView;\n win.scrollBy(x, y);\n };\n\n var WindowBridge = function (win) {\n var elementFromPoint = function (x, y) {\n return Element.fromPoint(Element.fromDom(win.document), x, y);\n };\n var getRect = function (element) {\n return element.dom().getBoundingClientRect();\n };\n var getRangedRect = function (start, soffset, finish, foffset) {\n var sel = Selection.exact(start, soffset, finish, foffset);\n return getFirstRect$1(win, sel).map(Rect.toRaw);\n };\n var getSelection = function () {\n return get$a(win).map(function (exactAdt) {\n return Util.convertToRange(win, exactAdt);\n });\n };\n var fromSitus = function (situs) {\n var relative = Selection.relative(situs.start(), situs.finish());\n return Util.convertToRange(win, relative);\n };\n var situsFromPoint = function (x, y) {\n return getAtPoint(win, x, y).map(function (exact) {\n return Situs.create(exact.start(), exact.soffset(), exact.finish(), exact.foffset());\n });\n };\n var clearSelection = function () {\n clear(win);\n };\n var collapseSelection = function (toStart) {\n if (toStart === void 0) {\n toStart = false;\n }\n get$a(win).each(function (sel) {\n return sel.fold(function (rng) {\n return rng.collapse(toStart);\n }, function (startSitu, finishSitu) {\n var situ = toStart ? startSitu : finishSitu;\n setRelative(win, situ, situ);\n }, function (start, soffset, finish, foffset) {\n var node = toStart ? start : finish;\n var offset = toStart ? soffset : foffset;\n setExact(win, node, offset, node, offset);\n });\n });\n };\n var selectContents = function (element) {\n setToElement(win, element);\n };\n var setSelection = function (sel) {\n setExact(win, sel.start(), sel.soffset(), sel.finish(), sel.foffset());\n };\n var setRelativeSelection = function (start, finish) {\n setRelative(win, start, finish);\n };\n var getInnerHeight = function () {\n return win.innerHeight;\n };\n var getScrollY = function () {\n var pos = get$b(Element.fromDom(win.document));\n return pos.top();\n };\n var scrollBy = function (x, y) {\n by(x, y, Element.fromDom(win.document));\n };\n return {\n elementFromPoint: elementFromPoint,\n getRect: getRect,\n getRangedRect: getRangedRect,\n getSelection: getSelection,\n fromSitus: fromSitus,\n situsFromPoint: situsFromPoint,\n clearSelection: clearSelection,\n collapseSelection: collapseSelection,\n setSelection: setSelection,\n setRelativeSelection: setRelativeSelection,\n selectContents: selectContents,\n getInnerHeight: getInnerHeight,\n getScrollY: getScrollY,\n scrollBy: scrollBy\n };\n };\n\n var rc = Immutable('rows', 'cols');\n var mouse = function (win, container, isRoot, annotations) {\n var bridge = WindowBridge(win);\n var handlers = MouseSelection(bridge, container, isRoot, annotations);\n return {\n mousedown: handlers.mousedown,\n mouseover: handlers.mouseover,\n mouseup: handlers.mouseup\n };\n };\n var keyboard = function (win, container, isRoot, annotations) {\n var bridge = WindowBridge(win);\n var clearToNavigate = function () {\n annotations.clear(container);\n return Option.none();\n };\n var keydown = function (event, start, soffset, finish, foffset, direction) {\n var realEvent = event.raw();\n var keycode = realEvent.which;\n var shiftKey = realEvent.shiftKey === true;\n var handler = CellSelection.retrieve(container, annotations.selectedSelector()).fold(function () {\n if (SelectionKeys.isDown(keycode) && shiftKey) {\n return curry(VerticalMovement.select, bridge, container, isRoot, KeyDirection.down, finish, start, annotations.selectRange);\n } else if (SelectionKeys.isUp(keycode) && shiftKey) {\n return curry(VerticalMovement.select, bridge, container, isRoot, KeyDirection.up, finish, start, annotations.selectRange);\n } else if (SelectionKeys.isDown(keycode)) {\n return curry(VerticalMovement.navigate, bridge, isRoot, KeyDirection.down, finish, start, VerticalMovement.lastDownCheck);\n } else if (SelectionKeys.isUp(keycode)) {\n return curry(VerticalMovement.navigate, bridge, isRoot, KeyDirection.up, finish, start, VerticalMovement.firstUpCheck);\n } else {\n return Option.none;\n }\n }, function (selected) {\n var update = function (attempts) {\n return function () {\n var navigation = findMap(attempts, function (delta) {\n return KeySelection.update(delta.rows(), delta.cols(), container, selected, annotations);\n });\n return navigation.fold(function () {\n return CellSelection.getEdges(container, annotations.firstSelectedSelector(), annotations.lastSelectedSelector()).map(function (edges) {\n var relative = SelectionKeys.isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before;\n bridge.setRelativeSelection(Situ.on(edges.first(), 0), relative(edges.table()));\n annotations.clear(container);\n return Response.create(Option.none(), true);\n });\n }, function (_) {\n return Option.some(Response.create(Option.none(), true));\n });\n };\n };\n if (SelectionKeys.isDown(keycode) && shiftKey) {\n return update([rc(+1, 0)]);\n } else if (SelectionKeys.isUp(keycode) && shiftKey) {\n return update([rc(-1, 0)]);\n } else if (direction.isBackward(keycode) && shiftKey) {\n return update([\n rc(0, -1),\n rc(-1, 0)\n ]);\n } else if (direction.isForward(keycode) && shiftKey) {\n return update([\n rc(0, +1),\n rc(+1, 0)\n ]);\n } else if (SelectionKeys.isNavigation(keycode) && shiftKey === false) {\n return clearToNavigate;\n } else {\n return Option.none;\n }\n });\n return handler();\n };\n var keyup = function (event, start, soffset, finish, foffset) {\n return CellSelection.retrieve(container, annotations.selectedSelector()).fold(function () {\n var realEvent = event.raw();\n var keycode = realEvent.which;\n var shiftKey = realEvent.shiftKey === true;\n if (shiftKey === false) {\n return Option.none();\n }\n if (SelectionKeys.isNavigation(keycode)) {\n return KeySelection.sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);\n } else {\n return Option.none();\n }\n }, Option.none);\n };\n return {\n keydown: keydown,\n keyup: keyup\n };\n };\n var external = function (win, container, isRoot, annotations) {\n var bridge = WindowBridge(win);\n return function (start, finish) {\n annotations.clearBeforeUpdate(container);\n CellSelection.identify(start, finish, isRoot).each(function (cellSel) {\n var boxes = cellSel.boxes().getOr([]);\n annotations.selectRange(container, boxes, cellSel.start(), cellSel.finish());\n bridge.selectContents(finish);\n bridge.collapseSelection();\n });\n };\n };\n var InputHandlers = {\n mouse: mouse,\n keyboard: keyboard,\n external: external\n };\n\n var remove$7 = function (element, classes) {\n each(classes, function (x) {\n remove$5(element, x);\n });\n };\n\n var addClass = function (clazz) {\n return function (element) {\n add$2(element, clazz);\n };\n };\n var removeClasses = function (classes) {\n return function (element) {\n remove$7(element, classes);\n };\n };\n\n var byClass = function (ephemera) {\n var addSelectionClass = addClass(ephemera.selected());\n var removeSelectionClasses = removeClasses([\n ephemera.selected(),\n ephemera.lastSelected(),\n ephemera.firstSelected()\n ]);\n var clear = function (container) {\n var sels = descendants$1(container, ephemera.selectedSelector());\n each(sels, removeSelectionClasses);\n };\n var selectRange = function (container, cells, start, finish) {\n clear(container);\n each(cells, addSelectionClass);\n add$2(start, ephemera.firstSelected());\n add$2(finish, ephemera.lastSelected());\n };\n return {\n clearBeforeUpdate: clear,\n clear: clear,\n selectRange: selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n var byAttr = function (ephemera, onSelection, onClear) {\n var removeSelectionAttributes = function (element) {\n remove(element, ephemera.selected());\n remove(element, ephemera.firstSelected());\n remove(element, ephemera.lastSelected());\n };\n var addSelectionAttribute = function (element) {\n set(element, ephemera.selected(), '1');\n };\n var clear = function (container) {\n clearBeforeUpdate(container);\n onClear();\n };\n var clearBeforeUpdate = function (container) {\n var sels = descendants$1(container, ephemera.selectedSelector());\n each(sels, removeSelectionAttributes);\n };\n var selectRange = function (container, cells, start, finish) {\n clear(container);\n each(cells, addSelectionAttribute);\n set(start, ephemera.firstSelected(), '1');\n set(finish, ephemera.lastSelected(), '1');\n onSelection(cells, start, finish);\n };\n return {\n clearBeforeUpdate: clearBeforeUpdate,\n clear: clear,\n selectRange: selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n var SelectionAnnotation = {\n byClass: byClass,\n byAttr: byAttr\n };\n\n var getUpOrLeftCells = function (grid, selectedCells, generators) {\n var upGrid = grid.slice(0, selectedCells[selectedCells.length - 1].row() + 1);\n var upDetails = toDetailList(upGrid, generators);\n return bind(upDetails, function (detail) {\n var slicedCells = detail.cells().slice(0, selectedCells[selectedCells.length - 1].column() + 1);\n return map(slicedCells, function (cell) {\n return cell.element();\n });\n });\n };\n var getDownOrRightCells = function (grid, selectedCells, generators) {\n var downGrid = grid.slice(selectedCells[0].row() + selectedCells[0].rowspan() - 1, grid.length);\n var downDetails = toDetailList(downGrid, generators);\n return bind(downDetails, function (detail) {\n var slicedCells = detail.cells().slice(selectedCells[0].column() + selectedCells[0].colspan() - 1, +detail.cells().length);\n return map(slicedCells, function (cell) {\n return cell.element();\n });\n });\n };\n var getOtherCells = function (table, target, generators) {\n var list = DetailsList.fromTable(table);\n var house = Warehouse.generate(list);\n var details = onCells(house, target);\n return details.map(function (selectedCells) {\n var grid = Transitions.toGrid(house, generators, false);\n var upOrLeftCells = getUpOrLeftCells(grid, selectedCells, generators);\n var downOrRightCells = getDownOrRightCells(grid, selectedCells, generators);\n return {\n upOrLeftCells: upOrLeftCells,\n downOrRightCells: downOrRightCells\n };\n });\n };\n var OtherCells = { getOtherCells: getOtherCells };\n\n var hasInternalTarget = function (e) {\n return has$2(Element.fromDom(e.target), 'ephox-snooker-resizer-bar') === false;\n };\n function CellSelection$1 (editor, lazyResize, selectionTargets) {\n var handlerStruct = MixedBag([\n 'mousedown',\n 'mouseover',\n 'mouseup',\n 'keyup',\n 'keydown'\n ], []);\n var handlers = Option.none();\n var cloneFormats = getCloneElements(editor);\n var onSelection = function (cells, start, finish) {\n selectionTargets.targets().each(function (targets) {\n var tableOpt = TableLookup.table(start);\n tableOpt.each(function (table) {\n var doc = Element.fromDom(editor.getDoc());\n var generators = TableFill.cellOperations(noop, doc, cloneFormats);\n var otherCells = OtherCells.getOtherCells(table, targets, generators);\n fireTableSelectionChange(editor, cells, start, finish, otherCells);\n });\n });\n };\n var onClear = function () {\n fireTableSelectionClear(editor);\n };\n var annotations = SelectionAnnotation.byAttr(Ephemera, onSelection, onClear);\n editor.on('init', function (e) {\n var win = editor.getWin();\n var body = getBody$1(editor);\n var isRoot = getIsRoot(editor);\n var syncSelection = function () {\n var sel = editor.selection;\n var start = Element.fromDom(sel.getStart());\n var end = Element.fromDom(sel.getEnd());\n var shared = DomParent.sharedOne(TableLookup.table, [\n start,\n end\n ]);\n shared.fold(function () {\n annotations.clear(body);\n }, noop);\n };\n var mouseHandlers = InputHandlers.mouse(win, body, isRoot, annotations);\n var keyHandlers = InputHandlers.keyboard(win, body, isRoot, annotations);\n var external = InputHandlers.external(win, body, isRoot, annotations);\n var hasShiftKey = function (event) {\n return event.raw().shiftKey === true;\n };\n editor.on('TableSelectorChange', function (e) {\n external(e.start, e.finish);\n });\n var handleResponse = function (event, response) {\n if (!hasShiftKey(event)) {\n return;\n }\n if (response.kill()) {\n event.kill();\n }\n response.selection().each(function (ns) {\n var relative = Selection.relative(ns.start(), ns.finish());\n var rng = asLtrRange(win, relative);\n editor.selection.setRng(rng);\n });\n };\n var keyup = function (event) {\n var wrappedEvent = wrapEvent(event);\n if (wrappedEvent.raw().shiftKey && SelectionKeys.isNavigation(wrappedEvent.raw().which)) {\n var rng = editor.selection.getRng();\n var start = Element.fromDom(rng.startContainer);\n var end = Element.fromDom(rng.endContainer);\n keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(function (response) {\n handleResponse(wrappedEvent, response);\n });\n }\n };\n var keydown = function (event) {\n var wrappedEvent = wrapEvent(event);\n lazyResize().each(function (resize) {\n resize.hideBars();\n });\n var rng = editor.selection.getRng();\n var startContainer = Element.fromDom(editor.selection.getStart());\n var start = Element.fromDom(rng.startContainer);\n var end = Element.fromDom(rng.endContainer);\n var direction = Direction.directionAt(startContainer).isRtl() ? SelectionKeys.rtl : SelectionKeys.ltr;\n keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(function (response) {\n handleResponse(wrappedEvent, response);\n });\n lazyResize().each(function (resize) {\n resize.showBars();\n });\n };\n var isMouseEvent = function (event) {\n return event.hasOwnProperty('x') && event.hasOwnProperty('y');\n };\n var wrapEvent = function (event) {\n var target = Element.fromDom(event.target);\n var stop = function () {\n event.stopPropagation();\n };\n var prevent = function () {\n event.preventDefault();\n };\n var kill = compose(prevent, stop);\n return {\n target: constant(target),\n x: constant(isMouseEvent(event) ? event.x : null),\n y: constant(isMouseEvent(event) ? event.y : null),\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: constant(event)\n };\n };\n var isLeftMouse = function (raw) {\n return raw.button === 0;\n };\n var isLeftButtonPressed = function (raw) {\n if (raw.buttons === undefined) {\n return true;\n }\n return (raw.buttons & 1) !== 0;\n };\n var mouseDown = function (e) {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mousedown(wrapEvent(e));\n }\n };\n var mouseOver = function (e) {\n if (isLeftButtonPressed(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseover(wrapEvent(e));\n }\n };\n var mouseUp = function (e) {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseup(wrapEvent(e));\n }\n };\n var getDoubleTap = function () {\n var lastTarget = Cell(Element.fromDom(body));\n var lastTimeStamp = Cell(0);\n var touchEnd = function (t) {\n var target = Element.fromDom(t.target);\n if (name(target) === 'td' || name(target) === 'th') {\n var lT = lastTarget.get();\n var lTS = lastTimeStamp.get();\n if (eq(lT, target) && t.timeStamp - lTS < 300) {\n t.preventDefault();\n external(target, target);\n }\n }\n lastTarget.set(target);\n lastTimeStamp.set(t.timeStamp);\n };\n return { touchEnd: touchEnd };\n };\n var doubleTap = getDoubleTap();\n editor.on('mousedown', mouseDown);\n editor.on('mouseover', mouseOver);\n editor.on('mouseup', mouseUp);\n editor.on('touchend', doubleTap.touchEnd);\n editor.on('keyup', keyup);\n editor.on('keydown', keydown);\n editor.on('NodeChange', syncSelection);\n handlers = Option.some(handlerStruct({\n mousedown: mouseDown,\n mouseover: mouseOver,\n mouseup: mouseUp,\n keyup: keyup,\n keydown: keydown\n }));\n });\n var destroy = function () {\n handlers.each(function (handlers) {\n });\n };\n return {\n clear: annotations.clear,\n destroy: destroy\n };\n }\n\n var Selections = function (editor) {\n var get = function () {\n var body = getBody$1(editor);\n return TableSelection.retrieve(body, Ephemera.selectedSelector()).fold(function () {\n if (editor.selection.getStart() === undefined) {\n return SelectionTypes.none();\n } else {\n return SelectionTypes.single(editor.selection);\n }\n }, function (cells) {\n return SelectionTypes.multiple(cells);\n });\n };\n return { get: get };\n };\n\n var getSelectionTargets = function (editor, selections) {\n var targets = Cell(Option.none());\n var changeHandlers = Cell([]);\n var findTargets = function () {\n return getSelectionStartCellOrCaption(editor).bind(function (cellOrCaption) {\n var table = TableLookup.table(cellOrCaption);\n return table.map(function (table) {\n if (name(cellOrCaption) === 'caption') {\n return TableTargets.notCell(cellOrCaption);\n } else {\n return TableTargets.forMenu(selections, table, cellOrCaption);\n }\n });\n });\n };\n var resetTargets = function () {\n targets.set(cached(findTargets)());\n each(changeHandlers.get(), function (handler) {\n return handler();\n });\n };\n var onSetup = function (api, isDisabled) {\n var handler = function () {\n return targets.get().fold(function () {\n api.setDisabled(true);\n }, function (targets) {\n api.setDisabled(isDisabled(targets));\n });\n };\n handler();\n changeHandlers.set(changeHandlers.get().concat([handler]));\n return function () {\n changeHandlers.set(filter(changeHandlers.get(), function (h) {\n return h !== handler;\n }));\n };\n };\n var onSetupTable = function (api) {\n return onSetup(api, function (_) {\n return false;\n });\n };\n var onSetupCellOrRow = function (api) {\n return onSetup(api, function (targets) {\n return name(targets.element()) === 'caption';\n });\n };\n var onSetupMergeable = function (api) {\n return onSetup(api, function (targets) {\n return targets.mergable().isNone();\n });\n };\n var onSetupUnmergeable = function (api) {\n return onSetup(api, function (targets) {\n return targets.unmergable().isNone();\n });\n };\n editor.on('NodeChange TableSelectorChange', resetTargets);\n return {\n onSetupTable: onSetupTable,\n onSetupCellOrRow: onSetupCellOrRow,\n onSetupMergeable: onSetupMergeable,\n onSetupUnmergeable: onSetupUnmergeable,\n resetTargets: resetTargets,\n targets: function () {\n return targets.get();\n }\n };\n };\n\n var addButtons = function (editor, selectionTargets) {\n editor.ui.registry.addMenuButton('table', {\n tooltip: 'Table',\n icon: 'table',\n fetch: function (callback) {\n return callback('inserttable | cell row column | advtablesort | tableprops deletetable');\n }\n });\n var cmd = function (command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n editor.ui.registry.addButton('tableprops', {\n tooltip: 'Table properties',\n onAction: cmd('mceTableProps'),\n icon: 'table',\n onSetup: selectionTargets.onSetupTable\n });\n editor.ui.registry.addButton('tabledelete', {\n tooltip: 'Delete table',\n onAction: cmd('mceTableDelete'),\n icon: 'table-delete-table',\n onSetup: selectionTargets.onSetupTable\n });\n editor.ui.registry.addButton('tablecellprops', {\n tooltip: 'Cell properties',\n onAction: cmd('mceTableCellProps'),\n icon: 'table-cell-properties',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablemergecells', {\n tooltip: 'Merge cells',\n onAction: cmd('mceTableMergeCells'),\n icon: 'table-merge-cells',\n onSetup: selectionTargets.onSetupMergeable\n });\n editor.ui.registry.addButton('tablesplitcells', {\n tooltip: 'Split cell',\n onAction: cmd('mceTableSplitCells'),\n icon: 'table-split-cells',\n onSetup: selectionTargets.onSetupUnmergeable\n });\n editor.ui.registry.addButton('tableinsertrowbefore', {\n tooltip: 'Insert row before',\n onAction: cmd('mceTableInsertRowBefore'),\n icon: 'table-insert-row-above',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertrowafter', {\n tooltip: 'Insert row after',\n onAction: cmd('mceTableInsertRowAfter'),\n icon: 'table-insert-row-after',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tabledeleterow', {\n tooltip: 'Delete row',\n onAction: cmd('mceTableDeleteRow'),\n icon: 'table-delete-row',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablerowprops', {\n tooltip: 'Row properties',\n onAction: cmd('mceTableRowProps'),\n icon: 'table-row-properties',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertcolbefore', {\n tooltip: 'Insert column before',\n onAction: cmd('mceTableInsertColBefore'),\n icon: 'table-insert-column-before',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertcolafter', {\n tooltip: 'Insert column after',\n onAction: cmd('mceTableInsertColAfter'),\n icon: 'table-insert-column-after',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tabledeletecol', {\n tooltip: 'Delete column',\n onAction: cmd('mceTableDeleteCol'),\n icon: 'table-delete-column',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablecutrow', {\n tooltip: 'Cut row',\n onAction: cmd('mceTableCutRow'),\n icon: 'temporary-placeholder',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablecopyrow', {\n tooltip: 'Copy row',\n onAction: cmd('mceTableCopyRow'),\n icon: 'temporary-placeholder',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablepasterowbefore', {\n tooltip: 'Paste row before',\n onAction: cmd('mceTablePasteRowBefore'),\n icon: 'temporary-placeholder',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablepasterowafter', {\n tooltip: 'Paste row after',\n onAction: cmd('mceTablePasteRowAfter'),\n icon: 'temporary-placeholder',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertdialog', {\n tooltip: 'Insert table',\n onAction: cmd('mceInsertTable'),\n icon: 'table'\n });\n };\n var addToolbars = function (editor) {\n var isTable = function (table) {\n return editor.dom.is(table, 'table') && editor.getBody().contains(table);\n };\n var toolbar = getToolbar(editor);\n if (toolbar.length > 0) {\n editor.ui.registry.addContextToolbar('table', {\n predicate: isTable,\n items: toolbar,\n scope: 'node',\n position: 'node'\n });\n }\n };\n var Buttons = {\n addButtons: addButtons,\n addToolbars: addToolbars\n };\n\n var addMenuItems = function (editor, selectionTargets) {\n var cmd = function (command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n var insertTableAction = function (_a) {\n var numRows = _a.numRows, numColumns = _a.numColumns;\n editor.undoManager.transact(function () {\n InsertTable.insert(editor, numColumns, numRows);\n });\n editor.addVisual();\n };\n var tableProperties = {\n text: 'Table properties',\n onSetup: selectionTargets.onSetupTable,\n onAction: cmd('mceTableProps')\n };\n var deleteTable = {\n text: 'Delete table',\n icon: 'table-delete-table',\n onSetup: selectionTargets.onSetupTable,\n onAction: cmd('mceTableDelete')\n };\n var rowItems = [\n {\n type: 'menuitem',\n text: 'Insert row before',\n icon: 'table-insert-row-above',\n onAction: cmd('mceTableInsertRowBefore'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Insert row after',\n icon: 'table-insert-row-after',\n onAction: cmd('mceTableInsertRowAfter'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Delete row',\n icon: 'table-delete-row',\n onAction: cmd('mceTableDeleteRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Row properties',\n icon: 'table-row-properties',\n onAction: cmd('mceTableRowProps'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n { type: 'separator' },\n {\n type: 'menuitem',\n text: 'Cut row',\n onAction: cmd('mceTableCutRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Copy row',\n onAction: cmd('mceTableCopyRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Paste row before',\n onAction: cmd('mceTablePasteRowBefore'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Paste row after',\n onAction: cmd('mceTablePasteRowAfter'),\n onSetup: selectionTargets.onSetupCellOrRow\n }\n ];\n var row = {\n type: 'nestedmenuitem',\n text: 'Row',\n getSubmenuItems: function () {\n return rowItems;\n }\n };\n var columnItems = [\n {\n type: 'menuitem',\n text: 'Insert column before',\n icon: 'table-insert-column-before',\n onAction: cmd('mceTableInsertColBefore'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Insert column after',\n icon: 'table-insert-column-after',\n onAction: cmd('mceTableInsertColAfter'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Delete column',\n icon: 'table-delete-column',\n onAction: cmd('mceTableDeleteCol'),\n onSetup: selectionTargets.onSetupCellOrRow\n }\n ];\n var column = {\n type: 'nestedmenuitem',\n text: 'Column',\n getSubmenuItems: function () {\n return columnItems;\n }\n };\n var cellItems = [\n {\n type: 'menuitem',\n text: 'Cell properties',\n icon: 'table-cell-properties',\n onAction: cmd('mceTableCellProps'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Merge cells',\n icon: 'table-merge-cells',\n onAction: cmd('mceTableMergeCells'),\n onSetup: selectionTargets.onSetupMergeable\n },\n {\n type: 'menuitem',\n text: 'Split cell',\n icon: 'table-split-cells',\n onAction: cmd('mceTableSplitCells'),\n onSetup: selectionTargets.onSetupUnmergeable\n }\n ];\n var cell = {\n type: 'nestedmenuitem',\n text: 'Cell',\n getSubmenuItems: function () {\n return cellItems;\n }\n };\n if (hasTableGrid(editor) === false) {\n editor.ui.registry.addMenuItem('inserttable', {\n text: 'Table',\n icon: 'table',\n onAction: cmd('mceInsertTable')\n });\n } else {\n editor.ui.registry.addNestedMenuItem('inserttable', {\n text: 'Table',\n icon: 'table',\n getSubmenuItems: function () {\n return [{\n type: 'fancymenuitem',\n fancytype: 'inserttable',\n onAction: insertTableAction\n }];\n }\n });\n }\n editor.ui.registry.addMenuItem('inserttabledialog', {\n text: 'Insert table',\n icon: 'table',\n onAction: cmd('mceInsertTable')\n });\n editor.ui.registry.addMenuItem('tableprops', tableProperties);\n editor.ui.registry.addMenuItem('deletetable', deleteTable);\n editor.ui.registry.addNestedMenuItem('row', row);\n editor.ui.registry.addNestedMenuItem('column', column);\n editor.ui.registry.addNestedMenuItem('cell', cell);\n editor.ui.registry.addContextMenu('table', {\n update: function () {\n selectionTargets.resetTargets();\n return selectionTargets.targets().fold(function () {\n return '';\n }, function (targets) {\n if (name(targets.element()) === 'caption') {\n return 'tableprops deletetable';\n } else {\n return 'cell row column | advtablesort | tableprops deletetable';\n }\n });\n }\n });\n };\n var MenuItems = { addMenuItems: addMenuItems };\n\n var getClipboardRows = function (clipboardRows) {\n return clipboardRows.get().fold(function () {\n return;\n }, function (rows) {\n return map(rows, function (row) {\n return row.dom();\n });\n });\n };\n var setClipboardRows = function (rows, clipboardRows) {\n var sugarRows = map(rows, Element.fromDom);\n clipboardRows.set(Option.from(sugarRows));\n };\n var getApi = function (editor, clipboardRows, resizeHandler, selectionTargets) {\n return {\n insertTable: function (columns, rows) {\n return InsertTable.insert(editor, columns, rows);\n },\n setClipboardRows: function (rows) {\n return setClipboardRows(rows, clipboardRows);\n },\n getClipboardRows: function () {\n return getClipboardRows(clipboardRows);\n },\n resizeHandler: resizeHandler,\n selectionTargets: selectionTargets\n };\n };\n\n function Plugin(editor) {\n var selections = Selections(editor);\n var selectionTargets = getSelectionTargets(editor, selections);\n var resizeHandler = getResizeHandler(editor);\n var cellSelection = CellSelection$1(editor, resizeHandler.lazyResize, selectionTargets);\n var actions = TableActions(editor, resizeHandler.lazyWire);\n var clipboardRows = Cell(Option.none());\n Commands.registerCommands(editor, actions, cellSelection, selections, clipboardRows);\n Clipboard.registerEvents(editor, selections, actions, cellSelection);\n MenuItems.addMenuItems(editor, selectionTargets);\n Buttons.addButtons(editor, selectionTargets);\n Buttons.addToolbars(editor);\n editor.on('PreInit', function () {\n editor.serializer.addTempAttr(Ephemera.firstSelected());\n editor.serializer.addTempAttr(Ephemera.lastSelected());\n });\n if (hasTabNavigation(editor)) {\n editor.on('keydown', function (e) {\n TabContext.handle(e, editor, actions, resizeHandler.lazyWire);\n });\n }\n editor.on('remove', function () {\n resizeHandler.destroy();\n cellSelection.destroy();\n });\n return getApi(editor, clipboardRows, resizeHandler, selectionTargets);\n }\n function Plugin$1 () {\n global.add('table', Plugin);\n }\n\n Plugin$1();\n\n}(window));\n","import axios from '@/plugins/axios'\r\n\r\nexport function getAnnouncements(params = {}) {\r\n return axios.get('announcements', {\r\n params,\r\n })\r\n}\r\n\r\nexport function editAnnouncement(id) {\r\n return axios.get(`announcements/${id}/edit`)\r\n}\r\n\r\nexport function storeAnnouncement(data) {\r\n return axios.post('announcements', data)\r\n}\r\n\r\nexport function updateAnnouncement(id, data) {\r\n return axios.put(`announcements/${id}`, data)\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-card',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('content-header')]},proxy:true}])},[_c('el-row',{attrs:{\"type\":\"flex\"}},[_c('lz-form',{ref:\"form\",attrs:{\"get-data\":_vm.getData,\"submit\":_vm.onSubmit,\"form\":_vm.form,\"errors\":_vm.errors,\"edit-mode\":_vm.editMode},on:{\"update:form\":function($event){_vm.form=$event},\"update:errors\":function($event){_vm.errors=$event}}},[_c('el-form-item',{attrs:{\"label\":\"公告标题\",\"required\":\"\",\"prop\":\"title\"}},[_c('el-input',{model:{value:(_vm.form.title),callback:function ($$v) {_vm.$set(_vm.form, \"title\", $$v)},expression:\"form.title\"}})],1),_c('el-form-item',{attrs:{\"label\":\"公告描述\",\"required\":\"\",\"prop\":\"description\"}},[_c('el-input',{model:{value:(_vm.form.description),callback:function ($$v) {_vm.$set(_vm.form, \"description\", $$v)},expression:\"form.description\"}})],1),_c('el-form-item',{attrs:{\"label\":\"投放区域\",\"required\":\"\",\"prop\":\"area_id\"}},[_c('el-select',{attrs:{\"clearable\":\"\",\"placeholder\":\"选择区域\"},model:{value:(_vm.form.area_id),callback:function ($$v) {_vm.$set(_vm.form, \"area_id\", $$v)},expression:\"form.area_id\"}},_vm._l((_vm.areas),function(i){return _c('el-option',{key:i.id,attrs:{\"label\":i.name,\"value\":i.id}})}),1)],1),_c('el-form-item',{attrs:{\"label\":\"公告详情\",\"required\":\"\",\"prop\":\"body\"}},[_c('tinymce-editor',{ref:\"editor\",attrs:{\"disabled\":_vm.disabled},on:{\"onClick\":_vm.onClick},model:{value:(_vm.form.body),callback:function ($$v) {_vm.$set(_vm.form, \"body\", $$v)},expression:\"form.body\"}})],1),_c('el-form-item',{attrs:{\"label\":\"投放状态\",\"required\":\"\",\"prop\":\"status\"}},[_c('el-radio',{attrs:{\"label\":\"0\"},model:{value:(_vm.form.status),callback:function ($$v) {_vm.$set(_vm.form, \"status\", $$v)},expression:\"form.status\"}},[_vm._v(\"无效\")]),_c('el-radio',{attrs:{\"label\":\"1\"},model:{value:(_vm.form.status),callback:function ($$v) {_vm.$set(_vm.form, \"status\", $$v)},expression:\"form.status\"}},[_vm._v(\"有效\")])],1),_c('el-form-item',{attrs:{\"label\":\"过期时间\",\"required\":\"\",\"prop\":\"expiration_time\"}},[_c('el-date-picker',{attrs:{\"type\":\"datetime\",\"placeholder\":\"选择日期时间\"},model:{value:(_vm.form.expiration_time),callback:function ($$v) {_vm.$set(_vm.form, \"expiration_time\", $$v)},expression:\"form.expiration_time\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tinymce-editor\"},[_c('editor',{attrs:{\"init\":_vm.init,\"disabled\":_vm.disabled},on:{\"onClick\":_vm.onClick},model:{value:(_vm.myValue),callback:function ($$v) {_vm.myValue=$$v},expression:\"myValue\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nvar validEvents = [\n 'onActivate',\n 'onAddUndo',\n 'onBeforeAddUndo',\n 'onBeforeExecCommand',\n 'onBeforeGetContent',\n 'onBeforeRenderUI',\n 'onBeforeSetContent',\n 'onBeforePaste',\n 'onBlur',\n 'onChange',\n 'onClearUndos',\n 'onClick',\n 'onContextMenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onDeactivate',\n 'onDirty',\n 'onDrag',\n 'onDragDrop',\n 'onDragEnd',\n 'onDragGesture',\n 'onDragOver',\n 'onDrop',\n 'onExecCommand',\n 'onFocus',\n 'onFocusIn',\n 'onFocusOut',\n 'onGetContent',\n 'onHide',\n 'onInit',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onLoadContent',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onNodeChange',\n 'onObjectResizeStart',\n 'onObjectResized',\n 'onObjectSelected',\n 'onPaste',\n 'onPostProcess',\n 'onPostRender',\n 'onPreProcess',\n 'onProgressState',\n 'onRedo',\n 'onRemove',\n 'onReset',\n 'onSaveContent',\n 'onSelectionChange',\n 'onSetAttrib',\n 'onSetContent',\n 'onShow',\n 'onSubmit',\n 'onUndo',\n 'onVisualAid'\n];\nvar isValidKey = function (key) { return validEvents.indexOf(key) !== -1; };\nexport var bindHandlers = function (initEvent, listeners, editor) {\n Object.keys(listeners)\n .filter(isValidKey)\n .forEach(function (key) {\n var handler = listeners[key];\n if (typeof handler === 'function') {\n if (key === 'onInit') {\n handler(initEvent, editor);\n }\n else {\n editor.on(key.substring(2), function (e) { return handler(e, editor); });\n }\n }\n });\n};\nexport var bindModelHandlers = function (ctx, editor) {\n var modelEvents = ctx.$props.modelEvents ? ctx.$props.modelEvents : null;\n var normalizedEvents = Array.isArray(modelEvents) ? modelEvents.join(' ') : modelEvents;\n var currentContent;\n ctx.$watch('value', function (val, prevVal) {\n if (editor && typeof val === 'string' && val !== currentContent && val !== prevVal) {\n editor.setContent(val);\n currentContent = val;\n }\n });\n editor.on(normalizedEvents ? normalizedEvents : 'change keyup undo redo', function () {\n currentContent = editor.getContent();\n ctx.$emit('input', currentContent);\n });\n};\nexport var initEditor = function (initEvent, ctx, editor) {\n var value = ctx.$props.value ? ctx.$props.value : '';\n var initialValue = ctx.$props.initialValue ? ctx.$props.initialValue : '';\n editor.setContent(value || initialValue);\n // checks if the v-model shorthand is used (which sets an v-on:input listener) and then binds either\n // specified the events or defaults to \"change keyup\" event and emits the editor content on that event\n if (ctx.$listeners.input) {\n bindModelHandlers(ctx, editor);\n }\n bindHandlers(initEvent, ctx.$listeners, editor);\n};\nvar unique = 0;\nexport var uuid = function (prefix) {\n var time = Date.now();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n};\nexport var isTextarea = function (element) {\n return element !== null && element.tagName.toLowerCase() === 'textarea';\n};\nvar normalizePluginArray = function (plugins) {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\nexport var mergePlugins = function (initPlugins, inputPlugins) {\n return normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));\n};\n","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport { uuid } from './Utils';\nvar injectScriptTag = function (scriptId, doc, url, callback) {\n var scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = scriptId;\n scriptTag.addEventListener('load', callback);\n scriptTag.src = url;\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n};\nexport var create = function () {\n return {\n listeners: [],\n scriptId: uuid('tiny-script'),\n scriptLoaded: false\n };\n};\nexport var load = function (state, doc, url, callback) {\n if (state.scriptLoaded) {\n callback();\n }\n else {\n state.listeners.push(callback);\n if (!doc.getElementById(state.scriptId)) {\n injectScriptTag(state.scriptId, doc, url, function () {\n state.listeners.forEach(function (fn) { return fn(); });\n state.scriptLoaded = true;\n });\n }\n }\n};\n","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nexport var editorProps = {\n apiKey: String,\n cloudChannel: String,\n id: String,\n init: Object,\n initialValue: String,\n inline: Boolean,\n modelEvents: [String, Array],\n plugins: [String, Array],\n tagName: String,\n toolbar: [String, Array],\n value: String,\n disabled: Boolean\n};\n","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as ScriptLoader from '../ScriptLoader';\nimport { getTinymce } from '../TinyMCE';\nimport { initEditor, isTextarea, mergePlugins, uuid } from '../Utils';\nimport { editorProps } from './EditorPropTypes';\nvar scriptState = ScriptLoader.create();\nvar renderInline = function (h, id, tagName) {\n return h(tagName ? tagName : 'div', {\n attrs: { id: id }\n });\n};\nvar renderIframe = function (h, id) {\n return h('textarea', {\n attrs: { id: id },\n style: { visibility: 'hidden' }\n });\n};\nvar initialise = function (ctx) { return function () {\n var finalInit = __assign({}, ctx.$props.init, { readonly: ctx.$props.disabled, selector: \"#\" + ctx.elementId, plugins: mergePlugins(ctx.$props.init && ctx.$props.init.plugins, ctx.$props.plugins), toolbar: ctx.$props.toolbar || (ctx.$props.init && ctx.$props.init.toolbar), inline: ctx.inlineEditor, setup: function (editor) {\n ctx.editor = editor;\n editor.on('init', function (e) { return initEditor(e, ctx, editor); });\n if (ctx.$props.init && typeof ctx.$props.init.setup === 'function') {\n ctx.$props.init.setup(editor);\n }\n } });\n if (isTextarea(ctx.element)) {\n ctx.element.style.visibility = '';\n }\n getTinymce().init(finalInit);\n}; };\nexport var Editor = {\n props: editorProps,\n created: function () {\n this.elementId = this.$props.id || uuid('tiny-vue');\n this.inlineEditor = (this.$props.init && this.$props.init.inline) || this.$props.inline;\n },\n watch: {\n disabled: function () {\n this.editor.setMode(this.disabled ? 'readonly' : 'design');\n }\n },\n mounted: function () {\n this.element = this.$el;\n if (getTinymce() !== null) {\n initialise(this)();\n }\n else if (this.element && this.element.ownerDocument) {\n var doc = this.element.ownerDocument;\n var channel = this.$props.cloudChannel ? this.$props.cloudChannel : '5';\n var apiKey = this.$props.apiKey ? this.$props.apiKey : 'no-api-key';\n ScriptLoader.load(scriptState, doc, \"https://cdn.tiny.cloud/1/\" + apiKey + \"/tinymce/\" + channel + \"/tinymce.min.js\", initialise(this));\n }\n },\n beforeDestroy: function () {\n if (getTinymce() !== null) {\n getTinymce().remove(this.editor);\n }\n },\n render: function (h) {\n return this.inlineEditor ? renderInline(h, this.elementId, this.$props.tagName) : renderIframe(h, this.elementId);\n }\n};\n","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport { Editor } from './components/Editor';\nexport default Editor;\n","<template>\r\n <div class=\"tinymce-editor\">\r\n <editor\r\n v-model=\"myValue\"\r\n :init=\"init\"\r\n :disabled=\"disabled\"\r\n @onClick=\"onClick\"\r\n />\r\n </div>\r\n</template>\r\n<script>\r\nimport tinymce from 'tinymce/tinymce'\r\nimport Editor from '@tinymce/tinymce-vue'\r\nimport 'tinymce/themes/silver'\r\n// 编辑器插件plugins\r\n// 更多插件参考:https://www.tiny.cloud/docs/plugins/\r\nimport 'tinymce/plugins/image'// 插入上传图片插件\r\nimport 'tinymce/plugins/media'// 插入视频插件\r\nimport 'tinymce/plugins/table'// 插入表格插件\r\nimport 'tinymce/plugins/lists'// 列表插件\r\nimport 'tinymce/plugins/wordcount'// 字数统计插件\r\nimport { getToken } from '@/libs/token'\r\n\r\nexport default {\r\n components: {\r\n Editor,\r\n },\r\n props: {\r\n value: {\r\n type: String,\r\n default: '',\r\n },\r\n // 基本路径,默认为空根目录,如果你的项目发布后的地址为目录形式,\r\n // 即abc.com/tinymce,baseUrl需要配置成tinymce,不然发布后资源会找不到\r\n baseUrl: {\r\n type: String,\r\n default: '',\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n plugins: {\r\n type: [String, Array],\r\n default: 'lists image media table wordcount',\r\n },\r\n toolbar: {\r\n type: [String, Array],\r\n default: 'undo redo | formatselect | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists image media table | removeformat',\r\n },\r\n },\r\n data() {\r\n return {\r\n init: {\r\n language: 'zh_CN',\r\n language_url: `${this.baseUrl}/tinymce/langs/zh_CN.js`,\r\n skin_url: `${this.baseUrl}/tinymce/skins/ui/oxide`,\r\n content_css: `${this.baseUrl}/tinymce/skins/content/default/content.css`,\r\n // skin_url: `${this.baseUrl}/tinymce/skins/ui/oxide-dark`, // 暗色系\r\n // content_css: `${this.baseUrl}/tinymce/skins/content/dark/content.css`, // 暗色系\r\n height: 300,\r\n plugins: this.plugins,\r\n toolbar: this.toolbar,\r\n branding: false,\r\n menubar: false,\r\n // 此处为图片上传处理函数,这个直接用了base64的图片形式上传图片,\r\n // 如需ajax上传可参考https://www.tiny.cloud/docs/configure/file-image-upload/#images_upload_handler\r\n // images_upload_handler: (blobInfo, success, failure) => {\r\n // const img = 'data:image/jpeg;base64,' + blobInfo.base64()\r\n // success(img)\r\n // },\r\n images_upload_handler: function (blobInfo, success, failure) {\r\n var xhr, formData\r\n var token = getToken()\r\n xhr = new XMLHttpRequest()\r\n xhr.withCredentials = false\r\n xhr.open('POST', '/admin-api/announcements/uploadImg2')\r\n xhr.setRequestHeader('Authorization', token)\r\n\r\n xhr.onload = function () {\r\n var json\r\n\r\n if (xhr.status != 200) {\r\n failure('HTTP Error: ' + xhr.status)\r\n return\r\n }\r\n json = JSON.parse(xhr.responseText)\r\n\r\n if (!json || typeof json.location !== 'string') {\r\n failure('Invalid JSON: ' + xhr.responseText)\r\n return\r\n }\r\n\r\n success(json.location)\r\n }\r\n\r\n formData = new FormData()\r\n formData.append('img', blobInfo.blob(), blobInfo.filename())\r\n\r\n xhr.send(formData)\r\n },\r\n },\r\n myValue: this.value,\r\n }\r\n },\r\n mounted() {\r\n tinymce.init(this.init)\r\n },\r\n methods: {\r\n // 添加相关的事件,可用的事件参照文档=> https://github.com/tinymce/tinymce-vue => All available events\r\n // 需要什么事件可以自己增加\r\n onClick(e) {\r\n this.$emit('onClick', e, tinymce)\r\n },\r\n // 可以添加一些自己的自定义事件,如清空内容\r\n clear() {\r\n this.myValue = ''\r\n },\r\n },\r\n watch: {\r\n value(newValue) {\r\n this.myValue = newValue\r\n },\r\n myValue(newValue) {\r\n this.$emit('input', newValue)\r\n },\r\n },\r\n}\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TinymceEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TinymceEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TinymceEditor.vue?vue&type=template&id=2a57f782&\"\nimport script from \"./TinymceEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./TinymceEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <el-card>\r\n <template #header>\r\n <content-header/>\r\n </template>\r\n <el-row type=\"flex\">\r\n <lz-form\r\n ref=\"form\"\r\n :get-data=\"getData\"\r\n :submit=\"onSubmit\"\r\n :form.sync=\"form\"\r\n :errors.sync=\"errors\"\r\n :edit-mode=\"editMode\"\r\n >\r\n <el-form-item label=\"公告标题\" required prop=\"title\">\r\n <el-input v-model=\"form.title\"/>\r\n </el-form-item>\r\n <el-form-item label=\"公告描述\" required prop=\"description\">\r\n <el-input v-model=\"form.description\"/>\r\n </el-form-item>\r\n <el-form-item label=\"投放区域\" required prop=\"area_id\">\r\n <el-select\r\n v-model=\"form.area_id\"\r\n clearable\r\n placeholder=\"选择区域\"\r\n >\r\n <el-option\r\n v-for=\"i in areas\"\r\n :key=\"i.id\"\r\n :label=\"i.name\"\r\n :value=\"i.id\"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"公告详情\" required prop=\"body\">\r\n <!-- <Editor :value=\"form.body\" @input=\"handelIncrease\"/> -->\r\n <tinymce-editor\r\n ref=\"editor\"\r\n v-model=\"form.body\"\r\n :disabled=\"disabled\"\r\n @onClick=\"onClick\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"投放状态\" required prop=\"status\">\r\n <el-radio v-model=\"form.status\" label=\"0\">无效</el-radio>\r\n <el-radio v-model=\"form.status\" label=\"1\">有效</el-radio>\r\n </el-form-item>\r\n <el-form-item label=\"过期时间\" required prop=\"expiration_time\">\r\n <el-date-picker\r\n v-model=\"form.expiration_time\"\r\n type=\"datetime\"\r\n placeholder=\"选择日期时间\"\r\n />\r\n </el-form-item>\r\n </lz-form>\r\n </el-row>\r\n </el-card>\r\n</template>\r\n\r\n<script>\r\nimport { editAnnouncement, storeAnnouncement, updateAnnouncement } from '@/api/announcements'\r\nimport { getAreas } from '@/api/area'\r\nimport LzForm from '@c/LzForm'\r\nimport FormHelper from '@c/LzForm/FormHelper'\r\nimport Editor from '@c/Editor'\r\nimport TinymceEditor from '@c/Tinymce/TinymceEditor'\r\n\r\nexport default {\r\n name: 'Form',\r\n components: {\r\n LzForm,\r\n Editor,\r\n TinymceEditor,\r\n },\r\n mixins: [\r\n FormHelper,\r\n ],\r\n data() {\r\n return {\r\n form: {\r\n title: '',\r\n description: '',\r\n area_id: '',\r\n body: '',\r\n status: '1',\r\n expiration_time: '',\r\n },\r\n msg: '',\r\n disabled: false,\r\n errors: {},\r\n areas: [],\r\n showDetail: false,\r\n }\r\n },\r\n created() {\r\n if (this.editMode == false) {\r\n this.showDetail = true\r\n }\r\n },\r\n methods: {\r\n async getData() {\r\n const [\r\n { data: areas },\r\n ] = await Promise.all([\r\n getAreas({ all: 1 }),\r\n ])\r\n\r\n this.areas = [{ id: 0, name: '全部' }]\r\n areas.map(i => {\r\n this.areas.push({ id: i.id, name: i.name })\r\n })\r\n\r\n // console.log(thisstatus.editMode)\r\n if (this.editMode) {\r\n const { data } = await editAnnouncement(this.resourceId)\r\n data.status = data.status ? '1' : '0'\r\n this.fillForm(data)\r\n // console.log(this.form.detail, 2222)\r\n }\r\n },\r\n async onSubmit() {\r\n if (this.editMode) {\r\n await updateAnnouncement(this.resourceId, this.form)\r\n } else {\r\n await storeAnnouncement(this.form)\r\n }\r\n },\r\n handelIncrease(step) {\r\n // console.log('step', step)\r\n if (this.form.body == '') {\r\n this.showDetail = true\r\n }\r\n this.form.body = step\r\n },\r\n onClick(e, editor) {\r\n // console.log('Element clicked')\r\n // console.log(e)\r\n // console.log(editor)\r\n },\r\n },\r\n}\r\n</script>\r\n<style>\r\n .avatar-uploader .el-upload {\r\n border: 1px dashed #d9d9d9;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n .avatar-uploader .el-upload:hover {\r\n border-color: #409EFF;\r\n }\r\n .avatar-uploader-icon {\r\n font-size: 28px;\r\n color: #8c939d;\r\n width: 178px;\r\n height: 178px;\r\n line-height: 178px;\r\n text-align: center;\r\n }\r\n .avatara {\r\n /* width: 178px; */\r\n height: 178px;\r\n display: block;\r\n }\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Form.vue?vue&type=template&id=004d356c&\"\nimport script from \"./Form.vue?vue&type=script&lang=js&\"\nexport * from \"./Form.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Form.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * Copyright (c) 2018-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nvar getGlobal = function () { return (typeof window !== 'undefined' ? window : global); };\nvar getTinymce = function () {\n var global = getGlobal();\n return global && global.tinymce ? global.tinymce : null;\n};\nexport { getTinymce };\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.1.4 (2019-12-11)\n */\n(function (domGlobals) {\n 'use strict';\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var noop = function () {\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze) {\n Object.freeze(me);\n }\n return me;\n }();\n var some = function (a) {\n var constant_a = constant(a);\n var self = function () {\n return me;\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never, function (b) {\n return elementEq(a, b);\n });\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null) {\n return 'null';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n var isBoolean = isType('boolean');\n var isFunction = isType('function');\n\n var nativeSlice = Array.prototype.slice;\n var nativePush = Array.prototype.push;\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n var exports$1 = {}, module = { exports: exports$1 };\n (function (define, exports, module, require) {\n (function (f) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = f();\n } else if (typeof define === 'function' && define.amd) {\n define([], f);\n } else {\n var g;\n if (typeof window !== 'undefined') {\n g = window;\n } else if (typeof global !== 'undefined') {\n g = global;\n } else if (typeof self !== 'undefined') {\n g = self;\n } else {\n g = this;\n }\n g.EphoxContactWrapper = f();\n }\n }(function () {\n return function () {\n function r(e, n, t) {\n function o(i, f) {\n if (!n[i]) {\n if (!e[i]) {\n var c = 'function' == typeof require && require;\n if (!f && c)\n return c(i, !0);\n if (u)\n return u(i, !0);\n var a = new Error('Cannot find module \\'' + i + '\\'');\n throw a.code = 'MODULE_NOT_FOUND', a;\n }\n var p = n[i] = { exports: {} };\n e[i][0].call(p.exports, function (r) {\n var n = e[i][1][r];\n return o(n || r);\n }, p, p.exports, r, e, n, t);\n }\n return n[i].exports;\n }\n for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++)\n o(t[i]);\n return o;\n }\n return r;\n }()({\n 1: [\n function (require, module, exports) {\n var process = module.exports = {};\n var cachedSetTimeout;\n var cachedClearTimeout;\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n (function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n }());\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n }\n function drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n };\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = '';\n process.versions = {};\n function noop() {\n }\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n process.listeners = function (name) {\n return [];\n };\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n process.cwd = function () {\n return '/';\n };\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n process.umask = function () {\n return 0;\n };\n },\n {}\n ],\n 2: [\n function (require, module, exports) {\n (function (setImmediate) {\n (function (root) {\n var setTimeoutFunc = setTimeout;\n function noop() {\n }\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n function Promise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n }\n function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n }\n function resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n }\n function finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n }\n function Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n }\n function doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n }\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n };\n Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n return new Promise(function (resolve, reject) {\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n } : function (fn) {\n setTimeoutFunc(fn, 0);\n };\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n };\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n }(this));\n }.call(this, require('timers').setImmediate));\n },\n { 'timers': 3 }\n ],\n 3: [\n function (require, module, exports) {\n (function (setImmediate, clearImmediate) {\n var nextTick = require('process/browser.js').nextTick;\n var apply = Function.prototype.apply;\n var slice = Array.prototype.slice;\n var immediateIds = {};\n var nextImmediateId = 0;\n exports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n };\n exports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n };\n exports.clearTimeout = exports.clearInterval = function (timeout) {\n timeout.close();\n };\n function Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n }\n Timeout.prototype.unref = Timeout.prototype.ref = function () {\n };\n Timeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n };\n exports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n };\n exports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n };\n exports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n };\n exports.setImmediate = typeof setImmediate === 'function' ? setImmediate : function (fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n immediateIds[id] = true;\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n exports.clearImmediate(id);\n }\n });\n return id;\n };\n exports.clearImmediate = typeof clearImmediate === 'function' ? clearImmediate : function (id) {\n delete immediateIds[id];\n };\n }.call(this, require('timers').setImmediate, require('timers').clearImmediate));\n },\n {\n 'process/browser.js': 1,\n 'timers': 3\n }\n ],\n 4: [\n function (require, module, exports) {\n var promisePolyfill = require('promise-polyfill');\n var Global = function () {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this;')();\n }\n }();\n module.exports = { boltExport: Global.Promise || promisePolyfill };\n },\n { 'promise-polyfill': 2 }\n ]\n }, {}, [4])(4);\n }));\n }(undefined, exports$1, module, undefined));\n var Promise = module.exports.boltExport;\n\n var nu = function (baseFn) {\n var data = Option.none();\n var callbacks = [];\n var map = function (f) {\n return nu(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n var set = function (x) {\n data = Option.some(x);\n run(callbacks);\n callbacks = [];\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n domGlobals.setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure = function (a) {\n return nu(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu,\n pure: pure\n };\n\n var errorReporter = function (err) {\n domGlobals.setTimeout(function () {\n throw err;\n }, 0);\n };\n var make = function (run) {\n var get = function (callback) {\n run().then(callback, errorReporter);\n };\n var map = function (fab) {\n return make(function () {\n return run().then(fab);\n });\n };\n var bind = function (aFutureB) {\n return make(function () {\n return run().then(function (v) {\n return aFutureB(v).toPromise();\n });\n });\n };\n var anonBind = function (futureB) {\n return make(function () {\n return run().then(function () {\n return futureB.toPromise();\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return make(function () {\n if (cache === null) {\n cache = run();\n }\n return cache;\n });\n };\n var toPromise = run;\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n toPromise: toPromise,\n get: get\n };\n };\n var nu$1 = function (baseFn) {\n return make(function () {\n return new Promise(baseFn);\n });\n };\n var pure$1 = function (a) {\n return make(function () {\n return Promise.resolve(a);\n });\n };\n var Future = {\n nu: nu$1,\n pure: pure$1\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var fromOption = function (opt, err) {\n return opt.fold(function () {\n return error(err);\n }, value);\n };\n var Result = {\n value: value,\n error: error,\n fromOption: fromOption\n };\n\n var wrap = function (delegate) {\n var toCached = function () {\n return wrap(delegate.toCached());\n };\n var bindFuture = function (f) {\n return wrap(delegate.bind(function (resA) {\n return resA.fold(function (err) {\n return Future.pure(Result.error(err));\n }, function (a) {\n return f(a);\n });\n }));\n };\n var bindResult = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.bind(f);\n }));\n };\n var mapResult = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.map(f);\n }));\n };\n var mapError = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.mapError(f);\n }));\n };\n var foldResult = function (whenError, whenValue) {\n return delegate.map(function (res) {\n return res.fold(whenError, whenValue);\n });\n };\n var withTimeout = function (timeout, errorThunk) {\n return wrap(Future.nu(function (callback) {\n var timedOut = false;\n var timer = domGlobals.setTimeout(function () {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(function (result) {\n if (!timedOut) {\n domGlobals.clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return __assign(__assign({}, delegate), {\n toCached: toCached,\n bindFuture: bindFuture,\n bindResult: bindResult,\n mapResult: mapResult,\n mapError: mapError,\n foldResult: foldResult,\n withTimeout: withTimeout\n });\n };\n var nu$2 = function (worker) {\n return wrap(Future.nu(worker));\n };\n var value$1 = function (value) {\n return wrap(Future.pure(Result.value(value)));\n };\n var error$1 = function (error) {\n return wrap(Future.pure(Result.error(error)));\n };\n var fromResult = function (result) {\n return wrap(Future.pure(result));\n };\n var fromFuture = function (future) {\n return wrap(future.map(Result.value));\n };\n var fromPromise = function (promise) {\n return nu$2(function (completer) {\n promise.then(function (value) {\n completer(Result.value(value));\n }, function (error) {\n completer(Result.error(error));\n });\n });\n };\n var FutureResult = {\n nu: nu$2,\n wrap: wrap,\n pure: value$1,\n value: value$1,\n error: error$1,\n fromResult: fromResult,\n fromFuture: fromFuture,\n fromPromise: fromPromise\n };\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var shallow = function (old, nu) {\n return nu;\n };\n var deep = function (old, nu) {\n var bothObjects = isObject(old) && isObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++) {\n objects[i] = arguments[i];\n }\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject) {\n if (hasOwnProperty.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n var deepMerge = baseMerge(deep);\n var merge = baseMerge(shallow);\n\n var makeItems = function (info) {\n var imageUrl = {\n name: 'src',\n type: 'urlinput',\n filetype: 'image',\n label: 'Source'\n };\n var imageList = info.imageList.map(function (items) {\n return {\n name: 'images',\n type: 'selectbox',\n label: 'Image list',\n items: items\n };\n });\n var imageDescription = {\n name: 'alt',\n type: 'input',\n label: 'Image description'\n };\n var imageTitle = {\n name: 'title',\n type: 'input',\n label: 'Image title'\n };\n var imageDimensions = {\n name: 'dimensions',\n type: 'sizeinput'\n };\n var classList = info.classList.map(function (items) {\n return {\n name: 'classes',\n type: 'selectbox',\n label: 'Class',\n items: items\n };\n });\n var caption = {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n };\n return flatten([\n [imageUrl],\n imageList.toArray(),\n info.hasDescription ? [imageDescription] : [],\n info.hasImageTitle ? [imageTitle] : [],\n info.hasDimensions ? [imageDimensions] : [],\n [{\n type: 'grid',\n columns: 2,\n items: flatten([\n classList.toArray(),\n info.hasImageCaption ? [caption] : []\n ])\n }]\n ]);\n };\n var makeTab = function (info) {\n return {\n title: 'General',\n name: 'general',\n items: makeItems(info)\n };\n };\n var MainTab = {\n makeTab: makeTab,\n makeItems: makeItems\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.XHR');\n\n var hasDimensions = function (editor) {\n return editor.getParam('image_dimensions', true, 'boolean');\n };\n var hasAdvTab = function (editor) {\n return editor.getParam('image_advtab', false, 'boolean');\n };\n var hasUploadTab = function (editor) {\n return editor.getParam('image_uploadtab', true, 'boolean');\n };\n var getPrependUrl = function (editor) {\n return editor.getParam('image_prepend_url', '', 'string');\n };\n var getClassList = function (editor) {\n return editor.getParam('image_class_list');\n };\n var hasDescription = function (editor) {\n return editor.getParam('image_description', true, 'boolean');\n };\n var hasImageTitle = function (editor) {\n return editor.getParam('image_title', false, 'boolean');\n };\n var hasImageCaption = function (editor) {\n return editor.getParam('image_caption', false, 'boolean');\n };\n var getImageList = function (editor) {\n return editor.getParam('image_list', false);\n };\n var hasUploadUrl = function (editor) {\n return !!getUploadUrl(editor);\n };\n var hasUploadHandler = function (editor) {\n return !!getUploadHandler(editor);\n };\n var getUploadUrl = function (editor) {\n return editor.getParam('images_upload_url', '', 'string');\n };\n var getUploadHandler = function (editor) {\n return editor.getParam('images_upload_handler', undefined, 'function');\n };\n var getUploadBasePath = function (editor) {\n return editor.getParam('images_upload_base_path', undefined, 'string');\n };\n var getUploadCredentials = function (editor) {\n return editor.getParam('images_upload_credentials', false, 'boolean');\n };\n var Settings = {\n hasDimensions: hasDimensions,\n hasUploadTab: hasUploadTab,\n hasAdvTab: hasAdvTab,\n getPrependUrl: getPrependUrl,\n getClassList: getClassList,\n hasDescription: hasDescription,\n hasImageTitle: hasImageTitle,\n hasImageCaption: hasImageCaption,\n getImageList: getImageList,\n hasUploadUrl: hasUploadUrl,\n hasUploadHandler: hasUploadHandler,\n getUploadUrl: getUploadUrl,\n getUploadHandler: getUploadHandler,\n getUploadBasePath: getUploadBasePath,\n getUploadCredentials: getUploadCredentials\n };\n\n var parseIntAndGetMax = function (val1, val2) {\n return Math.max(parseInt(val1, 10), parseInt(val2, 10));\n };\n var getImageSize = function (url, callback) {\n var img = domGlobals.document.createElement('img');\n var done = function (dimensions) {\n if (img.parentNode) {\n img.parentNode.removeChild(img);\n }\n callback(dimensions);\n };\n img.onload = function () {\n var width = parseIntAndGetMax(img.width, img.clientWidth);\n var height = parseIntAndGetMax(img.height, img.clientHeight);\n var dimensions = {\n width: width,\n height: height\n };\n done(Result.value(dimensions));\n };\n img.onerror = function () {\n done(Result.error('Failed to get image dimensions for: ' + url));\n };\n var style = img.style;\n style.visibility = 'hidden';\n style.position = 'fixed';\n style.bottom = style.left = '0px';\n style.width = style.height = 'auto';\n domGlobals.document.body.appendChild(img);\n img.src = url;\n };\n var removePixelSuffix = function (value) {\n if (value) {\n value = value.replace(/px$/, '');\n }\n return value;\n };\n var addPixelSuffix = function (value) {\n if (value.length > 0 && /^[0-9]+$/.test(value)) {\n value += 'px';\n }\n return value;\n };\n var mergeMargins = function (css) {\n if (css.margin) {\n var splitMargin = String(css.margin).split(' ');\n switch (splitMargin.length) {\n case 1:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[0];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[0];\n break;\n case 2:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 3:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 4:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[3];\n }\n delete css.margin;\n }\n return css;\n };\n var createImageList = function (editor, callback) {\n var imageList = Settings.getImageList(editor);\n if (typeof imageList === 'string') {\n global$4.send({\n url: imageList,\n success: function (text) {\n callback(JSON.parse(text));\n }\n });\n } else if (typeof imageList === 'function') {\n imageList(callback);\n } else {\n callback(imageList);\n }\n };\n var waitLoadImage = function (editor, data, imgElm) {\n var selectImage = function () {\n imgElm.onload = imgElm.onerror = null;\n if (editor.selection) {\n editor.selection.select(imgElm);\n editor.nodeChanged();\n }\n };\n imgElm.onload = function () {\n if (!data.width && !data.height && Settings.hasDimensions(editor)) {\n editor.dom.setAttribs(imgElm, {\n width: String(imgElm.clientWidth),\n height: String(imgElm.clientHeight)\n });\n }\n selectImage();\n };\n imgElm.onerror = selectImage;\n };\n var blobToDataUri = function (blob) {\n return new global$3(function (resolve, reject) {\n var reader = new domGlobals.FileReader();\n reader.onload = function () {\n resolve(reader.result);\n };\n reader.onerror = function () {\n reject(reader.error.message);\n };\n reader.readAsDataURL(blob);\n });\n };\n var isPlaceholderImage = function (imgElm) {\n return imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));\n };\n var Utils = {\n getImageSize: getImageSize,\n removePixelSuffix: removePixelSuffix,\n addPixelSuffix: addPixelSuffix,\n mergeMargins: mergeMargins,\n createImageList: createImageList,\n waitLoadImage: waitLoadImage,\n blobToDataUri: blobToDataUri,\n isPlaceholderImage: isPlaceholderImage\n };\n\n var DOM = global$2.DOM;\n var getHspace = function (image) {\n if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {\n return Utils.removePixelSuffix(image.style.marginLeft);\n } else {\n return '';\n }\n };\n var getVspace = function (image) {\n if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {\n return Utils.removePixelSuffix(image.style.marginTop);\n } else {\n return '';\n }\n };\n var getBorder = function (image) {\n if (image.style.borderWidth) {\n return Utils.removePixelSuffix(image.style.borderWidth);\n } else {\n return '';\n }\n };\n var getAttrib = function (image, name) {\n if (image.hasAttribute(name)) {\n return image.getAttribute(name);\n } else {\n return '';\n }\n };\n var getStyle = function (image, name) {\n return image.style[name] ? image.style[name] : '';\n };\n var hasCaption = function (image) {\n return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';\n };\n var setAttrib = function (image, name, value) {\n image.setAttribute(name, value);\n };\n var wrapInFigure = function (image) {\n var figureElm = DOM.create('figure', { class: 'image' });\n DOM.insertAfter(figureElm, image);\n figureElm.appendChild(image);\n figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figureElm.contentEditable = 'false';\n };\n var removeFigure = function (image) {\n var figureElm = image.parentNode;\n DOM.insertAfter(image, figureElm);\n DOM.remove(figureElm);\n };\n var toggleCaption = function (image) {\n if (hasCaption(image)) {\n removeFigure(image);\n } else {\n wrapInFigure(image);\n }\n };\n var normalizeStyle = function (image, normalizeCss) {\n var attrValue = image.getAttribute('style');\n var value = normalizeCss(attrValue !== null ? attrValue : '');\n if (value.length > 0) {\n image.setAttribute('style', value);\n image.setAttribute('data-mce-style', value);\n } else {\n image.removeAttribute('style');\n }\n };\n var setSize = function (name, normalizeCss) {\n return function (image, name, value) {\n if (image.style[name]) {\n image.style[name] = Utils.addPixelSuffix(value);\n normalizeStyle(image, normalizeCss);\n } else {\n setAttrib(image, name, value);\n }\n };\n };\n var getSize = function (image, name) {\n if (image.style[name]) {\n return Utils.removePixelSuffix(image.style[name]);\n } else {\n return getAttrib(image, name);\n }\n };\n var setHspace = function (image, value) {\n var pxValue = Utils.addPixelSuffix(value);\n image.style.marginLeft = pxValue;\n image.style.marginRight = pxValue;\n };\n var setVspace = function (image, value) {\n var pxValue = Utils.addPixelSuffix(value);\n image.style.marginTop = pxValue;\n image.style.marginBottom = pxValue;\n };\n var setBorder = function (image, value) {\n var pxValue = Utils.addPixelSuffix(value);\n image.style.borderWidth = pxValue;\n };\n var setBorderStyle = function (image, value) {\n image.style.borderStyle = value;\n };\n var getBorderStyle = function (image) {\n return getStyle(image, 'borderStyle');\n };\n var isFigure = function (elm) {\n return elm.nodeName === 'FIGURE';\n };\n var isImage = function (elm) {\n return elm.nodeName === 'IMG';\n };\n var defaultData = function () {\n return {\n src: '',\n alt: '',\n title: '',\n width: '',\n height: '',\n class: '',\n style: '',\n caption: false,\n hspace: '',\n vspace: '',\n border: '',\n borderStyle: ''\n };\n };\n var getStyleValue = function (normalizeCss, data) {\n var image = domGlobals.document.createElement('img');\n setAttrib(image, 'style', data.style);\n if (getHspace(image) || data.hspace !== '') {\n setHspace(image, data.hspace);\n }\n if (getVspace(image) || data.vspace !== '') {\n setVspace(image, data.vspace);\n }\n if (getBorder(image) || data.border !== '') {\n setBorder(image, data.border);\n }\n if (getBorderStyle(image) || data.borderStyle !== '') {\n setBorderStyle(image, data.borderStyle);\n }\n return normalizeCss(image.getAttribute('style'));\n };\n var create = function (normalizeCss, data) {\n var image = domGlobals.document.createElement('img');\n write(normalizeCss, merge(data, { caption: false }), image);\n setAttrib(image, 'alt', data.alt);\n if (data.caption) {\n var figure = DOM.create('figure', { class: 'image' });\n figure.appendChild(image);\n figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figure.contentEditable = 'false';\n return figure;\n } else {\n return image;\n }\n };\n var read = function (normalizeCss, image) {\n return {\n src: getAttrib(image, 'src'),\n alt: getAttrib(image, 'alt'),\n title: getAttrib(image, 'title'),\n width: getSize(image, 'width'),\n height: getSize(image, 'height'),\n class: getAttrib(image, 'class'),\n style: normalizeCss(getAttrib(image, 'style')),\n caption: hasCaption(image),\n hspace: getHspace(image),\n vspace: getVspace(image),\n border: getBorder(image),\n borderStyle: getStyle(image, 'borderStyle')\n };\n };\n var updateProp = function (image, oldData, newData, name, set) {\n if (newData[name] !== oldData[name]) {\n set(image, name, newData[name]);\n }\n };\n var normalized = function (set, normalizeCss) {\n return function (image, name, value) {\n set(image, value);\n normalizeStyle(image, normalizeCss);\n };\n };\n var write = function (normalizeCss, newData, image) {\n var oldData = read(normalizeCss, image);\n updateProp(image, oldData, newData, 'caption', function (image, _name, _value) {\n return toggleCaption(image);\n });\n updateProp(image, oldData, newData, 'src', setAttrib);\n updateProp(image, oldData, newData, 'alt', setAttrib);\n updateProp(image, oldData, newData, 'title', setAttrib);\n updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));\n updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));\n updateProp(image, oldData, newData, 'class', setAttrib);\n updateProp(image, oldData, newData, 'style', normalized(function (image, value) {\n return setAttrib(image, 'style', value);\n }, normalizeCss));\n updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));\n updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));\n updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));\n updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));\n };\n\n var normalizeCss = function (editor, cssText) {\n var css = editor.dom.styles.parse(cssText);\n var mergedCss = Utils.mergeMargins(css);\n var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));\n return editor.dom.styles.serialize(compressed);\n };\n var getSelectedImage = function (editor) {\n var imgElm = editor.selection.getNode();\n var figureElm = editor.dom.getParent(imgElm, 'figure.image');\n if (figureElm) {\n return editor.dom.select('img', figureElm)[0];\n }\n if (imgElm && (imgElm.nodeName !== 'IMG' || Utils.isPlaceholderImage(imgElm))) {\n return null;\n }\n return imgElm;\n };\n var splitTextBlock = function (editor, figure) {\n var dom = editor.dom;\n var textBlock = dom.getParent(figure.parentNode, function (node) {\n return editor.schema.getTextBlockElements()[node.nodeName];\n }, editor.getBody());\n if (textBlock) {\n return dom.split(textBlock, figure);\n } else {\n return figure;\n }\n };\n var readImageDataFromSelection = function (editor) {\n var image = getSelectedImage(editor);\n return image ? read(function (css) {\n return normalizeCss(editor, css);\n }, image) : defaultData();\n };\n var insertImageAtCaret = function (editor, data) {\n var elm = create(function (css) {\n return normalizeCss(editor, css);\n }, data);\n editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');\n editor.focus();\n editor.selection.setContent(elm.outerHTML);\n var insertedElm = editor.dom.select('*[data-mce-id=\"__mcenew\"]')[0];\n editor.dom.setAttrib(insertedElm, 'data-mce-id', null);\n if (isFigure(insertedElm)) {\n var figure = splitTextBlock(editor, insertedElm);\n editor.selection.select(figure);\n } else {\n editor.selection.select(insertedElm);\n }\n };\n var syncSrcAttr = function (editor, image) {\n editor.dom.setAttrib(image, 'src', image.getAttribute('src'));\n };\n var deleteImage = function (editor, image) {\n if (image) {\n var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;\n editor.dom.remove(elm);\n editor.focus();\n editor.nodeChanged();\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n }\n }\n };\n var writeImageDataToSelection = function (editor, data) {\n var image = getSelectedImage(editor);\n write(function (css) {\n return normalizeCss(editor, css);\n }, data, image);\n syncSrcAttr(editor, image);\n if (isFigure(image.parentNode)) {\n var figure = image.parentNode;\n splitTextBlock(editor, figure);\n editor.selection.select(image.parentNode);\n } else {\n editor.selection.select(image);\n Utils.waitLoadImage(editor, data, image);\n }\n };\n var insertOrUpdateImage = function (editor, data) {\n var image = getSelectedImage(editor);\n if (image) {\n if (data.src) {\n writeImageDataToSelection(editor, data);\n } else {\n deleteImage(editor, image);\n }\n } else if (data.src) {\n insertImageAtCaret(editor, data);\n }\n };\n\n var findMap = function (arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Option.none();\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var getValue = function (item) {\n return isString(item.value) ? item.value : '';\n };\n var sanitizeList = function (list, extractValue) {\n var out = [];\n global$5.each(list, function (item) {\n var text = isString(item.text) ? item.text : isString(item.title) ? item.title : '';\n if (item.menu !== undefined) {\n var items = sanitizeList(item.menu, extractValue);\n out.push({\n text: text,\n items: items\n });\n } else {\n var value = extractValue(item);\n out.push({\n text: text,\n value: value\n });\n }\n });\n return out;\n };\n var sanitizer = function (extracter) {\n if (extracter === void 0) {\n extracter = getValue;\n }\n return function (list) {\n if (list) {\n return Option.from(list).map(function (list) {\n return sanitizeList(list, extracter);\n });\n } else {\n return Option.none();\n }\n };\n };\n var sanitize = function (list) {\n return sanitizer(getValue)(list);\n };\n var isGroup = function (item) {\n return Object.prototype.hasOwnProperty.call(item, 'items');\n };\n var findEntryDelegate = function (list, value) {\n return findMap(list, function (item) {\n if (isGroup(item)) {\n return findEntryDelegate(item.items, value);\n } else if (item.value === value) {\n return Option.some(item);\n } else {\n return Option.none();\n }\n });\n };\n var findEntry = function (optList, value) {\n return optList.bind(function (list) {\n return findEntryDelegate(list, value);\n });\n };\n var ListUtils = {\n sanitizer: sanitizer,\n sanitize: sanitize,\n findEntry: findEntry\n };\n\n var pathJoin = function (path1, path2) {\n if (path1) {\n return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\n }\n return path2;\n };\n function Uploader (settings) {\n var defaultHandler = function (blobInfo, success, failure, progress) {\n var xhr, formData;\n xhr = new domGlobals.XMLHttpRequest();\n xhr.open('POST', settings.url);\n xhr.withCredentials = settings.credentials;\n xhr.upload.onprogress = function (e) {\n progress(e.loaded / e.total * 100);\n };\n xhr.onerror = function () {\n failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\n };\n xhr.onload = function () {\n var json;\n if (xhr.status < 200 || xhr.status >= 300) {\n failure('HTTP Error: ' + xhr.status);\n return;\n }\n json = JSON.parse(xhr.responseText);\n if (!json || typeof json.location !== 'string') {\n failure('Invalid JSON: ' + xhr.responseText);\n return;\n }\n success(pathJoin(settings.basePath, json.location));\n };\n formData = new domGlobals.FormData();\n formData.append('file', blobInfo.blob(), blobInfo.filename());\n xhr.send(formData);\n };\n var uploadBlob = function (blobInfo, handler) {\n return new global$3(function (resolve, reject) {\n try {\n handler(blobInfo, resolve, reject, noop);\n } catch (ex) {\n reject(ex.message);\n }\n });\n };\n var isDefaultHandler = function (handler) {\n return handler === defaultHandler;\n };\n var upload = function (blobInfo) {\n return !settings.url && isDefaultHandler(settings.handler) ? global$3.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler);\n };\n settings = global$5.extend({\n credentials: false,\n handler: defaultHandler\n }, settings);\n return { upload: upload };\n }\n\n var makeTab$1 = function (info) {\n return {\n title: 'Advanced',\n name: 'advanced',\n items: [\n {\n type: 'input',\n label: 'Style',\n name: 'style'\n },\n {\n type: 'grid',\n columns: 2,\n items: [\n {\n type: 'input',\n label: 'Vertical space',\n name: 'vspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Horizontal space',\n name: 'hspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Border width',\n name: 'border',\n inputMode: 'numeric'\n },\n {\n type: 'selectbox',\n name: 'borderstyle',\n label: 'Border style',\n items: [\n {\n text: 'Select...',\n value: ''\n },\n {\n text: 'Solid',\n value: 'solid'\n },\n {\n text: 'Dotted',\n value: 'dotted'\n },\n {\n text: 'Dashed',\n value: 'dashed'\n },\n {\n text: 'Double',\n value: 'double'\n },\n {\n text: 'Groove',\n value: 'groove'\n },\n {\n text: 'Ridge',\n value: 'ridge'\n },\n {\n text: 'Inset',\n value: 'inset'\n },\n {\n text: 'Outset',\n value: 'outset'\n },\n {\n text: 'None',\n value: 'none'\n },\n {\n text: 'Hidden',\n value: 'hidden'\n }\n ]\n }\n ]\n }\n ]\n };\n };\n var AdvTab = { makeTab: makeTab$1 };\n\n var collect = function (editor) {\n var urlListSanitizer = ListUtils.sanitizer(function (item) {\n return editor.convertURL(item.value || item.url, 'src');\n });\n var futureImageList = Future.nu(function (completer) {\n Utils.createImageList(editor, function (imageList) {\n completer(urlListSanitizer(imageList).map(function (items) {\n return flatten([\n [{\n text: 'None',\n value: ''\n }],\n items\n ]);\n }));\n });\n });\n var classList = ListUtils.sanitize(Settings.getClassList(editor));\n var hasAdvTab = Settings.hasAdvTab(editor);\n var hasUploadTab = Settings.hasUploadTab(editor);\n var hasUploadUrl = Settings.hasUploadUrl(editor);\n var hasUploadHandler = Settings.hasUploadHandler(editor);\n var image = readImageDataFromSelection(editor);\n var hasDescription = Settings.hasDescription(editor);\n var hasImageTitle = Settings.hasImageTitle(editor);\n var hasDimensions = Settings.hasDimensions(editor);\n var hasImageCaption = Settings.hasImageCaption(editor);\n var url = Settings.getUploadUrl(editor);\n var basePath = Settings.getUploadBasePath(editor);\n var credentials = Settings.getUploadCredentials(editor);\n var handler = Settings.getUploadHandler(editor);\n var prependURL = Option.some(Settings.getPrependUrl(editor)).filter(function (preUrl) {\n return isString(preUrl) && preUrl.length > 0;\n });\n return futureImageList.map(function (imageList) {\n return {\n image: image,\n imageList: imageList,\n classList: classList,\n hasAdvTab: hasAdvTab,\n hasUploadTab: hasUploadTab,\n hasUploadUrl: hasUploadUrl,\n hasUploadHandler: hasUploadHandler,\n hasDescription: hasDescription,\n hasImageTitle: hasImageTitle,\n hasDimensions: hasDimensions,\n hasImageCaption: hasImageCaption,\n url: url,\n basePath: basePath,\n credentials: credentials,\n handler: handler,\n prependURL: prependURL\n };\n });\n };\n\n var makeTab$2 = function (info) {\n var items = [{\n type: 'dropzone',\n name: 'fileinput'\n }];\n return {\n title: 'Upload',\n name: 'upload',\n items: items\n };\n };\n var UploadTab = { makeTab: makeTab$2 };\n\n var createState = function (info) {\n return {\n prevImage: ListUtils.findEntry(info.imageList, info.image.src),\n prevAlt: info.image.alt,\n open: true\n };\n };\n var fromImageData = function (image) {\n return {\n src: {\n value: image.src,\n meta: {}\n },\n images: image.src,\n alt: image.alt,\n title: image.title,\n dimensions: {\n width: image.width,\n height: image.height\n },\n classes: image.class,\n caption: image.caption,\n style: image.style,\n vspace: image.vspace,\n border: image.border,\n hspace: image.hspace,\n borderstyle: image.borderStyle,\n fileinput: []\n };\n };\n var toImageData = function (data) {\n return {\n src: data.src.value,\n alt: data.alt,\n title: data.title,\n width: data.dimensions.width,\n height: data.dimensions.height,\n class: data.classes,\n style: data.style,\n caption: data.caption,\n hspace: data.hspace,\n vspace: data.vspace,\n border: data.border,\n borderStyle: data.borderstyle\n };\n };\n var addPrependUrl2 = function (info, srcURL) {\n if (!/^(?:[a-zA-Z]+:)?\\/\\//.test(srcURL)) {\n return info.prependURL.bind(function (prependUrl) {\n if (srcURL.substring(0, prependUrl.length) !== prependUrl) {\n return Option.some(prependUrl + srcURL);\n }\n return Option.none();\n });\n }\n return Option.none();\n };\n var addPrependUrl = function (info, api) {\n var data = api.getData();\n addPrependUrl2(info, data.src.value).each(function (srcURL) {\n api.setData({\n src: {\n value: srcURL,\n meta: data.src.meta\n }\n });\n });\n };\n var formFillFromMeta2 = function (info, data, meta) {\n if (info.hasDescription && isString(meta.alt)) {\n data.alt = meta.alt;\n }\n if (info.hasImageTitle && isString(meta.title)) {\n data.title = meta.title;\n }\n if (info.hasDimensions) {\n if (isString(meta.width)) {\n data.dimensions.width = meta.width;\n }\n if (isString(meta.height)) {\n data.dimensions.height = meta.height;\n }\n }\n if (isString(meta.class)) {\n ListUtils.findEntry(info.classList, meta.class).each(function (entry) {\n data.classes = entry.value;\n });\n }\n if (info.hasImageCaption) {\n if (isBoolean(meta.caption)) {\n data.caption = meta.caption;\n }\n }\n if (info.hasAdvTab) {\n if (isString(meta.vspace)) {\n data.vspace = meta.vspace;\n }\n if (isString(meta.border)) {\n data.border = meta.border;\n }\n if (isString(meta.hspace)) {\n data.hspace = meta.hspace;\n }\n if (isString(meta.borderstyle)) {\n data.borderstyle = meta.borderstyle;\n }\n }\n };\n var formFillFromMeta = function (info, api) {\n var data = api.getData();\n var meta = data.src.meta;\n if (meta !== undefined) {\n var newData = deepMerge({}, data);\n formFillFromMeta2(info, newData, meta);\n api.setData(newData);\n }\n };\n var calculateImageSize = function (helpers, info, state, api) {\n var data = api.getData();\n var url = data.src.value;\n var meta = data.src.meta || {};\n if (!meta.width && !meta.height && info.hasDimensions) {\n helpers.imageSize(url).get(function (result) {\n result.each(function (size) {\n if (state.open) {\n api.setData({ dimensions: size });\n }\n });\n });\n }\n };\n var updateImagesDropdown = function (info, state, api) {\n var data = api.getData();\n var image = ListUtils.findEntry(info.imageList, data.src.value);\n state.prevImage = image;\n api.setData({\n images: image.map(function (entry) {\n return entry.value;\n }).getOr('')\n });\n };\n var changeSrc = function (helpers, info, state, api) {\n addPrependUrl(info, api);\n formFillFromMeta(info, api);\n calculateImageSize(helpers, info, state, api);\n updateImagesDropdown(info, state, api);\n };\n var changeImages = function (helpers, info, state, api) {\n var data = api.getData();\n var image = ListUtils.findEntry(info.imageList, data.images);\n image.each(function (img) {\n var updateAlt = data.alt === '' || state.prevImage.map(function (image) {\n return image.text === data.alt;\n }).getOr(false);\n if (updateAlt) {\n if (img.value === '') {\n api.setData({\n src: img,\n alt: state.prevAlt\n });\n } else {\n api.setData({\n src: img,\n alt: img.text\n });\n }\n } else {\n api.setData({ src: img });\n }\n });\n state.prevImage = image;\n changeSrc(helpers, info, state, api);\n };\n var calcVSpace = function (css) {\n var matchingTopBottom = css['margin-top'] && css['margin-bottom'] && css['margin-top'] === css['margin-bottom'];\n return matchingTopBottom ? Utils.removePixelSuffix(String(css['margin-top'])) : '';\n };\n var calcHSpace = function (css) {\n var matchingLeftRight = css['margin-right'] && css['margin-left'] && css['margin-right'] === css['margin-left'];\n return matchingLeftRight ? Utils.removePixelSuffix(String(css['margin-right'])) : '';\n };\n var calcBorderWidth = function (css) {\n return css['border-width'] ? Utils.removePixelSuffix(String(css['border-width'])) : '';\n };\n var calcBorderStyle = function (css) {\n return css['border-style'] ? String(css['border-style']) : '';\n };\n var calcStyle = function (parseStyle, serializeStyle, css) {\n return serializeStyle(parseStyle(serializeStyle(css)));\n };\n var changeStyle2 = function (parseStyle, serializeStyle, data) {\n var css = Utils.mergeMargins(parseStyle(data.style));\n var dataCopy = deepMerge({}, data);\n dataCopy.vspace = calcVSpace(css);\n dataCopy.hspace = calcHSpace(css);\n dataCopy.border = calcBorderWidth(css);\n dataCopy.borderstyle = calcBorderStyle(css);\n dataCopy.style = calcStyle(parseStyle, serializeStyle, css);\n return dataCopy;\n };\n var changeStyle = function (helpers, api) {\n var data = api.getData();\n var newData = changeStyle2(helpers.parseStyle, helpers.serializeStyle, data);\n api.setData(newData);\n };\n var changeAStyle = function (helpers, info, api) {\n var data = deepMerge(fromImageData(info.image), api.getData());\n var style = getStyleValue(helpers.normalizeCss, toImageData(data));\n api.setData({ style: style });\n };\n var changeFileInput = function (helpers, info, state, api) {\n var data = api.getData();\n api.block('Uploading image');\n head(data.fileinput).fold(function () {\n api.unblock();\n }, function (file) {\n var blobUri = domGlobals.URL.createObjectURL(file);\n var uploader = Uploader({\n url: info.url,\n basePath: info.basePath,\n credentials: info.credentials,\n handler: info.handler\n });\n var finalize = function () {\n api.unblock();\n domGlobals.URL.revokeObjectURL(blobUri);\n };\n Utils.blobToDataUri(file).then(function (dataUrl) {\n var blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);\n uploader.upload(blobInfo).then(function (url) {\n api.setData({\n src: {\n value: url,\n meta: {}\n }\n });\n api.showTab('general');\n changeSrc(helpers, info, state, api);\n finalize();\n }).catch(function (err) {\n finalize();\n helpers.alertErr(api, err);\n });\n });\n });\n };\n var changeHandler = function (helpers, info, state) {\n return function (api, evt) {\n if (evt.name === 'src') {\n changeSrc(helpers, info, state, api);\n } else if (evt.name === 'images') {\n changeImages(helpers, info, state, api);\n } else if (evt.name === 'alt') {\n state.prevAlt = api.getData().alt;\n } else if (evt.name === 'style') {\n changeStyle(helpers, api);\n } else if (evt.name === 'vspace' || evt.name === 'hspace' || evt.name === 'border' || evt.name === 'borderstyle') {\n changeAStyle(helpers, info, api);\n } else if (evt.name === 'fileinput') {\n changeFileInput(helpers, info, state, api);\n }\n };\n };\n var closeHandler = function (state) {\n return function () {\n state.open = false;\n };\n };\n var makeDialogBody = function (info) {\n if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) {\n var tabPanel = {\n type: 'tabpanel',\n tabs: flatten([\n [MainTab.makeTab(info)],\n info.hasAdvTab ? [AdvTab.makeTab(info)] : [],\n info.hasUploadTab && (info.hasUploadUrl || info.hasUploadHandler) ? [UploadTab.makeTab(info)] : []\n ])\n };\n return tabPanel;\n } else {\n var panel = {\n type: 'panel',\n items: MainTab.makeItems(info)\n };\n return panel;\n }\n };\n var makeDialog = function (helpers) {\n return function (info) {\n var state = createState(info);\n return {\n title: 'Insert/Edit Image',\n size: 'normal',\n body: makeDialogBody(info),\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: fromImageData(info.image),\n onSubmit: helpers.onSubmit(info),\n onChange: changeHandler(helpers, info, state),\n onClose: closeHandler(state)\n };\n };\n };\n var submitHandler = function (editor) {\n return function (info) {\n return function (api) {\n var data = deepMerge(fromImageData(info.image), api.getData());\n editor.undoManager.transact(function () {\n insertOrUpdateImage(editor, toImageData(data));\n });\n editor.editorUpload.uploadImagesAuto();\n api.close();\n };\n };\n };\n var imageSize = function (editor) {\n return function (url) {\n return FutureResult.nu(function (completer) {\n Utils.getImageSize(editor.documentBaseURI.toAbsolute(url), function (data) {\n var result = data.map(function (dimensions) {\n return {\n width: String(dimensions.width),\n height: String(dimensions.height)\n };\n });\n completer(result);\n });\n });\n };\n };\n var createBlobCache = function (editor) {\n return function (file, blobUri, dataUrl) {\n return editor.editorUpload.blobCache.create({\n blob: file,\n blobUri: blobUri,\n name: file.name ? file.name.replace(/\\.[^\\.]+$/, '') : null,\n base64: dataUrl.split(',')[1]\n });\n };\n };\n var alertErr = function (editor) {\n return function (api, message) {\n editor.windowManager.alert(message, api.close);\n };\n };\n var normalizeCss$1 = function (editor) {\n return function (cssText) {\n return normalizeCss(editor, cssText);\n };\n };\n var parseStyle = function (editor) {\n return function (cssText) {\n return editor.dom.parseStyle(cssText);\n };\n };\n var serializeStyle = function (editor) {\n return function (stylesArg, name) {\n return editor.dom.serializeStyle(stylesArg, name);\n };\n };\n var Dialog = function (editor) {\n var helpers = {\n onSubmit: submitHandler(editor),\n imageSize: imageSize(editor),\n createBlobCache: createBlobCache(editor),\n alertErr: alertErr(editor),\n normalizeCss: normalizeCss$1(editor),\n parseStyle: parseStyle(editor),\n serializeStyle: serializeStyle(editor)\n };\n var open = function () {\n return collect(editor).map(makeDialog(helpers)).get(function (spec) {\n editor.windowManager.open(spec);\n });\n };\n return { open: open };\n };\n\n var register = function (editor) {\n editor.addCommand('mceImage', Dialog(editor).open);\n };\n var Commands = { register: register };\n\n var hasImageClass = function (node) {\n var className = node.attr('class');\n return className && /\\bimage\\b/.test(className);\n };\n var toggleContentEditableState = function (state) {\n return function (nodes) {\n var i = nodes.length;\n var toggleContentEditable = function (node) {\n node.attr('contenteditable', state ? 'true' : null);\n };\n while (i--) {\n var node = nodes[i];\n if (hasImageClass(node)) {\n node.attr('contenteditable', state ? 'false' : null);\n global$5.each(node.getAll('figcaption'), toggleContentEditable);\n }\n }\n };\n };\n var setup = function (editor) {\n editor.on('PreInit', function () {\n editor.parser.addNodeFilter('figure', toggleContentEditableState(true));\n editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\n });\n };\n var FilterContent = { setup: setup };\n\n var register$1 = function (editor) {\n editor.ui.registry.addToggleButton('image', {\n icon: 'image',\n tooltip: 'Insert/edit image',\n onAction: Dialog(editor).open,\n onSetup: function (buttonApi) {\n return editor.selection.selectorChangedWithUnbind('img:not([data-mce-object],[data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;\n }\n });\n editor.ui.registry.addMenuItem('image', {\n icon: 'image',\n text: 'Image...',\n onAction: Dialog(editor).open\n });\n editor.ui.registry.addContextMenu('image', {\n update: function (element) {\n return isFigure(element) || isImage(element) && !Utils.isPlaceholderImage(element) ? ['image'] : [];\n }\n });\n };\n var Buttons = { register: register$1 };\n\n function Plugin () {\n global$1.add('image', function (editor) {\n FilterContent.setup(editor);\n Buttons.register(editor);\n Commands.register(editor);\n });\n }\n\n Plugin();\n\n}(window));\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.1.4 (2019-12-11)\n */\n(function (domGlobals) {\n 'use strict';\n\n var noop = function () {\n };\n var compose = function (fa, fb) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fa(fb.apply(null, args));\n };\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n var not = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !f.apply(null, args);\n };\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze) {\n Object.freeze(me);\n }\n return me;\n }();\n var some = function (a) {\n var constant_a = constant(a);\n var self = function () {\n return me;\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never, function (b) {\n return elementEq(a, b);\n });\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null) {\n return 'null';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n var isNull = isType('null');\n var isBoolean = isType('boolean');\n var isFunction = isType('function');\n var isNumber = isType('number');\n\n var nativeSlice = Array.prototype.slice;\n var nativeIndexOf = Array.prototype.indexOf;\n var nativePush = Array.prototype.push;\n var rawIndexOf = function (ts, t) {\n return nativeIndexOf.call(ts, t);\n };\n var indexOf = function (xs, x) {\n var r = rawIndexOf(xs, x);\n return r === -1 ? Option.none() : Option.some(r);\n };\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var exists = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n var eachr = function (xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i);\n }\n };\n var partition = function (xs, pred) {\n var pass = [];\n var fail = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass: pass,\n fail: fail\n };\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n var foldr = function (xs, f, acc) {\n eachr(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var findIndex = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Option.some(i);\n }\n }\n return Option.none();\n };\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n var output = map(xs, f);\n return flatten(output);\n };\n var forall = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n var reverse = function (xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n var difference = function (a1, a2) {\n return filter(a1, function (x) {\n return !contains(a2, x);\n });\n };\n var mapToObject = function (xs, f) {\n var r = {};\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n var sort = function (xs, comparator) {\n var copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var last = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __rest(s, e) {\n var t = {};\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === 'function')\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n }\n\n var isNodeType = function (type) {\n return function (node) {\n return !!node && node.nodeType === type;\n };\n };\n var isRestrictedNode = function (node) {\n return !!node && !Object.getPrototypeOf(node);\n };\n var isElement = isNodeType(1);\n var matchNodeNames = function (names) {\n var lowercasedNames = names.map(function (s) {\n return s.toLowerCase();\n });\n return function (node) {\n if (node && node.nodeName) {\n var nodeName = node.nodeName.toLowerCase();\n return contains(lowercasedNames, nodeName);\n }\n return false;\n };\n };\n var matchStyleValues = function (name, values) {\n var items = values.toLowerCase().split(' ');\n return function (node) {\n var i, cssValue;\n if (isElement(node)) {\n for (i = 0; i < items.length; i++) {\n var computed = node.ownerDocument.defaultView.getComputedStyle(node, null);\n cssValue = computed ? computed.getPropertyValue(name) : null;\n if (cssValue === items[i]) {\n return true;\n }\n }\n }\n return false;\n };\n };\n var hasPropValue = function (propName, propValue) {\n return function (node) {\n return isElement(node) && node[propName] === propValue;\n };\n };\n var hasAttribute = function (attrName, attrValue) {\n return function (node) {\n return isElement(node) && node.hasAttribute(attrName);\n };\n };\n var hasAttributeValue = function (attrName, attrValue) {\n return function (node) {\n return isElement(node) && node.getAttribute(attrName) === attrValue;\n };\n };\n var isBogus = function (node) {\n return isElement(node) && node.hasAttribute('data-mce-bogus');\n };\n var isBogusAll = function (node) {\n return isElement(node) && node.getAttribute('data-mce-bogus') === 'all';\n };\n var isTable = function (node) {\n return isElement(node) && node.tagName === 'TABLE';\n };\n var hasContentEditableState = function (value) {\n return function (node) {\n if (isElement(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n var isTextareaOrInput = matchNodeNames([\n 'textarea',\n 'input'\n ]);\n var isText = isNodeType(3);\n var isComment = isNodeType(8);\n var isDocument = isNodeType(9);\n var isDocumentFragment = isNodeType(11);\n var isBr = matchNodeNames(['br']);\n var isContentEditableTrue = hasContentEditableState('true');\n var isContentEditableFalse = hasContentEditableState('false');\n var NodeType = {\n isText: isText,\n isElement: isElement,\n isComment: isComment,\n isDocument: isDocument,\n isDocumentFragment: isDocumentFragment,\n isBr: isBr,\n isContentEditableTrue: isContentEditableTrue,\n isContentEditableFalse: isContentEditableFalse,\n isRestrictedNode: isRestrictedNode,\n matchNodeNames: matchNodeNames,\n hasPropValue: hasPropValue,\n hasAttribute: hasAttribute,\n hasAttributeValue: hasAttributeValue,\n matchStyleValues: matchStyleValues,\n isBogus: isBogus,\n isBogusAll: isBogusAll,\n isTable: isTable,\n isTextareaOrInput: isTextareaOrInput\n };\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var firstMatch = function (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n var find$1 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown();\n }\n return find$1(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu(0, 0);\n };\n var nu = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu,\n detect: detect,\n unknown: unknown\n };\n\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n var isBrowser = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$1 = function () {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$1 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge, current),\n isChrome: isBrowser(chrome, current),\n isIE: isBrowser(ie, current),\n isOpera: isBrowser(opera, current),\n isFirefox: isBrowser(firefox, current),\n isSafari: isBrowser(safari, current)\n };\n };\n var Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var isOS = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$2 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isWindows: isOS(windows, current),\n isiOS: isOS(ios, current),\n isAndroid: isOS(android, current),\n isOSX: isOS(osx, current),\n isLinux: isOS(linux, current),\n isSolaris: isOS(solaris, current),\n isFreeBSD: isOS(freebsd, current)\n };\n };\n var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$2,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd)\n };\n\n var DeviceType = function (os, browser, userAgent, mediaMatch) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isMobile = os.isiOS() || os.isAndroid();\n var isTouch = isMobile || mediaMatch('(pointer:coarse)');\n var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n var isPhone = isiPhone || isMobile && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n var isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n var detectOs = function (oses, userAgent) {\n return detect$1(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var checkRange = function (str, substr, start) {\n if (substr === '') {\n return true;\n }\n if (str.length < substr.length) {\n return false;\n }\n var x = str.substr(start, start + substr.length);\n return x === substr;\n };\n var contains$1 = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n var startsWith = function (str, prefix) {\n return checkRange(str, prefix, 0);\n };\n var trim = function (str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n };\n var lTrim = function (str) {\n return str.replace(/^\\s+/g, '');\n };\n var rTrim = function (str) {\n return str.replace(/\\s+$/g, '');\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('os x'),\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n var detect$2 = function (userAgent, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var mediaMatch = function (query) {\n return domGlobals.window.matchMedia(query).matches;\n };\n var platform = Cell(PlatformDetection.detect(domGlobals.navigator.userAgent, mediaMatch));\n var detect$3 = function () {\n return platform.get();\n };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var name = function (element) {\n var r = element.dom().nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom().nodeType;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isElement$1 = isType$1(ELEMENT);\n var isText$1 = isType$1(TEXT);\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n var each$1 = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n var map$1 = function (obj, f) {\n return tupleMap(obj, function (x, i) {\n return {\n k: i,\n v: f(x, i)\n };\n });\n };\n var tupleMap = function (obj, f) {\n var r = {};\n each$1(obj, function (x, i) {\n var tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n var bifilter = function (obj, pred) {\n var t = {};\n var f = {};\n each$1(obj, function (x, i) {\n var branch = pred(x, i) ? t : f;\n branch[i] = x;\n });\n return {\n t: t,\n f: f\n };\n };\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var inBody = function (element) {\n var dom = isText$1(element) ? element.dom().parentNode : element.dom();\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\n };\n\n var rawSet = function (dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var set = function (element, key, value) {\n rawSet(element.dom(), key, value);\n };\n var setAll = function (element, attrs) {\n var dom = element.dom();\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var get$1 = function (element, key) {\n var v = element.dom().getAttribute(key);\n return v === null ? undefined : v;\n };\n var has$1 = function (element, key) {\n var dom = element.dom();\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n var remove = function (element, key) {\n element.dom().removeAttribute(key);\n };\n\n var get$2 = function (element, property) {\n var dom = element.dom();\n var styles = domGlobals.window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n var v = r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n return v === null ? undefined : v;\n };\n var getUnsafeProperty = function (dom, property) {\n return isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n };\n var getRaw = function (element, property) {\n var dom = element.dom();\n var raw = getUnsafeProperty(dom, property);\n return Option.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n var reflow = function (e) {\n return e.dom().offsetWidth;\n };\n\n var Immutable = function () {\n var fields = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fields[_i] = arguments[_i];\n }\n return function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n if (fields.length !== values.length) {\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\n }\n var struct = {};\n each(fields, function (name, i) {\n struct[name] = constant(values[i]);\n });\n return struct;\n };\n };\n\n var toArray = function (target, f) {\n var r = [];\n var recurse = function (e) {\n r.push(e);\n return f(e);\n };\n var cur = f(target);\n do {\n cur = cur.bind(recurse);\n } while (cur.isSome());\n return r;\n };\n var Recurse = { toArray: toArray };\n\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionPreceding = function (a, b) {\n return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_PRECEDING);\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n var Node = {\n documentPositionPreceding: documentPositionPreceding,\n documentPositionContainedBy: documentPositionContainedBy\n };\n\n var ELEMENT$1 = ELEMENT;\n var DOCUMENT$1 = DOCUMENT;\n var is = function (element, selector) {\n var dom = element.dom();\n if (dom.nodeType !== ELEMENT$1) {\n return false;\n } else {\n var elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n var bypassSelector = function (dom) {\n return dom.nodeType !== ELEMENT$1 && dom.nodeType !== DOCUMENT$1 || dom.childElementCount === 0;\n };\n var all = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element.fromDom);\n };\n var one = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element.fromDom);\n };\n\n var eq = function (e1, e2) {\n return e1.dom() === e2.dom();\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom();\n var d2 = e2.dom();\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return Node.documentPositionContainedBy(e1.dom(), e2.dom());\n };\n var browser = detect$3().browser;\n var contains$2 = browser.isIE() ? ieContains : regularContains;\n\n var owner = function (element) {\n return Element.fromDom(element.dom().ownerDocument);\n };\n var documentElement = function (element) {\n return Element.fromDom(element.dom().ownerDocument.documentElement);\n };\n var defaultView = function (element) {\n return Element.fromDom(element.dom().ownerDocument.defaultView);\n };\n var parent = function (element) {\n return Option.from(element.dom().parentNode).map(Element.fromDom);\n };\n var parents = function (element, isRoot) {\n var stop = isFunction(isRoot) ? isRoot : never;\n var dom = element.dom();\n var ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n var rawParent = dom.parentNode;\n var p = Element.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n var prevSibling = function (element) {\n return Option.from(element.dom().previousSibling).map(Element.fromDom);\n };\n var nextSibling = function (element) {\n return Option.from(element.dom().nextSibling).map(Element.fromDom);\n };\n var prevSiblings = function (element) {\n return reverse(Recurse.toArray(element, prevSibling));\n };\n var nextSiblings = function (element) {\n return Recurse.toArray(element, nextSibling);\n };\n var children = function (element) {\n return map(element.dom().childNodes, Element.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom().childNodes;\n return Option.from(cs[index]).map(Element.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n var lastChild = function (element) {\n return child(element, element.dom().childNodes.length - 1);\n };\n var childNodesCount = function (element) {\n return element.dom().childNodes.length;\n };\n var spot = Immutable('element', 'offset');\n\n var browser$1 = detect$3().browser;\n var firstElement = function (nodes) {\n return find(nodes, isElement$1);\n };\n var getTableCaptionDeltaY = function (elm) {\n if (browser$1.isFirefox() && name(elm) === 'table') {\n return firstElement(children(elm)).filter(function (elm) {\n return name(elm) === 'caption';\n }).bind(function (caption) {\n return firstElement(nextSiblings(caption)).map(function (body) {\n var bodyTop = body.dom().offsetTop;\n var captionTop = caption.dom().offsetTop;\n var captionHeight = caption.dom().offsetHeight;\n return bodyTop <= captionTop ? -captionHeight : 0;\n });\n }).getOr(0);\n } else {\n return 0;\n }\n };\n var hasChild = function (elm, child) {\n return elm.children && contains(elm.children, child);\n };\n var getPos = function (body, elm, rootElm) {\n var x = 0, y = 0, offsetParent;\n var doc = body.ownerDocument;\n var pos;\n rootElm = rootElm ? rootElm : body;\n if (elm) {\n if (rootElm === body && elm.getBoundingClientRect && get$2(Element.fromDom(body), 'position') === 'static') {\n pos = elm.getBoundingClientRect();\n x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft;\n y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop;\n return {\n x: x,\n y: y\n };\n }\n offsetParent = elm;\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) {\n x += offsetParent.offsetLeft || 0;\n y += offsetParent.offsetTop || 0;\n offsetParent = offsetParent.offsetParent;\n }\n offsetParent = elm.parentNode;\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) {\n x -= offsetParent.scrollLeft || 0;\n y -= offsetParent.scrollTop || 0;\n offsetParent = offsetParent.parentNode;\n }\n y += getTableCaptionDeltaY(Element.fromDom(elm));\n }\n return {\n x: x,\n y: y\n };\n };\n var Position = { getPos: getPos };\n\n var exports$1 = {}, module$1 = { exports: exports$1 };\n (function (define, exports, module, require) {\n (function (f) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = f();\n } else if (typeof define === 'function' && define.amd) {\n define([], f);\n } else {\n var g;\n if (typeof window !== 'undefined') {\n g = window;\n } else if (typeof global !== 'undefined') {\n g = global;\n } else if (typeof self !== 'undefined') {\n g = self;\n } else {\n g = this;\n }\n g.EphoxContactWrapper = f();\n }\n }(function () {\n return function () {\n function r(e, n, t) {\n function o(i, f) {\n if (!n[i]) {\n if (!e[i]) {\n var c = 'function' == typeof require && require;\n if (!f && c)\n return c(i, !0);\n if (u)\n return u(i, !0);\n var a = new Error('Cannot find module \\'' + i + '\\'');\n throw a.code = 'MODULE_NOT_FOUND', a;\n }\n var p = n[i] = { exports: {} };\n e[i][0].call(p.exports, function (r) {\n var n = e[i][1][r];\n return o(n || r);\n }, p, p.exports, r, e, n, t);\n }\n return n[i].exports;\n }\n for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++)\n o(t[i]);\n return o;\n }\n return r;\n }()({\n 1: [\n function (require, module, exports) {\n var process = module.exports = {};\n var cachedSetTimeout;\n var cachedClearTimeout;\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n (function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n }());\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n }\n function drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n };\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = '';\n process.versions = {};\n function noop() {\n }\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n process.listeners = function (name) {\n return [];\n };\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n process.cwd = function () {\n return '/';\n };\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n process.umask = function () {\n return 0;\n };\n },\n {}\n ],\n 2: [\n function (require, module, exports) {\n (function (setImmediate) {\n (function (root) {\n var setTimeoutFunc = setTimeout;\n function noop() {\n }\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n function Promise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n }\n function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n }\n function resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n }\n function finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n }\n function Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n }\n function doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n }\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n };\n Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n return new Promise(function (resolve, reject) {\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n } : function (fn) {\n setTimeoutFunc(fn, 0);\n };\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n };\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n }(this));\n }.call(this, require('timers').setImmediate));\n },\n { 'timers': 3 }\n ],\n 3: [\n function (require, module, exports) {\n (function (setImmediate, clearImmediate) {\n var nextTick = require('process/browser.js').nextTick;\n var apply = Function.prototype.apply;\n var slice = Array.prototype.slice;\n var immediateIds = {};\n var nextImmediateId = 0;\n exports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n };\n exports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n };\n exports.clearTimeout = exports.clearInterval = function (timeout) {\n timeout.close();\n };\n function Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n }\n Timeout.prototype.unref = Timeout.prototype.ref = function () {\n };\n Timeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n };\n exports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n };\n exports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n };\n exports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n };\n exports.setImmediate = typeof setImmediate === 'function' ? setImmediate : function (fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n immediateIds[id] = true;\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n exports.clearImmediate(id);\n }\n });\n return id;\n };\n exports.clearImmediate = typeof clearImmediate === 'function' ? clearImmediate : function (id) {\n delete immediateIds[id];\n };\n }.call(this, require('timers').setImmediate, require('timers').clearImmediate));\n },\n {\n 'process/browser.js': 1,\n 'timers': 3\n }\n ],\n 4: [\n function (require, module, exports) {\n var promisePolyfill = require('promise-polyfill');\n var Global = function () {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this;')();\n }\n }();\n module.exports = { boltExport: Global.Promise || promisePolyfill };\n },\n { 'promise-polyfill': 2 }\n ]\n }, {}, [4])(4);\n }));\n }(undefined, exports$1, module$1, undefined));\n var Promise = module$1.exports.boltExport;\n\n var nu$3 = function (baseFn) {\n var data = Option.none();\n var callbacks = [];\n var map = function (f) {\n return nu$3(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n var set = function (x) {\n data = Option.some(x);\n run(callbacks);\n callbacks = [];\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n domGlobals.setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure = function (a) {\n return nu$3(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu$3,\n pure: pure\n };\n\n var errorReporter = function (err) {\n domGlobals.setTimeout(function () {\n throw err;\n }, 0);\n };\n var make = function (run) {\n var get = function (callback) {\n run().then(callback, errorReporter);\n };\n var map = function (fab) {\n return make(function () {\n return run().then(fab);\n });\n };\n var bind = function (aFutureB) {\n return make(function () {\n return run().then(function (v) {\n return aFutureB(v).toPromise();\n });\n });\n };\n var anonBind = function (futureB) {\n return make(function () {\n return run().then(function () {\n return futureB.toPromise();\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return make(function () {\n if (cache === null) {\n cache = run();\n }\n return cache;\n });\n };\n var toPromise = run;\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n toPromise: toPromise,\n get: get\n };\n };\n var nu$4 = function (baseFn) {\n return make(function () {\n return new Promise(baseFn);\n });\n };\n var pure$1 = function (a) {\n return make(function () {\n return Promise.resolve(a);\n });\n };\n var Future = {\n nu: nu$4,\n pure: pure$1\n };\n\n var par = function (asyncValues, nu) {\n return nu(function (callback) {\n var r = [];\n var count = 0;\n var cb = function (i) {\n return function (value) {\n r[i] = value;\n count++;\n if (count >= asyncValues.length) {\n callback(r);\n }\n };\n };\n if (asyncValues.length === 0) {\n callback([]);\n } else {\n each(asyncValues, function (asyncValue, i) {\n asyncValue.get(cb(i));\n });\n }\n });\n };\n\n var par$1 = function (futures) {\n return par(futures, Future.nu);\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var fromOption = function (opt, err) {\n return opt.fold(function () {\n return error(err);\n }, value);\n };\n var Result = {\n value: value,\n error: error,\n fromOption: fromOption\n };\n\n var promise = function () {\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n var isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n };\n var Promise = function (fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('not a function');\n }\n this._state = null;\n this._value = null;\n this._deferreds = [];\n doResolve(fn, bind(resolve, this), bind(reject, this));\n };\n var asap = Promise.immediateFn || typeof domGlobals.setImmediate === 'function' && domGlobals.setImmediate || function (fn) {\n domGlobals.setTimeout(fn, 1);\n };\n function handle(deferred) {\n var me = this;\n if (this._state === null) {\n this._deferreds.push(deferred);\n return;\n }\n asap(function () {\n var cb = me._state ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (me._state ? deferred.resolve : deferred.reject)(me._value);\n return;\n }\n var ret;\n try {\n ret = cb(me._value);\n } catch (e) {\n deferred.reject(e);\n return;\n }\n deferred.resolve(ret);\n });\n }\n function resolve(newValue) {\n try {\n if (newValue === this) {\n throw new TypeError('A promise cannot be resolved with itself.');\n }\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (typeof then === 'function') {\n doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n return;\n }\n }\n this._state = true;\n this._value = newValue;\n finale.call(this);\n } catch (e) {\n reject.call(this, e);\n }\n }\n function reject(newValue) {\n this._state = false;\n this._value = newValue;\n finale.call(this);\n }\n function finale() {\n for (var i = 0, len = this._deferreds.length; i < len; i++) {\n handle.call(this, this._deferreds[i]);\n }\n this._deferreds = null;\n }\n function Handler(onFulfilled, onRejected, resolve, reject) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n }\n function doResolve(fn, onFulfilled, onRejected) {\n var done = false;\n try {\n fn(function (value) {\n if (done) {\n return;\n }\n done = true;\n onFulfilled(value);\n }, function (reason) {\n if (done) {\n return;\n }\n done = true;\n onRejected(reason);\n });\n } catch (ex) {\n if (done) {\n return;\n }\n done = true;\n onRejected(ex);\n }\n }\n Promise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var me = this;\n return new Promise(function (resolve, reject) {\n handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n });\n };\n Promise.all = function () {\n var args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\n return new Promise(function (resolve, reject) {\n if (args.length === 0) {\n return resolve([]);\n }\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n return Promise;\n };\n var promiseObj = window.Promise ? window.Promise : promise();\n\n var requestAnimationFramePromise;\n var requestAnimationFrame = function (callback, element) {\n var i, requestAnimationFrameFunc = domGlobals.window.requestAnimationFrame;\n var vendors = [\n 'ms',\n 'moz',\n 'webkit'\n ];\n var featurefill = function (callback) {\n domGlobals.window.setTimeout(callback, 0);\n };\n for (i = 0; i < vendors.length && !requestAnimationFrameFunc; i++) {\n requestAnimationFrameFunc = domGlobals.window[vendors[i] + 'RequestAnimationFrame'];\n }\n if (!requestAnimationFrameFunc) {\n requestAnimationFrameFunc = featurefill;\n }\n requestAnimationFrameFunc(callback, element);\n };\n var wrappedSetTimeout = function (callback, time) {\n if (typeof time !== 'number') {\n time = 0;\n }\n return domGlobals.setTimeout(callback, time);\n };\n var wrappedSetInterval = function (callback, time) {\n if (typeof time !== 'number') {\n time = 1;\n }\n return domGlobals.setInterval(callback, time);\n };\n var wrappedClearTimeout = function (id) {\n return domGlobals.clearTimeout(id);\n };\n var wrappedClearInterval = function (id) {\n return domGlobals.clearInterval(id);\n };\n var debounce = function (callback, time) {\n var timer, func;\n func = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n domGlobals.clearTimeout(timer);\n timer = wrappedSetTimeout(function () {\n callback.apply(this, args);\n }, time);\n };\n func.stop = function () {\n domGlobals.clearTimeout(timer);\n };\n return func;\n };\n var Delay = {\n requestAnimationFrame: function (callback, element) {\n if (requestAnimationFramePromise) {\n requestAnimationFramePromise.then(callback);\n return;\n }\n requestAnimationFramePromise = new promiseObj(function (resolve) {\n if (!element) {\n element = domGlobals.document.body;\n }\n requestAnimationFrame(resolve, element);\n }).then(callback);\n },\n setTimeout: wrappedSetTimeout,\n setInterval: wrappedSetInterval,\n setEditorTimeout: function (editor, callback, time) {\n return wrappedSetTimeout(function () {\n if (!editor.removed) {\n callback();\n }\n }, time);\n },\n setEditorInterval: function (editor, callback, time) {\n var timer;\n timer = wrappedSetInterval(function () {\n if (!editor.removed) {\n callback();\n } else {\n domGlobals.clearInterval(timer);\n }\n }, time);\n return timer;\n },\n debounce: debounce,\n throttle: debounce,\n clearInterval: wrappedClearInterval,\n clearTimeout: wrappedClearTimeout\n };\n\n var userAgent = domGlobals.navigator.userAgent;\n var platform$1 = detect$3();\n var browser$2 = platform$1.browser;\n var os = platform$1.os;\n var deviceType = platform$1.deviceType;\n var webkit = /WebKit/.test(userAgent) && !browser$2.isEdge();\n var fileApi = 'FormData' in domGlobals.window && 'FileReader' in domGlobals.window && 'URL' in domGlobals.window && !!domGlobals.URL.createObjectURL;\n var windowsPhone = userAgent.indexOf('Windows Phone') !== -1;\n var Env = {\n opera: browser$2.isOpera(),\n webkit: webkit,\n ie: browser$2.isIE() || browser$2.isEdge() ? browser$2.version.major : false,\n gecko: browser$2.isFirefox(),\n mac: os.isOSX() || os.isiOS(),\n iOS: deviceType.isiPad() || deviceType.isiPhone(),\n android: os.isAndroid(),\n contentEditable: true,\n transparentSrc: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',\n caretAfter: true,\n range: domGlobals.window.getSelection && 'Range' in domGlobals.window,\n documentMode: browser$2.isIE() ? domGlobals.document.documentMode || 7 : 10,\n fileApi: fileApi,\n ceFalse: true,\n cacheSuffix: null,\n container: null,\n experimentalShadowDom: false,\n canHaveCSP: !browser$2.isIE(),\n desktop: deviceType.isDesktop(),\n windowsPhone: windowsPhone,\n browser: {\n current: browser$2.current,\n version: browser$2.version,\n isChrome: browser$2.isChrome,\n isEdge: browser$2.isEdge,\n isFirefox: browser$2.isFirefox,\n isIE: browser$2.isIE,\n isOpera: browser$2.isOpera,\n isSafari: browser$2.isSafari\n },\n os: {\n current: os.current,\n version: os.version,\n isAndroid: os.isAndroid,\n isFreeBSD: os.isFreeBSD,\n isiOS: os.isiOS,\n isLinux: os.isLinux,\n isOSX: os.isOSX,\n isSolaris: os.isSolaris,\n isWindows: os.isWindows\n },\n deviceType: {\n isDesktop: deviceType.isDesktop,\n isiPad: deviceType.isiPad,\n isiPhone: deviceType.isiPhone,\n isPhone: deviceType.isPhone,\n isTablet: deviceType.isTablet,\n isTouch: deviceType.isTouch,\n isWebView: deviceType.isWebView\n }\n };\n\n var isArray$1 = Array.isArray;\n var toArray$1 = function (obj) {\n var array = obj, i, l;\n if (!isArray$1(obj)) {\n array = [];\n for (i = 0, l = obj.length; i < l; i++) {\n array[i] = obj[i];\n }\n }\n return array;\n };\n var each$2 = function (o, cb, s) {\n var n, l;\n if (!o) {\n return 0;\n }\n s = s || o;\n if (o.length !== undefined) {\n for (n = 0, l = o.length; n < l; n++) {\n if (cb.call(s, o[n], n, o) === false) {\n return 0;\n }\n }\n } else {\n for (n in o) {\n if (o.hasOwnProperty(n)) {\n if (cb.call(s, o[n], n, o) === false) {\n return 0;\n }\n }\n }\n }\n return 1;\n };\n var map$2 = function (array, callback) {\n var out = [];\n each$2(array, function (item, index) {\n out.push(callback(item, index, array));\n });\n return out;\n };\n var filter$1 = function (a, f) {\n var o = [];\n each$2(a, function (v, index) {\n if (!f || f(v, index, a)) {\n o.push(v);\n }\n });\n return o;\n };\n var indexOf$1 = function (a, v) {\n var i, l;\n if (a) {\n for (i = 0, l = a.length; i < l; i++) {\n if (a[i] === v) {\n return i;\n }\n }\n }\n return -1;\n };\n var reduce = function (collection, iteratee, accumulator, thisArg) {\n var i = 0;\n if (arguments.length < 3) {\n accumulator = collection[0];\n }\n for (; i < collection.length; i++) {\n accumulator = iteratee.call(thisArg, accumulator, collection[i], i);\n }\n return accumulator;\n };\n var findIndex$1 = function (array, predicate, thisArg) {\n var i, l;\n for (i = 0, l = array.length; i < l; i++) {\n if (predicate.call(thisArg, array[i], i, array)) {\n return i;\n }\n }\n return -1;\n };\n var find$2 = function (array, predicate, thisArg) {\n var idx = findIndex$1(array, predicate, thisArg);\n if (idx !== -1) {\n return array[idx];\n }\n return undefined;\n };\n var last$1 = function (collection) {\n return collection[collection.length - 1];\n };\n var ArrUtils = {\n isArray: isArray$1,\n toArray: toArray$1,\n each: each$2,\n map: map$2,\n filter: filter$1,\n indexOf: indexOf$1,\n reduce: reduce,\n findIndex: findIndex$1,\n find: find$2,\n last: last$1\n };\n\n var whiteSpaceRegExp = /^\\s*|\\s*$/g;\n var trim$1 = function (str) {\n return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp, '');\n };\n var is$1 = function (obj, type) {\n if (!type) {\n return obj !== undefined;\n }\n if (type === 'array' && ArrUtils.isArray(obj)) {\n return true;\n }\n return typeof obj === type;\n };\n var makeMap = function (items, delim, map) {\n var i;\n items = items || [];\n delim = delim || ',';\n if (typeof items === 'string') {\n items = items.split(delim);\n }\n map = map || {};\n i = items.length;\n while (i--) {\n map[items[i]] = {};\n }\n return map;\n };\n var hasOwnProperty$1 = function (obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n };\n var create = function (s, p, root) {\n var self = this;\n var sp, ns, cn, scn, c, de = 0;\n s = /^((static) )?([\\w.]+)(:([\\w.]+))?/.exec(s);\n cn = s[3].match(/(^|\\.)(\\w+)$/i)[2];\n ns = self.createNS(s[3].replace(/\\.\\w+$/, ''), root);\n if (ns[cn]) {\n return;\n }\n if (s[2] === 'static') {\n ns[cn] = p;\n if (this.onCreate) {\n this.onCreate(s[2], s[3], ns[cn]);\n }\n return;\n }\n if (!p[cn]) {\n p[cn] = function () {\n };\n de = 1;\n }\n ns[cn] = p[cn];\n self.extend(ns[cn].prototype, p);\n if (s[5]) {\n sp = self.resolve(s[5]).prototype;\n scn = s[5].match(/\\.(\\w+)$/i)[1];\n c = ns[cn];\n if (de) {\n ns[cn] = function () {\n return sp[scn].apply(this, arguments);\n };\n } else {\n ns[cn] = function () {\n this.parent = sp[scn];\n return c.apply(this, arguments);\n };\n }\n ns[cn].prototype[cn] = ns[cn];\n self.each(sp, function (f, n) {\n ns[cn].prototype[n] = sp[n];\n });\n self.each(p, function (f, n) {\n if (sp[n]) {\n ns[cn].prototype[n] = function () {\n this.parent = sp[n];\n return f.apply(this, arguments);\n };\n } else {\n if (n !== cn) {\n ns[cn].prototype[n] = f;\n }\n }\n });\n }\n self.each(p.static, function (f, n) {\n ns[cn][n] = f;\n });\n };\n var extend = function (obj, ext) {\n var x = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n x[_i - 2] = arguments[_i];\n }\n var i, l, name;\n var args = arguments;\n var value;\n for (i = 1, l = args.length; i < l; i++) {\n ext = args[i];\n for (name in ext) {\n if (ext.hasOwnProperty(name)) {\n value = ext[name];\n if (value !== undefined) {\n obj[name] = value;\n }\n }\n }\n }\n return obj;\n };\n var walk = function (o, f, n, s) {\n s = s || this;\n if (o) {\n if (n) {\n o = o[n];\n }\n ArrUtils.each(o, function (o, i) {\n if (f.call(s, o, i, n) === false) {\n return false;\n }\n walk(o, f, n, s);\n });\n }\n };\n var createNS = function (n, o) {\n var i, v;\n o = o || domGlobals.window;\n n = n.split('.');\n for (i = 0; i < n.length; i++) {\n v = n[i];\n if (!o[v]) {\n o[v] = {};\n }\n o = o[v];\n }\n return o;\n };\n var resolve = function (n, o) {\n var i, l;\n o = o || domGlobals.window;\n n = n.split('.');\n for (i = 0, l = n.length; i < l; i++) {\n o = o[n[i]];\n if (!o) {\n break;\n }\n }\n return o;\n };\n var explode = function (s, d) {\n if (!s || is$1(s, 'array')) {\n return s;\n }\n return ArrUtils.map(s.split(d || ','), trim$1);\n };\n var _addCacheSuffix = function (url) {\n var cacheSuffix = Env.cacheSuffix;\n if (cacheSuffix) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + cacheSuffix;\n }\n return url;\n };\n var Tools = {\n trim: trim$1,\n isArray: ArrUtils.isArray,\n is: is$1,\n toArray: ArrUtils.toArray,\n makeMap: makeMap,\n each: ArrUtils.each,\n map: ArrUtils.map,\n grep: ArrUtils.filter,\n inArray: ArrUtils.indexOf,\n hasOwn: hasOwnProperty$1,\n extend: extend,\n create: create,\n walk: walk,\n createNS: createNS,\n resolve: resolve,\n explode: explode,\n _addCacheSuffix: _addCacheSuffix\n };\n\n function StyleSheetLoader(document, settings) {\n if (settings === void 0) {\n settings = {};\n }\n var idCount = 0;\n var loadedStates = {};\n var maxLoadTime;\n maxLoadTime = settings.maxLoadTime || 5000;\n var _setReferrerPolicy = function (referrerPolicy) {\n settings.referrerPolicy = referrerPolicy;\n };\n var appendToHead = function (node) {\n document.getElementsByTagName('head')[0].appendChild(node);\n };\n var load = function (url, loadedCallback, errorCallback) {\n var link, style, startTime, state;\n var resolve = function (status) {\n state.status = status;\n state.passed = [];\n state.failed = [];\n if (link) {\n link.onload = null;\n link.onerror = null;\n link = null;\n }\n };\n var passed = function () {\n var callbacks = state.passed;\n var i = callbacks.length;\n while (i--) {\n callbacks[i]();\n }\n resolve(2);\n };\n var failed = function () {\n var callbacks = state.failed;\n var i = callbacks.length;\n while (i--) {\n callbacks[i]();\n }\n resolve(3);\n };\n var isOldWebKit = function () {\n var webKitChunks = domGlobals.navigator.userAgent.match(/WebKit\\/(\\d*)/);\n return !!(webKitChunks && parseInt(webKitChunks[1], 10) < 536);\n };\n var wait = function (testCallback, waitCallback) {\n if (!testCallback()) {\n if (new Date().getTime() - startTime < maxLoadTime) {\n Delay.setTimeout(waitCallback);\n } else {\n failed();\n }\n }\n };\n var waitForWebKitLinkLoaded = function () {\n wait(function () {\n var styleSheets = document.styleSheets;\n var styleSheet, i = styleSheets.length, owner;\n while (i--) {\n styleSheet = styleSheets[i];\n owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement;\n if (owner && owner.id === link.id) {\n passed();\n return true;\n }\n }\n }, waitForWebKitLinkLoaded);\n };\n var waitForGeckoLinkLoaded = function () {\n wait(function () {\n try {\n var cssRules = style.sheet.cssRules;\n passed();\n return !!cssRules;\n } catch (ex) {\n }\n }, waitForGeckoLinkLoaded);\n };\n url = Tools._addCacheSuffix(url);\n if (!loadedStates[url]) {\n state = {\n passed: [],\n failed: []\n };\n loadedStates[url] = state;\n } else {\n state = loadedStates[url];\n }\n if (loadedCallback) {\n state.passed.push(loadedCallback);\n }\n if (errorCallback) {\n state.failed.push(errorCallback);\n }\n if (state.status === 1) {\n return;\n }\n if (state.status === 2) {\n passed();\n return;\n }\n if (state.status === 3) {\n failed();\n return;\n }\n state.status = 1;\n link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.id = 'u' + idCount++;\n link.async = false;\n link.defer = false;\n startTime = new Date().getTime();\n if (settings.contentCssCors) {\n link.crossOrigin = 'anonymous';\n }\n if (settings.referrerPolicy) {\n set(Element.fromDom(link), 'referrerpolicy', settings.referrerPolicy);\n }\n if ('onload' in link && !isOldWebKit()) {\n link.onload = waitForWebKitLinkLoaded;\n link.onerror = failed;\n } else {\n if (domGlobals.navigator.userAgent.indexOf('Firefox') > 0) {\n style = document.createElement('style');\n style.textContent = '@import \"' + url + '\"';\n waitForGeckoLinkLoaded();\n appendToHead(style);\n return;\n }\n waitForWebKitLinkLoaded();\n }\n appendToHead(link);\n link.href = url;\n };\n var loadF = function (url) {\n return Future.nu(function (resolve) {\n load(url, compose(resolve, constant(Result.value(url))), compose(resolve, constant(Result.error(url))));\n });\n };\n var unbox = function (result) {\n return result.fold(identity, identity);\n };\n var loadAll = function (urls, success, failure) {\n par$1(map(urls, loadF)).get(function (result) {\n var parts = partition(result, function (r) {\n return r.isValue();\n });\n if (parts.fail.length > 0) {\n failure(parts.fail.map(unbox));\n } else {\n success(parts.pass.map(unbox));\n }\n });\n };\n return {\n load: load,\n loadAll: loadAll,\n _setReferrerPolicy: _setReferrerPolicy\n };\n }\n\n var blocks = [\n 'article',\n 'aside',\n 'details',\n 'div',\n 'dt',\n 'figcaption',\n 'footer',\n 'form',\n 'fieldset',\n 'header',\n 'hgroup',\n 'html',\n 'main',\n 'nav',\n 'section',\n 'summary',\n 'body',\n 'p',\n 'dl',\n 'multicol',\n 'dd',\n 'figure',\n 'address',\n 'center',\n 'blockquote',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'listing',\n 'xmp',\n 'pre',\n 'plaintext',\n 'menu',\n 'dir',\n 'ul',\n 'ol',\n 'li',\n 'hr',\n 'table',\n 'tbody',\n 'thead',\n 'tfoot',\n 'th',\n 'tr',\n 'td',\n 'caption'\n ];\n var voids = [\n 'area',\n 'base',\n 'basefont',\n 'br',\n 'col',\n 'frame',\n 'hr',\n 'img',\n 'input',\n 'isindex',\n 'link',\n 'meta',\n 'param',\n 'embed',\n 'source',\n 'wbr',\n 'track'\n ];\n var tableCells = [\n 'td',\n 'th'\n ];\n var tableSections = [\n 'thead',\n 'tbody',\n 'tfoot'\n ];\n var textBlocks = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div',\n 'address',\n 'pre',\n 'form',\n 'blockquote',\n 'center',\n 'dir',\n 'fieldset',\n 'header',\n 'footer',\n 'article',\n 'section',\n 'hgroup',\n 'aside',\n 'nav',\n 'figure'\n ];\n var headings = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ];\n var listItems = [\n 'li',\n 'dd',\n 'dt'\n ];\n var lists = [\n 'ul',\n 'ol',\n 'dl'\n ];\n var wsElements = [\n 'pre',\n 'script',\n 'textarea',\n 'style'\n ];\n var lazyLookup = function (items) {\n var lookup;\n return function (node) {\n lookup = lookup ? lookup : mapToObject(items, constant(true));\n return lookup.hasOwnProperty(name(node));\n };\n };\n var isHeading = lazyLookup(headings);\n var isBlock = lazyLookup(blocks);\n var isTable$1 = function (node) {\n return name(node) === 'table';\n };\n var isInline = function (node) {\n return isElement$1(node) && !isBlock(node);\n };\n var isBr$1 = function (node) {\n return isElement$1(node) && name(node) === 'br';\n };\n var isTextBlock = lazyLookup(textBlocks);\n var isList = lazyLookup(lists);\n var isListItem = lazyLookup(listItems);\n var isVoid = lazyLookup(voids);\n var isTableSection = lazyLookup(tableSections);\n var isTableCell = lazyLookup(tableCells);\n var isWsPreserveElement = lazyLookup(wsElements);\n\n var surroundedBySpans = function (node) {\n var previousIsSpan = node.previousSibling && node.previousSibling.nodeName === 'SPAN';\n var nextIsSpan = node.nextSibling && node.nextSibling.nodeName === 'SPAN';\n return previousIsSpan && nextIsSpan;\n };\n var isBookmarkNode = function (node) {\n return node && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\n };\n var trimNode = function (dom, node) {\n var i, children = node.childNodes;\n if (NodeType.isElement(node) && isBookmarkNode(node)) {\n return;\n }\n for (i = children.length - 1; i >= 0; i--) {\n trimNode(dom, children[i]);\n }\n if (NodeType.isDocument(node) === false) {\n if (NodeType.isText(node) && node.nodeValue.length > 0) {\n var trimmedLength = Tools.trim(node.nodeValue).length;\n if (dom.isBlock(node.parentNode) || trimmedLength > 0) {\n return;\n }\n if (trimmedLength === 0 && surroundedBySpans(node)) {\n return;\n }\n } else if (NodeType.isElement(node)) {\n children = node.childNodes;\n if (children.length === 1 && isBookmarkNode(children[0])) {\n node.parentNode.insertBefore(children[0], node);\n }\n if (children.length || isVoid(Element.fromDom(node))) {\n return;\n }\n }\n dom.remove(node);\n }\n return node;\n };\n var TrimNode = { trimNode: trimNode };\n\n var makeMap$1 = Tools.makeMap;\n var namedEntities, baseEntities, reverseEntities;\n var attrsCharsRegExp = /[&<>\\\"\\u0060\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var textCharsRegExp = /[<>&\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var rawCharsRegExp = /[<>&\\\"\\']/g;\n var entityRegExp = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi;\n var asciiMap = {\n 128: '\\u20AC',\n 130: '\\u201A',\n 131: '\\u0192',\n 132: '\\u201E',\n 133: '\\u2026',\n 134: '\\u2020',\n 135: '\\u2021',\n 136: '\\u02c6',\n 137: '\\u2030',\n 138: '\\u0160',\n 139: '\\u2039',\n 140: '\\u0152',\n 142: '\\u017d',\n 145: '\\u2018',\n 146: '\\u2019',\n 147: '\\u201C',\n 148: '\\u201D',\n 149: '\\u2022',\n 150: '\\u2013',\n 151: '\\u2014',\n 152: '\\u02DC',\n 153: '\\u2122',\n 154: '\\u0161',\n 155: '\\u203A',\n 156: '\\u0153',\n 158: '\\u017e',\n 159: '\\u0178'\n };\n baseEntities = {\n '\"': '&quot;',\n '\\'': '&#39;',\n '<': '&lt;',\n '>': '&gt;',\n '&': '&amp;',\n '`': '&#96;'\n };\n reverseEntities = {\n '&lt;': '<',\n '&gt;': '>',\n '&amp;': '&',\n '&quot;': '\"',\n '&apos;': '\\''\n };\n var nativeDecode = function (text) {\n var elm;\n elm = Element.fromTag('div').dom();\n elm.innerHTML = text;\n return elm.textContent || elm.innerText || text;\n };\n var buildEntitiesLookup = function (items, radix) {\n var i, chr, entity;\n var lookup = {};\n if (items) {\n items = items.split(',');\n radix = radix || 10;\n for (i = 0; i < items.length; i += 2) {\n chr = String.fromCharCode(parseInt(items[i], radix));\n if (!baseEntities[chr]) {\n entity = '&' + items[i + 1] + ';';\n lookup[chr] = entity;\n lookup[entity] = chr;\n }\n }\n return lookup;\n }\n };\n namedEntities = buildEntitiesLookup('50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32);\n var encodeRaw = function (text, attr) {\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\n return baseEntities[chr] || chr;\n });\n };\n var encodeAllRaw = function (text) {\n return ('' + text).replace(rawCharsRegExp, function (chr) {\n return baseEntities[chr] || chr;\n });\n };\n var encodeNumeric = function (text, attr) {\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\n if (chr.length > 1) {\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n }\n return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';';\n });\n };\n var encodeNamed = function (text, attr, entities) {\n entities = entities || namedEntities;\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\n return baseEntities[chr] || entities[chr] || chr;\n });\n };\n var getEncodeFunc = function (name, entities) {\n var entitiesMap = buildEntitiesLookup(entities) || namedEntities;\n var encodeNamedAndNumeric = function (text, attr) {\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\n if (baseEntities[chr] !== undefined) {\n return baseEntities[chr];\n }\n if (entitiesMap[chr] !== undefined) {\n return entitiesMap[chr];\n }\n if (chr.length > 1) {\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n }\n return '&#' + chr.charCodeAt(0) + ';';\n });\n };\n var encodeCustomNamed = function (text, attr) {\n return encodeNamed(text, attr, entitiesMap);\n };\n var nameMap = makeMap$1(name.replace(/\\+/g, ','));\n if (nameMap.named && nameMap.numeric) {\n return encodeNamedAndNumeric;\n }\n if (nameMap.named) {\n if (entities) {\n return encodeCustomNamed;\n }\n return encodeNamed;\n }\n if (nameMap.numeric) {\n return encodeNumeric;\n }\n return encodeRaw;\n };\n var decode = function (text) {\n return text.replace(entityRegExp, function (all, numeric) {\n if (numeric) {\n if (numeric.charAt(0).toLowerCase() === 'x') {\n numeric = parseInt(numeric.substr(1), 16);\n } else {\n numeric = parseInt(numeric, 10);\n }\n if (numeric > 65535) {\n numeric -= 65536;\n return String.fromCharCode(55296 + (numeric >> 10), 56320 + (numeric & 1023));\n }\n return asciiMap[numeric] || String.fromCharCode(numeric);\n }\n return reverseEntities[all] || namedEntities[all] || nativeDecode(all);\n });\n };\n var Entities = {\n encodeRaw: encodeRaw,\n encodeAllRaw: encodeAllRaw,\n encodeNumeric: encodeNumeric,\n encodeNamed: encodeNamed,\n getEncodeFunc: getEncodeFunc,\n decode: decode\n };\n\n var mapCache = {}, dummyObj = {};\n var makeMap$2 = Tools.makeMap, each$3 = Tools.each, extend$1 = Tools.extend, explode$1 = Tools.explode, inArray = Tools.inArray;\n var split = function (items, delim) {\n items = Tools.trim(items);\n return items ? items.split(delim || ' ') : [];\n };\n var compileSchema = function (type) {\n var schema = {};\n var globalAttributes, blockContent;\n var phrasingContent, flowContent, html4BlockContent, html4PhrasingContent;\n var add = function (name, attributes, children) {\n var ni, attributesOrder, element;\n var arrayToMap = function (array, obj) {\n var map = {};\n var i, l;\n for (i = 0, l = array.length; i < l; i++) {\n map[array[i]] = obj || {};\n }\n return map;\n };\n children = children || [];\n attributes = attributes || '';\n if (typeof children === 'string') {\n children = split(children);\n }\n name = split(name);\n ni = name.length;\n while (ni--) {\n attributesOrder = split([\n globalAttributes,\n attributes\n ].join(' '));\n element = {\n attributes: arrayToMap(attributesOrder),\n attributesOrder: attributesOrder,\n children: arrayToMap(children, dummyObj)\n };\n schema[name[ni]] = element;\n }\n };\n var addAttrs = function (name, attributes) {\n var ni, schemaItem, i, l;\n name = split(name);\n ni = name.length;\n attributes = split(attributes);\n while (ni--) {\n schemaItem = schema[name[ni]];\n for (i = 0, l = attributes.length; i < l; i++) {\n schemaItem.attributes[attributes[i]] = {};\n schemaItem.attributesOrder.push(attributes[i]);\n }\n }\n };\n if (mapCache[type]) {\n return mapCache[type];\n }\n globalAttributes = 'id accesskey class dir lang style tabindex title role';\n blockContent = 'address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul';\n phrasingContent = 'a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd ' + 'label map noscript object q s samp script select small span strong sub sup ' + 'textarea u var #text #comment';\n if (type !== 'html4') {\n globalAttributes += ' contenteditable contextmenu draggable dropzone ' + 'hidden spellcheck translate';\n blockContent += ' article aside details dialog figure main header footer hgroup section nav';\n phrasingContent += ' audio canvas command datalist mark meter output picture ' + 'progress time wbr video ruby bdi keygen';\n }\n if (type !== 'html5-strict') {\n globalAttributes += ' xml:lang';\n html4PhrasingContent = 'acronym applet basefont big font strike tt';\n phrasingContent = [\n phrasingContent,\n html4PhrasingContent\n ].join(' ');\n each$3(split(html4PhrasingContent), function (name) {\n add(name, '', phrasingContent);\n });\n html4BlockContent = 'center dir isindex noframes';\n blockContent = [\n blockContent,\n html4BlockContent\n ].join(' ');\n flowContent = [\n blockContent,\n phrasingContent\n ].join(' ');\n each$3(split(html4BlockContent), function (name) {\n add(name, '', flowContent);\n });\n }\n flowContent = flowContent || [\n blockContent,\n phrasingContent\n ].join(' ');\n add('html', 'manifest', 'head body');\n add('head', '', 'base command link meta noscript script style title');\n add('title hr noscript br');\n add('base', 'href target');\n add('link', 'href rel media hreflang type sizes hreflang');\n add('meta', 'name http-equiv content charset');\n add('style', 'media type scoped');\n add('script', 'src async defer type charset');\n add('body', 'onafterprint onbeforeprint onbeforeunload onblur onerror onfocus ' + 'onhashchange onload onmessage onoffline ononline onpagehide onpageshow ' + 'onpopstate onresize onscroll onstorage onunload', flowContent);\n add('address dt dd div caption', '', flowContent);\n add('h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn', '', phrasingContent);\n add('blockquote', 'cite', flowContent);\n add('ol', 'reversed start type', 'li');\n add('ul', '', 'li');\n add('li', 'value', flowContent);\n add('dl', '', 'dt dd');\n add('a', 'href target rel media hreflang type', phrasingContent);\n add('q', 'cite', phrasingContent);\n add('ins del', 'cite datetime', flowContent);\n add('img', 'src sizes srcset alt usemap ismap width height');\n add('iframe', 'src name width height', flowContent);\n add('embed', 'src type width height');\n add('object', 'data type typemustmatch name usemap form width height', [\n flowContent,\n 'param'\n ].join(' '));\n add('param', 'name value');\n add('map', 'name', [\n flowContent,\n 'area'\n ].join(' '));\n add('area', 'alt coords shape href target rel media hreflang type');\n add('table', 'border', 'caption colgroup thead tfoot tbody tr' + (type === 'html4' ? ' col' : ''));\n add('colgroup', 'span', 'col');\n add('col', 'span');\n add('tbody thead tfoot', '', 'tr');\n add('tr', '', 'td th');\n add('td', 'colspan rowspan headers', flowContent);\n add('th', 'colspan rowspan headers scope abbr', flowContent);\n add('form', 'accept-charset action autocomplete enctype method name novalidate target', flowContent);\n add('fieldset', 'disabled form name', [\n flowContent,\n 'legend'\n ].join(' '));\n add('label', 'form for', phrasingContent);\n add('input', 'accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate ' + 'formtarget height list max maxlength min multiple name pattern readonly required size src step type value width');\n add('button', 'disabled form formaction formenctype formmethod formnovalidate formtarget name type value', type === 'html4' ? flowContent : phrasingContent);\n add('select', 'disabled form multiple name required size', 'option optgroup');\n add('optgroup', 'disabled label', 'option');\n add('option', 'disabled label selected value');\n add('textarea', 'cols dirname disabled form maxlength name readonly required rows wrap');\n add('menu', 'type label', [\n flowContent,\n 'li'\n ].join(' '));\n add('noscript', '', flowContent);\n if (type !== 'html4') {\n add('wbr');\n add('ruby', '', [\n phrasingContent,\n 'rt rp'\n ].join(' '));\n add('figcaption', '', flowContent);\n add('mark rt rp summary bdi', '', phrasingContent);\n add('canvas', 'width height', flowContent);\n add('video', 'src crossorigin poster preload autoplay mediagroup loop ' + 'muted controls width height buffered', [\n flowContent,\n 'track source'\n ].join(' '));\n add('audio', 'src crossorigin preload autoplay mediagroup loop muted controls ' + 'buffered volume', [\n flowContent,\n 'track source'\n ].join(' '));\n add('picture', '', 'img source');\n add('source', 'src srcset type media sizes');\n add('track', 'kind src srclang label default');\n add('datalist', '', [\n phrasingContent,\n 'option'\n ].join(' '));\n add('article section nav aside main header footer', '', flowContent);\n add('hgroup', '', 'h1 h2 h3 h4 h5 h6');\n add('figure', '', [\n flowContent,\n 'figcaption'\n ].join(' '));\n add('time', 'datetime', phrasingContent);\n add('dialog', 'open', flowContent);\n add('command', 'type label icon disabled checked radiogroup command');\n add('output', 'for form name', phrasingContent);\n add('progress', 'value max', phrasingContent);\n add('meter', 'value min max low high optimum', phrasingContent);\n add('details', 'open', [\n flowContent,\n 'summary'\n ].join(' '));\n add('keygen', 'autofocus challenge disabled form keytype name');\n }\n if (type !== 'html5-strict') {\n addAttrs('script', 'language xml:space');\n addAttrs('style', 'xml:space');\n addAttrs('object', 'declare classid code codebase codetype archive standby align border hspace vspace');\n addAttrs('embed', 'align name hspace vspace');\n addAttrs('param', 'valuetype type');\n addAttrs('a', 'charset name rev shape coords');\n addAttrs('br', 'clear');\n addAttrs('applet', 'codebase archive code object alt name width height align hspace vspace');\n addAttrs('img', 'name longdesc align border hspace vspace');\n addAttrs('iframe', 'longdesc frameborder marginwidth marginheight scrolling align');\n addAttrs('font basefont', 'size color face');\n addAttrs('input', 'usemap align');\n addAttrs('select', 'onchange');\n addAttrs('textarea');\n addAttrs('h1 h2 h3 h4 h5 h6 div p legend caption', 'align');\n addAttrs('ul', 'type compact');\n addAttrs('li', 'type');\n addAttrs('ol dl menu dir', 'compact');\n addAttrs('pre', 'width xml:space');\n addAttrs('hr', 'align noshade size width');\n addAttrs('isindex', 'prompt');\n addAttrs('table', 'summary width frame rules cellspacing cellpadding align bgcolor');\n addAttrs('col', 'width align char charoff valign');\n addAttrs('colgroup', 'width align char charoff valign');\n addAttrs('thead', 'align char charoff valign');\n addAttrs('tr', 'align char charoff valign bgcolor');\n addAttrs('th', 'axis align char charoff valign nowrap bgcolor width height');\n addAttrs('form', 'accept');\n addAttrs('td', 'abbr axis scope align char charoff valign nowrap bgcolor width height');\n addAttrs('tfoot', 'align char charoff valign');\n addAttrs('tbody', 'align char charoff valign');\n addAttrs('area', 'nohref');\n addAttrs('body', 'background bgcolor text link vlink alink');\n }\n if (type !== 'html4') {\n addAttrs('input button select textarea', 'autofocus');\n addAttrs('input textarea', 'placeholder');\n addAttrs('a', 'download');\n addAttrs('link script img', 'crossorigin');\n addAttrs('iframe', 'sandbox seamless allowfullscreen');\n }\n each$3(split('a form meter progress dfn'), function (name) {\n if (schema[name]) {\n delete schema[name].children[name];\n }\n });\n delete schema.caption.children.table;\n delete schema.script;\n mapCache[type] = schema;\n return schema;\n };\n var compileElementMap = function (value, mode) {\n var styles;\n if (value) {\n styles = {};\n if (typeof value === 'string') {\n value = { '*': value };\n }\n each$3(value, function (value, key) {\n styles[key] = styles[key.toUpperCase()] = mode === 'map' ? makeMap$2(value, /[, ]/) : explode$1(value, /[, ]/);\n });\n }\n return styles;\n };\n function Schema(settings) {\n var elements = {};\n var children = {};\n var patternElements = [];\n var validStyles;\n var invalidStyles;\n var schemaItems;\n var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap, validClasses;\n var blockElementsMap, nonEmptyElementsMap, moveCaretBeforeOnEnterElementsMap, textBlockElementsMap, textInlineElementsMap;\n var customElementsMap = {}, specialElements = {};\n var createLookupTable = function (option, defaultValue, extendWith) {\n var value = settings[option];\n if (!value) {\n value = mapCache[option];\n if (!value) {\n value = makeMap$2(defaultValue, ' ', makeMap$2(defaultValue.toUpperCase(), ' '));\n value = extend$1(value, extendWith);\n mapCache[option] = value;\n }\n } else {\n value = makeMap$2(value, /[, ]/, makeMap$2(value.toUpperCase(), /[, ]/));\n }\n return value;\n };\n settings = settings || {};\n schemaItems = compileSchema(settings.schema);\n if (settings.verify_html === false) {\n settings.valid_elements = '*[*]';\n }\n validStyles = compileElementMap(settings.valid_styles);\n invalidStyles = compileElementMap(settings.invalid_styles, 'map');\n validClasses = compileElementMap(settings.valid_classes, 'map');\n whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object code');\n selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr');\n shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link ' + 'meta param embed source wbr track');\n boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + 'noshade nowrap readonly selected autoplay loop controls');\n nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object ' + 'script pre code', shortEndedElementsMap);\n moveCaretBeforeOnEnterElementsMap = createLookupTable('move_caret_before_on_enter_elements', 'table', nonEmptyElementsMap);\n textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside main nav figure');\n blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary', textBlockElementsMap);\n textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font strike u var cite ' + 'dfn code mark q sup sub samp');\n each$3((settings.special || 'script noscript noframes noembed title style textarea xmp').split(' '), function (name) {\n specialElements[name] = new RegExp('</' + name + '[^>]*>', 'gi');\n });\n var patternToRegExp = function (str) {\n return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$');\n };\n var addValidElements = function (validElements) {\n var ei, el, ai, al, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder, prefix, outputName, globalAttributes, globalAttributesOrder, key, value;\n var elementRuleRegExp = /^([#+\\-])?([^\\[!\\/]+)(?:\\/([^\\[!]+))?(?:(!?)\\[([^\\]]+)\\])?$/, attrRuleRegExp = /^([!\\-])?(\\w+[\\\\:]:\\w+|[^=:<]+)?(?:([=:<])(.*))?$/, hasPatternsRegExp = /[*?+]/;\n if (validElements) {\n validElements = split(validElements, ',');\n if (elements['@']) {\n globalAttributes = elements['@'].attributes;\n globalAttributesOrder = elements['@'].attributesOrder;\n }\n for (ei = 0, el = validElements.length; ei < el; ei++) {\n matches = elementRuleRegExp.exec(validElements[ei]);\n if (matches) {\n prefix = matches[1];\n elementName = matches[2];\n outputName = matches[3];\n attrData = matches[5];\n attributes = {};\n attributesOrder = [];\n element = {\n attributes: attributes,\n attributesOrder: attributesOrder\n };\n if (prefix === '#') {\n element.paddEmpty = true;\n }\n if (prefix === '-') {\n element.removeEmpty = true;\n }\n if (matches[4] === '!') {\n element.removeEmptyAttrs = true;\n }\n if (globalAttributes) {\n for (key in globalAttributes) {\n attributes[key] = globalAttributes[key];\n }\n attributesOrder.push.apply(attributesOrder, globalAttributesOrder);\n }\n if (attrData) {\n attrData = split(attrData, '|');\n for (ai = 0, al = attrData.length; ai < al; ai++) {\n matches = attrRuleRegExp.exec(attrData[ai]);\n if (matches) {\n attr = {};\n attrType = matches[1];\n attrName = matches[2].replace(/[\\\\:]:/g, ':');\n prefix = matches[3];\n value = matches[4];\n if (attrType === '!') {\n element.attributesRequired = element.attributesRequired || [];\n element.attributesRequired.push(attrName);\n attr.required = true;\n }\n if (attrType === '-') {\n delete attributes[attrName];\n attributesOrder.splice(inArray(attributesOrder, attrName), 1);\n continue;\n }\n if (prefix) {\n if (prefix === '=') {\n element.attributesDefault = element.attributesDefault || [];\n element.attributesDefault.push({\n name: attrName,\n value: value\n });\n attr.defaultValue = value;\n }\n if (prefix === ':') {\n element.attributesForced = element.attributesForced || [];\n element.attributesForced.push({\n name: attrName,\n value: value\n });\n attr.forcedValue = value;\n }\n if (prefix === '<') {\n attr.validValues = makeMap$2(value, '?');\n }\n }\n if (hasPatternsRegExp.test(attrName)) {\n element.attributePatterns = element.attributePatterns || [];\n attr.pattern = patternToRegExp(attrName);\n element.attributePatterns.push(attr);\n } else {\n if (!attributes[attrName]) {\n attributesOrder.push(attrName);\n }\n attributes[attrName] = attr;\n }\n }\n }\n }\n if (!globalAttributes && elementName === '@') {\n globalAttributes = attributes;\n globalAttributesOrder = attributesOrder;\n }\n if (outputName) {\n element.outputName = elementName;\n elements[outputName] = element;\n }\n if (hasPatternsRegExp.test(elementName)) {\n element.pattern = patternToRegExp(elementName);\n patternElements.push(element);\n } else {\n elements[elementName] = element;\n }\n }\n }\n }\n };\n var setValidElements = function (validElements) {\n elements = {};\n patternElements = [];\n addValidElements(validElements);\n each$3(schemaItems, function (element, name) {\n children[name] = element.children;\n });\n };\n var addCustomElements = function (customElements) {\n var customElementRegExp = /^(~)?(.+)$/;\n if (customElements) {\n mapCache.text_block_elements = mapCache.block_elements = null;\n each$3(split(customElements, ','), function (rule) {\n var matches = customElementRegExp.exec(rule), inline = matches[1] === '~', cloneName = inline ? 'span' : 'div', name = matches[2];\n children[name] = children[cloneName];\n customElementsMap[name] = cloneName;\n if (!inline) {\n blockElementsMap[name.toUpperCase()] = {};\n blockElementsMap[name] = {};\n }\n if (!elements[name]) {\n var customRule = elements[cloneName];\n customRule = extend$1({}, customRule);\n delete customRule.removeEmptyAttrs;\n delete customRule.removeEmpty;\n elements[name] = customRule;\n }\n each$3(children, function (element, elmName) {\n if (element[cloneName]) {\n children[elmName] = element = extend$1({}, children[elmName]);\n element[name] = element[cloneName];\n }\n });\n });\n }\n };\n var addValidChildren = function (validChildren) {\n var childRuleRegExp = /^([+\\-]?)(\\w+)\\[([^\\]]+)\\]$/;\n mapCache[settings.schema] = null;\n if (validChildren) {\n each$3(split(validChildren, ','), function (rule) {\n var matches = childRuleRegExp.exec(rule);\n var parent, prefix;\n if (matches) {\n prefix = matches[1];\n if (prefix) {\n parent = children[matches[2]];\n } else {\n parent = children[matches[2]] = { '#comment': {} };\n }\n parent = children[matches[2]];\n each$3(split(matches[3], '|'), function (child) {\n if (prefix === '-') {\n delete parent[child];\n } else {\n parent[child] = {};\n }\n });\n }\n });\n }\n };\n var getElementRule = function (name) {\n var element = elements[name], i;\n if (element) {\n return element;\n }\n i = patternElements.length;\n while (i--) {\n element = patternElements[i];\n if (element.pattern.test(name)) {\n return element;\n }\n }\n };\n if (!settings.valid_elements) {\n each$3(schemaItems, function (element, name) {\n elements[name] = {\n attributes: element.attributes,\n attributesOrder: element.attributesOrder\n };\n children[name] = element.children;\n });\n if (settings.schema !== 'html5') {\n each$3(split('strong/b em/i'), function (item) {\n item = split(item, '/');\n elements[item[1]].outputName = item[0];\n });\n }\n each$3(split('ol ul sub sup blockquote span font a table tbody tr strong em b i'), function (name) {\n if (elements[name]) {\n elements[name].removeEmpty = true;\n }\n });\n each$3(split('p h1 h2 h3 h4 h5 h6 th td pre div address caption li'), function (name) {\n elements[name].paddEmpty = true;\n });\n each$3(split('span'), function (name) {\n elements[name].removeEmptyAttrs = true;\n });\n } else {\n setValidElements(settings.valid_elements);\n }\n addCustomElements(settings.custom_elements);\n addValidChildren(settings.valid_children);\n addValidElements(settings.extended_valid_elements);\n addValidChildren('+ol[ul|ol],+ul[ul|ol]');\n each$3({\n dd: 'dl',\n dt: 'dl',\n li: 'ul ol',\n td: 'tr',\n th: 'tr',\n tr: 'tbody thead tfoot',\n tbody: 'table',\n thead: 'table',\n tfoot: 'table',\n legend: 'fieldset',\n area: 'map',\n param: 'video audio object'\n }, function (parents, item) {\n if (elements[item]) {\n elements[item].parentsRequired = split(parents);\n }\n });\n if (settings.invalid_elements) {\n each$3(explode$1(settings.invalid_elements), function (item) {\n if (elements[item]) {\n delete elements[item];\n }\n });\n }\n if (!getElementRule('span')) {\n addValidElements('span[!data-mce-type|*]');\n }\n var getValidStyles = function () {\n return validStyles;\n };\n var getInvalidStyles = function () {\n return invalidStyles;\n };\n var getValidClasses = function () {\n return validClasses;\n };\n var getBoolAttrs = function () {\n return boolAttrMap;\n };\n var getBlockElements = function () {\n return blockElementsMap;\n };\n var getTextBlockElements = function () {\n return textBlockElementsMap;\n };\n var getTextInlineElements = function () {\n return textInlineElementsMap;\n };\n var getShortEndedElements = function () {\n return shortEndedElementsMap;\n };\n var getSelfClosingElements = function () {\n return selfClosingElementsMap;\n };\n var getNonEmptyElements = function () {\n return nonEmptyElementsMap;\n };\n var getMoveCaretBeforeOnEnterElements = function () {\n return moveCaretBeforeOnEnterElementsMap;\n };\n var getWhiteSpaceElements = function () {\n return whiteSpaceElementsMap;\n };\n var getSpecialElements = function () {\n return specialElements;\n };\n var isValidChild = function (name, child) {\n var parent = children[name.toLowerCase()];\n return !!(parent && parent[child.toLowerCase()]);\n };\n var isValid = function (name, attr) {\n var attrPatterns, i;\n var rule = getElementRule(name);\n if (rule) {\n if (attr) {\n if (rule.attributes[attr]) {\n return true;\n }\n attrPatterns = rule.attributePatterns;\n if (attrPatterns) {\n i = attrPatterns.length;\n while (i--) {\n if (attrPatterns[i].pattern.test(name)) {\n return true;\n }\n }\n }\n } else {\n return true;\n }\n }\n return false;\n };\n var getCustomElements = function () {\n return customElementsMap;\n };\n return {\n children: children,\n elements: elements,\n getValidStyles: getValidStyles,\n getValidClasses: getValidClasses,\n getBlockElements: getBlockElements,\n getInvalidStyles: getInvalidStyles,\n getShortEndedElements: getShortEndedElements,\n getTextBlockElements: getTextBlockElements,\n getTextInlineElements: getTextInlineElements,\n getBoolAttrs: getBoolAttrs,\n getElementRule: getElementRule,\n getSelfClosingElements: getSelfClosingElements,\n getNonEmptyElements: getNonEmptyElements,\n getMoveCaretBeforeOnEnterElements: getMoveCaretBeforeOnEnterElements,\n getWhiteSpaceElements: getWhiteSpaceElements,\n getSpecialElements: getSpecialElements,\n isValidChild: isValidChild,\n isValid: isValid,\n getCustomElements: getCustomElements,\n addValidElements: addValidElements,\n setValidElements: setValidElements,\n addCustomElements: addCustomElements,\n addValidChildren: addValidChildren\n };\n }\n\n var toHex = function (match, r, g, b) {\n var hex = function (val) {\n val = parseInt(val, 10).toString(16);\n return val.length > 1 ? val : '0' + val;\n };\n return '#' + hex(r) + hex(g) + hex(b);\n };\n var Styles = function (settings, schema) {\n var rgbRegExp = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/gi;\n var urlOrStrRegExp = /(?:url(?:(?:\\(\\s*\\\"([^\\\"]+)\\\"\\s*\\))|(?:\\(\\s*\\'([^\\']+)\\'\\s*\\))|(?:\\(\\s*([^)\\s]+)\\s*\\))))|(?:\\'([^\\']+)\\')|(?:\\\"([^\\\"]+)\\\")/gi;\n var styleRegExp = /\\s*([^:]+):\\s*([^;]+);?/g;\n var trimRightRegExp = /\\s+$/;\n var i;\n var encodingLookup = {};\n var encodingItems;\n var validStyles;\n var invalidStyles;\n var invisibleChar = '\\uFEFF';\n settings = settings || {};\n if (schema) {\n validStyles = schema.getValidStyles();\n invalidStyles = schema.getInvalidStyles();\n }\n encodingItems = ('\\\\\" \\\\\\' \\\\; \\\\: ; : ' + invisibleChar).split(' ');\n for (i = 0; i < encodingItems.length; i++) {\n encodingLookup[encodingItems[i]] = invisibleChar + i;\n encodingLookup[invisibleChar + i] = encodingItems[i];\n }\n return {\n toHex: function (color) {\n return color.replace(rgbRegExp, toHex);\n },\n parse: function (css) {\n var styles = {};\n var matches, name, value, isEncoded;\n var urlConverter = settings.url_converter;\n var urlConverterScope = settings.url_converter_scope || this;\n var compress = function (prefix, suffix, noJoin) {\n var top, right, bottom, left;\n top = styles[prefix + '-top' + suffix];\n if (!top) {\n return;\n }\n right = styles[prefix + '-right' + suffix];\n if (!right) {\n return;\n }\n bottom = styles[prefix + '-bottom' + suffix];\n if (!bottom) {\n return;\n }\n left = styles[prefix + '-left' + suffix];\n if (!left) {\n return;\n }\n var box = [\n top,\n right,\n bottom,\n left\n ];\n i = box.length - 1;\n while (i--) {\n if (box[i] !== box[i + 1]) {\n break;\n }\n }\n if (i > -1 && noJoin) {\n return;\n }\n styles[prefix + suffix] = i === -1 ? box[0] : box.join(' ');\n delete styles[prefix + '-top' + suffix];\n delete styles[prefix + '-right' + suffix];\n delete styles[prefix + '-bottom' + suffix];\n delete styles[prefix + '-left' + suffix];\n };\n var canCompress = function (key) {\n var value = styles[key], i;\n if (!value) {\n return;\n }\n value = value.split(' ');\n i = value.length;\n while (i--) {\n if (value[i] !== value[0]) {\n return false;\n }\n }\n styles[key] = value[0];\n return true;\n };\n var compress2 = function (target, a, b, c) {\n if (!canCompress(a)) {\n return;\n }\n if (!canCompress(b)) {\n return;\n }\n if (!canCompress(c)) {\n return;\n }\n styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c];\n delete styles[a];\n delete styles[b];\n delete styles[c];\n };\n var encode = function (str) {\n isEncoded = true;\n return encodingLookup[str];\n };\n var decode = function (str, keepSlashes) {\n if (isEncoded) {\n str = str.replace(/\\uFEFF[0-9]/g, function (str) {\n return encodingLookup[str];\n });\n }\n if (!keepSlashes) {\n str = str.replace(/\\\\([\\'\\\";:])/g, '$1');\n }\n return str;\n };\n var decodeSingleHexSequence = function (escSeq) {\n return String.fromCharCode(parseInt(escSeq.slice(1), 16));\n };\n var decodeHexSequences = function (value) {\n return value.replace(/\\\\[0-9a-f]+/gi, decodeSingleHexSequence);\n };\n var processUrl = function (match, url, url2, url3, str, str2) {\n str = str || str2;\n if (str) {\n str = decode(str);\n return '\\'' + str.replace(/\\'/g, '\\\\\\'') + '\\'';\n }\n url = decode(url || url2 || url3);\n if (!settings.allow_script_urls) {\n var scriptUrl = url.replace(/[\\s\\r\\n]+/g, '');\n if (/(java|vb)script:/i.test(scriptUrl)) {\n return '';\n }\n if (!settings.allow_svg_data_urls && /^data:image\\/svg/i.test(scriptUrl)) {\n return '';\n }\n }\n if (urlConverter) {\n url = urlConverter.call(urlConverterScope, url, 'style');\n }\n return 'url(\\'' + url.replace(/\\'/g, '\\\\\\'') + '\\')';\n };\n if (css) {\n css = css.replace(/[\\u0000-\\u001F]/g, '');\n css = css.replace(/\\\\[\\\"\\';:\\uFEFF]/g, encode).replace(/\\\"[^\\\"]+\\\"|\\'[^\\']+\\'/g, function (str) {\n return str.replace(/[;:]/g, encode);\n });\n while (matches = styleRegExp.exec(css)) {\n styleRegExp.lastIndex = matches.index + matches[0].length;\n name = matches[1].replace(trimRightRegExp, '').toLowerCase();\n value = matches[2].replace(trimRightRegExp, '');\n if (name && value) {\n name = decodeHexSequences(name);\n value = decodeHexSequences(value);\n if (name.indexOf(invisibleChar) !== -1 || name.indexOf('\"') !== -1) {\n continue;\n }\n if (!settings.allow_script_urls && (name === 'behavior' || /expression\\s*\\(|\\/\\*|\\*\\//.test(value))) {\n continue;\n }\n if (name === 'font-weight' && value === '700') {\n value = 'bold';\n } else if (name === 'color' || name === 'background-color') {\n value = value.toLowerCase();\n }\n value = value.replace(rgbRegExp, toHex);\n value = value.replace(urlOrStrRegExp, processUrl);\n styles[name] = isEncoded ? decode(value, true) : value;\n }\n }\n compress('border', '', true);\n compress('border', '-width');\n compress('border', '-color');\n compress('border', '-style');\n compress('padding', '');\n compress('margin', '');\n compress2('border', 'border-width', 'border-style', 'border-color');\n if (styles.border === 'medium none') {\n delete styles.border;\n }\n if (styles['border-image'] === 'none') {\n delete styles['border-image'];\n }\n }\n return styles;\n },\n serialize: function (styles, elementName) {\n var css = '', name, value;\n var serializeStyles = function (name) {\n var styleList, i, l, value;\n styleList = validStyles[name];\n if (styleList) {\n for (i = 0, l = styleList.length; i < l; i++) {\n name = styleList[i];\n value = styles[name];\n if (value) {\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n }\n }\n }\n };\n var isValid = function (name, elementName) {\n var styleMap;\n styleMap = invalidStyles['*'];\n if (styleMap && styleMap[name]) {\n return false;\n }\n styleMap = invalidStyles[elementName];\n if (styleMap && styleMap[name]) {\n return false;\n }\n return true;\n };\n if (elementName && validStyles) {\n serializeStyles('*');\n serializeStyles(elementName);\n } else {\n for (name in styles) {\n value = styles[name];\n if (value && (!invalidStyles || isValid(name, elementName))) {\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n }\n }\n }\n return css;\n }\n };\n };\n\n var eventExpandoPrefix = 'mce-data-';\n var mouseEventRe = /^(?:mouse|contextmenu)|click/;\n var deprecated = {\n keyLocation: 1,\n layerX: 1,\n layerY: 1,\n returnValue: 1,\n webkitMovementX: 1,\n webkitMovementY: 1,\n keyIdentifier: 1,\n mozPressure: 1\n };\n var hasIsDefaultPrevented = function (event) {\n return event.isDefaultPrevented === returnTrue || event.isDefaultPrevented === returnFalse;\n };\n var returnFalse = function () {\n return false;\n };\n var returnTrue = function () {\n return true;\n };\n var addEvent = function (target, name, callback, capture) {\n if (target.addEventListener) {\n target.addEventListener(name, callback, capture || false);\n } else if (target.attachEvent) {\n target.attachEvent('on' + name, callback);\n }\n };\n var removeEvent = function (target, name, callback, capture) {\n if (target.removeEventListener) {\n target.removeEventListener(name, callback, capture || false);\n } else if (target.detachEvent) {\n target.detachEvent('on' + name, callback);\n }\n };\n var getTargetFromShadowDom = function (event, defaultTarget) {\n if (event.composedPath) {\n var composedPath = event.composedPath();\n if (composedPath && composedPath.length > 0) {\n return composedPath[0];\n }\n }\n return defaultTarget;\n };\n var fix = function (originalEvent, data) {\n var name;\n var event = data || {};\n for (name in originalEvent) {\n if (!deprecated[name]) {\n event[name] = originalEvent[name];\n }\n }\n if (!event.target) {\n event.target = event.srcElement || domGlobals.document;\n }\n if (Env.experimentalShadowDom) {\n event.target = getTargetFromShadowDom(originalEvent, event.target);\n }\n if (originalEvent && mouseEventRe.test(originalEvent.type) && originalEvent.pageX === undefined && originalEvent.clientX !== undefined) {\n var eventDoc = event.target.ownerDocument || domGlobals.document;\n var doc = eventDoc.documentElement;\n var body = eventDoc.body;\n event.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n event.preventDefault = function () {\n event.isDefaultPrevented = returnTrue;\n if (originalEvent) {\n if (originalEvent.preventDefault) {\n originalEvent.preventDefault();\n } else {\n originalEvent.returnValue = false;\n }\n }\n };\n event.stopPropagation = function () {\n event.isPropagationStopped = returnTrue;\n if (originalEvent) {\n if (originalEvent.stopPropagation) {\n originalEvent.stopPropagation();\n } else {\n originalEvent.cancelBubble = true;\n }\n }\n };\n event.stopImmediatePropagation = function () {\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n if (hasIsDefaultPrevented(event) === false) {\n event.isDefaultPrevented = returnFalse;\n event.isPropagationStopped = returnFalse;\n event.isImmediatePropagationStopped = returnFalse;\n }\n if (typeof event.metaKey === 'undefined') {\n event.metaKey = false;\n }\n return event;\n };\n var bindOnReady = function (win, callback, eventUtils) {\n var doc = win.document, event = { type: 'ready' };\n if (eventUtils.domLoaded) {\n callback(event);\n return;\n }\n var isDocReady = function () {\n return doc.readyState === 'complete' || doc.readyState === 'interactive' && doc.body;\n };\n var readyHandler = function () {\n removeEvent(win, 'DOMContentLoaded', readyHandler);\n removeEvent(win, 'load', readyHandler);\n if (!eventUtils.domLoaded) {\n eventUtils.domLoaded = true;\n callback(event);\n }\n };\n if (isDocReady()) {\n readyHandler();\n } else {\n addEvent(win, 'DOMContentLoaded', readyHandler);\n }\n addEvent(win, 'load', readyHandler);\n };\n var EventUtils = function () {\n function EventUtils() {\n this.domLoaded = false;\n this.events = {};\n this.count = 1;\n this.expando = eventExpandoPrefix + (+new Date()).toString(32);\n this.hasMouseEnterLeave = 'onmouseenter' in domGlobals.document.documentElement;\n this.hasFocusIn = 'onfocusin' in domGlobals.document.documentElement;\n this.count = 1;\n }\n EventUtils.prototype.bind = function (target, names, callback, scope) {\n var self = this;\n var id, callbackList, i, name, fakeName, nativeHandler, capture;\n var win = domGlobals.window;\n var defaultNativeHandler = function (evt) {\n self.executeHandlers(fix(evt || win.event), id);\n };\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\n return;\n }\n if (!target[self.expando]) {\n id = self.count++;\n target[self.expando] = id;\n self.events[id] = {};\n } else {\n id = target[self.expando];\n }\n scope = scope || target;\n var namesList = names.split(' ');\n i = namesList.length;\n while (i--) {\n name = namesList[i];\n nativeHandler = defaultNativeHandler;\n fakeName = capture = false;\n if (name === 'DOMContentLoaded') {\n name = 'ready';\n }\n if (self.domLoaded && name === 'ready' && target.readyState === 'complete') {\n callback.call(scope, fix({ type: name }));\n continue;\n }\n if (!self.hasMouseEnterLeave) {\n fakeName = self.mouseEnterLeave[name];\n if (fakeName) {\n nativeHandler = function (evt) {\n var current, related;\n current = evt.currentTarget;\n related = evt.relatedTarget;\n if (related && current.contains) {\n related = current.contains(related);\n } else {\n while (related && related !== current) {\n related = related.parentNode;\n }\n }\n if (!related) {\n evt = fix(evt || win.event);\n evt.type = evt.type === 'mouseout' ? 'mouseleave' : 'mouseenter';\n evt.target = current;\n self.executeHandlers(evt, id);\n }\n };\n }\n }\n if (!self.hasFocusIn && (name === 'focusin' || name === 'focusout')) {\n capture = true;\n fakeName = name === 'focusin' ? 'focus' : 'blur';\n nativeHandler = function (evt) {\n evt = fix(evt || win.event);\n evt.type = evt.type === 'focus' ? 'focusin' : 'focusout';\n self.executeHandlers(evt, id);\n };\n }\n callbackList = self.events[id][name];\n if (!callbackList) {\n self.events[id][name] = callbackList = [{\n func: callback,\n scope: scope\n }];\n callbackList.fakeName = fakeName;\n callbackList.capture = capture;\n callbackList.nativeHandler = nativeHandler;\n if (name === 'ready') {\n bindOnReady(target, nativeHandler, self);\n } else {\n addEvent(target, fakeName || name, nativeHandler, capture);\n }\n } else {\n if (name === 'ready' && self.domLoaded) {\n callback(fix({ type: name }));\n } else {\n callbackList.push({\n func: callback,\n scope: scope\n });\n }\n }\n }\n target = callbackList = 0;\n return callback;\n };\n EventUtils.prototype.unbind = function (target, names, callback) {\n var id, callbackList, i, ci, name, eventMap;\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\n return this;\n }\n id = target[this.expando];\n if (id) {\n eventMap = this.events[id];\n if (names) {\n var namesList = names.split(' ');\n i = namesList.length;\n while (i--) {\n name = namesList[i];\n callbackList = eventMap[name];\n if (callbackList) {\n if (callback) {\n ci = callbackList.length;\n while (ci--) {\n if (callbackList[ci].func === callback) {\n var nativeHandler = callbackList.nativeHandler;\n var fakeName = callbackList.fakeName, capture = callbackList.capture;\n callbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1));\n callbackList.nativeHandler = nativeHandler;\n callbackList.fakeName = fakeName;\n callbackList.capture = capture;\n eventMap[name] = callbackList;\n }\n }\n }\n if (!callback || callbackList.length === 0) {\n delete eventMap[name];\n removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n }\n }\n }\n } else {\n for (name in eventMap) {\n callbackList = eventMap[name];\n removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n }\n eventMap = {};\n }\n for (name in eventMap) {\n return this;\n }\n delete this.events[id];\n try {\n delete target[this.expando];\n } catch (ex) {\n target[this.expando] = null;\n }\n }\n return this;\n };\n EventUtils.prototype.fire = function (target, name, args) {\n var id;\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\n return this;\n }\n var event = fix(null, args);\n event.type = name;\n event.target = target;\n do {\n id = target[this.expando];\n if (id) {\n this.executeHandlers(event, id);\n }\n target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow;\n } while (target && !event.isPropagationStopped());\n return this;\n };\n EventUtils.prototype.clean = function (target) {\n var i, children;\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\n return this;\n }\n if (target[this.expando]) {\n this.unbind(target);\n }\n if (!target.getElementsByTagName) {\n target = target.document;\n }\n if (target && target.getElementsByTagName) {\n this.unbind(target);\n children = target.getElementsByTagName('*');\n i = children.length;\n while (i--) {\n target = children[i];\n if (target[this.expando]) {\n this.unbind(target);\n }\n }\n }\n return this;\n };\n EventUtils.prototype.destroy = function () {\n this.events = {};\n };\n EventUtils.prototype.cancel = function (e) {\n if (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n return false;\n };\n EventUtils.prototype.executeHandlers = function (evt, id) {\n var callbackList, i, l, callback;\n var container = this.events[id];\n callbackList = container && container[evt.type];\n if (callbackList) {\n for (i = 0, l = callbackList.length; i < l; i++) {\n callback = callbackList[i];\n if (callback && callback.func.call(callback.scope, evt) === false) {\n evt.preventDefault();\n }\n if (evt.isImmediatePropagationStopped()) {\n return;\n }\n }\n }\n };\n EventUtils.Event = new EventUtils();\n return EventUtils;\n }();\n\n var i, support, Expr, getText, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, setDocument, document, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches, contains$3, expando = 'sizzle' + -new Date(), preferredDoc = domGlobals.window.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n }, strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, hasOwn = {}.hasOwnProperty, arr = [], pop = arr.pop, push_native = arr.push, push = arr.push, slice = arr.slice, indexOf$2 = arr.indexOf || function (elem) {\n var i = 0, len = this.length;\n for (; i < len; i++) {\n if (this[i] === elem) {\n return i;\n }\n }\n return -1;\n }, booleans = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped', whitespace = '[\\\\x20\\\\t\\\\r\\\\n\\\\f]', identifier = '(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+', attributes = '\\\\[' + whitespace + '*(' + identifier + ')(?:' + whitespace + '*([*^$|!~]?=)' + whitespace + '*(?:\\'((?:\\\\\\\\.|[^\\\\\\\\\\'])*)\\'|\"((?:\\\\\\\\.|[^\\\\\\\\\"])*)\"|(' + identifier + '))|)' + whitespace + '*\\\\]', pseudos = ':(' + identifier + ')(?:\\\\((' + '(\\'((?:\\\\\\\\.|[^\\\\\\\\\\'])*)\\'|\"((?:\\\\\\\\.|[^\\\\\\\\\"])*)\")|' + '((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|' + attributes + ')*)|' + '.*' + ')\\\\)|)', rtrim = new RegExp('^' + whitespace + '+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)' + whitespace + '+$', 'g'), rcomma = new RegExp('^' + whitespace + '*,' + whitespace + '*'), rcombinators = new RegExp('^' + whitespace + '*([>+~]|' + whitespace + ')' + whitespace + '*'), rattributeQuotes = new RegExp('=' + whitespace + '*([^\\\\]\\'\"]*?)' + whitespace + '*\\\\]', 'g'), rpseudo = new RegExp(pseudos), ridentifier = new RegExp('^' + identifier + '$'), matchExpr = {\n ID: new RegExp('^#(' + identifier + ')'),\n CLASS: new RegExp('^\\\\.(' + identifier + ')'),\n TAG: new RegExp('^(' + identifier + '|[*])'),\n ATTR: new RegExp('^' + attributes),\n PSEUDO: new RegExp('^' + pseudos),\n CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(' + whitespace + '*(even|odd|(([+-]|)(\\\\d*)n|)' + whitespace + '*(?:([+-]|)' + whitespace + '*(\\\\d+)|))' + whitespace + '*\\\\)|)', 'i'),\n bool: new RegExp('^(?:' + booleans + ')$', 'i'),\n needsContext: new RegExp('^' + whitespace + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(' + whitespace + '*((?:-\\\\d)?\\\\d*)' + whitespace + '*\\\\)|)(?=[^-]|$)', 'i')\n }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\\d$/i, rnative = /^[^{]+\\{\\s*\\[native \\w/, rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/, rsibling = /[+~]/, rescape = /'|\\\\/g, runescape = new RegExp('\\\\\\\\([\\\\da-f]{1,6}' + whitespace + '?|(' + whitespace + ')|.)', 'ig'), funescape = function (_, escaped, escapedWhitespace) {\n var high = '0x' + escaped - 65536;\n return high !== high || escapedWhitespace ? escaped : high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320);\n };\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? function (target, els) {\n push_native.apply(target, slice.call(els));\n } : function (target, els) {\n var j = target.length, i = 0;\n while (target[j++] = els[i++]) {\n }\n target.length = j - 1;\n }\n };\n }\n var Sizzle = function (selector, context, results, seed) {\n var match, elem, m, nodeType, i, groups, old, nid, newContext, newSelector;\n if ((context ? context.ownerDocument || context : preferredDoc) !== document) {\n setDocument(context);\n }\n context = context || document;\n results = results || [];\n if (!selector || typeof selector !== 'string') {\n return results;\n }\n if ((nodeType = context.nodeType) !== 1 && nodeType !== 9) {\n return [];\n }\n if (documentIsHTML && !seed) {\n if (match = rquickExpr.exec(selector)) {\n if (m = match[1]) {\n if (nodeType === 9) {\n elem = context.getElementById(m);\n if (elem && elem.parentNode) {\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n }\n } else {\n if (context.ownerDocument && (elem = context.ownerDocument.getElementById(m)) && contains$3(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n }\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n } else if ((m = match[3]) && support.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n if (support.qsa && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n nid = old = expando;\n newContext = context;\n newSelector = nodeType === 9 && selector;\n if (nodeType === 1 && context.nodeName.toLowerCase() !== 'object') {\n groups = tokenize(selector);\n if (old = context.getAttribute('id')) {\n nid = old.replace(rescape, '\\\\$&');\n } else {\n context.setAttribute('id', nid);\n }\n nid = '[id=\\'' + nid + '\\'] ';\n i = groups.length;\n while (i--) {\n groups[i] = nid + toSelector(groups[i]);\n }\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n newSelector = groups.join(',');\n }\n if (newSelector) {\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n } finally {\n if (!old) {\n context.removeAttribute('id');\n }\n }\n }\n }\n }\n return select(selector.replace(rtrim, '$1'), context, results, seed);\n };\n function createCache() {\n var keys = [];\n function cache(key, value) {\n if (keys.push(key + ' ') > Expr.cacheLength) {\n delete cache[keys.shift()];\n }\n return cache[key + ' '] = value;\n }\n return cache;\n }\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n function siblingCheck(a, b) {\n var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && (~b.sourceIndex || MAX_NEGATIVE) - (~a.sourceIndex || MAX_NEGATIVE);\n if (diff) {\n return diff;\n }\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n return a ? 1 : -1;\n }\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === 'input' && elem.type === type;\n };\n }\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === 'input' || name === 'button') && elem.type === type;\n };\n }\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j, matchIndexes = fn([], seed.length, argument), i = matchIndexes.length;\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== strundefined && context;\n }\n support = Sizzle.support = {};\n isXML = Sizzle.isXML = function (elem) {\n var documentElement = elem && (elem.ownerDocument || elem).documentElement;\n return documentElement ? documentElement.nodeName !== 'HTML' : false;\n };\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare, doc = node ? node.ownerDocument || node : preferredDoc, parent = doc.defaultView;\n function getTop(win) {\n try {\n return win.top;\n } catch (ex) {\n }\n return null;\n }\n if (doc === document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n document = doc;\n docElem = doc.documentElement;\n documentIsHTML = !isXML(doc);\n if (parent && parent !== getTop(parent)) {\n if (parent.addEventListener) {\n parent.addEventListener('unload', function () {\n setDocument();\n }, false);\n } else if (parent.attachEvent) {\n parent.attachEvent('onunload', function () {\n setDocument();\n });\n }\n }\n support.attributes = true;\n support.getElementsByTagName = true;\n support.getElementsByClassName = rnative.test(doc.getElementsByClassName);\n support.getById = true;\n Expr.find.ID = function (id, context) {\n if (typeof context.getElementById !== strundefined && documentIsHTML) {\n var m = context.getElementById(id);\n return m && m.parentNode ? [m] : [];\n }\n };\n Expr.filter.ID = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute('id') === attrId;\n };\n };\n Expr.find.TAG = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== strundefined) {\n return context.getElementsByTagName(tag);\n }\n } : function (tag, context) {\n var elem, tmp = [], i = 0, results = context.getElementsByTagName(tag);\n if (tag === '*') {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n return tmp;\n }\n return results;\n };\n Expr.find.CLASS = support.getElementsByClassName && function (className, context) {\n if (documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n rbuggyMatches = [];\n rbuggyQSA = [];\n support.disconnectedMatch = true;\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join('|'));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join('|'));\n hasCompare = rnative.test(docElem.compareDocumentPosition);\n contains$3 = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a, bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n return false;\n };\n sortOrder = hasCompare ? function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n if (compare) {\n return compare;\n }\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1;\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n if (a === doc || a.ownerDocument === preferredDoc && contains$3(preferredDoc, a)) {\n return -1;\n }\n if (b === doc || b.ownerDocument === preferredDoc && contains$3(preferredDoc, b)) {\n return 1;\n }\n return sortInput ? indexOf$2.call(sortInput, a) - indexOf$2.call(sortInput, b) : 0;\n }\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n var cur, i = 0, aup = a.parentNode, bup = b.parentNode, ap = [a], bp = [b];\n if (!aup || !bup) {\n return a === doc ? -1 : b === doc ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf$2.call(sortInput, a) - indexOf$2.call(sortInput, b) : 0;\n } else if (aup === bup) {\n return siblingCheck(a, b);\n }\n cur = a;\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n cur = b;\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n }\n while (ap[i] === bp[i]) {\n i++;\n }\n return i ? siblingCheck(ap[i], bp[i]) : ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0;\n };\n return doc;\n };\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n Sizzle.matchesSelector = function (elem, expr) {\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n expr = expr.replace(rattributeQuotes, '=\\'$1\\']');\n if (support.matchesSelector && documentIsHTML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr);\n if (ret || support.disconnectedMatch || elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n }\n }\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n Sizzle.contains = function (context, elem) {\n if ((context.ownerDocument || context) !== document) {\n setDocument(context);\n }\n return contains$3(context, elem);\n };\n Sizzle.attr = function (elem, name) {\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n var fn = Expr.attrHandle[name.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n Sizzle.error = function (msg) {\n throw new Error('Syntax error, unrecognized expression: ' + msg);\n };\n Sizzle.uniqueSort = function (results) {\n var elem, duplicates = [], j = 0, i = 0;\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n }\n sortInput = null;\n return results;\n };\n getText = Sizzle.getText = function (elem) {\n var node, ret = '', i = 0, nodeType = elem.nodeType;\n if (!nodeType) {\n while (node = elem[i++]) {\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n if (typeof elem.textContent === 'string') {\n return elem.textContent;\n } else {\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n return ret;\n };\n Expr = Sizzle.selectors = {\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n '>': {\n dir: 'parentNode',\n first: true\n },\n ' ': { dir: 'parentNode' },\n '+': {\n dir: 'previousSibling',\n first: true\n },\n '~': { dir: 'previousSibling' }\n },\n preFilter: {\n ATTR: function (match) {\n match[1] = match[1].replace(runescape, funescape);\n match[3] = (match[3] || match[4] || match[5] || '').replace(runescape, funescape);\n if (match[2] === '~=') {\n match[3] = ' ' + match[3] + ' ';\n }\n return match.slice(0, 4);\n },\n CHILD: function (match) {\n match[1] = match[1].toLowerCase();\n if (match[1].slice(0, 3) === 'nth') {\n if (!match[3]) {\n Sizzle.error(match[0]);\n }\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === 'even' || match[3] === 'odd'));\n match[5] = +(match[7] + match[8] || match[3] === 'odd');\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n return match;\n },\n PSEUDO: function (match) {\n var excess, unquoted = !match[6] && match[2];\n if (matchExpr.CHILD.test(match[0])) {\n return null;\n }\n if (match[3]) {\n match[2] = match[4] || match[5] || '';\n } else if (unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, true)) && (excess = unquoted.indexOf(')', unquoted.length - excess) - unquoted.length)) {\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n return match.slice(0, 3);\n }\n },\n filter: {\n TAG: function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === '*' ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n CLASS: function (className) {\n var pattern = classCache[className + ' '];\n return pattern || (pattern = new RegExp('(^|' + whitespace + ')' + className + '(' + whitespace + '|$)')) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === 'string' && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute('class') || '');\n });\n },\n ATTR: function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n if (result == null) {\n return operator === '!=';\n }\n if (!operator) {\n return true;\n }\n result += '';\n return operator === '=' ? result === check : operator === '!=' ? result !== check : operator === '^=' ? check && result.indexOf(check) === 0 : operator === '*=' ? check && result.indexOf(check) > -1 : operator === '$=' ? check && result.slice(-check.length) === check : operator === '~=' ? (' ' + result + ' ').indexOf(check) > -1 : operator === '|=' ? result === check || result.slice(0, check.length + 1) === check + '-' : false;\n };\n },\n CHILD: function (type, what, argument, first, last) {\n var simple = type.slice(0, 3) !== 'nth', forward = type.slice(-4) !== 'last', ofType = what === 'of-type';\n return first === 1 && last === 0 ? function (elem) {\n return !!elem.parentNode;\n } : function (elem, context, xml) {\n var cache, outerCache, node, diff, nodeIndex, start, dir = simple !== forward ? 'nextSibling' : 'previousSibling', parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType;\n if (parent) {\n if (simple) {\n while (dir) {\n node = elem;\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n }\n start = dir = type === 'only' && !start && 'nextSibling';\n }\n return true;\n }\n start = [forward ? parent.firstChild : parent.lastChild];\n if (forward && useCache) {\n outerCache = parent[expando] || (parent[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = cache[0] === dirruns && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if (node.nodeType === 1 && ++diff && node === elem) {\n outerCache[type] = [\n dirruns,\n nodeIndex,\n diff\n ];\n break;\n }\n }\n } else if (useCache && (cache = (elem[expando] || (elem[expando] = {}))[type]) && cache[0] === dirruns) {\n diff = cache[1];\n } else {\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n if (useCache) {\n (node[expando] || (node[expando] = {}))[type] = [\n dirruns,\n diff\n ];\n }\n if (node === elem) {\n break;\n }\n }\n }\n }\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n PSEUDO: function (pseudo, argument) {\n var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error('unsupported pseudo: ' + pseudo);\n if (fn[expando]) {\n return fn(argument);\n }\n if (fn.length > 1) {\n args = [\n pseudo,\n pseudo,\n '',\n argument\n ];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx, matched = fn(seed, argument), i = matched.length;\n while (i--) {\n idx = indexOf$2.call(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n return fn;\n }\n },\n pseudos: {\n not: markFunction(function (selector) {\n var input = [], results = [], matcher = compile(selector.replace(rtrim, '$1'));\n return matcher[expando] ? markFunction(function (seed, matches, context, xml) {\n var elem, unmatched = matcher(seed, null, xml, []), i = seed.length;\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n return !results.pop();\n };\n }),\n has: markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n contains: markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1;\n };\n }),\n lang: markFunction(function (lang) {\n if (!ridentifier.test(lang || '')) {\n Sizzle.error('unsupported lang: ' + lang);\n }\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute('xml:lang') || elem.getAttribute('lang')) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + '-') === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n return false;\n };\n }),\n target: function (elem) {\n var hash = domGlobals.window.location && domGlobals.window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n root: function (elem) {\n return elem === docElem;\n },\n focus: function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n enabled: function (elem) {\n return elem.disabled === false;\n },\n disabled: function (elem) {\n return elem.disabled === true;\n },\n checked: function (elem) {\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === 'input' && !!elem.checked || nodeName === 'option' && !!elem.selected;\n },\n selected: function (elem) {\n if (elem.parentNode) {\n elem.parentNode.selectedIndex;\n }\n return elem.selected === true;\n },\n empty: function (elem) {\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n return true;\n },\n parent: function (elem) {\n return !Expr.pseudos.empty(elem);\n },\n header: function (elem) {\n return rheader.test(elem.nodeName);\n },\n input: function (elem) {\n return rinputs.test(elem.nodeName);\n },\n button: function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === 'input' && elem.type === 'button' || name === 'button';\n },\n text: function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === 'input' && elem.type === 'text' && ((attr = elem.getAttribute('type')) == null || attr.toLowerCase() === 'text');\n },\n first: createPositionalPseudo(function () {\n return [0];\n }),\n last: createPositionalPseudo(function (matchIndexes, length) {\n return [length - 1];\n }),\n eq: createPositionalPseudo(function (matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n even: createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n odd: createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n lt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n gt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n })\n }\n };\n Expr.pseudos.nth = Expr.pseudos.eq;\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n function setFilters() {\n }\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector + ' '];\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n while (soFar) {\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n soFar = soFar.slice(match[0].length) || soFar;\n }\n groups.push(tokens = []);\n }\n matched = false;\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: match[0].replace(rtrim, ' ')\n });\n soFar = soFar.slice(matched.length);\n }\n for (type in Expr.filter) {\n if (!Expr.filter.hasOwnProperty(type))\n continue;\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n if (!matched) {\n break;\n }\n }\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : tokenCache(selector, groups).slice(0);\n };\n function toSelector(tokens) {\n var i = 0, len = tokens.length, selector = '';\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n return selector;\n }\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir, checkNonElements = base && dir === 'parentNode', doneName = done++;\n return combinator.first ? function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n } : function (elem, context, xml) {\n var oldCache, outerCache, newCache = [\n dirruns,\n doneName\n ];\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n if ((oldCache = outerCache[dir]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n return newCache[2] = oldCache[2];\n } else {\n outerCache[dir] = newCache;\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n };\n }\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n return true;\n } : matchers[0];\n }\n function multipleContexts(selector, contexts, results) {\n var i = 0, len = contexts.length;\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n return results;\n }\n function condense(unmatched, map, filter, context, xml) {\n var elem, newUnmatched = [], i = 0, len = unmatched.length, mapped = map != null;\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n return newUnmatched;\n }\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n return markFunction(function (seed, results, context, xml) {\n var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts(selector || '*', context.nodeType ? [context] : context, []), matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems, matcherOut = matcher ? postFinder || (seed ? preFilter : preexisting || postFilter) ? [] : results : matcherIn;\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n }\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n i = temp.length;\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n temp = [];\n i = matcherOut.length;\n while (i--) {\n if (elem = matcherOut[i]) {\n temp.push(matcherIn[i] = elem);\n }\n }\n postFinder(null, matcherOut = [], temp, xml);\n }\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf$2.call(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n function matcherFromTokens(tokens) {\n var checkContext, matcher, j, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[' '], i = leadingRelative ? 1 : 0, matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true), matchAnyContext = addCombinator(function (elem) {\n return indexOf$2.call(checkContext, elem) > -1;\n }, implicitRelative, true), matchers = [function (elem, context, xml) {\n return !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n }];\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n if (matcher[expando]) {\n j = ++i;\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(tokens.slice(0, i - 1).concat({ value: tokens[i - 2].type === ' ' ? '*' : '' })).replace(rtrim, '$1'), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n matchers.push(matcher);\n }\n }\n return elementMatcher(matchers);\n }\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function (seed, context, xml, results, outermost) {\n var elem, j, matcher, matchedCount = 0, i = '0', unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG('*', outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length;\n if (outermost) {\n outermostContext = context !== document && context;\n }\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context, xml)) {\n results.push(elem);\n break;\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n if (bySet) {\n if (elem = !matcher && elem) {\n matchedCount--;\n }\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n matchedCount += i;\n if (bySet && i !== matchedCount) {\n j = 0;\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n if (seed) {\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n setMatched = condense(setMatched);\n }\n push.apply(results, setMatched);\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n return unmatched;\n };\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n compile = Sizzle.compile = function (selector, match) {\n var i, setMatchers = [], elementMatchers = [], cached = compilerCache[selector + ' '];\n if (!cached) {\n if (!match) {\n match = tokenize(selector);\n }\n i = match.length;\n while (i--) {\n cached = matcherFromTokens(match[i]);\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n cached.selector = selector;\n }\n return cached;\n };\n select = Sizzle.select = function (selector, context, results, seed) {\n var i, tokens, token, type, find, compiled = typeof selector === 'function' && selector, match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || [];\n if (match.length === 1) {\n tokens = match[0] = match[0].slice(0);\n if (tokens.length > 2 && (token = tokens[0]).type === 'ID' && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0];\n if (!context) {\n return results;\n } else if (compiled) {\n context = context.parentNode;\n }\n selector = selector.slice(tokens.shift().value.length);\n }\n i = matchExpr.needsContext.test(selector) ? 0 : tokens.length;\n while (i--) {\n token = tokens[i];\n if (Expr.relative[type = token.type]) {\n break;\n }\n if (find = Expr.find[type]) {\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n break;\n }\n }\n }\n }\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n };\n support.sortStable = expando.split('').sort(sortOrder).join('') === expando;\n support.detectDuplicates = !!hasDuplicate;\n setDocument();\n support.sortDetached = true;\n\n var doc = domGlobals.document, push$1 = Array.prototype.push, slice$1 = Array.prototype.slice;\n var rquickExpr$1 = /^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/;\n var Event = EventUtils.Event;\n var skipUniques = Tools.makeMap('children,contents,next,prev');\n var isDefined = function (obj) {\n return typeof obj !== 'undefined';\n };\n var isString$1 = function (obj) {\n return typeof obj === 'string';\n };\n var isWindow = function (obj) {\n return obj && obj === obj.window;\n };\n var createFragment = function (html, fragDoc) {\n var frag, node, container;\n fragDoc = fragDoc || doc;\n container = fragDoc.createElement('div');\n frag = fragDoc.createDocumentFragment();\n container.innerHTML = html;\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n return frag;\n };\n var domManipulate = function (targetNodes, sourceItem, callback, reverse) {\n var i;\n if (isString$1(sourceItem)) {\n sourceItem = createFragment(sourceItem, getElementDocument(targetNodes[0]));\n } else if (sourceItem.length && !sourceItem.nodeType) {\n sourceItem = DomQuery.makeArray(sourceItem);\n if (reverse) {\n for (i = sourceItem.length - 1; i >= 0; i--) {\n domManipulate(targetNodes, sourceItem[i], callback, reverse);\n }\n } else {\n for (i = 0; i < sourceItem.length; i++) {\n domManipulate(targetNodes, sourceItem[i], callback, reverse);\n }\n }\n return targetNodes;\n }\n if (sourceItem.nodeType) {\n i = targetNodes.length;\n while (i--) {\n callback.call(targetNodes[i], sourceItem);\n }\n }\n return targetNodes;\n };\n var hasClass = function (node, className) {\n return node && className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1;\n };\n var wrap = function (elements, wrapper, all) {\n var lastParent, newWrapper;\n wrapper = DomQuery(wrapper)[0];\n elements.each(function () {\n var self = this;\n if (!all || lastParent !== self.parentNode) {\n lastParent = self.parentNode;\n newWrapper = wrapper.cloneNode(false);\n self.parentNode.insertBefore(newWrapper, self);\n newWrapper.appendChild(self);\n } else {\n newWrapper.appendChild(self);\n }\n });\n return elements;\n };\n var numericCssMap = Tools.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' ');\n var booleanMap = Tools.makeMap('checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected', ' ');\n var propFix = {\n for: 'htmlFor',\n class: 'className',\n readonly: 'readOnly'\n };\n var cssFix = { float: 'cssFloat' };\n var attrHooks = {}, cssHooks = {};\n var DomQueryConstructor = function (selector, context) {\n return new DomQuery.fn.init(selector, context);\n };\n var inArray$1 = function (item, array) {\n var i;\n if (array.indexOf) {\n return array.indexOf(item);\n }\n i = array.length;\n while (i--) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n };\n var whiteSpaceRegExp$1 = /^\\s*|\\s*$/g;\n var trim$2 = function (str) {\n return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp$1, '');\n };\n var each$4 = function (obj, callback) {\n var length, key, i, value;\n if (obj) {\n length = obj.length;\n if (length === undefined) {\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n value = obj[key];\n if (callback.call(value, key, value) === false) {\n break;\n }\n }\n }\n } else {\n for (i = 0; i < length; i++) {\n value = obj[i];\n if (callback.call(value, i, value) === false) {\n break;\n }\n }\n }\n }\n return obj;\n };\n var grep = function (array, callback) {\n var out = [];\n each$4(array, function (i, item) {\n if (callback(item, i)) {\n out.push(item);\n }\n });\n return out;\n };\n var getElementDocument = function (element) {\n if (!element) {\n return doc;\n }\n if (element.nodeType === 9) {\n return element;\n }\n return element.ownerDocument;\n };\n DomQueryConstructor.fn = DomQueryConstructor.prototype = {\n constructor: DomQueryConstructor,\n selector: '',\n context: null,\n length: 0,\n init: function (selector, context) {\n var self = this;\n var match, node;\n if (!selector) {\n return self;\n }\n if (selector.nodeType) {\n self.context = self[0] = selector;\n self.length = 1;\n return self;\n }\n if (context && context.nodeType) {\n self.context = context;\n } else {\n if (context) {\n return DomQuery(selector).attr(context);\n }\n self.context = context = domGlobals.document;\n }\n if (isString$1(selector)) {\n self.selector = selector;\n if (selector.charAt(0) === '<' && selector.charAt(selector.length - 1) === '>' && selector.length >= 3) {\n match = [\n null,\n selector,\n null\n ];\n } else {\n match = rquickExpr$1.exec(selector);\n }\n if (match) {\n if (match[1]) {\n node = createFragment(selector, getElementDocument(context)).firstChild;\n while (node) {\n push$1.call(self, node);\n node = node.nextSibling;\n }\n } else {\n node = getElementDocument(context).getElementById(match[2]);\n if (!node) {\n return self;\n }\n if (node.id !== match[2]) {\n return self.find(selector);\n }\n self.length = 1;\n self[0] = node;\n }\n } else {\n return DomQuery(context).find(selector);\n }\n } else {\n this.add(selector, false);\n }\n return self;\n },\n toArray: function () {\n return Tools.toArray(this);\n },\n add: function (items, sort) {\n var self = this;\n var nodes, i;\n if (isString$1(items)) {\n return self.add(DomQuery(items));\n }\n if (sort !== false) {\n nodes = DomQuery.unique(self.toArray().concat(DomQuery.makeArray(items)));\n self.length = nodes.length;\n for (i = 0; i < nodes.length; i++) {\n self[i] = nodes[i];\n }\n } else {\n push$1.apply(self, DomQuery.makeArray(items));\n }\n return self;\n },\n attr: function (name, value) {\n var self = this;\n var hook;\n if (typeof name === 'object') {\n each$4(name, function (name, value) {\n self.attr(name, value);\n });\n } else if (isDefined(value)) {\n this.each(function () {\n var hook;\n if (this.nodeType === 1) {\n hook = attrHooks[name];\n if (hook && hook.set) {\n hook.set(this, value);\n return;\n }\n if (value === null) {\n this.removeAttribute(name, 2);\n } else {\n this.setAttribute(name, value, 2);\n }\n }\n });\n } else {\n if (self[0] && self[0].nodeType === 1) {\n hook = attrHooks[name];\n if (hook && hook.get) {\n return hook.get(self[0], name);\n }\n if (booleanMap[name]) {\n return self.prop(name) ? name : undefined;\n }\n value = self[0].getAttribute(name, 2);\n if (value === null) {\n value = undefined;\n }\n }\n return value;\n }\n return self;\n },\n removeAttr: function (name) {\n return this.attr(name, null);\n },\n prop: function (name, value) {\n var self = this;\n name = propFix[name] || name;\n if (typeof name === 'object') {\n each$4(name, function (name, value) {\n self.prop(name, value);\n });\n } else if (isDefined(value)) {\n this.each(function () {\n if (this.nodeType === 1) {\n this[name] = value;\n }\n });\n } else {\n if (self[0] && self[0].nodeType && name in self[0]) {\n return self[0][name];\n }\n return value;\n }\n return self;\n },\n css: function (name, value) {\n var self = this;\n var elm, hook;\n var camel = function (name) {\n return name.replace(/-(\\D)/g, function (a, b) {\n return b.toUpperCase();\n });\n };\n var dashed = function (name) {\n return name.replace(/[A-Z]/g, function (a) {\n return '-' + a;\n });\n };\n if (typeof name === 'object') {\n each$4(name, function (name, value) {\n self.css(name, value);\n });\n } else {\n if (isDefined(value)) {\n name = camel(name);\n if (typeof value === 'number' && !numericCssMap[name]) {\n value = value.toString() + 'px';\n }\n self.each(function () {\n var style = this.style;\n hook = cssHooks[name];\n if (hook && hook.set) {\n hook.set(this, value);\n return;\n }\n try {\n this.style[cssFix[name] || name] = value;\n } catch (ex) {\n }\n if (value === null || value === '') {\n if (style.removeProperty) {\n style.removeProperty(dashed(name));\n } else {\n style.removeAttribute(name);\n }\n }\n });\n } else {\n elm = self[0];\n hook = cssHooks[name];\n if (hook && hook.get) {\n return hook.get(elm);\n }\n if (elm.ownerDocument.defaultView) {\n try {\n return elm.ownerDocument.defaultView.getComputedStyle(elm, null).getPropertyValue(dashed(name));\n } catch (ex) {\n return undefined;\n }\n } else if (elm.currentStyle) {\n return elm.currentStyle[camel(name)];\n } else {\n return '';\n }\n }\n }\n return self;\n },\n remove: function () {\n var self = this;\n var node, i = this.length;\n while (i--) {\n node = self[i];\n Event.clean(node);\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n return this;\n },\n empty: function () {\n var self = this;\n var node, i = this.length;\n while (i--) {\n node = self[i];\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n }\n return this;\n },\n html: function (value) {\n var self = this;\n var i;\n if (isDefined(value)) {\n i = self.length;\n try {\n while (i--) {\n self[i].innerHTML = value;\n }\n } catch (ex) {\n DomQuery(self[i]).empty().append(value);\n }\n return self;\n }\n return self[0] ? self[0].innerHTML : '';\n },\n text: function (value) {\n var self = this;\n var i;\n if (isDefined(value)) {\n i = self.length;\n while (i--) {\n if ('innerText' in self[i]) {\n self[i].innerText = value;\n } else {\n self[0].textContent = value;\n }\n }\n return self;\n }\n return self[0] ? self[0].innerText || self[0].textContent : '';\n },\n append: function () {\n return domManipulate(this, arguments, function (node) {\n if (this.nodeType === 1 || this.host && this.host.nodeType === 1) {\n this.appendChild(node);\n }\n });\n },\n prepend: function () {\n return domManipulate(this, arguments, function (node) {\n if (this.nodeType === 1 || this.host && this.host.nodeType === 1) {\n this.insertBefore(node, this.firstChild);\n }\n }, true);\n },\n before: function () {\n var self = this;\n if (self[0] && self[0].parentNode) {\n return domManipulate(self, arguments, function (node) {\n this.parentNode.insertBefore(node, this);\n });\n }\n return self;\n },\n after: function () {\n var self = this;\n if (self[0] && self[0].parentNode) {\n return domManipulate(self, arguments, function (node) {\n this.parentNode.insertBefore(node, this.nextSibling);\n }, true);\n }\n return self;\n },\n appendTo: function (val) {\n DomQuery(val).append(this);\n return this;\n },\n prependTo: function (val) {\n DomQuery(val).prepend(this);\n return this;\n },\n replaceWith: function (content) {\n return this.before(content).remove();\n },\n wrap: function (content) {\n return wrap(this, content);\n },\n wrapAll: function (content) {\n return wrap(this, content, true);\n },\n wrapInner: function (content) {\n this.each(function () {\n DomQuery(this).contents().wrapAll(content);\n });\n return this;\n },\n unwrap: function () {\n return this.parent().each(function () {\n DomQuery(this).replaceWith(this.childNodes);\n });\n },\n clone: function () {\n var result = [];\n this.each(function () {\n result.push(this.cloneNode(true));\n });\n return DomQuery(result);\n },\n addClass: function (className) {\n return this.toggleClass(className, true);\n },\n removeClass: function (className) {\n return this.toggleClass(className, false);\n },\n toggleClass: function (className, state) {\n var self = this;\n if (typeof className !== 'string') {\n return self;\n }\n if (className.indexOf(' ') !== -1) {\n each$4(className.split(' '), function () {\n self.toggleClass(this, state);\n });\n } else {\n self.each(function (index, node) {\n var existingClassName, classState;\n classState = hasClass(node, className);\n if (classState !== state) {\n existingClassName = node.className;\n if (classState) {\n node.className = trim$2((' ' + existingClassName + ' ').replace(' ' + className + ' ', ' '));\n } else {\n node.className += existingClassName ? ' ' + className : className;\n }\n }\n });\n }\n return self;\n },\n hasClass: function (className) {\n return hasClass(this[0], className);\n },\n each: function (callback) {\n return each$4(this, callback);\n },\n on: function (name, callback) {\n return this.each(function () {\n Event.bind(this, name, callback);\n });\n },\n off: function (name, callback) {\n return this.each(function () {\n Event.unbind(this, name, callback);\n });\n },\n trigger: function (name) {\n return this.each(function () {\n if (typeof name === 'object') {\n Event.fire(this, name.type, name);\n } else {\n Event.fire(this, name);\n }\n });\n },\n show: function () {\n return this.css('display', '');\n },\n hide: function () {\n return this.css('display', 'none');\n },\n slice: function () {\n return new DomQuery(slice$1.apply(this, arguments));\n },\n eq: function (index) {\n return index === -1 ? this.slice(index) : this.slice(index, +index + 1);\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n find: function (selector) {\n var i, l;\n var ret = [];\n for (i = 0, l = this.length; i < l; i++) {\n DomQuery.find(selector, this[i], ret);\n }\n return DomQuery(ret);\n },\n filter: function (selector) {\n if (typeof selector === 'function') {\n return DomQuery(grep(this.toArray(), function (item, i) {\n return selector(i, item);\n }));\n }\n return DomQuery(DomQuery.filter(selector, this.toArray()));\n },\n closest: function (selector) {\n var result = [];\n if (selector instanceof DomQuery) {\n selector = selector[0];\n }\n this.each(function (i, node) {\n while (node) {\n if (typeof selector === 'string' && DomQuery(node).is(selector)) {\n result.push(node);\n break;\n } else if (node === selector) {\n result.push(node);\n break;\n }\n node = node.parentNode;\n }\n });\n return DomQuery(result);\n },\n offset: function (offset) {\n var elm, doc, docElm;\n var x = 0, y = 0, pos;\n if (!offset) {\n elm = this[0];\n if (elm) {\n doc = elm.ownerDocument;\n docElm = doc.documentElement;\n if (elm.getBoundingClientRect) {\n pos = elm.getBoundingClientRect();\n x = pos.left + (docElm.scrollLeft || doc.body.scrollLeft) - docElm.clientLeft;\n y = pos.top + (docElm.scrollTop || doc.body.scrollTop) - docElm.clientTop;\n }\n }\n return {\n left: x,\n top: y\n };\n }\n return this.css(offset);\n },\n push: push$1,\n sort: Array.prototype.sort,\n splice: Array.prototype.splice\n };\n Tools.extend(DomQueryConstructor, {\n extend: Tools.extend,\n makeArray: function (object) {\n if (isWindow(object) || object.nodeType) {\n return [object];\n }\n return Tools.toArray(object);\n },\n inArray: inArray$1,\n isArray: Tools.isArray,\n each: each$4,\n trim: trim$2,\n grep: grep,\n find: Sizzle,\n expr: Sizzle.selectors,\n unique: Sizzle.uniqueSort,\n text: Sizzle.getText,\n contains: Sizzle.contains,\n filter: function (expr, elems, not) {\n var i = elems.length;\n if (not) {\n expr = ':not(' + expr + ')';\n }\n while (i--) {\n if (elems[i].nodeType !== 1) {\n elems.splice(i, 1);\n }\n }\n if (elems.length === 1) {\n elems = DomQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : [];\n } else {\n elems = DomQuery.find.matches(expr, elems);\n }\n return elems;\n }\n });\n var dir = function (el, prop, until) {\n var matched = [];\n var cur = el[prop];\n if (typeof until !== 'string' && until instanceof DomQuery) {\n until = until[0];\n }\n while (cur && cur.nodeType !== 9) {\n if (until !== undefined) {\n if (cur === until) {\n break;\n }\n if (typeof until === 'string' && DomQuery(cur).is(until)) {\n break;\n }\n }\n if (cur.nodeType === 1) {\n matched.push(cur);\n }\n cur = cur[prop];\n }\n return matched;\n };\n var sibling = function (node, siblingName, nodeType, until) {\n var result = [];\n if (until instanceof DomQuery) {\n until = until[0];\n }\n for (; node; node = node[siblingName]) {\n if (nodeType && node.nodeType !== nodeType) {\n continue;\n }\n if (until !== undefined) {\n if (node === until) {\n break;\n }\n if (typeof until === 'string' && DomQuery(node).is(until)) {\n break;\n }\n }\n result.push(node);\n }\n return result;\n };\n var firstSibling = function (node, siblingName, nodeType) {\n for (node = node[siblingName]; node; node = node[siblingName]) {\n if (node.nodeType === nodeType) {\n return node;\n }\n }\n return null;\n };\n each$4({\n parent: function (node) {\n var parent = node.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (node) {\n return dir(node, 'parentNode');\n },\n next: function (node) {\n return firstSibling(node, 'nextSibling', 1);\n },\n prev: function (node) {\n return firstSibling(node, 'previousSibling', 1);\n },\n children: function (node) {\n return sibling(node.firstChild, 'nextSibling', 1);\n },\n contents: function (node) {\n return Tools.toArray((node.nodeName === 'iframe' ? node.contentDocument || node.contentWindow.document : node).childNodes);\n }\n }, function (name, fn) {\n DomQueryConstructor.fn[name] = function (selector) {\n var self = this;\n var result = [];\n self.each(function () {\n var nodes = fn.call(result, this, selector, result);\n if (nodes) {\n if (DomQuery.isArray(nodes)) {\n result.push.apply(result, nodes);\n } else {\n result.push(nodes);\n }\n }\n });\n if (this.length > 1) {\n if (!skipUniques[name]) {\n result = DomQuery.unique(result);\n }\n if (name.indexOf('parents') === 0) {\n result = result.reverse();\n }\n }\n var wrappedResult = DomQuery(result);\n if (selector) {\n return wrappedResult.filter(selector);\n }\n return wrappedResult;\n };\n });\n each$4({\n parentsUntil: function (node, until) {\n return dir(node, 'parentNode', until);\n },\n nextUntil: function (node, until) {\n return sibling(node, 'nextSibling', 1, until).slice(1);\n },\n prevUntil: function (node, until) {\n return sibling(node, 'previousSibling', 1, until).slice(1);\n }\n }, function (name, fn) {\n DomQueryConstructor.fn[name] = function (selector, filter) {\n var self = this;\n var result = [];\n self.each(function () {\n var nodes = fn.call(result, this, selector, result);\n if (nodes) {\n if (DomQuery.isArray(nodes)) {\n result.push.apply(result, nodes);\n } else {\n result.push(nodes);\n }\n }\n });\n if (this.length > 1) {\n result = DomQuery.unique(result);\n if (name.indexOf('parents') === 0 || name === 'prevUntil') {\n result = result.reverse();\n }\n }\n var wrappedResult = DomQuery(result);\n if (filter) {\n return wrappedResult.filter(filter);\n }\n return wrappedResult;\n };\n });\n DomQueryConstructor.fn.is = function (selector) {\n return !!selector && this.filter(selector).length > 0;\n };\n DomQueryConstructor.fn.init.prototype = DomQueryConstructor.fn;\n DomQueryConstructor.overrideDefaults = function (callback) {\n var defaults;\n var sub = function (selector, context) {\n defaults = defaults || callback();\n if (arguments.length === 0) {\n selector = defaults.element;\n }\n if (!context) {\n context = defaults.context;\n }\n return new sub.fn.init(selector, context);\n };\n DomQuery.extend(sub, this);\n return sub;\n };\n DomQueryConstructor.attrHooks = attrHooks;\n DomQueryConstructor.cssHooks = cssHooks;\n var DomQuery = DomQueryConstructor;\n\n var TreeWalker = function () {\n function TreeWalker(startNode, rootNode) {\n this.node = startNode;\n this.rootNode = rootNode;\n this.current = this.current.bind(this);\n this.next = this.next.bind(this);\n this.prev = this.prev.bind(this);\n this.prev2 = this.prev2.bind(this);\n }\n TreeWalker.prototype.current = function () {\n return this.node;\n };\n TreeWalker.prototype.next = function (shallow) {\n this.node = this.findSibling(this.node, 'firstChild', 'nextSibling', shallow);\n return this.node;\n };\n TreeWalker.prototype.prev = function (shallow) {\n this.node = this.findSibling(this.node, 'lastChild', 'previousSibling', shallow);\n return this.node;\n };\n TreeWalker.prototype.prev2 = function (shallow) {\n this.node = this.findPreviousNode(this.node, 'lastChild', 'previousSibling', shallow);\n return this.node;\n };\n TreeWalker.prototype.findSibling = function (node, startName, siblingName, shallow) {\n var sibling, parent;\n if (node) {\n if (!shallow && node[startName]) {\n return node[startName];\n }\n if (node !== this.rootNode) {\n sibling = node[siblingName];\n if (sibling) {\n return sibling;\n }\n for (parent = node.parentNode; parent && parent !== this.rootNode; parent = parent.parentNode) {\n sibling = parent[siblingName];\n if (sibling) {\n return sibling;\n }\n }\n }\n }\n };\n TreeWalker.prototype.findPreviousNode = function (node, startName, siblingName, shallow) {\n var sibling, parent, child;\n if (node) {\n sibling = node[siblingName];\n if (this.rootNode && sibling === this.rootNode) {\n return;\n }\n if (sibling) {\n if (!shallow) {\n for (child = sibling[startName]; child; child = child[startName]) {\n if (!child[startName]) {\n return child;\n }\n }\n }\n return sibling;\n }\n parent = node.parentNode;\n if (parent && parent !== this.rootNode) {\n return parent;\n }\n }\n };\n return TreeWalker;\n }();\n\n var before = function (marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom().insertBefore(element.dom(), marker.dom());\n });\n };\n var after = function (marker, element) {\n var sibling = nextSibling(marker);\n sibling.fold(function () {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n append(v, element);\n });\n }, function (v) {\n before(v, element);\n });\n };\n var prepend = function (parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append(parent, element);\n }, function (v) {\n parent.dom().insertBefore(element.dom(), v.dom());\n });\n };\n var append = function (parent, element) {\n parent.dom().appendChild(element.dom());\n };\n var wrap$1 = function (element, wrapper) {\n before(element, wrapper);\n append(wrapper, element);\n };\n\n var before$1 = function (marker, elements) {\n each(elements, function (x) {\n before(marker, x);\n });\n };\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var empty = function (element) {\n element.dom().textContent = '';\n each(children(element), function (rogue) {\n remove$1(rogue);\n });\n };\n var remove$1 = function (element) {\n var dom = element.dom();\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n var unwrap = function (wrapper) {\n var children$1 = children(wrapper);\n if (children$1.length > 0) {\n before$1(wrapper, children$1);\n }\n remove$1(wrapper);\n };\n\n var r = function (left, top) {\n var translate = function (x, y) {\n return r(left + x, top + y);\n };\n return {\n left: constant(left),\n top: constant(top),\n translate: translate\n };\n };\n var Position$1 = r;\n\n var boxPosition = function (dom) {\n var box = dom.getBoundingClientRect();\n return Position$1(box.left, box.top);\n };\n var firstDefinedOrZero = function (a, b) {\n return a !== undefined ? a : b !== undefined ? b : 0;\n };\n var absolute = function (element) {\n var doc = element.dom().ownerDocument;\n var body = doc.body;\n var win = doc.defaultView;\n var html = doc.documentElement;\n if (body === element.dom()) {\n return Position$1(body.offsetLeft, body.offsetTop);\n }\n var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);\n var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);\n var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n var viewport = function (element) {\n var dom = element.dom();\n var doc = dom.ownerDocument;\n var body = doc.body;\n if (body === dom) {\n return Position$1(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return Position$1(0, 0);\n }\n return boxPosition(dom);\n };\n\n var isSafari = detect$3().browser.isSafari();\n var get$3 = function (_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n var y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return Position$1(x, y);\n };\n var to = function (x, y, _DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n var win = doc.defaultView;\n win.scrollTo(x, y);\n };\n var intoView = function (element, alignToTop) {\n if (isSafari && isFunction(element.dom().scrollIntoViewIfNeeded)) {\n element.dom().scrollIntoViewIfNeeded(false);\n } else {\n element.dom().scrollIntoView(alignToTop);\n }\n };\n\n var bounds = function (x, y, width, height) {\n return {\n x: constant(x),\n y: constant(y),\n width: constant(width),\n height: constant(height),\n right: constant(x + width),\n bottom: constant(y + height)\n };\n };\n var getBounds = function (_win) {\n var win = _win === undefined ? domGlobals.window : _win;\n var doc = win.document;\n var scroll = get$3(Element.fromDom(doc));\n var visualViewport = win['visualViewport'];\n if (visualViewport !== undefined) {\n return bounds(Math.max(visualViewport.pageLeft, scroll.left()), Math.max(visualViewport.pageTop, scroll.top()), visualViewport.width, visualViewport.height);\n } else {\n var html = doc.documentElement;\n var width = html.clientWidth;\n var height = html.clientHeight;\n return bounds(scroll.left(), scroll.top(), width, height);\n }\n };\n\n var each$5 = Tools.each;\n var grep$1 = Tools.grep;\n var isIE = Env.ie;\n var simpleSelectorRe = /^([a-z0-9],?)+$/i;\n var whiteSpaceRegExp$2 = /^[ \\t\\r\\n]*$/;\n var setupAttrHooks = function (styles, settings, getContext) {\n var keepValues = settings.keep_values;\n var keepUrlHook = {\n set: function ($elm, value, name) {\n if (settings.url_converter) {\n value = settings.url_converter.call(settings.url_converter_scope || getContext(), value, name, $elm[0]);\n }\n $elm.attr('data-mce-' + name, value).attr(name, value);\n },\n get: function ($elm, name) {\n return $elm.attr('data-mce-' + name) || $elm.attr(name);\n }\n };\n var attrHooks = {\n style: {\n set: function ($elm, value) {\n if (value !== null && typeof value === 'object') {\n $elm.css(value);\n return;\n }\n if (keepValues) {\n $elm.attr('data-mce-style', value);\n }\n $elm.attr('style', value);\n },\n get: function ($elm) {\n var value = $elm.attr('data-mce-style') || $elm.attr('style');\n value = styles.serialize(styles.parse(value), $elm[0].nodeName);\n return value;\n }\n }\n };\n if (keepValues) {\n attrHooks.href = attrHooks.src = keepUrlHook;\n }\n return attrHooks;\n };\n var updateInternalStyleAttr = function (styles, $elm) {\n var rawValue = $elm.attr('style');\n var value = styles.serialize(styles.parse(rawValue), $elm[0].nodeName);\n if (!value) {\n value = null;\n }\n $elm.attr('data-mce-style', value);\n };\n var findNodeIndex = function (node, normalized) {\n var idx = 0, lastNodeType, nodeType;\n if (node) {\n for (lastNodeType = node.nodeType, node = node.previousSibling; node; node = node.previousSibling) {\n nodeType = node.nodeType;\n if (normalized && nodeType === 3) {\n if (nodeType === lastNodeType || !node.nodeValue.length) {\n continue;\n }\n }\n idx++;\n lastNodeType = nodeType;\n }\n }\n return idx;\n };\n function DOMUtils(doc, settings) {\n var _this = this;\n if (settings === void 0) {\n settings = {};\n }\n var attrHooks;\n var addedStyles = {};\n var win = domGlobals.window;\n var files = {};\n var counter = 0;\n var stdMode = true;\n var boxModel = true;\n var styleSheetLoader = StyleSheetLoader(doc, {\n contentCssCors: settings.contentCssCors,\n referrerPolicy: settings.referrerPolicy\n });\n var boundEvents = [];\n var schema = settings.schema ? settings.schema : Schema({});\n var styles = Styles({\n url_converter: settings.url_converter,\n url_converter_scope: settings.url_converter_scope\n }, settings.schema);\n var events = settings.ownEvents ? new EventUtils() : EventUtils.Event;\n var blockElementsMap = schema.getBlockElements();\n var $ = DomQuery.overrideDefaults(function () {\n return {\n context: doc,\n element: self.getRoot()\n };\n });\n var isBlock = function (node) {\n if (typeof node === 'string') {\n return !!blockElementsMap[node];\n } else if (node) {\n var type = node.nodeType;\n if (type) {\n return !!(type === 1 && blockElementsMap[node.nodeName]);\n }\n }\n return false;\n };\n var get = function (elm) {\n if (elm && doc && typeof elm === 'string') {\n var node = doc.getElementById(elm);\n if (node && node.id !== elm) {\n return doc.getElementsByName(elm)[1];\n } else {\n return node;\n }\n }\n return elm;\n };\n var $$ = function (elm) {\n if (typeof elm === 'string') {\n elm = get(elm);\n }\n return $(elm);\n };\n var getAttrib = function (elm, name, defaultVal) {\n var hook, value;\n var $elm = $$(elm);\n if ($elm.length) {\n hook = attrHooks[name];\n if (hook && hook.get) {\n value = hook.get($elm, name);\n } else {\n value = $elm.attr(name);\n }\n }\n if (typeof value === 'undefined') {\n value = defaultVal || '';\n }\n return value;\n };\n var getAttribs = function (elm) {\n var node = get(elm);\n if (!node) {\n return [];\n }\n return node.attributes;\n };\n var setAttrib = function (elm, name, value) {\n var originalValue, hook;\n if (value === '') {\n value = null;\n }\n var $elm = $$(elm);\n originalValue = $elm.attr(name);\n if (!$elm.length) {\n return;\n }\n hook = attrHooks[name];\n if (hook && hook.set) {\n hook.set($elm, value, name);\n } else {\n $elm.attr(name, value);\n }\n if (originalValue !== value && settings.onSetAttrib) {\n settings.onSetAttrib({\n attrElm: $elm,\n attrName: name,\n attrValue: value\n });\n }\n };\n var clone = function (node, deep) {\n if (!isIE || node.nodeType !== 1 || deep) {\n return node.cloneNode(deep);\n }\n if (!deep) {\n var clone_1 = doc.createElement(node.nodeName);\n each$5(getAttribs(node), function (attr) {\n setAttrib(clone_1, attr.nodeName, getAttrib(node, attr.nodeName));\n });\n return clone_1;\n }\n return null;\n };\n var getRoot = function () {\n return settings.root_element || doc.body;\n };\n var getViewPort = function (argWin) {\n var vp = getBounds(argWin);\n return {\n x: vp.x(),\n y: vp.y(),\n w: vp.width(),\n h: vp.height()\n };\n };\n var getPos = function (elm, rootElm) {\n return Position.getPos(doc.body, get(elm), rootElm);\n };\n var setStyle = function (elm, name, value) {\n var $elm = isString(name) ? $$(elm).css(name, value) : $$(elm).css(name);\n if (settings.update_styles) {\n updateInternalStyleAttr(styles, $elm);\n }\n };\n var setStyles = function (elm, stylesArg) {\n var $elm = $$(elm).css(stylesArg);\n if (settings.update_styles) {\n updateInternalStyleAttr(styles, $elm);\n }\n };\n var getStyle = function (elm, name, computed) {\n var $elm = $$(elm);\n if (computed) {\n return $elm.css(name);\n }\n name = name.replace(/-(\\D)/g, function (a, b) {\n return b.toUpperCase();\n });\n if (name === 'float') {\n name = Env.browser.isIE() ? 'styleFloat' : 'cssFloat';\n }\n return $elm[0] && $elm[0].style ? $elm[0].style[name] : undefined;\n };\n var getSize = function (elm) {\n var w, h;\n elm = get(elm);\n w = getStyle(elm, 'width');\n h = getStyle(elm, 'height');\n if (w.indexOf('px') === -1) {\n w = 0;\n }\n if (h.indexOf('px') === -1) {\n h = 0;\n }\n return {\n w: parseInt(w, 10) || elm.offsetWidth || elm.clientWidth,\n h: parseInt(h, 10) || elm.offsetHeight || elm.clientHeight\n };\n };\n var getRect = function (elm) {\n var pos, size;\n elm = get(elm);\n pos = getPos(elm);\n size = getSize(elm);\n return {\n x: pos.x,\n y: pos.y,\n w: size.w,\n h: size.h\n };\n };\n var is = function (elm, selector) {\n var i;\n if (!elm) {\n return false;\n }\n if (!Array.isArray(elm)) {\n if (selector === '*') {\n return elm.nodeType === 1;\n }\n if (simpleSelectorRe.test(selector)) {\n var selectors = selector.toLowerCase().split(/,/);\n var elmName = elm.nodeName.toLowerCase();\n for (i = selectors.length - 1; i >= 0; i--) {\n if (selectors[i] === elmName) {\n return true;\n }\n }\n return false;\n }\n if (elm.nodeType && elm.nodeType !== 1) {\n return false;\n }\n }\n var elms = !Array.isArray(elm) ? [elm] : elm;\n return Sizzle(selector, elms[0].ownerDocument || elms[0], null, elms).length > 0;\n };\n var getParents = function (elm, selector, root, collect) {\n var result = [];\n var selectorVal;\n var node = get(elm);\n collect = collect === undefined;\n root = root || (getRoot().nodeName !== 'BODY' ? getRoot().parentNode : null);\n if (Tools.is(selector, 'string')) {\n selectorVal = selector;\n if (selector === '*') {\n selector = function (node) {\n return node.nodeType === 1;\n };\n } else {\n selector = function (node) {\n return is(node, selectorVal);\n };\n }\n }\n while (node) {\n if (node === root || !node.nodeType || node.nodeType === 9) {\n break;\n }\n if (!selector || typeof selector === 'function' && selector(node)) {\n if (collect) {\n result.push(node);\n } else {\n return [node];\n }\n }\n node = node.parentNode;\n }\n return collect ? result : null;\n };\n var getParent = function (node, selector, root) {\n var parents = getParents(node, selector, root, false);\n return parents && parents.length > 0 ? parents[0] : null;\n };\n var _findSib = function (node, selector, name) {\n var func = selector;\n if (node) {\n if (typeof selector === 'string') {\n func = function (node) {\n return is(node, selector);\n };\n }\n for (node = node[name]; node; node = node[name]) {\n if (typeof func === 'function' && func(node)) {\n return node;\n }\n }\n }\n return null;\n };\n var getNext = function (node, selector) {\n return _findSib(node, selector, 'nextSibling');\n };\n var getPrev = function (node, selector) {\n return _findSib(node, selector, 'previousSibling');\n };\n var select = function (selector, scope) {\n return Sizzle(selector, get(scope) || settings.root_element || doc, []);\n };\n var run = function (elm, func, scope) {\n var result;\n var node = typeof elm === 'string' ? get(elm) : elm;\n if (!node) {\n return false;\n }\n if (Tools.isArray(node) && (node.length || node.length === 0)) {\n result = [];\n each$5(node, function (elm, i) {\n if (elm) {\n if (typeof elm === 'string') {\n elm = get(elm);\n }\n result.push(func.call(scope, elm, i));\n }\n });\n return result;\n }\n var context = scope ? scope : _this;\n return func.call(context, node);\n };\n var setAttribs = function (elm, attrs) {\n $$(elm).each(function (i, node) {\n each$5(attrs, function (value, name) {\n setAttrib(node, name, value);\n });\n });\n };\n var setHTML = function (elm, html) {\n var $elm = $$(elm);\n if (isIE) {\n $elm.each(function (i, target) {\n if (target.canHaveHTML === false) {\n return;\n }\n while (target.firstChild) {\n target.removeChild(target.firstChild);\n }\n try {\n target.innerHTML = '<br>' + html;\n target.removeChild(target.firstChild);\n } catch (ex) {\n DomQuery('<div></div>').html('<br>' + html).contents().slice(1).appendTo(target);\n }\n return html;\n });\n } else {\n $elm.html(html);\n }\n };\n var add = function (parentElm, name, attrs, html, create) {\n return run(parentElm, function (parentElm) {\n var newElm = typeof name === 'string' ? doc.createElement(name) : name;\n setAttribs(newElm, attrs);\n if (html) {\n if (typeof html !== 'string' && html.nodeType) {\n newElm.appendChild(html);\n } else if (typeof html === 'string') {\n setHTML(newElm, html);\n }\n }\n return !create ? parentElm.appendChild(newElm) : newElm;\n });\n };\n var create = function (name, attrs, html) {\n return add(doc.createElement(name), name, attrs, html, true);\n };\n var decode = Entities.decode;\n var encode = Entities.encodeAllRaw;\n var createHTML = function (name, attrs, html) {\n var outHtml = '', key;\n outHtml += '<' + name;\n for (key in attrs) {\n if (attrs.hasOwnProperty(key) && attrs[key] !== null && typeof attrs[key] !== 'undefined') {\n outHtml += ' ' + key + '=\"' + encode(attrs[key]) + '\"';\n }\n }\n if (typeof html !== 'undefined') {\n return outHtml + '>' + html + '</' + name + '>';\n }\n return outHtml + ' />';\n };\n var createFragment = function (html) {\n var node;\n var container = doc.createElement('div');\n var frag = doc.createDocumentFragment();\n if (html) {\n container.innerHTML = html;\n }\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n return frag;\n };\n var remove = function (node, keepChildren) {\n var $node = $$(node);\n if (keepChildren) {\n $node.each(function () {\n var child;\n while (child = this.firstChild) {\n if (child.nodeType === 3 && child.data.length === 0) {\n this.removeChild(child);\n } else {\n this.parentNode.insertBefore(child, this);\n }\n }\n }).remove();\n } else {\n $node.remove();\n }\n return $node.length > 1 ? $node.toArray() : $node[0];\n };\n var removeAllAttribs = function (e) {\n return run(e, function (e) {\n var i;\n var attrs = e.attributes;\n for (i = attrs.length - 1; i >= 0; i--) {\n e.removeAttributeNode(attrs.item(i));\n }\n });\n };\n var parseStyle = function (cssText) {\n return styles.parse(cssText);\n };\n var serializeStyle = function (stylesArg, name) {\n return styles.serialize(stylesArg, name);\n };\n var addStyle = function (cssText) {\n var head, styleElm;\n if (self !== DOMUtils.DOM && doc === domGlobals.document) {\n if (addedStyles[cssText]) {\n return;\n }\n addedStyles[cssText] = true;\n }\n styleElm = doc.getElementById('mceDefaultStyles');\n if (!styleElm) {\n styleElm = doc.createElement('style');\n styleElm.id = 'mceDefaultStyles';\n styleElm.type = 'text/css';\n head = doc.getElementsByTagName('head')[0];\n if (head.firstChild) {\n head.insertBefore(styleElm, head.firstChild);\n } else {\n head.appendChild(styleElm);\n }\n }\n if (styleElm.styleSheet) {\n styleElm.styleSheet.cssText += cssText;\n } else {\n styleElm.appendChild(doc.createTextNode(cssText));\n }\n };\n var loadCSS = function (url) {\n var head;\n if (self !== DOMUtils.DOM && doc === domGlobals.document) {\n DOMUtils.DOM.loadCSS(url);\n return;\n }\n if (!url) {\n url = '';\n }\n head = doc.getElementsByTagName('head')[0];\n each$5(url.split(','), function (url) {\n var link;\n url = Tools._addCacheSuffix(url);\n if (files[url]) {\n return;\n }\n files[url] = true;\n link = create('link', __assign(__assign({\n rel: 'stylesheet',\n type: 'text/css',\n href: url\n }, settings.contentCssCors ? { crossOrigin: 'anonymous' } : {}), settings.referrerPolicy ? { referrerPolicy: settings.referrerPolicy } : {}));\n head.appendChild(link);\n });\n };\n var toggleClass = function (elm, cls, state) {\n $$(elm).toggleClass(cls, state).each(function () {\n if (this.className === '') {\n DomQuery(this).attr('class', null);\n }\n });\n };\n var addClass = function (elm, cls) {\n $$(elm).addClass(cls);\n };\n var removeClass = function (elm, cls) {\n toggleClass(elm, cls, false);\n };\n var hasClass = function (elm, cls) {\n return $$(elm).hasClass(cls);\n };\n var show = function (elm) {\n $$(elm).show();\n };\n var hide = function (elm) {\n $$(elm).hide();\n };\n var isHidden = function (elm) {\n return $$(elm).css('display') === 'none';\n };\n var uniqueId = function (prefix) {\n return (!prefix ? 'mce_' : prefix) + counter++;\n };\n var getOuterHTML = function (elm) {\n var node = typeof elm === 'string' ? get(elm) : elm;\n return NodeType.isElement(node) ? node.outerHTML : DomQuery('<div></div>').append(DomQuery(node).clone()).html();\n };\n var setOuterHTML = function (elm, html) {\n $$(elm).each(function () {\n try {\n if ('outerHTML' in this) {\n this.outerHTML = html;\n return;\n }\n } catch (ex) {\n }\n remove(DomQuery(this).html(html), true);\n });\n };\n var insertAfter = function (node, reference) {\n var referenceNode = get(reference);\n return run(node, function (node) {\n var parent, nextSibling;\n parent = referenceNode.parentNode;\n nextSibling = referenceNode.nextSibling;\n if (nextSibling) {\n parent.insertBefore(node, nextSibling);\n } else {\n parent.appendChild(node);\n }\n return node;\n });\n };\n var replace = function (newElm, oldElm, keepChildren) {\n return run(oldElm, function (oldElm) {\n if (Tools.is(oldElm, 'array')) {\n newElm = newElm.cloneNode(true);\n }\n if (keepChildren) {\n each$5(grep$1(oldElm.childNodes), function (node) {\n newElm.appendChild(node);\n });\n }\n return oldElm.parentNode.replaceChild(newElm, oldElm);\n });\n };\n var rename = function (elm, name) {\n var newElm;\n if (elm.nodeName !== name.toUpperCase()) {\n newElm = create(name);\n each$5(getAttribs(elm), function (attrNode) {\n setAttrib(newElm, attrNode.nodeName, getAttrib(elm, attrNode.nodeName));\n });\n replace(newElm, elm, true);\n }\n return newElm || elm;\n };\n var findCommonAncestor = function (a, b) {\n var ps = a, pe;\n while (ps) {\n pe = b;\n while (pe && ps !== pe) {\n pe = pe.parentNode;\n }\n if (ps === pe) {\n break;\n }\n ps = ps.parentNode;\n }\n if (!ps && a.ownerDocument) {\n return a.ownerDocument.documentElement;\n }\n return ps;\n };\n var toHex = function (rgbVal) {\n return styles.toHex(Tools.trim(rgbVal));\n };\n var isEmpty = function (node, elements) {\n var i, attributes, type, name, brCount = 0;\n node = node.firstChild;\n if (node) {\n var walker = new TreeWalker(node, node.parentNode);\n var whitespace = schema ? schema.getWhiteSpaceElements() : {};\n elements = elements || (schema ? schema.getNonEmptyElements() : null);\n do {\n type = node.nodeType;\n if (NodeType.isElement(node)) {\n var bogusVal = node.getAttribute('data-mce-bogus');\n if (bogusVal) {\n node = walker.next(bogusVal === 'all');\n continue;\n }\n name = node.nodeName.toLowerCase();\n if (elements && elements[name]) {\n if (name === 'br') {\n brCount++;\n node = walker.next();\n continue;\n }\n return false;\n }\n attributes = getAttribs(node);\n i = attributes.length;\n while (i--) {\n name = attributes[i].nodeName;\n if (name === 'name' || name === 'data-mce-bookmark') {\n return false;\n }\n }\n }\n if (type === 8) {\n return false;\n }\n if (type === 3 && !whiteSpaceRegExp$2.test(node.nodeValue)) {\n return false;\n }\n if (type === 3 && node.parentNode && whitespace[node.parentNode.nodeName] && whiteSpaceRegExp$2.test(node.nodeValue)) {\n return false;\n }\n node = walker.next();\n } while (node);\n }\n return brCount <= 1;\n };\n var createRng = function () {\n return doc.createRange();\n };\n var split = function (parentElm, splitElm, replacementElm) {\n var r = createRng(), bef, aft, pa;\n if (parentElm && splitElm) {\n r.setStart(parentElm.parentNode, findNodeIndex(parentElm));\n r.setEnd(splitElm.parentNode, findNodeIndex(splitElm));\n bef = r.extractContents();\n r = createRng();\n r.setStart(splitElm.parentNode, findNodeIndex(splitElm) + 1);\n r.setEnd(parentElm.parentNode, findNodeIndex(parentElm) + 1);\n aft = r.extractContents();\n pa = parentElm.parentNode;\n pa.insertBefore(TrimNode.trimNode(self, bef), parentElm);\n if (replacementElm) {\n pa.insertBefore(replacementElm, parentElm);\n } else {\n pa.insertBefore(splitElm, parentElm);\n }\n pa.insertBefore(TrimNode.trimNode(self, aft), parentElm);\n remove(parentElm);\n return replacementElm || splitElm;\n }\n };\n var bind = function (target, name, func, scope) {\n if (Tools.isArray(target)) {\n var i = target.length;\n var rv = [];\n while (i--) {\n rv[i] = bind(target[i], name, func, scope);\n }\n return rv;\n }\n if (settings.collect && (target === doc || target === win)) {\n boundEvents.push([\n target,\n name,\n func,\n scope\n ]);\n }\n return events.bind(target, name, func, scope || self);\n };\n var unbind = function (target, name, func) {\n var i;\n if (Tools.isArray(target)) {\n i = target.length;\n var rv = [];\n while (i--) {\n rv[i] = unbind(target[i], name, func);\n }\n return rv;\n }\n if (boundEvents && (target === doc || target === win)) {\n i = boundEvents.length;\n while (i--) {\n var item = boundEvents[i];\n if (target === item[0] && (!name || name === item[1]) && (!func || func === item[2])) {\n events.unbind(item[0], item[1], item[2]);\n }\n }\n }\n return events.unbind(target, name, func);\n };\n var fire = function (target, name, evt) {\n return events.fire(target, name, evt);\n };\n var getContentEditable = function (node) {\n if (node && NodeType.isElement(node)) {\n var contentEditable = node.getAttribute('data-mce-contenteditable');\n if (contentEditable && contentEditable !== 'inherit') {\n return contentEditable;\n }\n return node.contentEditable !== 'inherit' ? node.contentEditable : null;\n } else {\n return null;\n }\n };\n var getContentEditableParent = function (node) {\n var root = getRoot();\n var state = null;\n for (; node && node !== root; node = node.parentNode) {\n state = getContentEditable(node);\n if (state !== null) {\n break;\n }\n }\n return state;\n };\n var destroy = function () {\n if (boundEvents) {\n var i = boundEvents.length;\n while (i--) {\n var item = boundEvents[i];\n events.unbind(item[0], item[1], item[2]);\n }\n }\n if (Sizzle.setDocument) {\n Sizzle.setDocument();\n }\n };\n var isChildOf = function (node, parent) {\n while (node) {\n if (parent === node) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n };\n var dumpRng = function (r) {\n return 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset;\n };\n var self = {\n doc: doc,\n settings: settings,\n win: win,\n files: files,\n stdMode: stdMode,\n boxModel: boxModel,\n styleSheetLoader: styleSheetLoader,\n boundEvents: boundEvents,\n styles: styles,\n schema: schema,\n events: events,\n isBlock: isBlock,\n $: $,\n $$: $$,\n root: null,\n clone: clone,\n getRoot: getRoot,\n getViewPort: getViewPort,\n getRect: getRect,\n getSize: getSize,\n getParent: getParent,\n getParents: getParents,\n get: get,\n getNext: getNext,\n getPrev: getPrev,\n select: select,\n is: is,\n add: add,\n create: create,\n createHTML: createHTML,\n createFragment: createFragment,\n remove: remove,\n setStyle: setStyle,\n getStyle: getStyle,\n setStyles: setStyles,\n removeAllAttribs: removeAllAttribs,\n setAttrib: setAttrib,\n setAttribs: setAttribs,\n getAttrib: getAttrib,\n getPos: getPos,\n parseStyle: parseStyle,\n serializeStyle: serializeStyle,\n addStyle: addStyle,\n loadCSS: loadCSS,\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n show: show,\n hide: hide,\n isHidden: isHidden,\n uniqueId: uniqueId,\n setHTML: setHTML,\n getOuterHTML: getOuterHTML,\n setOuterHTML: setOuterHTML,\n decode: decode,\n encode: encode,\n insertAfter: insertAfter,\n replace: replace,\n rename: rename,\n findCommonAncestor: findCommonAncestor,\n toHex: toHex,\n run: run,\n getAttribs: getAttribs,\n isEmpty: isEmpty,\n createRng: createRng,\n nodeIndex: findNodeIndex,\n split: split,\n bind: bind,\n unbind: unbind,\n fire: fire,\n getContentEditable: getContentEditable,\n getContentEditableParent: getContentEditableParent,\n destroy: destroy,\n isChildOf: isChildOf,\n dumpRng: dumpRng\n };\n attrHooks = setupAttrHooks(styles, settings, function () {\n return self;\n });\n return self;\n }\n (function (DOMUtils) {\n DOMUtils.DOM = DOMUtils(domGlobals.document);\n DOMUtils.nodeIndex = findNodeIndex;\n }(DOMUtils || (DOMUtils = {})));\n var DOMUtils$1 = DOMUtils;\n\n var DOM = DOMUtils$1.DOM;\n var each$6 = Tools.each, grep$2 = Tools.grep;\n var QUEUED = 0;\n var LOADING = 1;\n var LOADED = 2;\n var FAILED = 3;\n var ScriptLoader = function () {\n function ScriptLoader(settings) {\n if (settings === void 0) {\n settings = {};\n }\n this.states = {};\n this.queue = [];\n this.scriptLoadedCallbacks = {};\n this.queueLoadedCallbacks = [];\n this.loading = 0;\n this.settings = settings;\n }\n ScriptLoader.prototype._setReferrerPolicy = function (referrerPolicy) {\n this.settings.referrerPolicy = referrerPolicy;\n };\n ScriptLoader.prototype.loadScript = function (url, success, failure) {\n var dom = DOM;\n var elm, id;\n var done = function () {\n dom.remove(id);\n if (elm) {\n elm.onreadystatechange = elm.onload = elm = null;\n }\n success();\n };\n var error = function () {\n if (isFunction(failure)) {\n failure();\n } else {\n if (typeof domGlobals.console !== 'undefined' && domGlobals.console.log) {\n domGlobals.console.log('Failed to load script: ' + url);\n }\n }\n };\n id = dom.uniqueId();\n elm = domGlobals.document.createElement('script');\n elm.id = id;\n elm.type = 'text/javascript';\n elm.src = Tools._addCacheSuffix(url);\n if (this.settings.referrerPolicy) {\n dom.setAttrib(elm, 'referrerpolicy', this.settings.referrerPolicy);\n }\n elm.onload = done;\n elm.onerror = error;\n (domGlobals.document.getElementsByTagName('head')[0] || domGlobals.document.body).appendChild(elm);\n };\n ScriptLoader.prototype.isDone = function (url) {\n return this.states[url] === LOADED;\n };\n ScriptLoader.prototype.markDone = function (url) {\n this.states[url] = LOADED;\n };\n ScriptLoader.prototype.add = function (url, success, scope, failure) {\n var state = this.states[url];\n if (state === undefined) {\n this.queue.push(url);\n this.states[url] = QUEUED;\n }\n if (success) {\n if (!this.scriptLoadedCallbacks[url]) {\n this.scriptLoadedCallbacks[url] = [];\n }\n this.scriptLoadedCallbacks[url].push({\n success: success,\n failure: failure,\n scope: scope || this\n });\n }\n };\n ScriptLoader.prototype.load = function (url, success, scope, failure) {\n return this.add(url, success, scope, failure);\n };\n ScriptLoader.prototype.remove = function (url) {\n delete this.states[url];\n delete this.scriptLoadedCallbacks[url];\n };\n ScriptLoader.prototype.loadQueue = function (success, scope, failure) {\n this.loadScripts(this.queue, success, scope, failure);\n };\n ScriptLoader.prototype.loadScripts = function (scripts, success, scope, failure) {\n var self = this;\n var loadScripts;\n var failures = [];\n var execCallbacks = function (name, url) {\n each$6(self.scriptLoadedCallbacks[url], function (callback) {\n if (isFunction(callback[name])) {\n callback[name].call(callback.scope);\n }\n });\n self.scriptLoadedCallbacks[url] = undefined;\n };\n self.queueLoadedCallbacks.push({\n success: success,\n failure: failure,\n scope: scope || this\n });\n loadScripts = function () {\n var loadingScripts = grep$2(scripts);\n scripts.length = 0;\n each$6(loadingScripts, function (url) {\n if (self.states[url] === LOADED) {\n execCallbacks('success', url);\n return;\n }\n if (self.states[url] === FAILED) {\n execCallbacks('failure', url);\n return;\n }\n if (self.states[url] !== LOADING) {\n self.states[url] = LOADING;\n self.loading++;\n self.loadScript(url, function () {\n self.states[url] = LOADED;\n self.loading--;\n execCallbacks('success', url);\n loadScripts();\n }, function () {\n self.states[url] = FAILED;\n self.loading--;\n failures.push(url);\n execCallbacks('failure', url);\n loadScripts();\n });\n }\n });\n if (!self.loading) {\n var notifyCallbacks = self.queueLoadedCallbacks.slice(0);\n self.queueLoadedCallbacks.length = 0;\n each$6(notifyCallbacks, function (callback) {\n if (failures.length === 0) {\n if (isFunction(callback.success)) {\n callback.success.call(callback.scope);\n }\n } else {\n if (isFunction(callback.failure)) {\n callback.failure.call(callback.scope, failures);\n }\n }\n });\n }\n };\n loadScripts();\n };\n ScriptLoader.ScriptLoader = new ScriptLoader();\n return ScriptLoader;\n }();\n\n var isRaw = function (str) {\n return isObject(str) && has(str, 'raw');\n };\n var isTokenised = function (str) {\n return isArray(str) && str.length > 1;\n };\n var data = {};\n var currentCode = Cell('en');\n var getData = function () {\n return map$1(data, function (value) {\n return __assign({}, value);\n });\n };\n var setCode = function (newCode) {\n if (newCode) {\n currentCode.set(newCode);\n }\n };\n var getCode = function () {\n return currentCode.get();\n };\n var add = function (code, items) {\n var langData = data[code];\n if (!langData) {\n data[code] = langData = {};\n }\n for (var name in items) {\n langData[name.toLowerCase()] = items[name];\n }\n };\n var translate = function (text) {\n var langData = data[currentCode.get()] || {};\n var toString = function (obj) {\n if (isFunction(obj)) {\n return Object.prototype.toString.call(obj);\n }\n return !isEmpty(obj) ? '' + obj : '';\n };\n var isEmpty = function (text) {\n return text === '' || text === null || text === undefined;\n };\n var getLangData = function (text) {\n var textstr = toString(text);\n var lowercaseTextstr = textstr.toLowerCase();\n return has(langData, lowercaseTextstr) ? toString(langData[lowercaseTextstr]) : textstr;\n };\n var removeContext = function (str) {\n return str.replace(/{context:\\w+}$/, '');\n };\n var translated = function (text) {\n return text;\n };\n if (isEmpty(text)) {\n return translated('');\n }\n if (isRaw(text)) {\n return translated(toString(text.raw));\n }\n if (isTokenised(text)) {\n var values_1 = text.slice(1);\n var substitued = getLangData(text[0]).replace(/\\{([0-9]+)\\}/g, function ($1, $2) {\n return has(values_1, $2) ? toString(values_1[$2]) : $1;\n });\n return translated(removeContext(substitued));\n }\n return translated(removeContext(getLangData(text)));\n };\n var isRtl = function () {\n return get(data, currentCode.get()).bind(function (items) {\n return get(items, '_dir');\n }).exists(function (dir) {\n return dir === 'rtl';\n });\n };\n var hasCode = function (code) {\n return has(data, code);\n };\n var I18n = {\n getData: getData,\n setCode: setCode,\n getCode: getCode,\n add: add,\n translate: translate,\n isRtl: isRtl,\n hasCode: hasCode\n };\n\n var each$7 = Tools.each;\n function AddOnManager() {\n var _this = this;\n var items = [];\n var urls = {};\n var lookup = {};\n var _listeners = [];\n var get = function (name) {\n if (lookup[name]) {\n return lookup[name].instance;\n }\n return undefined;\n };\n var dependencies = function (name) {\n var result;\n if (lookup[name]) {\n result = lookup[name].dependencies;\n }\n return result || [];\n };\n var requireLangPack = function (name, languages) {\n var language = I18n.getCode();\n if (language && AddOnManager.languageLoad !== false) {\n if (languages) {\n languages = ',' + languages + ',';\n if (languages.indexOf(',' + language.substr(0, 2) + ',') !== -1) {\n language = language.substr(0, 2);\n } else if (languages.indexOf(',' + language + ',') === -1) {\n return;\n }\n }\n ScriptLoader.ScriptLoader.add(urls[name] + '/langs/' + language + '.js');\n }\n };\n var add = function (id, addOn, dependencies) {\n items.push(addOn);\n lookup[id] = {\n instance: addOn,\n dependencies: dependencies\n };\n var result = partition(_listeners, function (listener) {\n return listener.name === id;\n });\n _listeners = result.fail;\n each$7(result.pass, function (listener) {\n listener.callback();\n });\n return addOn;\n };\n var remove = function (name) {\n delete urls[name];\n delete lookup[name];\n };\n var createUrl = function (baseUrl, dep) {\n if (typeof dep === 'object') {\n return dep;\n }\n return typeof baseUrl === 'string' ? {\n prefix: '',\n resource: dep,\n suffix: ''\n } : {\n prefix: baseUrl.prefix,\n resource: dep,\n suffix: baseUrl.suffix\n };\n };\n var addComponents = function (pluginName, scripts) {\n var pluginUrl = _this.urls[pluginName];\n each$7(scripts, function (script) {\n ScriptLoader.ScriptLoader.add(pluginUrl + '/' + script);\n });\n };\n var loadDependencies = function (name, addOnUrl, success, scope) {\n var deps = dependencies(name);\n each$7(deps, function (dep) {\n var newUrl = createUrl(addOnUrl, dep);\n load(newUrl.resource, newUrl, undefined, undefined);\n });\n if (success) {\n if (scope) {\n success.call(scope);\n } else {\n success.call(ScriptLoader);\n }\n }\n };\n var load = function (name, addOnUrl, success, scope, failure) {\n if (urls[name]) {\n return;\n }\n var urlString = typeof addOnUrl === 'string' ? addOnUrl : addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix;\n if (urlString.indexOf('/') !== 0 && urlString.indexOf('://') === -1) {\n urlString = AddOnManager.baseURL + '/' + urlString;\n }\n urls[name] = urlString.substring(0, urlString.lastIndexOf('/'));\n if (lookup[name]) {\n loadDependencies(name, addOnUrl, success, scope);\n } else {\n ScriptLoader.ScriptLoader.add(urlString, function () {\n return loadDependencies(name, addOnUrl, success, scope);\n }, scope, failure);\n }\n };\n var waitFor = function (name, callback) {\n if (lookup.hasOwnProperty(name)) {\n callback();\n } else {\n _listeners.push({\n name: name,\n callback: callback\n });\n }\n };\n return {\n items: items,\n urls: urls,\n lookup: lookup,\n _listeners: _listeners,\n get: get,\n dependencies: dependencies,\n requireLangPack: requireLangPack,\n add: add,\n remove: remove,\n createUrl: createUrl,\n addComponents: addComponents,\n load: load,\n waitFor: waitFor\n };\n }\n (function (AddOnManager) {\n AddOnManager.PluginManager = AddOnManager();\n AddOnManager.ThemeManager = AddOnManager();\n }(AddOnManager || (AddOnManager = {})));\n var AddOnManager$1 = AddOnManager;\n\n var first = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer === null) {\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n }\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n var last$2 = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n }\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var read = function (element, attr) {\n var value = get$1(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n var add$1 = function (element, attr, id) {\n var old = read(element, attr);\n var nu = old.concat([id]);\n set(element, attr, nu.join(' '));\n return true;\n };\n var remove$2 = function (element, attr, id) {\n var nu = filter(read(element, attr), function (v) {\n return v !== id;\n });\n if (nu.length > 0) {\n set(element, attr, nu.join(' '));\n } else {\n remove(element, attr);\n }\n return false;\n };\n\n var supports = function (element) {\n return element.dom().classList !== undefined;\n };\n var get$4 = function (element) {\n return read(element, 'class');\n };\n var add$2 = function (element, clazz) {\n return add$1(element, 'class', clazz);\n };\n var remove$3 = function (element, clazz) {\n return remove$2(element, 'class', clazz);\n };\n\n var add$3 = function (element, clazz) {\n if (supports(element)) {\n element.dom().classList.add(clazz);\n } else {\n add$2(element, clazz);\n }\n };\n var cleanClass = function (element) {\n var classList = supports(element) ? element.dom().classList : get$4(element);\n if (classList.length === 0) {\n remove(element, 'class');\n }\n };\n var remove$4 = function (element, clazz) {\n if (supports(element)) {\n var classList = element.dom().classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n cleanClass(element);\n };\n var has$2 = function (element, clazz) {\n return supports(element) && element.dom().classList.contains(clazz);\n };\n\n var descendants = function (scope, predicate) {\n var result = [];\n each(children(scope), function (x) {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants(x, predicate));\n });\n return result;\n };\n\n var descendants$1 = function (scope, selector) {\n return all(selector, scope);\n };\n\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\n return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);\n }\n\n var ancestor = function (scope, predicate, isRoot) {\n var element = scope.dom();\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n while (element.parentNode) {\n element = element.parentNode;\n var el = Element.fromDom(element);\n if (predicate(el)) {\n return Option.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Option.none();\n };\n var closest = function (scope, predicate, isRoot) {\n var is = function (s, test) {\n return test(s);\n };\n return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);\n };\n\n var ancestor$1 = function (scope, selector, isRoot) {\n return ancestor(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var descendant = function (scope, selector) {\n return one(selector, scope);\n };\n var closest$1 = function (scope, selector, isRoot) {\n return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot);\n };\n\n var annotation = constant('mce-annotation');\n var dataAnnotation = constant('data-mce-annotation');\n var dataAnnotationId = constant('data-mce-annotation-uid');\n\n var identify = function (editor, annotationName) {\n var rng = editor.selection.getRng();\n var start = Element.fromDom(rng.startContainer);\n var root = Element.fromDom(editor.getBody());\n var selector = annotationName.fold(function () {\n return '.' + annotation();\n }, function (an) {\n return '[' + dataAnnotation() + '=\"' + an + '\"]';\n });\n var newStart = child(start, rng.startOffset).getOr(start);\n var closest = closest$1(newStart, selector, function (n) {\n return eq(n, root);\n });\n var getAttr = function (c, property) {\n if (has$1(c, property)) {\n return Option.some(get$1(c, property));\n } else {\n return Option.none();\n }\n };\n return closest.bind(function (c) {\n return getAttr(c, '' + dataAnnotationId()).bind(function (uid) {\n return getAttr(c, '' + dataAnnotation()).map(function (name) {\n var elements = findMarkers(editor, uid);\n return {\n uid: uid,\n name: name,\n elements: elements\n };\n });\n });\n });\n };\n var isAnnotation = function (elem) {\n return isElement$1(elem) && has$2(elem, annotation());\n };\n var findMarkers = function (editor, uid) {\n var body = Element.fromDom(editor.getBody());\n return descendants$1(body, '[' + dataAnnotationId() + '=\"' + uid + '\"]');\n };\n var findAll = function (editor, name) {\n var body = Element.fromDom(editor.getBody());\n var markers = descendants$1(body, '[' + dataAnnotation() + '=\"' + name + '\"]');\n var directory = {};\n each(markers, function (m) {\n var uid = get$1(m, dataAnnotationId());\n var nodesAlready = directory.hasOwnProperty(uid) ? directory[uid] : [];\n directory[uid] = nodesAlready.concat([m]);\n });\n return directory;\n };\n\n var setup = function (editor, registry) {\n var changeCallbacks = Cell({});\n var initData = function () {\n return {\n listeners: [],\n previous: Cell(Option.none())\n };\n };\n var withCallbacks = function (name, f) {\n updateCallbacks(name, function (data) {\n f(data);\n return data;\n });\n };\n var updateCallbacks = function (name, f) {\n var callbackMap = changeCallbacks.get();\n var data = callbackMap.hasOwnProperty(name) ? callbackMap[name] : initData();\n var outputData = f(data);\n callbackMap[name] = outputData;\n changeCallbacks.set(callbackMap);\n };\n var fireCallbacks = function (name, uid, elements) {\n withCallbacks(name, function (data) {\n each(data.listeners, function (f) {\n return f(true, name, {\n uid: uid,\n nodes: map(elements, function (elem) {\n return elem.dom();\n })\n });\n });\n });\n };\n var fireNoAnnotation = function (name) {\n withCallbacks(name, function (data) {\n each(data.listeners, function (f) {\n return f(false, name);\n });\n });\n };\n var onNodeChange = last$2(function () {\n var callbackMap = changeCallbacks.get();\n var annotations = sort(keys(callbackMap));\n each(annotations, function (name) {\n updateCallbacks(name, function (data) {\n var prev = data.previous.get();\n identify(editor, Option.some(name)).fold(function () {\n if (prev.isSome()) {\n fireNoAnnotation(name);\n data.previous.set(Option.none());\n }\n }, function (_a) {\n var uid = _a.uid, name = _a.name, elements = _a.elements;\n if (!prev.is(uid)) {\n fireCallbacks(name, uid, elements);\n data.previous.set(Option.some(uid));\n }\n });\n return {\n previous: data.previous,\n listeners: data.listeners\n };\n });\n });\n }, 30);\n editor.on('remove', function () {\n onNodeChange.cancel();\n });\n editor.on('NodeChange', function () {\n onNodeChange.throttle();\n });\n var addListener = function (name, f) {\n updateCallbacks(name, function (data) {\n return {\n previous: data.previous,\n listeners: data.listeners.concat([f])\n };\n });\n };\n return { addListener: addListener };\n };\n\n var setup$1 = function (editor, registry) {\n var identifyParserNode = function (span) {\n return Option.from(span.attr(dataAnnotation())).bind(registry.lookup);\n };\n editor.on('init', function () {\n editor.serializer.addNodeFilter('span', function (spans) {\n each(spans, function (span) {\n identifyParserNode(span).each(function (settings) {\n if (settings.persistent === false) {\n span.unwrap();\n }\n });\n });\n });\n });\n };\n\n var create$1 = function () {\n var annotations = {};\n var register = function (name, settings) {\n annotations[name] = {\n name: name,\n settings: settings\n };\n };\n var lookup = function (name) {\n return annotations.hasOwnProperty(name) ? Option.from(annotations[name]).map(function (a) {\n return a.settings;\n }) : Option.none();\n };\n return {\n register: register,\n lookup: lookup\n };\n };\n\n var unique = 0;\n var generate = function (prefix) {\n var date = new Date();\n var time = date.getTime();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n };\n\n var add$4 = function (element, classes) {\n each(classes, function (x) {\n add$3(element, x);\n });\n };\n\n var clone = function (original, isDeep) {\n return Element.fromDom(original.dom().cloneNode(isDeep));\n };\n var shallow = function (original) {\n return clone(original, false);\n };\n var deep = function (original) {\n return clone(original, true);\n };\n\n var fromHtml$1 = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children(Element.fromDom(div));\n };\n\n var get$5 = function (element) {\n return element.dom().innerHTML;\n };\n var set$1 = function (element, content) {\n var owner$1 = owner(element);\n var docDom = owner$1.dom();\n var fragment = Element.fromDom(docDom.createDocumentFragment());\n var contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append(element, fragment);\n };\n\n var ZWSP = '\\uFEFF';\n var isZwsp = function (chr) {\n return chr === ZWSP;\n };\n var trim$3 = function (text) {\n return text.replace(new RegExp(ZWSP, 'g'), '');\n };\n var Zwsp = {\n isZwsp: isZwsp,\n ZWSP: ZWSP,\n trim: trim$3\n };\n\n var isElement$2 = NodeType.isElement;\n var isText$2 = NodeType.isText;\n var isCaretContainerBlock = function (node) {\n if (isText$2(node)) {\n node = node.parentNode;\n }\n return isElement$2(node) && node.hasAttribute('data-mce-caret');\n };\n var isCaretContainerInline = function (node) {\n return isText$2(node) && Zwsp.isZwsp(node.data);\n };\n var isCaretContainer = function (node) {\n return isCaretContainerBlock(node) || isCaretContainerInline(node);\n };\n var hasContent = function (node) {\n return node.firstChild !== node.lastChild || !NodeType.isBr(node.firstChild);\n };\n var insertInline = function (node, before) {\n var doc, sibling, textNode, parentNode;\n doc = node.ownerDocument;\n textNode = doc.createTextNode(Zwsp.ZWSP);\n parentNode = node.parentNode;\n if (!before) {\n sibling = node.nextSibling;\n if (isText$2(sibling)) {\n if (isCaretContainer(sibling)) {\n return sibling;\n }\n if (startsWithCaretContainer(sibling)) {\n sibling.splitText(1);\n return sibling;\n }\n }\n if (node.nextSibling) {\n parentNode.insertBefore(textNode, node.nextSibling);\n } else {\n parentNode.appendChild(textNode);\n }\n } else {\n sibling = node.previousSibling;\n if (isText$2(sibling)) {\n if (isCaretContainer(sibling)) {\n return sibling;\n }\n if (endsWithCaretContainer(sibling)) {\n return sibling.splitText(sibling.data.length - 1);\n }\n }\n parentNode.insertBefore(textNode, node);\n }\n return textNode;\n };\n var isBeforeInline = function (pos) {\n var container = pos.container();\n if (!pos || !NodeType.isText(container)) {\n return false;\n }\n return container.data.charAt(pos.offset()) === Zwsp.ZWSP || pos.isAtStart() && isCaretContainerInline(container.previousSibling);\n };\n var isAfterInline = function (pos) {\n var container = pos.container();\n if (!pos || !NodeType.isText(container)) {\n return false;\n }\n return container.data.charAt(pos.offset() - 1) === Zwsp.ZWSP || pos.isAtEnd() && isCaretContainerInline(container.nextSibling);\n };\n var createBogusBr = function () {\n var br = domGlobals.document.createElement('br');\n br.setAttribute('data-mce-bogus', '1');\n return br;\n };\n var insertBlock = function (blockName, node, before) {\n var doc, blockNode, parentNode;\n doc = node.ownerDocument;\n blockNode = doc.createElement(blockName);\n blockNode.setAttribute('data-mce-caret', before ? 'before' : 'after');\n blockNode.setAttribute('data-mce-bogus', 'all');\n blockNode.appendChild(createBogusBr());\n parentNode = node.parentNode;\n if (!before) {\n if (node.nextSibling) {\n parentNode.insertBefore(blockNode, node.nextSibling);\n } else {\n parentNode.appendChild(blockNode);\n }\n } else {\n parentNode.insertBefore(blockNode, node);\n }\n return blockNode;\n };\n var startsWithCaretContainer = function (node) {\n return isText$2(node) && node.data[0] === Zwsp.ZWSP;\n };\n var endsWithCaretContainer = function (node) {\n return isText$2(node) && node.data[node.data.length - 1] === Zwsp.ZWSP;\n };\n var trimBogusBr = function (elm) {\n var brs = elm.getElementsByTagName('br');\n var lastBr = brs[brs.length - 1];\n if (NodeType.isBogus(lastBr)) {\n lastBr.parentNode.removeChild(lastBr);\n }\n };\n var showCaretContainerBlock = function (caretContainer) {\n if (caretContainer && caretContainer.hasAttribute('data-mce-caret')) {\n trimBogusBr(caretContainer);\n caretContainer.removeAttribute('data-mce-caret');\n caretContainer.removeAttribute('data-mce-bogus');\n caretContainer.removeAttribute('style');\n caretContainer.removeAttribute('_moz_abspos');\n return caretContainer;\n }\n return null;\n };\n var isRangeInCaretContainerBlock = function (range) {\n return isCaretContainerBlock(range.startContainer);\n };\n\n var isContentEditableTrue$1 = NodeType.isContentEditableTrue;\n var isContentEditableFalse$1 = NodeType.isContentEditableFalse;\n var isBr$2 = NodeType.isBr;\n var isText$3 = NodeType.isText;\n var isInvalidTextElement = NodeType.matchNodeNames([\n 'script',\n 'style',\n 'textarea'\n ]);\n var isAtomicInline = NodeType.matchNodeNames([\n 'img',\n 'input',\n 'textarea',\n 'hr',\n 'iframe',\n 'video',\n 'audio',\n 'object'\n ]);\n var isTable$2 = NodeType.matchNodeNames(['table']);\n var isCaretContainer$1 = isCaretContainer;\n var isCaretCandidate = function (node) {\n if (isCaretContainer$1(node)) {\n return false;\n }\n if (isText$3(node)) {\n if (isInvalidTextElement(node.parentNode)) {\n return false;\n }\n return true;\n }\n return isAtomicInline(node) || isBr$2(node) || isTable$2(node) || isNonUiContentEditableFalse(node);\n };\n var isUnselectable = function (node) {\n return NodeType.isElement(node) && node.getAttribute('unselectable') === 'true';\n };\n var isNonUiContentEditableFalse = function (node) {\n return isUnselectable(node) === false && isContentEditableFalse$1(node);\n };\n var isInEditable = function (node, root) {\n for (node = node.parentNode; node && node !== root; node = node.parentNode) {\n if (isNonUiContentEditableFalse(node)) {\n return false;\n }\n if (isContentEditableTrue$1(node)) {\n return true;\n }\n }\n return true;\n };\n var isAtomicContentEditableFalse = function (node) {\n if (!isNonUiContentEditableFalse(node)) {\n return false;\n }\n return foldl(from$1(node.getElementsByTagName('*')), function (result, elm) {\n return result || isContentEditableTrue$1(elm);\n }, false) !== true;\n };\n var isAtomic = function (node) {\n return isAtomicInline(node) || isAtomicContentEditableFalse(node);\n };\n var isEditableCaretCandidate = function (node, root) {\n return isCaretCandidate(node) && isInEditable(node, root);\n };\n\n var round = Math.round;\n var clone$1 = function (rect) {\n if (!rect) {\n return {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n return {\n left: round(rect.left),\n top: round(rect.top),\n bottom: round(rect.bottom),\n right: round(rect.right),\n width: round(rect.width),\n height: round(rect.height)\n };\n };\n var collapse = function (rect, toStart) {\n rect = clone$1(rect);\n if (toStart) {\n rect.right = rect.left;\n } else {\n rect.left = rect.left + rect.width;\n rect.right = rect.left;\n }\n rect.width = 0;\n return rect;\n };\n var isEqual = function (rect1, rect2) {\n return rect1.left === rect2.left && rect1.top === rect2.top && rect1.bottom === rect2.bottom && rect1.right === rect2.right;\n };\n var isValidOverflow = function (overflowY, rect1, rect2) {\n return overflowY >= 0 && overflowY <= Math.min(rect1.height, rect2.height) / 2;\n };\n var isAbove = function (rect1, rect2) {\n if (rect1.bottom - rect1.height / 2 < rect2.top) {\n return true;\n }\n if (rect1.top > rect2.bottom) {\n return false;\n }\n return isValidOverflow(rect2.top - rect1.bottom, rect1, rect2);\n };\n var isBelow = function (rect1, rect2) {\n if (rect1.top > rect2.bottom) {\n return true;\n }\n if (rect1.bottom < rect2.top) {\n return false;\n }\n return isValidOverflow(rect2.bottom - rect1.top, rect1, rect2);\n };\n var containsXY = function (rect, clientX, clientY) {\n return clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n };\n\n var getSelectedNode = function (range) {\n var startContainer = range.startContainer, startOffset = range.startOffset;\n if (startContainer.hasChildNodes() && range.endOffset === startOffset + 1) {\n return startContainer.childNodes[startOffset];\n }\n return null;\n };\n var getNode = function (container, offset) {\n if (container.nodeType === 1 && container.hasChildNodes()) {\n if (offset >= container.childNodes.length) {\n offset = container.childNodes.length - 1;\n }\n container = container.childNodes[offset];\n }\n return container;\n };\n\n var extendingChars = new RegExp('[\\u0300-\\u036f\\u0483-\\u0487\\u0488-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u0610-\\u061a' + '\\u064b-\\u065f\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7-\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0' + '\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08e3-\\u0902\\u093a\\u093c' + '\\u0941-\\u0948\\u094d\\u0951-\\u0957\\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\\u0c00\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56' + '\\u0c62-\\u0c63\\u0c81\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc-\\u0ccd\\u0cd5-\\u0cd6\\u0ce2-\\u0ce3\\u0d01\\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\\u0f8d-\\u0f97' + '\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039-\\u103a\\u103d-\\u103e\\u1058-\\u1059\\u105e-\\u1060\\u1071-\\u1074' + '\\u1082\\u1085-\\u1086\\u108d\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17b4-\\u17b5' + '\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927-\\u1928\\u1932\\u1939-\\u193b\\u1a17-\\u1a18' + '\\u1a1b\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1ab0-\\u1abd\\u1ABE\\u1b00-\\u1b03\\u1b34' + '\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80-\\u1b81\\u1ba2-\\u1ba5\\u1ba8-\\u1ba9\\u1bab-\\u1bad\\u1be6\\u1be8-\\u1be9' + '\\u1bed\\u1bef-\\u1bf1\\u1c2c-\\u1c33\\u1c36-\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1cf4\\u1cf8-\\u1cf9' + '\\u1dc0-\\u1df5\\u1dfc-\\u1dff\\u200c-\\u200d\\u20d0-\\u20dc\\u20DD-\\u20E0\\u20e1\\u20E2-\\u20E4\\u20e5-\\u20f0\\u2cef-\\u2cf1' + '\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302d\\u302e-\\u302f\\u3099-\\u309a\\ua66f\\uA670-\\uA672\\ua674-\\ua67d\\ua69e-\\ua69f\\ua6f0-\\ua6f1' + '\\ua802\\ua806\\ua80b\\ua825-\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc' + '\\ua9e5\\uaa29-\\uaa2e\\uaa31-\\uaa32\\uaa35-\\uaa36\\uaa43\\uaa4c\\uaa7c\\uaab0\\uaab2-\\uaab4\\uaab7-\\uaab8\\uaabe-\\uaabf\\uaac1' + '\\uaaec-\\uaaed\\uaaf6\\uabe5\\uabe8\\uabed\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\uff9e-\\uff9f]');\n var isExtendingChar = function (ch) {\n return typeof ch === 'string' && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);\n };\n\n var lift2 = function (oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none();\n };\n var lift3 = function (oa, ob, oc, f) {\n return oa.isSome() && ob.isSome() && oc.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Option.none();\n };\n var someIf = function (b, a) {\n return b ? Option.some(a) : Option.none();\n };\n\n var slice$2 = [].slice;\n var or = function () {\n var x = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n x[_i] = arguments[_i];\n }\n var args = slice$2.call(arguments);\n return function (x) {\n for (var i = 0; i < args.length; i++) {\n if (args[i](x)) {\n return true;\n }\n }\n return false;\n };\n };\n var and = function () {\n var x = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n x[_i] = arguments[_i];\n }\n var args = slice$2.call(arguments);\n return function (x) {\n for (var i = 0; i < args.length; i++) {\n if (!args[i](x)) {\n return false;\n }\n }\n return true;\n };\n };\n var Predicate = {\n and: and,\n or: or\n };\n\n var isElement$3 = NodeType.isElement;\n var isCaretCandidate$1 = isCaretCandidate;\n var isBlock$1 = NodeType.matchStyleValues('display', 'block table');\n var isFloated = NodeType.matchStyleValues('float', 'left right');\n var isValidElementCaretCandidate = Predicate.and(isElement$3, isCaretCandidate$1, not(isFloated));\n var isNotPre = not(NodeType.matchStyleValues('white-space', 'pre pre-line pre-wrap'));\n var isText$4 = NodeType.isText;\n var isBr$3 = NodeType.isBr;\n var nodeIndex = DOMUtils$1.nodeIndex;\n var resolveIndex = getNode;\n var createRange = function (doc) {\n return 'createRange' in doc ? doc.createRange() : DOMUtils$1.DOM.createRng();\n };\n var isWhiteSpace = function (chr) {\n return chr && /[\\r\\n\\t ]/.test(chr);\n };\n var isRange = function (rng) {\n return !!rng.setStart && !!rng.setEnd;\n };\n var isHiddenWhiteSpaceRange = function (range) {\n var container = range.startContainer;\n var offset = range.startOffset;\n var text;\n if (isWhiteSpace(range.toString()) && isNotPre(container.parentNode) && NodeType.isText(container)) {\n text = container.data;\n if (isWhiteSpace(text[offset - 1]) || isWhiteSpace(text[offset + 1])) {\n return true;\n }\n }\n return false;\n };\n var getBrClientRect = function (brNode) {\n var doc = brNode.ownerDocument;\n var rng = createRange(doc);\n var nbsp = doc.createTextNode('\\xA0');\n var parentNode = brNode.parentNode;\n var clientRect;\n parentNode.insertBefore(nbsp, brNode);\n rng.setStart(nbsp, 0);\n rng.setEnd(nbsp, 1);\n clientRect = clone$1(rng.getBoundingClientRect());\n parentNode.removeChild(nbsp);\n return clientRect;\n };\n var getBoundingClientRectWebKitText = function (rng) {\n var sc = rng.startContainer;\n var ec = rng.endContainer;\n var so = rng.startOffset;\n var eo = rng.endOffset;\n if (sc === ec && NodeType.isText(ec) && so === 0 && eo === 1) {\n var newRng = rng.cloneRange();\n newRng.setEndAfter(ec);\n return getBoundingClientRect(newRng);\n } else {\n return null;\n }\n };\n var isZeroRect = function (r) {\n return r.left === 0 && r.right === 0 && r.top === 0 && r.bottom === 0;\n };\n var getBoundingClientRect = function (item) {\n var clientRect, clientRects;\n clientRects = item.getClientRects();\n if (clientRects.length > 0) {\n clientRect = clone$1(clientRects[0]);\n } else {\n clientRect = clone$1(item.getBoundingClientRect());\n }\n if (!isRange(item) && isBr$3(item) && isZeroRect(clientRect)) {\n return getBrClientRect(item);\n }\n if (isZeroRect(clientRect) && isRange(item)) {\n return getBoundingClientRectWebKitText(item);\n }\n return clientRect;\n };\n var collapseAndInflateWidth = function (clientRect, toStart) {\n var newClientRect = collapse(clientRect, toStart);\n newClientRect.width = 1;\n newClientRect.right = newClientRect.left + 1;\n return newClientRect;\n };\n var getCaretPositionClientRects = function (caretPosition) {\n var clientRects = [];\n var beforeNode, node;\n var addUniqueAndValidRect = function (clientRect) {\n if (clientRect.height === 0) {\n return;\n }\n if (clientRects.length > 0) {\n if (isEqual(clientRect, clientRects[clientRects.length - 1])) {\n return;\n }\n }\n clientRects.push(clientRect);\n };\n var addCharacterOffset = function (container, offset) {\n var range = createRange(container.ownerDocument);\n if (offset < container.data.length) {\n if (isExtendingChar(container.data[offset])) {\n return clientRects;\n }\n if (isExtendingChar(container.data[offset - 1])) {\n range.setStart(container, offset);\n range.setEnd(container, offset + 1);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), false));\n return clientRects;\n }\n }\n }\n if (offset > 0) {\n range.setStart(container, offset - 1);\n range.setEnd(container, offset);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), false));\n }\n }\n if (offset < container.data.length) {\n range.setStart(container, offset);\n range.setEnd(container, offset + 1);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), true));\n }\n }\n };\n if (isText$4(caretPosition.container())) {\n addCharacterOffset(caretPosition.container(), caretPosition.offset());\n return clientRects;\n }\n if (isElement$3(caretPosition.container())) {\n if (caretPosition.isAtEnd()) {\n node = resolveIndex(caretPosition.container(), caretPosition.offset());\n if (isText$4(node)) {\n addCharacterOffset(node, node.data.length);\n }\n if (isValidElementCaretCandidate(node) && !isBr$3(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), false));\n }\n } else {\n node = resolveIndex(caretPosition.container(), caretPosition.offset());\n if (isText$4(node)) {\n addCharacterOffset(node, 0);\n }\n if (isValidElementCaretCandidate(node) && caretPosition.isAtEnd()) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), false));\n return clientRects;\n }\n beforeNode = resolveIndex(caretPosition.container(), caretPosition.offset() - 1);\n if (isValidElementCaretCandidate(beforeNode) && !isBr$3(beforeNode)) {\n if (isBlock$1(beforeNode) || isBlock$1(node) || !isValidElementCaretCandidate(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(beforeNode), false));\n }\n }\n if (isValidElementCaretCandidate(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), true));\n }\n }\n }\n return clientRects;\n };\n function CaretPosition(container, offset, clientRects) {\n var isAtStart = function () {\n if (isText$4(container)) {\n return offset === 0;\n }\n return offset === 0;\n };\n var isAtEnd = function () {\n if (isText$4(container)) {\n return offset >= container.data.length;\n }\n return offset >= container.childNodes.length;\n };\n var toRange = function () {\n var range;\n range = createRange(container.ownerDocument);\n range.setStart(container, offset);\n range.setEnd(container, offset);\n return range;\n };\n var getClientRects = function () {\n if (!clientRects) {\n clientRects = getCaretPositionClientRects(CaretPosition(container, offset));\n }\n return clientRects;\n };\n var isVisible = function () {\n return getClientRects().length > 0;\n };\n var isEqual = function (caretPosition) {\n return caretPosition && container === caretPosition.container() && offset === caretPosition.offset();\n };\n var getNode = function (before) {\n return resolveIndex(container, before ? offset - 1 : offset);\n };\n return {\n container: constant(container),\n offset: constant(offset),\n toRange: toRange,\n getClientRects: getClientRects,\n isVisible: isVisible,\n isAtStart: isAtStart,\n isAtEnd: isAtEnd,\n isEqual: isEqual,\n getNode: getNode\n };\n }\n (function (CaretPosition) {\n CaretPosition.fromRangeStart = function (range) {\n return CaretPosition(range.startContainer, range.startOffset);\n };\n CaretPosition.fromRangeEnd = function (range) {\n return CaretPosition(range.endContainer, range.endOffset);\n };\n CaretPosition.after = function (node) {\n return CaretPosition(node.parentNode, nodeIndex(node) + 1);\n };\n CaretPosition.before = function (node) {\n return CaretPosition(node.parentNode, nodeIndex(node));\n };\n CaretPosition.isAbove = function (pos1, pos2) {\n return lift2(head(pos2.getClientRects()), last(pos1.getClientRects()), isAbove).getOr(false);\n };\n CaretPosition.isBelow = function (pos1, pos2) {\n return lift2(last(pos2.getClientRects()), head(pos1.getClientRects()), isBelow).getOr(false);\n };\n CaretPosition.isAtStart = function (pos) {\n return pos ? pos.isAtStart() : false;\n };\n CaretPosition.isAtEnd = function (pos) {\n return pos ? pos.isAtEnd() : false;\n };\n CaretPosition.isTextPosition = function (pos) {\n return pos ? NodeType.isText(pos.container()) : false;\n };\n CaretPosition.isElementPosition = function (pos) {\n return CaretPosition.isTextPosition(pos) === false;\n };\n }(CaretPosition || (CaretPosition = {})));\n var CaretPosition$1 = CaretPosition;\n\n var isText$5 = NodeType.isText;\n var isBogus$1 = NodeType.isBogus;\n var nodeIndex$1 = DOMUtils$1.nodeIndex;\n var normalizedParent = function (node) {\n var parentNode = node.parentNode;\n if (isBogus$1(parentNode)) {\n return normalizedParent(parentNode);\n }\n return parentNode;\n };\n var getChildNodes = function (node) {\n if (!node) {\n return [];\n }\n return ArrUtils.reduce(node.childNodes, function (result, node) {\n if (isBogus$1(node) && node.nodeName !== 'BR') {\n result = result.concat(getChildNodes(node));\n } else {\n result.push(node);\n }\n return result;\n }, []);\n };\n var normalizedTextOffset = function (node, offset) {\n while (node = node.previousSibling) {\n if (!isText$5(node)) {\n break;\n }\n offset += node.data.length;\n }\n return offset;\n };\n var equal = function (a) {\n return function (b) {\n return a === b;\n };\n };\n var normalizedNodeIndex = function (node) {\n var nodes, index, numTextFragments;\n nodes = getChildNodes(normalizedParent(node));\n index = ArrUtils.findIndex(nodes, equal(node), node);\n nodes = nodes.slice(0, index + 1);\n numTextFragments = ArrUtils.reduce(nodes, function (result, node, i) {\n if (isText$5(node) && isText$5(nodes[i - 1])) {\n result++;\n }\n return result;\n }, 0);\n nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames([node.nodeName]));\n index = ArrUtils.findIndex(nodes, equal(node), node);\n return index - numTextFragments;\n };\n var createPathItem = function (node) {\n var name;\n if (isText$5(node)) {\n name = 'text()';\n } else {\n name = node.nodeName.toLowerCase();\n }\n return name + '[' + normalizedNodeIndex(node) + ']';\n };\n var parentsUntil = function (root, node, predicate) {\n var parents = [];\n for (node = node.parentNode; node !== root; node = node.parentNode) {\n if (predicate && predicate(node)) {\n break;\n }\n parents.push(node);\n }\n return parents;\n };\n var create$2 = function (root, caretPosition) {\n var container, offset, path = [], outputOffset, childNodes, parents;\n container = caretPosition.container();\n offset = caretPosition.offset();\n if (isText$5(container)) {\n outputOffset = normalizedTextOffset(container, offset);\n } else {\n childNodes = container.childNodes;\n if (offset >= childNodes.length) {\n outputOffset = 'after';\n offset = childNodes.length - 1;\n } else {\n outputOffset = 'before';\n }\n container = childNodes[offset];\n }\n path.push(createPathItem(container));\n parents = parentsUntil(root, container);\n parents = ArrUtils.filter(parents, not(NodeType.isBogus));\n path = path.concat(ArrUtils.map(parents, function (node) {\n return createPathItem(node);\n }));\n return path.reverse().join('/') + ',' + outputOffset;\n };\n var resolvePathItem = function (node, name, index) {\n var nodes = getChildNodes(node);\n nodes = ArrUtils.filter(nodes, function (node, index) {\n return !isText$5(node) || !isText$5(nodes[index - 1]);\n });\n nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames([name]));\n return nodes[index];\n };\n var findTextPosition = function (container, offset) {\n var node = container, targetOffset = 0, dataLen;\n while (isText$5(node)) {\n dataLen = node.data.length;\n if (offset >= targetOffset && offset <= targetOffset + dataLen) {\n container = node;\n offset = offset - targetOffset;\n break;\n }\n if (!isText$5(node.nextSibling)) {\n container = node;\n offset = dataLen;\n break;\n }\n targetOffset += dataLen;\n node = node.nextSibling;\n }\n if (isText$5(container) && offset > container.data.length) {\n offset = container.data.length;\n }\n return CaretPosition$1(container, offset);\n };\n var resolve$1 = function (root, path) {\n var parts, container, offset;\n if (!path) {\n return null;\n }\n parts = path.split(',');\n path = parts[0].split('/');\n offset = parts.length > 1 ? parts[1] : 'before';\n container = ArrUtils.reduce(path, function (result, value) {\n value = /([\\w\\-\\(\\)]+)\\[([0-9]+)\\]/.exec(value);\n if (!value) {\n return null;\n }\n if (value[1] === 'text()') {\n value[1] = '#text';\n }\n return resolvePathItem(result, value[1], parseInt(value[2], 10));\n }, root);\n if (!container) {\n return null;\n }\n if (!isText$5(container)) {\n if (offset === 'after') {\n offset = nodeIndex$1(container) + 1;\n } else {\n offset = nodeIndex$1(container);\n }\n return CaretPosition$1(container.parentNode, offset);\n }\n return findTextPosition(container, parseInt(offset, 10));\n };\n\n var trimEmptyTextNode = function (dom, node) {\n if (NodeType.isText(node) && node.data.length === 0) {\n dom.remove(node);\n }\n };\n var insertNode = function (dom, rng, node) {\n rng.insertNode(node);\n trimEmptyTextNode(dom, node.previousSibling);\n trimEmptyTextNode(dom, node.nextSibling);\n };\n var insertFragment = function (dom, rng, frag) {\n var firstChild = Option.from(frag.firstChild);\n var lastChild = Option.from(frag.lastChild);\n rng.insertNode(frag);\n firstChild.each(function (child) {\n return trimEmptyTextNode(dom, child.previousSibling);\n });\n lastChild.each(function (child) {\n return trimEmptyTextNode(dom, child.nextSibling);\n });\n };\n var rangeInsertNode = function (dom, rng, node) {\n if (NodeType.isDocumentFragment(node)) {\n insertFragment(dom, rng, node);\n } else {\n insertNode(dom, rng, node);\n }\n };\n\n var isContentEditableFalse$2 = NodeType.isContentEditableFalse;\n var getNormalizedTextOffset = function (trim, container, offset) {\n var node, trimmedOffset;\n trimmedOffset = trim(container.data.slice(0, offset)).length;\n for (node = container.previousSibling; node && NodeType.isText(node); node = node.previousSibling) {\n trimmedOffset += trim(node.data).length;\n }\n return trimmedOffset;\n };\n var getPoint = function (dom, trim, normalized, rng, start) {\n var container = rng[start ? 'startContainer' : 'endContainer'];\n var offset = rng[start ? 'startOffset' : 'endOffset'];\n var point = [];\n var childNodes, after = 0;\n var root = dom.getRoot();\n if (NodeType.isText(container)) {\n point.push(normalized ? getNormalizedTextOffset(trim, container, offset) : offset);\n } else {\n childNodes = container.childNodes;\n if (offset >= childNodes.length && childNodes.length) {\n after = 1;\n offset = Math.max(0, childNodes.length - 1);\n }\n point.push(dom.nodeIndex(childNodes[offset], normalized) + after);\n }\n for (; container && container !== root; container = container.parentNode) {\n point.push(dom.nodeIndex(container, normalized));\n }\n return point;\n };\n var getLocation = function (trim, selection, normalized, rng) {\n var dom = selection.dom, bookmark = {};\n bookmark.start = getPoint(dom, trim, normalized, rng, true);\n if (!selection.isCollapsed()) {\n bookmark.end = getPoint(dom, trim, normalized, rng, false);\n }\n return bookmark;\n };\n var findIndex$2 = function (dom, name, element) {\n var count = 0;\n Tools.each(dom.select(name), function (node) {\n if (node.getAttribute('data-mce-bogus') === 'all') {\n return;\n }\n if (node === element) {\n return false;\n }\n count++;\n });\n return count;\n };\n var moveEndPoint = function (rng, start) {\n var container, offset, childNodes;\n var prefix = start ? 'start' : 'end';\n container = rng[prefix + 'Container'];\n offset = rng[prefix + 'Offset'];\n if (NodeType.isElement(container) && container.nodeName === 'TR') {\n childNodes = container.childNodes;\n container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)];\n if (container) {\n offset = start ? 0 : container.childNodes.length;\n rng['set' + (start ? 'Start' : 'End')](container, offset);\n }\n }\n };\n var normalizeTableCellSelection = function (rng) {\n moveEndPoint(rng, true);\n moveEndPoint(rng, false);\n return rng;\n };\n var findSibling = function (node, offset) {\n var sibling;\n if (NodeType.isElement(node)) {\n node = getNode(node, offset);\n if (isContentEditableFalse$2(node)) {\n return node;\n }\n }\n if (isCaretContainer(node)) {\n if (NodeType.isText(node) && isCaretContainerBlock(node)) {\n node = node.parentNode;\n }\n sibling = node.previousSibling;\n if (isContentEditableFalse$2(sibling)) {\n return sibling;\n }\n sibling = node.nextSibling;\n if (isContentEditableFalse$2(sibling)) {\n return sibling;\n }\n }\n };\n var findAdjacentContentEditableFalseElm = function (rng) {\n return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset);\n };\n var getOffsetBookmark = function (trim, normalized, selection) {\n var element = selection.getNode();\n var name = element ? element.nodeName : null;\n var rng = selection.getRng();\n if (isContentEditableFalse$2(element) || name === 'IMG') {\n return {\n name: name,\n index: findIndex$2(selection.dom, name, element)\n };\n }\n var sibling = findAdjacentContentEditableFalseElm(rng);\n if (sibling) {\n name = sibling.tagName;\n return {\n name: name,\n index: findIndex$2(selection.dom, name, sibling)\n };\n }\n return getLocation(trim, selection, normalized, rng);\n };\n var getCaretBookmark = function (selection) {\n var rng = selection.getRng();\n return {\n start: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeStart(rng)),\n end: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeEnd(rng))\n };\n };\n var getRangeBookmark = function (selection) {\n return { rng: selection.getRng() };\n };\n var createBookmarkSpan = function (dom, id, filled) {\n var args = {\n 'data-mce-type': 'bookmark',\n 'id': id,\n 'style': 'overflow:hidden;line-height:0px'\n };\n return filled ? dom.create('span', args, '&#xFEFF;') : dom.create('span', args);\n };\n var getPersistentBookmark = function (selection, filled) {\n var dom = selection.dom;\n var rng = selection.getRng();\n var id = dom.uniqueId();\n var collapsed = selection.isCollapsed();\n var element = selection.getNode();\n var name = element.nodeName;\n if (name === 'IMG') {\n return {\n name: name,\n index: findIndex$2(dom, name, element)\n };\n }\n var rng2 = normalizeTableCellSelection(rng.cloneRange());\n if (!collapsed) {\n rng2.collapse(false);\n var endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled);\n rangeInsertNode(dom, rng2, endBookmarkNode);\n }\n rng = normalizeTableCellSelection(rng);\n rng.collapse(true);\n var startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled);\n rangeInsertNode(dom, rng, startBookmarkNode);\n selection.moveToBookmark({\n id: id,\n keep: 1\n });\n return { id: id };\n };\n var getBookmark = function (selection, type, normalized) {\n if (type === 2) {\n return getOffsetBookmark(Zwsp.trim, normalized, selection);\n } else if (type === 3) {\n return getCaretBookmark(selection);\n } else if (type) {\n return getRangeBookmark(selection);\n } else {\n return getPersistentBookmark(selection, false);\n }\n };\n var GetBookmark = {\n getBookmark: getBookmark,\n getUndoBookmark: curry(getOffsetBookmark, identity, true),\n getPersistentBookmark: getPersistentBookmark\n };\n\n var CARET_ID = '_mce_caret';\n var isCaretNode = function (node) {\n return NodeType.isElement(node) && node.id === CARET_ID;\n };\n var getParentCaretContainer = function (body, node) {\n while (node && node !== body) {\n if (node.id === CARET_ID) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n\n var isElement$4 = NodeType.isElement;\n var isText$6 = NodeType.isText;\n var removeNode = function (node) {\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.removeChild(node);\n }\n };\n var getNodeValue = function (node) {\n try {\n return node.nodeValue;\n } catch (ex) {\n return '';\n }\n };\n var setNodeValue = function (node, text) {\n if (text.length === 0) {\n removeNode(node);\n } else {\n node.nodeValue = text;\n }\n };\n var trimCount = function (text) {\n var trimmedText = Zwsp.trim(text);\n return {\n count: text.length - trimmedText.length,\n text: trimmedText\n };\n };\n var removeUnchanged = function (caretContainer, pos) {\n remove$5(caretContainer);\n return pos;\n };\n var removeTextAndReposition = function (caretContainer, pos) {\n var before = trimCount(caretContainer.data.substr(0, pos.offset()));\n var after = trimCount(caretContainer.data.substr(pos.offset()));\n var text = before.text + after.text;\n if (text.length > 0) {\n setNodeValue(caretContainer, text);\n return CaretPosition$1(caretContainer, pos.offset() - before.count);\n } else {\n return pos;\n }\n };\n var removeElementAndReposition = function (caretContainer, pos) {\n var parentNode = pos.container();\n var newPosition = indexOf(from$1(parentNode.childNodes), caretContainer).map(function (index) {\n return index < pos.offset() ? CaretPosition$1(parentNode, pos.offset() - 1) : pos;\n }).getOr(pos);\n remove$5(caretContainer);\n return newPosition;\n };\n var removeTextCaretContainer = function (caretContainer, pos) {\n return isText$6(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n };\n var removeElementCaretContainer = function (caretContainer, pos) {\n return pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n };\n var removeAndReposition = function (container, pos) {\n return CaretPosition$1.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos);\n };\n var remove$5 = function (caretContainerNode) {\n if (isElement$4(caretContainerNode) && isCaretContainer(caretContainerNode)) {\n if (hasContent(caretContainerNode)) {\n caretContainerNode.removeAttribute('data-mce-caret');\n } else {\n removeNode(caretContainerNode);\n }\n }\n if (isText$6(caretContainerNode)) {\n var text = Zwsp.trim(getNodeValue(caretContainerNode));\n setNodeValue(caretContainerNode, text);\n }\n };\n var CaretContainerRemove = {\n removeAndReposition: removeAndReposition,\n remove: remove$5\n };\n\n var browser$3 = detect$3().browser;\n var isContentEditableFalse$3 = NodeType.isContentEditableFalse;\n var isTableCell$1 = function (node) {\n return NodeType.isElement(node) && /^(TD|TH)$/i.test(node.tagName);\n };\n var getAbsoluteClientRect = function (root, element, before) {\n var clientRect = collapse(element.getBoundingClientRect(), before);\n var docElm, scrollX, scrollY, margin, rootRect;\n if (root.tagName === 'BODY') {\n docElm = root.ownerDocument.documentElement;\n scrollX = root.scrollLeft || docElm.scrollLeft;\n scrollY = root.scrollTop || docElm.scrollTop;\n } else {\n rootRect = root.getBoundingClientRect();\n scrollX = root.scrollLeft - rootRect.left;\n scrollY = root.scrollTop - rootRect.top;\n }\n clientRect.left += scrollX;\n clientRect.right += scrollX;\n clientRect.top += scrollY;\n clientRect.bottom += scrollY;\n clientRect.width = 1;\n margin = element.offsetWidth - element.clientWidth;\n if (margin > 0) {\n if (before) {\n margin *= -1;\n }\n clientRect.left += margin;\n clientRect.right += margin;\n }\n return clientRect;\n };\n var trimInlineCaretContainers = function (root) {\n var contentEditableFalseNodes, node, sibling, i, data;\n contentEditableFalseNodes = DomQuery('*[contentEditable=false]', root);\n for (i = 0; i < contentEditableFalseNodes.length; i++) {\n node = contentEditableFalseNodes[i];\n sibling = node.previousSibling;\n if (endsWithCaretContainer(sibling)) {\n data = sibling.data;\n if (data.length === 1) {\n sibling.parentNode.removeChild(sibling);\n } else {\n sibling.deleteData(data.length - 1, 1);\n }\n }\n sibling = node.nextSibling;\n if (startsWithCaretContainer(sibling)) {\n data = sibling.data;\n if (data.length === 1) {\n sibling.parentNode.removeChild(sibling);\n } else {\n sibling.deleteData(0, 1);\n }\n }\n }\n };\n var FakeCaret = function (root, isBlock, hasFocus) {\n var lastVisualCaret = Cell(Option.none());\n var cursorInterval, caretContainerNode;\n var show = function (before, element) {\n var clientRect, rng;\n hide();\n if (isTableCell$1(element)) {\n return null;\n }\n if (isBlock(element)) {\n caretContainerNode = insertBlock('p', element, before);\n clientRect = getAbsoluteClientRect(root, element, before);\n DomQuery(caretContainerNode).css('top', clientRect.top);\n var caret = DomQuery('<div class=\"mce-visual-caret\" data-mce-bogus=\"all\"></div>').css(clientRect).appendTo(root)[0];\n lastVisualCaret.set(Option.some({\n caret: caret,\n element: element,\n before: before\n }));\n lastVisualCaret.get().each(function (caretState) {\n if (before) {\n DomQuery(caretState.caret).addClass('mce-visual-caret-before');\n }\n });\n startBlink();\n rng = element.ownerDocument.createRange();\n rng.setStart(caretContainerNode, 0);\n rng.setEnd(caretContainerNode, 0);\n } else {\n caretContainerNode = insertInline(element, before);\n rng = element.ownerDocument.createRange();\n if (isContentEditableFalse$3(caretContainerNode.nextSibling)) {\n rng.setStart(caretContainerNode, 0);\n rng.setEnd(caretContainerNode, 0);\n } else {\n rng.setStart(caretContainerNode, 1);\n rng.setEnd(caretContainerNode, 1);\n }\n return rng;\n }\n return rng;\n };\n var hide = function () {\n trimInlineCaretContainers(root);\n if (caretContainerNode) {\n CaretContainerRemove.remove(caretContainerNode);\n caretContainerNode = null;\n }\n lastVisualCaret.get().each(function (caretState) {\n DomQuery(caretState.caret).remove();\n lastVisualCaret.set(Option.none());\n });\n Delay.clearInterval(cursorInterval);\n };\n var startBlink = function () {\n cursorInterval = Delay.setInterval(function () {\n if (hasFocus()) {\n DomQuery('div.mce-visual-caret', root).toggleClass('mce-visual-caret-hidden');\n } else {\n DomQuery('div.mce-visual-caret', root).addClass('mce-visual-caret-hidden');\n }\n }, 500);\n };\n var reposition = function () {\n lastVisualCaret.get().each(function (caretState) {\n var clientRect = getAbsoluteClientRect(root, caretState.element, caretState.before);\n DomQuery(caretState.caret).css(__assign({}, clientRect));\n });\n };\n var destroy = function () {\n return Delay.clearInterval(cursorInterval);\n };\n var getCss = function () {\n return '.mce-visual-caret {' + 'position: absolute;' + 'background-color: black;' + 'background-color: currentcolor;' + '}' + '.mce-visual-caret-hidden {' + 'display: none;' + '}' + '*[data-mce-caret] {' + 'position: absolute;' + 'left: -1000px;' + 'right: auto;' + 'top: 0;' + 'margin: 0;' + 'padding: 0;' + '}';\n };\n return {\n show: show,\n hide: hide,\n getCss: getCss,\n reposition: reposition,\n destroy: destroy\n };\n };\n var isFakeCaretTableBrowser = function () {\n return browser$3.isIE() || browser$3.isEdge() || browser$3.isFirefox();\n };\n var isFakeCaretTarget = function (node) {\n return isContentEditableFalse$3(node) || NodeType.isTable(node) && isFakeCaretTableBrowser();\n };\n\n var isContentEditableFalse$4 = NodeType.isContentEditableFalse;\n var isBlockLike = NodeType.matchStyleValues('display', 'block table table-cell table-caption list-item');\n var isCaretContainer$2 = isCaretContainer;\n var isCaretContainerBlock$1 = isCaretContainerBlock;\n var isElement$5 = NodeType.isElement;\n var isCaretCandidate$2 = isCaretCandidate;\n var isForwards = function (direction) {\n return direction > 0;\n };\n var isBackwards = function (direction) {\n return direction < 0;\n };\n var skipCaretContainers = function (walk, shallow) {\n var node;\n while (node = walk(shallow)) {\n if (!isCaretContainerBlock$1(node)) {\n return node;\n }\n }\n return null;\n };\n var findNode = function (node, direction, predicateFn, rootNode, shallow) {\n var walker = new TreeWalker(node, rootNode);\n if (isBackwards(direction)) {\n if (isContentEditableFalse$4(node) || isCaretContainerBlock$1(node)) {\n node = skipCaretContainers(walker.prev, true);\n if (predicateFn(node)) {\n return node;\n }\n }\n while (node = skipCaretContainers(walker.prev, shallow)) {\n if (predicateFn(node)) {\n return node;\n }\n }\n }\n if (isForwards(direction)) {\n if (isContentEditableFalse$4(node) || isCaretContainerBlock$1(node)) {\n node = skipCaretContainers(walker.next, true);\n if (predicateFn(node)) {\n return node;\n }\n }\n while (node = skipCaretContainers(walker.next, shallow)) {\n if (predicateFn(node)) {\n return node;\n }\n }\n }\n return null;\n };\n var getParentBlock = function (node, rootNode) {\n while (node && node !== rootNode) {\n if (isBlockLike(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var isInSameBlock = function (caretPosition1, caretPosition2, rootNode) {\n return getParentBlock(caretPosition1.container(), rootNode) === getParentBlock(caretPosition2.container(), rootNode);\n };\n var getChildNodeAtRelativeOffset = function (relativeOffset, caretPosition) {\n var container, offset;\n if (!caretPosition) {\n return null;\n }\n container = caretPosition.container();\n offset = caretPosition.offset();\n if (!isElement$5(container)) {\n return null;\n }\n return container.childNodes[offset + relativeOffset];\n };\n var beforeAfter = function (before, node) {\n var range = node.ownerDocument.createRange();\n if (before) {\n range.setStartBefore(node);\n range.setEndBefore(node);\n } else {\n range.setStartAfter(node);\n range.setEndAfter(node);\n }\n return range;\n };\n var isNodesInSameBlock = function (root, node1, node2) {\n return getParentBlock(node1, root) === getParentBlock(node2, root);\n };\n var lean = function (left, root, node) {\n var sibling, siblingName;\n if (left) {\n siblingName = 'previousSibling';\n } else {\n siblingName = 'nextSibling';\n }\n while (node && node !== root) {\n sibling = node[siblingName];\n if (isCaretContainer$2(sibling)) {\n sibling = sibling[siblingName];\n }\n if (isContentEditableFalse$4(sibling)) {\n if (isNodesInSameBlock(root, sibling, node)) {\n return sibling;\n }\n break;\n }\n if (isCaretCandidate$2(sibling)) {\n break;\n }\n node = node.parentNode;\n }\n return null;\n };\n var before$2 = curry(beforeAfter, true);\n var after$1 = curry(beforeAfter, false);\n var normalizeRange = function (direction, root, range) {\n var node, container, offset, location;\n var leanLeft = curry(lean, true, root);\n var leanRight = curry(lean, false, root);\n container = range.startContainer;\n offset = range.startOffset;\n if (isCaretContainerBlock(container)) {\n if (!isElement$5(container)) {\n container = container.parentNode;\n }\n location = container.getAttribute('data-mce-caret');\n if (location === 'before') {\n node = container.nextSibling;\n if (isFakeCaretTarget(node)) {\n return before$2(node);\n }\n }\n if (location === 'after') {\n node = container.previousSibling;\n if (isFakeCaretTarget(node)) {\n return after$1(node);\n }\n }\n }\n if (!range.collapsed) {\n return range;\n }\n if (NodeType.isText(container)) {\n if (isCaretContainer$2(container)) {\n if (direction === 1) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n node = leanLeft(container);\n if (node) {\n return after$1(node);\n }\n }\n if (direction === -1) {\n node = leanLeft(container);\n if (node) {\n return after$1(node);\n }\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n }\n return range;\n }\n if (endsWithCaretContainer(container) && offset >= container.data.length - 1) {\n if (direction === 1) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n }\n return range;\n }\n if (startsWithCaretContainer(container) && offset <= 1) {\n if (direction === -1) {\n node = leanLeft(container);\n if (node) {\n return after$1(node);\n }\n }\n return range;\n }\n if (offset === container.data.length) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n return range;\n }\n if (offset === 0) {\n node = leanLeft(container);\n if (node) {\n return after$1(node);\n }\n return range;\n }\n }\n return range;\n };\n var getRelativeCefElm = function (forward, caretPosition) {\n return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition)).filter(isContentEditableFalse$4);\n };\n var getNormalizedRangeEndPoint = function (direction, root, range) {\n var normalizedRange = normalizeRange(direction, root, range);\n if (direction === -1) {\n return CaretPosition.fromRangeStart(normalizedRange);\n }\n return CaretPosition.fromRangeEnd(normalizedRange);\n };\n var getElementFromPosition = function (pos) {\n return Option.from(pos.getNode()).map(Element.fromDom);\n };\n var getElementFromPrevPosition = function (pos) {\n return Option.from(pos.getNode(true)).map(Element.fromDom);\n };\n var getVisualCaretPosition = function (walkFn, caretPosition) {\n while (caretPosition = walkFn(caretPosition)) {\n if (caretPosition.isVisible()) {\n return caretPosition;\n }\n }\n return caretPosition;\n };\n var isMoveInsideSameBlock = function (from, to) {\n var inSameBlock = isInSameBlock(from, to);\n if (!inSameBlock && NodeType.isBr(from.getNode())) {\n return true;\n }\n return inSameBlock;\n };\n\n var HDirection;\n (function (HDirection) {\n HDirection[HDirection['Backwards'] = -1] = 'Backwards';\n HDirection[HDirection['Forwards'] = 1] = 'Forwards';\n }(HDirection || (HDirection = {})));\n var isContentEditableFalse$5 = NodeType.isContentEditableFalse;\n var isText$7 = NodeType.isText;\n var isElement$6 = NodeType.isElement;\n var isBr$4 = NodeType.isBr;\n var isCaretCandidate$3 = isCaretCandidate;\n var isAtomic$1 = isAtomic;\n var isEditableCaretCandidate$1 = isEditableCaretCandidate;\n var getParents = function (node, root) {\n var parents = [];\n while (node && node !== root) {\n parents.push(node);\n node = node.parentNode;\n }\n return parents;\n };\n var nodeAtIndex = function (container, offset) {\n if (container.hasChildNodes() && offset < container.childNodes.length) {\n return container.childNodes[offset];\n }\n return null;\n };\n var getCaretCandidatePosition = function (direction, node) {\n if (isForwards(direction)) {\n if (isCaretCandidate$3(node.previousSibling) && !isText$7(node.previousSibling)) {\n return CaretPosition$1.before(node);\n }\n if (isText$7(node)) {\n return CaretPosition$1(node, 0);\n }\n }\n if (isBackwards(direction)) {\n if (isCaretCandidate$3(node.nextSibling) && !isText$7(node.nextSibling)) {\n return CaretPosition$1.after(node);\n }\n if (isText$7(node)) {\n return CaretPosition$1(node, node.data.length);\n }\n }\n if (isBackwards(direction)) {\n if (isBr$4(node)) {\n return CaretPosition$1.before(node);\n }\n return CaretPosition$1.after(node);\n }\n return CaretPosition$1.before(node);\n };\n var moveForwardFromBr = function (root, nextNode) {\n var nextSibling = nextNode.nextSibling;\n if (nextSibling && isCaretCandidate$3(nextSibling)) {\n if (isText$7(nextSibling)) {\n return CaretPosition$1(nextSibling, 0);\n } else {\n return CaretPosition$1.before(nextSibling);\n }\n } else {\n return findCaretPosition(HDirection.Forwards, CaretPosition$1.after(nextNode), root);\n }\n };\n var findCaretPosition = function (direction, startPos, root) {\n var node, nextNode, innerNode;\n var rootContentEditableFalseElm, caretPosition;\n if (!isElement$6(root) || !startPos) {\n return null;\n }\n if (startPos.isEqual(CaretPosition$1.after(root)) && root.lastChild) {\n caretPosition = CaretPosition$1.after(root.lastChild);\n if (isBackwards(direction) && isCaretCandidate$3(root.lastChild) && isElement$6(root.lastChild)) {\n return isBr$4(root.lastChild) ? CaretPosition$1.before(root.lastChild) : caretPosition;\n }\n } else {\n caretPosition = startPos;\n }\n var container = caretPosition.container();\n var offset = caretPosition.offset();\n if (isText$7(container)) {\n if (isBackwards(direction) && offset > 0) {\n return CaretPosition$1(container, --offset);\n }\n if (isForwards(direction) && offset < container.length) {\n return CaretPosition$1(container, ++offset);\n }\n node = container;\n } else {\n if (isBackwards(direction) && offset > 0) {\n nextNode = nodeAtIndex(container, offset - 1);\n if (isCaretCandidate$3(nextNode)) {\n if (!isAtomic$1(nextNode)) {\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);\n if (innerNode) {\n if (isText$7(innerNode)) {\n return CaretPosition$1(innerNode, innerNode.data.length);\n }\n return CaretPosition$1.after(innerNode);\n }\n }\n if (isText$7(nextNode)) {\n return CaretPosition$1(nextNode, nextNode.data.length);\n }\n return CaretPosition$1.before(nextNode);\n }\n }\n if (isForwards(direction) && offset < container.childNodes.length) {\n nextNode = nodeAtIndex(container, offset);\n if (isCaretCandidate$3(nextNode)) {\n if (isBr$4(nextNode)) {\n return moveForwardFromBr(root, nextNode);\n }\n if (!isAtomic$1(nextNode)) {\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);\n if (innerNode) {\n if (isText$7(innerNode)) {\n return CaretPosition$1(innerNode, 0);\n }\n return CaretPosition$1.before(innerNode);\n }\n }\n if (isText$7(nextNode)) {\n return CaretPosition$1(nextNode, 0);\n }\n return CaretPosition$1.after(nextNode);\n }\n }\n node = nextNode ? nextNode : caretPosition.getNode();\n }\n if (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart()) {\n node = findNode(node, direction, constant(true), root, true);\n if (isEditableCaretCandidate$1(node, root)) {\n return getCaretCandidatePosition(direction, node);\n }\n }\n nextNode = findNode(node, direction, isEditableCaretCandidate$1, root);\n rootContentEditableFalseElm = ArrUtils.last(filter(getParents(container, root), isContentEditableFalse$5));\n if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {\n if (isForwards(direction)) {\n caretPosition = CaretPosition$1.after(rootContentEditableFalseElm);\n } else {\n caretPosition = CaretPosition$1.before(rootContentEditableFalseElm);\n }\n return caretPosition;\n }\n if (nextNode) {\n return getCaretCandidatePosition(direction, nextNode);\n }\n return null;\n };\n var CaretWalker = function (root) {\n return {\n next: function (caretPosition) {\n return findCaretPosition(HDirection.Forwards, caretPosition, root);\n },\n prev: function (caretPosition) {\n return findCaretPosition(HDirection.Backwards, caretPosition, root);\n }\n };\n };\n\n var walkToPositionIn = function (forward, root, start) {\n var position = forward ? CaretPosition$1.before(start) : CaretPosition$1.after(start);\n return fromPosition(forward, root, position);\n };\n var afterElement = function (node) {\n return NodeType.isBr(node) ? CaretPosition$1.before(node) : CaretPosition$1.after(node);\n };\n var isBeforeOrStart = function (position) {\n if (CaretPosition$1.isTextPosition(position)) {\n return position.offset() === 0;\n } else {\n return isCaretCandidate(position.getNode());\n }\n };\n var isAfterOrEnd = function (position) {\n if (CaretPosition$1.isTextPosition(position)) {\n var container = position.container();\n return position.offset() === container.data.length;\n } else {\n return isCaretCandidate(position.getNode(true));\n }\n };\n var isBeforeAfterSameElement = function (from, to) {\n return !CaretPosition$1.isTextPosition(from) && !CaretPosition$1.isTextPosition(to) && from.getNode() === to.getNode(true);\n };\n var isAtBr = function (position) {\n return !CaretPosition$1.isTextPosition(position) && NodeType.isBr(position.getNode());\n };\n var shouldSkipPosition = function (forward, from, to) {\n if (forward) {\n return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to);\n } else {\n return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to);\n }\n };\n var fromPosition = function (forward, root, pos) {\n var walker = CaretWalker(root);\n return Option.from(forward ? walker.next(pos) : walker.prev(pos));\n };\n var navigate = function (forward, root, from) {\n return fromPosition(forward, root, from).bind(function (to) {\n if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) {\n return fromPosition(forward, root, to);\n } else {\n return Option.some(to);\n }\n });\n };\n var navigateIgnore = function (forward, root, from, ignoreFilter) {\n return navigate(forward, root, from).bind(function (pos) {\n return ignoreFilter(pos) ? navigateIgnore(forward, root, pos, ignoreFilter) : Option.some(pos);\n });\n };\n var positionIn = function (forward, element) {\n var startNode = forward ? element.firstChild : element.lastChild;\n if (NodeType.isText(startNode)) {\n return Option.some(CaretPosition$1(startNode, forward ? 0 : startNode.data.length));\n } else if (startNode) {\n if (isCaretCandidate(startNode)) {\n return Option.some(forward ? CaretPosition$1.before(startNode) : afterElement(startNode));\n } else {\n return walkToPositionIn(forward, element, startNode);\n }\n } else {\n return Option.none();\n }\n };\n var nextPosition = curry(fromPosition, true);\n var prevPosition = curry(fromPosition, false);\n var CaretFinder = {\n fromPosition: fromPosition,\n nextPosition: nextPosition,\n prevPosition: prevPosition,\n navigate: navigate,\n navigateIgnore: navigateIgnore,\n positionIn: positionIn,\n firstPositionIn: curry(positionIn, true),\n lastPositionIn: curry(positionIn, false)\n };\n\n var isStringPathBookmark = function (bookmark) {\n return typeof bookmark.start === 'string';\n };\n var isRangeBookmark = function (bookmark) {\n return bookmark.hasOwnProperty('rng');\n };\n var isIdBookmark = function (bookmark) {\n return bookmark.hasOwnProperty('id');\n };\n var isIndexBookmark = function (bookmark) {\n return bookmark.hasOwnProperty('name');\n };\n var isPathBookmark = function (bookmark) {\n return Tools.isArray(bookmark.start);\n };\n\n var addBogus = function (dom, node) {\n if (NodeType.isElement(node) && dom.isBlock(node) && !node.innerHTML && !Env.ie) {\n node.innerHTML = '<br data-mce-bogus=\"1\" />';\n }\n return node;\n };\n var resolveCaretPositionBookmark = function (dom, bookmark) {\n var rng, pos;\n rng = dom.createRng();\n pos = resolve$1(dom.getRoot(), bookmark.start);\n rng.setStart(pos.container(), pos.offset());\n pos = resolve$1(dom.getRoot(), bookmark.end);\n rng.setEnd(pos.container(), pos.offset());\n return rng;\n };\n var insertZwsp = function (node, rng) {\n var textNode = node.ownerDocument.createTextNode(Zwsp.ZWSP);\n node.appendChild(textNode);\n rng.setStart(textNode, 0);\n rng.setEnd(textNode, 0);\n };\n var isEmpty = function (node) {\n return node.hasChildNodes() === false;\n };\n var tryFindRangePosition = function (node, rng) {\n return CaretFinder.lastPositionIn(node).fold(function () {\n return false;\n }, function (pos) {\n rng.setStart(pos.container(), pos.offset());\n rng.setEnd(pos.container(), pos.offset());\n return true;\n });\n };\n var padEmptyCaretContainer = function (root, node, rng) {\n if (isEmpty(node) && getParentCaretContainer(root, node)) {\n insertZwsp(node, rng);\n return true;\n } else {\n return false;\n }\n };\n var setEndPoint = function (dom, start, bookmark, rng) {\n var point = bookmark[start ? 'start' : 'end'];\n var i, node, offset, children;\n var root = dom.getRoot();\n if (point) {\n offset = point[0];\n for (node = root, i = point.length - 1; i >= 1; i--) {\n children = node.childNodes;\n if (padEmptyCaretContainer(root, node, rng)) {\n return true;\n }\n if (point[i] > children.length - 1) {\n if (padEmptyCaretContainer(root, node, rng)) {\n return true;\n }\n return tryFindRangePosition(node, rng);\n }\n node = children[point[i]];\n }\n if (node.nodeType === 3) {\n offset = Math.min(point[0], node.nodeValue.length);\n }\n if (node.nodeType === 1) {\n offset = Math.min(point[0], node.childNodes.length);\n }\n if (start) {\n rng.setStart(node, offset);\n } else {\n rng.setEnd(node, offset);\n }\n }\n return true;\n };\n var isValidTextNode = function (node) {\n return NodeType.isText(node) && node.data.length > 0;\n };\n var restoreEndPoint = function (dom, suffix, bookmark) {\n var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev;\n var keep = bookmark.keep;\n var container, offset;\n if (marker) {\n node = marker.parentNode;\n if (suffix === 'start') {\n if (!keep) {\n idx = dom.nodeIndex(marker);\n } else {\n if (marker.hasChildNodes()) {\n node = marker.firstChild;\n idx = 1;\n } else if (isValidTextNode(marker.nextSibling)) {\n node = marker.nextSibling;\n idx = 0;\n } else if (isValidTextNode(marker.previousSibling)) {\n node = marker.previousSibling;\n idx = marker.previousSibling.data.length;\n } else {\n node = marker.parentNode;\n idx = dom.nodeIndex(marker) + 1;\n }\n }\n container = node;\n offset = idx;\n } else {\n if (!keep) {\n idx = dom.nodeIndex(marker);\n } else {\n if (marker.hasChildNodes()) {\n node = marker.firstChild;\n idx = 1;\n } else if (isValidTextNode(marker.previousSibling)) {\n node = marker.previousSibling;\n idx = marker.previousSibling.data.length;\n } else {\n node = marker.parentNode;\n idx = dom.nodeIndex(marker);\n }\n }\n container = node;\n offset = idx;\n }\n if (!keep) {\n prev = marker.previousSibling;\n next = marker.nextSibling;\n Tools.each(Tools.grep(marker.childNodes), function (node) {\n if (NodeType.isText(node)) {\n node.nodeValue = node.nodeValue.replace(/\\uFEFF/g, '');\n }\n });\n while (marker = dom.get(bookmark.id + '_' + suffix)) {\n dom.remove(marker, true);\n }\n if (prev && next && prev.nodeType === next.nodeType && NodeType.isText(prev) && !Env.opera) {\n idx = prev.nodeValue.length;\n prev.appendData(next.nodeValue);\n dom.remove(next);\n if (suffix === 'start') {\n container = prev;\n offset = idx;\n } else {\n container = prev;\n offset = idx;\n }\n }\n }\n return Option.some(CaretPosition$1(container, offset));\n } else {\n return Option.none();\n }\n };\n var resolvePaths = function (dom, bookmark) {\n var rng = dom.createRng();\n if (setEndPoint(dom, true, bookmark, rng) && setEndPoint(dom, false, bookmark, rng)) {\n return Option.some(rng);\n } else {\n return Option.none();\n }\n };\n var resolveId = function (dom, bookmark) {\n var startPos = restoreEndPoint(dom, 'start', bookmark);\n var endPos = restoreEndPoint(dom, 'end', bookmark);\n return lift2(startPos, endPos.or(startPos), function (spos, epos) {\n var rng = dom.createRng();\n rng.setStart(addBogus(dom, spos.container()), spos.offset());\n rng.setEnd(addBogus(dom, epos.container()), epos.offset());\n return rng;\n });\n };\n var resolveIndex$1 = function (dom, bookmark) {\n return Option.from(dom.select(bookmark.name)[bookmark.index]).map(function (elm) {\n var rng = dom.createRng();\n rng.selectNode(elm);\n return rng;\n });\n };\n var resolve$2 = function (selection, bookmark) {\n var dom = selection.dom;\n if (bookmark) {\n if (isPathBookmark(bookmark)) {\n return resolvePaths(dom, bookmark);\n } else if (isStringPathBookmark(bookmark)) {\n return Option.some(resolveCaretPositionBookmark(dom, bookmark));\n } else if (isIdBookmark(bookmark)) {\n return resolveId(dom, bookmark);\n } else if (isIndexBookmark(bookmark)) {\n return resolveIndex$1(dom, bookmark);\n } else if (isRangeBookmark(bookmark)) {\n return Option.some(bookmark.rng);\n }\n }\n return Option.none();\n };\n var ResolveBookmark = { resolve: resolve$2 };\n\n var getBookmark$1 = function (selection, type, normalized) {\n return GetBookmark.getBookmark(selection, type, normalized);\n };\n var moveToBookmark = function (selection, bookmark) {\n ResolveBookmark.resolve(selection, bookmark).each(function (rng) {\n selection.setRng(rng);\n });\n };\n var isBookmarkNode$1 = function (node) {\n return NodeType.isElement(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\n };\n var Bookmarks = {\n getBookmark: getBookmark$1,\n moveToBookmark: moveToBookmark,\n isBookmarkNode: isBookmarkNode$1\n };\n\n var isInlineBlock = function (node) {\n return node && /^(IMG)$/.test(node.nodeName);\n };\n var moveStart = function (dom, selection, rng) {\n var offset = rng.startOffset;\n var container = rng.startContainer, walker, node, nodes;\n if (rng.startContainer === rng.endContainer) {\n if (isInlineBlock(rng.startContainer.childNodes[rng.startOffset])) {\n return;\n }\n }\n if (container.nodeType === 1) {\n nodes = container.childNodes;\n if (offset < nodes.length) {\n container = nodes[offset];\n walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));\n } else {\n container = nodes[nodes.length - 1];\n walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));\n walker.next(true);\n }\n for (node = walker.current(); node; node = walker.next()) {\n if (node.nodeType === 3 && !isWhiteSpaceNode(node)) {\n rng.setStart(node, 0);\n selection.setRng(rng);\n return;\n }\n }\n }\n };\n var getNonWhiteSpaceSibling = function (node, next, inc) {\n if (node) {\n next = next ? 'nextSibling' : 'previousSibling';\n for (node = inc ? node : node[next]; node; node = node[next]) {\n if (node.nodeType === 1 || !isWhiteSpaceNode(node)) {\n return node;\n }\n }\n }\n };\n var isTextBlock$1 = function (editor, name) {\n if (name.nodeType) {\n name = name.nodeName;\n }\n return !!editor.schema.getTextBlockElements()[name.toLowerCase()];\n };\n var isValid = function (ed, parent, child) {\n return ed.schema.isValidChild(parent, child);\n };\n var isWhiteSpaceNode = function (node) {\n return node && node.nodeType === 3 && /^([\\t \\r\\n]+|)$/.test(node.nodeValue);\n };\n var replaceVars = function (value, vars) {\n if (typeof value !== 'string') {\n value = value(vars);\n } else if (vars) {\n value = value.replace(/%(\\w+)/g, function (str, name) {\n return vars[name] || str;\n });\n }\n return value;\n };\n var isEq = function (str1, str2) {\n str1 = str1 || '';\n str2 = str2 || '';\n str1 = '' + (str1.nodeName || str1);\n str2 = '' + (str2.nodeName || str2);\n return str1.toLowerCase() === str2.toLowerCase();\n };\n var normalizeStyleValue = function (dom, value, name) {\n if (name === 'color' || name === 'backgroundColor') {\n value = dom.toHex(value);\n }\n if (name === 'fontWeight' && value === 700) {\n value = 'bold';\n }\n if (name === 'fontFamily') {\n value = value.replace(/[\\'\\\"]/g, '').replace(/,\\s+/g, ',');\n }\n return '' + value;\n };\n var getStyle = function (dom, node, name) {\n return normalizeStyleValue(dom, dom.getStyle(node, name), name);\n };\n var getTextDecoration = function (dom, node) {\n var decoration;\n dom.getParent(node, function (n) {\n decoration = dom.getStyle(n, 'text-decoration');\n return decoration && decoration !== 'none';\n });\n return decoration;\n };\n var getParents$1 = function (dom, node, selector) {\n return dom.getParents(node, selector, dom.getRoot());\n };\n var FormatUtils = {\n isInlineBlock: isInlineBlock,\n moveStart: moveStart,\n getNonWhiteSpaceSibling: getNonWhiteSpaceSibling,\n isTextBlock: isTextBlock$1,\n isValid: isValid,\n isWhiteSpaceNode: isWhiteSpaceNode,\n replaceVars: replaceVars,\n isEq: isEq,\n normalizeStyleValue: normalizeStyleValue,\n getStyle: getStyle,\n getTextDecoration: getTextDecoration,\n getParents: getParents$1\n };\n\n var isBookmarkNode$2 = Bookmarks.isBookmarkNode;\n var getParents$2 = FormatUtils.getParents, isWhiteSpaceNode$1 = FormatUtils.isWhiteSpaceNode, isTextBlock$2 = FormatUtils.isTextBlock;\n var findLeaf = function (node, offset) {\n if (typeof offset === 'undefined') {\n offset = node.nodeType === 3 ? node.length : node.childNodes.length;\n }\n while (node && node.hasChildNodes()) {\n node = node.childNodes[offset];\n if (node) {\n offset = node.nodeType === 3 ? node.length : node.childNodes.length;\n }\n }\n return {\n node: node,\n offset: offset\n };\n };\n var excludeTrailingWhitespace = function (endContainer, endOffset) {\n var leaf = findLeaf(endContainer, endOffset);\n if (leaf.node) {\n while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling) {\n leaf = findLeaf(leaf.node.previousSibling);\n }\n if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 && leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') {\n if (leaf.offset > 1) {\n endContainer = leaf.node;\n endContainer.splitText(leaf.offset - 1);\n }\n }\n }\n return endContainer;\n };\n var isBogusBr = function (node) {\n return node.nodeName === 'BR' && node.getAttribute('data-mce-bogus') && !node.nextSibling;\n };\n var findParentContentEditable = function (dom, node) {\n var parent = node;\n while (parent) {\n if (parent.nodeType === 1 && dom.getContentEditable(parent)) {\n return dom.getContentEditable(parent) === 'false' ? parent : node;\n }\n parent = parent.parentNode;\n }\n return node;\n };\n var findSpace = function (start, remove, node, offset) {\n var pos, pos2;\n var str = node.nodeValue;\n if (typeof offset === 'undefined') {\n offset = start ? str.length : 0;\n }\n if (start) {\n pos = str.lastIndexOf(' ', offset);\n pos2 = str.lastIndexOf('\\xA0', offset);\n pos = pos > pos2 ? pos : pos2;\n if (pos !== -1 && !remove && (pos < offset || !start) && pos <= str.length) {\n pos++;\n }\n } else {\n pos = str.indexOf(' ', offset);\n pos2 = str.indexOf('\\xA0', offset);\n pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2;\n }\n return pos;\n };\n var findWordEndPoint = function (dom, body, container, offset, start, remove) {\n var node, pos, lastTextNode;\n if (container.nodeType === 3) {\n pos = findSpace(start, remove, container, offset);\n if (pos !== -1) {\n return {\n container: container,\n offset: pos\n };\n }\n lastTextNode = container;\n }\n var walker = new TreeWalker(container, dom.getParent(container, dom.isBlock) || body);\n while (node = walker[start ? 'prev' : 'next']()) {\n if (node.nodeType === 3 && !isBookmarkNode$2(node.parentNode)) {\n lastTextNode = node;\n pos = findSpace(start, remove, node);\n if (pos !== -1) {\n return {\n container: node,\n offset: pos\n };\n }\n } else if (dom.isBlock(node) || FormatUtils.isEq(node, 'BR')) {\n break;\n }\n }\n if (lastTextNode) {\n if (start) {\n offset = 0;\n } else {\n offset = lastTextNode.length;\n }\n return {\n container: lastTextNode,\n offset: offset\n };\n }\n };\n var findSelectorEndPoint = function (dom, format, rng, container, siblingName) {\n var parents, i, y, curFormat;\n if (container.nodeType === 3 && container.nodeValue.length === 0 && container[siblingName]) {\n container = container[siblingName];\n }\n parents = getParents$2(dom, container);\n for (i = 0; i < parents.length; i++) {\n for (y = 0; y < format.length; y++) {\n curFormat = format[y];\n if ('collapsed' in curFormat && curFormat.collapsed !== rng.collapsed) {\n continue;\n }\n if (dom.is(parents[i], curFormat.selector)) {\n return parents[i];\n }\n }\n }\n return container;\n };\n var findBlockEndPoint = function (editor, format, container, siblingName) {\n var node;\n var dom = editor.dom;\n var root = dom.getRoot();\n if (!format[0].wrapper) {\n node = dom.getParent(container, format[0].block, root);\n }\n if (!node) {\n var scopeRoot = dom.getParent(container, 'LI,TD,TH');\n node = dom.getParent(container.nodeType === 3 ? container.parentNode : container, function (node) {\n return node !== root && isTextBlock$2(editor, node);\n }, scopeRoot);\n }\n if (node && format[0].wrapper) {\n node = getParents$2(dom, node, 'ul,ol').reverse()[0] || node;\n }\n if (!node) {\n node = container;\n while (node[siblingName] && !dom.isBlock(node[siblingName])) {\n node = node[siblingName];\n if (FormatUtils.isEq(node, 'br')) {\n break;\n }\n }\n }\n return node || container;\n };\n var findParentContainer = function (dom, format, startContainer, startOffset, endContainer, endOffset, start) {\n var container, parent, sibling, siblingName, root;\n container = parent = start ? startContainer : endContainer;\n siblingName = start ? 'previousSibling' : 'nextSibling';\n root = dom.getRoot();\n if (container.nodeType === 3 && !isWhiteSpaceNode$1(container)) {\n if (start ? startOffset > 0 : endOffset < container.nodeValue.length) {\n return container;\n }\n }\n while (true) {\n if (!format[0].block_expand && dom.isBlock(parent)) {\n return parent;\n }\n for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {\n if (!isBookmarkNode$2(sibling) && !isWhiteSpaceNode$1(sibling) && !isBogusBr(sibling)) {\n return parent;\n }\n }\n if (parent === root || parent.parentNode === root) {\n container = parent;\n break;\n }\n parent = parent.parentNode;\n }\n return container;\n };\n var expandRng = function (editor, rng, format, remove) {\n var endPoint, startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\n var dom = editor.dom;\n if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {\n startContainer = getNode(startContainer, startOffset);\n if (startContainer.nodeType === 3) {\n startOffset = 0;\n }\n }\n if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {\n endContainer = getNode(endContainer, rng.collapsed ? endOffset : endOffset - 1);\n if (endContainer.nodeType === 3) {\n endOffset = endContainer.nodeValue.length;\n }\n }\n startContainer = findParentContentEditable(dom, startContainer);\n endContainer = findParentContentEditable(dom, endContainer);\n if (isBookmarkNode$2(startContainer.parentNode) || isBookmarkNode$2(startContainer)) {\n startContainer = isBookmarkNode$2(startContainer) ? startContainer : startContainer.parentNode;\n if (rng.collapsed) {\n startContainer = startContainer.previousSibling || startContainer;\n } else {\n startContainer = startContainer.nextSibling || startContainer;\n }\n if (startContainer.nodeType === 3) {\n startOffset = rng.collapsed ? startContainer.length : 0;\n }\n }\n if (isBookmarkNode$2(endContainer.parentNode) || isBookmarkNode$2(endContainer)) {\n endContainer = isBookmarkNode$2(endContainer) ? endContainer : endContainer.parentNode;\n if (rng.collapsed) {\n endContainer = endContainer.nextSibling || endContainer;\n } else {\n endContainer = endContainer.previousSibling || endContainer;\n }\n if (endContainer.nodeType === 3) {\n endOffset = rng.collapsed ? 0 : endContainer.length;\n }\n }\n if (rng.collapsed) {\n endPoint = findWordEndPoint(dom, editor.getBody(), startContainer, startOffset, true, remove);\n if (endPoint) {\n startContainer = endPoint.container;\n startOffset = endPoint.offset;\n }\n endPoint = findWordEndPoint(dom, editor.getBody(), endContainer, endOffset, false, remove);\n if (endPoint) {\n endContainer = endPoint.container;\n endOffset = endPoint.offset;\n }\n }\n if (format[0].inline) {\n endContainer = remove ? endContainer : excludeTrailingWhitespace(endContainer, endOffset);\n }\n if (format[0].inline || format[0].block_expand) {\n if (!format[0].inline || (startContainer.nodeType !== 3 || startOffset === 0)) {\n startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);\n }\n if (!format[0].inline || (endContainer.nodeType !== 3 || endOffset === endContainer.nodeValue.length)) {\n endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);\n }\n }\n if (format[0].selector && format[0].expand !== false && !format[0].inline) {\n startContainer = findSelectorEndPoint(dom, format, rng, startContainer, 'previousSibling');\n endContainer = findSelectorEndPoint(dom, format, rng, endContainer, 'nextSibling');\n }\n if (format[0].block || format[0].selector) {\n startContainer = findBlockEndPoint(editor, format, startContainer, 'previousSibling');\n endContainer = findBlockEndPoint(editor, format, endContainer, 'nextSibling');\n if (format[0].block) {\n if (!dom.isBlock(startContainer)) {\n startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);\n }\n if (!dom.isBlock(endContainer)) {\n endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);\n }\n }\n }\n if (startContainer.nodeType === 1) {\n startOffset = dom.nodeIndex(startContainer);\n startContainer = startContainer.parentNode;\n }\n if (endContainer.nodeType === 1) {\n endOffset = dom.nodeIndex(endContainer) + 1;\n endContainer = endContainer.parentNode;\n }\n return {\n startContainer: startContainer,\n startOffset: startOffset,\n endContainer: endContainer,\n endOffset: endOffset\n };\n };\n var ExpandRange = { expandRng: expandRng };\n\n var each$8 = Tools.each;\n var getEndChild = function (container, index) {\n var childNodes = container.childNodes;\n index--;\n if (index > childNodes.length - 1) {\n index = childNodes.length - 1;\n } else if (index < 0) {\n index = 0;\n }\n return childNodes[index] || container;\n };\n var walk$1 = function (dom, rng, callback) {\n var startContainer = rng.startContainer;\n var startOffset = rng.startOffset;\n var endContainer = rng.endContainer;\n var endOffset = rng.endOffset;\n var ancestor;\n var startPoint;\n var endPoint;\n var node;\n var parent;\n var siblings;\n var nodes;\n nodes = dom.select('td[data-mce-selected],th[data-mce-selected]');\n if (nodes.length > 0) {\n each$8(nodes, function (node) {\n callback([node]);\n });\n return;\n }\n var exclude = function (nodes) {\n var node;\n node = nodes[0];\n if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) {\n nodes.splice(0, 1);\n }\n node = nodes[nodes.length - 1];\n if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) {\n nodes.splice(nodes.length - 1, 1);\n }\n return nodes;\n };\n var collectSiblings = function (node, name, endNode) {\n var siblings = [];\n for (; node && node !== endNode; node = node[name]) {\n siblings.push(node);\n }\n return siblings;\n };\n var findEndPoint = function (node, root) {\n do {\n if (node.parentNode === root) {\n return node;\n }\n node = node.parentNode;\n } while (node);\n };\n var walkBoundary = function (startNode, endNode, next) {\n var siblingName = next ? 'nextSibling' : 'previousSibling';\n for (node = startNode, parent = node.parentNode; node && node !== endNode; node = parent) {\n parent = node.parentNode;\n siblings = collectSiblings(node === startNode ? node : node[siblingName], siblingName);\n if (siblings.length) {\n if (!next) {\n siblings.reverse();\n }\n callback(exclude(siblings));\n }\n }\n };\n if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {\n startContainer = startContainer.childNodes[startOffset];\n }\n if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {\n endContainer = getEndChild(endContainer, endOffset);\n }\n if (startContainer === endContainer) {\n return callback(exclude([startContainer]));\n }\n ancestor = dom.findCommonAncestor(startContainer, endContainer);\n for (node = startContainer; node; node = node.parentNode) {\n if (node === endContainer) {\n return walkBoundary(startContainer, ancestor, true);\n }\n if (node === ancestor) {\n break;\n }\n }\n for (node = endContainer; node; node = node.parentNode) {\n if (node === startContainer) {\n return walkBoundary(endContainer, ancestor);\n }\n if (node === ancestor) {\n break;\n }\n }\n startPoint = findEndPoint(startContainer, ancestor) || startContainer;\n endPoint = findEndPoint(endContainer, ancestor) || endContainer;\n walkBoundary(startContainer, startPoint, true);\n siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint);\n if (siblings.length) {\n callback(exclude(siblings));\n }\n walkBoundary(endContainer, endPoint);\n };\n var RangeWalk = { walk: walk$1 };\n\n var zeroWidth = function () {\n return '\\uFEFF';\n };\n\n function NodeValue (is, name) {\n var get = function (element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n var getOption = function (element) {\n return is(element) ? Option.from(element.dom().nodeValue) : Option.none();\n };\n var set = function (element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom().nodeValue = value;\n };\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n }\n\n var api = NodeValue(isText$1, 'text');\n var get$6 = function (element) {\n return api.get(element);\n };\n\n var isZeroWidth = function (elem) {\n return isText$1(elem) && get$6(elem) === zeroWidth();\n };\n var context = function (editor, elem, wrapName, nodeName) {\n return parent(elem).fold(function () {\n return 'skipping';\n }, function (parent) {\n if (nodeName === 'br' || isZeroWidth(elem)) {\n return 'valid';\n } else if (isAnnotation(elem)) {\n return 'existing';\n } else if (isCaretNode(elem)) {\n return 'caret';\n } else if (!FormatUtils.isValid(editor, wrapName, nodeName) || !FormatUtils.isValid(editor, name(parent), wrapName)) {\n return 'invalid-child';\n } else {\n return 'valid';\n }\n });\n };\n\n var shouldApplyToTrailingSpaces = function (rng) {\n return rng.startContainer.nodeType === 3 && rng.startContainer.nodeValue.length >= rng.startOffset && rng.startContainer.nodeValue[rng.startOffset] === '\\xA0';\n };\n var applyWordGrab = function (editor, rng) {\n var r = ExpandRange.expandRng(editor, rng, [{ inline: true }], shouldApplyToTrailingSpaces(rng));\n rng.setStart(r.startContainer, r.startOffset);\n rng.setEnd(r.endContainer, r.endOffset);\n editor.selection.setRng(rng);\n };\n var makeAnnotation = function (eDoc, _a, annotationName, decorate) {\n var _b = _a.uid, uid = _b === void 0 ? generate('mce-annotation') : _b, data = __rest(_a, ['uid']);\n var master = Element.fromTag('span', eDoc);\n add$3(master, annotation());\n set(master, '' + dataAnnotationId(), uid);\n set(master, '' + dataAnnotation(), annotationName);\n var _c = decorate(uid, data), _d = _c.attributes, attributes = _d === void 0 ? {} : _d, _e = _c.classes, classes = _e === void 0 ? [] : _e;\n setAll(master, attributes);\n add$4(master, classes);\n return master;\n };\n var annotate = function (editor, rng, annotationName, decorate, data) {\n var newWrappers = [];\n var master = makeAnnotation(editor.getDoc(), data, annotationName, decorate);\n var wrapper = Cell(Option.none());\n var finishWrapper = function () {\n wrapper.set(Option.none());\n };\n var getOrOpenWrapper = function () {\n return wrapper.get().getOrThunk(function () {\n var nu = shallow(master);\n newWrappers.push(nu);\n wrapper.set(Option.some(nu));\n return nu;\n });\n };\n var processElements = function (elems) {\n each(elems, processElement);\n };\n var processElement = function (elem) {\n var ctx = context(editor, elem, 'span', name(elem));\n switch (ctx) {\n case 'invalid-child': {\n finishWrapper();\n var children$1 = children(elem);\n processElements(children$1);\n finishWrapper();\n break;\n }\n case 'valid': {\n var w = getOrOpenWrapper();\n wrap$1(elem, w);\n break;\n }\n case 'skipping':\n case 'existing':\n case 'caret':\n }\n };\n var processNodes = function (nodes) {\n var elems = map(nodes, Element.fromDom);\n processElements(elems);\n };\n RangeWalk.walk(editor.dom, rng, function (nodes) {\n finishWrapper();\n processNodes(nodes);\n });\n return newWrappers;\n };\n var annotateWithBookmark = function (editor, name, settings, data) {\n editor.undoManager.transact(function () {\n var initialRng = editor.selection.getRng();\n if (initialRng.collapsed) {\n applyWordGrab(editor, initialRng);\n }\n if (editor.selection.getRng().collapsed) {\n var wrapper = makeAnnotation(editor.getDoc(), data, name, settings.decorate);\n set$1(wrapper, '\\xA0');\n editor.selection.getRng().insertNode(wrapper.dom());\n editor.selection.select(wrapper.dom());\n } else {\n var bookmark = GetBookmark.getPersistentBookmark(editor.selection, false);\n var rng = editor.selection.getRng();\n annotate(editor, rng, name, settings.decorate, data);\n editor.selection.moveToBookmark(bookmark);\n }\n });\n };\n\n var Annotator = function (editor) {\n var registry = create$1();\n setup$1(editor, registry);\n var changes = setup(editor);\n return {\n register: function (name, settings) {\n registry.register(name, settings);\n },\n annotate: function (name, data) {\n registry.lookup(name).each(function (settings) {\n annotateWithBookmark(editor, name, settings, data);\n });\n },\n annotationChanged: function (name, callback) {\n changes.addListener(name, callback);\n },\n remove: function (name) {\n identify(editor, Option.some(name)).each(function (_a) {\n var elements = _a.elements;\n each(elements, unwrap);\n });\n },\n getAll: function (name) {\n var directory = findAll(editor, name);\n return map$1(directory, function (elems) {\n return map(elems, function (elem) {\n return elem.dom();\n });\n });\n }\n };\n };\n\n var whiteSpaceRegExp$3 = /^[ \\t\\r\\n]*$/;\n var typeLookup = {\n '#text': 3,\n '#comment': 8,\n '#cdata': 4,\n '#pi': 7,\n '#doctype': 10,\n '#document-fragment': 11\n };\n var walk$2 = function (node, root, prev) {\n var startName = prev ? 'lastChild' : 'firstChild';\n var siblingName = prev ? 'prev' : 'next';\n if (node[startName]) {\n return node[startName];\n }\n if (node !== root) {\n var sibling = node[siblingName];\n if (sibling) {\n return sibling;\n }\n for (var parent = node.parent; parent && parent !== root; parent = parent.parent) {\n sibling = parent[siblingName];\n if (sibling) {\n return sibling;\n }\n }\n }\n };\n var Node$1 = function () {\n function Node(name, type) {\n this.name = name;\n this.type = type;\n if (type === 1) {\n this.attributes = [];\n this.attributes.map = {};\n }\n }\n Node.create = function (name, attrs) {\n var node = new Node(name, typeLookup[name] || 1);\n if (attrs) {\n for (var attrName in attrs) {\n node.attr(attrName, attrs[attrName]);\n }\n }\n return node;\n };\n Node.prototype.replace = function (node) {\n var self = this;\n if (node.parent) {\n node.remove();\n }\n self.insert(node, self);\n self.remove();\n return self;\n };\n Node.prototype.attr = function (name, value) {\n var self = this;\n var attrs;\n if (typeof name !== 'string') {\n for (var key in name) {\n self.attr(key, name[key]);\n }\n return self;\n }\n if (attrs = self.attributes) {\n if (value !== undefined) {\n if (value === null) {\n if (name in attrs.map) {\n delete attrs.map[name];\n var i = attrs.length;\n while (i--) {\n if (attrs[i].name === name) {\n attrs.splice(i, 1);\n return self;\n }\n }\n }\n return self;\n }\n if (name in attrs.map) {\n var i = attrs.length;\n while (i--) {\n if (attrs[i].name === name) {\n attrs[i].value = value;\n break;\n }\n }\n } else {\n attrs.push({\n name: name,\n value: value\n });\n }\n attrs.map[name] = value;\n return self;\n }\n return attrs.map[name];\n }\n };\n Node.prototype.clone = function () {\n var self = this;\n var clone = new Node(self.name, self.type);\n var selfAttrs;\n if (selfAttrs = self.attributes) {\n var cloneAttrs = [];\n cloneAttrs.map = {};\n for (var i = 0, l = selfAttrs.length; i < l; i++) {\n var selfAttr = selfAttrs[i];\n if (selfAttr.name !== 'id') {\n cloneAttrs[cloneAttrs.length] = {\n name: selfAttr.name,\n value: selfAttr.value\n };\n cloneAttrs.map[selfAttr.name] = selfAttr.value;\n }\n }\n clone.attributes = cloneAttrs;\n }\n clone.value = self.value;\n clone.shortEnded = self.shortEnded;\n return clone;\n };\n Node.prototype.wrap = function (wrapper) {\n var self = this;\n self.parent.insert(wrapper, self);\n wrapper.append(self);\n return self;\n };\n Node.prototype.unwrap = function () {\n var self = this;\n for (var node = self.firstChild; node;) {\n var next = node.next;\n self.insert(node, self, true);\n node = next;\n }\n self.remove();\n };\n Node.prototype.remove = function () {\n var self = this, parent = self.parent, next = self.next, prev = self.prev;\n if (parent) {\n if (parent.firstChild === self) {\n parent.firstChild = next;\n if (next) {\n next.prev = null;\n }\n } else {\n prev.next = next;\n }\n if (parent.lastChild === self) {\n parent.lastChild = prev;\n if (prev) {\n prev.next = null;\n }\n } else {\n next.prev = prev;\n }\n self.parent = self.next = self.prev = null;\n }\n return self;\n };\n Node.prototype.append = function (node) {\n var self = this;\n if (node.parent) {\n node.remove();\n }\n var last = self.lastChild;\n if (last) {\n last.next = node;\n node.prev = last;\n self.lastChild = node;\n } else {\n self.lastChild = self.firstChild = node;\n }\n node.parent = self;\n return node;\n };\n Node.prototype.insert = function (node, refNode, before) {\n if (node.parent) {\n node.remove();\n }\n var parent = refNode.parent || this;\n if (before) {\n if (refNode === parent.firstChild) {\n parent.firstChild = node;\n } else {\n refNode.prev.next = node;\n }\n node.prev = refNode.prev;\n node.next = refNode;\n refNode.prev = node;\n } else {\n if (refNode === parent.lastChild) {\n parent.lastChild = node;\n } else {\n refNode.next.prev = node;\n }\n node.next = refNode.next;\n node.prev = refNode;\n refNode.next = node;\n }\n node.parent = parent;\n return node;\n };\n Node.prototype.getAll = function (name) {\n var self = this;\n var collection = [];\n for (var node = self.firstChild; node; node = walk$2(node, self)) {\n if (node.name === name) {\n collection.push(node);\n }\n }\n return collection;\n };\n Node.prototype.empty = function () {\n var self = this;\n if (self.firstChild) {\n var nodes = [];\n for (var node = self.firstChild; node; node = walk$2(node, self)) {\n nodes.push(node);\n }\n var i = nodes.length;\n while (i--) {\n var node = nodes[i];\n node.parent = node.firstChild = node.lastChild = node.next = node.prev = null;\n }\n }\n self.firstChild = self.lastChild = null;\n return self;\n };\n Node.prototype.isEmpty = function (elements, whitespace, predicate) {\n if (whitespace === void 0) {\n whitespace = {};\n }\n var self = this;\n var node = self.firstChild;\n if (node) {\n do {\n if (node.type === 1) {\n if (node.attr('data-mce-bogus')) {\n continue;\n }\n if (elements[node.name]) {\n return false;\n }\n var i = node.attributes.length;\n while (i--) {\n var name = node.attributes[i].name;\n if (name === 'name' || name.indexOf('data-mce-bookmark') === 0) {\n return false;\n }\n }\n }\n if (node.type === 8) {\n return false;\n }\n if (node.type === 3 && !whiteSpaceRegExp$3.test(node.value)) {\n return false;\n }\n if (node.type === 3 && node.parent && whitespace[node.parent.name] && whiteSpaceRegExp$3.test(node.value)) {\n return false;\n }\n if (predicate && predicate(node)) {\n return false;\n }\n } while (node = walk$2(node, self));\n }\n return true;\n };\n Node.prototype.walk = function (prev) {\n return walk$2(this, null, prev);\n };\n return Node;\n }();\n\n var isValidPrefixAttrName = function (name) {\n return name.indexOf('data-') === 0 || name.indexOf('aria-') === 0;\n };\n var trimComments = function (text) {\n return text.replace(/<!--|-->/g, '');\n };\n var isInvalidUri = function (settings, uri) {\n if (settings.allow_html_data_urls) {\n return false;\n } else if (/^data:image\\//i.test(uri)) {\n return settings.allow_svg_data_urls === false && /^data:image\\/svg\\+xml/i.test(uri);\n } else {\n return /^data:/i.test(uri);\n }\n };\n var findEndTagIndex = function (schema, html, startIndex) {\n var count = 1, index, matches, tokenRegExp, shortEndedElements;\n shortEndedElements = schema.getShortEndedElements();\n tokenRegExp = /<([!?\\/])?([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"\\'>]+(?:(?:\"[^\"]*\")|(?:\\'[^\\']*\\')|[^>]*))*|\\/|\\s+)>/g;\n tokenRegExp.lastIndex = index = startIndex;\n while (matches = tokenRegExp.exec(html)) {\n index = tokenRegExp.lastIndex;\n if (matches[1] === '/') {\n count--;\n } else if (!matches[1]) {\n if (matches[2] in shortEndedElements) {\n continue;\n }\n count++;\n }\n if (count === 0) {\n break;\n }\n }\n return index;\n };\n var checkBogusAttribute = function (regExp, attrString) {\n var matches = regExp.exec(attrString);\n if (matches) {\n var name = matches[1];\n var value = matches[2];\n return typeof name === 'string' && name.toLowerCase() === 'data-mce-bogus' ? value : null;\n } else {\n return null;\n }\n };\n function SaxParser(settings, schema) {\n if (schema === void 0) {\n schema = Schema();\n }\n var noop = function () {\n };\n settings = settings || {};\n if (settings.fix_self_closing !== false) {\n settings.fix_self_closing = true;\n }\n var comment = settings.comment ? settings.comment : noop;\n var cdata = settings.cdata ? settings.cdata : noop;\n var text = settings.text ? settings.text : noop;\n var start = settings.start ? settings.start : noop;\n var end = settings.end ? settings.end : noop;\n var pi = settings.pi ? settings.pi : noop;\n var doctype = settings.doctype ? settings.doctype : noop;\n var parse = function (html) {\n var matches, index = 0, value, endRegExp;\n var stack = [];\n var attrList, i, textData, name;\n var isInternalElement, removeInternalElements, shortEndedElements, fillAttrsMap, isShortEnded;\n var validate, elementRule, isValidElement, attr, attribsValue, validAttributesMap, validAttributePatterns;\n var attributesRequired, attributesDefault, attributesForced, processHtml;\n var anyAttributesRequired, selfClosing, tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0;\n var decode = Entities.decode;\n var fixSelfClosing;\n var filteredUrlAttrs = Tools.makeMap('src,href,data,background,formaction,poster,xlink:href');\n var scriptUriRegExp = /((java|vb)script|mhtml):/i;\n var processEndTag = function (name) {\n var pos, i;\n pos = stack.length;\n while (pos--) {\n if (stack[pos].name === name) {\n break;\n }\n }\n if (pos >= 0) {\n for (i = stack.length - 1; i >= pos; i--) {\n name = stack[i];\n if (name.valid) {\n end(name.name);\n }\n }\n stack.length = pos;\n }\n };\n var parseAttribute = function (match, name, value, val2, val3) {\n var attrRule, i;\n var trimRegExp = /[\\s\\u0000-\\u001F]+/g;\n name = name.toLowerCase();\n value = name in fillAttrsMap ? name : decode(value || val2 || val3 || '');\n if (validate && !isInternalElement && isValidPrefixAttrName(name) === false) {\n attrRule = validAttributesMap[name];\n if (!attrRule && validAttributePatterns) {\n i = validAttributePatterns.length;\n while (i--) {\n attrRule = validAttributePatterns[i];\n if (attrRule.pattern.test(name)) {\n break;\n }\n }\n if (i === -1) {\n attrRule = null;\n }\n }\n if (!attrRule) {\n return;\n }\n if (attrRule.validValues && !(value in attrRule.validValues)) {\n return;\n }\n }\n if (filteredUrlAttrs[name] && !settings.allow_script_urls) {\n var uri = value.replace(trimRegExp, '');\n try {\n uri = decodeURIComponent(uri);\n } catch (ex) {\n uri = unescape(uri);\n }\n if (scriptUriRegExp.test(uri)) {\n return;\n }\n if (isInvalidUri(settings, uri)) {\n return;\n }\n }\n if (isInternalElement && (name in filteredUrlAttrs || name.indexOf('on') === 0)) {\n return;\n }\n attrList.map[name] = value;\n attrList.push({\n name: name,\n value: value\n });\n };\n tokenRegExp = new RegExp('<(?:' + '(?:!--([\\\\w\\\\W]*?)--!?>)|' + '(?:!\\\\[CDATA\\\\[([\\\\w\\\\W]*?)\\\\]\\\\]>)|' + '(?:!DOCTYPE([\\\\w\\\\W]*?)>)|' + '(?:\\\\?([^\\\\s\\\\/<>]+) ?([\\\\w\\\\W]*?)[?/]>)|' + '(?:\\\\/([A-Za-z][A-Za-z0-9\\\\-_\\\\:\\\\.]*)>)|' + '(?:([A-Za-z][A-Za-z0-9\\\\-_\\\\:\\\\.]*)((?:\\\\s+[^\"\\'>]+(?:(?:\"[^\"]*\")|(?:\\'[^\\']*\\')|[^>]*))*|\\\\/|\\\\s+)>)' + ')', 'g');\n attrRegExp = /([\\w:\\-]+)(?:\\s*=\\s*(?:(?:\\\"((?:[^\\\"])*)\\\")|(?:\\'((?:[^\\'])*)\\')|([^>\\s]+)))?/g;\n shortEndedElements = schema.getShortEndedElements();\n selfClosing = settings.self_closing_elements || schema.getSelfClosingElements();\n fillAttrsMap = schema.getBoolAttrs();\n validate = settings.validate;\n removeInternalElements = settings.remove_internals;\n fixSelfClosing = settings.fix_self_closing;\n specialElements = schema.getSpecialElements();\n processHtml = html + '>';\n while (matches = tokenRegExp.exec(processHtml)) {\n if (index < matches.index) {\n text(decode(html.substr(index, matches.index - index)));\n }\n if (value = matches[6]) {\n value = value.toLowerCase();\n if (value.charAt(0) === ':') {\n value = value.substr(1);\n }\n processEndTag(value);\n } else if (value = matches[7]) {\n if (matches.index + matches[0].length > html.length) {\n text(decode(html.substr(matches.index)));\n index = matches.index + matches[0].length;\n continue;\n }\n value = value.toLowerCase();\n if (value.charAt(0) === ':') {\n value = value.substr(1);\n }\n isShortEnded = value in shortEndedElements;\n if (fixSelfClosing && selfClosing[value] && stack.length > 0 && stack[stack.length - 1].name === value) {\n processEndTag(value);\n }\n var bogusValue = checkBogusAttribute(attrRegExp, matches[8]);\n if (bogusValue !== null) {\n if (bogusValue === 'all') {\n index = findEndTagIndex(schema, html, tokenRegExp.lastIndex);\n tokenRegExp.lastIndex = index;\n continue;\n }\n isValidElement = false;\n }\n if (!validate || (elementRule = schema.getElementRule(value))) {\n isValidElement = true;\n if (validate) {\n validAttributesMap = elementRule.attributes;\n validAttributePatterns = elementRule.attributePatterns;\n }\n if (attribsValue = matches[8]) {\n isInternalElement = attribsValue.indexOf('data-mce-type') !== -1;\n if (isInternalElement && removeInternalElements) {\n isValidElement = false;\n }\n attrList = [];\n attrList.map = {};\n attribsValue.replace(attrRegExp, parseAttribute);\n } else {\n attrList = [];\n attrList.map = {};\n }\n if (validate && !isInternalElement) {\n attributesRequired = elementRule.attributesRequired;\n attributesDefault = elementRule.attributesDefault;\n attributesForced = elementRule.attributesForced;\n anyAttributesRequired = elementRule.removeEmptyAttrs;\n if (anyAttributesRequired && !attrList.length) {\n isValidElement = false;\n }\n if (attributesForced) {\n i = attributesForced.length;\n while (i--) {\n attr = attributesForced[i];\n name = attr.name;\n attrValue = attr.value;\n if (attrValue === '{$uid}') {\n attrValue = 'mce_' + idCount++;\n }\n attrList.map[name] = attrValue;\n attrList.push({\n name: name,\n value: attrValue\n });\n }\n }\n if (attributesDefault) {\n i = attributesDefault.length;\n while (i--) {\n attr = attributesDefault[i];\n name = attr.name;\n if (!(name in attrList.map)) {\n attrValue = attr.value;\n if (attrValue === '{$uid}') {\n attrValue = 'mce_' + idCount++;\n }\n attrList.map[name] = attrValue;\n attrList.push({\n name: name,\n value: attrValue\n });\n }\n }\n }\n if (attributesRequired) {\n i = attributesRequired.length;\n while (i--) {\n if (attributesRequired[i] in attrList.map) {\n break;\n }\n }\n if (i === -1) {\n isValidElement = false;\n }\n }\n if (attr = attrList.map['data-mce-bogus']) {\n if (attr === 'all') {\n index = findEndTagIndex(schema, html, tokenRegExp.lastIndex);\n tokenRegExp.lastIndex = index;\n continue;\n }\n isValidElement = false;\n }\n }\n if (isValidElement) {\n start(value, attrList, isShortEnded);\n }\n } else {\n isValidElement = false;\n }\n if (endRegExp = specialElements[value]) {\n endRegExp.lastIndex = index = matches.index + matches[0].length;\n if (matches = endRegExp.exec(html)) {\n if (isValidElement) {\n textData = html.substr(index, matches.index - index);\n }\n index = matches.index + matches[0].length;\n } else {\n textData = html.substr(index);\n index = html.length;\n }\n if (isValidElement) {\n if (textData.length > 0) {\n text(textData, true);\n }\n end(value);\n }\n tokenRegExp.lastIndex = index;\n continue;\n }\n if (!isShortEnded) {\n if (!attribsValue || attribsValue.indexOf('/') !== attribsValue.length - 1) {\n stack.push({\n name: value,\n valid: isValidElement\n });\n } else if (isValidElement) {\n end(value);\n }\n }\n } else if (value = matches[1]) {\n if (value.charAt(0) === '>') {\n value = ' ' + value;\n }\n if (!settings.allow_conditional_comments && value.substr(0, 3).toLowerCase() === '[if') {\n value = ' ' + value;\n }\n comment(value);\n } else if (value = matches[2]) {\n cdata(trimComments(value));\n } else if (value = matches[3]) {\n doctype(value);\n } else if (value = matches[4]) {\n pi(value, matches[5]);\n }\n index = matches.index + matches[0].length;\n }\n if (index < html.length) {\n text(decode(html.substr(index)));\n }\n for (i = stack.length - 1; i >= 0; i--) {\n value = stack[i];\n if (value.valid) {\n end(value.name);\n }\n }\n };\n return { parse: parse };\n }\n (function (SaxParser) {\n SaxParser.findEndTag = findEndTagIndex;\n }(SaxParser || (SaxParser = {})));\n var SaxParser$1 = SaxParser;\n\n var trimHtml = function (tempAttrs, html) {\n var trimContentRegExp = new RegExp(['\\\\s?(' + tempAttrs.join('|') + ')=\"[^\"]+\"'].join('|'), 'gi');\n return html.replace(trimContentRegExp, '');\n };\n var trimInternal = function (serializer, html) {\n var content = html;\n var bogusAllRegExp = /<(\\w+) [^>]*data-mce-bogus=\"all\"[^>]*>/g;\n var endTagIndex, index, matchLength, matches, shortEndedElements;\n var schema = serializer.schema;\n content = trimHtml(serializer.getTempAttrs(), content);\n shortEndedElements = schema.getShortEndedElements();\n while (matches = bogusAllRegExp.exec(content)) {\n index = bogusAllRegExp.lastIndex;\n matchLength = matches[0].length;\n if (shortEndedElements[matches[1]]) {\n endTagIndex = index;\n } else {\n endTagIndex = SaxParser$1.findEndTag(schema, content, index);\n }\n content = content.substring(0, index - matchLength) + content.substring(endTagIndex);\n bogusAllRegExp.lastIndex = index - matchLength;\n }\n return Zwsp.trim(content);\n };\n var trimExternal = trimInternal;\n var TrimHtml = {\n trimExternal: trimExternal,\n trimInternal: trimInternal\n };\n\n var getBodySetting = function (editor, name, defaultValue) {\n var value = editor.getParam(name, defaultValue);\n if (value.indexOf('=') !== -1) {\n var bodyObj = editor.getParam(name, '', 'hash');\n return bodyObj.hasOwnProperty(editor.id) ? bodyObj[editor.id] : defaultValue;\n } else {\n return value;\n }\n };\n var getIframeAttrs = function (editor) {\n return editor.getParam('iframe_attrs', {});\n };\n var getDocType = function (editor) {\n return editor.getParam('doctype', '<!DOCTYPE html>');\n };\n var getDocumentBaseUrl = function (editor) {\n return editor.getParam('document_base_url', '');\n };\n var getBodyId = function (editor) {\n return getBodySetting(editor, 'body_id', 'tinymce');\n };\n var getBodyClass = function (editor) {\n return getBodySetting(editor, 'body_class', '');\n };\n var getContentSecurityPolicy = function (editor) {\n return editor.getParam('content_security_policy', '');\n };\n var shouldPutBrInPre = function (editor) {\n return editor.getParam('br_in_pre', true);\n };\n var getForcedRootBlock = function (editor) {\n if (editor.getParam('force_p_newlines', false)) {\n return 'p';\n }\n var block = editor.getParam('forced_root_block', 'p');\n if (block === false) {\n return '';\n } else if (block === true) {\n return 'p';\n } else {\n return block;\n }\n };\n var getForcedRootBlockAttrs = function (editor) {\n return editor.getParam('forced_root_block_attrs', {});\n };\n var getBrNewLineSelector = function (editor) {\n return editor.getParam('br_newline_selector', '.mce-toc h2,figcaption,caption');\n };\n var getNoNewLineSelector = function (editor) {\n return editor.getParam('no_newline_selector', '');\n };\n var shouldKeepStyles = function (editor) {\n return editor.getParam('keep_styles', true);\n };\n var shouldEndContainerOnEmptyBlock = function (editor) {\n return editor.getParam('end_container_on_empty_block', false);\n };\n var getFontStyleValues = function (editor) {\n return Tools.explode(editor.getParam('font_size_style_values', 'xx-small,x-small,small,medium,large,x-large,xx-large'));\n };\n var getFontSizeClasses = function (editor) {\n return Tools.explode(editor.getParam('font_size_classes', ''));\n };\n var getImagesDataImgFilter = function (editor) {\n return editor.getParam('images_dataimg_filter', constant(true), 'function');\n };\n var isAutomaticUploadsEnabled = function (editor) {\n return editor.getParam('automatic_uploads', true, 'boolean');\n };\n var shouldReuseFileName = function (editor) {\n return editor.getParam('images_reuse_filename', false, 'boolean');\n };\n var shouldReplaceBlobUris = function (editor) {\n return editor.getParam('images_replace_blob_uris', true, 'boolean');\n };\n var getIconPackName = function (editor) {\n return editor.getParam('icons', '', 'string');\n };\n var getIconsUrl = function (editor) {\n return editor.getParam('icons_url', '', 'string');\n };\n var getImageUploadUrl = function (editor) {\n return editor.getParam('images_upload_url', '', 'string');\n };\n var getImageUploadBasePath = function (editor) {\n return editor.getParam('images_upload_base_path', '', 'string');\n };\n var getImagesUploadCredentials = function (editor) {\n return editor.getParam('images_upload_credentials', false, 'boolean');\n };\n var getImagesUploadHandler = function (editor) {\n return editor.getParam('images_upload_handler', null, 'function');\n };\n var shouldUseContentCssCors = function (editor) {\n return editor.getParam('content_css_cors', false, 'boolean');\n };\n var getReferrerPolicy = function (editor) {\n return editor.getParam('referrer_policy', '', 'string');\n };\n var getLanguageCode = function (editor) {\n return editor.getParam('language', 'en', 'string');\n };\n var getLanguageUrl = function (editor) {\n return editor.getParam('language_url', '', 'string');\n };\n var shouldIndentUseMargin = function (editor) {\n return editor.getParam('indent_use_margin', false);\n };\n var getIndentation = function (editor) {\n return editor.getParam('indentation', '40px', 'string');\n };\n var getContentCss = function (editor) {\n var contentCss = editor.settings.content_css;\n if (isString(contentCss)) {\n return map(contentCss.split(','), trim);\n } else if (isArray(contentCss)) {\n return contentCss;\n } else if (contentCss === false || editor.inline) {\n return [];\n } else {\n return ['default'];\n }\n };\n var getDirectionality = function (editor) {\n return editor.getParam('directionality', I18n.isRtl() ? 'rtl' : undefined);\n };\n var getInlineBoundarySelector = function (editor) {\n return editor.getParam('inline_boundaries_selector', 'a[href],code,.mce-annotation', 'string');\n };\n var Settings = {\n getIframeAttrs: getIframeAttrs,\n getDocType: getDocType,\n getDocumentBaseUrl: getDocumentBaseUrl,\n getBodyId: getBodyId,\n getBodyClass: getBodyClass,\n getContentSecurityPolicy: getContentSecurityPolicy,\n shouldPutBrInPre: shouldPutBrInPre,\n getForcedRootBlock: getForcedRootBlock,\n getForcedRootBlockAttrs: getForcedRootBlockAttrs,\n getBrNewLineSelector: getBrNewLineSelector,\n getNoNewLineSelector: getNoNewLineSelector,\n shouldKeepStyles: shouldKeepStyles,\n shouldEndContainerOnEmptyBlock: shouldEndContainerOnEmptyBlock,\n getFontStyleValues: getFontStyleValues,\n getFontSizeClasses: getFontSizeClasses,\n getIconPackName: getIconPackName,\n getIconsUrl: getIconsUrl,\n getImagesDataImgFilter: getImagesDataImgFilter,\n isAutomaticUploadsEnabled: isAutomaticUploadsEnabled,\n shouldReuseFileName: shouldReuseFileName,\n shouldReplaceBlobUris: shouldReplaceBlobUris,\n getImageUploadUrl: getImageUploadUrl,\n getImageUploadBasePath: getImageUploadBasePath,\n getImagesUploadCredentials: getImagesUploadCredentials,\n getImagesUploadHandler: getImagesUploadHandler,\n shouldUseContentCssCors: shouldUseContentCssCors,\n getReferrerPolicy: getReferrerPolicy,\n getLanguageCode: getLanguageCode,\n getLanguageUrl: getLanguageUrl,\n shouldIndentUseMargin: shouldIndentUseMargin,\n getIndentation: getIndentation,\n getContentCss: getContentCss,\n getDirectionality: getDirectionality,\n getInlineBoundarySelector: getInlineBoundarySelector\n };\n\n var defaultFormat = 'html';\n var trimEmptyContents = function (editor, html) {\n var blockName = Settings.getForcedRootBlock(editor);\n var emptyRegExp = new RegExp('^(<' + blockName + '[^>]*>(&nbsp;|&#160;|\\\\s|\\xA0|<br \\\\/>|)<\\\\/' + blockName + '>[\\r\\n]*|<br \\\\/>[\\r\\n]*)$');\n return html.replace(emptyRegExp, '');\n };\n var getContentFromBody = function (editor, args, body) {\n var content;\n args.format = args.format ? args.format : defaultFormat;\n args.get = true;\n args.getInner = true;\n if (!args.no_events) {\n editor.fire('BeforeGetContent', args);\n }\n if (args.format === 'raw') {\n content = Tools.trim(TrimHtml.trimExternal(editor.serializer, body.innerHTML));\n } else if (args.format === 'text') {\n content = Zwsp.trim(body.innerText || body.textContent);\n } else if (args.format === 'tree') {\n return editor.serializer.serialize(body, args);\n } else {\n content = trimEmptyContents(editor, editor.serializer.serialize(body, args));\n }\n if (args.format !== 'text' && !isWsPreserveElement(Element.fromDom(body))) {\n args.content = Tools.trim(content);\n } else {\n args.content = content;\n }\n if (!args.no_events) {\n editor.fire('GetContent', args);\n }\n return args.content;\n };\n var getContent = function (editor, args) {\n if (args === void 0) {\n args = {};\n }\n return Option.from(editor.getBody()).fold(constant(args.format === 'tree' ? new Node$1('body', 11) : ''), function (body) {\n return getContentFromBody(editor, args, body);\n });\n };\n\n var makeMap$3 = Tools.makeMap;\n var Writer = function (settings) {\n var html = [];\n var indent, indentBefore, indentAfter, encode, htmlOutput;\n settings = settings || {};\n indent = settings.indent;\n indentBefore = makeMap$3(settings.indent_before || '');\n indentAfter = makeMap$3(settings.indent_after || '');\n encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);\n htmlOutput = settings.element_format === 'html';\n return {\n start: function (name, attrs, empty) {\n var i, l, attr, value;\n if (indent && indentBefore[name] && html.length > 0) {\n value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n html.push('<', name);\n if (attrs) {\n for (i = 0, l = attrs.length; i < l; i++) {\n attr = attrs[i];\n html.push(' ', attr.name, '=\"', encode(attr.value, true), '\"');\n }\n }\n if (!empty || htmlOutput) {\n html[html.length] = '>';\n } else {\n html[html.length] = ' />';\n }\n if (empty && indent && indentAfter[name] && html.length > 0) {\n value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n },\n end: function (name) {\n var value;\n html.push('</', name, '>');\n if (indent && indentAfter[name] && html.length > 0) {\n value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n },\n text: function (text, raw) {\n if (text.length > 0) {\n html[html.length] = raw ? text : encode(text);\n }\n },\n cdata: function (text) {\n html.push('<![CDATA[', text, ']]>');\n },\n comment: function (text) {\n html.push('<!--', text, '-->');\n },\n pi: function (name, text) {\n if (text) {\n html.push('<?', name, ' ', encode(text), '?>');\n } else {\n html.push('<?', name, '?>');\n }\n if (indent) {\n html.push('\\n');\n }\n },\n doctype: function (text) {\n html.push('<!DOCTYPE', text, '>', indent ? '\\n' : '');\n },\n reset: function () {\n html.length = 0;\n },\n getContent: function () {\n return html.join('').replace(/\\n$/, '');\n }\n };\n };\n\n var Serializer = function (settings, schema) {\n if (schema === void 0) {\n schema = Schema();\n }\n var writer = Writer(settings);\n settings = settings || {};\n settings.validate = 'validate' in settings ? settings.validate : true;\n var serialize = function (node) {\n var handlers, validate;\n validate = settings.validate;\n handlers = {\n 3: function (node) {\n writer.text(node.value, node.raw);\n },\n 8: function (node) {\n writer.comment(node.value);\n },\n 7: function (node) {\n writer.pi(node.name, node.value);\n },\n 10: function (node) {\n writer.doctype(node.value);\n },\n 4: function (node) {\n writer.cdata(node.value);\n },\n 11: function (node) {\n if (node = node.firstChild) {\n do {\n walk(node);\n } while (node = node.next);\n }\n }\n };\n writer.reset();\n var walk = function (node) {\n var handler = handlers[node.type];\n var name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule;\n if (!handler) {\n name = node.name;\n isEmpty = node.shortEnded;\n attrs = node.attributes;\n if (validate && attrs && attrs.length > 1) {\n sortedAttrs = [];\n sortedAttrs.map = {};\n elementRule = schema.getElementRule(node.name);\n if (elementRule) {\n for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) {\n attrName = elementRule.attributesOrder[i];\n if (attrName in attrs.map) {\n attrValue = attrs.map[attrName];\n sortedAttrs.map[attrName] = attrValue;\n sortedAttrs.push({\n name: attrName,\n value: attrValue\n });\n }\n }\n for (i = 0, l = attrs.length; i < l; i++) {\n attrName = attrs[i].name;\n if (!(attrName in sortedAttrs.map)) {\n attrValue = attrs.map[attrName];\n sortedAttrs.map[attrName] = attrValue;\n sortedAttrs.push({\n name: attrName,\n value: attrValue\n });\n }\n }\n attrs = sortedAttrs;\n }\n }\n writer.start(node.name, attrs, isEmpty);\n if (!isEmpty) {\n if (node = node.firstChild) {\n do {\n walk(node);\n } while (node = node.next);\n }\n writer.end(name);\n }\n } else {\n handler(node);\n }\n };\n if (node.type === 1 && !settings.inner) {\n walk(node);\n } else {\n handlers[11](node);\n }\n return writer.getContent();\n };\n return { serialize: serialize };\n };\n\n var traverse = function (node, fn) {\n fn(node);\n if (node.firstChild) {\n traverse(node.firstChild, fn);\n }\n if (node.next) {\n traverse(node.next, fn);\n }\n };\n var findMatchingNodes = function (nodeFilters, attributeFilters, node) {\n var nodeMatches = {};\n var attrMatches = {};\n var matches = [];\n if (node.firstChild) {\n traverse(node.firstChild, function (node) {\n each(nodeFilters, function (filter) {\n if (filter.name === node.name) {\n if (nodeMatches[filter.name]) {\n nodeMatches[filter.name].nodes.push(node);\n } else {\n nodeMatches[filter.name] = {\n filter: filter,\n nodes: [node]\n };\n }\n }\n });\n each(attributeFilters, function (filter) {\n if (typeof node.attr(filter.name) === 'string') {\n if (attrMatches[filter.name]) {\n attrMatches[filter.name].nodes.push(node);\n } else {\n attrMatches[filter.name] = {\n filter: filter,\n nodes: [node]\n };\n }\n }\n });\n });\n }\n for (var name in nodeMatches) {\n if (nodeMatches.hasOwnProperty(name)) {\n matches.push(nodeMatches[name]);\n }\n }\n for (var name in attrMatches) {\n if (attrMatches.hasOwnProperty(name)) {\n matches.push(attrMatches[name]);\n }\n }\n return matches;\n };\n var filter$2 = function (nodeFilters, attributeFilters, node) {\n var matches = findMatchingNodes(nodeFilters, attributeFilters, node);\n each(matches, function (match) {\n each(match.filter.callbacks, function (callback) {\n callback(match.nodes, match.filter.name, {});\n });\n });\n };\n\n var hasFocus = function (element) {\n var doc = owner(element).dom();\n return element.dom() === doc.activeElement;\n };\n var active = function (_doc) {\n var doc = _doc !== undefined ? _doc.dom() : domGlobals.document;\n return Option.from(doc.activeElement).map(Element.fromDom);\n };\n var search = function (element) {\n return active(owner(element)).filter(function (e) {\n return element.dom().contains(e.dom());\n });\n };\n\n var generate$1 = function (cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n var constructors = [];\n var adt = {};\n each(cases, function (acase, count) {\n var keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n var key = keys$1[0];\n var value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = function () {\n var argLength = arguments.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n var args = new Array(argLength);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n var match = function (branches) {\n var branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n if (arguments.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length);\n }\n var target = arguments[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n domGlobals.console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n var Adt = { generate: generate$1 };\n\n var create$3 = Immutable('start', 'soffset', 'finish', 'foffset');\n var SimRange = { create: create$3 };\n\n var adt = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n var cata = function (subject, onBefore, onOn, onAfter) {\n return subject.fold(onBefore, onOn, onAfter);\n };\n var getStart = function (situ) {\n return situ.fold(identity, identity, identity);\n };\n var before$3 = adt.before;\n var on = adt.on;\n var after$2 = adt.after;\n var Situ = {\n before: before$3,\n on: on,\n after: after$2,\n cata: cata,\n getStart: getStart\n };\n\n var adt$1 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var exactFromRange = function (simRange) {\n return adt$1.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());\n };\n var getStart$1 = function (selection) {\n return selection.match({\n domRange: function (rng) {\n return Element.fromDom(rng.startContainer);\n },\n relative: function (startSitu, finishSitu) {\n return Situ.getStart(startSitu);\n },\n exact: function (start, soffset, finish, foffset) {\n return start;\n }\n });\n };\n var domRange = adt$1.domRange;\n var relative = adt$1.relative;\n var exact = adt$1.exact;\n var getWin = function (selection) {\n var start = getStart$1(selection);\n return defaultView(start);\n };\n var range = SimRange.create;\n var Selection = {\n domRange: domRange,\n relative: relative,\n exact: exact,\n exactFromRange: exactFromRange,\n getWin: getWin,\n range: range\n };\n\n var browser$4 = detect$3().browser;\n var clamp = function (offset, element) {\n var max = isText$1(element) ? get$6(element).length : children(element).length + 1;\n if (offset > max) {\n return max;\n } else if (offset < 0) {\n return 0;\n }\n return offset;\n };\n var normalizeRng = function (rng) {\n return Selection.range(rng.start(), clamp(rng.soffset(), rng.start()), rng.finish(), clamp(rng.foffset(), rng.finish()));\n };\n var isOrContains = function (root, elm) {\n return !NodeType.isRestrictedNode(elm.dom()) && (contains$2(root, elm) || eq(root, elm));\n };\n var isRngInRoot = function (root) {\n return function (rng) {\n return isOrContains(root, rng.start()) && isOrContains(root, rng.finish());\n };\n };\n var shouldStore = function (editor) {\n return editor.inline === true || browser$4.isIE();\n };\n var nativeRangeToSelectionRange = function (r) {\n return Selection.range(Element.fromDom(r.startContainer), r.startOffset, Element.fromDom(r.endContainer), r.endOffset);\n };\n var readRange = function (win) {\n var selection = win.getSelection();\n var rng = !selection || selection.rangeCount === 0 ? Option.none() : Option.from(selection.getRangeAt(0));\n return rng.map(nativeRangeToSelectionRange);\n };\n var getBookmark$2 = function (root) {\n var win = defaultView(root);\n return readRange(win.dom()).filter(isRngInRoot(root));\n };\n var validate = function (root, bookmark) {\n return Option.from(bookmark).filter(isRngInRoot(root)).map(normalizeRng);\n };\n var bookmarkToNativeRng = function (bookmark) {\n var rng = domGlobals.document.createRange();\n try {\n rng.setStart(bookmark.start().dom(), bookmark.soffset());\n rng.setEnd(bookmark.finish().dom(), bookmark.foffset());\n return Option.some(rng);\n } catch (_) {\n return Option.none();\n }\n };\n var store = function (editor) {\n var newBookmark = shouldStore(editor) ? getBookmark$2(Element.fromDom(editor.getBody())) : Option.none();\n editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\n };\n var storeNative = function (editor, rng) {\n var root = Element.fromDom(editor.getBody());\n var range = shouldStore(editor) ? Option.from(rng) : Option.none();\n var newBookmark = range.map(nativeRangeToSelectionRange).filter(isRngInRoot(root));\n editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\n };\n var getRng = function (editor) {\n var bookmark = editor.bookmark ? editor.bookmark : Option.none();\n return bookmark.bind(function (x) {\n return validate(Element.fromDom(editor.getBody()), x);\n }).bind(bookmarkToNativeRng);\n };\n var restore = function (editor) {\n getRng(editor).each(function (rng) {\n editor.selection.setRng(rng);\n });\n };\n var SelectionBookmark = {\n store: store,\n storeNative: storeNative,\n readRange: readRange,\n restore: restore,\n getRng: getRng,\n getBookmark: getBookmark$2,\n validate: validate\n };\n\n var isEditorUIElement = function (elm) {\n var className = elm.className.toString();\n return className.indexOf('tox-') !== -1 || className.indexOf('mce-') !== -1;\n };\n var FocusManager = { isEditorUIElement: isEditorUIElement };\n\n var isManualNodeChange = function (e) {\n return e.type === 'nodechange' && e.selectionChange;\n };\n var registerPageMouseUp = function (editor, throttledStore) {\n var mouseUpPage = function () {\n throttledStore.throttle();\n };\n DOMUtils$1.DOM.bind(domGlobals.document, 'mouseup', mouseUpPage);\n editor.on('remove', function () {\n DOMUtils$1.DOM.unbind(domGlobals.document, 'mouseup', mouseUpPage);\n });\n };\n var registerFocusOut = function (editor) {\n editor.on('focusout', function () {\n SelectionBookmark.store(editor);\n });\n };\n var registerMouseUp = function (editor, throttledStore) {\n editor.on('mouseup touchend', function (e) {\n throttledStore.throttle();\n });\n };\n var registerEditorEvents = function (editor, throttledStore) {\n var browser = detect$3().browser;\n if (browser.isIE()) {\n registerFocusOut(editor);\n } else {\n registerMouseUp(editor, throttledStore);\n }\n editor.on('keyup NodeChange', function (e) {\n if (!isManualNodeChange(e)) {\n SelectionBookmark.store(editor);\n }\n });\n };\n var register = function (editor) {\n var throttledStore = first(function () {\n SelectionBookmark.store(editor);\n }, 0);\n editor.on('init', function () {\n if (editor.inline) {\n registerPageMouseUp(editor, throttledStore);\n }\n registerEditorEvents(editor, throttledStore);\n });\n editor.on('remove', function () {\n throttledStore.cancel();\n });\n };\n var SelectionRestore = { register: register };\n\n var documentFocusInHandler;\n var DOM$1 = DOMUtils$1.DOM;\n var isEditorUIElement$1 = function (elm) {\n return FocusManager.isEditorUIElement(elm);\n };\n var isEditorContentAreaElement = function (elm) {\n var classList = elm.classList;\n if (classList !== undefined) {\n return classList.contains('tox-edit-area') || classList.contains('tox-edit-area__iframe') || classList.contains('mce-content-body');\n } else {\n return false;\n }\n };\n var isUIElement = function (editor, elm) {\n var customSelector = editor ? editor.settings.custom_ui_selector : '';\n var parent = DOM$1.getParent(elm, function (elm) {\n return isEditorUIElement$1(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);\n });\n return parent !== null;\n };\n var getActiveElement = function () {\n try {\n return domGlobals.document.activeElement;\n } catch (ex) {\n return domGlobals.document.body;\n }\n };\n var registerEvents = function (editorManager, e) {\n var editor = e.editor;\n SelectionRestore.register(editor);\n editor.on('focusin', function () {\n var self = this;\n var focusedEditor = editorManager.focusedEditor;\n if (focusedEditor !== self) {\n if (focusedEditor) {\n focusedEditor.fire('blur', { focusedEditor: self });\n }\n editorManager.setActive(self);\n editorManager.focusedEditor = self;\n self.fire('focus', { blurredEditor: focusedEditor });\n self.focus(true);\n }\n });\n editor.on('focusout', function () {\n var self = this;\n Delay.setEditorTimeout(self, function () {\n var focusedEditor = editorManager.focusedEditor;\n if (!isUIElement(self, getActiveElement()) && focusedEditor === self) {\n self.fire('blur', { focusedEditor: null });\n editorManager.focusedEditor = null;\n }\n });\n });\n if (!documentFocusInHandler) {\n documentFocusInHandler = function (e) {\n var activeEditor = editorManager.activeEditor;\n var target;\n target = e.target;\n if (activeEditor && target.ownerDocument === domGlobals.document) {\n if (target !== domGlobals.document.body && !isUIElement(activeEditor, target) && editorManager.focusedEditor === activeEditor) {\n activeEditor.fire('blur', { focusedEditor: null });\n editorManager.focusedEditor = null;\n }\n }\n };\n DOM$1.bind(domGlobals.document, 'focusin', documentFocusInHandler);\n }\n };\n var unregisterDocumentEvents = function (editorManager, e) {\n if (editorManager.focusedEditor === e.editor) {\n editorManager.focusedEditor = null;\n }\n if (!editorManager.activeEditor) {\n DOM$1.unbind(domGlobals.document, 'focusin', documentFocusInHandler);\n documentFocusInHandler = null;\n }\n };\n var setup$2 = function (editorManager) {\n editorManager.on('AddEditor', curry(registerEvents, editorManager));\n editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));\n };\n var FocusController = {\n setup: setup$2,\n isEditorUIElement: isEditorUIElement$1,\n isEditorContentAreaElement: isEditorContentAreaElement,\n isUIElement: isUIElement\n };\n\n var getContentEditableHost = function (editor, node) {\n return editor.dom.getParent(node, function (node) {\n return editor.dom.getContentEditable(node) === 'true';\n });\n };\n var getCollapsedNode = function (rng) {\n return rng.collapsed ? Option.from(getNode(rng.startContainer, rng.startOffset)).map(Element.fromDom) : Option.none();\n };\n var getFocusInElement = function (root, rng) {\n return getCollapsedNode(rng).bind(function (node) {\n if (isTableSection(node)) {\n return Option.some(node);\n } else if (contains$2(root, node) === false) {\n return Option.some(root);\n } else {\n return Option.none();\n }\n });\n };\n var normalizeSelection = function (editor, rng) {\n getFocusInElement(Element.fromDom(editor.getBody()), rng).bind(function (elm) {\n return CaretFinder.firstPositionIn(elm.dom());\n }).fold(function () {\n editor.selection.normalize();\n return;\n }, function (caretPos) {\n return editor.selection.setRng(caretPos.toRange());\n });\n };\n var focusBody = function (body) {\n if (body.setActive) {\n try {\n body.setActive();\n } catch (ex) {\n body.focus();\n }\n } else {\n body.focus();\n }\n };\n var hasElementFocus = function (elm) {\n return hasFocus(elm) || search(elm).isSome();\n };\n var hasIframeFocus = function (editor) {\n return editor.iframeElement && hasFocus(Element.fromDom(editor.iframeElement));\n };\n var hasInlineFocus = function (editor) {\n var rawBody = editor.getBody();\n return rawBody && hasElementFocus(Element.fromDom(rawBody));\n };\n var hasUiFocus = function (editor) {\n return active().filter(function (elem) {\n return !FocusController.isEditorContentAreaElement(elem.dom()) && FocusController.isUIElement(editor, elem.dom());\n }).isSome();\n };\n var hasFocus$1 = function (editor) {\n return editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor);\n };\n var hasEditorOrUiFocus = function (editor) {\n return hasFocus$1(editor) || hasUiFocus(editor);\n };\n var focusEditor = function (editor) {\n var selection = editor.selection;\n var body = editor.getBody();\n var rng = selection.getRng();\n editor.quirks.refreshContentEditable();\n if (editor.bookmark !== undefined && hasFocus$1(editor) === false) {\n SelectionBookmark.getRng(editor).each(function (bookmarkRng) {\n editor.selection.setRng(bookmarkRng);\n rng = bookmarkRng;\n });\n }\n var contentEditableHost = getContentEditableHost(editor, selection.getNode());\n if (editor.$.contains(body, contentEditableHost)) {\n focusBody(contentEditableHost);\n normalizeSelection(editor, rng);\n activateEditor(editor);\n return;\n }\n if (!editor.inline) {\n if (!Env.opera) {\n focusBody(body);\n }\n editor.getWin().focus();\n }\n if (Env.gecko || editor.inline) {\n focusBody(body);\n normalizeSelection(editor, rng);\n }\n activateEditor(editor);\n };\n var activateEditor = function (editor) {\n return editor.editorManager.setActive(editor);\n };\n var focus = function (editor, skipFocus) {\n if (editor.removed) {\n return;\n }\n skipFocus ? activateEditor(editor) : focusEditor(editor);\n };\n var EditorFocus = {\n focus: focus,\n hasFocus: hasFocus$1,\n hasEditorOrUiFocus: hasEditorOrUiFocus\n };\n\n var defaultFormat$1 = 'html';\n var isTreeNode = function (content) {\n return content instanceof Node$1;\n };\n var moveSelection = function (editor) {\n if (EditorFocus.hasFocus(editor)) {\n CaretFinder.firstPositionIn(editor.getBody()).each(function (pos) {\n var node = pos.getNode();\n var caretPos = NodeType.isTable(node) ? CaretFinder.firstPositionIn(node).getOr(pos) : pos;\n editor.selection.setRng(caretPos.toRange());\n });\n }\n };\n var setEditorHtml = function (editor, html) {\n editor.dom.setHTML(editor.getBody(), html);\n moveSelection(editor);\n };\n var setContentString = function (editor, body, content, args) {\n var forcedRootBlockName, padd;\n if (content.length === 0 || /^\\s+$/.test(content)) {\n padd = '<br data-mce-bogus=\"1\">';\n if (body.nodeName === 'TABLE') {\n content = '<tr><td>' + padd + '</td></tr>';\n } else if (/^(UL|OL)$/.test(body.nodeName)) {\n content = '<li>' + padd + '</li>';\n }\n forcedRootBlockName = Settings.getForcedRootBlock(editor);\n if (forcedRootBlockName && editor.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) {\n content = padd;\n content = editor.dom.createHTML(forcedRootBlockName, editor.settings.forced_root_block_attrs, content);\n } else if (!content) {\n content = '<br data-mce-bogus=\"1\">';\n }\n setEditorHtml(editor, content);\n editor.fire('SetContent', args);\n } else {\n if (args.format !== 'raw') {\n content = Serializer({ validate: editor.validate }, editor.schema).serialize(editor.parser.parse(content, {\n isRootContent: true,\n insert: true\n }));\n }\n args.content = isWsPreserveElement(Element.fromDom(body)) ? content : Tools.trim(content);\n setEditorHtml(editor, args.content);\n if (!args.no_events) {\n editor.fire('SetContent', args);\n }\n }\n return args.content;\n };\n var setContentTree = function (editor, body, content, args) {\n filter$2(editor.parser.getNodeFilters(), editor.parser.getAttributeFilters(), content);\n var html = Serializer({ validate: editor.validate }, editor.schema).serialize(content);\n args.content = isWsPreserveElement(Element.fromDom(body)) ? html : Tools.trim(html);\n setEditorHtml(editor, args.content);\n if (!args.no_events) {\n editor.fire('SetContent', args);\n }\n return content;\n };\n var setContent = function (editor, content, args) {\n if (args === void 0) {\n args = {};\n }\n args.format = args.format ? args.format : defaultFormat$1;\n args.set = true;\n args.content = isTreeNode(content) ? '' : content;\n if (!isTreeNode(content) && !args.no_events) {\n editor.fire('BeforeSetContent', args);\n content = args.content;\n }\n return Option.from(editor.getBody()).fold(constant(content), function (body) {\n return isTreeNode(content) ? setContentTree(editor, body, content, args) : setContentString(editor, body, content, args);\n });\n };\n\n var firePreProcess = function (editor, args) {\n return editor.fire('PreProcess', args);\n };\n var firePostProcess = function (editor, args) {\n return editor.fire('PostProcess', args);\n };\n var fireRemove = function (editor) {\n return editor.fire('remove');\n };\n var fireDetach = function (editor) {\n return editor.fire('detach');\n };\n var fireSwitchMode = function (editor, mode) {\n return editor.fire('SwitchMode', { mode: mode });\n };\n var fireObjectResizeStart = function (editor, target, width, height) {\n editor.fire('ObjectResizeStart', {\n target: target,\n width: width,\n height: height\n });\n };\n var fireObjectResized = function (editor, target, width, height) {\n editor.fire('ObjectResized', {\n target: target,\n width: width,\n height: height\n });\n };\n var Events = {\n firePreProcess: firePreProcess,\n firePostProcess: firePostProcess,\n fireRemove: fireRemove,\n fireDetach: fireDetach,\n fireSwitchMode: fireSwitchMode,\n fireObjectResizeStart: fireObjectResizeStart,\n fireObjectResized: fireObjectResized\n };\n\n var DOM$2 = DOMUtils$1.DOM;\n var restoreOriginalStyles = function (editor) {\n DOM$2.setStyle(editor.id, 'display', editor.orgDisplay);\n };\n var safeDestroy = function (x) {\n return Option.from(x).each(function (x) {\n return x.destroy();\n });\n };\n var clearDomReferences = function (editor) {\n editor.contentAreaContainer = editor.formElement = editor.container = editor.editorContainer = null;\n editor.bodyElement = editor.contentDocument = editor.contentWindow = null;\n editor.iframeElement = editor.targetElm = null;\n if (editor.selection) {\n editor.selection = editor.selection.win = editor.selection.dom = editor.selection.dom.doc = null;\n }\n };\n var restoreForm = function (editor) {\n var form = editor.formElement;\n if (form) {\n if (form._mceOldSubmit) {\n form.submit = form._mceOldSubmit;\n form._mceOldSubmit = null;\n }\n DOM$2.unbind(form, 'submit reset', editor.formEventDelegate);\n }\n };\n var remove$6 = function (editor) {\n if (!editor.removed) {\n var _selectionOverrides = editor._selectionOverrides, editorUpload = editor.editorUpload;\n var body = editor.getBody();\n var element = editor.getElement();\n if (body) {\n editor.save({ is_removing: true });\n }\n editor.removed = true;\n editor.unbindAllNativeEvents();\n if (editor.hasHiddenInput && element) {\n DOM$2.remove(element.nextSibling);\n }\n Events.fireRemove(editor);\n editor.editorManager.remove(editor);\n if (!editor.inline && body) {\n restoreOriginalStyles(editor);\n }\n Events.fireDetach(editor);\n DOM$2.remove(editor.getContainer());\n safeDestroy(_selectionOverrides);\n safeDestroy(editorUpload);\n editor.destroy();\n }\n };\n var destroy = function (editor, automatic) {\n var selection = editor.selection, dom = editor.dom;\n if (editor.destroyed) {\n return;\n }\n if (!automatic && !editor.removed) {\n editor.remove();\n return;\n }\n if (!automatic) {\n editor.editorManager.off('beforeunload', editor._beforeUnload);\n if (editor.theme && editor.theme.destroy) {\n editor.theme.destroy();\n }\n safeDestroy(selection);\n safeDestroy(dom);\n }\n restoreForm(editor);\n clearDomReferences(editor);\n editor.destroyed = true;\n };\n\n var hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n var shallow$1 = function (old, nu) {\n return nu;\n };\n var deep$1 = function (old, nu) {\n var bothObjects = isObject(old) && isObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++) {\n objects[i] = arguments[i];\n }\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject) {\n if (hasOwnProperty$2.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n var deepMerge = baseMerge(deep$1);\n var merge = baseMerge(shallow$1);\n\n var sectionResult = Immutable('sections', 'settings');\n var deviceDetection = detect$3().deviceType;\n var isTouch = deviceDetection.isTouch();\n var isPhone = deviceDetection.isPhone();\n var isTablet = deviceDetection.isTablet();\n var legacyMobilePlugins = [\n 'lists',\n 'autolink',\n 'autosave'\n ];\n var defaultTouchSettings = {\n table_grid: false,\n object_resizing: false,\n resize: false\n };\n var normalizePlugins = function (plugins) {\n var pluginNames = isArray(plugins) ? plugins.join(' ') : plugins;\n var trimmedPlugins = map(isString(pluginNames) ? pluginNames.split(' ') : [], trim);\n return filter(trimmedPlugins, function (item) {\n return item.length > 0;\n });\n };\n var filterLegacyMobilePlugins = function (plugins) {\n return filter(plugins, curry(contains, legacyMobilePlugins));\n };\n var extractSections = function (keys, settings) {\n var result = bifilter(settings, function (value, key) {\n return contains(keys, key);\n });\n return sectionResult(result.t, result.f);\n };\n var getSection = function (sectionResult, name, defaults) {\n if (defaults === void 0) {\n defaults = {};\n }\n var sections = sectionResult.sections();\n var sectionSettings = sections.hasOwnProperty(name) ? sections[name] : {};\n return Tools.extend({}, defaults, sectionSettings);\n };\n var hasSection = function (sectionResult, name) {\n return sectionResult.sections().hasOwnProperty(name);\n };\n var isSectionTheme = function (sectionResult, name, theme) {\n var section = sectionResult.sections();\n return hasSection(sectionResult, name) && section[name].theme === theme;\n };\n var getSectionConfig = function (sectionResult, name) {\n return hasSection(sectionResult, name) ? sectionResult.sections()[name] : {};\n };\n var getDefaultSettings = function (id, documentBaseUrl, isTouch, editor) {\n var baseDefaults = {\n id: id,\n theme: 'silver',\n toolbar_drawer: 'floating',\n plugins: '',\n document_base_url: documentBaseUrl,\n add_form_submit_trigger: true,\n submit_patch: true,\n add_unload_trigger: true,\n convert_urls: true,\n relative_urls: true,\n remove_script_host: true,\n object_resizing: true,\n doctype: '<!DOCTYPE html>',\n visual: true,\n font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%',\n forced_root_block: 'p',\n hidden_input: true,\n inline_styles: true,\n convert_fonts_to_spans: true,\n indent: true,\n indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',\n indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',\n entity_encoding: 'named',\n url_converter: editor.convertURL,\n url_converter_scope: editor\n };\n return __assign(__assign({}, baseDefaults), isTouch ? defaultTouchSettings : {});\n };\n var getDefaultMobileSettings = function (isPhone) {\n var defaultMobileSettings = {\n resize: false,\n toolbar_drawer: 'scrolling',\n toolbar_sticky: false\n };\n var defaultPhoneSettings = { menubar: false };\n return __assign(__assign(__assign({}, defaultTouchSettings), defaultMobileSettings), isPhone ? defaultPhoneSettings : {});\n };\n var getExternalPlugins = function (overrideSettings, settings) {\n var userDefinedExternalPlugins = settings.external_plugins ? settings.external_plugins : {};\n if (overrideSettings && overrideSettings.external_plugins) {\n return Tools.extend({}, overrideSettings.external_plugins, userDefinedExternalPlugins);\n } else {\n return userDefinedExternalPlugins;\n }\n };\n var combinePlugins = function (forcedPlugins, plugins) {\n return [].concat(normalizePlugins(forcedPlugins)).concat(normalizePlugins(plugins));\n };\n var processPlugins = function (isMobileDevice, sectionResult, defaultOverrideSettings, settings) {\n var forcedPlugins = normalizePlugins(defaultOverrideSettings.forced_plugins);\n var desktopPlugins = normalizePlugins(settings.plugins);\n var mobileConfig = getSectionConfig(sectionResult, 'mobile');\n var mobilePlugins = mobileConfig.plugins ? normalizePlugins(mobileConfig.plugins) : desktopPlugins;\n var platformPlugins = isMobileDevice && isSectionTheme(sectionResult, 'mobile', 'mobile') ? filterLegacyMobilePlugins(mobilePlugins) : isMobileDevice && hasSection(sectionResult, 'mobile') ? mobilePlugins : desktopPlugins;\n var combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);\n return Tools.extend(settings, { plugins: combinedPlugins.join(' ') });\n };\n var isOnMobile = function (isMobileDevice, sectionResult) {\n return isMobileDevice && hasSection(sectionResult, 'mobile');\n };\n var combineSettings = function (isMobileDevice, isPhone, defaultSettings, defaultOverrideSettings, settings) {\n var defaultDeviceSettings = isMobileDevice ? { mobile: getDefaultMobileSettings(isPhone) } : {};\n var sectionResult = extractSections(['mobile'], deepMerge(defaultDeviceSettings, settings));\n var extendedSettings = Tools.extend(defaultSettings, defaultOverrideSettings, sectionResult.settings(), isOnMobile(isMobileDevice, sectionResult) ? getSection(sectionResult, 'mobile') : {}, {\n validate: true,\n external_plugins: getExternalPlugins(defaultOverrideSettings, sectionResult.settings())\n });\n return processPlugins(isMobileDevice, sectionResult, defaultOverrideSettings, extendedSettings);\n };\n var getEditorSettings = function (editor, id, documentBaseUrl, defaultOverrideSettings, settings) {\n var defaultSettings = getDefaultSettings(id, documentBaseUrl, isTouch, editor);\n return combineSettings(isPhone || isTablet, isPhone, defaultSettings, defaultOverrideSettings, settings);\n };\n var getFiltered = function (predicate, editor, name) {\n return Option.from(editor.settings[name]).filter(predicate);\n };\n var getParamObject = function (value) {\n var output = {};\n if (typeof value === 'string') {\n each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function (val) {\n var arr = val.split('=');\n if (arr.length > 1) {\n output[Tools.trim(arr[0])] = Tools.trim(arr[1]);\n } else {\n output[Tools.trim(arr[0])] = Tools.trim(arr[0]);\n }\n });\n } else {\n output = value;\n }\n return output;\n };\n var isArrayOf = function (p) {\n return function (a) {\n return isArray(a) && forall(a, p);\n };\n };\n var getParam = function (editor, name, defaultVal, type) {\n var value = name in editor.settings ? editor.settings[name] : defaultVal;\n if (type === 'hash') {\n return getParamObject(value);\n } else if (type === 'string') {\n return getFiltered(isString, editor, name).getOr(defaultVal);\n } else if (type === 'number') {\n return getFiltered(isNumber, editor, name).getOr(defaultVal);\n } else if (type === 'boolean') {\n return getFiltered(isBoolean, editor, name).getOr(defaultVal);\n } else if (type === 'object') {\n return getFiltered(isObject, editor, name).getOr(defaultVal);\n } else if (type === 'array') {\n return getFiltered(isArray, editor, name).getOr(defaultVal);\n } else if (type === 'string[]') {\n return getFiltered(isArrayOf(isString), editor, name).getOr(defaultVal);\n } else if (type === 'function') {\n return getFiltered(isFunction, editor, name).getOr(defaultVal);\n } else {\n return value;\n }\n };\n\n var getProp = function (propName, elm) {\n var rawElm = elm.dom();\n return rawElm[propName];\n };\n var getComputedSizeProp = function (propName, elm) {\n return parseInt(get$2(elm, propName), 10);\n };\n var getClientWidth = curry(getProp, 'clientWidth');\n var getClientHeight = curry(getProp, 'clientHeight');\n var getMarginTop = curry(getComputedSizeProp, 'margin-top');\n var getMarginLeft = curry(getComputedSizeProp, 'margin-left');\n var getBoundingClientRect$1 = function (elm) {\n return elm.dom().getBoundingClientRect();\n };\n var isInsideElementContentArea = function (bodyElm, clientX, clientY) {\n var clientWidth = getClientWidth(bodyElm);\n var clientHeight = getClientHeight(bodyElm);\n return clientX >= 0 && clientY >= 0 && clientX <= clientWidth && clientY <= clientHeight;\n };\n var transpose = function (inline, elm, clientX, clientY) {\n var clientRect = getBoundingClientRect$1(elm);\n var deltaX = inline ? clientRect.left + elm.dom().clientLeft + getMarginLeft(elm) : 0;\n var deltaY = inline ? clientRect.top + elm.dom().clientTop + getMarginTop(elm) : 0;\n var x = clientX - deltaX;\n var y = clientY - deltaY;\n return {\n x: x,\n y: y\n };\n };\n var isXYInContentArea = function (editor, clientX, clientY) {\n var bodyElm = Element.fromDom(editor.getBody());\n var targetElm = editor.inline ? bodyElm : documentElement(bodyElm);\n var transposedPoint = transpose(editor.inline, targetElm, clientX, clientY);\n return isInsideElementContentArea(targetElm, transposedPoint.x, transposedPoint.y);\n };\n var fromDomSafe = function (node) {\n return Option.from(node).map(Element.fromDom);\n };\n var isEditorAttachedToDom = function (editor) {\n var rawContainer = editor.inline ? editor.getBody() : editor.getContentAreaContainer();\n return fromDomSafe(rawContainer).map(function (container) {\n return contains$2(owner(container), container);\n }).getOr(false);\n };\n var EditorView = {\n isXYInContentArea: isXYInContentArea,\n isEditorAttachedToDom: isEditorAttachedToDom\n };\n\n function NotificationManagerImpl() {\n var unimplemented = function () {\n throw new Error('Theme did not provide a NotificationManager implementation.');\n };\n return {\n open: unimplemented,\n close: unimplemented,\n reposition: unimplemented,\n getArgs: unimplemented\n };\n }\n\n function NotificationManager(editor) {\n var notifications = [];\n var getImplementation = function () {\n var theme = editor.theme;\n return theme && theme.getNotificationManagerImpl ? theme.getNotificationManagerImpl() : NotificationManagerImpl();\n };\n var getTopNotification = function () {\n return Option.from(notifications[0]);\n };\n var isEqual = function (a, b) {\n return a.type === b.type && a.text === b.text && !a.progressBar && !a.timeout && !b.progressBar && !b.timeout;\n };\n var reposition = function () {\n if (notifications.length > 0) {\n getImplementation().reposition(notifications);\n }\n };\n var addNotification = function (notification) {\n notifications.push(notification);\n };\n var closeNotification = function (notification) {\n findIndex(notifications, function (otherNotification) {\n return otherNotification === notification;\n }).each(function (index) {\n notifications.splice(index, 1);\n });\n };\n var open = function (spec) {\n if (editor.removed || !EditorView.isEditorAttachedToDom(editor)) {\n return;\n }\n return find(notifications, function (notification) {\n return isEqual(getImplementation().getArgs(notification), spec);\n }).getOrThunk(function () {\n editor.editorManager.setActive(editor);\n var notification = getImplementation().open(spec, function () {\n closeNotification(notification);\n reposition();\n });\n addNotification(notification);\n reposition();\n return notification;\n });\n };\n var close = function () {\n getTopNotification().each(function (notification) {\n getImplementation().close(notification);\n closeNotification(notification);\n reposition();\n });\n };\n var getNotifications = function () {\n return notifications;\n };\n var registerEvents = function (editor) {\n editor.on('SkinLoaded', function () {\n var serviceMessage = editor.settings.service_message;\n if (serviceMessage) {\n open({\n text: serviceMessage,\n type: 'warning',\n timeout: 0\n });\n }\n });\n editor.on('ResizeEditor ResizeWindow NodeChange', function () {\n Delay.requestAnimationFrame(reposition);\n });\n editor.on('remove', function () {\n each(notifications.slice(), function (notification) {\n getImplementation().close(notification);\n });\n });\n };\n registerEvents(editor);\n return {\n open: open,\n close: close,\n getNotifications: getNotifications\n };\n }\n\n function WindowManagerImpl () {\n var unimplemented = function () {\n throw new Error('Theme did not provide a WindowManager implementation.');\n };\n return {\n open: unimplemented,\n openUrl: unimplemented,\n alert: unimplemented,\n confirm: unimplemented,\n close: unimplemented,\n getParams: unimplemented,\n setParams: unimplemented\n };\n }\n\n var WindowManager = function (editor) {\n var dialogs = [];\n var getImplementation = function () {\n var theme = editor.theme;\n return theme && theme.getWindowManagerImpl ? theme.getWindowManagerImpl() : WindowManagerImpl();\n };\n var funcBind = function (scope, f) {\n return function () {\n return f ? f.apply(scope, arguments) : undefined;\n };\n };\n var fireOpenEvent = function (dialog) {\n editor.fire('OpenWindow', { dialog: dialog });\n };\n var fireCloseEvent = function (dialog) {\n editor.fire('CloseWindow', { dialog: dialog });\n };\n var addDialog = function (dialog) {\n dialogs.push(dialog);\n fireOpenEvent(dialog);\n };\n var closeDialog = function (dialog) {\n fireCloseEvent(dialog);\n dialogs = filter(dialogs, function (otherDialog) {\n return otherDialog !== dialog;\n });\n if (dialogs.length === 0) {\n editor.focus();\n }\n };\n var getTopDialog = function () {\n return Option.from(dialogs[dialogs.length - 1]);\n };\n var storeSelectionAndOpenDialog = function (openDialog) {\n editor.editorManager.setActive(editor);\n SelectionBookmark.store(editor);\n var dialog = openDialog();\n addDialog(dialog);\n return dialog;\n };\n var open = function (args, params) {\n return storeSelectionAndOpenDialog(function () {\n return getImplementation().open(args, params, closeDialog);\n });\n };\n var openUrl = function (args) {\n return storeSelectionAndOpenDialog(function () {\n return getImplementation().openUrl(args, closeDialog);\n });\n };\n var alert = function (message, callback, scope) {\n getImplementation().alert(message, funcBind(scope ? scope : this, callback));\n };\n var confirm = function (message, callback, scope) {\n getImplementation().confirm(message, funcBind(scope ? scope : this, callback));\n };\n var close = function () {\n getTopDialog().each(function (dialog) {\n getImplementation().close(dialog);\n closeDialog(dialog);\n });\n };\n editor.on('remove', function () {\n each(dialogs, function (dialog) {\n getImplementation().close(dialog);\n });\n });\n return {\n open: open,\n openUrl: openUrl,\n alert: alert,\n confirm: confirm,\n close: close\n };\n };\n\n var displayNotification = function (editor, message) {\n editor.notificationManager.open({\n type: 'error',\n text: message\n });\n };\n var displayError = function (editor, message) {\n if (editor._skinLoaded) {\n displayNotification(editor, message);\n } else {\n editor.on('SkinLoaded', function () {\n displayNotification(editor, message);\n });\n }\n };\n var uploadError = function (editor, message) {\n displayError(editor, I18n.translate([\n 'Failed to upload image: {0}',\n message\n ]));\n };\n var logError = function (msg) {\n domGlobals.console.error(msg);\n };\n var createLoadError = function (type, url, name) {\n return name ? 'Failed to load ' + type + ': ' + name + ' from url ' + url : 'Failed to load ' + type + ' url: ' + url;\n };\n var pluginLoadError = function (url, name) {\n logError(createLoadError('plugin', url, name));\n };\n var iconsLoadError = function (url, name) {\n logError(createLoadError('icons', url, name));\n };\n var languageLoadError = function (url, name) {\n logError(createLoadError('language', url, name));\n };\n var pluginInitError = function (editor, name, err) {\n var message = I18n.translate([\n 'Failed to initialize plugin: {0}',\n name\n ]);\n initError(message, err);\n displayError(editor, message);\n };\n var initError = function (message) {\n var x = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n x[_i - 1] = arguments[_i];\n }\n var console = domGlobals.window.console;\n if (console) {\n if (console.error) {\n console.error.apply(console, arguments);\n } else {\n console.log.apply(console, arguments);\n }\n }\n };\n var ErrorReporter = {\n pluginLoadError: pluginLoadError,\n iconsLoadError: iconsLoadError,\n languageLoadError: languageLoadError,\n pluginInitError: pluginInitError,\n uploadError: uploadError,\n displayError: displayError,\n initError: initError\n };\n\n var getAll = function () {\n return {\n 'accessibility-check': '<svg width=\"24\" height=\"24\"><path d=\"M12 2a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.1.9-2 2-2zm8 7h-5v12c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-5c0-.6-.4-1-1-1a1 1 0 0 0-1 1v5c0 .6-.4 1-1 1a1 1 0 0 1-1-1V9H4a1 1 0 1 1 0-2h16c.6 0 1 .4 1 1s-.4 1-1 1z\" fill-rule=\"nonzero\"/></svg>',\n 'action-next': '<svg width=\"24\" height=\"24\"><path fill-rule=\"nonzero\" d=\"M5.7 7.3a1 1 0 0 0-1.4 1.4l7.7 7.7 7.7-7.7a1 1 0 1 0-1.4-1.4L12 13.6 5.7 7.3z\"/></svg>',\n 'action-prev': '<svg width=\"24\" height=\"24\"><path fill-rule=\"nonzero\" d=\"M18.3 15.7a1 1 0 0 0 1.4-1.4L12 6.6l-7.7 7.7a1 1 0 0 0 1.4 1.4L12 9.4l6.3 6.3z\"/></svg>',\n 'align-center': '<svg width=\"24\" height=\"24\"><path d=\"M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm3 4h8c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 1 1 0-2zm0 8h8c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2zm-3-4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z\" fill-rule=\"evenodd\"/></svg>',\n 'align-justify': '<svg width=\"24\" height=\"24\"><path d=\"M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z\" fill-rule=\"evenodd\"/></svg>',\n 'align-left': '<svg width=\"24\" height=\"24\"><path d=\"M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 8h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0-4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z\" fill-rule=\"evenodd\"/></svg>',\n 'align-none': '<svg width=\"24\" height=\"24\"><path d=\"M14.2 5L13 7H5a1 1 0 1 1 0-2h9.2zm4 0h.8a1 1 0 0 1 0 2h-2l1.2-2zm-6.4 4l-1.2 2H5a1 1 0 0 1 0-2h6.8zm4 0H19a1 1 0 0 1 0 2h-4.4l1.2-2zm-6.4 4l-1.2 2H5a1 1 0 0 1 0-2h4.4zm4 0H19a1 1 0 0 1 0 2h-6.8l1.2-2zM7 17l-1.2 2H5a1 1 0 0 1 0-2h2zm4 0h8a1 1 0 0 1 0 2H9.8l1.2-2zm5.2-13.5l1.3.7-9.7 16.3-1.3-.7 9.7-16.3z\" fill-rule=\"evenodd\"/></svg>',\n 'align-right': '<svg width=\"24\" height=\"24\"><path d=\"M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm6 4h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0 8h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm-6-4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z\" fill-rule=\"evenodd\"/></svg>',\n 'arrow-left': '<svg width=\"24\" height=\"24\"><path d=\"M5.6 13l12 6a1 1 0 0 0 1.4-1V6a1 1 0 0 0-1.4-.9l-12 6a1 1 0 0 0 0 1.8z\" fill-rule=\"evenodd\"/></svg>',\n 'arrow-right': '<svg width=\"24\" height=\"24\"><path d=\"M18.5 13l-12 6A1 1 0 0 1 5 18V6a1 1 0 0 1 1.4-.9l12 6a1 1 0 0 1 0 1.8z\" fill-rule=\"evenodd\"/></svg>',\n 'bold': '<svg width=\"24\" height=\"24\"><path d=\"M7.8 19c-.3 0-.5 0-.6-.2l-.2-.5V5.7c0-.2 0-.4.2-.5l.6-.2h5c1.5 0 2.7.3 3.5 1 .7.6 1.1 1.4 1.1 2.5a3 3 0 0 1-.6 1.9c-.4.6-1 1-1.6 1.2.4.1.9.3 1.3.6s.8.7 1 1.2c.4.4.5 1 .5 1.6 0 1.3-.4 2.3-1.3 3-.8.7-2.1 1-3.8 1H7.8zm5-8.3c.6 0 1.2-.1 1.6-.5.4-.3.6-.7.6-1.3 0-1.1-.8-1.7-2.3-1.7H9.3v3.5h3.4zm.5 6c.7 0 1.3-.1 1.7-.4.4-.4.6-.9.6-1.5s-.2-1-.7-1.4c-.4-.3-1-.4-2-.4H9.4v3.8h4z\" fill-rule=\"evenodd\"/></svg>',\n 'bookmark': '<svg width=\"24\" height=\"24\"><path d=\"M6 4v17l6-4 6 4V4c0-.6-.4-1-1-1H7a1 1 0 0 0-1 1z\" fill-rule=\"nonzero\"/></svg>',\n 'border-width': '<svg width=\"24\" height=\"24\"><path d=\"M5 14.8h14a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2zm-.5 3.7h15c.3 0 .5.2.5.5s-.2.5-.5.5h-15a.5.5 0 1 1 0-1zm.5-8.3h14c.6 0 1 .4 1 1v1c0 .5-.4 1-1 1H5a1 1 0 0 1-1-1v-1c0-.6.4-1 1-1zm0-5.7h14c.6 0 1 .4 1 1v2c0 .6-.4 1-1 1H5a1 1 0 0 1-1-1v-2c0-.6.4-1 1-1z\" fill-rule=\"evenodd\"/></svg>',\n 'brightness': '<svg width=\"24\" height=\"24\"><path d=\"M12 17c.3 0 .5.1.7.3.2.2.3.4.3.7v1c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7v-1c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3zm0-10a1 1 0 0 1-.7-.3A1 1 0 0 1 11 6V5c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3.3 0 .5.1.7.3.2.2.3.4.3.7v1c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3zm7 4c.3 0 .5.1.7.3.2.2.3.4.3.7 0 .3-.1.5-.3.7a1 1 0 0 1-.7.3h-1a1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h1zM7 12c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3H5a1 1 0 0 1-.7-.3A1 1 0 0 1 4 12c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h1c.3 0 .5.1.7.3.2.2.3.4.3.7zm10 3.5l.7.8c.2.1.3.4.3.6 0 .3-.1.6-.3.8a1 1 0 0 1-.8.3 1 1 0 0 1-.6-.3l-.8-.7a1 1 0 0 1-.3-.8c0-.2.1-.5.3-.7a1 1 0 0 1 1.4 0zm-10-7l-.7-.8a1 1 0 0 1-.3-.6c0-.3.1-.6.3-.8.2-.2.5-.3.8-.3.2 0 .5.1.7.3l.7.7c.2.2.3.5.3.8 0 .2-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.8-.3zm10 0a1 1 0 0 1-.8.3 1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.3.1-.6.3-.8l.8-.7c.1-.2.4-.3.6-.3.3 0 .6.1.8.3.2.2.3.5.3.8 0 .2-.1.5-.3.7l-.7.7zm-10 7c.2-.2.5-.3.8-.3.2 0 .5.1.7.3a1 1 0 0 1 0 1.4l-.8.8a1 1 0 0 1-.6.3 1 1 0 0 1-.8-.3 1 1 0 0 1-.3-.8c0-.2.1-.5.3-.6l.7-.8zM12 8a4 4 0 0 1 3.7 2.4 4 4 0 0 1 0 3.2A4 4 0 0 1 12 16a4 4 0 0 1-3.7-2.4 4 4 0 0 1 0-3.2A4 4 0 0 1 12 8zm0 6.5c.7 0 1.3-.2 1.8-.7.5-.5.7-1.1.7-1.8s-.2-1.3-.7-1.8c-.5-.5-1.1-.7-1.8-.7s-1.3.2-1.8.7c-.5.5-.7 1.1-.7 1.8s.2 1.3.7 1.8c.5.5 1.1.7 1.8.7z\" fill-rule=\"evenodd\"/></svg>',\n 'browse': '<svg width=\"24\" height=\"24\"><path d=\"M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4v-2h4V8H5v10h4v2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zm-8 9.4l-2.3 2.3a1 1 0 1 1-1.4-1.4l4-4a1 1 0 0 1 1.4 0l4 4a1 1 0 0 1-1.4 1.4L13 13.4V20a1 1 0 0 1-2 0v-6.6z\" fill-rule=\"nonzero\"/></svg>',\n 'cancel': '<svg width=\"24\" height=\"24\"><path d=\"M12 4.6a7.4 7.4 0 1 1 0 14.8 7.4 7.4 0 0 1 0-14.8zM12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zm0 8L14.8 8l1 1.1-2.7 2.8 2.7 2.7-1.1 1.1-2.7-2.7-2.7 2.7-1-1.1 2.6-2.7-2.7-2.7 1-1.1 2.8 2.7z\" fill-rule=\"nonzero\"/></svg>',\n 'change-case': '<svg width=\"24\" height=\"24\"><path d=\"M18.4 18.2v-.6c-.5.8-1.3 1.2-2.4 1.2-2.2 0-3.3-1.6-3.3-4.8 0-3.1 1-4.7 3.3-4.7 1.1 0 1.8.3 2.4 1.1v-.6c0-.5.4-.8.8-.8s.8.3.8.8v8.4c0 .5-.4.8-.8.8a.8.8 0 0 1-.8-.8zm-2-7.4c-1.3 0-1.8.9-1.8 3.2 0 2.4.5 3.3 1.7 3.3 1.3 0 1.8-.9 1.8-3.2 0-2.4-.5-3.3-1.7-3.3zM10 15.7H5.5l-.8 2.6a1 1 0 0 1-1 .7h-.2a.7.7 0 0 1-.7-1l4-12a1 1 0 1 1 2 0l4 12a.7.7 0 0 1-.8 1h-.2a1 1 0 0 1-1-.7l-.8-2.6zm-.3-1.5l-2-6.5-1.9 6.5h3.9z\" fill-rule=\"evenodd\"/></svg>',\n 'character-count': '<svg width=\"24\" height=\"24\"><path d=\"M4 11.5h16v1H4v-1zm4.8-6.8V10H7.7V5.8h-1v-1h2zM11 8.3V9h2v1h-3V7.7l2-1v-.9h-2v-1h3v2.4l-2 1zm6.3-3.4V10h-3.1V9h2.1V8h-2.1V6.8h2.1v-1h-2.1v-1h3.1zM5.8 16.4c0-.5.2-.8.5-1 .2-.2.6-.3 1.2-.3l.8.1c.2 0 .4.2.5.3l.4.4v2.8l.2.3H8.2v-.1-.2l-.6.3H7c-.4 0-.7 0-1-.2a1 1 0 0 1-.3-.9c0-.3 0-.6.3-.8.3-.2.7-.4 1.2-.4l.6-.2h.3v-.2l-.1-.2a.8.8 0 0 0-.5-.1 1 1 0 0 0-.4 0l-.3.4h-1zm2.3.8h-.2l-.2.1-.4.1a1 1 0 0 0-.4.2l-.2.2.1.3.5.1h.4l.4-.4v-.6zm2-3.4h1.2v1.7l.5-.3h.5c.5 0 .9.1 1.2.5.3.4.5.8.5 1.4 0 .6-.2 1.1-.5 1.5-.3.4-.7.6-1.3.6l-.6-.1-.4-.4v.4h-1.1v-5.4zm1.1 3.3c0 .3 0 .6.2.8a.7.7 0 0 0 1.2 0l.2-.8c0-.4 0-.6-.2-.8a.7.7 0 0 0-.6-.3l-.6.3-.2.8zm6.1-.5c0-.2 0-.3-.2-.4a.8.8 0 0 0-.5-.2c-.3 0-.5.1-.6.3l-.2.9c0 .3 0 .6.2.8.1.2.3.3.6.3.2 0 .4 0 .5-.2l.2-.4h1.1c0 .5-.3.8-.6 1.1a2 2 0 0 1-1.3.4c-.5 0-1-.2-1.3-.6a2 2 0 0 1-.5-1.4c0-.6.1-1.1.5-1.5.3-.4.8-.5 1.4-.5.5 0 1 0 1.2.3.4.3.5.7.5 1.2h-1v-.1z\" fill-rule=\"evenodd\"/></svg>',\n 'checklist-rtl': '<svg width=\"24\" height=\"24\"><path d=\"M5 17h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm14.2 11c.2-.4.6-.5.9-.3.3.2.4.6.2 1L18 20c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8zm0-6c.2-.4.6-.5.9-.3.3.2.4.6.2 1L18 14c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8zm0-6c.2-.4.6-.5.9-.3.3.2.4.6.2 1L18 8c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8z\" fill-rule=\"evenodd\"/></svg>',\n 'checklist': '<svg width=\"24\" height=\"24\"><path d=\"M11 17h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0-6h8a1 1 0 0 1 0 2h-8a1 1 0 0 1 0-2zM7.2 16c.2-.4.6-.5.9-.3.3.2.4.6.2 1L6 20c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8zm0-6c.2-.4.6-.5.9-.3.3.2.4.6.2 1L6 14c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8zm0-6c.2-.4.6-.5.9-.3.3.2.4.6.2 1L6 8c-.2.3-.7.4-1 0L3.8 6.9a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8z\" fill-rule=\"evenodd\"/></svg>',\n 'checkmark': '<svg width=\"24\" height=\"24\"><path d=\"M18.2 5.4a1 1 0 0 1 1.6 1.2l-8 12a1 1 0 0 1-1.5.1l-5-5a1 1 0 1 1 1.4-1.4l4.1 4.1 7.4-11z\" fill-rule=\"nonzero\"/></svg>',\n 'chevron-down': '<svg width=\"10\" height=\"10\"><path d=\"M8.7 2.2c.3-.3.8-.3 1 0 .4.4.4.9 0 1.2L5.7 7.8c-.3.3-.9.3-1.2 0L.2 3.4a.8.8 0 0 1 0-1.2c.3-.3.8-.3 1.1 0L5 6l3.7-3.8z\" fill-rule=\"nonzero\"/></svg>',\n 'chevron-left': '<svg width=\"10\" height=\"10\"><path d=\"M7.8 1.3L4 5l3.8 3.7c.3.3.3.8 0 1-.4.4-.9.4-1.2 0L2.2 5.7a.8.8 0 0 1 0-1.2L6.6.2C7 0 7.4 0 7.8.2c.3.3.3.8 0 1.1z\" fill-rule=\"nonzero\"/></svg>',\n 'chevron-right': '<svg width=\"10\" height=\"10\"><path d=\"M2.2 1.3a.8.8 0 0 1 0-1c.4-.4.9-.4 1.2 0l4.4 4.1c.3.4.3.9 0 1.2L3.4 9.8c-.3.3-.8.3-1.2 0a.8.8 0 0 1 0-1.1L6 5 2.2 1.3z\" fill-rule=\"nonzero\"/></svg>',\n 'chevron-up': '<svg width=\"10\" height=\"10\"><path d=\"M8.7 7.8L5 4 1.3 7.8c-.3.3-.8.3-1 0a.8.8 0 0 1 0-1.2l4.1-4.4c.3-.3.9-.3 1.2 0l4.2 4.4c.3.3.3.9 0 1.2-.3.3-.8.3-1.1 0z\" fill-rule=\"nonzero\"/></svg>',\n 'close': '<svg width=\"24\" height=\"24\"><path d=\"M17.3 8.2L13.4 12l3.9 3.8a1 1 0 0 1-1.5 1.5L12 13.4l-3.8 3.9a1 1 0 0 1-1.5-1.5l3.9-3.8-3.9-3.8a1 1 0 0 1 1.5-1.5l3.8 3.9 3.8-3.9a1 1 0 0 1 1.5 1.5z\" fill-rule=\"evenodd\"/></svg>',\n 'code-sample': '<svg width=\"24\" height=\"26\"><path d=\"M7.1 11a2.8 2.8 0 0 1-.8 2 2.8 2.8 0 0 1 .8 2v1.7c0 .3.1.6.4.8.2.3.5.4.8.4.3 0 .4.2.4.4v.8c0 .2-.1.4-.4.4-.7 0-1.4-.3-2-.8-.5-.6-.8-1.3-.8-2V15c0-.3-.1-.6-.4-.8-.2-.3-.5-.4-.8-.4a.4.4 0 0 1-.4-.4v-.8c0-.2.2-.4.4-.4.3 0 .6-.1.8-.4.3-.2.4-.5.4-.8V9.3c0-.7.3-1.4.8-2 .6-.5 1.3-.8 2-.8.3 0 .4.2.4.4v.8c0 .2-.1.4-.4.4-.3 0-.6.1-.8.4-.3.2-.4.5-.4.8V11zm9.8 0V9.3c0-.3-.1-.6-.4-.8-.2-.3-.5-.4-.8-.4a.4.4 0 0 1-.4-.4V7c0-.2.1-.4.4-.4.7 0 1.4.3 2 .8.5.6.8 1.3.8 2V11c0 .3.1.6.4.8.2.3.5.4.8.4.2 0 .4.2.4.4v.8c0 .2-.2.4-.4.4-.3 0-.6.1-.8.4-.3.2-.4.5-.4.8v1.7c0 .7-.3 1.4-.8 2-.6.5-1.3.8-2 .8a.4.4 0 0 1-.4-.4v-.8c0-.2.1-.4.4-.4.3 0 .6-.1.8-.4.3-.2.4-.5.4-.8V15a2.8 2.8 0 0 1 .8-2 2.8 2.8 0 0 1-.8-2zm-3.3-.4c0 .4-.1.8-.5 1.1-.3.3-.7.5-1.1.5-.4 0-.8-.2-1.1-.5-.4-.3-.5-.7-.5-1.1 0-.5.1-.9.5-1.2.3-.3.7-.4 1.1-.4.4 0 .8.1 1.1.4.4.3.5.7.5 1.2zM12 13c.4 0 .8.1 1.1.5.4.3.5.7.5 1.1 0 1-.1 1.6-.5 2a3 3 0 0 1-1.1 1c-.4.3-.8.4-1.1.4a.5.5 0 0 1-.5-.5V17a3 3 0 0 0 1-.2l.6-.6c-.6 0-1-.2-1.3-.5-.2-.3-.3-.7-.3-1 0-.5.1-1 .5-1.2.3-.4.7-.5 1.1-.5z\" fill-rule=\"evenodd\"/></svg>',\n 'color-levels': '<svg width=\"24\" height=\"24\"><path d=\"M17.5 11.4A9 9 0 0 1 18 14c0 .5 0 1-.2 1.4 0 .4-.3.9-.5 1.3a6.2 6.2 0 0 1-3.7 3 5.7 5.7 0 0 1-3.2 0A5.9 5.9 0 0 1 7.6 18a6.2 6.2 0 0 1-1.4-2.6 6.7 6.7 0 0 1 0-2.8c0-.4.1-.9.3-1.3a13.6 13.6 0 0 1 2.3-4A20 20 0 0 1 12 4a26.4 26.4 0 0 1 3.2 3.4 18.2 18.2 0 0 1 2.3 4zm-2 4.5c.4-.7.5-1.4.5-2a7.3 7.3 0 0 0-1-3.2c.2.6.2 1.2.2 1.9a4.5 4.5 0 0 1-1.3 3 5.3 5.3 0 0 1-2.3 1.5 4.9 4.9 0 0 1-2 .1 4.3 4.3 0 0 0 2.4.8 4 4 0 0 0 2-.6 4 4 0 0 0 1.5-1.5z\" fill-rule=\"evenodd\"/></svg>',\n 'color-picker': '<svg width=\"24\" height=\"24\"><path d=\"M12 3a9 9 0 0 0 0 18 1.5 1.5 0 0 0 1.1-2.5c-.2-.3-.4-.6-.4-1 0-.8.7-1.5 1.5-1.5H16a5 5 0 0 0 5-5c0-4.4-4-8-9-8zm-5.5 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm3-4a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm3 4a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\" fill-rule=\"nonzero\"/></svg>',\n 'color-swatch-remove-color': '<svg width=\"24\" height=\"24\"><path stroke=\"#000\" stroke-width=\"2\" d=\"M21 3L3 21\" fill-rule=\"evenodd\"/></svg>',\n 'color-swatch': '<svg width=\"24\" height=\"24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"1\" fill-rule=\"evenodd\"/></svg>',\n 'comment-add': '<svg width=\"24\" height=\"24\"><g fill-rule=\"nonzero\"><path d=\"M9 19l3-2h7c.6 0 1-.4 1-1V6c0-.6-.4-1-1-1H5a1 1 0 0 0-1 1v10c0 .6.4 1 1 1h4v2zm-2 4v-4H5a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3h-6.4L7 23z\"/><path d=\"M13 10h2a1 1 0 0 1 0 2h-2v2a1 1 0 0 1-2 0v-2H9a1 1 0 0 1 0-2h2V8a1 1 0 0 1 2 0v2z\"/></g></svg>',\n 'comment': '<svg width=\"24\" height=\"24\"><path fill-rule=\"nonzero\" d=\"M9 19l3-2h7c.6 0 1-.4 1-1V6c0-.6-.4-1-1-1H5a1 1 0 0 0-1 1v10c0 .6.4 1 1 1h4v2zm-2 4v-4H5a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3h-6.4L7 23z\"/></svg>',\n 'contrast': '<svg width=\"24\" height=\"24\"><path d=\"M12 4a7.8 7.8 0 0 1 5.7 2.3A8 8 0 1 1 12 4zm-6 8a6 6 0 0 0 6 6V6a6 6 0 0 0-6 6z\" fill-rule=\"evenodd\"/></svg>',\n 'copy': '<svg width=\"24\" height=\"24\"><path d=\"M16 3H6a2 2 0 0 0-2 2v11h2V5h10V3zm1 4a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2V9c0-1.2.9-2 2-2h7zm0 12V9h-7v10h7z\" fill-rule=\"nonzero\"/></svg>',\n 'crop': '<svg width=\"24\" height=\"24\"><path d=\"M17 8v7h2c.6 0 1 .4 1 1s-.4 1-1 1h-2v2c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-2H7V9H5a1 1 0 1 1 0-2h2V5c0-.6.4-1 1-1s1 .4 1 1v2h7l3-3 1 1-3 3zM9 9v5l5-5H9zm1 6h5v-5l-5 5z\" fill-rule=\"evenodd\"/></svg>',\n 'cut': '<svg width=\"24\" height=\"24\"><path d=\"M18 15c.6.7 1 1.4 1 2.3 0 .8-.2 1.5-.7 2l-.8.5-1 .2c-.4 0-.8 0-1.2-.3a3.9 3.9 0 0 1-2.1-2.2c-.2-.5-.3-1-.2-1.5l-1-1-1 1c0 .5 0 1-.2 1.5-.1.5-.4 1-.9 1.4-.3.4-.7.6-1.2.8l-1.2.3c-.4 0-.7 0-1-.2-.3 0-.6-.3-.8-.5-.5-.5-.8-1.2-.7-2 0-.9.4-1.6 1-2.2A3.7 3.7 0 0 1 8.6 14H9l1-1-4-4-.5-1a3.3 3.3 0 0 1 0-2c0-.4.3-.7.5-1l6 6 6-6 .5 1a3.3 3.3 0 0 1 0 2c0 .4-.3.7-.5 1l-4 4 1 1h.5c.4 0 .8 0 1.2.3.5.2.9.4 1.2.8zm-8.5 2.2l.1-.4v-.3-.4a1 1 0 0 0-.2-.5 1 1 0 0 0-.4-.2 1.6 1.6 0 0 0-.8 0 2.6 2.6 0 0 0-.8.3 2.5 2.5 0 0 0-.9 1.1l-.1.4v.7l.2.5.5.2h.7a2.5 2.5 0 0 0 .8-.3 2.8 2.8 0 0 0 1-1zm2.5-2.8c.4 0 .7-.1 1-.4.3-.3.4-.6.4-1s-.1-.7-.4-1c-.3-.3-.6-.4-1-.4s-.7.1-1 .4c-.3.3-.4.6-.4 1s.1.7.4 1c.3.3.6.4 1 .4zm5.4 4l.2-.5v-.4-.3a2.6 2.6 0 0 0-.3-.8 2.4 2.4 0 0 0-.7-.7 2.5 2.5 0 0 0-.8-.3 1.5 1.5 0 0 0-.8 0 1 1 0 0 0-.4.2 1 1 0 0 0-.2.5 1.5 1.5 0 0 0 0 .7v.4l.3.4.3.4a2.8 2.8 0 0 0 .8.5l.4.1h.7l.5-.2z\" fill-rule=\"evenodd\"/></svg>',\n 'document-properties': '<svg width=\"24\" height=\"24\"><path d=\"M14.4 3H7a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h10a2 2 0 0 0 2-2V7.6L14.4 3zM17 19H7V5h6v4h4v10z\" fill-rule=\"nonzero\"/></svg>',\n 'drag': '<svg width=\"24\" height=\"24\"><path d=\"M13 5h2v2h-2V5zm0 4h2v2h-2V9zM9 9h2v2H9V9zm4 4h2v2h-2v-2zm-4 0h2v2H9v-2zm0 4h2v2H9v-2zm4 0h2v2h-2v-2zM9 5h2v2H9V5z\" fill-rule=\"evenodd\"/></svg>',\n 'duplicate': '<svg width=\"24\" height=\"24\"><g fill-rule=\"nonzero\"><path d=\"M16 3v2H6v11H4V5c0-1.1.9-2 2-2h10zm3 8h-2V9h-7v10h9a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2V9c0-1.2.9-2 2-2h7a2 2 0 0 1 2 2v2z\"/><path d=\"M17 14h1a1 1 0 0 1 0 2h-1v1a1 1 0 0 1-2 0v-1h-1a1 1 0 0 1 0-2h1v-1a1 1 0 0 1 2 0v1z\"/></g></svg>',\n 'edit-block': '<svg width=\"24\" height=\"24\"><path fill-rule=\"nonzero\" d=\"M19.8 8.8l-9.4 9.4c-.2.2-.5.4-.9.4l-5.4 1.2 1.2-5.4.5-.8 9.4-9.4c.7-.7 1.8-.7 2.5 0l2.1 2.1c.7.7.7 1.8 0 2.5zm-2-.2l1-.9v-.3l-2.2-2.2a.3.3 0 0 0-.3 0l-1 1L18 8.5zm-1 1l-2.5-2.4-6 6 2.5 2.5 6-6zm-7 7.1l-2.6-2.4-.3.3-.1.2-.7 3 3.1-.6h.1l.4-.5z\"/></svg>',\n 'edit-image': '<svg width=\"24\" height=\"24\"><path d=\"M18 16h2V7a2 2 0 0 0-2-2H7v2h11v9zM6 17h15a1 1 0 0 1 0 2h-1v1a1 1 0 0 1-2 0v-1H6a2 2 0 0 1-2-2V7H3a1 1 0 1 1 0-2h1V4a1 1 0 1 1 2 0v13zm3-5.3l1.3 2 3-4.7 3.7 6H7l2-3.3z\" fill-rule=\"nonzero\"/></svg>',\n 'embed-page': '<svg width=\"24\" height=\"24\"><path d=\"M19 6V5H5v14h2A13 13 0 0 1 19 6zm0 1.4c-.8.8-1.6 2.4-2.2 4.6H19V7.4zm0 5.6h-2.4c-.4 1.8-.6 3.8-.6 6h3v-6zm-4 6c0-2.2.2-4.2.6-6H13c-.7 1.8-1.1 3.8-1.1 6h3zm-4 0c0-2.2.4-4.2 1-6H9.6A12 12 0 0 0 8 19h3zM4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm11.8 9c.4-1.9 1-3.4 1.8-4.5a9.2 9.2 0 0 0-4 4.5h2.2zm-3.4 0a12 12 0 0 1 2.8-4 12 12 0 0 0-5 4h2.2z\" fill-rule=\"nonzero\"/></svg>',\n 'embed': '<svg width=\"24\" height=\"24\"><path d=\"M4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm1 2v14h14V5H5zm4.8 2.6l5.6 4a.5.5 0 0 1 0 .8l-5.6 4A.5.5 0 0 1 9 16V8a.5.5 0 0 1 .8-.4z\" fill-rule=\"nonzero\"/></svg>',\n 'emoji': '<svg width=\"24\" height=\"24\"><path d=\"M9 11c.6 0 1-.4 1-1s-.4-1-1-1a1 1 0 0 0-1 1c0 .6.4 1 1 1zm6 0c.6 0 1-.4 1-1s-.4-1-1-1a1 1 0 0 0-1 1c0 .6.4 1 1 1zm-3 5.5c2.1 0 4-1.5 4.4-3.5H7.6c.5 2 2.3 3.5 4.4 3.5zM12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 14.5a6.5 6.5 0 1 1 0-13 6.5 6.5 0 0 1 0 13z\" fill-rule=\"nonzero\"/></svg>',\n 'fill': '<svg width=\"24\" height=\"26\"><path d=\"M16.6 12l-9-9-1.4 1.4 2.4 2.4-5.2 5.1c-.5.6-.5 1.6 0 2.2L9 19.6a1.5 1.5 0 0 0 2.2 0l5.5-5.5c.5-.6.5-1.6 0-2.2zM5.2 13L10 8.2l4.8 4.8H5.2zM19 14.5s-2 2.2-2 3.5c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.3-2-3.5-2-3.5z\" fill-rule=\"nonzero\"/></svg>',\n 'flip-horizontally': '<svg width=\"24\" height=\"24\"><path d=\"M14 19h2v-2h-2v2zm4-8h2V9h-2v2zM4 7v10c0 1.1.9 2 2 2h3v-2H6V7h3V5H6a2 2 0 0 0-2 2zm14-2v2h2a2 2 0 0 0-2-2zm-7 16h2V3h-2v18zm7-6h2v-2h-2v2zm-4-8h2V5h-2v2zm4 12a2 2 0 0 0 2-2h-2v2z\" fill-rule=\"nonzero\"/></svg>',\n 'flip-vertically': '<svg width=\"24\" height=\"24\"><path d=\"M5 14v2h2v-2H5zm8 4v2h2v-2h-2zm4-14H7a2 2 0 0 0-2 2v3h2V6h10v3h2V6a2 2 0 0 0-2-2zm2 14h-2v2a2 2 0 0 0 2-2zM3 11v2h18v-2H3zm6 7v2h2v-2H9zm8-4v2h2v-2h-2zM5 18c0 1.1.9 2 2 2v-2H5z\" fill-rule=\"nonzero\"/></svg>',\n 'format-painter': '<svg width=\"24\" height=\"24\"><path d=\"M18 5V4c0-.5-.4-1-1-1H5a1 1 0 0 0-1 1v4c0 .6.5 1 1 1h12c.6 0 1-.4 1-1V7h1v4H9v9c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-7h8V5h-3z\" fill-rule=\"nonzero\"/></svg>',\n 'fullscreen': '<svg width=\"24\" height=\"24\"><path d=\"M15.3 10l-1.2-1.3 2.9-3h-2.3a.9.9 0 1 1 0-1.7H19c.5 0 .9.4.9.9v4.4a.9.9 0 1 1-1.8 0V7l-2.9 3zm0 4l3 3v-2.3a.9.9 0 1 1 1.7 0V19c0 .5-.4.9-.9.9h-4.4a.9.9 0 1 1 0-1.8H17l-3-2.9 1.3-1.2zM10 15.4l-2.9 3h2.3a.9.9 0 1 1 0 1.7H5a.9.9 0 0 1-.9-.9v-4.4a.9.9 0 1 1 1.8 0V17l2.9-3 1.2 1.3zM8.7 10L5.7 7v2.3a.9.9 0 0 1-1.7 0V5c0-.5.4-.9.9-.9h4.4a.9.9 0 0 1 0 1.8H7l3 2.9-1.3 1.2z\" fill-rule=\"nonzero\"/></svg>',\n 'gallery': '<svg width=\"24\" height=\"24\"><path fill-rule=\"nonzero\" d=\"M5 15.7l2.3-2.2c.3-.3.7-.3 1 0L11 16l5.1-5c.3-.4.8-.4 1 0l2 1.9V8H5v7.7zM5 18V19h3l1.8-1.9-2-2L5 17.9zm14-3l-2.5-2.4-6.4 6.5H19v-4zM4 6h16c.6 0 1 .4 1 1v13c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V7c0-.6.4-1 1-1zm6 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4zM4.5 4h15a.5.5 0 1 1 0 1h-15a.5.5 0 0 1 0-1zm2-2h11a.5.5 0 1 1 0 1h-11a.5.5 0 0 1 0-1z\"/></svg>',\n 'gamma': '<svg width=\"24\" height=\"24\"><path d=\"M4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm1 2v14h14V5H5zm6.5 11.8V14L9.2 8.7a5.1 5.1 0 0 0-.4-.8l-.1-.2H8 8v-1l.3-.1.3-.1h.7a1 1 0 0 1 .6.5l.1.3a8.5 8.5 0 0 1 .3.6l1.9 4.6 2-5.2a1 1 0 0 1 1-.6.5.5 0 0 1 .5.6L13 14v2.8a.7.7 0 0 1-1.4 0z\" fill-rule=\"nonzero\"/></svg>',\n 'help': '<svg width=\"24\" height=\"24\"><g fill-rule=\"evenodd\"><path d=\"M12 5.5a6.5 6.5 0 0 0-6 9 6.3 6.3 0 0 0 1.4 2l1 1a6.3 6.3 0 0 0 3.6 1 6.5 6.5 0 0 0 6-9 6.3 6.3 0 0 0-1.4-2l-1-1a6.3 6.3 0 0 0-3.6-1zM12 4a7.8 7.8 0 0 1 5.7 2.3A8 8 0 1 1 12 4z\"/><path d=\"M9.6 9.7a.7.7 0 0 1-.7-.8c0-1.1 1.5-1.8 3.2-1.8 1.8 0 3.2.8 3.2 2.4 0 1.4-.4 2.1-1.5 2.8-.2 0-.3.1-.3.2a2 2 0 0 0-.8.8.8.8 0 0 1-1.4-.6c.3-.7.8-1 1.3-1.5l.4-.2c.7-.4.8-.6.8-1.5 0-.5-.6-.9-1.7-.9-.5 0-1 .1-1.4.3-.2 0-.3.1-.3.2v-.2c0 .4-.4.8-.8.8z\" fill-rule=\"nonzero\"/><circle cx=\"12\" cy=\"16\" r=\"1\"/></g></svg>',\n 'highlight-bg-color': '<svg width=\"24\" height=\"24\"><g fill-rule=\"evenodd\"><path id=\"tox-icon-highlight-bg-color__color\" d=\"M3 18h18v3H3z\"/><path fill-rule=\"nonzero\" d=\"M7.7 16.7H3l3.3-3.3-.7-.8L10.2 8l4 4.1-4 4.2c-.2.2-.6.2-.8 0l-.6-.7-1.1 1.1zm5-7.5L11 7.4l3-2.9a2 2 0 0 1 2.6 0L18 6c.7.7.7 2 0 2.7l-2.9 2.9-1.8-1.8-.5-.6\"/></g></svg>',\n 'home': '<svg width=\"24\" height=\"24\"><path fill-rule=\"nonzero\" d=\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\"/></svg>',\n 'horizontal-rule': '<svg width=\"24\" height=\"24\"><path d=\"M4 11h16v2H4z\" fill-rule=\"evenodd\"/></svg>',\n 'image-options': '<svg width=\"24\" height=\"24\"><path d=\"M6 10a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2zm12 0a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2zm-6 0a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2z\" fill-rule=\"nonzero\"/></svg>',\n 'image': '<svg width=\"24\" height=\"24\"><path d=\"M5 15.7l3.3-3.2c.3-.3.7-.3 1 0L12 15l4.1-4c.3-.4.8-.4 1 0l2 1.9V5H5v10.7zM5 18V19h3l2.8-2.9-2-2L5 17.9zm14-3l-2.5-2.4-6.4 6.5H19v-4zM4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm6 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\" fill-rule=\"nonzero\"/></svg>',\n 'indent': '<svg width=\"24\" height=\"24\"><path d=\"M7 5h12c.6 0 1 .4 1 1s-.4 1-1 1H7a1 1 0 1 1 0-2zm5 4h7c.6 0 1 .4 1 1s-.4 1-1 1h-7a1 1 0 0 1 0-2zm0 4h7c.6 0 1 .4 1 1s-.4 1-1 1h-7a1 1 0 0 1 0-2zm-5 4h12a1 1 0 0 1 0 2H7a1 1 0 0 1 0-2zm-2.6-3.8L6.2 12l-1.8-1.2a1 1 0 0 1 1.2-1.6l3 2a1 1 0 0 1 0 1.6l-3 2a1 1 0 1 1-1.2-1.6z\" fill-rule=\"evenodd\"/></svg>',\n 'info': '<svg width=\"24\" height=\"24\"><path d=\"M12 4a7.8 7.8 0 0 1 5.7 2.3A8 8 0 1 1 12 4zm-1 3v2h2V7h-2zm3 10v-1h-1v-5h-3v1h1v4h-1v1h4z\" fill-rule=\"evenodd\"/></svg>',\n 'insert-character': '<svg width=\"24\" height=\"24\"><path d=\"M15 18h4l1-2v4h-6v-3.3l1.4-1a6 6 0 0 0 1.8-2.9 6.3 6.3 0 0 0-.1-4.1 5.8 5.8 0 0 0-3-3.2c-.6-.3-1.3-.5-2.1-.5a5.1 5.1 0 0 0-3.9 1.8 6.3 6.3 0 0 0-1.3 6 6.2 6.2 0 0 0 1.8 3l1.4.9V20H4v-4l1 2h4v-.5l-2-1L5.4 15A6.5 6.5 0 0 1 4 11c0-1 .2-1.9.6-2.7A7 7 0 0 1 6.3 6C7.1 5.4 8 5 9 4.5c1-.3 2-.5 3.1-.5a8.8 8.8 0 0 1 5.7 2 7 7 0 0 1 1.7 2.3 6 6 0 0 1 .2 4.8c-.2.7-.6 1.3-1 1.9a7.6 7.6 0 0 1-3.6 2.5v.5z\" fill-rule=\"evenodd\"/></svg>',\n 'insert-time': '<svg width=\"24\" height=\"24\"><g fill-rule=\"nonzero\"><path d=\"M12 19a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm0 2a9 9 0 1 1 0-18 9 9 0 0 1 0 18z\"/><path d=\"M16 12h-3V7c0-.6-.4-1-1-1a1 1 0 0 0-1 1v7h5c.6 0 1-.4 1-1s-.4-1-1-1z\"/></g></svg>',\n 'invert': '<svg width=\"24\" height=\"24\"><path d=\"M18 19.3L16.5 18a5.8 5.8 0 0 1-3.1 1.9 6.1 6.1 0 0 1-5.5-1.6A5.8 5.8 0 0 1 6 14v-.3l.1-1.2A13.9 13.9 0 0 1 7.7 9l-3-3 .7-.8 2.8 2.9 9 8.9 1.5 1.6-.7.6zm0-5.5v.3l-.1 1.1-.4 1-1.2-1.2a4.3 4.3 0 0 0 .2-1v-.2c0-.4 0-.8-.2-1.3l-.5-1.4a14.8 14.8 0 0 0-3-4.2L12 6a26.1 26.1 0 0 0-2.2 2.5l-1-1a20.9 20.9 0 0 1 2.9-3.3L12 4l1 .8a22.2 22.2 0 0 1 4 5.4c.6 1.2 1 2.4 1 3.6z\" fill-rule=\"evenodd\"/></svg>',\n 'italic': '<svg width=\"24\" height=\"24\"><path d=\"M16.7 4.7l-.1.9h-.3c-.6 0-1 0-1.4.3-.3.3-.4.6-.5 1.1l-2.1 9.8v.6c0 .5.4.8 1.4.8h.2l-.2.8H8l.2-.8h.2c1.1 0 1.8-.5 2-1.5l2-9.8.1-.5c0-.6-.4-.8-1.4-.8h-.3l.2-.9h5.8z\" fill-rule=\"evenodd\"/></svg>',\n 'line': '<svg width=\"24\" height=\"24\"><path d=\"M15 9l-8 8H4v-3l8-8 3 3zm1-1l-3-3 1-1h1c-.2 0 0 0 0 0l2 2s0 .2 0 0v1l-1 1zM4 18h16v2H4v-2z\" fill-rule=\"evenodd\"/></svg>',\n 'link': '<svg width=\"24\" height=\"24\"><path d=\"M6.2 12.3a1 1 0 0 1 1.4 1.4l-2.1 2a2 2 0 1 0 2.7 2.8l4.8-4.8a1 1 0 0 0 0-1.4 1 1 0 1 1 1.4-1.3 2.9 2.9 0 0 1 0 4L9.6 20a3.9 3.9 0 0 1-5.5-5.5l2-2zm11.6-.6a1 1 0 0 1-1.4-1.4l2-2a2 2 0 1 0-2.6-2.8L11 10.3a1 1 0 0 0 0 1.4A1 1 0 1 1 9.6 13a2.9 2.9 0 0 1 0-4L14.4 4a3.9 3.9 0 0 1 5.5 5.5l-2 2z\" fill-rule=\"nonzero\"/></svg>',\n 'list-bull-circle': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path d=\"M11 16a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 1a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM11 26a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 1a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM11 36a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 1a3 3 0 1 1 0-6 3 3 0 0 1 0 6z\" fill-rule=\"nonzero\"/><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/></g></svg>',\n 'list-bull-default': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><circle cx=\"11\" cy=\"14\" r=\"3\"/><circle cx=\"11\" cy=\"24\" r=\"3\"/><circle cx=\"11\" cy=\"34\" r=\"3\"/><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/></g></svg>',\n 'list-bull-square': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path d=\"M8 11h6v6H8zM8 21h6v6H8zM8 31h6v6H8z\"/><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/></g></svg>',\n 'list-num-default-rtl': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z\"/><path d=\"M37.4 17v-4.8l-1.6 1v-1.1l1.6-1h1.2V17zM33.3 17.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm1.7 5.7c0-1.2 1-2 2.2-2 1.3 0 2.1.8 2.1 1.8 0 .7-.3 1.2-1.3 2.2l-1.2 1v.2h2.6v1h-4.3v-.9l2-1.9c.8-.8 1-1.1 1-1.5 0-.5-.4-.8-1-.8-.5 0-.9.3-.9.9H35zm-1.7 4.3c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm3.2 7.3v-1h.7c.6 0 1-.3 1-.8 0-.4-.4-.7-1-.7s-1 .3-1 .8H35c0-1.1 1-1.8 2.2-1.8 1.2 0 2.1.6 2.1 1.6 0 .7-.4 1.2-1 1.3v.1c.7.1 1.3.7 1.3 1.4 0 1-1 1.9-2.4 1.9-1.3 0-2.2-.8-2.3-2h1.2c0 .6.5 1 1.1 1 .6 0 1-.4 1-1 0-.5-.3-.8-1-.8h-.7zm-3.3 2.7c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7z\"/></g></svg>',\n 'list-num-default': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/><path d=\"M10 17v-4.8l-1.5 1v-1.1l1.6-1h1.2V17h-1.2zm3.6.1c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .7.3.7.7 0 .4-.2.7-.7.7zm-5 5.7c0-1.2.8-2 2.1-2s2.1.8 2.1 1.8c0 .7-.3 1.2-1.4 2.2l-1.1 1v.2h2.6v1H8.6v-.9l2-1.9c.8-.8 1-1.1 1-1.5 0-.5-.4-.8-1-.8-.5 0-.9.3-.9.9H8.5zm6.3 4.3c-.5 0-.7-.3-.7-.7 0-.4.2-.7.7-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zM10 34.4v-1h.7c.6 0 1-.3 1-.8 0-.4-.4-.7-1-.7s-1 .3-1 .8H8.6c0-1.1 1-1.8 2.2-1.8 1.3 0 2.1.6 2.1 1.6 0 .7-.4 1.2-1 1.3v.1c.8.1 1.3.7 1.3 1.4 0 1-1 1.9-2.4 1.9-1.3 0-2.2-.8-2.3-2h1.2c0 .6.5 1 1.1 1 .7 0 1-.4 1-1 0-.5-.3-.8-1-.8h-.7zm4.7 2.7c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7z\"/></g></svg>',\n 'list-num-lower-alpha-rtl': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z\"/><path d=\"M36.5 16c-.9 0-1.5-.5-1.5-1.3s.6-1.3 1.8-1.4h1v-.4c0-.4-.2-.6-.7-.6-.4 0-.7.1-.8.4h-1.1c0-.8.8-1.4 2-1.4S39 12 39 13V16h-1.2v-.6c-.3.4-.8.7-1.4.7zm.4-.8c.6 0 1-.4 1-.9V14h-1c-.5.1-.7.3-.7.6 0 .4.3.6.7.6zM33.1 16.1c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7zM37.7 26c-.7 0-1.2-.2-1.5-.7v.7H35v-6.3h1.2v2.5c.3-.5.8-.9 1.5-.9 1.1 0 1.8 1 1.8 2.4 0 1.5-.7 2.4-1.8 2.4zm-.5-3.6c-.6 0-1 .5-1 1.3s.4 1.4 1 1.4c.7 0 1-.6 1-1.4 0-.8-.3-1.3-1-1.3zM33.2 26.1c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7zm6 7h-1c-.1-.5-.4-.8-1-.8s-1 .5-1 1.4c0 1 .4 1.4 1 1.4.5 0 .9-.2 1-.7h1c0 1-.8 1.7-2 1.7-1.4 0-2.2-.9-2.2-2.4s.8-2.4 2.2-2.4c1.2 0 2 .7 2 1.7zm-6.1 3c-.5 0-.7-.3-.7-.7 0-.4.2-.7.7-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z\"/></g></svg>',\n 'list-num-lower-alpha': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/><path d=\"M10.3 15.2c.5 0 1-.4 1-.9V14h-1c-.5.1-.8.3-.8.6 0 .4.3.6.8.6zm-.4.9c-1 0-1.5-.6-1.5-1.4 0-.8.6-1.3 1.7-1.4h1.1v-.4c0-.4-.2-.6-.7-.6-.5 0-.8.1-.9.4h-1c0-.8.8-1.4 2-1.4 1.1 0 1.8.6 1.8 1.6V16h-1.1v-.6h-.1c-.2.4-.7.7-1.3.7zm4.6 0c-.5 0-.7-.3-.7-.7 0-.4.2-.7.7-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm-3.2 10c-.6 0-1.2-.3-1.4-.8v.7H8.5v-6.3H10v2.5c.3-.5.8-.9 1.4-.9 1.2 0 1.9 1 1.9 2.4 0 1.5-.7 2.4-1.9 2.4zm-.4-3.7c-.7 0-1 .5-1 1.3s.3 1.4 1 1.4c.6 0 1-.6 1-1.4 0-.8-.4-1.3-1-1.3zm4 3.7c-.5 0-.7-.3-.7-.7 0-.4.2-.7.7-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm-2.2 7h-1.2c0-.5-.4-.8-.9-.8-.6 0-1 .5-1 1.4 0 1 .4 1.4 1 1.4.5 0 .8-.2 1-.7h1c0 1-.8 1.7-2 1.7-1.4 0-2.2-.9-2.2-2.4s.8-2.4 2.2-2.4c1.2 0 2 .7 2 1.7zm1.8 3c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z\"/></g></svg>',\n 'list-num-lower-greek-rtl': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z\"/><path d=\"M37.4 16c-1.2 0-2-.8-2-2.3 0-1.5.8-2.4 2-2.4.6 0 1 .4 1.3 1v-.9H40v3.2c0 .4.1.5.4.5h.2v.9h-.6c-.6 0-1-.2-1-.7h-.2c-.2.4-.7.8-1.3.8zm.3-1c.6 0 1-.5 1-1.3s-.4-1.3-1-1.3-1 .5-1 1.3.4 1.4 1 1.4zM33.3 16.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zM36 21.9c0-1.5.8-2.3 2.1-2.3 1.2 0 2 .6 2 1.6 0 .6-.3 1-.9 1.3.9.3 1.3.8 1.3 1.7 0 1.2-.7 1.9-1.8 1.9-.6 0-1.1-.3-1.4-.8v2.2H36V22zm1.8 1.2v-1h.3c.5 0 .9-.2.9-.7 0-.5-.3-.8-.9-.8-.5 0-.8.3-.8 1v2.2c0 .8.4 1.3 1 1.3s1-.4 1-1-.4-1-1.2-1h-.3zM33.3 26.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zM37.1 34.6L34.8 30h1.4l1.7 3.5 1.7-3.5h1.1l-2.2 4.6v.1c.5.8.7 1.4.7 1.8 0 .4-.2.8-.4 1-.2.2-.6.3-1 .3-.9 0-1.3-.4-1.3-1.2 0-.5.2-1 .5-1.7l.1-.2zm.7 1a2 2 0 0 0-.4.9c0 .3.1.4.4.4.3 0 .4-.1.4-.4 0-.2-.1-.6-.4-1zM33.3 36.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z\"/></g></svg>',\n 'list-num-lower-greek': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/><path d=\"M10.5 15c.7 0 1-.5 1-1.3s-.3-1.3-1-1.3c-.5 0-.9.5-.9 1.3s.4 1.4 1 1.4zm-.3 1c-1.1 0-1.8-.8-1.8-2.3 0-1.5.7-2.4 1.8-2.4.7 0 1.1.4 1.3 1h.1v-.9h1.2v3.2c0 .4.1.5.4.5h.2v.9h-.6c-.6 0-1-.2-1.1-.7h-.1c-.2.4-.7.8-1.4.8zm5 .1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7zm-4.9 7v-1h.3c.6 0 1-.2 1-.7 0-.5-.4-.8-1-.8-.5 0-.8.3-.8 1v2.2c0 .8.4 1.3 1.1 1.3.6 0 1-.4 1-1s-.5-1-1.3-1h-.3zM8.6 22c0-1.5.7-2.3 2-2.3 1.2 0 2 .6 2 1.6 0 .6-.3 1-.8 1.3.8.3 1.3.8 1.3 1.7 0 1.2-.8 1.9-1.9 1.9-.6 0-1.1-.3-1.3-.8v2.2H8.5V22zm6.2 4.2c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .7.3.7.7 0 .4-.2.7-.7.7zm-4.5 8.5L8 30h1.4l1.7 3.5 1.7-3.5h1.1l-2.2 4.6v.1c.5.8.7 1.4.7 1.8 0 .4-.1.8-.4 1-.2.2-.6.3-1 .3-.9 0-1.3-.4-1.3-1.2 0-.5.2-1 .5-1.7l.1-.2zm.7 1a2 2 0 0 0-.4.9c0 .3.1.4.4.4.3 0 .4-.1.4-.4 0-.2-.1-.6-.4-1zm4.5.5c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z\"/></g></svg>',\n 'list-num-lower-roman-rtl': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z\"/><path d=\"M32.9 16v-1.2h-1.3V16H33zm0 10v-1.2h-1.3V26H33zm0 10v-1.2h-1.3V36H33z\"/><path fill-rule=\"nonzero\" d=\"M36 21h-1.5v5H36zM36 31h-1.5v5H36zM39 21h-1.5v5H39zM39 31h-1.5v5H39zM42 31h-1.5v5H42zM36 11h-1.5v5H36zM36 19h-1.5v1H36zM36 29h-1.5v1H36zM39 19h-1.5v1H39zM39 29h-1.5v1H39zM42 29h-1.5v1H42zM36 9h-1.5v1H36z\"/></g></svg>',\n 'list-num-lower-roman': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/><path d=\"M15.1 16v-1.2h1.3V16H15zm0 10v-1.2h1.3V26H15zm0 10v-1.2h1.3V36H15z\"/><path fill-rule=\"nonzero\" d=\"M12 21h1.5v5H12zM12 31h1.5v5H12zM9 21h1.5v5H9zM9 31h1.5v5H9zM6 31h1.5v5H6zM12 11h1.5v5H12zM12 19h1.5v1H12zM12 29h1.5v1H12zM9 19h1.5v1H9zM9 29h1.5v1H9zM6 29h1.5v1H6zM12 9h1.5v1H12z\"/></g></svg>',\n 'list-num-upper-alpha-rtl': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z\"/><path d=\"M39.3 17l-.5-1.4h-2l-.5 1.4H35l2-6h1.6l2 6h-1.3zm-1.6-4.7l-.7 2.3h1.6l-.8-2.3zM33.4 17c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .7.3.7.7 0 .4-.2.7-.7.7zm4.7 9.9h-2.7v-6H38c1.2 0 1.9.6 1.9 1.5 0 .6-.5 1.2-1 1.3.7.1 1.3.7 1.3 1.5 0 1-.8 1.7-2 1.7zm-1.4-5v1.5h1c.6 0 1-.3 1-.8 0-.4-.4-.7-1-.7h-1zm0 4h1.1c.7 0 1.1-.3 1.1-.8 0-.6-.4-.9-1.1-.9h-1.1V26zM33 27.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm4.9 10c-1.8 0-2.8-1.1-2.8-3.1s1-3.1 2.8-3.1c1.4 0 2.5.9 2.6 2.2h-1.3c0-.7-.6-1.1-1.3-1.1-1 0-1.6.7-1.6 2s.6 2 1.6 2c.7 0 1.2-.4 1.4-1h1.2c-.1 1.3-1.2 2.2-2.6 2.2zm-4.5 0c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z\"/></g></svg>',\n 'list-num-upper-alpha': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/><path d=\"M12.6 17l-.5-1.4h-2L9.5 17H8.3l2-6H12l2 6h-1.3zM11 12.3l-.7 2.3h1.6l-.8-2.3zm4.7 4.8c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .7.3.7.7 0 .4-.2.7-.7.7zM11.4 27H8.7v-6h2.6c1.2 0 1.9.6 1.9 1.5 0 .6-.5 1.2-1 1.3.7.1 1.3.7 1.3 1.5 0 1-.8 1.7-2 1.7zM10 22v1.5h1c.6 0 1-.3 1-.8 0-.4-.4-.7-1-.7h-1zm0 4H11c.7 0 1.1-.3 1.1-.8 0-.6-.4-.9-1.1-.9H10V26zm5.4 1.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm-4.1 10c-1.8 0-2.8-1.1-2.8-3.1s1-3.1 2.8-3.1c1.4 0 2.5.9 2.6 2.2h-1.3c0-.7-.6-1.1-1.3-1.1-1 0-1.6.7-1.6 2s.6 2 1.6 2c.7 0 1.2-.4 1.4-1h1.2c-.1 1.3-1.2 2.2-2.6 2.2zm4.5 0c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z\"/></g></svg>',\n 'list-num-upper-roman-rtl': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z\"/><path d=\"M31.6 17v-1.2H33V17h-1.3zm0 10v-1.2H33V27h-1.3zm0 10v-1.2H33V37h-1.3z\"/><path fill-rule=\"nonzero\" d=\"M34.5 20H36v7h-1.5zM34.5 30H36v7h-1.5zM37.5 20H39v7h-1.5zM37.5 30H39v7h-1.5zM40.5 30H42v7h-1.5zM34.5 10H36v7h-1.5z\"/></g></svg>',\n 'list-num-upper-roman': '<svg width=\"48\" height=\"48\"><g fill-rule=\"evenodd\"><path opacity=\".2\" d=\"M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z\"/><path d=\"M15.1 17v-1.2h1.3V17H15zm0 10v-1.2h1.3V27H15zm0 10v-1.2h1.3V37H15z\"/><path fill-rule=\"nonzero\" d=\"M12 20h1.5v7H12zM12 30h1.5v7H12zM9 20h1.5v7H9zM9 30h1.5v7H9zM6 30h1.5v7H6zM12 10h1.5v7H12z\"/></g></svg>',\n 'lock': '<svg width=\"24\" height=\"24\"><path d=\"M16.3 11c.2 0 .3 0 .5.2l.2.6v7.4c0 .3 0 .4-.2.6l-.6.2H7.8c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6v-7.4c0-.3 0-.4.2-.6l.5-.2H8V8c0-.8.3-1.5.9-2.1.6-.6 1.3-.9 2.1-.9h2c.8 0 1.5.3 2.1.9.6.6.9 1.3.9 2.1v3h.3zM10 8v3h4V8a1 1 0 0 0-.3-.7A1 1 0 0 0 13 7h-2a1 1 0 0 0-.7.3 1 1 0 0 0-.3.7z\" fill-rule=\"evenodd\"/></svg>',\n 'ltr': '<svg width=\"24\" height=\"24\"><path d=\"M11 5h7a1 1 0 0 1 0 2h-1v11a1 1 0 0 1-2 0V7h-2v11a1 1 0 0 1-2 0v-6c-.5 0-1 0-1.4-.3A3.4 3.4 0 0 1 7.8 10a3.3 3.3 0 0 1 0-2.8 3.4 3.4 0 0 1 1.8-1.8L11 5zM4.4 16.2L6.2 15l-1.8-1.2a1 1 0 0 1 1.2-1.6l3 2a1 1 0 0 1 0 1.6l-3 2a1 1 0 1 1-1.2-1.6z\" fill-rule=\"evenodd\"/></svg>',\n 'more-drawer': '<svg width=\"24\" height=\"24\"><path d=\"M6 10a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2zm12 0a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2zm-6 0a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2z\" fill-rule=\"nonzero\"/></svg>',\n 'new-document': '<svg width=\"24\" height=\"24\"><path d=\"M14.4 3H7a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h10a2 2 0 0 0 2-2V7.6L14.4 3zM17 19H7V5h6v4h4v10z\" fill-rule=\"nonzero\"/></svg>',\n 'new-tab': '<svg width=\"24\" height=\"24\"><path d=\"M15 13l2-2v8H5V7h8l-2 2H7v8h8v-4zm4-8v5.5l-2-2-5.6 5.5H10v-1.4L15.5 7l-2-2H19z\" fill-rule=\"evenodd\"/></svg>',\n 'non-breaking': '<svg width=\"24\" height=\"24\"><path d=\"M11 11H8a1 1 0 1 1 0-2h3V6c0-.6.4-1 1-1s1 .4 1 1v3h3c.6 0 1 .4 1 1s-.4 1-1 1h-3v3c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-3zm10 4v5H3v-5c0-.6.4-1 1-1s1 .4 1 1v3h14v-3c0-.6.4-1 1-1s1 .4 1 1z\" fill-rule=\"evenodd\"/></svg>',\n 'notice': '<svg width=\"24\" height=\"24\"><path d=\"M17.8 9.8L15.4 4 20 8.5v7L15.5 20h-7L4 15.5v-7L8.5 4h7l2.3 5.8zm0 0l2.2 5.7-2.3-5.8zM13 17v-2h-2v2h2zm0-4V7h-2v6h2z\" fill-rule=\"evenodd\"/></svg>',\n 'ordered-list-rtl': '<svg width=\"24\" height=\"24\"><path d=\"M6 17h8a1 1 0 0 1 0 2H6a1 1 0 0 1 0-2zm0-6h8a1 1 0 0 1 0 2H6a1 1 0 0 1 0-2zm0-6h8a1 1 0 0 1 0 2H6a1 1 0 1 1 0-2zm13-1v3.5a.5.5 0 1 1-1 0V5h-.5a.5.5 0 1 1 0-1H19zm-1 8.8l.2.2h1.3a.5.5 0 1 1 0 1h-1.6a1 1 0 0 1-.9-1V13c0-.4.3-.8.6-1l1.2-.4.2-.3a.2.2 0 0 0-.2-.2h-1.3a.5.5 0 0 1-.5-.5c0-.3.2-.5.5-.5h1.6c.5 0 .9.4.9 1v.1c0 .4-.3.8-.6 1l-1.2.4-.2.3zm2 4.2v2c0 .6-.4 1-1 1h-1.5a.5.5 0 0 1 0-1h1.2a.3.3 0 1 0 0-.6h-1.3a.4.4 0 1 1 0-.8h1.3a.3.3 0 0 0 0-.6h-1.2a.5.5 0 1 1 0-1H19c.6 0 1 .4 1 1z\" fill-rule=\"evenodd\"/></svg>',\n 'ordered-list': '<svg width=\"24\" height=\"24\"><path d=\"M10 17h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 1 1 0-2zM6 4v3.5c0 .3-.2.5-.5.5a.5.5 0 0 1-.5-.5V5h-.5a.5.5 0 0 1 0-1H6zm-1 8.8l.2.2h1.3c.3 0 .5.2.5.5s-.2.5-.5.5H4.9a1 1 0 0 1-.9-1V13c0-.4.3-.8.6-1l1.2-.4.2-.3a.2.2 0 0 0-.2-.2H4.5a.5.5 0 0 1-.5-.5c0-.3.2-.5.5-.5h1.6c.5 0 .9.4.9 1v.1c0 .4-.3.8-.6 1l-1.2.4-.2.3zM7 17v2c0 .6-.4 1-1 1H4.5a.5.5 0 0 1 0-1h1.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3H4.4a.4.4 0 1 1 0-.8h1.3c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3H4.5a.5.5 0 1 1 0-1H6c.6 0 1 .4 1 1z\" fill-rule=\"evenodd\"/></svg>',\n 'orientation': '<svg width=\"24\" height=\"24\"><path d=\"M7.3 6.4L1 13l6.4 6.5 6.5-6.5-6.5-6.5zM3.7 13l3.6-3.7L11 13l-3.7 3.7-3.6-3.7zM12 6l2.8 2.7c.3.3.3.8 0 1-.3.4-.9.4-1.2 0L9.2 5.7a.8.8 0 0 1 0-1.2L13.6.2c.3-.3.9-.3 1.2 0 .3.3.3.8 0 1.1L12 4h1a9 9 0 1 1-4.3 16.9l1.5-1.5A7 7 0 1 0 13 6h-1z\" fill-rule=\"nonzero\"/></svg>',\n 'outdent': '<svg width=\"24\" height=\"24\"><path d=\"M7 5h12c.6 0 1 .4 1 1s-.4 1-1 1H7a1 1 0 1 1 0-2zm5 4h7c.6 0 1 .4 1 1s-.4 1-1 1h-7a1 1 0 0 1 0-2zm0 4h7c.6 0 1 .4 1 1s-.4 1-1 1h-7a1 1 0 0 1 0-2zm-5 4h12a1 1 0 0 1 0 2H7a1 1 0 0 1 0-2zm1.6-3.8a1 1 0 0 1-1.2 1.6l-3-2a1 1 0 0 1 0-1.6l3-2a1 1 0 0 1 1.2 1.6L6.8 12l1.8 1.2z\" fill-rule=\"evenodd\"/></svg>',\n 'page-break': '<svg width=\"24\" height=\"24\"><g fill-rule=\"evenodd\"><path d=\"M5 11c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h1c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2zm4 0c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h1c.6 0 1 .4 1 1s-.4 1-1 1h-1a1 1 0 0 1 0-2zm4 0c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zM7 3v5h10V3c0-.6.4-1 1-1s1 .4 1 1v7H5V3c0-.6.4-1 1-1s1 .4 1 1zM6 22a1 1 0 0 1-1-1v-7h14v7c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-5H7v5c0 .6-.4 1-1 1z\"/></g></svg>',\n 'paste-text': '<svg width=\"24\" height=\"24\"><path d=\"M18 9V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h3V9h9zM9 20H6a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.2A3 3 0 0 1 12 1a3 3 0 0 1 2.8 2H18a2 2 0 0 1 2 2v4h1v12H9v-1zm1.5-9.5v9h9v-9h-9zM12 3a1 1 0 0 0-1 1c0 .5.4 1 1 1s1-.5 1-1-.4-1-1-1zm0 9h6v2h-.5l-.5-1h-1v4h.8v1h-3.6v-1h.8v-4h-1l-.5 1H12v-2z\" fill-rule=\"nonzero\"/></svg>',\n 'paste': '<svg width=\"24\" height=\"24\"><path d=\"M18 9V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h3V9h9zM9 20H6a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.2A3 3 0 0 1 12 1a3 3 0 0 1 2.8 2H18a2 2 0 0 1 2 2v4h1v12H9v-1zm1.5-9.5v9h9v-9h-9zM12 3a1 1 0 0 0-1 1c0 .5.4 1 1 1s1-.5 1-1-.4-1-1-1z\" fill-rule=\"nonzero\"/></svg>',\n 'permanent-pen': '<svg width=\"24\" height=\"24\"><path d=\"M10.5 17.5L8 20H3v-3l3.5-3.5a2 2 0 0 1 0-3L14 3l1 1-7.3 7.3a1 1 0 0 0 0 1.4l3.6 3.6c.4.4 1 .4 1.4 0L20 9l1 1-7.6 7.6a2 2 0 0 1-2.8 0l-.1-.1z\" fill-rule=\"nonzero\"/></svg>',\n 'plus': '<svg width=\"24\" height=\"24\"><g fill-rule=\"evenodd\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke=\"#000\" stroke-width=\"2\"><path d=\"M12 5v14M5 12h14\"/></g></svg>',\n 'preferences': '<svg width=\"24\" height=\"24\"><path d=\"M20.1 13.5l-1.9.2a5.8 5.8 0 0 1-.6 1.5l1.2 1.5c.4.4.3 1 0 1.4l-.7.7a1 1 0 0 1-1.4 0l-1.5-1.2a6.2 6.2 0 0 1-1.5.6l-.2 1.9c0 .5-.5.9-1 .9h-1a1 1 0 0 1-1-.9l-.2-1.9a5.8 5.8 0 0 1-1.5-.6l-1.5 1.2a1 1 0 0 1-1.4 0l-.7-.7a1 1 0 0 1 0-1.4l1.2-1.5a6.2 6.2 0 0 1-.6-1.5l-1.9-.2a1 1 0 0 1-.9-1v-1c0-.5.4-1 .9-1l1.9-.2a5.8 5.8 0 0 1 .6-1.5L5.2 7.3a1 1 0 0 1 0-1.4l.7-.7a1 1 0 0 1 1.4 0l1.5 1.2a6.2 6.2 0 0 1 1.5-.6l.2-1.9c0-.5.5-.9 1-.9h1c.5 0 1 .4 1 .9l.2 1.9a5.8 5.8 0 0 1 1.5.6l1.5-1.2a1 1 0 0 1 1.4 0l.7.7c.3.4.4 1 0 1.4l-1.2 1.5a6.2 6.2 0 0 1 .6 1.5l1.9.2c.5 0 .9.5.9 1v1c0 .5-.4 1-.9 1zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\" fill-rule=\"evenodd\"/></svg>',\n 'preview': '<svg width=\"24\" height=\"24\"><path d=\"M3.5 12.5c.5.8 1.1 1.6 1.8 2.3 2 2 4.2 3.2 6.7 3.2s4.7-1.2 6.7-3.2a16.2 16.2 0 0 0 2.1-2.8 15.7 15.7 0 0 0-2.1-2.8c-2-2-4.2-3.2-6.7-3.2a9.3 9.3 0 0 0-6.7 3.2A16.2 16.2 0 0 0 3.2 12c0 .2.2.3.3.5zm-2.4-1l.7-1.2L4 7.8C6.2 5.4 8.9 4 12 4c3 0 5.8 1.4 8.1 3.8a18.2 18.2 0 0 1 2.8 3.7v1l-.7 1.2-2.1 2.5c-2.3 2.4-5 3.8-8.1 3.8-3 0-5.8-1.4-8.1-3.8a18.2 18.2 0 0 1-2.8-3.7 1 1 0 0 1 0-1zm12-3.3a2 2 0 1 0 2.7 2.6 4 4 0 1 1-2.6-2.6z\" fill-rule=\"nonzero\"/></svg>',\n 'print': '<svg width=\"24\" height=\"24\"><path d=\"M18 8H6a3 3 0 0 0-3 3v6h2v3h14v-3h2v-6a3 3 0 0 0-3-3zm-1 10H7v-4h10v4zm.5-5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm.5-8H6v2h12V5z\" fill-rule=\"nonzero\"/></svg>',\n 'quote': '<svg width=\"24\" height=\"24\"><path d=\"M7.5 17h.9c.4 0 .7-.2.9-.6L11 13V8c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v4c0 .6.4 1 1 1h2l-1.3 2.7a1 1 0 0 0 .8 1.3zm8 0h.9c.4 0 .7-.2.9-.6L19 13V8c0-.6-.4-1-1-1h-4a1 1 0 0 0-1 1v4c0 .6.4 1 1 1h2l-1.3 2.7a1 1 0 0 0 .8 1.3z\" fill-rule=\"nonzero\"/></svg>',\n 'redo': '<svg width=\"24\" height=\"24\"><path d=\"M17.6 10H12c-2.8 0-4.4 1.4-4.9 3.5-.4 2 .3 4 1.4 4.6a1 1 0 1 1-1 1.8c-2-1.2-2.9-4.1-2.3-6.8.6-3 3-5.1 6.8-5.1h5.6l-3.3-3.3a1 1 0 1 1 1.4-1.4l5 5a1 1 0 0 1 0 1.4l-5 5a1 1 0 0 1-1.4-1.4l3.3-3.3z\" fill-rule=\"nonzero\"/></svg>',\n 'reload': '<svg width=\"24\" height=\"24\"><g fill-rule=\"nonzero\"><path d=\"M5 22.1l-1.2-4.7v-.2a1 1 0 0 1 1-1l5 .4a1 1 0 1 1-.2 2l-2.2-.2a7.8 7.8 0 0 0 8.4.2 7.5 7.5 0 0 0 3.5-6.4 1 1 0 1 1 2 0 9.5 9.5 0 0 1-4.5 8 9.9 9.9 0 0 1-10.2 0l.4 1.4a1 1 0 1 1-2 .5zM13.6 7.4c0-.5.5-1 1-.9l2.8.2a8 8 0 0 0-9.5-1 7.5 7.5 0 0 0-3.6 7 1 1 0 0 1-2 0 9.5 9.5 0 0 1 4.5-8.6 10 10 0 0 1 10.9.3l-.3-1a1 1 0 0 1 2-.5l1.1 4.8a1 1 0 0 1-1 1.2l-5-.4a1 1 0 0 1-.9-1z\"/></g></svg>',\n 'remove-formatting': '<svg width=\"24\" height=\"24\"><path d=\"M13.2 6a1 1 0 0 1 0 .2l-2.6 10a1 1 0 0 1-1 .8h-.2a.8.8 0 0 1-.8-1l2.6-10H8a1 1 0 1 1 0-2h9a1 1 0 0 1 0 2h-3.8zM5 18h7a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2zm13 1.5L16.5 18 15 19.5a.7.7 0 0 1-1-1l1.5-1.5-1.5-1.5a.7.7 0 0 1 1-1l1.5 1.5 1.5-1.5a.7.7 0 0 1 1 1L17.5 17l1.5 1.5a.7.7 0 0 1-1 1z\" fill-rule=\"evenodd\"/></svg>',\n 'remove': '<svg width=\"24\" height=\"24\"><path d=\"M16 7h3a1 1 0 0 1 0 2h-1v9a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V9H5a1 1 0 1 1 0-2h3V6a3 3 0 0 1 3-3h2a3 3 0 0 1 3 3v1zm-2 0V6c0-.6-.4-1-1-1h-2a1 1 0 0 0-1 1v1h4zm2 2H8v9c0 .6.4 1 1 1h6c.6 0 1-.4 1-1V9zm-7 3a1 1 0 0 1 2 0v4a1 1 0 0 1-2 0v-4zm4 0a1 1 0 0 1 2 0v4a1 1 0 0 1-2 0v-4z\" fill-rule=\"nonzero\"/></svg>',\n 'resize-handle': '<svg width=\"10\" height=\"10\"><g fill-rule=\"nonzero\"><path d=\"M8.1 1.1A.5.5 0 1 1 9 2l-7 7A.5.5 0 1 1 1 8l7-7zM8.1 5.1A.5.5 0 1 1 9 6l-3 3A.5.5 0 1 1 5 8l3-3z\"/></g></svg>',\n 'resize': '<svg width=\"24\" height=\"24\"><path d=\"M4 5c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h6c.3 0 .5.1.7.3.2.2.3.4.3.7 0 .3-.1.5-.3.7a1 1 0 0 1-.7.3H7.4L18 16.6V13c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3.3 0 .5.1.7.3.2.2.3.4.3.7v6c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3h-6a1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h3.6L6 7.4V11c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.7-.3A1 1 0 0 1 4 11V5z\" fill-rule=\"evenodd\"/></svg>',\n 'restore-draft': '<svg width=\"24\" height=\"24\"><g fill-rule=\"evenodd\"><path d=\"M17 13c0 .6-.4 1-1 1h-4V8c0-.6.4-1 1-1s1 .4 1 1v4h2c.6 0 1 .4 1 1z\"/><path d=\"M4.7 10H9a1 1 0 0 1 0 2H3a1 1 0 0 1-1-1V5a1 1 0 1 1 2 0v3l2.5-2.4a9.2 9.2 0 0 1 10.8-1.5A9 9 0 0 1 13.4 21c-2.4.1-4.7-.7-6.5-2.2a1 1 0 1 1 1.3-1.5 7.2 7.2 0 0 0 11.6-3.7 7 7 0 0 0-3.5-7.7A7.2 7.2 0 0 0 8 7L4.7 10z\" fill-rule=\"nonzero\"/></g></svg>',\n 'rotate-left': '<svg width=\"24\" height=\"24\"><path d=\"M4.7 10H9a1 1 0 0 1 0 2H3a1 1 0 0 1-1-1V5a1 1 0 1 1 2 0v3l2.5-2.4a9.2 9.2 0 0 1 10.8-1.5A9 9 0 0 1 13.4 21c-2.4.1-4.7-.7-6.5-2.2a1 1 0 1 1 1.3-1.5 7.2 7.2 0 0 0 11.6-3.7 7 7 0 0 0-3.5-7.7A7.2 7.2 0 0 0 8 7L4.7 10z\" fill-rule=\"nonzero\"/></svg>',\n 'rotate-right': '<svg width=\"24\" height=\"24\"><path d=\"M20 8V5a1 1 0 0 1 2 0v6c0 .6-.4 1-1 1h-6a1 1 0 0 1 0-2h4.3L16 7A7.2 7.2 0 0 0 7.7 6a7 7 0 0 0 3 13.1c1.9.1 3.7-.5 5-1.7a1 1 0 0 1 1.4 1.5A9.2 9.2 0 0 1 2.2 14c-.9-3.9 1-8 4.5-9.9 3.5-1.9 8-1.3 10.8 1.5L20 8z\" fill-rule=\"nonzero\"/></svg>',\n 'rtl': '<svg width=\"24\" height=\"24\"><path d=\"M8 5h8v2h-2v12h-2V7h-2v12H8v-7c-.5 0-1 0-1.4-.3A3.4 3.4 0 0 1 4.8 10a3.3 3.3 0 0 1 0-2.8 3.4 3.4 0 0 1 1.8-1.8L8 5zm12 11.2a1 1 0 1 1-1 1.6l-3-2a1 1 0 0 1 0-1.6l3-2a1 1 0 1 1 1 1.6L18.4 15l1.8 1.2z\" fill-rule=\"evenodd\"/></svg>',\n 'save': '<svg width=\"24\" height=\"24\"><path d=\"M5 16h14a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2zm0 2v2h14v-2H5zm10 0h2v2h-2v-2zm-4-6.4L8.7 9.3a1 1 0 1 0-1.4 1.4l4 4c.4.4 1 .4 1.4 0l4-4a1 1 0 1 0-1.4-1.4L13 11.6V4a1 1 0 0 0-2 0v7.6z\" fill-rule=\"nonzero\"/></svg>',\n 'search': '<svg width=\"24\" height=\"24\"><path d=\"M16 17.3a8 8 0 1 1 1.4-1.4l4.3 4.4a1 1 0 0 1-1.4 1.4l-4.4-4.3zm-5-.3a6 6 0 1 0 0-12 6 6 0 0 0 0 12z\" fill-rule=\"nonzero\"/></svg>',\n 'select-all': '<svg width=\"24\" height=\"24\"><path d=\"M3 5h2V3a2 2 0 0 0-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2a2 2 0 0 0-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8a2 2 0 0 0 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z\" fill-rule=\"nonzero\"/></svg>',\n 'selected': '<svg width=\"24\" height=\"24\"><path fill-rule=\"nonzero\" d=\"M6 4h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2zm3.6 10.9L7 12.3a.7.7 0 0 0-1 1L9.6 17 18 8.6a.7.7 0 0 0 0-1 .7.7 0 0 0-1 0l-7.4 7.3z\"/></svg>',\n 'settings': '<svg width=\"24\" height=\"24\"><path d=\"M11 6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8v.3c0 .2 0 .3-.2.5l-.6.2H7.8c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6V8H5a1 1 0 1 1 0-2h2v-.3c0-.2 0-.3.2-.5l.5-.2h2.5c.3 0 .4 0 .6.2l.2.5V6zM8 8h2V6H8v2zm9 2.8v.2h2c.6 0 1 .4 1 1s-.4 1-1 1h-2v.3c0 .2 0 .3-.2.5l-.6.2h-2.4c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6V13H5a1 1 0 0 1 0-2h8v-.3c0-.2 0-.3.2-.5l.6-.2h2.4c.3 0 .4 0 .6.2l.2.6zM14 13h2v-2h-2v2zm-3 2.8v.2h8c.6 0 1 .4 1 1s-.4 1-1 1h-8v.3c0 .2 0 .3-.2.5l-.6.2H7.8c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6V18H5a1 1 0 0 1 0-2h2v-.3c0-.2 0-.3.2-.5l.5-.2h2.5c.3 0 .4 0 .6.2l.2.6zM8 18h2v-2H8v2z\" fill-rule=\"evenodd\"/></svg>',\n 'sharpen': '<svg width=\"24\" height=\"24\"><path d=\"M16 6l4 4-8 9-8-9 4-4h8zm-4 10.2l5.5-6.2-.1-.1H12v-.3h5.1l-.2-.2H12V9h4.6l-.2-.2H12v-.3h4.1l-.2-.2H12V8h3.6l-.2-.2H8.7L6.5 10l.1.1H12v.3H6.9l.2.2H12v.3H7.3l.2.2H12v.3H7.7l.3.2h4v.3H8.2l.2.2H12v.3H8.6l.3.2H12v.3H9l.3.2H12v.3H9.5l.2.2H12v.3h-2l.2.2H12v.3h-1.6l.2.2H12v.3h-1.1l.2.2h.9v.3h-.7l.2.2h.5v.3h-.3l.3.2z\" fill-rule=\"evenodd\"/></svg>',\n 'sourcecode': '<svg width=\"24\" height=\"24\"><g fill-rule=\"nonzero\"><path d=\"M9.8 15.7c.3.3.3.8 0 1-.3.4-.9.4-1.2 0l-4.4-4.1a.8.8 0 0 1 0-1.2l4.4-4.2c.3-.3.9-.3 1.2 0 .3.3.3.8 0 1.1L6 12l3.8 3.7zM14.2 15.7c-.3.3-.3.8 0 1 .4.4.9.4 1.2 0l4.4-4.1c.3-.3.3-.9 0-1.2l-4.4-4.2a.8.8 0 0 0-1.2 0c-.3.3-.3.8 0 1.1L18 12l-3.8 3.7z\"/></g></svg>',\n 'spell-check': '<svg width=\"24\" height=\"24\"><path d=\"M6 8v3H5V5c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h2c.3 0 .5.1.7.3.2.2.3.4.3.7v6H8V8H6zm0-3v2h2V5H6zm13 0h-3v5h3v1h-3a1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7V5c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h3v1zm-5 1.5l-.1.7c-.1.2-.3.3-.6.3.3 0 .5.1.6.3l.1.7V10c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3h-3V4h3c.3 0 .5.1.7.3.2.2.3.4.3.7v1.5zM13 10V8h-2v2h2zm0-3V5h-2v2h2zm3 5l1 1-6.5 7L7 15.5l1.3-1 2.2 2.2L16 12z\" fill-rule=\"evenodd\"/></svg>',\n 'strike-through': '<svg width=\"24\" height=\"24\"><g fill-rule=\"evenodd\"><path d=\"M15.6 8.5c-.5-.7-1-1.1-1.3-1.3-.6-.4-1.3-.6-2-.6-2.7 0-2.8 1.7-2.8 2.1 0 1.6 1.8 2 3.2 2.3 4.4.9 4.6 2.8 4.6 3.9 0 1.4-.7 4.1-5 4.1A6.2 6.2 0 0 1 7 16.4l1.5-1.1c.4.6 1.6 2 3.7 2 1.6 0 2.5-.4 3-1.2.4-.8.3-2-.8-2.6-.7-.4-1.6-.7-2.9-1-1-.2-3.9-.8-3.9-3.6C7.6 6 10.3 5 12.4 5c2.9 0 4.2 1.6 4.7 2.4l-1.5 1.1z\"/><path d=\"M5 11h14a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2z\" fill-rule=\"nonzero\"/></g></svg>',\n 'subscript': '<svg width=\"24\" height=\"24\"><path d=\"M10.4 10l4.6 4.6-1.4 1.4L9 11.4 4.4 16 3 14.6 7.6 10 3 5.4 4.4 4 9 8.6 13.6 4 15 5.4 10.4 10zM21 19h-5v-1l1-.8 1.7-1.6c.3-.4.5-.8.5-1.2 0-.3 0-.6-.2-.7-.2-.2-.5-.3-.9-.3a2 2 0 0 0-.8.2l-.7.3-.4-1.1 1-.6 1.2-.2c.8 0 1.4.3 1.8.7.4.4.6.9.6 1.5s-.2 1.1-.5 1.6a8 8 0 0 1-1.3 1.3l-.6.6h2.6V19z\" fill-rule=\"nonzero\"/></svg>',\n 'superscript': '<svg width=\"24\" height=\"24\"><path d=\"M15 9.4L10.4 14l4.6 4.6-1.4 1.4L9 15.4 4.4 20 3 18.6 7.6 14 3 9.4 4.4 8 9 12.6 13.6 8 15 9.4zm5.9 1.6h-5v-1l1-.8 1.7-1.6c.3-.5.5-.9.5-1.3 0-.3 0-.5-.2-.7-.2-.2-.5-.3-.9-.3l-.8.2-.7.4-.4-1.2c.2-.2.5-.4 1-.5.3-.2.8-.2 1.2-.2.8 0 1.4.2 1.8.6.4.4.6 1 .6 1.6 0 .5-.2 1-.5 1.5l-1.3 1.4-.6.5h2.6V11z\" fill-rule=\"nonzero\"/></svg>',\n 'table-cell-properties': '<svg width=\"24\" height=\"24\"><path d=\"M4 5h16v14H4V5zm10 10h-4v3h4v-3zm0-8h-4v3h4V7zM9 7H5v3h4V7zm-4 4v3h4v-3H5zm10 0v3h4v-3h-4zm0-1h4V7h-4v3zM5 15v3h4v-3H5zm10 3h4v-3h-4v3z\" fill-rule=\"evenodd\"/></svg>',\n 'table-cell-select-all': '<svg width=\"24\" height=\"24\"><path d=\"M12.5 5.5v6h6v-6h-6zm-1 0h-6v6h6v-6zm1 13h6v-6h-6v6zm-1 0v-6h-6v6h6zm-7-14h15v15h-15v-15z\" fill-rule=\"nonzero\"/></svg>',\n 'table-cell-select-inner': '<svg width=\"24\" height=\"24\"><g fill-rule=\"nonzero\"><path d=\"M5.5 5.5v13h13v-13h-13zm-1-1h15v15h-15v-15z\" opacity=\".2\"/><path d=\"M11.5 11.5v-7h1v7h7v1h-7v7h-1v-7h-7v-1h7z\"/></g></svg>',\n 'table-delete-column': '<svg width=\"24\" height=\"24\"><path d=\"M9 11.2l1 1v.2l-1 1v-2.2zm5 1l1-1v2.2l-1-1v-.2zM20 5v14H4V5h16zm-1 2h-4v.8l-.2-.2-.8.8V7h-4v1.4l-.8-.8-.2.2V7H5v11h4v-1.8l.5.5.5-.4V18h4v-1.8l.8.8.2-.3V18h4V7zm-3.9 3.4l-1.8 1.9 1.8 1.9c.4.3.4.9 0 1.2-.3.3-.8.3-1.2 0L12 13.5l-1.8 1.9a.8.8 0 0 1-1.2 0 .9.9 0 0 1 0-1.2l1.8-1.9-1.9-2a.9.9 0 0 1 1.2-1.2l2 2 1.8-1.8c.3-.4.9-.4 1.2 0a.8.8 0 0 1 0 1.1z\" fill-rule=\"evenodd\"/></svg>',\n 'table-delete-row': '<svg width=\"24\" height=\"24\"><path d=\"M16.7 8.8l1.1 1.2-2.4 2.5L18 15l-1.2 1.2-2.5-2.5-2.4 2.5-1.3-1.2 2.5-2.5-2.5-2.5 1.2-1.3 2.6 2.6 2.4-2.5zM4 5h16v14H4V5zm15 5V7H5v3h4.8l1 1H5v3h5.8l-1 1H5v3h14v-3h-.4l-1-1H19v-3h-1.3l1-1h.3z\" fill-rule=\"evenodd\"/></svg>',\n 'table-delete-table': '<svg width=\"24\" height=\"26\"><path d=\"M4 6h16v14H4V6zm1 2v11h14V8H5zm11.7 8.7l-1.5 1.5L12 15l-3.3 3.2-1.4-1.5 3.2-3.2-3.3-3.2 1.5-1.5L12 12l3.2-3.2 1.5 1.5-3.2 3.2 3.2 3.2z\" fill-rule=\"evenodd\"/></svg>',\n 'table-insert-column-after': '<svg width=\"24\" height=\"24\"><path d=\"M14.3 9c.4 0 .7.3.7.6v2.2h2.1c.4 0 .7.3.7.7 0 .4-.3.7-.7.7H15v2.2c0 .3-.3.6-.7.6a.7.7 0 0 1-.6-.6v-2.2h-2.2a.7.7 0 0 1 0-1.4h2.2V9.6c0-.3.3-.6.6-.6zM4 5h16v14H4V5zm5 13v-3H5v3h4zm0-4v-3H5v3h4zm0-4V7H5v3h4zm10 8V7h-9v11h9z\" fill-rule=\"evenodd\"/></svg>',\n 'table-insert-column-before': '<svg width=\"24\" height=\"24\"><path d=\"M9.7 16a.7.7 0 0 1-.7-.6v-2.2H6.9a.7.7 0 0 1 0-1.4H9V9.6c0-.3.3-.6.7-.6.3 0 .6.3.6.6v2.2h2.2c.4 0 .8.3.8.7 0 .4-.4.7-.8.7h-2.2v2.2c0 .3-.3.6-.6.6zM4 5h16v14H4V5zm10 13V7H5v11h9zm5 0v-3h-4v3h4zm0-4v-3h-4v3h4zm0-4V7h-4v3h4z\" fill-rule=\"evenodd\"/></svg>',\n 'table-insert-row-above': '<svg width=\"24\" height=\"24\"><path d=\"M14.8 10.5c0 .3-.2.5-.5.5h-1.8v1.8c0 .3-.2.5-.5.5a.5.5 0 0 1-.5-.6V11H9.7a.5.5 0 0 1 0-1h1.8V8.3c0-.3.2-.6.5-.6s.5.3.5.6V10h1.8c.3 0 .5.2.5.5zM4 5h16v14H4V5zm5 13v-3H5v3h4zm5 0v-3h-4v3h4zm5 0v-3h-4v3h4zm0-4V7H5v7h14z\" fill-rule=\"evenodd\"/></svg>',\n 'table-insert-row-after': '<svg width=\"24\" height=\"24\"><path d=\"M9.2 14.5c0-.3.2-.5.5-.5h1.8v-1.8c0-.3.2-.5.5-.5s.5.2.5.6V14h1.8c.3 0 .5.2.5.5s-.2.5-.5.5h-1.8v1.7c0 .3-.2.6-.5.6a.5.5 0 0 1-.5-.6V15H9.7a.5.5 0 0 1-.5-.5zM4 5h16v14H4V5zm6 2v3h4V7h-4zM5 7v3h4V7H5zm14 11v-7H5v7h14zm0-8V7h-4v3h4z\" fill-rule=\"evenodd\"/></svg>',\n 'table-left-header': '<svg width=\"24\" height=\"24\"><path d=\"M4 5h16v13H4V5zm10 12v-3h-4v3h4zm0-4v-3h-4v3h4zm0-4V6h-4v3h4zm5 8v-3h-4v3h4zm0-4v-3h-4v3h4zm0-4V6h-4v3h4z\" fill-rule=\"evenodd\"/></svg>',\n 'table-merge-cells': '<svg width=\"24\" height=\"24\"><path d=\"M4 5h16v14H4V5zm6 13h9v-7h-9v7zm4-11h-4v3h4V7zM9 7H5v3h4V7zm-4 4v3h4v-3H5zm10-1h4V7h-4v3zM5 15v3h4v-3H5z\" fill-rule=\"evenodd\"/></svg>',\n 'table-row-properties': '<svg width=\"24\" height=\"24\"><path d=\"M4 5h16v14H4V5zm10 10h-4v3h4v-3zm0-8h-4v3h4V7zM9 7H5v3h4V7zm6 3h4V7h-4v3zM5 15v3h4v-3H5zm10 3h4v-3h-4v3z\" fill-rule=\"evenodd\"/></svg>',\n 'table-split-cells': '<svg width=\"24\" height=\"24\"><path d=\"M4 5h16v14H4V5zm6 2v3h4V7h-4zM9 18v-3H5v3h4zm0-4v-3H5v3h4zm0-4V7H5v3h4zm10 8v-7h-9v7h9zm0-8V7h-4v3h4zm-3.5 4.5l1.5 1.6c.3.2.3.7 0 1-.2.2-.7.2-1 0l-1.5-1.6-1.6 1.5c-.2.3-.7.3-1 0a.7.7 0 0 1 0-1l1.6-1.5-1.5-1.6a.7.7 0 0 1 1-1l1.5 1.6 1.6-1.5c.2-.3.7-.3 1 0 .2.2.2.7 0 1l-1.6 1.5z\" fill-rule=\"evenodd\"/></svg>',\n 'table-top-header': '<svg width=\"24\" height=\"24\"><path d=\"M4 5h16v13H4V5zm5 12v-3H5v3h4zm0-4v-3H5v3h4zm5 4v-3h-4v3h4zm0-4v-3h-4v3h4zm5 4v-3h-4v3h4zm0-4v-3h-4v3h4z\" fill-rule=\"evenodd\"/></svg>',\n 'table': '<svg width=\"24\" height=\"24\"><path d=\"M4 5h16v14H4V5zm6 9h4v-3h-4v3zm4 1h-4v3h4v-3zm0-8h-4v3h4V7zM9 7H5v3h4V7zm-4 4v3h4v-3H5zm10 0v3h4v-3h-4zm0-1h4V7h-4v3zM5 15v3h4v-3H5zm10 3h4v-3h-4v3z\" fill-rule=\"evenodd\"/></svg>',\n 'template': '<svg width=\"24\" height=\"24\"><path d=\"M19 19v-1H5v1h14zM9 16v-4a5 5 0 1 1 6 0v4h4a2 2 0 0 1 2 2v3H3v-3c0-1.1.9-2 2-2h4zm4 0v-5l.8-.6a3 3 0 1 0-3.6 0l.8.6v5h2z\" fill-rule=\"nonzero\"/></svg>',\n 'temporary-placeholder': '<svg width=\"24\" height=\"24\"><g fill-rule=\"evenodd\"><path d=\"M9 7.6V6h2.5V4.5a.5.5 0 1 1 1 0V6H15v1.6a8 8 0 1 1-6 0zm-2.6 5.3a.5.5 0 0 0 .3.6c.3 0 .6 0 .6-.3l.1-.2a5 5 0 0 1 3.3-2.8c.3-.1.4-.4.4-.6-.1-.3-.4-.5-.6-.4a6 6 0 0 0-4.1 3.7z\"/><circle cx=\"14\" cy=\"4\" r=\"1\"/><circle cx=\"12\" cy=\"2\" r=\"1\"/><circle cx=\"10\" cy=\"4\" r=\"1\"/></g></svg>',\n 'text-color': '<svg width=\"24\" height=\"24\"><g fill-rule=\"evenodd\"><path id=\"tox-icon-text-color__color\" d=\"M3 18h18v3H3z\"/><path d=\"M8.7 16h-.8a.5.5 0 0 1-.5-.6l2.7-9c.1-.3.3-.4.5-.4h2.8c.2 0 .4.1.5.4l2.7 9a.5.5 0 0 1-.5.6h-.8a.5.5 0 0 1-.4-.4l-.7-2.2c0-.3-.3-.4-.5-.4h-3.4c-.2 0-.4.1-.5.4l-.7 2.2c0 .3-.2.4-.4.4zm2.6-7.6l-.6 2a.5.5 0 0 0 .5.6h1.6a.5.5 0 0 0 .5-.6l-.6-2c0-.3-.3-.4-.5-.4h-.4c-.2 0-.4.1-.5.4z\"/></g></svg>',\n 'toc': '<svg width=\"24\" height=\"24\"><path d=\"M5 5c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 1 1 0-2zm3 0h11c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 1 1 0-2zm-3 8c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h11c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2zm0-4c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 1 1 0-2zm3 0h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm-3 8c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2z\" fill-rule=\"evenodd\"/></svg>',\n 'translate': '<svg width=\"24\" height=\"24\"><path d=\"M12.7 14.3l-.3.7-.4.7-2.2-2.2-3.1 3c-.3.4-.8.4-1 0a.7.7 0 0 1 0-1l3.1-3A12.4 12.4 0 0 1 6.7 9H8a10.1 10.1 0 0 0 1.7 2.4c.5-.5 1-1.1 1.4-1.8l.9-2H4.7a.7.7 0 1 1 0-1.5h4.4v-.7c0-.4.3-.8.7-.8.4 0 .7.4.7.8v.7H15c.4 0 .8.3.8.7 0 .4-.4.8-.8.8h-1.4a12.3 12.3 0 0 1-1 2.4 13.5 13.5 0 0 1-1.7 2.3l1.9 1.8zm4.3-3l2.7 7.3a.5.5 0 0 1-.4.7 1 1 0 0 1-1-.7l-.6-1.5h-3.4l-.6 1.5a1 1 0 0 1-1 .7.5.5 0 0 1-.4-.7l2.7-7.4a1 1 0 1 1 2 0zm-2.2 4.4h2.4L16 12.5l-1.2 3.2z\" fill-rule=\"evenodd\"/></svg>',\n 'underline': '<svg width=\"24\" height=\"24\"><path d=\"M16 5c.6 0 1 .4 1 1v5.5a4 4 0 0 1-.4 1.8l-1 1.4a5.3 5.3 0 0 1-5.5 1 5 5 0 0 1-1.6-1c-.5-.4-.8-.9-1.1-1.4a4 4 0 0 1-.4-1.8V6c0-.6.4-1 1-1s1 .4 1 1v5.5c0 .3 0 .6.2 1l.6.7a3.3 3.3 0 0 0 2.2.8 3.4 3.4 0 0 0 2.2-.8c.3-.2.4-.5.6-.8l.2-.9V6c0-.6.4-1 1-1zM8 17h8c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2z\" fill-rule=\"evenodd\"/></svg>',\n 'undo': '<svg width=\"24\" height=\"24\"><path d=\"M6.4 8H12c3.7 0 6.2 2 6.8 5.1.6 2.7-.4 5.6-2.3 6.8a1 1 0 0 1-1-1.8c1.1-.6 1.8-2.7 1.4-4.6-.5-2.1-2.1-3.5-4.9-3.5H6.4l3.3 3.3a1 1 0 1 1-1.4 1.4l-5-5a1 1 0 0 1 0-1.4l5-5a1 1 0 0 1 1.4 1.4L6.4 8z\" fill-rule=\"nonzero\"/></svg>',\n 'unlink': '<svg width=\"24\" height=\"24\"><path d=\"M6.2 12.3a1 1 0 0 1 1.4 1.4l-2 2a2 2 0 1 0 2.6 2.8l4.8-4.8a1 1 0 0 0 0-1.4 1 1 0 1 1 1.4-1.3 2.9 2.9 0 0 1 0 4L9.6 20a3.9 3.9 0 0 1-5.5-5.5l2-2zm11.6-.6a1 1 0 0 1-1.4-1.4l2.1-2a2 2 0 1 0-2.7-2.8L11 10.3a1 1 0 0 0 0 1.4A1 1 0 1 1 9.6 13a2.9 2.9 0 0 1 0-4L14.4 4a3.9 3.9 0 0 1 5.5 5.5l-2 2zM7.6 6.3a.8.8 0 0 1-1 1.1L3.3 4.2a.7.7 0 1 1 1-1l3.2 3.1zM5.1 8.6a.8.8 0 0 1 0 1.5H3a.8.8 0 0 1 0-1.5H5zm5-3.5a.8.8 0 0 1-1.5 0V3a.8.8 0 0 1 1.5 0V5zm6 11.8a.8.8 0 0 1 1-1l3.2 3.2a.8.8 0 0 1-1 1L16 17zm-2.2 2a.8.8 0 0 1 1.5 0V21a.8.8 0 0 1-1.5 0V19zm5-3.5a.7.7 0 1 1 0-1.5H21a.8.8 0 0 1 0 1.5H19z\" fill-rule=\"nonzero\"/></svg>',\n 'unlock': '<svg width=\"24\" height=\"24\"><path d=\"M16 5c.8 0 1.5.3 2.1.9.6.6.9 1.3.9 2.1v3h-2V8a1 1 0 0 0-.3-.7A1 1 0 0 0 16 7h-2a1 1 0 0 0-.7.3 1 1 0 0 0-.3.7v3h.3c.2 0 .3 0 .5.2l.2.6v7.4c0 .3 0 .4-.2.6l-.6.2H4.8c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6v-7.4c0-.3 0-.4.2-.6l.5-.2H11V8c0-.8.3-1.5.9-2.1.6-.6 1.3-.9 2.1-.9h2z\" fill-rule=\"evenodd\"/></svg>',\n 'unordered-list': '<svg width=\"24\" height=\"24\"><path d=\"M11 5h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0 6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0 6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zM4.5 6c0-.4.1-.8.4-1 .3-.4.7-.5 1.1-.5.4 0 .8.1 1 .4.4.3.5.7.5 1.1 0 .4-.1.8-.4 1-.3.4-.7.5-1.1.5-.4 0-.8-.1-1-.4-.4-.3-.5-.7-.5-1.1zm0 6c0-.4.1-.8.4-1 .3-.4.7-.5 1.1-.5.4 0 .8.1 1 .4.4.3.5.7.5 1.1 0 .4-.1.8-.4 1-.3.4-.7.5-1.1.5-.4 0-.8-.1-1-.4-.4-.3-.5-.7-.5-1.1zm0 6c0-.4.1-.8.4-1 .3-.4.7-.5 1.1-.5.4 0 .8.1 1 .4.4.3.5.7.5 1.1 0 .4-.1.8-.4 1-.3.4-.7.5-1.1.5-.4 0-.8-.1-1-.4-.4-.3-.5-.7-.5-1.1z\" fill-rule=\"evenodd\"/></svg>',\n 'unselected': '<svg width=\"24\" height=\"24\"><path fill-rule=\"nonzero\" d=\"M6 4h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2zm0 1a1 1 0 0 0-1 1v12c0 .6.4 1 1 1h12c.6 0 1-.4 1-1V6c0-.6-.4-1-1-1H6z\"/></svg>',\n 'upload': '<svg width=\"24\" height=\"24\"><path d=\"M18 19v-2a1 1 0 0 1 2 0v3c0 .6-.4 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 2 0v2h12zM11 6.4L8.7 8.7a1 1 0 0 1-1.4-1.4l4-4a1 1 0 0 1 1.4 0l4 4a1 1 0 1 1-1.4 1.4L13 6.4V16a1 1 0 0 1-2 0V6.4z\" fill-rule=\"nonzero\"/></svg>',\n 'user': '<svg width=\"24\" height=\"24\"><path d=\"M12 24a12 12 0 1 1 0-24 12 12 0 0 1 0 24zm-8.7-5.3a11 11 0 0 0 17.4 0C19.4 16.3 14.6 15 12 15c-2.6 0-7.4 1.3-8.7 3.7zM12 13c2.2 0 4-2 4-4.5S14.2 4 12 4 8 6 8 8.5 9.8 13 12 13z\" fill-rule=\"nonzero\"/></svg>',\n 'visualblocks': '<svg width=\"24\" height=\"24\"><path d=\"M9 19v2H7v-2h2zm-4 0v2a2 2 0 0 1-2-2h2zm8 0v2h-2v-2h2zm8 0a2 2 0 0 1-2 2v-2h2zm-4 0v2h-2v-2h2zM15 7a1 1 0 0 1 0 2v7a1 1 0 0 1-2 0V9h-1v7a1 1 0 0 1-2 0v-4a2.5 2.5 0 0 1-.2-5H15zM5 15v2H3v-2h2zm16 0v2h-2v-2h2zM5 11v2H3v-2h2zm16 0v2h-2v-2h2zM5 7v2H3V7h2zm16 0v2h-2V7h2zM5 3v2H3c0-1.1.9-2 2-2zm8 0v2h-2V3h2zm6 0a2 2 0 0 1 2 2h-2V3zM9 3v2H7V3h2zm8 0v2h-2V3h2z\" fill-rule=\"evenodd\"/></svg>',\n 'visualchars': '<svg width=\"24\" height=\"24\"><path d=\"M10 5h7a1 1 0 0 1 0 2h-1v11a1 1 0 0 1-2 0V7h-2v11a1 1 0 0 1-2 0v-6c-.5 0-1 0-1.4-.3A3.4 3.4 0 0 1 6.8 10a3.3 3.3 0 0 1 0-2.8 3.4 3.4 0 0 1 1.8-1.8L10 5z\" fill-rule=\"evenodd\"/></svg>',\n 'warning': '<svg width=\"24\" height=\"24\"><path d=\"M19.8 18.3c.2.5.3.9 0 1.2-.1.3-.5.5-1 .5H5.2c-.5 0-.9-.2-1-.5-.3-.3-.2-.7 0-1.2L11 4.7l.5-.5.5-.2c.2 0 .3 0 .5.2.2 0 .3.3.5.5l6.8 13.6zM12 18c.3 0 .5-.1.7-.3.2-.2.3-.4.3-.7a1 1 0 0 0-.3-.7 1 1 0 0 0-.7-.3 1 1 0 0 0-.7.3 1 1 0 0 0-.3.7c0 .3.1.5.3.7.2.2.4.3.7.3zm.7-3l.3-4a1 1 0 0 0-.3-.7 1 1 0 0 0-.7-.3 1 1 0 0 0-.7.3 1 1 0 0 0-.3.7l.3 4h1.4z\" fill-rule=\"evenodd\"/></svg>',\n 'zoom-in': '<svg width=\"24\" height=\"24\"><path d=\"M16 17.3a8 8 0 1 1 1.4-1.4l4.3 4.4a1 1 0 0 1-1.4 1.4l-4.4-4.3zm-5-.3a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm-1-9a1 1 0 0 1 2 0v6a1 1 0 0 1-2 0V8zm-2 4a1 1 0 0 1 0-2h6a1 1 0 0 1 0 2H8z\" fill-rule=\"nonzero\"/></svg>',\n 'zoom-out': '<svg width=\"24\" height=\"24\"><path d=\"M16 17.3a8 8 0 1 1 1.4-1.4l4.3 4.4a1 1 0 0 1-1.4 1.4l-4.4-4.3zm-5-.3a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm-3-5a1 1 0 0 1 0-2h6a1 1 0 0 1 0 2H8z\" fill-rule=\"nonzero\"/></svg>'\n };\n };\n\n var CreateIconManager = function () {\n var lookup = {};\n var add = function (id, iconPack) {\n lookup[id] = iconPack;\n };\n var get = function (id) {\n if (lookup[id]) {\n return lookup[id];\n }\n return { icons: {} };\n };\n var has$1 = function (id) {\n return has(lookup, id);\n };\n return {\n add: add,\n get: get,\n has: has$1\n };\n };\n var IconManager = CreateIconManager();\n\n var PluginManager = AddOnManager$1.PluginManager;\n\n var ThemeManager = AddOnManager$1.ThemeManager;\n\n function Uploader(uploadStatus, settings) {\n var pendingPromises = {};\n var pathJoin = function (path1, path2) {\n if (path1) {\n return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\n }\n return path2;\n };\n var defaultHandler = function (blobInfo, success, failure, progress) {\n var xhr, formData;\n xhr = new domGlobals.XMLHttpRequest();\n xhr.open('POST', settings.url);\n xhr.withCredentials = settings.credentials;\n xhr.upload.onprogress = function (e) {\n progress(e.loaded / e.total * 100);\n };\n xhr.onerror = function () {\n failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\n };\n xhr.onload = function () {\n var json;\n if (xhr.status < 200 || xhr.status >= 300) {\n failure('HTTP Error: ' + xhr.status);\n return;\n }\n json = JSON.parse(xhr.responseText);\n if (!json || typeof json.location !== 'string') {\n failure('Invalid JSON: ' + xhr.responseText);\n return;\n }\n success(pathJoin(settings.basePath, json.location));\n };\n formData = new domGlobals.FormData();\n formData.append('file', blobInfo.blob(), blobInfo.filename());\n xhr.send(formData);\n };\n var noUpload = function () {\n return new promiseObj(function (resolve) {\n resolve([]);\n });\n };\n var handlerSuccess = function (blobInfo, url) {\n return {\n url: url,\n blobInfo: blobInfo,\n status: true\n };\n };\n var handlerFailure = function (blobInfo, error) {\n return {\n url: '',\n blobInfo: blobInfo,\n status: false,\n error: error\n };\n };\n var resolvePending = function (blobUri, result) {\n Tools.each(pendingPromises[blobUri], function (resolve) {\n resolve(result);\n });\n delete pendingPromises[blobUri];\n };\n var uploadBlobInfo = function (blobInfo, handler, openNotification) {\n uploadStatus.markPending(blobInfo.blobUri());\n return new promiseObj(function (resolve) {\n var notification, progress;\n var noop = function () {\n };\n try {\n var closeNotification_1 = function () {\n if (notification) {\n notification.close();\n progress = noop;\n }\n };\n var success = function (url) {\n closeNotification_1();\n uploadStatus.markUploaded(blobInfo.blobUri(), url);\n resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url));\n resolve(handlerSuccess(blobInfo, url));\n };\n var failure = function (error) {\n closeNotification_1();\n uploadStatus.removeFailed(blobInfo.blobUri());\n resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error));\n resolve(handlerFailure(blobInfo, error));\n };\n progress = function (percent) {\n if (percent < 0 || percent > 100) {\n return;\n }\n if (!notification) {\n notification = openNotification();\n }\n notification.progressBar.value(percent);\n };\n handler(blobInfo, success, failure, progress);\n } catch (ex) {\n resolve(handlerFailure(blobInfo, ex.message));\n }\n });\n };\n var isDefaultHandler = function (handler) {\n return handler === defaultHandler;\n };\n var pendingUploadBlobInfo = function (blobInfo) {\n var blobUri = blobInfo.blobUri();\n return new promiseObj(function (resolve) {\n pendingPromises[blobUri] = pendingPromises[blobUri] || [];\n pendingPromises[blobUri].push(resolve);\n });\n };\n var uploadBlobs = function (blobInfos, openNotification) {\n blobInfos = Tools.grep(blobInfos, function (blobInfo) {\n return !uploadStatus.isUploaded(blobInfo.blobUri());\n });\n return promiseObj.all(Tools.map(blobInfos, function (blobInfo) {\n return uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, settings.handler, openNotification);\n }));\n };\n var upload = function (blobInfos, openNotification) {\n return !settings.url && isDefaultHandler(settings.handler) ? noUpload() : uploadBlobs(blobInfos, openNotification);\n };\n if (isFunction(settings.handler) === false) {\n settings.handler = defaultHandler;\n }\n return { upload: upload };\n }\n\n var blobUriToBlob = function (url) {\n return new promiseObj(function (resolve, reject) {\n var rejectWithError = function () {\n reject('Cannot convert ' + url + ' to Blob. Resource might not exist or is inaccessible.');\n };\n try {\n var xhr = new domGlobals.XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n rejectWithError();\n }\n };\n xhr.onerror = rejectWithError;\n xhr.send();\n } catch (ex) {\n rejectWithError();\n }\n });\n };\n var parseDataUri = function (uri) {\n var type, matches;\n var uriParts = decodeURIComponent(uri).split(',');\n matches = /data:([^;]+)/.exec(uriParts[0]);\n if (matches) {\n type = matches[1];\n }\n return {\n type: type,\n data: uriParts[1]\n };\n };\n var dataUriToBlob = function (uri) {\n return new promiseObj(function (resolve) {\n var str, arr, i;\n var uriParts = parseDataUri(uri);\n try {\n str = domGlobals.atob(uriParts.data);\n } catch (e) {\n resolve(new domGlobals.Blob([]));\n return;\n }\n arr = new Uint8Array(str.length);\n for (i = 0; i < arr.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n resolve(new domGlobals.Blob([arr], { type: uriParts.type }));\n });\n };\n var uriToBlob = function (url) {\n if (url.indexOf('blob:') === 0) {\n return blobUriToBlob(url);\n }\n if (url.indexOf('data:') === 0) {\n return dataUriToBlob(url);\n }\n return null;\n };\n var blobToDataUri = function (blob) {\n return new promiseObj(function (resolve) {\n var reader = new domGlobals.FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n };\n var Conversions = {\n uriToBlob: uriToBlob,\n blobToDataUri: blobToDataUri,\n parseDataUri: parseDataUri\n };\n\n var count = 0;\n var uniqueId = function (prefix) {\n return (prefix || 'blobid') + count++;\n };\n var imageToBlobInfo = function (blobCache, img, resolve, reject) {\n var base64, blobInfo;\n if (img.src.indexOf('blob:') === 0) {\n blobInfo = blobCache.getByUri(img.src);\n if (blobInfo) {\n resolve({\n image: img,\n blobInfo: blobInfo\n });\n } else {\n Conversions.uriToBlob(img.src).then(function (blob) {\n Conversions.blobToDataUri(blob).then(function (dataUri) {\n base64 = Conversions.parseDataUri(dataUri).data;\n blobInfo = blobCache.create(uniqueId(), blob, base64);\n blobCache.add(blobInfo);\n resolve({\n image: img,\n blobInfo: blobInfo\n });\n });\n }, function (err) {\n reject(err);\n });\n }\n return;\n }\n base64 = Conversions.parseDataUri(img.src).data;\n blobInfo = blobCache.findFirst(function (cachedBlobInfo) {\n return cachedBlobInfo.base64() === base64;\n });\n if (blobInfo) {\n resolve({\n image: img,\n blobInfo: blobInfo\n });\n } else {\n Conversions.uriToBlob(img.src).then(function (blob) {\n blobInfo = blobCache.create(uniqueId(), blob, base64);\n blobCache.add(blobInfo);\n resolve({\n image: img,\n blobInfo: blobInfo\n });\n }, function (err) {\n reject(err);\n });\n }\n };\n var getAllImages = function (elm) {\n return elm ? from$1(elm.getElementsByTagName('img')) : [];\n };\n function ImageScanner(uploadStatus, blobCache) {\n var cachedPromises = {};\n var findAll = function (elm, predicate) {\n var images;\n if (!predicate) {\n predicate = constant(true);\n }\n images = filter(getAllImages(elm), function (img) {\n var src = img.src;\n if (!Env.fileApi) {\n return false;\n }\n if (img.hasAttribute('data-mce-bogus')) {\n return false;\n }\n if (img.hasAttribute('data-mce-placeholder')) {\n return false;\n }\n if (!src || src === Env.transparentSrc) {\n return false;\n }\n if (src.indexOf('blob:') === 0) {\n return !uploadStatus.isUploaded(src) && predicate(img);\n }\n if (src.indexOf('data:') === 0) {\n return predicate(img);\n }\n return false;\n });\n var promises = map(images, function (img) {\n if (cachedPromises[img.src]) {\n return new promiseObj(function (resolve) {\n cachedPromises[img.src].then(function (imageInfo) {\n if (typeof imageInfo === 'string') {\n return imageInfo;\n }\n resolve({\n image: img,\n blobInfo: imageInfo.blobInfo\n });\n });\n });\n }\n var newPromise = new promiseObj(function (resolve, reject) {\n imageToBlobInfo(blobCache, img, resolve, reject);\n }).then(function (result) {\n delete cachedPromises[result.image.src];\n return result;\n }).catch(function (error) {\n delete cachedPromises[img.src];\n return error;\n });\n cachedPromises[img.src] = newPromise;\n return newPromise;\n });\n return promiseObj.all(promises);\n };\n return { findAll: findAll };\n }\n\n var count$1 = 0;\n var seed = function () {\n var rnd = function () {\n return Math.round(Math.random() * 4294967295).toString(36);\n };\n var now = new Date().getTime();\n return 's' + now.toString(36) + rnd() + rnd() + rnd();\n };\n var uuid = function (prefix) {\n return prefix + count$1++ + seed();\n };\n var Uuid = { uuid: uuid };\n\n var BlobCache = function () {\n var cache = [];\n var mimeToExt = function (mime) {\n var mimes = {\n 'image/jpeg': 'jpg',\n 'image/jpg': 'jpg',\n 'image/gif': 'gif',\n 'image/png': 'png'\n };\n return mimes[mime.toLowerCase()] || 'dat';\n };\n var create = function (o, blob, base64, filename) {\n if (isString(o)) {\n var id = o;\n return toBlobInfo({\n id: id,\n name: filename,\n blob: blob,\n base64: base64\n });\n } else if (isObject(o)) {\n return toBlobInfo(o);\n } else {\n throw new Error('Unknown input type');\n }\n };\n var toBlobInfo = function (o) {\n var id, name;\n if (!o.blob || !o.base64) {\n throw new Error('blob and base64 representations of the image are required for BlobInfo to be created');\n }\n id = o.id || Uuid.uuid('blobid');\n name = o.name || id;\n return {\n id: constant(id),\n name: constant(name),\n filename: constant(name + '.' + mimeToExt(o.blob.type)),\n blob: constant(o.blob),\n base64: constant(o.base64),\n blobUri: constant(o.blobUri || domGlobals.URL.createObjectURL(o.blob)),\n uri: constant(o.uri)\n };\n };\n var add = function (blobInfo) {\n if (!get(blobInfo.id())) {\n cache.push(blobInfo);\n }\n };\n var get = function (id) {\n return findFirst(function (cachedBlobInfo) {\n return cachedBlobInfo.id() === id;\n });\n };\n var findFirst = function (predicate) {\n return filter(cache, predicate)[0];\n };\n var getByUri = function (blobUri) {\n return findFirst(function (blobInfo) {\n return blobInfo.blobUri() === blobUri;\n });\n };\n var removeByUri = function (blobUri) {\n cache = filter(cache, function (blobInfo) {\n if (blobInfo.blobUri() === blobUri) {\n domGlobals.URL.revokeObjectURL(blobInfo.blobUri());\n return false;\n }\n return true;\n });\n };\n var destroy = function () {\n each(cache, function (cachedBlobInfo) {\n domGlobals.URL.revokeObjectURL(cachedBlobInfo.blobUri());\n });\n cache = [];\n };\n return {\n create: create,\n add: add,\n get: get,\n getByUri: getByUri,\n findFirst: findFirst,\n removeByUri: removeByUri,\n destroy: destroy\n };\n };\n\n function UploadStatus () {\n var PENDING = 1, UPLOADED = 2;\n var blobUriStatuses = {};\n var createStatus = function (status, resultUri) {\n return {\n status: status,\n resultUri: resultUri\n };\n };\n var hasBlobUri = function (blobUri) {\n return blobUri in blobUriStatuses;\n };\n var getResultUri = function (blobUri) {\n var result = blobUriStatuses[blobUri];\n return result ? result.resultUri : null;\n };\n var isPending = function (blobUri) {\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === PENDING : false;\n };\n var isUploaded = function (blobUri) {\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === UPLOADED : false;\n };\n var markPending = function (blobUri) {\n blobUriStatuses[blobUri] = createStatus(PENDING, null);\n };\n var markUploaded = function (blobUri, resultUri) {\n blobUriStatuses[blobUri] = createStatus(UPLOADED, resultUri);\n };\n var removeFailed = function (blobUri) {\n delete blobUriStatuses[blobUri];\n };\n var destroy = function () {\n blobUriStatuses = {};\n };\n return {\n hasBlobUri: hasBlobUri,\n getResultUri: getResultUri,\n isPending: isPending,\n isUploaded: isUploaded,\n markPending: markPending,\n markUploaded: markUploaded,\n removeFailed: removeFailed,\n destroy: destroy\n };\n }\n\n var EditorUpload = function (editor) {\n var blobCache = BlobCache();\n var uploader, imageScanner;\n var uploadStatus = UploadStatus();\n var urlFilters = [];\n var aliveGuard = function (callback) {\n return function (result) {\n if (editor.selection) {\n return callback(result);\n }\n return [];\n };\n };\n var cacheInvalidator = function () {\n return '?' + new Date().getTime();\n };\n var replaceString = function (content, search, replace) {\n var index = 0;\n do {\n index = content.indexOf(search, index);\n if (index !== -1) {\n content = content.substring(0, index) + replace + content.substr(index + search.length);\n index += replace.length - search.length + 1;\n }\n } while (index !== -1);\n return content;\n };\n var replaceImageUrl = function (content, targetUrl, replacementUrl) {\n content = replaceString(content, 'src=\"' + targetUrl + '\"', 'src=\"' + replacementUrl + '\"');\n content = replaceString(content, 'data-mce-src=\"' + targetUrl + '\"', 'data-mce-src=\"' + replacementUrl + '\"');\n return content;\n };\n var replaceUrlInUndoStack = function (targetUrl, replacementUrl) {\n each(editor.undoManager.data, function (level) {\n if (level.type === 'fragmented') {\n level.fragments = map(level.fragments, function (fragment) {\n return replaceImageUrl(fragment, targetUrl, replacementUrl);\n });\n } else {\n level.content = replaceImageUrl(level.content, targetUrl, replacementUrl);\n }\n });\n };\n var openNotification = function () {\n return editor.notificationManager.open({\n text: editor.translate('Image uploading...'),\n type: 'info',\n timeout: -1,\n progressBar: true\n });\n };\n var replaceImageUri = function (image, resultUri) {\n blobCache.removeByUri(image.src);\n replaceUrlInUndoStack(image.src, resultUri);\n editor.$(image).attr({\n 'src': Settings.shouldReuseFileName(editor) ? resultUri + cacheInvalidator() : resultUri,\n 'data-mce-src': editor.convertURL(resultUri, 'src')\n });\n };\n var uploadImages = function (callback) {\n if (!uploader) {\n uploader = Uploader(uploadStatus, {\n url: Settings.getImageUploadUrl(editor),\n basePath: Settings.getImageUploadBasePath(editor),\n credentials: Settings.getImagesUploadCredentials(editor),\n handler: Settings.getImagesUploadHandler(editor)\n });\n }\n return scanForImages().then(aliveGuard(function (imageInfos) {\n var blobInfos;\n blobInfos = map(imageInfos, function (imageInfo) {\n return imageInfo.blobInfo;\n });\n return uploader.upload(blobInfos, openNotification).then(aliveGuard(function (result) {\n var filteredResult = map(result, function (uploadInfo, index) {\n var image = imageInfos[index].image;\n if (uploadInfo.status && Settings.shouldReplaceBlobUris(editor)) {\n replaceImageUri(image, uploadInfo.url);\n } else if (uploadInfo.error) {\n ErrorReporter.uploadError(editor, uploadInfo.error);\n }\n return {\n element: image,\n status: uploadInfo.status\n };\n });\n if (callback) {\n callback(filteredResult);\n }\n return filteredResult;\n }));\n }));\n };\n var uploadImagesAuto = function (callback) {\n if (Settings.isAutomaticUploadsEnabled(editor)) {\n return uploadImages(callback);\n }\n };\n var isValidDataUriImage = function (imgElm) {\n if (forall(urlFilters, function (filter) {\n return filter(imgElm);\n }) === false) {\n return false;\n }\n if (imgElm.getAttribute('src').indexOf('data:') === 0) {\n var dataImgFilter = Settings.getImagesDataImgFilter(editor);\n return dataImgFilter(imgElm);\n }\n return true;\n };\n var addFilter = function (filter) {\n urlFilters.push(filter);\n };\n var scanForImages = function () {\n if (!imageScanner) {\n imageScanner = ImageScanner(uploadStatus, blobCache);\n }\n return imageScanner.findAll(editor.getBody(), isValidDataUriImage).then(aliveGuard(function (result) {\n result = filter(result, function (resultItem) {\n if (typeof resultItem === 'string') {\n ErrorReporter.displayError(editor, resultItem);\n return false;\n }\n return true;\n });\n each(result, function (resultItem) {\n replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri());\n resultItem.image.src = resultItem.blobInfo.blobUri();\n resultItem.image.removeAttribute('data-mce-src');\n });\n return result;\n }));\n };\n var destroy = function () {\n blobCache.destroy();\n uploadStatus.destroy();\n imageScanner = uploader = null;\n };\n var replaceBlobUris = function (content) {\n return content.replace(/src=\"(blob:[^\"]+)\"/g, function (match, blobUri) {\n var resultUri = uploadStatus.getResultUri(blobUri);\n if (resultUri) {\n return 'src=\"' + resultUri + '\"';\n }\n var blobInfo = blobCache.getByUri(blobUri);\n if (!blobInfo) {\n blobInfo = foldl(editor.editorManager.get(), function (result, editor) {\n return result || editor.editorUpload && editor.editorUpload.blobCache.getByUri(blobUri);\n }, null);\n }\n if (blobInfo) {\n var blob = blobInfo.blob();\n return 'src=\"data:' + blob.type + ';base64,' + blobInfo.base64() + '\"';\n }\n return match;\n });\n };\n editor.on('SetContent', function () {\n if (Settings.isAutomaticUploadsEnabled(editor)) {\n uploadImagesAuto();\n } else {\n scanForImages();\n }\n });\n editor.on('RawSaveContent', function (e) {\n e.content = replaceBlobUris(e.content);\n });\n editor.on('GetContent', function (e) {\n if (e.source_view || e.format === 'raw') {\n return;\n }\n e.content = replaceBlobUris(e.content);\n });\n editor.on('PostRender', function () {\n editor.parser.addNodeFilter('img', function (images) {\n each(images, function (img) {\n var src = img.attr('src');\n if (blobCache.getByUri(src)) {\n return;\n }\n var resultUri = uploadStatus.getResultUri(src);\n if (resultUri) {\n img.attr('src', resultUri);\n }\n });\n });\n });\n return {\n blobCache: blobCache,\n addFilter: addFilter,\n uploadImages: uploadImages,\n uploadImagesAuto: uploadImagesAuto,\n scanForImages: scanForImages,\n destroy: destroy\n };\n };\n\n var dropLast = function (xs) {\n return xs.slice(0, -1);\n };\n var parentsUntil$1 = function (start, root, predicate) {\n if (contains$2(root, start)) {\n return dropLast(parents(start, function (elm) {\n return predicate(elm) || eq(elm, root);\n }));\n } else {\n return [];\n }\n };\n var parents$1 = function (start, root) {\n return parentsUntil$1(start, root, constant(false));\n };\n var parentsAndSelf = function (start, root) {\n return [start].concat(parents$1(start, root));\n };\n var Parents = {\n parentsUntil: parentsUntil$1,\n parents: parents$1,\n parentsAndSelf: parentsAndSelf\n };\n\n var isBlockElement = function (blockElements, node) {\n return blockElements.hasOwnProperty(node.nodeName);\n };\n var isValidTarget = function (blockElements, node) {\n if (NodeType.isText(node)) {\n return true;\n } else if (NodeType.isElement(node)) {\n return !isBlockElement(blockElements, node) && !Bookmarks.isBookmarkNode(node);\n } else {\n return false;\n }\n };\n var hasBlockParent = function (blockElements, root, node) {\n return exists(Parents.parents(Element.fromDom(node), Element.fromDom(root)), function (elm) {\n return isBlockElement(blockElements, elm.dom());\n });\n };\n var shouldRemoveTextNode = function (blockElements, node) {\n if (NodeType.isText(node)) {\n if (node.nodeValue.length === 0) {\n return true;\n } else if (/^\\s+$/.test(node.nodeValue) && (!node.nextSibling || isBlockElement(blockElements, node.nextSibling))) {\n return true;\n }\n }\n return false;\n };\n var addRootBlocks = function (editor) {\n var dom = editor.dom, selection = editor.selection;\n var schema = editor.schema, blockElements = schema.getBlockElements();\n var node = selection.getStart();\n var rootNode = editor.getBody();\n var rng;\n var startContainer, startOffset, endContainer, endOffset, rootBlockNode;\n var tempNode, wrapped, restoreSelection;\n var rootNodeName;\n var forcedRootBlock = Settings.getForcedRootBlock(editor);\n if (!node || !NodeType.isElement(node) || !forcedRootBlock) {\n return;\n }\n rootNodeName = rootNode.nodeName.toLowerCase();\n if (!schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase()) || hasBlockParent(blockElements, rootNode, node)) {\n return;\n }\n rng = selection.getRng();\n startContainer = rng.startContainer;\n startOffset = rng.startOffset;\n endContainer = rng.endContainer;\n endOffset = rng.endOffset;\n restoreSelection = EditorFocus.hasFocus(editor);\n node = rootNode.firstChild;\n while (node) {\n if (isValidTarget(blockElements, node)) {\n if (shouldRemoveTextNode(blockElements, node)) {\n tempNode = node;\n node = node.nextSibling;\n dom.remove(tempNode);\n continue;\n }\n if (!rootBlockNode) {\n rootBlockNode = dom.create(forcedRootBlock, Settings.getForcedRootBlockAttrs(editor));\n node.parentNode.insertBefore(rootBlockNode, node);\n wrapped = true;\n }\n tempNode = node;\n node = node.nextSibling;\n rootBlockNode.appendChild(tempNode);\n } else {\n rootBlockNode = null;\n node = node.nextSibling;\n }\n }\n if (wrapped && restoreSelection) {\n rng.setStart(startContainer, startOffset);\n rng.setEnd(endContainer, endOffset);\n selection.setRng(rng);\n editor.nodeChanged();\n }\n };\n var setup$3 = function (editor) {\n if (Settings.getForcedRootBlock(editor)) {\n editor.on('NodeChange', curry(addRootBlocks, editor));\n }\n };\n var ForceBlocks = { setup: setup$3 };\n\n var isEq$1 = function (rng1, rng2) {\n return rng1 && rng2 && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset);\n };\n var RangeCompare = { isEq: isEq$1 };\n\n var getStartNode = function (rng) {\n var sc = rng.startContainer, so = rng.startOffset;\n if (NodeType.isText(sc)) {\n return so === 0 ? Option.some(Element.fromDom(sc)) : Option.none();\n } else {\n return Option.from(sc.childNodes[so]).map(Element.fromDom);\n }\n };\n var getEndNode = function (rng) {\n var ec = rng.endContainer, eo = rng.endOffset;\n if (NodeType.isText(ec)) {\n return eo === ec.data.length ? Option.some(Element.fromDom(ec)) : Option.none();\n } else {\n return Option.from(ec.childNodes[eo - 1]).map(Element.fromDom);\n }\n };\n var getFirstChildren = function (node) {\n return firstChild(node).fold(constant([node]), function (child) {\n return [node].concat(getFirstChildren(child));\n });\n };\n var getLastChildren = function (node) {\n return lastChild(node).fold(constant([node]), function (child) {\n if (name(child) === 'br') {\n return prevSibling(child).map(function (sibling) {\n return [node].concat(getLastChildren(sibling));\n }).getOr([]);\n } else {\n return [node].concat(getLastChildren(child));\n }\n });\n };\n var hasAllContentsSelected = function (elm, rng) {\n return lift2(getStartNode(rng), getEndNode(rng), function (startNode, endNode) {\n var start = find(getFirstChildren(elm), curry(eq, startNode));\n var end = find(getLastChildren(elm), curry(eq, endNode));\n return start.isSome() && end.isSome();\n }).getOr(false);\n };\n var moveEndPoint$1 = function (dom, rng, node, start) {\n var root = node, walker = new TreeWalker(node, root);\n var nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n do {\n if (node.nodeType === 3 && Tools.trim(node.nodeValue).length !== 0) {\n if (start) {\n rng.setStart(node, 0);\n } else {\n rng.setEnd(node, node.nodeValue.length);\n }\n return;\n }\n if (nonEmptyElementsMap[node.nodeName] && !/^(TD|TH)$/.test(node.nodeName)) {\n if (start) {\n rng.setStartBefore(node);\n } else {\n if (node.nodeName === 'BR') {\n rng.setEndBefore(node);\n } else {\n rng.setEndAfter(node);\n }\n }\n return;\n }\n } while (node = start ? walker.next() : walker.prev());\n if (root.nodeName === 'BODY') {\n if (start) {\n rng.setStart(root, 0);\n } else {\n rng.setEnd(root, root.childNodes.length);\n }\n }\n };\n var hasAnyRanges = function (editor) {\n var sel = editor.selection.getSel();\n return sel && sel.rangeCount > 0;\n };\n\n var NodeChange = function () {\n function NodeChange(editor) {\n this.lastPath = [];\n this.editor = editor;\n var lastRng;\n var self = this;\n if (!('onselectionchange' in editor.getDoc())) {\n editor.on('NodeChange click mouseup keyup focus', function (e) {\n var nativeRng, fakeRng;\n nativeRng = editor.selection.getRng();\n fakeRng = {\n startContainer: nativeRng.startContainer,\n startOffset: nativeRng.startOffset,\n endContainer: nativeRng.endContainer,\n endOffset: nativeRng.endOffset\n };\n if (e.type === 'nodechange' || !RangeCompare.isEq(fakeRng, lastRng)) {\n editor.fire('SelectionChange');\n }\n lastRng = fakeRng;\n });\n }\n editor.on('contextmenu', function () {\n editor.fire('SelectionChange');\n });\n editor.on('SelectionChange', function () {\n var startElm = editor.selection.getStart(true);\n if (!startElm || !Env.range && editor.selection.isCollapsed()) {\n return;\n }\n if (hasAnyRanges(editor) && !self.isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) {\n editor.nodeChanged({ selectionChange: true });\n }\n });\n editor.on('mouseup', function (e) {\n if (!e.isDefaultPrevented() && hasAnyRanges(editor)) {\n if (editor.selection.getNode().nodeName === 'IMG') {\n Delay.setEditorTimeout(editor, function () {\n editor.nodeChanged();\n });\n } else {\n editor.nodeChanged();\n }\n }\n });\n }\n NodeChange.prototype.nodeChanged = function (args) {\n var selection = this.editor.selection;\n var node, parents, root;\n if (this.editor.initialized && selection && !this.editor.settings.disable_nodechange && !this.editor.readonly) {\n root = this.editor.getBody();\n node = selection.getStart(true) || root;\n if (node.ownerDocument !== this.editor.getDoc() || !this.editor.dom.isChildOf(node, root)) {\n node = root;\n }\n parents = [];\n this.editor.dom.getParent(node, function (node) {\n if (node === root) {\n return true;\n }\n parents.push(node);\n });\n args = args || {};\n args.element = node;\n args.parents = parents;\n this.editor.fire('NodeChange', args);\n }\n };\n NodeChange.prototype.isSameElementPath = function (startElm) {\n var i, currentPath;\n currentPath = this.editor.$(startElm).parentsUntil(this.editor.getBody()).add(startElm);\n if (currentPath.length === this.lastPath.length) {\n for (i = currentPath.length; i >= 0; i--) {\n if (currentPath[i] !== this.lastPath[i]) {\n break;\n }\n }\n if (i === -1) {\n this.lastPath = currentPath;\n return true;\n }\n }\n this.lastPath = currentPath;\n return false;\n };\n return NodeChange;\n }();\n\n var VK = {\n BACKSPACE: 8,\n DELETE: 46,\n DOWN: 40,\n ENTER: 13,\n LEFT: 37,\n RIGHT: 39,\n SPACEBAR: 32,\n TAB: 9,\n UP: 38,\n END: 35,\n HOME: 36,\n modifierPressed: function (e) {\n return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e);\n },\n metaKeyPressed: function (e) {\n return Env.mac ? e.metaKey : e.ctrlKey && !e.altKey;\n }\n };\n\n var is$2 = function (expected) {\n return function (actual) {\n return expected === actual;\n };\n };\n var isNbsp = is$2('\\xA0');\n var isWhiteSpace$1 = function (chr) {\n return /^[\\r\\n\\t ]$/.test(chr);\n };\n var isContent = function (chr) {\n return !isWhiteSpace$1(chr) && !isNbsp(chr);\n };\n\n var isChar = function (forward, predicate, pos) {\n return Option.from(pos.container()).filter(NodeType.isText).exists(function (text) {\n var delta = forward ? 0 : -1;\n return predicate(text.data.charAt(pos.offset() + delta));\n });\n };\n var isBeforeSpace = curry(isChar, true, isWhiteSpace$1);\n var isAfterSpace = curry(isChar, false, isWhiteSpace$1);\n var isEmptyText = function (pos) {\n var container = pos.container();\n return NodeType.isText(container) && container.data.length === 0;\n };\n var matchesElementPosition = function (before, predicate) {\n return function (pos) {\n return Option.from(getChildNodeAtRelativeOffset(before ? 0 : -1, pos)).filter(predicate).isSome();\n };\n };\n var isImageBlock = function (node) {\n return node.nodeName === 'IMG' && get$2(Element.fromDom(node), 'display') === 'block';\n };\n var isCefNode = function (node) {\n return NodeType.isContentEditableFalse(node) && !NodeType.isBogusAll(node);\n };\n var isBeforeImageBlock = matchesElementPosition(true, isImageBlock);\n var isAfterImageBlock = matchesElementPosition(false, isImageBlock);\n var isBeforeTable = matchesElementPosition(true, NodeType.isTable);\n var isAfterTable = matchesElementPosition(false, NodeType.isTable);\n var isBeforeContentEditableFalse = matchesElementPosition(true, isCefNode);\n var isAfterContentEditableFalse = matchesElementPosition(false, isCefNode);\n\n var getNodeClientRects = function (node) {\n var toArrayWithNode = function (clientRects) {\n return map(clientRects, function (clientRect) {\n clientRect = clone$1(clientRect);\n clientRect.node = node;\n return clientRect;\n });\n };\n if (NodeType.isElement(node)) {\n return toArrayWithNode(node.getClientRects());\n }\n if (NodeType.isText(node)) {\n var rng = node.ownerDocument.createRange();\n rng.setStart(node, 0);\n rng.setEnd(node, node.data.length);\n return toArrayWithNode(rng.getClientRects());\n }\n };\n var getClientRects = function (node) {\n return foldl(node, function (result, node) {\n return result.concat(getNodeClientRects(node));\n }, []);\n };\n\n var VDirection;\n (function (VDirection) {\n VDirection[VDirection['Up'] = -1] = 'Up';\n VDirection[VDirection['Down'] = 1] = 'Down';\n }(VDirection || (VDirection = {})));\n var findUntil = function (direction, root, predicateFn, node) {\n while (node = findNode(node, direction, isEditableCaretCandidate, root)) {\n if (predicateFn(node)) {\n return;\n }\n }\n };\n var walkUntil = function (direction, isAboveFn, isBeflowFn, root, predicateFn, caretPosition) {\n var line = 0, node;\n var result = [];\n var targetClientRect;\n var add = function (node) {\n var i, clientRect, clientRects;\n clientRects = getClientRects([node]);\n if (direction === -1) {\n clientRects = clientRects.reverse();\n }\n for (i = 0; i < clientRects.length; i++) {\n clientRect = clientRects[i];\n if (isBeflowFn(clientRect, targetClientRect)) {\n continue;\n }\n if (result.length > 0 && isAboveFn(clientRect, ArrUtils.last(result))) {\n line++;\n }\n clientRect.line = line;\n if (predicateFn(clientRect)) {\n return true;\n }\n result.push(clientRect);\n }\n };\n targetClientRect = ArrUtils.last(caretPosition.getClientRects());\n if (!targetClientRect) {\n return result;\n }\n node = caretPosition.getNode();\n add(node);\n findUntil(direction, root, add, node);\n return result;\n };\n var aboveLineNumber = function (lineNumber, clientRect) {\n return clientRect.line > lineNumber;\n };\n var isLineNumber = function (lineNumber, clientRect) {\n return clientRect.line === lineNumber;\n };\n var upUntil = curry(walkUntil, VDirection.Up, isAbove, isBelow);\n var downUntil = curry(walkUntil, VDirection.Down, isBelow, isAbove);\n var positionsUntil = function (direction, root, predicateFn, node) {\n var caretWalker = CaretWalker(root);\n var walkFn, isBelowFn, isAboveFn, caretPosition;\n var result = [];\n var line = 0, clientRect, targetClientRect;\n var getClientRect = function (caretPosition) {\n if (direction === 1) {\n return ArrUtils.last(caretPosition.getClientRects());\n }\n return ArrUtils.last(caretPosition.getClientRects());\n };\n if (direction === 1) {\n walkFn = caretWalker.next;\n isBelowFn = isBelow;\n isAboveFn = isAbove;\n caretPosition = CaretPosition$1.after(node);\n } else {\n walkFn = caretWalker.prev;\n isBelowFn = isAbove;\n isAboveFn = isBelow;\n caretPosition = CaretPosition$1.before(node);\n }\n targetClientRect = getClientRect(caretPosition);\n do {\n if (!caretPosition.isVisible()) {\n continue;\n }\n clientRect = getClientRect(caretPosition);\n if (isAboveFn(clientRect, targetClientRect)) {\n continue;\n }\n if (result.length > 0 && isBelowFn(clientRect, ArrUtils.last(result))) {\n line++;\n }\n clientRect = clone$1(clientRect);\n clientRect.position = caretPosition;\n clientRect.line = line;\n if (predicateFn(clientRect)) {\n return result;\n }\n result.push(clientRect);\n } while (caretPosition = walkFn(caretPosition));\n return result;\n };\n var isAboveLine = function (lineNumber) {\n return function (clientRect) {\n return aboveLineNumber(lineNumber, clientRect);\n };\n };\n var isLine = function (lineNumber) {\n return function (clientRect) {\n return isLineNumber(lineNumber, clientRect);\n };\n };\n\n var isContentEditableFalse$6 = NodeType.isContentEditableFalse;\n var findNode$1 = findNode;\n var distanceToRectLeft = function (clientRect, clientX) {\n return Math.abs(clientRect.left - clientX);\n };\n var distanceToRectRight = function (clientRect, clientX) {\n return Math.abs(clientRect.right - clientX);\n };\n var isInside = function (clientX, clientRect) {\n return clientX >= clientRect.left && clientX <= clientRect.right;\n };\n var findClosestClientRect = function (clientRects, clientX) {\n return ArrUtils.reduce(clientRects, function (oldClientRect, clientRect) {\n var oldDistance, newDistance;\n oldDistance = Math.min(distanceToRectLeft(oldClientRect, clientX), distanceToRectRight(oldClientRect, clientX));\n newDistance = Math.min(distanceToRectLeft(clientRect, clientX), distanceToRectRight(clientRect, clientX));\n if (isInside(clientX, clientRect)) {\n return clientRect;\n }\n if (isInside(clientX, oldClientRect)) {\n return oldClientRect;\n }\n if (newDistance === oldDistance && isContentEditableFalse$6(clientRect.node)) {\n return clientRect;\n }\n if (newDistance < oldDistance) {\n return clientRect;\n }\n return oldClientRect;\n });\n };\n var walkUntil$1 = function (direction, root, predicateFn, node) {\n while (node = findNode$1(node, direction, isEditableCaretCandidate, root)) {\n if (predicateFn(node)) {\n return;\n }\n }\n };\n var findLineNodeRects = function (root, targetNodeRect) {\n var clientRects = [];\n var collect = function (checkPosFn, node) {\n var lineRects;\n lineRects = filter(getClientRects([node]), function (clientRect) {\n return !checkPosFn(clientRect, targetNodeRect);\n });\n clientRects = clientRects.concat(lineRects);\n return lineRects.length === 0;\n };\n clientRects.push(targetNodeRect);\n walkUntil$1(VDirection.Up, root, curry(collect, isAbove), targetNodeRect.node);\n walkUntil$1(VDirection.Down, root, curry(collect, isBelow), targetNodeRect.node);\n return clientRects;\n };\n var getFakeCaretTargets = function (root) {\n return filter(from$1(root.getElementsByTagName('*')), isFakeCaretTarget);\n };\n var caretInfo = function (clientRect, clientX) {\n return {\n node: clientRect.node,\n before: distanceToRectLeft(clientRect, clientX) < distanceToRectRight(clientRect, clientX)\n };\n };\n var closestCaret = function (root, clientX, clientY) {\n var closestNodeRect;\n var contentEditableFalseNodeRects = getClientRects(getFakeCaretTargets(root));\n var targetNodeRects = filter(contentEditableFalseNodeRects, function (rect) {\n return clientY >= rect.top && clientY <= rect.bottom;\n });\n closestNodeRect = findClosestClientRect(targetNodeRects, clientX);\n if (closestNodeRect) {\n closestNodeRect = findClosestClientRect(findLineNodeRects(root, closestNodeRect), clientX);\n if (closestNodeRect && isFakeCaretTarget(closestNodeRect.node)) {\n return caretInfo(closestNodeRect, clientX);\n }\n }\n return null;\n };\n\n var isXYWithinRange = function (clientX, clientY, range) {\n if (range.collapsed) {\n return false;\n }\n if (Env.browser.isIE() && range.startOffset === range.endOffset - 1 && range.startContainer === range.endContainer) {\n var elm = range.startContainer.childNodes[range.startOffset];\n if (NodeType.isElement(elm)) {\n return exists(elm.getClientRects(), function (rect) {\n return containsXY(rect, clientX, clientY);\n });\n }\n }\n return exists(range.getClientRects(), function (rect) {\n return containsXY(rect, clientX, clientY);\n });\n };\n var RangePoint = { isXYWithinRange: isXYWithinRange };\n\n var getAbsolutePosition = function (elm) {\n var doc, docElem, win, clientRect;\n clientRect = elm.getBoundingClientRect();\n doc = elm.ownerDocument;\n docElem = doc.documentElement;\n win = doc.defaultView;\n return {\n top: clientRect.top + win.pageYOffset - docElem.clientTop,\n left: clientRect.left + win.pageXOffset - docElem.clientLeft\n };\n };\n var getBodyPosition = function (editor) {\n return editor.inline ? getAbsolutePosition(editor.getBody()) : {\n left: 0,\n top: 0\n };\n };\n var getScrollPosition = function (editor) {\n var body = editor.getBody();\n return editor.inline ? {\n left: body.scrollLeft,\n top: body.scrollTop\n } : {\n left: 0,\n top: 0\n };\n };\n var getBodyScroll = function (editor) {\n var body = editor.getBody(), docElm = editor.getDoc().documentElement;\n var inlineScroll = {\n left: body.scrollLeft,\n top: body.scrollTop\n };\n var iframeScroll = {\n left: body.scrollLeft || docElm.scrollLeft,\n top: body.scrollTop || docElm.scrollTop\n };\n return editor.inline ? inlineScroll : iframeScroll;\n };\n var getMousePosition = function (editor, event) {\n if (event.target.ownerDocument !== editor.getDoc()) {\n var iframePosition = getAbsolutePosition(editor.getContentAreaContainer());\n var scrollPosition = getBodyScroll(editor);\n return {\n left: event.pageX - iframePosition.left + scrollPosition.left,\n top: event.pageY - iframePosition.top + scrollPosition.top\n };\n }\n return {\n left: event.pageX,\n top: event.pageY\n };\n };\n var calculatePosition = function (bodyPosition, scrollPosition, mousePosition) {\n return {\n pageX: mousePosition.left - bodyPosition.left + scrollPosition.left,\n pageY: mousePosition.top - bodyPosition.top + scrollPosition.top\n };\n };\n var calc = function (editor, event) {\n return calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));\n };\n var MousePosition = { calc: calc };\n\n var isContentEditableFalse$7 = NodeType.isContentEditableFalse, isContentEditableTrue$2 = NodeType.isContentEditableTrue;\n var isDraggable = function (rootElm, elm) {\n return isContentEditableFalse$7(elm) && elm !== rootElm;\n };\n var isValidDropTarget = function (editor, targetElement, dragElement) {\n if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) {\n return false;\n }\n return !isContentEditableFalse$7(targetElement);\n };\n var cloneElement = function (elm) {\n var cloneElm = elm.cloneNode(true);\n cloneElm.removeAttribute('data-mce-selected');\n return cloneElm;\n };\n var createGhost = function (editor, elm, width, height) {\n var clonedElm = elm.cloneNode(true);\n editor.dom.setStyles(clonedElm, {\n width: width,\n height: height\n });\n editor.dom.setAttrib(clonedElm, 'data-mce-selected', null);\n var ghostElm = editor.dom.create('div', {\n 'class': 'mce-drag-container',\n 'data-mce-bogus': 'all',\n 'unselectable': 'on',\n 'contenteditable': 'false'\n });\n editor.dom.setStyles(ghostElm, {\n position: 'absolute',\n opacity: 0.5,\n overflow: 'hidden',\n border: 0,\n padding: 0,\n margin: 0,\n width: width,\n height: height\n });\n editor.dom.setStyles(clonedElm, {\n margin: 0,\n boxSizing: 'border-box'\n });\n ghostElm.appendChild(clonedElm);\n return ghostElm;\n };\n var appendGhostToBody = function (ghostElm, bodyElm) {\n if (ghostElm.parentNode !== bodyElm) {\n bodyElm.appendChild(ghostElm);\n }\n };\n var moveGhost = function (ghostElm, position, width, height, maxX, maxY) {\n var overflowX = 0, overflowY = 0;\n ghostElm.style.left = position.pageX + 'px';\n ghostElm.style.top = position.pageY + 'px';\n if (position.pageX + width > maxX) {\n overflowX = position.pageX + width - maxX;\n }\n if (position.pageY + height > maxY) {\n overflowY = position.pageY + height - maxY;\n }\n ghostElm.style.width = width - overflowX + 'px';\n ghostElm.style.height = height - overflowY + 'px';\n };\n var removeElement = function (elm) {\n if (elm && elm.parentNode) {\n elm.parentNode.removeChild(elm);\n }\n };\n var isLeftMouseButtonPressed = function (e) {\n return e.button === 0;\n };\n var hasDraggableElement = function (state) {\n return state.element;\n };\n var applyRelPos = function (state, position) {\n return {\n pageX: position.pageX - state.relX,\n pageY: position.pageY + 5\n };\n };\n var start = function (state, editor) {\n return function (e) {\n if (isLeftMouseButtonPressed(e)) {\n var ceElm = find(editor.dom.getParents(e.target), Predicate.or(isContentEditableFalse$7, isContentEditableTrue$2)).getOr(null);\n if (isDraggable(editor.getBody(), ceElm)) {\n var elmPos = editor.dom.getPos(ceElm);\n var bodyElm = editor.getBody();\n var docElm = editor.getDoc().documentElement;\n state.element = ceElm;\n state.screenX = e.screenX;\n state.screenY = e.screenY;\n state.maxX = (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2;\n state.maxY = (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2;\n state.relX = e.pageX - elmPos.x;\n state.relY = e.pageY - elmPos.y;\n state.width = ceElm.offsetWidth;\n state.height = ceElm.offsetHeight;\n state.ghost = createGhost(editor, ceElm, state.width, state.height);\n }\n }\n };\n };\n var move = function (state, editor) {\n var throttledPlaceCaretAt = Delay.throttle(function (clientX, clientY) {\n editor._selectionOverrides.hideFakeCaret();\n editor.selection.placeCaretAt(clientX, clientY);\n }, 0);\n return function (e) {\n var movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));\n if (hasDraggableElement(state) && !state.dragging && movement > 10) {\n var args = editor.fire('dragstart', { target: state.element });\n if (args.isDefaultPrevented()) {\n return;\n }\n state.dragging = true;\n editor.focus();\n }\n if (state.dragging) {\n var targetPos = applyRelPos(state, MousePosition.calc(editor, e));\n appendGhostToBody(state.ghost, editor.getBody());\n moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY);\n throttledPlaceCaretAt(e.clientX, e.clientY);\n }\n };\n };\n var getRawTarget = function (selection) {\n var rng = selection.getSel().getRangeAt(0);\n var startContainer = rng.startContainer;\n return startContainer.nodeType === 3 ? startContainer.parentNode : startContainer;\n };\n var drop = function (state, editor) {\n return function (e) {\n if (state.dragging) {\n if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) {\n var targetClone_1 = cloneElement(state.element);\n var args = editor.fire('drop', {\n targetClone: targetClone_1,\n clientX: e.clientX,\n clientY: e.clientY\n });\n if (!args.isDefaultPrevented()) {\n targetClone_1 = args.targetClone;\n editor.undoManager.transact(function () {\n removeElement(state.element);\n editor.insertContent(editor.dom.getOuterHTML(targetClone_1));\n editor._selectionOverrides.hideFakeCaret();\n });\n }\n }\n }\n removeDragState(state);\n };\n };\n var stop = function (state, editor) {\n return function () {\n if (state.dragging) {\n editor.fire('dragend');\n }\n removeDragState(state);\n };\n };\n var removeDragState = function (state) {\n state.dragging = false;\n state.element = null;\n removeElement(state.ghost);\n };\n var bindFakeDragEvents = function (editor) {\n var state = {};\n var pageDom, dragStartHandler, dragHandler, dropHandler, dragEndHandler, rootDocument;\n pageDom = DOMUtils$1.DOM;\n rootDocument = domGlobals.document;\n dragStartHandler = start(state, editor);\n dragHandler = move(state, editor);\n dropHandler = drop(state, editor);\n dragEndHandler = stop(state, editor);\n editor.on('mousedown', dragStartHandler);\n editor.on('mousemove', dragHandler);\n editor.on('mouseup', dropHandler);\n pageDom.bind(rootDocument, 'mousemove', dragHandler);\n pageDom.bind(rootDocument, 'mouseup', dragEndHandler);\n editor.on('remove', function () {\n pageDom.unbind(rootDocument, 'mousemove', dragHandler);\n pageDom.unbind(rootDocument, 'mouseup', dragEndHandler);\n });\n };\n var blockIeDrop = function (editor) {\n editor.on('drop', function (e) {\n var realTarget = typeof e.clientX !== 'undefined' ? editor.getDoc().elementFromPoint(e.clientX, e.clientY) : null;\n if (isContentEditableFalse$7(realTarget) || isContentEditableFalse$7(editor.dom.getContentEditableParent(realTarget))) {\n e.preventDefault();\n }\n });\n };\n var init = function (editor) {\n bindFakeDragEvents(editor);\n blockIeDrop(editor);\n };\n var DragDropOverrides = { init: init };\n\n var isContentEditableTrue$3 = NodeType.isContentEditableTrue;\n var isContentEditableFalse$8 = NodeType.isContentEditableFalse;\n var showCaret = function (direction, editor, node, before, scrollIntoView) {\n return editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView);\n };\n var getNodeRange = function (node) {\n var rng = node.ownerDocument.createRange();\n rng.selectNode(node);\n return rng;\n };\n var selectNode = function (editor, node) {\n var e = editor.fire('BeforeObjectSelected', { target: node });\n if (e.isDefaultPrevented()) {\n return null;\n }\n return getNodeRange(node);\n };\n var renderCaretAtRange = function (editor, range, scrollIntoView) {\n var normalizedRange = normalizeRange(1, editor.getBody(), range);\n var caretPosition = CaretPosition$1.fromRangeStart(normalizedRange);\n var caretPositionNode = caretPosition.getNode();\n if (isContentEditableFalse$8(caretPositionNode)) {\n return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false);\n }\n var caretPositionBeforeNode = caretPosition.getNode(true);\n if (isContentEditableFalse$8(caretPositionBeforeNode)) {\n return showCaret(1, editor, caretPositionBeforeNode, false, false);\n }\n var ceRoot = editor.dom.getParent(caretPosition.getNode(), function (node) {\n return isContentEditableFalse$8(node) || isContentEditableTrue$3(node);\n });\n if (isContentEditableFalse$8(ceRoot)) {\n return showCaret(1, editor, ceRoot, false, scrollIntoView);\n }\n return null;\n };\n var renderRangeCaret = function (editor, range, scrollIntoView) {\n if (!range || !range.collapsed) {\n return range;\n }\n var caretRange = renderCaretAtRange(editor, range, scrollIntoView);\n if (caretRange) {\n return caretRange;\n }\n return range;\n };\n\n var setup$4 = function (editor) {\n var renderFocusCaret = first(function () {\n if (!editor.removed && editor.getBody().contains(domGlobals.document.activeElement)) {\n var rng = editor.selection.getRng();\n if (rng.collapsed) {\n var caretRange = renderRangeCaret(editor, editor.selection.getRng(), false);\n editor.selection.setRng(caretRange);\n }\n }\n }, 0);\n editor.on('focus', function () {\n renderFocusCaret.throttle();\n });\n editor.on('blur', function () {\n renderFocusCaret.cancel();\n });\n };\n var CefFocus = { setup: setup$4 };\n\n var isContentEditableTrue$4 = NodeType.isContentEditableTrue;\n var isContentEditableFalse$9 = NodeType.isContentEditableFalse;\n var getContentEditableRoot = function (editor, node) {\n var root = editor.getBody();\n while (node && node !== root) {\n if (isContentEditableTrue$4(node) || isContentEditableFalse$9(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var SelectionOverrides = function (editor) {\n var isBlock = function (node) {\n return editor.dom.isBlock(node);\n };\n var rootNode = editor.getBody();\n var fakeCaret = FakeCaret(editor.getBody(), isBlock, function () {\n return EditorFocus.hasFocus(editor);\n });\n var realSelectionId = 'sel-' + editor.dom.uniqueId();\n var selectedContentEditableNode;\n var isFakeSelectionElement = function (elm) {\n return editor.dom.hasClass(elm, 'mce-offscreen-selection');\n };\n var getRealSelectionElement = function () {\n var container = editor.dom.get(realSelectionId);\n return container ? container.getElementsByTagName('*')[0] : container;\n };\n var setRange = function (range) {\n if (range) {\n editor.selection.setRng(range);\n }\n };\n var getRange = function () {\n return editor.selection.getRng();\n };\n var showCaret = function (direction, node, before, scrollIntoView) {\n if (scrollIntoView === void 0) {\n scrollIntoView = true;\n }\n var e;\n e = editor.fire('ShowCaret', {\n target: node,\n direction: direction,\n before: before\n });\n if (e.isDefaultPrevented()) {\n return null;\n }\n if (scrollIntoView) {\n editor.selection.scrollIntoView(node, direction === -1);\n }\n return fakeCaret.show(before, node);\n };\n var showBlockCaretContainer = function (blockCaretContainer) {\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n showCaretContainerBlock(blockCaretContainer);\n setRange(getRange());\n editor.selection.scrollIntoView(blockCaretContainer[0]);\n }\n };\n var registerEvents = function () {\n editor.on('mouseup', function (e) {\n var range = getRange();\n if (range.collapsed && EditorView.isXYInContentArea(editor, e.clientX, e.clientY)) {\n setRange(renderCaretAtRange(editor, range, false));\n }\n });\n editor.on('click', function (e) {\n var contentEditableRoot;\n contentEditableRoot = getContentEditableRoot(editor, e.target);\n if (contentEditableRoot) {\n if (isContentEditableFalse$9(contentEditableRoot)) {\n e.preventDefault();\n editor.focus();\n }\n if (isContentEditableTrue$4(contentEditableRoot)) {\n if (editor.dom.isChildOf(contentEditableRoot, editor.selection.getNode())) {\n removeContentEditableSelection();\n }\n }\n }\n });\n editor.on('blur NewBlock', function () {\n removeContentEditableSelection();\n });\n editor.on('ResizeWindow FullscreenStateChanged', function () {\n return fakeCaret.reposition();\n });\n var handleTouchSelect = function (editor) {\n var moved = false;\n editor.on('touchstart', function () {\n moved = false;\n });\n editor.on('touchmove', function () {\n moved = true;\n });\n editor.on('touchend', function (e) {\n if (!moved) {\n var contentEditableRoot = getContentEditableRoot(editor, e.target);\n if (isContentEditableFalse$9(contentEditableRoot)) {\n e.preventDefault();\n setContentEditableSelection(selectNode(editor, contentEditableRoot));\n }\n }\n }, true);\n };\n var hasNormalCaretPosition = function (elm) {\n var caretWalker = CaretWalker(elm);\n if (!elm.firstChild) {\n return false;\n }\n var startPos = CaretPosition$1.before(elm.firstChild);\n var newPos = caretWalker.next(startPos);\n return newPos && !isBeforeContentEditableFalse(newPos) && !isAfterContentEditableFalse(newPos);\n };\n var isInSameBlock = function (node1, node2) {\n var block1 = editor.dom.getParent(node1, editor.dom.isBlock);\n var block2 = editor.dom.getParent(node2, editor.dom.isBlock);\n return block1 === block2;\n };\n var hasBetterMouseTarget = function (targetNode, caretNode) {\n var targetBlock = editor.dom.getParent(targetNode, editor.dom.isBlock);\n var caretBlock = editor.dom.getParent(caretNode, editor.dom.isBlock);\n if (targetBlock && editor.dom.isChildOf(targetBlock, caretBlock) && isContentEditableFalse$9(getContentEditableRoot(editor, targetBlock)) === false) {\n return true;\n }\n return targetBlock && !isInSameBlock(targetBlock, caretBlock) && hasNormalCaretPosition(targetBlock);\n };\n handleTouchSelect(editor);\n editor.on('mousedown', function (e) {\n var contentEditableRoot;\n var targetElm = e.target;\n if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !editor.dom.isChildOf(targetElm, rootNode)) {\n return;\n }\n if (EditorView.isXYInContentArea(editor, e.clientX, e.clientY) === false) {\n return;\n }\n contentEditableRoot = getContentEditableRoot(editor, targetElm);\n if (contentEditableRoot) {\n if (isContentEditableFalse$9(contentEditableRoot)) {\n e.preventDefault();\n setContentEditableSelection(selectNode(editor, contentEditableRoot));\n } else {\n removeContentEditableSelection();\n if (!(isContentEditableTrue$4(contentEditableRoot) && e.shiftKey) && !RangePoint.isXYWithinRange(e.clientX, e.clientY, editor.selection.getRng())) {\n hideFakeCaret();\n editor.selection.placeCaretAt(e.clientX, e.clientY);\n }\n }\n } else if (isFakeCaretTarget(targetElm) === false) {\n removeContentEditableSelection();\n hideFakeCaret();\n var caretInfo = closestCaret(rootNode, e.clientX, e.clientY);\n if (caretInfo) {\n if (!hasBetterMouseTarget(e.target, caretInfo.node)) {\n e.preventDefault();\n var range = showCaret(1, caretInfo.node, caretInfo.before, false);\n editor.getBody().focus();\n setRange(range);\n }\n }\n }\n });\n editor.on('keypress', function (e) {\n if (VK.modifierPressed(e)) {\n return;\n }\n switch (e.keyCode) {\n default:\n if (isContentEditableFalse$9(editor.selection.getNode())) {\n e.preventDefault();\n }\n break;\n }\n });\n editor.on('GetSelectionRange', function (e) {\n var rng = e.range;\n if (selectedContentEditableNode) {\n if (!selectedContentEditableNode.parentNode) {\n selectedContentEditableNode = null;\n return;\n }\n rng = rng.cloneRange();\n rng.selectNode(selectedContentEditableNode);\n e.range = rng;\n }\n });\n editor.on('SetSelectionRange', function (e) {\n e.range = normalizeShortEndedElementSelection(e.range);\n var rng = setContentEditableSelection(e.range, e.forward);\n if (rng) {\n e.range = rng;\n }\n });\n var isPasteBin = function (node) {\n return node.id === 'mcepastebin';\n };\n editor.on('AfterSetSelectionRange', function (e) {\n var rng = e.range;\n if (!isRangeInCaretContainer(rng) && !isPasteBin(rng.startContainer.parentNode)) {\n hideFakeCaret();\n }\n if (!isFakeSelectionElement(rng.startContainer.parentNode)) {\n removeContentEditableSelection();\n }\n });\n editor.on('copy', function (e) {\n var clipboardData = e.clipboardData;\n if (!e.isDefaultPrevented() && e.clipboardData && !Env.ie) {\n var realSelectionElement = getRealSelectionElement();\n if (realSelectionElement) {\n e.preventDefault();\n clipboardData.clearData();\n clipboardData.setData('text/html', realSelectionElement.outerHTML);\n clipboardData.setData('text/plain', realSelectionElement.outerText);\n }\n }\n });\n DragDropOverrides.init(editor);\n CefFocus.setup(editor);\n };\n var isWithinCaretContainer = function (node) {\n return isCaretContainer(node) || startsWithCaretContainer(node) || endsWithCaretContainer(node);\n };\n var isRangeInCaretContainer = function (rng) {\n return isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer);\n };\n var normalizeShortEndedElementSelection = function (rng) {\n var shortEndedElements = editor.schema.getShortEndedElements();\n var newRng = editor.dom.createRng();\n var startContainer = rng.startContainer;\n var startOffset = rng.startOffset;\n var endContainer = rng.endContainer;\n var endOffset = rng.endOffset;\n if (has(shortEndedElements, startContainer.nodeName.toLowerCase())) {\n if (startOffset === 0) {\n newRng.setStartBefore(startContainer);\n } else {\n newRng.setStartAfter(startContainer);\n }\n } else {\n newRng.setStart(startContainer, startOffset);\n }\n if (has(shortEndedElements, endContainer.nodeName.toLowerCase())) {\n if (endOffset === 0) {\n newRng.setEndBefore(endContainer);\n } else {\n newRng.setEndAfter(endContainer);\n }\n } else {\n newRng.setEnd(endContainer, endOffset);\n }\n return newRng;\n };\n var setContentEditableSelection = function (range, forward) {\n var node;\n var $ = editor.$;\n var dom = editor.dom;\n var $realSelectionContainer, sel, startContainer, startOffset, endOffset, e, caretPosition, targetClone, origTargetClone;\n if (!range) {\n return null;\n }\n if (range.collapsed) {\n if (!isRangeInCaretContainer(range)) {\n if (forward === false) {\n caretPosition = getNormalizedRangeEndPoint(-1, rootNode, range);\n if (isFakeCaretTarget(caretPosition.getNode(true))) {\n return showCaret(-1, caretPosition.getNode(true), false, false);\n }\n if (isFakeCaretTarget(caretPosition.getNode())) {\n return showCaret(-1, caretPosition.getNode(), !caretPosition.isAtEnd(), false);\n }\n } else {\n caretPosition = getNormalizedRangeEndPoint(1, rootNode, range);\n if (isFakeCaretTarget(caretPosition.getNode())) {\n return showCaret(1, caretPosition.getNode(), !caretPosition.isAtEnd(), false);\n }\n if (isFakeCaretTarget(caretPosition.getNode(true))) {\n return showCaret(1, caretPosition.getNode(true), false, false);\n }\n }\n }\n return null;\n }\n startContainer = range.startContainer;\n startOffset = range.startOffset;\n endOffset = range.endOffset;\n if (startContainer.nodeType === 3 && startOffset === 0 && isContentEditableFalse$9(startContainer.parentNode)) {\n startContainer = startContainer.parentNode;\n startOffset = dom.nodeIndex(startContainer);\n startContainer = startContainer.parentNode;\n }\n if (startContainer.nodeType !== 1) {\n return null;\n }\n if (endOffset === startOffset + 1 && startContainer === range.endContainer) {\n node = startContainer.childNodes[startOffset];\n }\n if (!isContentEditableFalse$9(node)) {\n return null;\n }\n targetClone = origTargetClone = node.cloneNode(true);\n e = editor.fire('ObjectSelected', {\n target: node,\n targetClone: targetClone\n });\n if (e.isDefaultPrevented()) {\n return null;\n }\n $realSelectionContainer = descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).fold(function () {\n return $([]);\n }, function (elm) {\n return $([elm.dom()]);\n });\n targetClone = e.targetClone;\n if ($realSelectionContainer.length === 0) {\n $realSelectionContainer = $('<div data-mce-bogus=\"all\" class=\"mce-offscreen-selection\"></div>').attr('id', realSelectionId);\n $realSelectionContainer.appendTo(editor.getBody());\n }\n range = editor.dom.createRng();\n if (targetClone === origTargetClone && Env.ie) {\n $realSelectionContainer.empty().append('<p style=\"font-size: 0\" data-mce-bogus=\"all\">\\xA0</p>').append(targetClone);\n range.setStartAfter($realSelectionContainer[0].firstChild.firstChild);\n range.setEndAfter(targetClone);\n } else {\n $realSelectionContainer.empty().append('\\xA0').append(targetClone).append('\\xA0');\n range.setStart($realSelectionContainer[0].firstChild, 1);\n range.setEnd($realSelectionContainer[0].lastChild, 0);\n }\n $realSelectionContainer.css({ top: dom.getPos(node, editor.getBody()).y });\n $realSelectionContainer[0].focus();\n sel = editor.selection.getSel();\n sel.removeAllRanges();\n sel.addRange(range);\n var nodeElm = Element.fromDom(node);\n each(descendants$1(Element.fromDom(editor.getBody()), '*[data-mce-selected]'), function (elm) {\n if (!eq(nodeElm, elm)) {\n remove(elm, 'data-mce-selected');\n }\n });\n if (!editor.dom.getAttrib(node, 'data-mce-selected')) {\n node.setAttribute('data-mce-selected', '1');\n }\n selectedContentEditableNode = node;\n hideFakeCaret();\n return range;\n };\n var removeContentEditableSelection = function () {\n if (selectedContentEditableNode) {\n selectedContentEditableNode.removeAttribute('data-mce-selected');\n descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).each(remove$1);\n selectedContentEditableNode = null;\n }\n descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).each(remove$1);\n selectedContentEditableNode = null;\n };\n var destroy = function () {\n fakeCaret.destroy();\n selectedContentEditableNode = null;\n };\n var hideFakeCaret = function () {\n fakeCaret.hide();\n };\n if (Env.ceFalse) {\n registerEvents();\n }\n return {\n showCaret: showCaret,\n showBlockCaretContainer: showBlockCaretContainer,\n hideFakeCaret: hideFakeCaret,\n destroy: destroy\n };\n };\n\n var KEEP = 0, INSERT = 1, DELETE = 2;\n var diff = function (left, right) {\n var size = left.length + right.length + 2;\n var vDown = new Array(size);\n var vUp = new Array(size);\n var snake = function (start, end, diag) {\n return {\n start: start,\n end: end,\n diag: diag\n };\n };\n var buildScript = function (start1, end1, start2, end2, script) {\n var middle = getMiddleSnake(start1, end1, start2, end2);\n if (middle === null || middle.start === end1 && middle.diag === end1 - end2 || middle.end === start1 && middle.diag === start1 - start2) {\n var i = start1;\n var j = start2;\n while (i < end1 || j < end2) {\n if (i < end1 && j < end2 && left[i] === right[j]) {\n script.push([\n KEEP,\n left[i]\n ]);\n ++i;\n ++j;\n } else {\n if (end1 - start1 > end2 - start2) {\n script.push([\n DELETE,\n left[i]\n ]);\n ++i;\n } else {\n script.push([\n INSERT,\n right[j]\n ]);\n ++j;\n }\n }\n }\n } else {\n buildScript(start1, middle.start, start2, middle.start - middle.diag, script);\n for (var i2 = middle.start; i2 < middle.end; ++i2) {\n script.push([\n KEEP,\n left[i2]\n ]);\n }\n buildScript(middle.end, end1, middle.end - middle.diag, end2, script);\n }\n };\n var buildSnake = function (start, diag, end1, end2) {\n var end = start;\n while (end - diag < end2 && end < end1 && left[end] === right[end - diag]) {\n ++end;\n }\n return snake(start, end, diag);\n };\n var getMiddleSnake = function (start1, end1, start2, end2) {\n var m = end1 - start1;\n var n = end2 - start2;\n if (m === 0 || n === 0) {\n return null;\n }\n var delta = m - n;\n var sum = n + m;\n var offset = (sum % 2 === 0 ? sum : sum + 1) / 2;\n vDown[1 + offset] = start1;\n vUp[1 + offset] = end1 + 1;\n var d, k, i, x, y;\n for (d = 0; d <= offset; ++d) {\n for (k = -d; k <= d; k += 2) {\n i = k + offset;\n if (k === -d || k !== d && vDown[i - 1] < vDown[i + 1]) {\n vDown[i] = vDown[i + 1];\n } else {\n vDown[i] = vDown[i - 1] + 1;\n }\n x = vDown[i];\n y = x - start1 + start2 - k;\n while (x < end1 && y < end2 && left[x] === right[y]) {\n vDown[i] = ++x;\n ++y;\n }\n if (delta % 2 !== 0 && delta - d <= k && k <= delta + d) {\n if (vUp[i - delta] <= vDown[i]) {\n return buildSnake(vUp[i - delta], k + start1 - start2, end1, end2);\n }\n }\n }\n for (k = delta - d; k <= delta + d; k += 2) {\n i = k + offset - delta;\n if (k === delta - d || k !== delta + d && vUp[i + 1] <= vUp[i - 1]) {\n vUp[i] = vUp[i + 1] - 1;\n } else {\n vUp[i] = vUp[i - 1];\n }\n x = vUp[i] - 1;\n y = x - start1 + start2 - k;\n while (x >= start1 && y >= start2 && left[x] === right[y]) {\n vUp[i] = x--;\n y--;\n }\n if (delta % 2 === 0 && -d <= k && k <= d) {\n if (vUp[i] <= vDown[i + delta]) {\n return buildSnake(vUp[i], k + start1 - start2, end1, end2);\n }\n }\n }\n }\n };\n var script = [];\n buildScript(0, left.length, 0, right.length, script);\n return script;\n };\n var Diff = {\n KEEP: KEEP,\n DELETE: DELETE,\n INSERT: INSERT,\n diff: diff\n };\n\n var getOuterHtml = function (elm) {\n if (NodeType.isElement(elm)) {\n return elm.outerHTML;\n } else if (NodeType.isText(elm)) {\n return Entities.encodeRaw(elm.data, false);\n } else if (NodeType.isComment(elm)) {\n return '<!--' + elm.data + '-->';\n }\n return '';\n };\n var createFragment$1 = function (html) {\n var frag, node, container;\n container = domGlobals.document.createElement('div');\n frag = domGlobals.document.createDocumentFragment();\n if (html) {\n container.innerHTML = html;\n }\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n return frag;\n };\n var insertAt = function (elm, html, index) {\n var fragment = createFragment$1(html);\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\n var target = elm.childNodes[index];\n target.parentNode.insertBefore(fragment, target);\n } else {\n elm.appendChild(fragment);\n }\n };\n var removeAt = function (elm, index) {\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\n var target = elm.childNodes[index];\n target.parentNode.removeChild(target);\n }\n };\n var applyDiff = function (diff, elm) {\n var index = 0;\n each(diff, function (action) {\n if (action[0] === Diff.KEEP) {\n index++;\n } else if (action[0] === Diff.INSERT) {\n insertAt(elm, action[1], index);\n index++;\n } else if (action[0] === Diff.DELETE) {\n removeAt(elm, index);\n }\n });\n };\n var read$1 = function (elm) {\n return filter(map(from$1(elm.childNodes), getOuterHtml), function (item) {\n return item.length > 0;\n });\n };\n var write = function (fragments, elm) {\n var currentFragments = map(from$1(elm.childNodes), getOuterHtml);\n applyDiff(Diff.diff(currentFragments, fragments), elm);\n return elm;\n };\n var Fragments = {\n read: read$1,\n write: write\n };\n\n var undoLevelDocument = Cell(Option.none());\n var lazyTempDocument = function () {\n return undoLevelDocument.get().getOrThunk(function () {\n var doc = domGlobals.document.implementation.createHTMLDocument('undo');\n undoLevelDocument.set(Option.some(doc));\n return doc;\n });\n };\n var hasIframes = function (html) {\n return html.indexOf('</iframe>') !== -1;\n };\n var createFragmentedLevel = function (fragments) {\n return {\n type: 'fragmented',\n fragments: fragments,\n content: '',\n bookmark: null,\n beforeBookmark: null\n };\n };\n var createCompleteLevel = function (content) {\n return {\n type: 'complete',\n fragments: null,\n content: content,\n bookmark: null,\n beforeBookmark: null\n };\n };\n var createFromEditor = function (editor) {\n var fragments, content, trimmedFragments;\n fragments = Fragments.read(editor.getBody());\n trimmedFragments = bind(fragments, function (html) {\n var trimmed = TrimHtml.trimInternal(editor.serializer, html);\n return trimmed.length > 0 ? [trimmed] : [];\n });\n content = trimmedFragments.join('');\n return hasIframes(content) ? createFragmentedLevel(trimmedFragments) : createCompleteLevel(content);\n };\n var applyToEditor = function (editor, level, before) {\n if (level.type === 'fragmented') {\n Fragments.write(level.fragments, editor.getBody());\n } else {\n editor.setContent(level.content, { format: 'raw' });\n }\n editor.selection.moveToBookmark(before ? level.beforeBookmark : level.bookmark);\n };\n var getLevelContent = function (level) {\n return level.type === 'fragmented' ? level.fragments.join('') : level.content;\n };\n var getCleanLevelContent = function (level) {\n var elm = Element.fromTag('body', lazyTempDocument());\n set$1(elm, getLevelContent(level));\n each(descendants$1(elm, '*[data-mce-bogus]'), unwrap);\n return get$5(elm);\n };\n var hasEqualContent = function (level1, level2) {\n return getLevelContent(level1) === getLevelContent(level2);\n };\n var hasEqualCleanedContent = function (level1, level2) {\n return getCleanLevelContent(level1) === getCleanLevelContent(level2);\n };\n var isEq$2 = function (level1, level2) {\n if (!level1 || !level2) {\n return false;\n } else if (hasEqualContent(level1, level2)) {\n return true;\n } else {\n return hasEqualCleanedContent(level1, level2);\n }\n };\n var Levels = {\n createFragmentedLevel: createFragmentedLevel,\n createCompleteLevel: createCompleteLevel,\n createFromEditor: createFromEditor,\n applyToEditor: applyToEditor,\n isEq: isEq$2\n };\n\n var isUnlocked = function (locks) {\n return locks.get() === 0;\n };\n\n var setTyping = function (undoManager, typing, locks) {\n if (isUnlocked(locks)) {\n undoManager.typing = typing;\n }\n };\n var endTyping = function (undoManager, locks) {\n if (undoManager.typing) {\n setTyping(undoManager, false, locks);\n undoManager.add();\n }\n };\n var endTypingLevelIgnoreLocks = function (undoManager) {\n if (undoManager.typing) {\n undoManager.typing = false;\n undoManager.add();\n }\n };\n\n var beforeChange = function (editor, locks, beforeBookmark) {\n if (isUnlocked(locks)) {\n beforeBookmark.set(Option.some(GetBookmark.getUndoBookmark(editor.selection)));\n }\n };\n var addUndoLevel = function (editor, undoManager, index, locks, beforeBookmark, level, event) {\n var settings = editor.settings;\n var currentLevel = Levels.createFromEditor(editor);\n level = level || {};\n level = Tools.extend(level, currentLevel);\n if (isUnlocked(locks) === false || editor.removed) {\n return null;\n }\n var lastLevel = undoManager.data[index.get()];\n if (editor.fire('BeforeAddUndo', {\n level: level,\n lastLevel: lastLevel,\n originalEvent: event\n }).isDefaultPrevented()) {\n return null;\n }\n if (lastLevel && Levels.isEq(lastLevel, level)) {\n return null;\n }\n if (undoManager.data[index.get()]) {\n beforeBookmark.get().each(function (bm) {\n undoManager.data[index.get()].beforeBookmark = bm;\n });\n }\n if (settings.custom_undo_redo_levels) {\n if (undoManager.data.length > settings.custom_undo_redo_levels) {\n for (var i = 0; i < undoManager.data.length - 1; i++) {\n undoManager.data[i] = undoManager.data[i + 1];\n }\n undoManager.data.length--;\n index.set(undoManager.data.length);\n }\n }\n level.bookmark = GetBookmark.getUndoBookmark(editor.selection);\n if (index.get() < undoManager.data.length - 1) {\n undoManager.data.length = index.get() + 1;\n }\n undoManager.data.push(level);\n index.set(undoManager.data.length - 1);\n var args = {\n level: level,\n lastLevel: lastLevel,\n originalEvent: event\n };\n editor.fire('AddUndo', args);\n if (index.get() > 0) {\n editor.setDirty(true);\n editor.fire('change', args);\n }\n return level;\n };\n var clear = function (editor, undoManager, index) {\n undoManager.data = [];\n index.set(0);\n undoManager.typing = false;\n editor.fire('ClearUndos');\n };\n var extra = function (editor, undoManager, index, callback1, callback2) {\n if (undoManager.transact(callback1)) {\n var bookmark = undoManager.data[index.get()].bookmark;\n var lastLevel = undoManager.data[index.get() - 1];\n Levels.applyToEditor(editor, lastLevel, true);\n if (undoManager.transact(callback2)) {\n undoManager.data[index.get() - 1].beforeBookmark = bookmark;\n }\n }\n };\n var redo = function (editor, index, data) {\n var level;\n if (index.get() < data.length - 1) {\n index.set(index.get() + 1);\n level = data[index.get()];\n Levels.applyToEditor(editor, level, false);\n editor.setDirty(true);\n editor.fire('Redo', { level: level });\n }\n return level;\n };\n var undo = function (editor, undoManager, locks, index) {\n var level;\n if (undoManager.typing) {\n undoManager.add();\n undoManager.typing = false;\n setTyping(undoManager, false, locks);\n }\n if (index.get() > 0) {\n index.set(index.get() - 1);\n level = undoManager.data[index.get()];\n Levels.applyToEditor(editor, level, true);\n editor.setDirty(true);\n editor.fire('Undo', { level: level });\n }\n return level;\n };\n var reset = function (undoManager) {\n undoManager.clear();\n undoManager.add();\n };\n var hasUndo = function (editor, undoManager, index) {\n return index.get() > 0 || undoManager.typing && undoManager.data[0] && !Levels.isEq(Levels.createFromEditor(editor), undoManager.data[0]);\n };\n var hasRedo = function (undoManager, index) {\n return index.get() < undoManager.data.length - 1 && !undoManager.typing;\n };\n var transact = function (undoManager, locks, callback) {\n endTyping(undoManager, locks);\n undoManager.beforeChange();\n undoManager.ignore(callback);\n return undoManager.add();\n };\n var ignore = function (locks, callback) {\n try {\n locks.set(locks.get() + 1);\n callback();\n } finally {\n locks.set(locks.get() - 1);\n }\n };\n\n var registerEvents$1 = function (editor, undoManager, locks) {\n var isFirstTypedCharacter = Cell(false);\n var addNonTypingUndoLevel = function (e) {\n setTyping(undoManager, false, locks);\n undoManager.add({}, e);\n };\n editor.on('init', function () {\n undoManager.add();\n });\n editor.on('BeforeExecCommand', function (e) {\n var cmd = e.command;\n if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') {\n endTyping(undoManager, locks);\n undoManager.beforeChange();\n }\n });\n editor.on('ExecCommand', function (e) {\n var cmd = e.command;\n if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') {\n addNonTypingUndoLevel(e);\n }\n });\n editor.on('ObjectResizeStart cut', function () {\n undoManager.beforeChange();\n });\n editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel);\n editor.on('dragend', addNonTypingUndoLevel);\n editor.on('keyup', function (e) {\n var keyCode = e.keyCode;\n if (e.isDefaultPrevented()) {\n return;\n }\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45 || e.ctrlKey) {\n addNonTypingUndoLevel();\n editor.nodeChanged();\n }\n if (keyCode === 46 || keyCode === 8) {\n editor.nodeChanged();\n }\n if (isFirstTypedCharacter.get() && undoManager.typing && Levels.isEq(Levels.createFromEditor(editor), undoManager.data[0]) === false) {\n if (editor.isDirty() === false) {\n editor.setDirty(true);\n editor.fire('change', {\n level: undoManager.data[0],\n lastLevel: null\n });\n }\n editor.fire('TypingUndo');\n isFirstTypedCharacter.set(false);\n editor.nodeChanged();\n }\n });\n editor.on('keydown', function (e) {\n var keyCode = e.keyCode;\n if (e.isDefaultPrevented()) {\n return;\n }\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45) {\n if (undoManager.typing) {\n addNonTypingUndoLevel(e);\n }\n return;\n }\n var modKey = e.ctrlKey && !e.altKey || e.metaKey;\n if ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !undoManager.typing && !modKey) {\n undoManager.beforeChange();\n setTyping(undoManager, true, locks);\n undoManager.add({}, e);\n isFirstTypedCharacter.set(true);\n }\n });\n editor.on('mousedown', function (e) {\n if (undoManager.typing) {\n addNonTypingUndoLevel(e);\n }\n });\n var isInsertReplacementText = function (event) {\n return event.inputType === 'insertReplacementText';\n };\n var isInsertTextDataNull = function (event) {\n return event.inputType === 'insertText' && event.data === null;\n };\n editor.on('input', function (e) {\n if (e.inputType && (isInsertReplacementText(e) || isInsertTextDataNull(e))) {\n addNonTypingUndoLevel(e);\n }\n });\n editor.on('AddUndo Undo Redo ClearUndos', function (e) {\n if (!e.isDefaultPrevented()) {\n editor.nodeChanged();\n }\n });\n };\n var addKeyboardShortcuts = function (editor) {\n editor.addShortcut('meta+z', '', 'Undo');\n editor.addShortcut('meta+y,meta+shift+z', '', 'Redo');\n };\n\n var UndoManager = function (editor) {\n var beforeBookmark = Cell(Option.none());\n var locks = Cell(0);\n var index = Cell(0);\n var undoManager = {\n data: [],\n typing: false,\n beforeChange: function () {\n beforeChange(editor, locks, beforeBookmark);\n },\n add: function (level, event) {\n return addUndoLevel(editor, undoManager, index, locks, beforeBookmark, level, event);\n },\n undo: function () {\n return undo(editor, undoManager, locks, index);\n },\n redo: function () {\n return redo(editor, index, undoManager.data);\n },\n clear: function () {\n clear(editor, undoManager, index);\n },\n reset: function () {\n reset(undoManager);\n },\n hasUndo: function () {\n return hasUndo(editor, undoManager, index);\n },\n hasRedo: function () {\n return hasRedo(undoManager, index);\n },\n transact: function (callback) {\n return transact(undoManager, locks, callback);\n },\n ignore: function (callback) {\n ignore(locks, callback);\n },\n extra: function (callback1, callback2) {\n extra(editor, undoManager, index, callback1, callback2);\n }\n };\n registerEvents$1(editor, undoManager, locks);\n addKeyboardShortcuts(editor);\n return undoManager;\n };\n\n var getLastChildren$1 = function (elm) {\n var children = [];\n var rawNode = elm.dom();\n while (rawNode) {\n children.push(Element.fromDom(rawNode));\n rawNode = rawNode.lastChild;\n }\n return children;\n };\n var removeTrailingBr = function (elm) {\n var allBrs = descendants$1(elm, 'br');\n var brs = filter(getLastChildren$1(elm).slice(-1), isBr$1);\n if (allBrs.length === brs.length) {\n each(brs, remove$1);\n }\n };\n var fillWithPaddingBr = function (elm) {\n empty(elm);\n append(elm, Element.fromHtml('<br data-mce-bogus=\"1\">'));\n };\n var isPaddingContents = function (elm) {\n return isText$1(elm) ? get$6(elm) === '\\xA0' : isBr$1(elm);\n };\n var isPaddedElement = function (elm) {\n return filter(children(elm), isPaddingContents).length === 1;\n };\n var trimBlockTrailingBr = function (elm) {\n lastChild(elm).each(function (lastChild) {\n prevSibling(lastChild).each(function (lastChildPrevSibling) {\n if (isBlock(elm) && isBr$1(lastChild) && isBlock(lastChildPrevSibling)) {\n remove$1(lastChild);\n }\n });\n });\n };\n var PaddingBr = {\n removeTrailingBr: removeTrailingBr,\n fillWithPaddingBr: fillWithPaddingBr,\n isPaddedElement: isPaddedElement,\n trimBlockTrailingBr: trimBlockTrailingBr\n };\n\n var isEq$3 = FormatUtils.isEq;\n var matchesUnInheritedFormatSelector = function (ed, node, name) {\n var formatList = ed.formatter.get(name);\n if (formatList) {\n for (var i = 0; i < formatList.length; i++) {\n if (formatList[i].inherit === false && ed.dom.is(node, formatList[i].selector)) {\n return true;\n }\n }\n }\n return false;\n };\n var matchParents = function (editor, node, name, vars) {\n var root = editor.dom.getRoot();\n if (node === root) {\n return false;\n }\n node = editor.dom.getParent(node, function (node) {\n if (matchesUnInheritedFormatSelector(editor, node, name)) {\n return true;\n }\n return node.parentNode === root || !!matchNode(editor, node, name, vars, true);\n });\n return matchNode(editor, node, name, vars);\n };\n var matchName = function (dom, node, format) {\n if (isEq$3(node, format.inline)) {\n return true;\n }\n if (isEq$3(node, format.block)) {\n return true;\n }\n if (format.selector) {\n return node.nodeType === 1 && dom.is(node, format.selector);\n }\n };\n var matchItems = function (dom, node, format, itemName, similar, vars) {\n var key, value;\n var items = format[itemName];\n var i;\n if (format.onmatch) {\n return format.onmatch(node, format, itemName);\n }\n if (items) {\n if (typeof items.length === 'undefined') {\n for (key in items) {\n if (items.hasOwnProperty(key)) {\n if (itemName === 'attributes') {\n value = dom.getAttrib(node, key);\n } else {\n value = FormatUtils.getStyle(dom, node, key);\n }\n if (similar && !value && !format.exact) {\n return;\n }\n if ((!similar || format.exact) && !isEq$3(value, FormatUtils.normalizeStyleValue(dom, FormatUtils.replaceVars(items[key], vars), key))) {\n return;\n }\n }\n }\n } else {\n for (i = 0; i < items.length; i++) {\n if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : FormatUtils.getStyle(dom, node, items[i])) {\n return format;\n }\n }\n }\n }\n return format;\n };\n var matchNode = function (ed, node, name, vars, similar) {\n var formatList = ed.formatter.get(name);\n var format, i, x, classes;\n var dom = ed.dom;\n if (formatList && node) {\n for (i = 0; i < formatList.length; i++) {\n format = formatList[i];\n if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {\n if (classes = format.classes) {\n for (x = 0; x < classes.length; x++) {\n if (!ed.dom.hasClass(node, classes[x])) {\n return;\n }\n }\n }\n return format;\n }\n }\n }\n };\n var match = function (editor, name, vars, node) {\n var startNode;\n if (node) {\n return matchParents(editor, node, name, vars);\n }\n node = editor.selection.getNode();\n if (matchParents(editor, node, name, vars)) {\n return true;\n }\n startNode = editor.selection.getStart();\n if (startNode !== node) {\n if (matchParents(editor, startNode, name, vars)) {\n return true;\n }\n }\n return false;\n };\n var matchAll = function (editor, names, vars) {\n var startElement;\n var matchedFormatNames = [];\n var checkedMap = {};\n startElement = editor.selection.getStart();\n editor.dom.getParent(startElement, function (node) {\n var i, name;\n for (i = 0; i < names.length; i++) {\n name = names[i];\n if (!checkedMap[name] && matchNode(editor, node, name, vars)) {\n checkedMap[name] = true;\n matchedFormatNames.push(name);\n }\n }\n }, editor.dom.getRoot());\n return matchedFormatNames;\n };\n var canApply = function (editor, name) {\n var formatList = editor.formatter.get(name);\n var startNode, parents, i, x, selector;\n var dom = editor.dom;\n if (formatList) {\n startNode = editor.selection.getStart();\n parents = FormatUtils.getParents(dom, startNode);\n for (x = formatList.length - 1; x >= 0; x--) {\n selector = formatList[x].selector;\n if (!selector || formatList[x].defaultBlock) {\n return true;\n }\n for (i = parents.length - 1; i >= 0; i--) {\n if (dom.is(parents[i], selector)) {\n return true;\n }\n }\n }\n }\n return false;\n };\n var MatchFormat = {\n matchNode: matchNode,\n matchName: matchName,\n match: match,\n matchAll: matchAll,\n canApply: canApply,\n matchesUnInheritedFormatSelector: matchesUnInheritedFormatSelector\n };\n\n var splitText = function (node, offset) {\n return node.splitText(offset);\n };\n var split$1 = function (rng) {\n var startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\n if (startContainer === endContainer && NodeType.isText(startContainer)) {\n if (startOffset > 0 && startOffset < startContainer.nodeValue.length) {\n endContainer = splitText(startContainer, startOffset);\n startContainer = endContainer.previousSibling;\n if (endOffset > startOffset) {\n endOffset = endOffset - startOffset;\n startContainer = endContainer = splitText(endContainer, endOffset).previousSibling;\n endOffset = endContainer.nodeValue.length;\n startOffset = 0;\n } else {\n endOffset = 0;\n }\n }\n } else {\n if (NodeType.isText(startContainer) && startOffset > 0 && startOffset < startContainer.nodeValue.length) {\n startContainer = splitText(startContainer, startOffset);\n startOffset = 0;\n }\n if (NodeType.isText(endContainer) && endOffset > 0 && endOffset < endContainer.nodeValue.length) {\n endContainer = splitText(endContainer, endOffset).previousSibling;\n endOffset = endContainer.nodeValue.length;\n }\n }\n return {\n startContainer: startContainer,\n startOffset: startOffset,\n endContainer: endContainer,\n endOffset: endOffset\n };\n };\n\n var isCollapsibleWhitespace = function (c) {\n return ' \\f\\n\\r\\t\\x0B'.indexOf(c) !== -1;\n };\n var normalizeContent = function (content, isStartOfContent, isEndOfContent) {\n var result = foldl(content, function (acc, c) {\n if (isCollapsibleWhitespace(c) || c === '\\xA0') {\n if (acc.previousCharIsSpace || acc.str === '' && isStartOfContent || acc.str.length === content.length - 1 && isEndOfContent) {\n return {\n previousCharIsSpace: false,\n str: acc.str + '\\xA0'\n };\n } else {\n return {\n previousCharIsSpace: true,\n str: acc.str + ' '\n };\n }\n } else {\n return {\n previousCharIsSpace: false,\n str: acc.str + c\n };\n }\n }, {\n previousCharIsSpace: false,\n str: ''\n });\n return result.str;\n };\n var normalize = function (node, offset, count) {\n if (count === 0) {\n return;\n }\n var whitespace = node.data.slice(offset, offset + count);\n var isEndOfContent = offset + count >= node.data.length;\n var isStartOfContent = offset === 0;\n node.replaceData(offset, count, normalizeContent(whitespace, isStartOfContent, isEndOfContent));\n };\n var normalizeWhitespaceAfter = function (node, offset) {\n var content = node.data.slice(offset);\n var whitespaceCount = content.length - lTrim(content).length;\n return normalize(node, offset, whitespaceCount);\n };\n var normalizeWhitespaceBefore = function (node, offset) {\n var content = node.data.slice(0, offset);\n var whitespaceCount = content.length - rTrim(content).length;\n return normalize(node, offset - whitespaceCount, whitespaceCount);\n };\n var mergeTextNodes = function (prevNode, nextNode, normalizeWhitespace) {\n var whitespaceOffset = rTrim(prevNode.data).length;\n prevNode.appendData(nextNode.data);\n remove$1(Element.fromDom(nextNode));\n if (normalizeWhitespace) {\n normalizeWhitespaceAfter(prevNode, whitespaceOffset);\n }\n return prevNode;\n };\n\n var ancestor$2 = function (scope, selector, isRoot) {\n return ancestor$1(scope, selector, isRoot).isSome();\n };\n\n var hasWhitespacePreserveParent = function (rootNode, node) {\n var rootElement = Element.fromDom(rootNode);\n var startNode = Element.fromDom(node);\n return ancestor$2(startNode, 'pre,code', curry(eq, rootElement));\n };\n var isWhitespace = function (rootNode, node) {\n return NodeType.isText(node) && /^[ \\t\\r\\n]*$/.test(node.data) && hasWhitespacePreserveParent(rootNode, node) === false;\n };\n var isNamedAnchor = function (node) {\n return NodeType.isElement(node) && node.nodeName === 'A' && node.hasAttribute('name');\n };\n var isContent$1 = function (rootNode, node) {\n return isCaretCandidate(node) && isWhitespace(rootNode, node) === false || isNamedAnchor(node) || isBookmark(node);\n };\n var isBookmark = NodeType.hasAttribute('data-mce-bookmark');\n var isBogus$2 = NodeType.hasAttribute('data-mce-bogus');\n var isBogusAll$1 = NodeType.hasAttributeValue('data-mce-bogus', 'all');\n var isEmptyNode = function (targetNode) {\n var node, brCount = 0;\n if (isContent$1(targetNode, targetNode)) {\n return false;\n } else {\n node = targetNode.firstChild;\n if (!node) {\n return true;\n }\n var walker = new TreeWalker(node, targetNode);\n do {\n if (isBogusAll$1(node)) {\n node = walker.next(true);\n continue;\n }\n if (isBogus$2(node)) {\n node = walker.next();\n continue;\n }\n if (NodeType.isBr(node)) {\n brCount++;\n node = walker.next();\n continue;\n }\n if (isContent$1(targetNode, node)) {\n return false;\n }\n node = walker.next();\n } while (node);\n return brCount <= 1;\n }\n };\n var isEmpty$1 = function (elm) {\n return isEmptyNode(elm.dom());\n };\n var Empty = { isEmpty: isEmpty$1 };\n\n var needsReposition = function (pos, elm) {\n var container = pos.container();\n var offset = pos.offset();\n return CaretPosition$1.isTextPosition(pos) === false && container === elm.parentNode && offset > CaretPosition$1.before(elm).offset();\n };\n var reposition = function (elm, pos) {\n return needsReposition(pos, elm) ? CaretPosition$1(pos.container(), pos.offset() - 1) : pos;\n };\n var beforeOrStartOf = function (node) {\n return NodeType.isText(node) ? CaretPosition$1(node, 0) : CaretPosition$1.before(node);\n };\n var afterOrEndOf = function (node) {\n return NodeType.isText(node) ? CaretPosition$1(node, node.data.length) : CaretPosition$1.after(node);\n };\n var getPreviousSiblingCaretPosition = function (elm) {\n if (isCaretCandidate(elm.previousSibling)) {\n return Option.some(afterOrEndOf(elm.previousSibling));\n } else {\n return elm.previousSibling ? CaretFinder.lastPositionIn(elm.previousSibling) : Option.none();\n }\n };\n var getNextSiblingCaretPosition = function (elm) {\n if (isCaretCandidate(elm.nextSibling)) {\n return Option.some(beforeOrStartOf(elm.nextSibling));\n } else {\n return elm.nextSibling ? CaretFinder.firstPositionIn(elm.nextSibling) : Option.none();\n }\n };\n var findCaretPositionBackwardsFromElm = function (rootElement, elm) {\n var startPosition = CaretPosition$1.before(elm.previousSibling ? elm.previousSibling : elm.parentNode);\n return CaretFinder.prevPosition(rootElement, startPosition).fold(function () {\n return CaretFinder.nextPosition(rootElement, CaretPosition$1.after(elm));\n }, Option.some);\n };\n var findCaretPositionForwardsFromElm = function (rootElement, elm) {\n return CaretFinder.nextPosition(rootElement, CaretPosition$1.after(elm)).fold(function () {\n return CaretFinder.prevPosition(rootElement, CaretPosition$1.before(elm));\n }, Option.some);\n };\n var findCaretPositionBackwards = function (rootElement, elm) {\n return getPreviousSiblingCaretPosition(elm).orThunk(function () {\n return getNextSiblingCaretPosition(elm);\n }).orThunk(function () {\n return findCaretPositionBackwardsFromElm(rootElement, elm);\n });\n };\n var findCaretPositionForward = function (rootElement, elm) {\n return getNextSiblingCaretPosition(elm).orThunk(function () {\n return getPreviousSiblingCaretPosition(elm);\n }).orThunk(function () {\n return findCaretPositionForwardsFromElm(rootElement, elm);\n });\n };\n var findCaretPosition$1 = function (forward, rootElement, elm) {\n return forward ? findCaretPositionForward(rootElement, elm) : findCaretPositionBackwards(rootElement, elm);\n };\n var findCaretPosOutsideElmAfterDelete = function (forward, rootElement, elm) {\n return findCaretPosition$1(forward, rootElement, elm).map(curry(reposition, elm));\n };\n var setSelection = function (editor, forward, pos) {\n pos.fold(function () {\n editor.focus();\n }, function (pos) {\n editor.selection.setRng(pos.toRange(), forward);\n });\n };\n var eqRawNode = function (rawNode) {\n return function (elm) {\n return elm.dom() === rawNode;\n };\n };\n var isBlock$2 = function (editor, elm) {\n return elm && editor.schema.getBlockElements().hasOwnProperty(name(elm));\n };\n var paddEmptyBlock = function (elm) {\n if (Empty.isEmpty(elm)) {\n var br = Element.fromHtml('<br data-mce-bogus=\"1\">');\n empty(elm);\n append(elm, br);\n return Option.some(CaretPosition$1.before(br.dom()));\n } else {\n return Option.none();\n }\n };\n var deleteNormalized = function (elm, afterDeletePosOpt, normalizeWhitespace) {\n var prevTextOpt = prevSibling(elm).filter(isText$1);\n var nextTextOpt = nextSibling(elm).filter(isText$1);\n remove$1(elm);\n return lift3(prevTextOpt, nextTextOpt, afterDeletePosOpt, function (prev, next, pos) {\n var prevNode = prev.dom(), nextNode = next.dom();\n var offset = prevNode.data.length;\n mergeTextNodes(prevNode, nextNode, normalizeWhitespace);\n return pos.container() === nextNode ? CaretPosition$1(prevNode, offset) : pos;\n }).orThunk(function () {\n if (normalizeWhitespace) {\n prevTextOpt.each(function (elm) {\n return normalizeWhitespaceBefore(elm.dom(), elm.dom().length);\n });\n nextTextOpt.each(function (elm) {\n return normalizeWhitespaceAfter(elm.dom(), 0);\n });\n }\n return afterDeletePosOpt;\n });\n };\n var isInlineElement = function (editor, element) {\n return has(editor.schema.getTextInlineElements(), name(element));\n };\n var deleteElement = function (editor, forward, elm, moveCaret) {\n if (moveCaret === void 0) {\n moveCaret = true;\n }\n var afterDeletePos = findCaretPosOutsideElmAfterDelete(forward, editor.getBody(), elm.dom());\n var parentBlock = ancestor(elm, curry(isBlock$2, editor), eqRawNode(editor.getBody()));\n var normalizedAfterDeletePos = deleteNormalized(elm, afterDeletePos, isInlineElement(editor, elm));\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n parentBlock.bind(paddEmptyBlock).fold(function () {\n if (moveCaret) {\n setSelection(editor, forward, normalizedAfterDeletePos);\n }\n }, function (paddPos) {\n if (moveCaret) {\n setSelection(editor, forward, Option.some(paddPos));\n }\n });\n }\n };\n var DeleteElement = { deleteElement: deleteElement };\n\n var ZWSP$1 = Zwsp.ZWSP, CARET_ID$1 = '_mce_caret';\n var importNode = function (ownerDocument, node) {\n return ownerDocument.importNode(node, true);\n };\n var getEmptyCaretContainers = function (node) {\n var nodes = [];\n while (node) {\n if (node.nodeType === 3 && node.nodeValue !== ZWSP$1 || node.childNodes.length > 1) {\n return [];\n }\n if (node.nodeType === 1) {\n nodes.push(node);\n }\n node = node.firstChild;\n }\n return nodes;\n };\n var isCaretContainerEmpty = function (node) {\n return getEmptyCaretContainers(node).length > 0;\n };\n var findFirstTextNode = function (node) {\n if (node) {\n var walker = new TreeWalker(node, node);\n for (node = walker.current(); node; node = walker.next()) {\n if (node.nodeType === 3) {\n return node;\n }\n }\n }\n return null;\n };\n var createCaretContainer = function (fill) {\n var caretContainer = Element.fromTag('span');\n setAll(caretContainer, {\n 'id': CARET_ID$1,\n 'data-mce-bogus': '1',\n 'data-mce-type': 'format-caret'\n });\n if (fill) {\n append(caretContainer, Element.fromText(ZWSP$1));\n }\n return caretContainer;\n };\n var trimZwspFromCaretContainer = function (caretContainerNode) {\n var textNode = findFirstTextNode(caretContainerNode);\n if (textNode && textNode.nodeValue.charAt(0) === ZWSP$1) {\n textNode.deleteData(0, 1);\n }\n return textNode;\n };\n var removeCaretContainerNode = function (editor, node, moveCaret) {\n if (moveCaret === void 0) {\n moveCaret = true;\n }\n var dom = editor.dom, selection = editor.selection;\n if (isCaretContainerEmpty(node)) {\n DeleteElement.deleteElement(editor, false, Element.fromDom(node), moveCaret);\n } else {\n var rng = selection.getRng();\n var block = dom.getParent(node, dom.isBlock);\n var textNode = trimZwspFromCaretContainer(node);\n if (rng.startContainer === textNode && rng.startOffset > 0) {\n rng.setStart(textNode, rng.startOffset - 1);\n }\n if (rng.endContainer === textNode && rng.endOffset > 0) {\n rng.setEnd(textNode, rng.endOffset - 1);\n }\n dom.remove(node, true);\n if (block && dom.isEmpty(block)) {\n PaddingBr.fillWithPaddingBr(Element.fromDom(block));\n }\n selection.setRng(rng);\n }\n };\n var removeCaretContainer = function (editor, node, moveCaret) {\n if (moveCaret === void 0) {\n moveCaret = true;\n }\n var dom = editor.dom, selection = editor.selection;\n if (!node) {\n node = getParentCaretContainer(editor.getBody(), selection.getStart());\n if (!node) {\n while (node = dom.get(CARET_ID$1)) {\n removeCaretContainerNode(editor, node, false);\n }\n }\n } else {\n removeCaretContainerNode(editor, node, moveCaret);\n }\n };\n var insertCaretContainerNode = function (editor, caretContainer, formatNode) {\n var dom = editor.dom, block = dom.getParent(formatNode, curry(FormatUtils.isTextBlock, editor));\n if (block && dom.isEmpty(block)) {\n formatNode.parentNode.replaceChild(caretContainer, formatNode);\n } else {\n PaddingBr.removeTrailingBr(Element.fromDom(formatNode));\n if (dom.isEmpty(formatNode)) {\n formatNode.parentNode.replaceChild(caretContainer, formatNode);\n } else {\n dom.insertAfter(caretContainer, formatNode);\n }\n }\n };\n var appendNode = function (parentNode, node) {\n parentNode.appendChild(node);\n return node;\n };\n var insertFormatNodesIntoCaretContainer = function (formatNodes, caretContainer) {\n var innerMostFormatNode = foldr(formatNodes, function (parentNode, formatNode) {\n return appendNode(parentNode, formatNode.cloneNode(false));\n }, caretContainer);\n return appendNode(innerMostFormatNode, innerMostFormatNode.ownerDocument.createTextNode(ZWSP$1));\n };\n var applyCaretFormat = function (editor, name, vars) {\n var rng, caretContainer, textNode, offset, bookmark, container, text;\n var selection = editor.selection;\n rng = selection.getRng();\n offset = rng.startOffset;\n container = rng.startContainer;\n text = container.nodeValue;\n caretContainer = getParentCaretContainer(editor.getBody(), selection.getStart());\n if (caretContainer) {\n textNode = findFirstTextNode(caretContainer);\n }\n var wordcharRegex = /[^\\s\\u00a0\\u00ad\\u200b\\ufeff]/;\n if (text && offset > 0 && offset < text.length && wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) {\n bookmark = selection.getBookmark();\n rng.collapse(true);\n rng = ExpandRange.expandRng(editor, rng, editor.formatter.get(name));\n rng = split$1(rng);\n editor.formatter.apply(name, vars, rng);\n selection.moveToBookmark(bookmark);\n } else {\n if (!caretContainer || textNode.nodeValue !== ZWSP$1) {\n caretContainer = importNode(editor.getDoc(), createCaretContainer(true).dom());\n textNode = caretContainer.firstChild;\n rng.insertNode(caretContainer);\n offset = 1;\n editor.formatter.apply(name, vars, caretContainer);\n } else {\n editor.formatter.apply(name, vars, caretContainer);\n }\n selection.setCursorLocation(textNode, offset);\n }\n };\n var removeCaretFormat = function (editor, name, vars, similar) {\n var dom = editor.dom, selection = editor.selection;\n var container, offset, bookmark;\n var hasContentAfter, node, formatNode;\n var parents = [], rng = selection.getRng();\n var caretContainer;\n container = rng.startContainer;\n offset = rng.startOffset;\n node = container;\n if (container.nodeType === 3) {\n if (offset !== container.nodeValue.length) {\n hasContentAfter = true;\n }\n node = node.parentNode;\n }\n while (node) {\n if (MatchFormat.matchNode(editor, node, name, vars, similar)) {\n formatNode = node;\n break;\n }\n if (node.nextSibling) {\n hasContentAfter = true;\n }\n parents.push(node);\n node = node.parentNode;\n }\n if (!formatNode) {\n return;\n }\n if (hasContentAfter) {\n bookmark = selection.getBookmark();\n rng.collapse(true);\n var expandedRng = ExpandRange.expandRng(editor, rng, editor.formatter.get(name), true);\n expandedRng = split$1(expandedRng);\n editor.formatter.remove(name, vars, expandedRng);\n selection.moveToBookmark(bookmark);\n } else {\n caretContainer = getParentCaretContainer(editor.getBody(), formatNode);\n var newCaretContainer = createCaretContainer(false).dom();\n var caretNode = insertFormatNodesIntoCaretContainer(parents, newCaretContainer);\n if (caretContainer) {\n insertCaretContainerNode(editor, newCaretContainer, caretContainer);\n } else {\n insertCaretContainerNode(editor, newCaretContainer, formatNode);\n }\n removeCaretContainerNode(editor, caretContainer, false);\n selection.setCursorLocation(caretNode, 1);\n if (dom.isEmpty(formatNode)) {\n dom.remove(formatNode);\n }\n }\n };\n var disableCaretContainer = function (editor, keyCode) {\n var selection = editor.selection, body = editor.getBody();\n removeCaretContainer(editor, null, false);\n if ((keyCode === 8 || keyCode === 46) && selection.isCollapsed() && selection.getStart().innerHTML === ZWSP$1) {\n removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()));\n }\n if (keyCode === 37 || keyCode === 39) {\n removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()));\n }\n };\n var setup$5 = function (editor) {\n editor.on('mouseup keydown', function (e) {\n disableCaretContainer(editor, e.keyCode);\n });\n };\n var replaceWithCaretFormat = function (targetNode, formatNodes) {\n var caretContainer = createCaretContainer(false);\n var innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom());\n before(Element.fromDom(targetNode), caretContainer);\n remove$1(Element.fromDom(targetNode));\n return CaretPosition$1(innerMost, 0);\n };\n var isFormatElement = function (editor, element) {\n var inlineElements = editor.schema.getTextInlineElements();\n return inlineElements.hasOwnProperty(name(element)) && !isCaretNode(element.dom()) && !NodeType.isBogus(element.dom());\n };\n var isEmptyCaretFormatElement = function (element) {\n return isCaretNode(element.dom()) && isCaretContainerEmpty(element.dom());\n };\n\n var postProcessHooks = {}, filter$3 = ArrUtils.filter, each$9 = ArrUtils.each;\n var addPostProcessHook = function (name, hook) {\n var hooks = postProcessHooks[name];\n if (!hooks) {\n postProcessHooks[name] = hooks = [];\n }\n postProcessHooks[name].push(hook);\n };\n var postProcess = function (name, editor) {\n each$9(postProcessHooks[name], function (hook) {\n hook(editor);\n });\n };\n addPostProcessHook('pre', function (editor) {\n var rng = editor.selection.getRng();\n var isPre, blocks;\n var hasPreSibling = function (pre) {\n return isPre(pre.previousSibling) && ArrUtils.indexOf(blocks, pre.previousSibling) !== -1;\n };\n var joinPre = function (pre1, pre2) {\n DomQuery(pre2).remove();\n DomQuery(pre1).append('<br><br>').append(pre2.childNodes);\n };\n isPre = NodeType.matchNodeNames(['pre']);\n if (!rng.collapsed) {\n blocks = editor.selection.getSelectedBlocks();\n each$9(filter$3(filter$3(blocks, isPre), hasPreSibling), function (pre) {\n joinPre(pre.previousSibling, pre);\n });\n }\n });\n var Hooks = { postProcess: postProcess };\n\n var each$a = Tools.each;\n var ElementUtils = function (dom) {\n this.compare = function (node1, node2) {\n if (node1.nodeName !== node2.nodeName) {\n return false;\n }\n var getAttribs = function (node) {\n var attribs = {};\n each$a(dom.getAttribs(node), function (attr) {\n var name = attr.nodeName.toLowerCase();\n if (name.indexOf('_') !== 0 && name !== 'style' && name.indexOf('data-') !== 0) {\n attribs[name] = dom.getAttrib(node, name);\n }\n });\n return attribs;\n };\n var compareObjects = function (obj1, obj2) {\n var value, name;\n for (name in obj1) {\n if (obj1.hasOwnProperty(name)) {\n value = obj2[name];\n if (typeof value === 'undefined') {\n return false;\n }\n if (obj1[name] !== value) {\n return false;\n }\n delete obj2[name];\n }\n }\n for (name in obj2) {\n if (obj2.hasOwnProperty(name)) {\n return false;\n }\n }\n return true;\n };\n if (!compareObjects(getAttribs(node1), getAttribs(node2))) {\n return false;\n }\n if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {\n return false;\n }\n return !Bookmarks.isBookmarkNode(node1) && !Bookmarks.isBookmarkNode(node2);\n };\n };\n\n var MCE_ATTR_RE = /^(src|href|style)$/;\n var each$b = Tools.each;\n var isEq$4 = FormatUtils.isEq;\n var isTableCell$2 = function (node) {\n return /^(TH|TD)$/.test(node.nodeName);\n };\n var isChildOfInlineParent = function (dom, node, parent) {\n return dom.isChildOf(node, parent) && node !== parent && !dom.isBlock(parent);\n };\n var getContainer = function (ed, rng, start) {\n var container, offset, lastIdx;\n container = rng[start ? 'startContainer' : 'endContainer'];\n offset = rng[start ? 'startOffset' : 'endOffset'];\n if (NodeType.isElement(container)) {\n lastIdx = container.childNodes.length - 1;\n if (!start && offset) {\n offset--;\n }\n container = container.childNodes[offset > lastIdx ? lastIdx : offset];\n }\n if (NodeType.isText(container) && start && offset >= container.nodeValue.length) {\n container = new TreeWalker(container, ed.getBody()).next() || container;\n }\n if (NodeType.isText(container) && !start && offset === 0) {\n container = new TreeWalker(container, ed.getBody()).prev() || container;\n }\n return container;\n };\n var wrap$2 = function (dom, node, name, attrs) {\n var wrapper = dom.create(name, attrs);\n node.parentNode.insertBefore(wrapper, node);\n wrapper.appendChild(node);\n return wrapper;\n };\n var wrapWithSiblings = function (dom, node, next, name, attrs) {\n var start = Element.fromDom(node);\n var wrapper = Element.fromDom(dom.create(name, attrs));\n var siblings = next ? nextSiblings(start) : prevSiblings(start);\n append$1(wrapper, siblings);\n if (next) {\n before(start, wrapper);\n prepend(wrapper, start);\n } else {\n after(start, wrapper);\n append(wrapper, start);\n }\n return wrapper.dom();\n };\n var matchName$1 = function (dom, node, format) {\n if (isEq$4(node, format.inline)) {\n return true;\n }\n if (isEq$4(node, format.block)) {\n return true;\n }\n if (format.selector) {\n return NodeType.isElement(node) && dom.is(node, format.selector);\n }\n };\n var isColorFormatAndAnchor = function (node, format) {\n return format.links && node.tagName === 'A';\n };\n var find$3 = function (dom, node, next, inc) {\n node = FormatUtils.getNonWhiteSpaceSibling(node, next, inc);\n return !node || (node.nodeName === 'BR' || dom.isBlock(node));\n };\n var removeNode$1 = function (ed, node, format) {\n var parentNode = node.parentNode;\n var rootBlockElm;\n var dom = ed.dom, forcedRootBlock = Settings.getForcedRootBlock(ed);\n if (format.block) {\n if (!forcedRootBlock) {\n if (dom.isBlock(node) && !dom.isBlock(parentNode)) {\n if (!find$3(dom, node, false) && !find$3(dom, node.firstChild, true, 1)) {\n node.insertBefore(dom.create('br'), node.firstChild);\n }\n if (!find$3(dom, node, true) && !find$3(dom, node.lastChild, false, 1)) {\n node.appendChild(dom.create('br'));\n }\n }\n } else {\n if (parentNode === dom.getRoot()) {\n if (!format.list_block || !isEq$4(node, format.list_block)) {\n each$b(Tools.grep(node.childNodes), function (node) {\n if (FormatUtils.isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) {\n if (!rootBlockElm) {\n rootBlockElm = wrap$2(dom, node, forcedRootBlock);\n dom.setAttribs(rootBlockElm, ed.settings.forced_root_block_attrs);\n } else {\n rootBlockElm.appendChild(node);\n }\n } else {\n rootBlockElm = 0;\n }\n });\n }\n }\n }\n }\n if (format.selector && format.inline && !isEq$4(format.inline, node)) {\n return;\n }\n dom.remove(node, 1);\n };\n var removeFormat = function (ed, format, vars, node, compareNode) {\n var i, attrs, stylesModified;\n var dom = ed.dom;\n if (!matchName$1(dom, node, format) && !isColorFormatAndAnchor(node, format)) {\n return false;\n }\n if (format.remove !== 'all') {\n each$b(format.styles, function (value, name) {\n value = FormatUtils.normalizeStyleValue(dom, FormatUtils.replaceVars(value, vars), name);\n if (typeof name === 'number') {\n name = value;\n compareNode = 0;\n }\n if (format.remove_similar || (!compareNode || isEq$4(FormatUtils.getStyle(dom, compareNode, name), value))) {\n dom.setStyle(node, name, '');\n }\n stylesModified = 1;\n });\n if (stylesModified && dom.getAttrib(node, 'style') === '') {\n node.removeAttribute('style');\n node.removeAttribute('data-mce-style');\n }\n each$b(format.attributes, function (value, name) {\n var valueOut;\n value = FormatUtils.replaceVars(value, vars);\n if (typeof name === 'number') {\n name = value;\n compareNode = 0;\n }\n if (format.remove_similar || (!compareNode || isEq$4(dom.getAttrib(compareNode, name), value))) {\n if (name === 'class') {\n value = dom.getAttrib(node, name);\n if (value) {\n valueOut = '';\n each$b(value.split(/\\s+/), function (cls) {\n if (/mce\\-\\w+/.test(cls)) {\n valueOut += (valueOut ? ' ' : '') + cls;\n }\n });\n if (valueOut) {\n dom.setAttrib(node, name, valueOut);\n return;\n }\n }\n }\n if (name === 'class') {\n node.removeAttribute('className');\n }\n if (MCE_ATTR_RE.test(name)) {\n node.removeAttribute('data-mce-' + name);\n }\n node.removeAttribute(name);\n }\n });\n each$b(format.classes, function (value) {\n value = FormatUtils.replaceVars(value, vars);\n if (!compareNode || dom.hasClass(compareNode, value)) {\n dom.removeClass(node, value);\n }\n });\n attrs = dom.getAttribs(node);\n for (i = 0; i < attrs.length; i++) {\n var attrName = attrs[i].nodeName;\n if (attrName.indexOf('_') !== 0 && attrName.indexOf('data-') !== 0) {\n return false;\n }\n }\n }\n if (format.remove !== 'none') {\n removeNode$1(ed, node, format);\n return true;\n }\n };\n var findFormatRoot = function (editor, container, name, vars, similar) {\n var formatRoot;\n each$b(FormatUtils.getParents(editor.dom, container.parentNode).reverse(), function (parent) {\n var format;\n if (!formatRoot && parent.id !== '_start' && parent.id !== '_end') {\n format = MatchFormat.matchNode(editor, parent, name, vars, similar);\n if (format && format.split !== false) {\n formatRoot = parent;\n }\n }\n });\n return formatRoot;\n };\n var wrapAndSplit = function (editor, formatList, formatRoot, container, target, split, format, vars) {\n var parent, clone, lastClone, firstClone, i, formatRootParent;\n var dom = editor.dom;\n if (formatRoot) {\n formatRootParent = formatRoot.parentNode;\n for (parent = container.parentNode; parent && parent !== formatRootParent; parent = parent.parentNode) {\n clone = dom.clone(parent, false);\n for (i = 0; i < formatList.length; i++) {\n if (removeFormat(editor, formatList[i], vars, clone, clone)) {\n clone = 0;\n break;\n }\n }\n if (clone) {\n if (lastClone) {\n clone.appendChild(lastClone);\n }\n if (!firstClone) {\n firstClone = clone;\n }\n lastClone = clone;\n }\n }\n if (split && (!format.mixed || !dom.isBlock(formatRoot))) {\n container = dom.split(formatRoot, container);\n }\n if (lastClone) {\n target.parentNode.insertBefore(lastClone, target);\n firstClone.appendChild(target);\n }\n }\n return container;\n };\n var remove$7 = function (ed, name, vars, node, similar) {\n var formatList = ed.formatter.get(name), format = formatList[0];\n var bookmark, rng, contentEditable = true;\n var dom = ed.dom;\n var selection = ed.selection;\n var splitToFormatRoot = function (container) {\n var formatRoot = findFormatRoot(ed, container, name, vars, similar);\n return wrapAndSplit(ed, formatList, formatRoot, container, container, true, format, vars);\n };\n var isRemoveBookmarkNode = function (node) {\n return Bookmarks.isBookmarkNode(node) && NodeType.isElement(node) && (node.id === '_start' || node.id === '_end');\n };\n var process = function (node) {\n var children, i, l, lastContentEditable, hasContentEditableState;\n if (NodeType.isElement(node) && dom.getContentEditable(node)) {\n lastContentEditable = contentEditable;\n contentEditable = dom.getContentEditable(node) === 'true';\n hasContentEditableState = true;\n }\n children = Tools.grep(node.childNodes);\n if (contentEditable && !hasContentEditableState) {\n for (i = 0, l = formatList.length; i < l; i++) {\n if (removeFormat(ed, formatList[i], vars, node, node)) {\n break;\n }\n }\n }\n if (format.deep) {\n if (children.length) {\n for (i = 0, l = children.length; i < l; i++) {\n process(children[i]);\n }\n if (hasContentEditableState) {\n contentEditable = lastContentEditable;\n }\n }\n }\n };\n var unwrap = function (start) {\n var node = dom.get(start ? '_start' : '_end');\n var out = node[start ? 'firstChild' : 'lastChild'];\n if (isRemoveBookmarkNode(out)) {\n out = out[start ? 'firstChild' : 'lastChild'];\n }\n if (NodeType.isText(out) && out.data.length === 0) {\n out = start ? node.previousSibling || node.nextSibling : node.nextSibling || node.previousSibling;\n }\n dom.remove(node, true);\n return out;\n };\n var removeRngStyle = function (rng) {\n var startContainer, endContainer;\n var commonAncestorContainer = rng.commonAncestorContainer;\n rng = ExpandRange.expandRng(ed, rng, formatList, true);\n if (format.split) {\n rng = split$1(rng);\n startContainer = getContainer(ed, rng, true);\n endContainer = getContainer(ed, rng);\n if (startContainer !== endContainer) {\n if (/^(TR|TH|TD)$/.test(startContainer.nodeName) && startContainer.firstChild) {\n if (startContainer.nodeName === 'TR') {\n startContainer = startContainer.firstChild.firstChild || startContainer;\n } else {\n startContainer = startContainer.firstChild || startContainer;\n }\n }\n if (commonAncestorContainer && /^T(HEAD|BODY|FOOT|R)$/.test(commonAncestorContainer.nodeName) && isTableCell$2(endContainer) && endContainer.firstChild) {\n endContainer = endContainer.firstChild || endContainer;\n }\n if (isChildOfInlineParent(dom, startContainer, endContainer)) {\n var marker = Option.from(startContainer.firstChild).getOr(startContainer);\n splitToFormatRoot(wrapWithSiblings(dom, marker, true, 'span', {\n 'id': '_start',\n 'data-mce-type': 'bookmark'\n }));\n unwrap(true);\n return;\n }\n if (isChildOfInlineParent(dom, endContainer, startContainer)) {\n var marker = Option.from(endContainer.lastChild).getOr(endContainer);\n splitToFormatRoot(wrapWithSiblings(dom, marker, false, 'span', {\n 'id': '_end',\n 'data-mce-type': 'bookmark'\n }));\n unwrap(false);\n return;\n }\n startContainer = wrap$2(dom, startContainer, 'span', {\n 'id': '_start',\n 'data-mce-type': 'bookmark'\n });\n endContainer = wrap$2(dom, endContainer, 'span', {\n 'id': '_end',\n 'data-mce-type': 'bookmark'\n });\n splitToFormatRoot(startContainer);\n splitToFormatRoot(endContainer);\n startContainer = unwrap(true);\n endContainer = unwrap();\n } else {\n startContainer = endContainer = splitToFormatRoot(startContainer);\n }\n rng.startContainer = startContainer.parentNode ? startContainer.parentNode : startContainer;\n rng.startOffset = dom.nodeIndex(startContainer);\n rng.endContainer = endContainer.parentNode ? endContainer.parentNode : endContainer;\n rng.endOffset = dom.nodeIndex(endContainer) + 1;\n }\n RangeWalk.walk(dom, rng, function (nodes) {\n each$b(nodes, function (node) {\n process(node);\n if (NodeType.isElement(node) && ed.dom.getStyle(node, 'text-decoration') === 'underline' && node.parentNode && FormatUtils.getTextDecoration(dom, node.parentNode) === 'underline') {\n removeFormat(ed, {\n deep: false,\n exact: true,\n inline: 'span',\n styles: { textDecoration: 'underline' }\n }, null, node);\n }\n });\n });\n };\n if (node) {\n if (node.nodeType) {\n rng = dom.createRng();\n rng.setStartBefore(node);\n rng.setEndAfter(node);\n removeRngStyle(rng);\n } else {\n removeRngStyle(node);\n }\n return;\n }\n if (dom.getContentEditable(selection.getNode()) === 'false') {\n node = selection.getNode();\n for (var i = 0, l = formatList.length; i < l; i++) {\n if (formatList[i].ceFalseOverride) {\n if (removeFormat(ed, formatList[i], vars, node, node)) {\n break;\n }\n }\n }\n return;\n }\n if (!selection.isCollapsed() || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) {\n bookmark = GetBookmark.getPersistentBookmark(ed.selection, true);\n removeRngStyle(selection.getRng());\n selection.moveToBookmark(bookmark);\n if (format.inline && MatchFormat.match(ed, name, vars, selection.getStart())) {\n FormatUtils.moveStart(dom, selection, selection.getRng());\n }\n ed.nodeChanged();\n } else {\n removeCaretFormat(ed, name, vars, similar);\n }\n };\n var RemoveFormat = {\n removeFormat: removeFormat,\n remove: remove$7\n };\n\n var each$c = Tools.each;\n var isElementNode = function (node) {\n return node && node.nodeType === 1 && !Bookmarks.isBookmarkNode(node) && !isCaretNode(node) && !NodeType.isBogus(node);\n };\n var findElementSibling = function (node, siblingName) {\n var sibling;\n for (sibling = node; sibling; sibling = sibling[siblingName]) {\n if (sibling.nodeType === 3 && sibling.nodeValue.length !== 0) {\n return node;\n }\n if (sibling.nodeType === 1 && !Bookmarks.isBookmarkNode(sibling)) {\n return sibling;\n }\n }\n return node;\n };\n var mergeSiblingsNodes = function (dom, prev, next) {\n var sibling, tmpSibling;\n var elementUtils = new ElementUtils(dom);\n if (prev && next) {\n prev = findElementSibling(prev, 'previousSibling');\n next = findElementSibling(next, 'nextSibling');\n if (elementUtils.compare(prev, next)) {\n for (sibling = prev.nextSibling; sibling && sibling !== next;) {\n tmpSibling = sibling;\n sibling = sibling.nextSibling;\n prev.appendChild(tmpSibling);\n }\n dom.remove(next);\n Tools.each(Tools.grep(next.childNodes), function (node) {\n prev.appendChild(node);\n });\n return prev;\n }\n }\n return next;\n };\n var processChildElements = function (node, filter, process) {\n each$c(node.childNodes, function (node) {\n if (isElementNode(node)) {\n if (filter(node)) {\n process(node);\n }\n if (node.hasChildNodes()) {\n processChildElements(node, filter, process);\n }\n }\n });\n };\n var hasStyle = function (dom, name) {\n return curry(function (name, node) {\n return !!(node && FormatUtils.getStyle(dom, node, name));\n }, name);\n };\n var applyStyle = function (dom, name, value) {\n return curry(function (name, value, node) {\n dom.setStyle(node, name, value);\n if (node.getAttribute('style') === '') {\n node.removeAttribute('style');\n }\n unwrapEmptySpan(dom, node);\n }, name, value);\n };\n var unwrapEmptySpan = function (dom, node) {\n if (node.nodeName === 'SPAN' && dom.getAttribs(node).length === 0) {\n dom.remove(node, true);\n }\n };\n var processUnderlineAndColor = function (dom, node) {\n var textDecoration;\n if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) {\n textDecoration = FormatUtils.getTextDecoration(dom, node.parentNode);\n if (dom.getStyle(node, 'color') && textDecoration) {\n dom.setStyle(node, 'text-decoration', textDecoration);\n } else if (dom.getStyle(node, 'text-decoration') === textDecoration) {\n dom.setStyle(node, 'text-decoration', null);\n }\n }\n };\n var mergeUnderlineAndColor = function (dom, format, vars, node) {\n if (format.styles.color || format.styles.textDecoration) {\n Tools.walk(node, curry(processUnderlineAndColor, dom), 'childNodes');\n processUnderlineAndColor(dom, node);\n }\n };\n var mergeBackgroundColorAndFontSize = function (dom, format, vars, node) {\n if (format.styles && format.styles.backgroundColor) {\n processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'backgroundColor', FormatUtils.replaceVars(format.styles.backgroundColor, vars)));\n }\n };\n var mergeSubSup = function (dom, format, vars, node) {\n if (format.inline === 'sub' || format.inline === 'sup') {\n processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'fontSize', ''));\n dom.remove(dom.select(format.inline === 'sup' ? 'sub' : 'sup', node), true);\n }\n };\n var mergeSiblings = function (dom, format, vars, node) {\n if (node && format.merge_siblings !== false) {\n node = mergeSiblingsNodes(dom, FormatUtils.getNonWhiteSpaceSibling(node), node);\n node = mergeSiblingsNodes(dom, node, FormatUtils.getNonWhiteSpaceSibling(node, true));\n }\n };\n var clearChildStyles = function (dom, format, node) {\n if (format.clear_child_styles) {\n var selector = format.links ? '*:not(a)' : '*';\n each$c(dom.select(selector, node), function (node) {\n if (isElementNode(node)) {\n each$c(format.styles, function (value, name) {\n dom.setStyle(node, name, '');\n });\n }\n });\n }\n };\n var mergeWithChildren = function (editor, formatList, vars, node) {\n each$c(formatList, function (format) {\n each$c(editor.dom.select(format.inline, node), function (child) {\n if (!isElementNode(child)) {\n return;\n }\n RemoveFormat.removeFormat(editor, format, vars, child, format.exact ? child : null);\n });\n clearChildStyles(editor.dom, format, node);\n });\n };\n var mergeWithParents = function (editor, format, name, vars, node) {\n if (MatchFormat.matchNode(editor, node.parentNode, name, vars)) {\n if (RemoveFormat.removeFormat(editor, format, vars, node)) {\n return;\n }\n }\n if (format.merge_with_parents) {\n editor.dom.getParent(node.parentNode, function (parent) {\n if (MatchFormat.matchNode(editor, parent, name, vars)) {\n RemoveFormat.removeFormat(editor, format, vars, node);\n return true;\n }\n });\n }\n };\n var MergeFormats = {\n mergeWithChildren: mergeWithChildren,\n mergeUnderlineAndColor: mergeUnderlineAndColor,\n mergeBackgroundColorAndFontSize: mergeBackgroundColorAndFontSize,\n mergeSubSup: mergeSubSup,\n mergeSiblings: mergeSiblings,\n mergeWithParents: mergeWithParents\n };\n\n var createRange$1 = function (sc, so, ec, eo) {\n var rng = domGlobals.document.createRange();\n rng.setStart(sc, so);\n rng.setEnd(ec, eo);\n return rng;\n };\n var normalizeBlockSelectionRange = function (rng) {\n var startPos = CaretPosition$1.fromRangeStart(rng);\n var endPos = CaretPosition$1.fromRangeEnd(rng);\n var rootNode = rng.commonAncestorContainer;\n return CaretFinder.fromPosition(false, rootNode, endPos).map(function (newEndPos) {\n if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) {\n return createRange$1(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset());\n } else {\n return rng;\n }\n }).getOr(rng);\n };\n var normalize$1 = function (rng) {\n return rng.collapsed ? rng : normalizeBlockSelectionRange(rng);\n };\n var RangeNormalizer = { normalize: normalize$1 };\n\n var each$d = Tools.each;\n var isElementNode$1 = function (node) {\n return node && node.nodeType === 1 && !Bookmarks.isBookmarkNode(node) && !isCaretNode(node) && !NodeType.isBogus(node);\n };\n var applyFormat = function (ed, name, vars, node) {\n var formatList = ed.formatter.get(name);\n var format = formatList[0];\n var bookmark, rng;\n var isCollapsed = !node && ed.selection.isCollapsed();\n var dom = ed.dom, selection = ed.selection;\n var setElementFormat = function (elm, fmt) {\n fmt = fmt || format;\n if (elm) {\n if (fmt.onformat) {\n fmt.onformat(elm, fmt, vars, node);\n }\n each$d(fmt.styles, function (value, name) {\n dom.setStyle(elm, name, FormatUtils.replaceVars(value, vars));\n });\n if (fmt.styles) {\n var styleVal = dom.getAttrib(elm, 'style');\n if (styleVal) {\n elm.setAttribute('data-mce-style', styleVal);\n }\n }\n each$d(fmt.attributes, function (value, name) {\n dom.setAttrib(elm, name, FormatUtils.replaceVars(value, vars));\n });\n each$d(fmt.classes, function (value) {\n value = FormatUtils.replaceVars(value, vars);\n if (!dom.hasClass(elm, value)) {\n dom.addClass(elm, value);\n }\n });\n }\n };\n var applyNodeStyle = function (formatList, node) {\n var found = false;\n if (!format.selector) {\n return false;\n }\n each$d(formatList, function (format) {\n if ('collapsed' in format && format.collapsed !== isCollapsed) {\n return;\n }\n if (dom.is(node, format.selector) && !isCaretNode(node)) {\n setElementFormat(node, format);\n found = true;\n return false;\n }\n });\n return found;\n };\n var applyRngStyle = function (dom, rng, bookmark, nodeSpecific) {\n var newWrappers = [];\n var wrapName, wrapElm, contentEditable = true;\n wrapName = format.inline || format.block;\n wrapElm = dom.create(wrapName);\n setElementFormat(wrapElm);\n RangeWalk.walk(dom, rng, function (nodes) {\n var currentWrapElm;\n var process = function (node) {\n var nodeName, parentName, hasContentEditableState, lastContentEditable;\n lastContentEditable = contentEditable;\n nodeName = node.nodeName.toLowerCase();\n parentName = node.parentNode.nodeName.toLowerCase();\n if (node.nodeType === 1 && dom.getContentEditable(node)) {\n lastContentEditable = contentEditable;\n contentEditable = dom.getContentEditable(node) === 'true';\n hasContentEditableState = true;\n }\n if (FormatUtils.isEq(nodeName, 'br')) {\n currentWrapElm = 0;\n if (format.block) {\n dom.remove(node);\n }\n return;\n }\n if (format.wrapper && MatchFormat.matchNode(ed, node, name, vars)) {\n currentWrapElm = 0;\n return;\n }\n if (contentEditable && !hasContentEditableState && format.block && !format.wrapper && FormatUtils.isTextBlock(ed, nodeName) && FormatUtils.isValid(ed, parentName, wrapName)) {\n node = dom.rename(node, wrapName);\n setElementFormat(node);\n newWrappers.push(node);\n currentWrapElm = 0;\n return;\n }\n if (format.selector) {\n var found = applyNodeStyle(formatList, node);\n if (!format.inline || found) {\n currentWrapElm = 0;\n return;\n }\n }\n if (contentEditable && !hasContentEditableState && FormatUtils.isValid(ed, wrapName, nodeName) && FormatUtils.isValid(ed, parentName, wrapName) && !(!nodeSpecific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node) && (!format.inline || !dom.isBlock(node))) {\n if (!currentWrapElm) {\n currentWrapElm = dom.clone(wrapElm, false);\n node.parentNode.insertBefore(currentWrapElm, node);\n newWrappers.push(currentWrapElm);\n }\n currentWrapElm.appendChild(node);\n } else {\n currentWrapElm = 0;\n each$d(Tools.grep(node.childNodes), process);\n if (hasContentEditableState) {\n contentEditable = lastContentEditable;\n }\n currentWrapElm = 0;\n }\n };\n each$d(nodes, process);\n });\n if (format.links === true) {\n each$d(newWrappers, function (node) {\n var process = function (node) {\n if (node.nodeName === 'A') {\n setElementFormat(node, format);\n }\n each$d(Tools.grep(node.childNodes), process);\n };\n process(node);\n });\n }\n each$d(newWrappers, function (node) {\n var childCount;\n var getChildCount = function (node) {\n var count = 0;\n each$d(node.childNodes, function (node) {\n if (!FormatUtils.isWhiteSpaceNode(node) && !Bookmarks.isBookmarkNode(node)) {\n count++;\n }\n });\n return count;\n };\n var getChildElementNode = function (root) {\n var child = false;\n each$d(root.childNodes, function (node) {\n if (isElementNode$1(node)) {\n child = node;\n return false;\n }\n });\n return child;\n };\n var mergeStyles = function (node) {\n var child, clone;\n child = getChildElementNode(node);\n if (child && !Bookmarks.isBookmarkNode(child) && MatchFormat.matchName(dom, child, format)) {\n clone = dom.clone(child, false);\n setElementFormat(clone);\n dom.replace(clone, node, true);\n dom.remove(child, 1);\n }\n return clone || node;\n };\n childCount = getChildCount(node);\n if ((newWrappers.length > 1 || !dom.isBlock(node)) && childCount === 0) {\n dom.remove(node, 1);\n return;\n }\n if (format.inline || format.wrapper) {\n if (!format.exact && childCount === 1) {\n node = mergeStyles(node);\n }\n MergeFormats.mergeWithChildren(ed, formatList, vars, node);\n MergeFormats.mergeWithParents(ed, format, name, vars, node);\n MergeFormats.mergeBackgroundColorAndFontSize(dom, format, vars, node);\n MergeFormats.mergeSubSup(dom, format, vars, node);\n MergeFormats.mergeSiblings(dom, format, vars, node);\n }\n });\n };\n if (dom.getContentEditable(selection.getNode()) === 'false') {\n node = selection.getNode();\n for (var i = 0, l = formatList.length; i < l; i++) {\n if (formatList[i].ceFalseOverride && dom.is(node, formatList[i].selector)) {\n setElementFormat(node, formatList[i]);\n return;\n }\n }\n return;\n }\n if (format) {\n if (node) {\n if (node.nodeType) {\n if (!applyNodeStyle(formatList, node)) {\n rng = dom.createRng();\n rng.setStartBefore(node);\n rng.setEndAfter(node);\n applyRngStyle(dom, ExpandRange.expandRng(ed, rng, formatList), null, true);\n }\n } else {\n applyRngStyle(dom, node, null, true);\n }\n } else {\n if (!isCollapsed || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) {\n var curSelNode = ed.selection.getNode();\n if (!ed.settings.forced_root_block && formatList[0].defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) {\n applyFormat(ed, formatList[0].defaultBlock);\n }\n ed.selection.setRng(RangeNormalizer.normalize(ed.selection.getRng()));\n bookmark = GetBookmark.getPersistentBookmark(ed.selection, true);\n applyRngStyle(dom, ExpandRange.expandRng(ed, selection.getRng(), formatList));\n if (format.styles) {\n MergeFormats.mergeUnderlineAndColor(dom, format, vars, curSelNode);\n }\n selection.moveToBookmark(bookmark);\n FormatUtils.moveStart(dom, selection, selection.getRng());\n ed.nodeChanged();\n } else {\n applyCaretFormat(ed, name, vars);\n }\n }\n Hooks.postProcess(name, ed);\n }\n };\n var ApplyFormat = { applyFormat: applyFormat };\n\n var setup$6 = function (registeredFormatListeners, editor) {\n var currentFormats = Cell({});\n registeredFormatListeners.set({});\n editor.on('NodeChange', function (e) {\n updateAndFireChangeCallbacks(editor, e.element, currentFormats, registeredFormatListeners.get());\n });\n };\n var updateAndFireChangeCallbacks = function (editor, elm, currentFormats, formatChangeData) {\n var formatsList = keys(currentFormats.get());\n var newFormats = {};\n var matchedFormats = {};\n var parents = filter(FormatUtils.getParents(editor.dom, elm), function (node) {\n return node.nodeType === 1 && !node.getAttribute('data-mce-bogus');\n });\n each$1(formatChangeData, function (data, format) {\n Tools.each(parents, function (node) {\n if (editor.formatter.matchNode(node, format, {}, data.similar)) {\n if (formatsList.indexOf(format) === -1) {\n each(data.callbacks, function (callback) {\n callback(true, {\n node: node,\n format: format,\n parents: parents\n });\n });\n newFormats[format] = data.callbacks;\n }\n matchedFormats[format] = data.callbacks;\n return false;\n }\n if (MatchFormat.matchesUnInheritedFormatSelector(editor, node, format)) {\n return false;\n }\n });\n });\n var remainingFormats = filterRemainingFormats(currentFormats.get(), matchedFormats, elm, parents);\n currentFormats.set(__assign(__assign({}, newFormats), remainingFormats));\n };\n var filterRemainingFormats = function (currentFormats, matchedFormats, elm, parents) {\n return bifilter(currentFormats, function (callbacks, format) {\n if (!has(matchedFormats, format)) {\n each(callbacks, function (callback) {\n callback(false, {\n node: elm,\n format: format,\n parents: parents\n });\n });\n return false;\n } else {\n return true;\n }\n }).t;\n };\n var addListeners = function (registeredFormatListeners, formats, callback, similar) {\n var formatChangeItems = registeredFormatListeners.get();\n each(formats.split(','), function (format) {\n if (!formatChangeItems[format]) {\n formatChangeItems[format] = {\n similar: similar,\n callbacks: []\n };\n }\n formatChangeItems[format].callbacks.push(callback);\n });\n registeredFormatListeners.set(formatChangeItems);\n };\n var removeListeners = function (registeredFormatListeners, formats, callback) {\n var formatChangeItems = registeredFormatListeners.get();\n each(formats.split(','), function (format) {\n formatChangeItems[format].callbacks = filter(formatChangeItems[format].callbacks, function (c) {\n return c !== callback;\n });\n if (formatChangeItems[format].callbacks.length === 0) {\n delete formatChangeItems[format];\n }\n });\n registeredFormatListeners.set(formatChangeItems);\n };\n var formatChanged = function (editor, registeredFormatListeners, formats, callback, similar) {\n if (registeredFormatListeners.get() === null) {\n setup$6(registeredFormatListeners, editor);\n }\n addListeners(registeredFormatListeners, formats, callback, similar);\n return {\n unbind: function () {\n return removeListeners(registeredFormatListeners, formats, callback);\n }\n };\n };\n\n var get$7 = function (dom) {\n var formats = {\n valigntop: [{\n selector: 'td,th',\n styles: { verticalAlign: 'top' }\n }],\n valignmiddle: [{\n selector: 'td,th',\n styles: { verticalAlign: 'middle' }\n }],\n valignbottom: [{\n selector: 'td,th',\n styles: { verticalAlign: 'bottom' }\n }],\n alignleft: [\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-left',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\n styles: { textAlign: 'left' },\n inherit: false,\n preview: false,\n defaultBlock: 'div'\n },\n {\n selector: 'img,table',\n collapsed: false,\n styles: { float: 'left' },\n preview: 'font-family font-size'\n }\n ],\n aligncenter: [\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\n styles: { textAlign: 'center' },\n inherit: false,\n preview: 'font-family font-size',\n defaultBlock: 'div'\n },\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-center',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'img',\n collapsed: false,\n styles: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: false\n },\n {\n selector: 'table',\n collapsed: false,\n styles: {\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: 'font-family font-size'\n }\n ],\n alignright: [\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-right',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\n styles: { textAlign: 'right' },\n inherit: false,\n preview: 'font-family font-size',\n defaultBlock: 'div'\n },\n {\n selector: 'img,table',\n collapsed: false,\n styles: { float: 'right' },\n preview: 'font-family font-size'\n }\n ],\n alignjustify: [{\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\n styles: { textAlign: 'justify' },\n inherit: false,\n defaultBlock: 'div',\n preview: 'font-family font-size'\n }],\n bold: [\n {\n inline: 'strong',\n remove: 'all'\n },\n {\n inline: 'span',\n styles: { fontWeight: 'bold' }\n },\n {\n inline: 'b',\n remove: 'all'\n }\n ],\n italic: [\n {\n inline: 'em',\n remove: 'all'\n },\n {\n inline: 'span',\n styles: { fontStyle: 'italic' }\n },\n {\n inline: 'i',\n remove: 'all'\n }\n ],\n underline: [\n {\n inline: 'span',\n styles: { textDecoration: 'underline' },\n exact: true\n },\n {\n inline: 'u',\n remove: 'all'\n }\n ],\n strikethrough: [\n {\n inline: 'span',\n styles: { textDecoration: 'line-through' },\n exact: true\n },\n {\n inline: 'strike',\n remove: 'all'\n }\n ],\n forecolor: {\n inline: 'span',\n styles: { color: '%value' },\n links: true,\n remove_similar: true,\n clear_child_styles: true\n },\n hilitecolor: {\n inline: 'span',\n styles: { backgroundColor: '%value' },\n links: true,\n remove_similar: true,\n clear_child_styles: true\n },\n fontname: {\n inline: 'span',\n toggle: false,\n styles: { fontFamily: '%value' },\n clear_child_styles: true\n },\n fontsize: {\n inline: 'span',\n toggle: false,\n styles: { fontSize: '%value' },\n clear_child_styles: true\n },\n fontsize_class: {\n inline: 'span',\n attributes: { class: '%value' }\n },\n blockquote: {\n block: 'blockquote',\n wrapper: true,\n remove: 'all'\n },\n subscript: { inline: 'sub' },\n superscript: { inline: 'sup' },\n code: { inline: 'code' },\n link: {\n inline: 'a',\n selector: 'a',\n remove: 'all',\n split: true,\n deep: true,\n onmatch: function () {\n return true;\n },\n onformat: function (elm, fmt, vars) {\n Tools.each(vars, function (value, key) {\n dom.setAttrib(elm, key, value);\n });\n }\n },\n removeformat: [\n {\n selector: 'b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins',\n remove: 'all',\n split: true,\n expand: false,\n block_expand: true,\n deep: true\n },\n {\n selector: 'span',\n attributes: [\n 'style',\n 'class'\n ],\n remove: 'empty',\n split: true,\n expand: false,\n deep: true\n },\n {\n selector: '*',\n attributes: [\n 'style',\n 'class'\n ],\n split: false,\n expand: false,\n deep: true\n }\n ]\n };\n Tools.each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\\s/), function (name) {\n formats[name] = {\n block: name,\n remove: 'all'\n };\n });\n return formats;\n };\n var DefaultFormats = { get: get$7 };\n\n function FormatRegistry(editor) {\n var formats = {};\n var get = function (name) {\n return name ? formats[name] : formats;\n };\n var has$1 = function (name) {\n return has(formats, name);\n };\n var register = function (name, format) {\n if (name) {\n if (typeof name !== 'string') {\n Tools.each(name, function (format, name) {\n register(name, format);\n });\n } else {\n if (!isArray(format)) {\n format = [format];\n }\n Tools.each(format, function (format) {\n if (typeof format.deep === 'undefined') {\n format.deep = !format.selector;\n }\n if (typeof format.split === 'undefined') {\n format.split = !format.selector || format.inline;\n }\n if (typeof format.remove === 'undefined' && format.selector && !format.inline) {\n format.remove = 'none';\n }\n if (format.selector && format.inline) {\n format.mixed = true;\n format.block_expand = true;\n }\n if (typeof format.classes === 'string') {\n format.classes = format.classes.split(/\\s+/);\n }\n });\n formats[name] = format;\n }\n }\n };\n var unregister = function (name) {\n if (name && formats[name]) {\n delete formats[name];\n }\n return formats;\n };\n register(DefaultFormats.get(editor.dom));\n register(editor.settings.formats);\n return {\n get: get,\n has: has$1,\n register: register,\n unregister: unregister\n };\n }\n\n var each$e = Tools.each;\n var dom = DOMUtils$1.DOM;\n var parsedSelectorToHtml = function (ancestry, editor) {\n var elm, item, fragment;\n var schema = editor && editor.schema || Schema({});\n var decorate = function (elm, item) {\n if (item.classes.length) {\n dom.addClass(elm, item.classes.join(' '));\n }\n dom.setAttribs(elm, item.attrs);\n };\n var createElement = function (sItem) {\n var elm;\n item = typeof sItem === 'string' ? {\n name: sItem,\n classes: [],\n attrs: {}\n } : sItem;\n elm = dom.create(item.name);\n decorate(elm, item);\n return elm;\n };\n var getRequiredParent = function (elm, candidate) {\n var name = typeof elm !== 'string' ? elm.nodeName.toLowerCase() : elm;\n var elmRule = schema.getElementRule(name);\n var parentsRequired = elmRule && elmRule.parentsRequired;\n if (parentsRequired && parentsRequired.length) {\n return candidate && Tools.inArray(parentsRequired, candidate) !== -1 ? candidate : parentsRequired[0];\n } else {\n return false;\n }\n };\n var wrapInHtml = function (elm, ancestry, siblings) {\n var parent, parentCandidate, parentRequired;\n var ancestor = ancestry.length > 0 && ancestry[0];\n var ancestorName = ancestor && ancestor.name;\n parentRequired = getRequiredParent(elm, ancestorName);\n if (parentRequired) {\n if (ancestorName === parentRequired) {\n parentCandidate = ancestry[0];\n ancestry = ancestry.slice(1);\n } else {\n parentCandidate = parentRequired;\n }\n } else if (ancestor) {\n parentCandidate = ancestry[0];\n ancestry = ancestry.slice(1);\n } else if (!siblings) {\n return elm;\n }\n if (parentCandidate) {\n parent = createElement(parentCandidate);\n parent.appendChild(elm);\n }\n if (siblings) {\n if (!parent) {\n parent = dom.create('div');\n parent.appendChild(elm);\n }\n Tools.each(siblings, function (sibling) {\n var siblingElm = createElement(sibling);\n parent.insertBefore(siblingElm, elm);\n });\n }\n return wrapInHtml(parent, ancestry, parentCandidate && parentCandidate.siblings);\n };\n if (ancestry && ancestry.length) {\n item = ancestry[0];\n elm = createElement(item);\n fragment = dom.create('div');\n fragment.appendChild(wrapInHtml(elm, ancestry.slice(1), item.siblings));\n return fragment;\n } else {\n return '';\n }\n };\n var selectorToHtml = function (selector, editor) {\n return parsedSelectorToHtml(parseSelector(selector), editor);\n };\n var parseSelectorItem = function (item) {\n var tagName;\n var obj = {\n classes: [],\n attrs: {}\n };\n item = obj.selector = Tools.trim(item);\n if (item !== '*') {\n tagName = item.replace(/(?:([#\\.]|::?)([\\w\\-]+)|(\\[)([^\\]]+)\\]?)/g, function ($0, $1, $2, $3, $4) {\n switch ($1) {\n case '#':\n obj.attrs.id = $2;\n break;\n case '.':\n obj.classes.push($2);\n break;\n case ':':\n if (Tools.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) {\n obj.attrs[$2] = $2;\n }\n break;\n }\n if ($3 === '[') {\n var m = $4.match(/([\\w\\-]+)(?:\\=\\\"([^\\\"]+))?/);\n if (m) {\n obj.attrs[m[1]] = m[2];\n }\n }\n return '';\n });\n }\n obj.name = tagName || 'div';\n return obj;\n };\n var parseSelector = function (selector) {\n if (!selector || typeof selector !== 'string') {\n return [];\n }\n selector = selector.split(/\\s*,\\s*/)[0];\n selector = selector.replace(/\\s*(~\\+|~|\\+|>)\\s*/g, '$1');\n return Tools.map(selector.split(/(?:>|\\s+(?![^\\[\\]]+\\]))/), function (item) {\n var siblings = Tools.map(item.split(/(?:~\\+|~|\\+)/), parseSelectorItem);\n var obj = siblings.pop();\n if (siblings.length) {\n obj.siblings = siblings;\n }\n return obj;\n }).reverse();\n };\n var getCssText = function (editor, format) {\n var name, previewFrag, previewElm, items;\n var previewCss = '', parentFontSize, previewStyles;\n previewStyles = editor.settings.preview_styles;\n if (previewStyles === false) {\n return '';\n }\n if (typeof previewStyles !== 'string') {\n previewStyles = 'font-family font-size font-weight font-style text-decoration ' + 'text-transform color background-color border border-radius outline text-shadow';\n }\n var removeVars = function (val) {\n return val.replace(/%(\\w+)/g, '');\n };\n if (typeof format === 'string') {\n format = editor.formatter.get(format);\n if (!format) {\n return;\n }\n format = format[0];\n }\n if ('preview' in format) {\n previewStyles = format.preview;\n if (previewStyles === false) {\n return '';\n }\n }\n name = format.block || format.inline || 'span';\n items = parseSelector(format.selector);\n if (items.length) {\n if (!items[0].name) {\n items[0].name = name;\n }\n name = format.selector;\n previewFrag = parsedSelectorToHtml(items, editor);\n } else {\n previewFrag = parsedSelectorToHtml([name], editor);\n }\n previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;\n each$e(format.styles, function (value, name) {\n value = removeVars(value);\n if (value) {\n dom.setStyle(previewElm, name, value);\n }\n });\n each$e(format.attributes, function (value, name) {\n value = removeVars(value);\n if (value) {\n dom.setAttrib(previewElm, name, value);\n }\n });\n each$e(format.classes, function (value) {\n value = removeVars(value);\n if (!dom.hasClass(previewElm, value)) {\n dom.addClass(previewElm, value);\n }\n });\n editor.fire('PreviewFormats');\n dom.setStyles(previewFrag, {\n position: 'absolute',\n left: -65535\n });\n editor.getBody().appendChild(previewFrag);\n parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true);\n parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;\n each$e(previewStyles.split(' '), function (name) {\n var value = dom.getStyle(previewElm, name, true);\n if (name === 'background-color' && /transparent|rgba\\s*\\([^)]+,\\s*0\\)/.test(value)) {\n value = dom.getStyle(editor.getBody(), name, true);\n if (dom.toHex(value).toLowerCase() === '#ffffff') {\n return;\n }\n }\n if (name === 'color') {\n if (dom.toHex(value).toLowerCase() === '#000000') {\n return;\n }\n }\n if (name === 'font-size') {\n if (/em|%$/.test(value)) {\n if (parentFontSize === 0) {\n return;\n }\n var numValue = parseFloat(value) / (/%$/.test(value) ? 100 : 1);\n value = numValue * parentFontSize + 'px';\n }\n }\n if (name === 'border' && value) {\n previewCss += 'padding:0 2px;';\n }\n previewCss += name + ':' + value + ';';\n });\n editor.fire('AfterPreviewFormats');\n dom.remove(previewFrag);\n return previewCss;\n };\n var Preview = {\n getCssText: getCssText,\n parseSelector: parseSelector,\n selectorToHtml: selectorToHtml\n };\n\n var toggle = function (editor, formats, name, vars, node) {\n var fmt = formats.get(name);\n if (MatchFormat.match(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {\n RemoveFormat.remove(editor, name, vars, node);\n } else {\n ApplyFormat.applyFormat(editor, name, vars, node);\n }\n };\n var ToggleFormat = { toggle: toggle };\n\n var setup$7 = function (editor) {\n editor.addShortcut('meta+b', '', 'Bold');\n editor.addShortcut('meta+i', '', 'Italic');\n editor.addShortcut('meta+u', '', 'Underline');\n for (var i = 1; i <= 6; i++) {\n editor.addShortcut('access+' + i, '', [\n 'FormatBlock',\n false,\n 'h' + i\n ]);\n }\n editor.addShortcut('access+7', '', [\n 'FormatBlock',\n false,\n 'p'\n ]);\n editor.addShortcut('access+8', '', [\n 'FormatBlock',\n false,\n 'div'\n ]);\n editor.addShortcut('access+9', '', [\n 'FormatBlock',\n false,\n 'address'\n ]);\n };\n var FormatShortcuts = { setup: setup$7 };\n\n var Formatter = function (editor) {\n var formats = FormatRegistry(editor);\n var formatChangeState = Cell(null);\n FormatShortcuts.setup(editor);\n setup$5(editor);\n return {\n get: formats.get,\n has: formats.has,\n register: formats.register,\n unregister: formats.unregister,\n apply: curry(ApplyFormat.applyFormat, editor),\n remove: curry(RemoveFormat.remove, editor),\n toggle: curry(ToggleFormat.toggle, editor, formats),\n match: curry(MatchFormat.match, editor),\n matchAll: curry(MatchFormat.matchAll, editor),\n matchNode: curry(MatchFormat.matchNode, editor),\n canApply: curry(MatchFormat.canApply, editor),\n formatChanged: curry(formatChanged, editor, formatChangeState),\n getCssText: curry(Preview.getCssText, editor)\n };\n };\n\n var register$1 = function (htmlParser, settings, dom) {\n htmlParser.addAttributeFilter('data-mce-tabindex', function (nodes, name) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n node.attr('tabindex', node.attr('data-mce-tabindex'));\n node.attr(name, null);\n }\n });\n htmlParser.addAttributeFilter('src,href,style', function (nodes, name) {\n var i = nodes.length, node, value;\n var internalName = 'data-mce-' + name;\n var urlConverter = settings.url_converter;\n var urlConverterScope = settings.url_converter_scope;\n while (i--) {\n node = nodes[i];\n value = node.attr(internalName);\n if (value !== undefined) {\n node.attr(name, value.length > 0 ? value : null);\n node.attr(internalName, null);\n } else {\n value = node.attr(name);\n if (name === 'style') {\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\n } else if (urlConverter) {\n value = urlConverter.call(urlConverterScope, value, name, node.name);\n }\n node.attr(name, value.length > 0 ? value : null);\n }\n }\n });\n htmlParser.addAttributeFilter('class', function (nodes) {\n var i = nodes.length, node, value;\n while (i--) {\n node = nodes[i];\n value = node.attr('class');\n if (value) {\n value = node.attr('class').replace(/(?:^|\\s)mce-item-\\w+(?!\\S)/g, '');\n node.attr('class', value.length > 0 ? value : null);\n }\n }\n });\n htmlParser.addAttributeFilter('data-mce-type', function (nodes, name, args) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n if (node.attr('data-mce-type') === 'bookmark' && !args.cleanup) {\n var hasChildren = Option.from(node.firstChild).exists(function (firstChild) {\n return !Zwsp.isZwsp(firstChild.value);\n });\n if (hasChildren) {\n node.unwrap();\n } else {\n node.remove();\n }\n }\n }\n });\n htmlParser.addNodeFilter('noscript', function (nodes) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i].firstChild;\n if (node) {\n node.value = Entities.decode(node.value);\n }\n }\n });\n htmlParser.addNodeFilter('script,style', function (nodes, name) {\n var i = nodes.length, node, value, type;\n var trim = function (value) {\n return value.replace(/(<!--\\[CDATA\\[|\\]\\]-->)/g, '\\n').replace(/^[\\r\\n]*|[\\r\\n]*$/g, '').replace(/^\\s*((<!--)?(\\s*\\/\\/)?\\s*<!\\[CDATA\\[|(<!--\\s*)?\\/\\*\\s*<!\\[CDATA\\[\\s*\\*\\/|(\\/\\/)?\\s*<!--|\\/\\*\\s*<!--\\s*\\*\\/)\\s*[\\r\\n]*/gi, '').replace(/\\s*(\\/\\*\\s*\\]\\]>\\s*\\*\\/(-->)?|\\s*\\/\\/\\s*\\]\\]>(-->)?|\\/\\/\\s*(-->)?|\\]\\]>|\\/\\*\\s*-->\\s*\\*\\/|\\s*-->\\s*)\\s*$/g, '');\n };\n while (i--) {\n node = nodes[i];\n value = node.firstChild ? node.firstChild.value : '';\n if (name === 'script') {\n type = node.attr('type');\n if (type) {\n node.attr('type', type === 'mce-no/type' ? null : type.replace(/^mce\\-/, ''));\n }\n if (settings.element_format === 'xhtml' && value.length > 0) {\n node.firstChild.value = '// <![CDATA[\\n' + trim(value) + '\\n// ]]>';\n }\n } else {\n if (settings.element_format === 'xhtml' && value.length > 0) {\n node.firstChild.value = '<!--\\n' + trim(value) + '\\n-->';\n }\n }\n }\n });\n htmlParser.addNodeFilter('#comment', function (nodes) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n if (node.value.indexOf('[CDATA[') === 0) {\n node.name = '#cdata';\n node.type = 4;\n node.value = node.value.replace(/^\\[CDATA\\[|\\]\\]$/g, '');\n } else if (node.value.indexOf('mce:protected ') === 0) {\n node.name = '#text';\n node.type = 3;\n node.raw = true;\n node.value = unescape(node.value).substr(14);\n }\n }\n });\n htmlParser.addNodeFilter('xml:namespace,input', function (nodes, name) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n if (node.type === 7) {\n node.remove();\n } else if (node.type === 1) {\n if (name === 'input' && !node.attr('type')) {\n node.attr('type', 'text');\n }\n }\n }\n });\n htmlParser.addAttributeFilter('data-mce-type', function (nodes) {\n each(nodes, function (node) {\n if (node.attr('data-mce-type') === 'format-caret') {\n if (node.isEmpty(htmlParser.schema.getNonEmptyElements())) {\n node.remove();\n } else {\n node.unwrap();\n }\n }\n });\n });\n htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,' + 'data-mce-selected,data-mce-expando,' + 'data-mce-type,data-mce-resize', function (nodes, name) {\n var i = nodes.length;\n while (i--) {\n nodes[i].attr(name, null);\n }\n });\n };\n var trimTrailingBr = function (rootNode) {\n var brNode1, brNode2;\n var isBr = function (node) {\n return node && node.name === 'br';\n };\n brNode1 = rootNode.lastChild;\n if (isBr(brNode1)) {\n brNode2 = brNode1.prev;\n if (isBr(brNode2)) {\n brNode1.remove();\n brNode2.remove();\n }\n }\n };\n var DomSerializerFilters = {\n register: register$1,\n trimTrailingBr: trimTrailingBr\n };\n\n var preProcess = function (editor, node, args) {\n var impl, doc, oldDoc;\n var dom = editor.dom;\n node = node.cloneNode(true);\n impl = domGlobals.document.implementation;\n if (impl.createHTMLDocument) {\n doc = impl.createHTMLDocument('');\n Tools.each(node.nodeName === 'BODY' ? node.childNodes : [node], function (node) {\n doc.body.appendChild(doc.importNode(node, true));\n });\n if (node.nodeName !== 'BODY') {\n node = doc.body.firstChild;\n } else {\n node = doc.body;\n }\n oldDoc = dom.doc;\n dom.doc = doc;\n }\n Events.firePreProcess(editor, merge(args, { node: node }));\n if (oldDoc) {\n dom.doc = oldDoc;\n }\n return node;\n };\n var shouldFireEvent = function (editor, args) {\n return editor && editor.hasEventListeners('PreProcess') && !args.no_events;\n };\n var process = function (editor, node, args) {\n return shouldFireEvent(editor, args) ? preProcess(editor, node, args) : node;\n };\n var DomSerializerPreProcess = { process: process };\n\n var removeAttrs = function (node, names) {\n each(names, function (name) {\n node.attr(name, null);\n });\n };\n var addFontToSpansFilter = function (domParser, styles, fontSizes) {\n domParser.addNodeFilter('font', function (nodes) {\n each(nodes, function (node) {\n var props = styles.parse(node.attr('style'));\n var color = node.attr('color');\n var face = node.attr('face');\n var size = node.attr('size');\n if (color) {\n props.color = color;\n }\n if (face) {\n props['font-family'] = face;\n }\n if (size) {\n props['font-size'] = fontSizes[parseInt(node.attr('size'), 10) - 1];\n }\n node.name = 'span';\n node.attr('style', styles.serialize(props));\n removeAttrs(node, [\n 'color',\n 'face',\n 'size'\n ]);\n });\n });\n };\n var addStrikeToSpanFilter = function (domParser, styles) {\n domParser.addNodeFilter('strike', function (nodes) {\n each(nodes, function (node) {\n var props = styles.parse(node.attr('style'));\n props['text-decoration'] = 'line-through';\n node.name = 'span';\n node.attr('style', styles.serialize(props));\n });\n });\n };\n var addFilters = function (domParser, settings) {\n var styles = Styles();\n if (settings.convert_fonts_to_spans) {\n addFontToSpansFilter(domParser, styles, Tools.explode(settings.font_size_legacy_values));\n }\n addStrikeToSpanFilter(domParser, styles);\n };\n var register$2 = function (domParser, settings) {\n if (settings.inline_styles) {\n addFilters(domParser, settings);\n }\n };\n var LegacyFilter = { register: register$2 };\n\n var paddEmptyNode = function (settings, args, blockElements, node) {\n var brPreferred = settings.padd_empty_with_br || args.insert;\n if (brPreferred && blockElements[node.name]) {\n node.empty().append(new Node$1('br', 1)).shortEnded = true;\n } else {\n node.empty().append(new Node$1('#text', 3)).value = '\\xA0';\n }\n };\n var isPaddedWithNbsp = function (node) {\n return hasOnlyChild(node, '#text') && node.firstChild.value === '\\xA0';\n };\n var hasOnlyChild = function (node, name) {\n return node && node.firstChild && node.firstChild === node.lastChild && node.firstChild.name === name;\n };\n var isPadded = function (schema, node) {\n var rule = schema.getElementRule(node.name);\n return rule && rule.paddEmpty;\n };\n var isEmpty$2 = function (schema, nonEmptyElements, whitespaceElements, node) {\n return node.isEmpty(nonEmptyElements, whitespaceElements, function (node) {\n return isPadded(schema, node);\n });\n };\n var isLineBreakNode = function (node, blockElements) {\n return node && (blockElements[node.name] || node.name === 'br');\n };\n\n var register$3 = function (parser, settings) {\n var schema = parser.schema;\n if (settings.remove_trailing_brs) {\n parser.addNodeFilter('br', function (nodes, _, args) {\n var i;\n var l = nodes.length;\n var node;\n var blockElements = Tools.extend({}, schema.getBlockElements());\n var nonEmptyElements = schema.getNonEmptyElements();\n var parent, lastParent, prev, prevName;\n var whiteSpaceElements = schema.getNonEmptyElements();\n var elementRule, textNode;\n blockElements.body = 1;\n for (i = 0; i < l; i++) {\n node = nodes[i];\n parent = node.parent;\n if (blockElements[node.parent.name] && node === parent.lastChild) {\n prev = node.prev;\n while (prev) {\n prevName = prev.name;\n if (prevName !== 'span' || prev.attr('data-mce-type') !== 'bookmark') {\n if (prevName !== 'br') {\n break;\n }\n if (prevName === 'br') {\n node = null;\n break;\n }\n }\n prev = prev.prev;\n }\n if (node) {\n node.remove();\n if (isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, parent)) {\n elementRule = schema.getElementRule(parent.name);\n if (elementRule) {\n if (elementRule.removeEmpty) {\n parent.remove();\n } else if (elementRule.paddEmpty) {\n paddEmptyNode(settings, args, blockElements, parent);\n }\n }\n }\n }\n } else {\n lastParent = node;\n while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) {\n lastParent = parent;\n if (blockElements[parent.name]) {\n break;\n }\n parent = parent.parent;\n }\n if (lastParent === parent && settings.padd_empty_with_br !== true) {\n textNode = new Node$1('#text', 3);\n textNode.value = '\\xA0';\n node.replace(textNode);\n }\n }\n }\n });\n }\n parser.addAttributeFilter('href', function (nodes) {\n var i = nodes.length, node;\n var appendRel = function (rel) {\n var parts = rel.split(' ').filter(function (p) {\n return p.length > 0;\n });\n return parts.concat(['noopener']).sort().join(' ');\n };\n var addNoOpener = function (rel) {\n var newRel = rel ? Tools.trim(rel) : '';\n if (!/\\b(noopener)\\b/g.test(newRel)) {\n return appendRel(newRel);\n } else {\n return newRel;\n }\n };\n if (!settings.allow_unsafe_link_target) {\n while (i--) {\n node = nodes[i];\n if (node.name === 'a' && node.attr('target') === '_blank') {\n node.attr('rel', addNoOpener(node.attr('rel')));\n }\n }\n }\n });\n if (!settings.allow_html_in_named_anchor) {\n parser.addAttributeFilter('id,name', function (nodes) {\n var i = nodes.length, sibling, prevSibling, parent, node;\n while (i--) {\n node = nodes[i];\n if (node.name === 'a' && node.firstChild && !node.attr('href')) {\n parent = node.parent;\n sibling = node.lastChild;\n do {\n prevSibling = sibling.prev;\n parent.insert(sibling, node);\n sibling = prevSibling;\n } while (sibling);\n }\n }\n });\n }\n if (settings.fix_list_elements) {\n parser.addNodeFilter('ul,ol', function (nodes) {\n var i = nodes.length, node, parentNode;\n while (i--) {\n node = nodes[i];\n parentNode = node.parent;\n if (parentNode.name === 'ul' || parentNode.name === 'ol') {\n if (node.prev && node.prev.name === 'li') {\n node.prev.append(node);\n } else {\n var li = new Node$1('li', 1);\n li.attr('style', 'list-style-type: none');\n node.wrap(li);\n }\n }\n }\n });\n }\n if (settings.validate && schema.getValidClasses()) {\n parser.addAttributeFilter('class', function (nodes) {\n var i = nodes.length, node, classList, ci, className, classValue;\n var validClasses = schema.getValidClasses();\n var validClassesMap, valid;\n while (i--) {\n node = nodes[i];\n classList = node.attr('class').split(' ');\n classValue = '';\n for (ci = 0; ci < classList.length; ci++) {\n className = classList[ci];\n valid = false;\n validClassesMap = validClasses['*'];\n if (validClassesMap && validClassesMap[className]) {\n valid = true;\n }\n validClassesMap = validClasses[node.name];\n if (!valid && validClassesMap && validClassesMap[className]) {\n valid = true;\n }\n if (valid) {\n if (classValue) {\n classValue += ' ';\n }\n classValue += className;\n }\n }\n if (!classValue.length) {\n classValue = null;\n }\n node.attr('class', classValue);\n }\n });\n }\n };\n\n var makeMap$4 = Tools.makeMap, each$f = Tools.each, explode$2 = Tools.explode, extend$2 = Tools.extend;\n var DomParser = function (settings, schema) {\n if (schema === void 0) {\n schema = Schema();\n }\n var nodeFilters = {};\n var attributeFilters = [];\n var matchedNodes = {};\n var matchedAttributes = {};\n settings = settings || {};\n settings.validate = 'validate' in settings ? settings.validate : true;\n settings.root_name = settings.root_name || 'body';\n var fixInvalidChildren = function (nodes) {\n var ni, node, parent, parents, newParent, currentNode, tempNode, childNode, i;\n var nonEmptyElements, whitespaceElements, nonSplitableElements, textBlockElements, specialElements, sibling, nextNode;\n nonSplitableElements = makeMap$4('tr,td,th,tbody,thead,tfoot,table');\n nonEmptyElements = schema.getNonEmptyElements();\n whitespaceElements = schema.getWhiteSpaceElements();\n textBlockElements = schema.getTextBlockElements();\n specialElements = schema.getSpecialElements();\n for (ni = 0; ni < nodes.length; ni++) {\n node = nodes[ni];\n if (!node.parent || node.fixed) {\n continue;\n }\n if (textBlockElements[node.name] && node.parent.name === 'li') {\n sibling = node.next;\n while (sibling) {\n if (textBlockElements[sibling.name]) {\n sibling.name = 'li';\n sibling.fixed = true;\n node.parent.insert(sibling, node.parent);\n } else {\n break;\n }\n sibling = sibling.next;\n }\n node.unwrap(node);\n continue;\n }\n parents = [node];\n for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && !nonSplitableElements[parent.name]; parent = parent.parent) {\n parents.push(parent);\n }\n if (parent && parents.length > 1) {\n parents.reverse();\n newParent = currentNode = filterNode(parents[0].clone());\n for (i = 0; i < parents.length - 1; i++) {\n if (schema.isValidChild(currentNode.name, parents[i].name)) {\n tempNode = filterNode(parents[i].clone());\n currentNode.append(tempNode);\n } else {\n tempNode = currentNode;\n }\n for (childNode = parents[i].firstChild; childNode && childNode !== parents[i + 1];) {\n nextNode = childNode.next;\n tempNode.append(childNode);\n childNode = nextNode;\n }\n currentNode = tempNode;\n }\n if (!isEmpty$2(schema, nonEmptyElements, whitespaceElements, newParent)) {\n parent.insert(newParent, parents[0], true);\n parent.insert(node, newParent);\n } else {\n parent.insert(node, parents[0], true);\n }\n parent = parents[0];\n if (isEmpty$2(schema, nonEmptyElements, whitespaceElements, parent) || hasOnlyChild(parent, 'br')) {\n parent.empty().remove();\n }\n } else if (node.parent) {\n if (node.name === 'li') {\n sibling = node.prev;\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) {\n sibling.append(node);\n continue;\n }\n sibling = node.next;\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) {\n sibling.insert(node, sibling.firstChild, true);\n continue;\n }\n node.wrap(filterNode(new Node$1('ul', 1)));\n continue;\n }\n if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) {\n node.wrap(filterNode(new Node$1('div', 1)));\n } else {\n if (specialElements[node.name]) {\n node.empty().remove();\n } else {\n node.unwrap();\n }\n }\n }\n }\n };\n var filterNode = function (node) {\n var i, name, list;\n name = node.name;\n if (name in nodeFilters) {\n list = matchedNodes[name];\n if (list) {\n list.push(node);\n } else {\n matchedNodes[name] = [node];\n }\n }\n i = attributeFilters.length;\n while (i--) {\n name = attributeFilters[i].name;\n if (name in node.attributes.map) {\n list = matchedAttributes[name];\n if (list) {\n list.push(node);\n } else {\n matchedAttributes[name] = [node];\n }\n }\n }\n return node;\n };\n var addNodeFilter = function (name, callback) {\n each$f(explode$2(name), function (name) {\n var list = nodeFilters[name];\n if (!list) {\n nodeFilters[name] = list = [];\n }\n list.push(callback);\n });\n };\n var getNodeFilters = function () {\n var out = [];\n for (var name in nodeFilters) {\n if (nodeFilters.hasOwnProperty(name)) {\n out.push({\n name: name,\n callbacks: nodeFilters[name]\n });\n }\n }\n return out;\n };\n var addAttributeFilter = function (name, callback) {\n each$f(explode$2(name), function (name) {\n var i;\n for (i = 0; i < attributeFilters.length; i++) {\n if (attributeFilters[i].name === name) {\n attributeFilters[i].callbacks.push(callback);\n return;\n }\n }\n attributeFilters.push({\n name: name,\n callbacks: [callback]\n });\n });\n };\n var getAttributeFilters = function () {\n return [].concat(attributeFilters);\n };\n var parse = function (html, args) {\n var parser, nodes, i, l, fi, fl, list, name;\n var blockElements;\n var invalidChildren = [];\n var isInWhiteSpacePreservedElement;\n var node;\n var getRootBlockName = function (name) {\n if (name === false) {\n return '';\n } else if (name === true) {\n return 'p';\n } else {\n return name;\n }\n };\n args = args || {};\n matchedNodes = {};\n matchedAttributes = {};\n blockElements = extend$2(makeMap$4('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\n var nonEmptyElements = schema.getNonEmptyElements();\n var children = schema.children;\n var validate = settings.validate;\n var forcedRootBlockName = 'forced_root_block' in args ? args.forced_root_block : settings.forced_root_block;\n var rootBlockName = getRootBlockName(forcedRootBlockName);\n var whiteSpaceElements = schema.getWhiteSpaceElements();\n var startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\n var endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\n var allWhiteSpaceRegExp = /[ \\t\\r\\n]+/g;\n var isAllWhiteSpaceRegExp = /^[ \\t\\r\\n]+$/;\n isInWhiteSpacePreservedElement = whiteSpaceElements.hasOwnProperty(args.context) || whiteSpaceElements.hasOwnProperty(settings.root_name);\n var addRootBlocks = function () {\n var node = rootNode.firstChild, next, rootBlockNode;\n var trim = function (rootBlockNode) {\n if (rootBlockNode) {\n node = rootBlockNode.firstChild;\n if (node && node.type === 3) {\n node.value = node.value.replace(startWhiteSpaceRegExp, '');\n }\n node = rootBlockNode.lastChild;\n if (node && node.type === 3) {\n node.value = node.value.replace(endWhiteSpaceRegExp, '');\n }\n }\n };\n if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) {\n return;\n }\n while (node) {\n next = node.next;\n if (node.type === 3 || node.type === 1 && node.name !== 'p' && !blockElements[node.name] && !node.attr('data-mce-type')) {\n if (!rootBlockNode) {\n rootBlockNode = createNode(rootBlockName, 1);\n rootBlockNode.attr(settings.forced_root_block_attrs);\n rootNode.insert(rootBlockNode, node);\n rootBlockNode.append(node);\n } else {\n rootBlockNode.append(node);\n }\n } else {\n trim(rootBlockNode);\n rootBlockNode = null;\n }\n node = next;\n }\n trim(rootBlockNode);\n };\n var createNode = function (name, type) {\n var node = new Node$1(name, type);\n var list;\n if (name in nodeFilters) {\n list = matchedNodes[name];\n if (list) {\n list.push(node);\n } else {\n matchedNodes[name] = [node];\n }\n }\n return node;\n };\n var removeWhitespaceBefore = function (node) {\n var textNode, textNodeNext, textVal, sibling;\n var blockElements = schema.getBlockElements();\n for (textNode = node.prev; textNode && textNode.type === 3;) {\n textVal = textNode.value.replace(endWhiteSpaceRegExp, '');\n if (textVal.length > 0) {\n textNode.value = textVal;\n return;\n }\n textNodeNext = textNode.next;\n if (textNodeNext) {\n if (textNodeNext.type === 3 && textNodeNext.value.length) {\n textNode = textNode.prev;\n continue;\n }\n if (!blockElements[textNodeNext.name] && textNodeNext.name !== 'script' && textNodeNext.name !== 'style') {\n textNode = textNode.prev;\n continue;\n }\n }\n sibling = textNode.prev;\n textNode.remove();\n textNode = sibling;\n }\n };\n var cloneAndExcludeBlocks = function (input) {\n var name;\n var output = {};\n for (name in input) {\n if (name !== 'li' && name !== 'p') {\n output[name] = input[name];\n }\n }\n return output;\n };\n parser = SaxParser$1({\n validate: validate,\n allow_script_urls: settings.allow_script_urls,\n allow_conditional_comments: settings.allow_conditional_comments,\n self_closing_elements: cloneAndExcludeBlocks(schema.getSelfClosingElements()),\n cdata: function (text) {\n node.append(createNode('#cdata', 4)).value = text;\n },\n text: function (text, raw) {\n var textNode;\n if (!isInWhiteSpacePreservedElement) {\n text = text.replace(allWhiteSpaceRegExp, ' ');\n if (isLineBreakNode(node.lastChild, blockElements)) {\n text = text.replace(startWhiteSpaceRegExp, '');\n }\n }\n if (text.length !== 0) {\n textNode = createNode('#text', 3);\n textNode.raw = !!raw;\n node.append(textNode).value = text;\n }\n },\n comment: function (text) {\n node.append(createNode('#comment', 8)).value = text;\n },\n pi: function (name, text) {\n node.append(createNode(name, 7)).value = text;\n removeWhitespaceBefore(node);\n },\n doctype: function (text) {\n var newNode;\n newNode = node.append(createNode('#doctype', 10));\n newNode.value = text;\n removeWhitespaceBefore(node);\n },\n start: function (name, attrs, empty) {\n var newNode, attrFiltersLen, elementRule, attrName, parent;\n elementRule = validate ? schema.getElementRule(name) : {};\n if (elementRule) {\n newNode = createNode(elementRule.outputName || name, 1);\n newNode.attributes = attrs;\n newNode.shortEnded = empty;\n node.append(newNode);\n parent = children[node.name];\n if (parent && children[newNode.name] && !parent[newNode.name]) {\n invalidChildren.push(newNode);\n }\n attrFiltersLen = attributeFilters.length;\n while (attrFiltersLen--) {\n attrName = attributeFilters[attrFiltersLen].name;\n if (attrName in attrs.map) {\n list = matchedAttributes[attrName];\n if (list) {\n list.push(newNode);\n } else {\n matchedAttributes[attrName] = [newNode];\n }\n }\n }\n if (blockElements[name]) {\n removeWhitespaceBefore(newNode);\n }\n if (!empty) {\n node = newNode;\n }\n if (!isInWhiteSpacePreservedElement && whiteSpaceElements[name]) {\n isInWhiteSpacePreservedElement = true;\n }\n }\n },\n end: function (name) {\n var textNode, elementRule, text, sibling, tempNode;\n elementRule = validate ? schema.getElementRule(name) : {};\n if (elementRule) {\n if (blockElements[name]) {\n if (!isInWhiteSpacePreservedElement) {\n textNode = node.firstChild;\n if (textNode && textNode.type === 3) {\n text = textNode.value.replace(startWhiteSpaceRegExp, '');\n if (text.length > 0) {\n textNode.value = text;\n textNode = textNode.next;\n } else {\n sibling = textNode.next;\n textNode.remove();\n textNode = sibling;\n while (textNode && textNode.type === 3) {\n text = textNode.value;\n sibling = textNode.next;\n if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) {\n textNode.remove();\n textNode = sibling;\n }\n textNode = sibling;\n }\n }\n }\n textNode = node.lastChild;\n if (textNode && textNode.type === 3) {\n text = textNode.value.replace(endWhiteSpaceRegExp, '');\n if (text.length > 0) {\n textNode.value = text;\n textNode = textNode.prev;\n } else {\n sibling = textNode.prev;\n textNode.remove();\n textNode = sibling;\n while (textNode && textNode.type === 3) {\n text = textNode.value;\n sibling = textNode.prev;\n if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) {\n textNode.remove();\n textNode = sibling;\n }\n textNode = sibling;\n }\n }\n }\n }\n }\n if (isInWhiteSpacePreservedElement && whiteSpaceElements[name]) {\n isInWhiteSpacePreservedElement = false;\n }\n if (elementRule.removeEmpty && isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, node)) {\n if (!node.attr('name') && !node.attr('id')) {\n tempNode = node.parent;\n if (blockElements[node.name]) {\n node.empty().remove();\n } else {\n node.unwrap();\n }\n node = tempNode;\n return;\n }\n }\n if (elementRule.paddEmpty && (isPaddedWithNbsp(node) || isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, node))) {\n paddEmptyNode(settings, args, blockElements, node);\n }\n node = node.parent;\n }\n }\n }, schema);\n var rootNode = node = new Node$1(args.context || settings.root_name, 11);\n parser.parse(html);\n if (validate && invalidChildren.length) {\n if (!args.context) {\n fixInvalidChildren(invalidChildren);\n } else {\n args.invalid = true;\n }\n }\n if (rootBlockName && (rootNode.name === 'body' || args.isRootContent)) {\n addRootBlocks();\n }\n if (!args.invalid) {\n for (name in matchedNodes) {\n if (!matchedNodes.hasOwnProperty(name)) {\n continue;\n }\n list = nodeFilters[name];\n nodes = matchedNodes[name];\n fi = nodes.length;\n while (fi--) {\n if (!nodes[fi].parent) {\n nodes.splice(fi, 1);\n }\n }\n for (i = 0, l = list.length; i < l; i++) {\n list[i](nodes, name, args);\n }\n }\n for (i = 0, l = attributeFilters.length; i < l; i++) {\n list = attributeFilters[i];\n if (list.name in matchedAttributes) {\n nodes = matchedAttributes[list.name];\n fi = nodes.length;\n while (fi--) {\n if (!nodes[fi].parent) {\n nodes.splice(fi, 1);\n }\n }\n for (fi = 0, fl = list.callbacks.length; fi < fl; fi++) {\n list.callbacks[fi](nodes, list.name, args);\n }\n }\n }\n }\n return rootNode;\n };\n var exports = {\n schema: schema,\n addAttributeFilter: addAttributeFilter,\n getAttributeFilters: getAttributeFilters,\n addNodeFilter: addNodeFilter,\n getNodeFilters: getNodeFilters,\n filterNode: filterNode,\n parse: parse\n };\n register$3(exports, settings);\n LegacyFilter.register(exports, settings);\n return exports;\n };\n\n var addTempAttr = function (htmlParser, tempAttrs, name) {\n if (Tools.inArray(tempAttrs, name) === -1) {\n htmlParser.addAttributeFilter(name, function (nodes, name) {\n var i = nodes.length;\n while (i--) {\n nodes[i].attr(name, null);\n }\n });\n tempAttrs.push(name);\n }\n };\n var postProcess$1 = function (editor, args, content) {\n if (!args.no_events && editor) {\n var outArgs = Events.firePostProcess(editor, merge(args, { content: content }));\n return outArgs.content;\n } else {\n return content;\n }\n };\n var getHtmlFromNode = function (dom, node, args) {\n var html = Zwsp.trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node));\n return args.selection || isWsPreserveElement(Element.fromDom(node)) ? html : Tools.trim(html);\n };\n var parseHtml = function (htmlParser, html, args) {\n var parserArgs = args.selection ? merge({ forced_root_block: false }, args) : args;\n var rootNode = htmlParser.parse(html, parserArgs);\n DomSerializerFilters.trimTrailingBr(rootNode);\n return rootNode;\n };\n var serializeNode = function (settings, schema, node) {\n var htmlSerializer = Serializer(settings, schema);\n return htmlSerializer.serialize(node);\n };\n var toHtml = function (editor, settings, schema, rootNode, args) {\n var content = serializeNode(settings, schema, rootNode);\n return postProcess$1(editor, args, content);\n };\n var DomSerializer = function (settings, editor) {\n var dom, schema, htmlParser;\n var tempAttrs = ['data-mce-selected'];\n dom = editor && editor.dom ? editor.dom : DOMUtils$1.DOM;\n schema = editor && editor.schema ? editor.schema : Schema(settings);\n settings.entity_encoding = settings.entity_encoding || 'named';\n settings.remove_trailing_brs = 'remove_trailing_brs' in settings ? settings.remove_trailing_brs : true;\n htmlParser = DomParser(settings, schema);\n DomSerializerFilters.register(htmlParser, settings, dom);\n var serialize = function (node, parserArgs) {\n var args = merge({ format: 'html' }, parserArgs ? parserArgs : {});\n var targetNode = DomSerializerPreProcess.process(editor, node, args);\n var html = getHtmlFromNode(dom, targetNode, args);\n var rootNode = parseHtml(htmlParser, html, args);\n return args.format === 'tree' ? rootNode : toHtml(editor, settings, schema, rootNode, args);\n };\n return {\n schema: schema,\n addNodeFilter: htmlParser.addNodeFilter,\n addAttributeFilter: htmlParser.addAttributeFilter,\n serialize: serialize,\n addRules: function (rules) {\n schema.addValidElements(rules);\n },\n setRules: function (rules) {\n schema.setValidElements(rules);\n },\n addTempAttr: curry(addTempAttr, htmlParser, tempAttrs),\n getTempAttrs: function () {\n return tempAttrs;\n }\n };\n };\n\n var Serializer$1 = function (settings, editor) {\n var domSerializer = DomSerializer(settings, editor);\n return {\n schema: domSerializer.schema,\n addNodeFilter: domSerializer.addNodeFilter,\n addAttributeFilter: domSerializer.addAttributeFilter,\n serialize: domSerializer.serialize,\n addRules: domSerializer.addRules,\n setRules: domSerializer.setRules,\n addTempAttr: domSerializer.addTempAttr,\n getTempAttrs: domSerializer.getTempAttrs\n };\n };\n\n function BookmarkManager(selection) {\n return {\n getBookmark: curry(Bookmarks.getBookmark, selection),\n moveToBookmark: curry(Bookmarks.moveToBookmark, selection)\n };\n }\n (function (BookmarkManager) {\n BookmarkManager.isBookmarkNode = Bookmarks.isBookmarkNode;\n }(BookmarkManager || (BookmarkManager = {})));\n var BookmarkManager$1 = BookmarkManager;\n\n var isContentEditableFalse$a = NodeType.isContentEditableFalse;\n var isContentEditableTrue$5 = NodeType.isContentEditableTrue;\n var getContentEditableRoot$1 = function (root, node) {\n while (node && node !== root) {\n if (isContentEditableTrue$5(node) || isContentEditableFalse$a(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var ControlSelection = function (selection, editor) {\n var dom = editor.dom, each = Tools.each;\n var selectedElm, selectedElmGhost, resizeHelper, resizeHandles, selectedHandle;\n var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted;\n var width, height;\n var editableDoc = editor.getDoc(), rootDocument = domGlobals.document;\n var abs = Math.abs, round = Math.round, rootElement = editor.getBody();\n var startScrollWidth, startScrollHeight;\n resizeHandles = {\n nw: [\n 0,\n 0,\n -1,\n -1\n ],\n ne: [\n 1,\n 0,\n 1,\n -1\n ],\n se: [\n 1,\n 1,\n 1,\n 1\n ],\n sw: [\n 0,\n 1,\n -1,\n 1\n ]\n };\n var isImage = function (elm) {\n return elm && (elm.nodeName === 'IMG' || editor.dom.is(elm, 'figure.image'));\n };\n var isEventOnImageOutsideRange = function (evt, range) {\n if (evt.type === 'longpress' || evt.type.indexOf('touch') === 0) {\n var touch = evt.touches[0];\n return isImage(evt.target) && !RangePoint.isXYWithinRange(touch.clientX, touch.clientY, range);\n } else {\n return isImage(evt.target) && !RangePoint.isXYWithinRange(evt.clientX, evt.clientY, range);\n }\n };\n var contextMenuSelectImage = function (evt) {\n var target = evt.target;\n if (isEventOnImageOutsideRange(evt, editor.selection.getRng()) && !evt.isDefaultPrevented()) {\n editor.selection.select(target);\n }\n };\n var getResizeTarget = function (elm) {\n return editor.dom.is(elm, 'figure.image') ? elm.querySelector('img') : elm;\n };\n var isResizable = function (elm) {\n var selector = editor.settings.object_resizing;\n if (selector === false || Env.iOS) {\n return false;\n }\n if (typeof selector !== 'string') {\n selector = 'table,img,figure.image,div';\n }\n if (elm.getAttribute('data-mce-resize') === 'false') {\n return false;\n }\n if (elm === editor.getBody()) {\n return false;\n }\n return is(Element.fromDom(elm), selector);\n };\n var resizeGhostElement = function (e) {\n var deltaX, deltaY, proportional;\n var resizeHelperX, resizeHelperY;\n deltaX = e.screenX - startX;\n deltaY = e.screenY - startY;\n width = deltaX * selectedHandle[2] + startW;\n height = deltaY * selectedHandle[3] + startH;\n width = width < 5 ? 5 : width;\n height = height < 5 ? 5 : height;\n if (isImage(selectedElm) && editor.settings.resize_img_proportional !== false) {\n proportional = !VK.modifierPressed(e);\n } else {\n proportional = VK.modifierPressed(e) || isImage(selectedElm) && selectedHandle[2] * selectedHandle[3] !== 0;\n }\n if (proportional) {\n if (abs(deltaX) > abs(deltaY)) {\n height = round(width * ratio);\n width = round(height / ratio);\n } else {\n width = round(height / ratio);\n height = round(width * ratio);\n }\n }\n dom.setStyles(getResizeTarget(selectedElmGhost), {\n width: width,\n height: height\n });\n resizeHelperX = selectedHandle.startPos.x + deltaX;\n resizeHelperY = selectedHandle.startPos.y + deltaY;\n resizeHelperX = resizeHelperX > 0 ? resizeHelperX : 0;\n resizeHelperY = resizeHelperY > 0 ? resizeHelperY : 0;\n dom.setStyles(resizeHelper, {\n left: resizeHelperX,\n top: resizeHelperY,\n display: 'block'\n });\n resizeHelper.innerHTML = width + ' &times; ' + height;\n if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) {\n dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width));\n }\n if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) {\n dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height));\n }\n deltaX = rootElement.scrollWidth - startScrollWidth;\n deltaY = rootElement.scrollHeight - startScrollHeight;\n if (deltaX + deltaY !== 0) {\n dom.setStyles(resizeHelper, {\n left: resizeHelperX - deltaX,\n top: resizeHelperY - deltaY\n });\n }\n if (!resizeStarted) {\n Events.fireObjectResizeStart(editor, selectedElm, startW, startH);\n resizeStarted = true;\n }\n };\n var endGhostResize = function () {\n resizeStarted = false;\n var setSizeProp = function (name, value) {\n if (value) {\n if (selectedElm.style[name] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name)) {\n dom.setStyle(getResizeTarget(selectedElm), name, value);\n } else {\n dom.setAttrib(getResizeTarget(selectedElm), name, value);\n }\n }\n };\n setSizeProp('width', width);\n setSizeProp('height', height);\n dom.unbind(editableDoc, 'mousemove', resizeGhostElement);\n dom.unbind(editableDoc, 'mouseup', endGhostResize);\n if (rootDocument !== editableDoc) {\n dom.unbind(rootDocument, 'mousemove', resizeGhostElement);\n dom.unbind(rootDocument, 'mouseup', endGhostResize);\n }\n dom.remove(selectedElmGhost);\n dom.remove(resizeHelper);\n showResizeRect(selectedElm);\n Events.fireObjectResized(editor, selectedElm, width, height);\n dom.setAttrib(selectedElm, 'style', dom.getAttrib(selectedElm, 'style'));\n editor.nodeChanged();\n };\n var showResizeRect = function (targetElm) {\n var position, targetWidth, targetHeight, e, rect;\n hideResizeRect();\n unbindResizeHandleEvents();\n position = dom.getPos(targetElm, rootElement);\n selectedElmX = position.x;\n selectedElmY = position.y;\n rect = targetElm.getBoundingClientRect();\n targetWidth = rect.width || rect.right - rect.left;\n targetHeight = rect.height || rect.bottom - rect.top;\n if (selectedElm !== targetElm) {\n selectedElm = targetElm;\n width = height = 0;\n }\n e = editor.fire('ObjectSelected', { target: targetElm });\n if (isResizable(targetElm) && !e.isDefaultPrevented()) {\n each(resizeHandles, function (handle, name) {\n var handleElm;\n var startDrag = function (e) {\n startX = e.screenX;\n startY = e.screenY;\n startW = getResizeTarget(selectedElm).clientWidth;\n startH = getResizeTarget(selectedElm).clientHeight;\n ratio = startH / startW;\n selectedHandle = handle;\n handle.startPos = {\n x: targetWidth * handle[0] + selectedElmX,\n y: targetHeight * handle[1] + selectedElmY\n };\n startScrollWidth = rootElement.scrollWidth;\n startScrollHeight = rootElement.scrollHeight;\n selectedElmGhost = selectedElm.cloneNode(true);\n dom.addClass(selectedElmGhost, 'mce-clonedresizable');\n dom.setAttrib(selectedElmGhost, 'data-mce-bogus', 'all');\n selectedElmGhost.contentEditable = false;\n selectedElmGhost.unSelectabe = true;\n dom.setStyles(selectedElmGhost, {\n left: selectedElmX,\n top: selectedElmY,\n margin: 0\n });\n selectedElmGhost.removeAttribute('data-mce-selected');\n rootElement.appendChild(selectedElmGhost);\n dom.bind(editableDoc, 'mousemove', resizeGhostElement);\n dom.bind(editableDoc, 'mouseup', endGhostResize);\n if (rootDocument !== editableDoc) {\n dom.bind(rootDocument, 'mousemove', resizeGhostElement);\n dom.bind(rootDocument, 'mouseup', endGhostResize);\n }\n resizeHelper = dom.add(rootElement, 'div', {\n 'class': 'mce-resize-helper',\n 'data-mce-bogus': 'all'\n }, startW + ' &times; ' + startH);\n };\n handleElm = dom.get('mceResizeHandle' + name);\n if (handleElm) {\n dom.remove(handleElm);\n }\n handleElm = dom.add(rootElement, 'div', {\n 'id': 'mceResizeHandle' + name,\n 'data-mce-bogus': 'all',\n 'class': 'mce-resizehandle',\n 'unselectable': true,\n 'style': 'cursor:' + name + '-resize; margin:0; padding:0'\n });\n if (Env.ie === 11) {\n handleElm.contentEditable = false;\n }\n dom.bind(handleElm, 'mousedown', function (e) {\n e.stopImmediatePropagation();\n e.preventDefault();\n startDrag(e);\n });\n handle.elm = handleElm;\n dom.setStyles(handleElm, {\n left: targetWidth * handle[0] + selectedElmX - handleElm.offsetWidth / 2,\n top: targetHeight * handle[1] + selectedElmY - handleElm.offsetHeight / 2\n });\n });\n } else {\n hideResizeRect();\n }\n selectedElm.setAttribute('data-mce-selected', '1');\n };\n var hideResizeRect = function () {\n var name, handleElm;\n unbindResizeHandleEvents();\n if (selectedElm) {\n selectedElm.removeAttribute('data-mce-selected');\n }\n for (name in resizeHandles) {\n handleElm = dom.get('mceResizeHandle' + name);\n if (handleElm) {\n dom.unbind(handleElm);\n dom.remove(handleElm);\n }\n }\n };\n var updateResizeRect = function (e) {\n var startElm, controlElm;\n var isChildOrEqual = function (node, parent) {\n if (node) {\n do {\n if (node === parent) {\n return true;\n }\n } while (node = node.parentNode);\n }\n };\n if (resizeStarted || editor.removed) {\n return;\n }\n each(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function (img) {\n img.removeAttribute('data-mce-selected');\n });\n controlElm = e.type === 'mousedown' ? e.target : selection.getNode();\n controlElm = dom.$(controlElm).closest('table,img,figure.image,hr')[0];\n if (isChildOrEqual(controlElm, rootElement)) {\n disableGeckoResize();\n startElm = selection.getStart(true);\n if (isChildOrEqual(startElm, controlElm) && isChildOrEqual(selection.getEnd(true), controlElm)) {\n showResizeRect(controlElm);\n return;\n }\n }\n hideResizeRect();\n };\n var isWithinContentEditableFalse = function (elm) {\n return isContentEditableFalse$a(getContentEditableRoot$1(editor.getBody(), elm));\n };\n var unbindResizeHandleEvents = function () {\n for (var name in resizeHandles) {\n var handle = resizeHandles[name];\n if (handle.elm) {\n dom.unbind(handle.elm);\n delete handle.elm;\n }\n }\n };\n var disableGeckoResize = function () {\n try {\n editor.getDoc().execCommand('enableObjectResizing', false, false);\n } catch (ex) {\n }\n };\n editor.on('init', function () {\n disableGeckoResize();\n if (Env.browser.isIE() || Env.browser.isEdge()) {\n editor.on('mousedown click', function (e) {\n var target = e.target, nodeName = target.nodeName;\n if (!resizeStarted && /^(TABLE|IMG|HR)$/.test(nodeName) && !isWithinContentEditableFalse(target)) {\n if (e.button !== 2) {\n editor.selection.select(target, nodeName === 'TABLE');\n }\n if (e.type === 'mousedown') {\n editor.nodeChanged();\n }\n }\n });\n editor.dom.bind(rootElement, 'mscontrolselect', function (e) {\n var delayedSelect = function (node) {\n Delay.setEditorTimeout(editor, function () {\n editor.selection.select(node);\n });\n };\n if (isWithinContentEditableFalse(e.target)) {\n e.preventDefault();\n delayedSelect(e.target);\n return;\n }\n if (/^(TABLE|IMG|HR)$/.test(e.target.nodeName)) {\n e.preventDefault();\n if (e.target.tagName === 'IMG') {\n delayedSelect(e.target);\n }\n }\n });\n }\n var throttledUpdateResizeRect = Delay.throttle(function (e) {\n if (!editor.composing) {\n updateResizeRect(e);\n }\n });\n editor.on('nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged', throttledUpdateResizeRect);\n editor.on('keyup compositionend', function (e) {\n if (selectedElm && selectedElm.nodeName === 'TABLE') {\n throttledUpdateResizeRect(e);\n }\n });\n editor.on('hide blur', hideResizeRect);\n editor.on('contextmenu longpress', contextMenuSelectImage, true);\n });\n editor.on('remove', unbindResizeHandleEvents);\n var destroy = function () {\n selectedElm = selectedElmGhost = null;\n };\n return {\n isResizable: isResizable,\n showResizeRect: showResizeRect,\n hideResizeRect: hideResizeRect,\n updateResizeRect: updateResizeRect,\n destroy: destroy\n };\n };\n\n function Dimension (name, getOffset) {\n var set = function (element, h) {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n var dom = element.dom();\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n var get = function (element) {\n var r = getOffset(element);\n if (r <= 0 || r === null) {\n var css = get$2(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n var getOuter = get;\n var aggregate = function (element, properties) {\n return foldl(properties, function (acc, property) {\n var val = get$2(element, property);\n var value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n };\n var max = function (element, value, properties) {\n var cumulativeInclusions = aggregate(element, properties);\n var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set: set,\n get: get,\n getOuter: getOuter,\n aggregate: aggregate,\n max: max\n };\n }\n\n var api$1 = Dimension('height', function (element) {\n var dom = element.dom();\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n var get$8 = function (element) {\n return api$1.get(element);\n };\n\n var walkUp = function (navigation, doc) {\n var frame = navigation.view(doc);\n return frame.fold(constant([]), function (f) {\n var parent = navigation.owner(f);\n var rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n var pathTo = function (element, navigation) {\n var d = navigation.owner(element);\n return walkUp(navigation, d);\n };\n\n var view = function (doc) {\n var element = doc.dom() === domGlobals.document ? Option.none() : Option.from(doc.dom().defaultView.frameElement);\n return element.map(Element.fromDom);\n };\n var owner$1 = function (element) {\n return owner(element);\n };\n\n var Navigation = /*#__PURE__*/Object.freeze({\n view: view,\n owner: owner$1\n });\n\n var find$4 = function (element) {\n var doc = Element.fromDom(domGlobals.document);\n var scroll = get$3(doc);\n var frames = pathTo(element, Navigation);\n var offset = viewport(element);\n var r = foldr(frames, function (b, a) {\n var loc = viewport(a);\n return {\n left: b.left + loc.left(),\n top: b.top + loc.top()\n };\n }, {\n left: 0,\n top: 0\n });\n return Position$1(r.left + offset.left() + scroll.left(), r.top + offset.top() + scroll.top());\n };\n\n var excludeFromDescend = function (element) {\n return name(element) === 'textarea';\n };\n var descend = function (element, offset) {\n var children$1 = children(element);\n if (children$1.length === 0 || excludeFromDescend(element)) {\n return {\n element: element,\n offset: offset\n };\n } else if (offset < children$1.length && !excludeFromDescend(children$1[offset])) {\n return {\n element: children$1[offset],\n offset: 0\n };\n } else {\n var last = children$1[children$1.length - 1];\n if (excludeFromDescend(last)) {\n return {\n element: element,\n offset: offset\n };\n } else {\n if (name(last) === 'img') {\n return {\n element: last,\n offset: 1\n };\n } else if (isText$1(last)) {\n return {\n element: last,\n offset: get$6(last).length\n };\n } else {\n return {\n element: last,\n offset: children(last).length\n };\n }\n }\n }\n };\n var markerInfo = function (element, cleanupFun) {\n var pos = absolute(element);\n var height = get$8(element);\n return {\n element: element,\n bottom: pos.top() + height,\n pos: pos,\n cleanup: cleanupFun\n };\n };\n var createMarker = function (element, offset) {\n var startPoint = descend(element, offset);\n var span = Element.fromHtml('<span data-mce-bogus=\"all\">' + Zwsp.ZWSP + '</span>');\n before(startPoint.element, span);\n return markerInfo(span, function () {\n return remove$1(span);\n });\n };\n var elementMarker = function (element) {\n return markerInfo(Element.fromDom(element), noop);\n };\n var withMarker = function (editor, f, rng, alignToTop) {\n preserveWith(editor, function (_s, _e) {\n return applyWithMarker(editor, f, rng, alignToTop);\n }, rng);\n };\n var applyWithMarker = function (editor, f, rng, alignToTop) {\n var body = Element.fromDom(editor.getBody());\n var doc = Element.fromDom(editor.getDoc());\n reflow(body);\n var scrollTop = get$3(doc).top();\n var marker = createMarker(Element.fromDom(rng.startContainer), rng.startOffset);\n f(doc, scrollTop, marker, alignToTop);\n marker.cleanup();\n };\n var withElement = function (editor, element, f, alignToTop) {\n var doc = Element.fromDom(editor.getDoc());\n var scrollTop = get$3(doc).top();\n f(doc, scrollTop, element, alignToTop);\n };\n var preserveWith = function (editor, f, rng) {\n var startElement = rng.startContainer;\n var startOffset = rng.startOffset;\n var endElement = rng.endContainer;\n var endOffset = rng.endOffset;\n f(Element.fromDom(startElement), Element.fromDom(endElement));\n var newRng = editor.dom.createRng();\n newRng.setStart(startElement, startOffset);\n newRng.setEnd(endElement, endOffset);\n editor.selection.setRng(rng);\n };\n var fireScrollIntoViewEvent = function (editor, elm, alignToTop) {\n var scrollEvent = editor.fire('ScrollIntoView', {\n elm: elm,\n alignToTop: alignToTop\n });\n return scrollEvent.isDefaultPrevented();\n };\n var scrollTo = function (marker, viewHeight, alignToTop, doc) {\n var pos = marker.pos;\n if (alignToTop) {\n to(pos.left(), pos.top(), doc);\n } else {\n var y = pos.top() - viewHeight + (marker.bottom - pos.top());\n to(pos.left(), y, doc);\n }\n };\n var intoWindowIfNeeded = function (doc, scrollTop, viewHeight, marker, alignToTop) {\n if (marker.pos.top() < scrollTop) {\n scrollTo(marker, viewHeight, alignToTop !== false, doc);\n } else if (marker.bottom > viewHeight + scrollTop) {\n scrollTo(marker, viewHeight, alignToTop === true, doc);\n }\n };\n var intoWindow = function (doc, scrollTop, marker, alignToTop) {\n var viewHeight = doc.dom().defaultView.innerHeight;\n intoWindowIfNeeded(doc, scrollTop, viewHeight, marker, alignToTop);\n };\n var intoFrame = function (editor, doc, scrollTop, marker, alignToTop) {\n var frameViewHeight = doc.dom().defaultView.innerHeight;\n intoWindowIfNeeded(doc, scrollTop, frameViewHeight, marker, alignToTop);\n var op = find$4(marker.element);\n var viewportBounds = getBounds(domGlobals.window);\n if (op.top() < viewportBounds.y()) {\n intoView(marker.element, alignToTop !== false);\n } else if (op.top() > viewportBounds.bottom()) {\n intoView(marker.element, alignToTop === true);\n }\n };\n var rangeIntoWindow = function (editor, rng, alignToTop) {\n return withMarker(editor, curry(intoWindow), rng, alignToTop);\n };\n var elementIntoWindow = function (editor, element, alignToTop) {\n return withElement(editor, elementMarker(element), curry(intoWindow), alignToTop);\n };\n var rangeIntoFrame = function (editor, rng, alignToTop) {\n return withMarker(editor, curry(intoFrame, editor), rng, alignToTop);\n };\n var elementIntoFrame = function (editor, element, alignToTop) {\n return withElement(editor, elementMarker(element), curry(intoFrame, editor), alignToTop);\n };\n var elementIntoView = function (editor, element, alignToTop) {\n if (fireScrollIntoViewEvent(editor, element, alignToTop)) {\n return;\n }\n var scroller = editor.inline ? elementIntoWindow : elementIntoFrame;\n scroller(editor, element, alignToTop);\n };\n var rangeIntoView = function (editor, rng, alignToTop) {\n var scroller = editor.inline ? rangeIntoWindow : rangeIntoFrame;\n scroller(editor, rng, alignToTop);\n };\n var ScrollIntoView = {\n scrollElementIntoView: elementIntoView,\n scrollRangeIntoView: rangeIntoView\n };\n\n var hasCeProperty = function (node) {\n return NodeType.isContentEditableTrue(node) || NodeType.isContentEditableFalse(node);\n };\n var findParent = function (node, rootNode, predicate) {\n while (node && node !== rootNode) {\n if (predicate(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var findClosestIeRange = function (clientX, clientY, doc) {\n var element, rng, rects;\n element = doc.elementFromPoint(clientX, clientY);\n rng = doc.body.createTextRange();\n if (!element || element.tagName === 'HTML') {\n element = doc.body;\n }\n rng.moveToElementText(element);\n rects = Tools.toArray(rng.getClientRects());\n rects = rects.sort(function (a, b) {\n a = Math.abs(Math.max(a.top - clientY, a.bottom - clientY));\n b = Math.abs(Math.max(b.top - clientY, b.bottom - clientY));\n return a - b;\n });\n if (rects.length > 0) {\n clientY = (rects[0].bottom + rects[0].top) / 2;\n try {\n rng.moveToPoint(clientX, clientY);\n rng.collapse(true);\n return rng;\n } catch (ex) {\n }\n }\n return null;\n };\n var moveOutOfContentEditableFalse = function (rng, rootNode) {\n var parentElement = rng && rng.parentElement ? rng.parentElement() : null;\n return NodeType.isContentEditableFalse(findParent(parentElement, rootNode, hasCeProperty)) ? null : rng;\n };\n var fromPoint$1 = function (clientX, clientY, doc) {\n var rng, point;\n var pointDoc = doc;\n if (pointDoc.caretPositionFromPoint) {\n point = pointDoc.caretPositionFromPoint(clientX, clientY);\n if (point) {\n rng = doc.createRange();\n rng.setStart(point.offsetNode, point.offset);\n rng.collapse(true);\n }\n } else if (doc.caretRangeFromPoint) {\n rng = doc.caretRangeFromPoint(clientX, clientY);\n } else if (pointDoc.body.createTextRange) {\n rng = pointDoc.body.createTextRange();\n try {\n rng.moveToPoint(clientX, clientY);\n rng.collapse(true);\n } catch (ex) {\n rng = findClosestIeRange(clientX, clientY, doc);\n }\n return moveOutOfContentEditableFalse(rng, doc.body);\n }\n return rng;\n };\n var CaretRangeFromPoint = { fromPoint: fromPoint$1 };\n\n var processRanges = function (editor, ranges) {\n return map(ranges, function (range) {\n var evt = editor.fire('GetSelectionRange', { range: range });\n return evt.range !== range ? evt.range : range;\n });\n };\n var EventProcessRanges = { processRanges: processRanges };\n\n var fromElements = function (elements, scope) {\n var doc = scope || domGlobals.document;\n var fragment = doc.createDocumentFragment();\n each(elements, function (element) {\n fragment.appendChild(element.dom());\n });\n return Element.fromDom(fragment);\n };\n\n var tableModel = Immutable('element', 'width', 'rows');\n var tableRow = Immutable('element', 'cells');\n var cellPosition = Immutable('x', 'y');\n var getSpan = function (td, key) {\n var value = parseInt(get$1(td, key), 10);\n return isNaN(value) ? 1 : value;\n };\n var fillout = function (table, x, y, tr, td) {\n var rowspan = getSpan(td, 'rowspan');\n var colspan = getSpan(td, 'colspan');\n var rows = table.rows();\n for (var y2 = y; y2 < y + rowspan; y2++) {\n if (!rows[y2]) {\n rows[y2] = tableRow(deep(tr), []);\n }\n for (var x2 = x; x2 < x + colspan; x2++) {\n var cells = rows[y2].cells();\n cells[x2] = y2 === y && x2 === x ? td : shallow(td);\n }\n }\n };\n var cellExists = function (table, x, y) {\n var rows = table.rows();\n var cells = rows[y] ? rows[y].cells() : [];\n return !!cells[x];\n };\n var skipCellsX = function (table, x, y) {\n while (cellExists(table, x, y)) {\n x++;\n }\n return x;\n };\n var getWidth = function (rows) {\n return foldl(rows, function (acc, row) {\n return row.cells().length > acc ? row.cells().length : acc;\n }, 0);\n };\n var findElementPos = function (table, element) {\n var rows = table.rows();\n for (var y = 0; y < rows.length; y++) {\n var cells = rows[y].cells();\n for (var x = 0; x < cells.length; x++) {\n if (eq(cells[x], element)) {\n return Option.some(cellPosition(x, y));\n }\n }\n }\n return Option.none();\n };\n var extractRows = function (table, sx, sy, ex, ey) {\n var newRows = [];\n var rows = table.rows();\n for (var y = sy; y <= ey; y++) {\n var cells = rows[y].cells();\n var slice = sx < ex ? cells.slice(sx, ex + 1) : cells.slice(ex, sx + 1);\n newRows.push(tableRow(rows[y].element(), slice));\n }\n return newRows;\n };\n var subTable = function (table, startPos, endPos) {\n var sx = startPos.x(), sy = startPos.y();\n var ex = endPos.x(), ey = endPos.y();\n var newRows = sy < ey ? extractRows(table, sx, sy, ex, ey) : extractRows(table, sx, ey, ex, sy);\n return tableModel(table.element(), getWidth(newRows), newRows);\n };\n var createDomTable = function (table, rows) {\n var tableElement = shallow(table.element());\n var tableBody = Element.fromTag('tbody');\n append$1(tableBody, rows);\n append(tableElement, tableBody);\n return tableElement;\n };\n var modelRowsToDomRows = function (table) {\n return map(table.rows(), function (row) {\n var cells = map(row.cells(), function (cell) {\n var td = deep(cell);\n remove(td, 'colspan');\n remove(td, 'rowspan');\n return td;\n });\n var tr = shallow(row.element());\n append$1(tr, cells);\n return tr;\n });\n };\n var fromDom$1 = function (tableElm) {\n var table = tableModel(shallow(tableElm), 0, []);\n each(descendants$1(tableElm, 'tr'), function (tr, y) {\n each(descendants$1(tr, 'td,th'), function (td, x) {\n fillout(table, skipCellsX(table, x, y), y, tr, td);\n });\n });\n return tableModel(table.element(), getWidth(table.rows()), table.rows());\n };\n var toDom = function (table) {\n return createDomTable(table, modelRowsToDomRows(table));\n };\n var subsection = function (table, startElement, endElement) {\n return findElementPos(table, startElement).bind(function (startPos) {\n return findElementPos(table, endElement).map(function (endPos) {\n return subTable(table, startPos, endPos);\n });\n });\n };\n var SimpleTableModel = {\n fromDom: fromDom$1,\n toDom: toDom,\n subsection: subsection\n };\n\n var getRanges = function (selection) {\n var ranges = [];\n if (selection) {\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n }\n return ranges;\n };\n var getSelectedNodes = function (ranges) {\n return bind(ranges, function (range) {\n var node = getSelectedNode(range);\n return node ? [Element.fromDom(node)] : [];\n });\n };\n var hasMultipleRanges = function (selection) {\n return getRanges(selection).length > 1;\n };\n var MultiRange = {\n getRanges: getRanges,\n getSelectedNodes: getSelectedNodes,\n hasMultipleRanges: hasMultipleRanges\n };\n\n var getCellsFromRanges = function (ranges) {\n return filter(MultiRange.getSelectedNodes(ranges), isTableCell);\n };\n var getCellsFromElement = function (elm) {\n return descendants$1(elm, 'td[data-mce-selected],th[data-mce-selected]');\n };\n var getCellsFromElementOrRanges = function (ranges, element) {\n var selectedCells = getCellsFromElement(element);\n var rangeCells = getCellsFromRanges(ranges);\n return selectedCells.length > 0 ? selectedCells : rangeCells;\n };\n var getCellsFromEditor = function (editor) {\n return getCellsFromElementOrRanges(MultiRange.getRanges(editor.selection.getSel()), Element.fromDom(editor.getBody()));\n };\n var TableCellSelection = {\n getCellsFromRanges: getCellsFromRanges,\n getCellsFromElement: getCellsFromElement,\n getCellsFromElementOrRanges: getCellsFromElementOrRanges,\n getCellsFromEditor: getCellsFromEditor\n };\n\n var findParentListContainer = function (parents) {\n return find(parents, function (elm) {\n return name(elm) === 'ul' || name(elm) === 'ol';\n });\n };\n var getFullySelectedListWrappers = function (parents, rng) {\n return find(parents, function (elm) {\n return name(elm) === 'li' && hasAllContentsSelected(elm, rng);\n }).fold(constant([]), function (li) {\n return findParentListContainer(parents).map(function (listCont) {\n return [\n Element.fromTag('li'),\n Element.fromTag(name(listCont))\n ];\n }).getOr([]);\n });\n };\n var wrap$3 = function (innerElm, elms) {\n var wrapped = foldl(elms, function (acc, elm) {\n append(elm, acc);\n return elm;\n }, innerElm);\n return elms.length > 0 ? fromElements([wrapped]) : wrapped;\n };\n var directListWrappers = function (commonAnchorContainer) {\n if (isListItem(commonAnchorContainer)) {\n return parent(commonAnchorContainer).filter(isList).fold(constant([]), function (listElm) {\n return [\n commonAnchorContainer,\n listElm\n ];\n });\n } else {\n return isList(commonAnchorContainer) ? [commonAnchorContainer] : [];\n }\n };\n var getWrapElements = function (rootNode, rng) {\n var commonAnchorContainer = Element.fromDom(rng.commonAncestorContainer);\n var parents = Parents.parentsAndSelf(commonAnchorContainer, rootNode);\n var wrapElements = filter(parents, function (elm) {\n return isInline(elm) || isHeading(elm);\n });\n var listWrappers = getFullySelectedListWrappers(parents, rng);\n var allWrappers = wrapElements.concat(listWrappers.length ? listWrappers : directListWrappers(commonAnchorContainer));\n return map(allWrappers, shallow);\n };\n var emptyFragment = function () {\n return fromElements([]);\n };\n var getFragmentFromRange = function (rootNode, rng) {\n return wrap$3(Element.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng));\n };\n var getParentTable = function (rootElm, cell) {\n return ancestor$1(cell, 'table', curry(eq, rootElm));\n };\n var getTableFragment = function (rootNode, selectedTableCells) {\n return getParentTable(rootNode, selectedTableCells[0]).bind(function (tableElm) {\n var firstCell = selectedTableCells[0];\n var lastCell = selectedTableCells[selectedTableCells.length - 1];\n var fullTableModel = SimpleTableModel.fromDom(tableElm);\n return SimpleTableModel.subsection(fullTableModel, firstCell, lastCell).map(function (sectionedTableModel) {\n return fromElements([SimpleTableModel.toDom(sectionedTableModel)]);\n });\n }).getOrThunk(emptyFragment);\n };\n var getSelectionFragment = function (rootNode, ranges) {\n return ranges.length > 0 && ranges[0].collapsed ? emptyFragment() : getFragmentFromRange(rootNode, ranges[0]);\n };\n var read$2 = function (rootNode, ranges) {\n var selectedCells = TableCellSelection.getCellsFromElementOrRanges(ranges, rootNode);\n return selectedCells.length > 0 ? getTableFragment(rootNode, selectedCells) : getSelectionFragment(rootNode, ranges);\n };\n var FragmentReader = { read: read$2 };\n\n var getTextContent = function (editor) {\n return Option.from(editor.selection.getRng()).map(function (rng) {\n var bin = editor.dom.add(editor.getBody(), 'div', {\n 'data-mce-bogus': 'all',\n 'style': 'overflow: hidden; opacity: 0;'\n }, rng.cloneContents());\n var text = Zwsp.trim(bin.innerText);\n editor.dom.remove(bin);\n return text;\n }).getOr('');\n };\n var getHtmlContent = function (editor, args) {\n var rng = editor.selection.getRng(), tmpElm = editor.dom.create('body');\n var sel = editor.selection.getSel();\n var fragment;\n var ranges = EventProcessRanges.processRanges(editor, MultiRange.getRanges(sel));\n fragment = args.contextual ? FragmentReader.read(Element.fromDom(editor.getBody()), ranges).dom() : rng.cloneContents();\n if (fragment) {\n tmpElm.appendChild(fragment);\n }\n return editor.selection.serializer.serialize(tmpElm, args);\n };\n var getContent$1 = function (editor, args) {\n if (args === void 0) {\n args = {};\n }\n args.get = true;\n args.format = args.format || 'html';\n args.selection = true;\n args = editor.fire('BeforeGetContent', args);\n if (args.isDefaultPrevented()) {\n editor.fire('GetContent', args);\n return args.content;\n }\n if (args.format === 'text') {\n return getTextContent(editor);\n } else {\n args.getInner = true;\n var content = getHtmlContent(editor, args);\n if (args.format === 'tree') {\n return content;\n } else {\n args.content = editor.selection.isCollapsed() ? '' : content;\n editor.fire('GetContent', args);\n return args.content;\n }\n }\n };\n var GetSelectionContent = { getContent: getContent$1 };\n\n var findParent$1 = function (node, rootNode, predicate) {\n while (node && node !== rootNode) {\n if (predicate(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var hasParent = function (node, rootNode, predicate) {\n return findParent$1(node, rootNode, predicate) !== null;\n };\n var hasParentWithName = function (node, rootNode, name) {\n return hasParent(node, rootNode, function (node) {\n return node.nodeName === name;\n });\n };\n var isTable$3 = function (node) {\n return node && node.nodeName === 'TABLE';\n };\n var isTableCell$3 = function (node) {\n return node && /^(TD|TH|CAPTION)$/.test(node.nodeName);\n };\n var isCeFalseCaretContainer = function (node, rootNode) {\n return isCaretContainer(node) && hasParent(node, rootNode, isCaretNode) === false;\n };\n var hasBrBeforeAfter = function (dom, node, left) {\n var walker = new TreeWalker(node, dom.getParent(node.parentNode, dom.isBlock) || dom.getRoot());\n while (node = walker[left ? 'prev' : 'next']()) {\n if (NodeType.isBr(node)) {\n return true;\n }\n }\n };\n var isPrevNode = function (node, name) {\n return node.previousSibling && node.previousSibling.nodeName === name;\n };\n var hasContentEditableFalseParent = function (body, node) {\n while (node && node !== body) {\n if (NodeType.isContentEditableFalse(node)) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n };\n var findTextNodeRelative = function (dom, isAfterNode, collapsed, left, startNode) {\n var lastInlineElement;\n var body = dom.getRoot();\n var node;\n var nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n var parentBlockContainer = dom.getParent(startNode.parentNode, dom.isBlock) || body;\n if (left && NodeType.isBr(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) {\n return Option.some(CaretPosition(startNode.parentNode, dom.nodeIndex(startNode)));\n }\n var walker = new TreeWalker(startNode, parentBlockContainer);\n while (node = walker[left ? 'prev' : 'next']()) {\n if (dom.getContentEditableParent(node) === 'false' || isCeFalseCaretContainer(node, body)) {\n return Option.none();\n }\n if (NodeType.isText(node) && node.nodeValue.length > 0) {\n if (hasParentWithName(node, body, 'A') === false) {\n return Option.some(CaretPosition(node, left ? node.nodeValue.length : 0));\n }\n return Option.none();\n }\n if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\n return Option.none();\n }\n lastInlineElement = node;\n }\n if (collapsed && lastInlineElement) {\n return Option.some(CaretPosition(lastInlineElement, 0));\n }\n return Option.none();\n };\n var normalizeEndPoint = function (dom, collapsed, start, rng) {\n var container, offset;\n var body = dom.getRoot();\n var node, nonEmptyElementsMap;\n var directionLeft, isAfterNode, normalized = false;\n container = rng[(start ? 'start' : 'end') + 'Container'];\n offset = rng[(start ? 'start' : 'end') + 'Offset'];\n isAfterNode = NodeType.isElement(container) && offset === container.childNodes.length;\n nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n directionLeft = start;\n if (isCaretContainer(container)) {\n return Option.none();\n }\n if (NodeType.isElement(container) && offset > container.childNodes.length - 1) {\n directionLeft = false;\n }\n if (NodeType.isDocument(container)) {\n container = body;\n offset = 0;\n }\n if (container === body) {\n if (directionLeft) {\n node = container.childNodes[offset > 0 ? offset - 1 : 0];\n if (node) {\n if (isCaretContainer(node)) {\n return Option.none();\n }\n if (nonEmptyElementsMap[node.nodeName] || isTable$3(node)) {\n return Option.none();\n }\n }\n }\n if (container.hasChildNodes()) {\n offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1);\n container = container.childNodes[offset];\n offset = NodeType.isText(container) && isAfterNode ? container.data.length : 0;\n if (!collapsed && container === body.lastChild && isTable$3(container)) {\n return Option.none();\n }\n if (hasContentEditableFalseParent(body, container) || isCaretContainer(container)) {\n return Option.none();\n }\n if (container.hasChildNodes() && isTable$3(container) === false) {\n node = container;\n var walker = new TreeWalker(container, body);\n do {\n if (NodeType.isContentEditableFalse(node) || isCaretContainer(node)) {\n normalized = false;\n break;\n }\n if (NodeType.isText(node) && node.nodeValue.length > 0) {\n offset = directionLeft ? 0 : node.nodeValue.length;\n container = node;\n normalized = true;\n break;\n }\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] && !isTableCell$3(node)) {\n offset = dom.nodeIndex(node);\n container = node.parentNode;\n if (!directionLeft) {\n offset++;\n }\n normalized = true;\n break;\n }\n } while (node = directionLeft ? walker.next() : walker.prev());\n }\n }\n }\n if (collapsed) {\n if (NodeType.isText(container) && offset === 0) {\n findTextNodeRelative(dom, isAfterNode, collapsed, true, container).each(function (pos) {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n if (NodeType.isElement(container)) {\n node = container.childNodes[offset];\n if (!node) {\n node = container.childNodes[offset - 1];\n }\n if (node && NodeType.isBr(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) {\n findTextNodeRelative(dom, isAfterNode, collapsed, true, node).each(function (pos) {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n }\n }\n if (directionLeft && !collapsed && NodeType.isText(container) && offset === container.nodeValue.length) {\n findTextNodeRelative(dom, isAfterNode, collapsed, false, container).each(function (pos) {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n return normalized ? Option.some(CaretPosition(container, offset)) : Option.none();\n };\n var normalize$2 = function (dom, rng) {\n var collapsed = rng.collapsed, normRng = rng.cloneRange();\n var startPos = CaretPosition.fromRangeStart(rng);\n normalizeEndPoint(dom, collapsed, true, normRng).each(function (pos) {\n if (!collapsed || !CaretPosition.isAbove(startPos, pos)) {\n normRng.setStart(pos.container(), pos.offset());\n }\n });\n if (!collapsed) {\n normalizeEndPoint(dom, collapsed, false, normRng).each(function (pos) {\n normRng.setEnd(pos.container(), pos.offset());\n });\n }\n if (collapsed) {\n normRng.collapse(true);\n }\n return RangeCompare.isEq(rng, normRng) ? Option.none() : Option.some(normRng);\n };\n var NormalizeRange = { normalize: normalize$2 };\n\n var prependData = function (target, data) {\n target.insertData(0, data);\n };\n var removeEmpty = function (text) {\n if (text.dom().length === 0) {\n remove$1(text);\n return Option.none();\n }\n return Option.some(text);\n };\n var rngSetContent = function (rng, fragment) {\n var firstChild = Option.from(fragment.firstChild).map(Element.fromDom);\n var lastChild = Option.from(fragment.lastChild).map(Element.fromDom);\n rng.deleteContents();\n rng.insertNode(fragment);\n var prevText = firstChild.bind(prevSibling).filter(isText$1).bind(removeEmpty);\n var nextText = lastChild.bind(nextSibling).filter(isText$1).bind(removeEmpty);\n lift2(prevText, firstChild.filter(isText$1), function (prev, start) {\n prependData(start.dom(), prev.dom().data);\n remove$1(prev);\n });\n lift2(nextText, lastChild.filter(isText$1), function (next, end) {\n var oldLength = end.dom().length;\n end.dom().appendData(next.dom().data);\n rng.setEnd(end.dom(), oldLength);\n remove$1(next);\n });\n rng.collapse(false);\n };\n var setupArgs = function (args, content) {\n args = args || { format: 'html' };\n args.set = true;\n args.selection = true;\n args.content = content;\n return args;\n };\n var setContent$1 = function (editor, content, args) {\n args = setupArgs(args, content);\n if (!args.no_events) {\n args = editor.fire('BeforeSetContent', args);\n if (args.isDefaultPrevented()) {\n editor.fire('SetContent', args);\n return;\n }\n }\n var rng = editor.selection.getRng();\n rngSetContent(rng, rng.createContextualFragment(args.content));\n editor.selection.setRng(rng);\n ScrollIntoView.scrollRangeIntoView(editor, rng);\n if (!args.no_events) {\n editor.fire('SetContent', args);\n }\n };\n var SetSelectionContent = { setContent: setContent$1 };\n\n var getEndpointElement = function (root, rng, start, real, resolve) {\n var container = start ? rng.startContainer : rng.endContainer;\n var offset = start ? rng.startOffset : rng.endOffset;\n return Option.from(container).map(Element.fromDom).map(function (elm) {\n return !real || !rng.collapsed ? child(elm, resolve(elm, offset)).getOr(elm) : elm;\n }).bind(function (elm) {\n return isElement$1(elm) ? Option.some(elm) : parent(elm);\n }).map(function (elm) {\n return elm.dom();\n }).getOr(root);\n };\n var getStart$2 = function (root, rng, real) {\n return getEndpointElement(root, rng, true, real, function (elm, offset) {\n return Math.min(childNodesCount(elm), offset);\n });\n };\n var getEnd = function (root, rng, real) {\n return getEndpointElement(root, rng, false, real, function (elm, offset) {\n return offset > 0 ? offset - 1 : offset;\n });\n };\n var skipEmptyTextNodes = function (node, forwards) {\n var orig = node;\n while (node && NodeType.isText(node) && node.length === 0) {\n node = forwards ? node.nextSibling : node.previousSibling;\n }\n return node || orig;\n };\n var getNode$1 = function (root, rng) {\n var elm, startContainer, endContainer, startOffset, endOffset;\n if (!rng) {\n return root;\n }\n startContainer = rng.startContainer;\n endContainer = rng.endContainer;\n startOffset = rng.startOffset;\n endOffset = rng.endOffset;\n elm = rng.commonAncestorContainer;\n if (!rng.collapsed) {\n if (startContainer === endContainer) {\n if (endOffset - startOffset < 2) {\n if (startContainer.hasChildNodes()) {\n elm = startContainer.childNodes[startOffset];\n }\n }\n }\n if (startContainer.nodeType === 3 && endContainer.nodeType === 3) {\n if (startContainer.length === startOffset) {\n startContainer = skipEmptyTextNodes(startContainer.nextSibling, true);\n } else {\n startContainer = startContainer.parentNode;\n }\n if (endOffset === 0) {\n endContainer = skipEmptyTextNodes(endContainer.previousSibling, false);\n } else {\n endContainer = endContainer.parentNode;\n }\n if (startContainer && startContainer === endContainer) {\n return startContainer;\n }\n }\n }\n if (elm && elm.nodeType === 3) {\n return elm.parentNode;\n }\n return elm;\n };\n var getSelectedBlocks = function (dom, rng, startElm, endElm) {\n var node, root;\n var selectedBlocks = [];\n root = dom.getRoot();\n startElm = dom.getParent(startElm || getStart$2(root, rng, rng.collapsed), dom.isBlock);\n endElm = dom.getParent(endElm || getEnd(root, rng, rng.collapsed), dom.isBlock);\n if (startElm && startElm !== root) {\n selectedBlocks.push(startElm);\n }\n if (startElm && endElm && startElm !== endElm) {\n node = startElm;\n var walker = new TreeWalker(startElm, root);\n while ((node = walker.next()) && node !== endElm) {\n if (dom.isBlock(node)) {\n selectedBlocks.push(node);\n }\n }\n }\n if (endElm && startElm !== endElm && endElm !== root) {\n selectedBlocks.push(endElm);\n }\n return selectedBlocks;\n };\n var select$1 = function (dom, node, content) {\n return Option.from(node).map(function (node) {\n var idx = dom.nodeIndex(node);\n var rng = dom.createRng();\n rng.setStart(node.parentNode, idx);\n rng.setEnd(node.parentNode, idx + 1);\n if (content) {\n moveEndPoint$1(dom, rng, node, true);\n moveEndPoint$1(dom, rng, node, false);\n }\n return rng;\n });\n };\n\n var deleteFromCallbackMap = function (callbackMap, selector, callback) {\n if (callbackMap && callbackMap.hasOwnProperty(selector)) {\n var newCallbacks = filter(callbackMap[selector], function (cb) {\n return cb !== callback;\n });\n if (newCallbacks.length === 0) {\n delete callbackMap[selector];\n } else {\n callbackMap[selector] = newCallbacks;\n }\n }\n };\n function SelectorChanged (dom, editor) {\n var selectorChangedData;\n var currentSelectors;\n return {\n selectorChangedWithUnbind: function (selector, callback) {\n if (!selectorChangedData) {\n selectorChangedData = {};\n currentSelectors = {};\n editor.on('NodeChange', function (e) {\n var node = e.element, parents = dom.getParents(node, null, dom.getRoot()), matchedSelectors = {};\n Tools.each(selectorChangedData, function (callbacks, selector) {\n Tools.each(parents, function (node) {\n if (dom.is(node, selector)) {\n if (!currentSelectors[selector]) {\n Tools.each(callbacks, function (callback) {\n callback(true, {\n node: node,\n selector: selector,\n parents: parents\n });\n });\n currentSelectors[selector] = callbacks;\n }\n matchedSelectors[selector] = callbacks;\n return false;\n }\n });\n });\n Tools.each(currentSelectors, function (callbacks, selector) {\n if (!matchedSelectors[selector]) {\n delete currentSelectors[selector];\n Tools.each(callbacks, function (callback) {\n callback(false, {\n node: node,\n selector: selector,\n parents: parents\n });\n });\n }\n });\n });\n }\n if (!selectorChangedData[selector]) {\n selectorChangedData[selector] = [];\n }\n selectorChangedData[selector].push(callback);\n return {\n unbind: function () {\n deleteFromCallbackMap(selectorChangedData, selector, callback);\n deleteFromCallbackMap(currentSelectors, selector, callback);\n }\n };\n }\n };\n }\n\n var isNativeIeSelection = function (rng) {\n return !!rng.select;\n };\n var isAttachedToDom = function (node) {\n return !!(node && node.ownerDocument) && contains$2(Element.fromDom(node.ownerDocument), Element.fromDom(node));\n };\n var isValidRange = function (rng) {\n if (!rng) {\n return false;\n } else if (isNativeIeSelection(rng)) {\n return true;\n } else {\n return isAttachedToDom(rng.startContainer) && isAttachedToDom(rng.endContainer);\n }\n };\n var Selection$1 = function (dom, win, serializer, editor) {\n var bookmarkManager;\n var controlSelection;\n var selectedRange;\n var explicitRange;\n var selectorChangedWithUnbind = SelectorChanged(dom, editor).selectorChangedWithUnbind;\n var setCursorLocation = function (node, offset) {\n var rng = dom.createRng();\n if (!node) {\n moveEndPoint$1(dom, rng, editor.getBody(), true);\n setRng(rng);\n } else {\n rng.setStart(node, offset);\n rng.setEnd(node, offset);\n setRng(rng);\n collapse(false);\n }\n };\n var getContent = function (args) {\n return GetSelectionContent.getContent(editor, args);\n };\n var setContent = function (content, args) {\n return SetSelectionContent.setContent(editor, content, args);\n };\n var getStart = function (real) {\n return getStart$2(editor.getBody(), getRng(), real);\n };\n var getEnd$1 = function (real) {\n return getEnd(editor.getBody(), getRng(), real);\n };\n var getBookmark = function (type, normalized) {\n return bookmarkManager.getBookmark(type, normalized);\n };\n var moveToBookmark = function (bookmark) {\n return bookmarkManager.moveToBookmark(bookmark);\n };\n var select = function (node, content) {\n select$1(dom, node, content).each(setRng);\n return node;\n };\n var isCollapsed = function () {\n var rng = getRng(), sel = getSel();\n if (!rng || rng.item) {\n return false;\n }\n if (rng.compareEndPoints) {\n return rng.compareEndPoints('StartToEnd', rng) === 0;\n }\n return !sel || rng.collapsed;\n };\n var collapse = function (toStart) {\n var rng = getRng();\n rng.collapse(!!toStart);\n setRng(rng);\n };\n var getSel = function () {\n return win.getSelection ? win.getSelection() : win.document.selection;\n };\n var getRng = function () {\n var selection, rng, elm, doc;\n var tryCompareBoundaryPoints = function (how, sourceRange, destinationRange) {\n try {\n return sourceRange.compareBoundaryPoints(how, destinationRange);\n } catch (ex) {\n return -1;\n }\n };\n if (!win) {\n return null;\n }\n doc = win.document;\n if (typeof doc === 'undefined' || doc === null) {\n return null;\n }\n if (editor.bookmark !== undefined && EditorFocus.hasFocus(editor) === false) {\n var bookmark = SelectionBookmark.getRng(editor);\n if (bookmark.isSome()) {\n return bookmark.map(function (r) {\n return EventProcessRanges.processRanges(editor, [r])[0];\n }).getOr(doc.createRange());\n }\n }\n try {\n if ((selection = getSel()) && !NodeType.isRestrictedNode(selection.anchorNode)) {\n if (selection.rangeCount > 0) {\n rng = selection.getRangeAt(0);\n } else {\n rng = selection.createRange ? selection.createRange() : doc.createRange();\n }\n }\n } catch (ex) {\n }\n rng = EventProcessRanges.processRanges(editor, [rng])[0];\n if (!rng) {\n rng = doc.createRange ? doc.createRange() : doc.body.createTextRange();\n }\n if (rng.setStart && rng.startContainer.nodeType === 9 && rng.collapsed) {\n elm = dom.getRoot();\n rng.setStart(elm, 0);\n rng.setEnd(elm, 0);\n }\n if (selectedRange && explicitRange) {\n if (tryCompareBoundaryPoints(rng.START_TO_START, rng, selectedRange) === 0 && tryCompareBoundaryPoints(rng.END_TO_END, rng, selectedRange) === 0) {\n rng = explicitRange;\n } else {\n selectedRange = null;\n explicitRange = null;\n }\n }\n return rng;\n };\n var setRng = function (rng, forward) {\n var sel, node, evt;\n if (!isValidRange(rng)) {\n return;\n }\n var ieRange = isNativeIeSelection(rng) ? rng : null;\n if (ieRange) {\n explicitRange = null;\n try {\n ieRange.select();\n } catch (ex) {\n }\n return;\n }\n sel = getSel();\n evt = editor.fire('SetSelectionRange', {\n range: rng,\n forward: forward\n });\n rng = evt.range;\n if (sel) {\n explicitRange = rng;\n try {\n sel.removeAllRanges();\n sel.addRange(rng);\n } catch (ex) {\n }\n if (forward === false && sel.extend) {\n sel.collapse(rng.endContainer, rng.endOffset);\n sel.extend(rng.startContainer, rng.startOffset);\n }\n selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\n }\n if (!rng.collapsed && rng.startContainer === rng.endContainer && sel.setBaseAndExtent && !Env.ie) {\n if (rng.endOffset - rng.startOffset < 2) {\n if (rng.startContainer.hasChildNodes()) {\n node = rng.startContainer.childNodes[rng.startOffset];\n if (node && node.tagName === 'IMG') {\n sel.setBaseAndExtent(rng.startContainer, rng.startOffset, rng.endContainer, rng.endOffset);\n if (sel.anchorNode !== rng.startContainer || sel.focusNode !== rng.endContainer) {\n sel.setBaseAndExtent(node, 0, node, 1);\n }\n }\n }\n }\n }\n editor.fire('AfterSetSelectionRange', {\n range: rng,\n forward: forward\n });\n };\n var setNode = function (elm) {\n setContent(dom.getOuterHTML(elm));\n return elm;\n };\n var getNode = function () {\n return getNode$1(editor.getBody(), getRng());\n };\n var getSelectedBlocks$1 = function (startElm, endElm) {\n return getSelectedBlocks(dom, getRng(), startElm, endElm);\n };\n var isForward = function () {\n var sel = getSel();\n var anchorRange, focusRange;\n if (!sel || !sel.anchorNode || !sel.focusNode) {\n return true;\n }\n anchorRange = dom.createRng();\n anchorRange.setStart(sel.anchorNode, sel.anchorOffset);\n anchorRange.collapse(true);\n focusRange = dom.createRng();\n focusRange.setStart(sel.focusNode, sel.focusOffset);\n focusRange.collapse(true);\n return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0;\n };\n var normalize = function () {\n var rng = getRng();\n var sel = getSel();\n if (!MultiRange.hasMultipleRanges(sel) && hasAnyRanges(editor)) {\n var normRng = NormalizeRange.normalize(dom, rng);\n normRng.each(function (normRng) {\n setRng(normRng, isForward());\n });\n return normRng.getOr(rng);\n }\n return rng;\n };\n var selectorChanged = function (selector, callback) {\n selectorChangedWithUnbind(selector, callback);\n return exports;\n };\n var getScrollContainer = function () {\n var scrollContainer;\n var node = dom.getRoot();\n while (node && node.nodeName !== 'BODY') {\n if (node.scrollHeight > node.clientHeight) {\n scrollContainer = node;\n break;\n }\n node = node.parentNode;\n }\n return scrollContainer;\n };\n var scrollIntoView = function (elm, alignToTop) {\n return ScrollIntoView.scrollElementIntoView(editor, elm, alignToTop);\n };\n var placeCaretAt = function (clientX, clientY) {\n return setRng(CaretRangeFromPoint.fromPoint(clientX, clientY, editor.getDoc()));\n };\n var getBoundingClientRect = function () {\n var rng = getRng();\n return rng.collapsed ? CaretPosition$1.fromRangeStart(rng).getClientRects()[0] : rng.getBoundingClientRect();\n };\n var destroy = function () {\n win = selectedRange = explicitRange = null;\n controlSelection.destroy();\n };\n var exports = {\n bookmarkManager: null,\n controlSelection: null,\n dom: dom,\n win: win,\n serializer: serializer,\n editor: editor,\n collapse: collapse,\n setCursorLocation: setCursorLocation,\n getContent: getContent,\n setContent: setContent,\n getBookmark: getBookmark,\n moveToBookmark: moveToBookmark,\n select: select,\n isCollapsed: isCollapsed,\n isForward: isForward,\n setNode: setNode,\n getNode: getNode,\n getSel: getSel,\n setRng: setRng,\n getRng: getRng,\n getStart: getStart,\n getEnd: getEnd$1,\n getSelectedBlocks: getSelectedBlocks$1,\n normalize: normalize,\n selectorChanged: selectorChanged,\n selectorChangedWithUnbind: selectorChangedWithUnbind,\n getScrollContainer: getScrollContainer,\n scrollIntoView: scrollIntoView,\n placeCaretAt: placeCaretAt,\n getBoundingClientRect: getBoundingClientRect,\n destroy: destroy\n };\n bookmarkManager = BookmarkManager$1(exports);\n controlSelection = ControlSelection(exports, editor);\n exports.bookmarkManager = bookmarkManager;\n exports.controlSelection = controlSelection;\n return exports;\n };\n\n var isText$8 = NodeType.isText;\n var startsWithCaretContainer$1 = function (node) {\n return isText$8(node) && node.data[0] === Zwsp.ZWSP;\n };\n var endsWithCaretContainer$1 = function (node) {\n return isText$8(node) && node.data[node.data.length - 1] === Zwsp.ZWSP;\n };\n var createZwsp = function (node) {\n return node.ownerDocument.createTextNode(Zwsp.ZWSP);\n };\n var insertBefore = function (node) {\n if (isText$8(node.previousSibling)) {\n if (endsWithCaretContainer$1(node.previousSibling)) {\n return node.previousSibling;\n } else {\n node.previousSibling.appendData(Zwsp.ZWSP);\n return node.previousSibling;\n }\n } else if (isText$8(node)) {\n if (startsWithCaretContainer$1(node)) {\n return node;\n } else {\n node.insertData(0, Zwsp.ZWSP);\n return node;\n }\n } else {\n var newNode = createZwsp(node);\n node.parentNode.insertBefore(newNode, node);\n return newNode;\n }\n };\n var insertAfter = function (node) {\n if (isText$8(node.nextSibling)) {\n if (startsWithCaretContainer$1(node.nextSibling)) {\n return node.nextSibling;\n } else {\n node.nextSibling.insertData(0, Zwsp.ZWSP);\n return node.nextSibling;\n }\n } else if (isText$8(node)) {\n if (endsWithCaretContainer$1(node)) {\n return node;\n } else {\n node.appendData(Zwsp.ZWSP);\n return node;\n }\n } else {\n var newNode = createZwsp(node);\n if (node.nextSibling) {\n node.parentNode.insertBefore(newNode, node.nextSibling);\n } else {\n node.parentNode.appendChild(newNode);\n }\n return newNode;\n }\n };\n var insertInline$1 = function (before, node) {\n return before ? insertBefore(node) : insertAfter(node);\n };\n var insertInlineBefore = curry(insertInline$1, true);\n var insertInlineAfter = curry(insertInline$1, false);\n\n var insertInlinePos = function (pos, before) {\n if (NodeType.isText(pos.container())) {\n return insertInline$1(before, pos.container());\n } else {\n return insertInline$1(before, pos.getNode());\n }\n };\n var isPosCaretContainer = function (pos, caret) {\n var caretNode = caret.get();\n return caretNode && pos.container() === caretNode && isCaretContainerInline(caretNode);\n };\n var renderCaret = function (caret, location) {\n return location.fold(function (element) {\n CaretContainerRemove.remove(caret.get());\n var text = insertInlineBefore(element);\n caret.set(text);\n return Option.some(CaretPosition$1(text, text.length - 1));\n }, function (element) {\n return CaretFinder.firstPositionIn(element).map(function (pos) {\n if (!isPosCaretContainer(pos, caret)) {\n CaretContainerRemove.remove(caret.get());\n var text = insertInlinePos(pos, true);\n caret.set(text);\n return CaretPosition$1(text, 1);\n } else {\n return CaretPosition$1(caret.get(), 1);\n }\n });\n }, function (element) {\n return CaretFinder.lastPositionIn(element).map(function (pos) {\n if (!isPosCaretContainer(pos, caret)) {\n CaretContainerRemove.remove(caret.get());\n var text = insertInlinePos(pos, false);\n caret.set(text);\n return CaretPosition$1(text, text.length - 1);\n } else {\n return CaretPosition$1(caret.get(), caret.get().length - 1);\n }\n });\n }, function (element) {\n CaretContainerRemove.remove(caret.get());\n var text = insertInlineAfter(element);\n caret.set(text);\n return Option.some(CaretPosition$1(text, 1));\n });\n };\n var BoundaryCaret = { renderCaret: renderCaret };\n\n var strongRtl = /[\\u0591-\\u07FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFC]/;\n var hasStrongRtl = function (text) {\n return strongRtl.test(text);\n };\n\n var isInlineTarget = function (editor, elm) {\n return is(Element.fromDom(elm), Settings.getInlineBoundarySelector(editor));\n };\n var isRtl$1 = function (element) {\n return DOMUtils$1.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl(element.textContent);\n };\n var findInlineParents = function (isInlineTarget, rootNode, pos) {\n return filter(DOMUtils$1.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);\n };\n var findRootInline = function (isInlineTarget, rootNode, pos) {\n var parents = findInlineParents(isInlineTarget, rootNode, pos);\n return Option.from(parents[parents.length - 1]);\n };\n var hasSameParentBlock = function (rootNode, node1, node2) {\n var block1 = getParentBlock(node1, rootNode);\n var block2 = getParentBlock(node2, rootNode);\n return block1 && block1 === block2;\n };\n var isAtZwsp = function (pos) {\n return isBeforeInline(pos) || isAfterInline(pos);\n };\n var normalizePosition = function (forward, pos) {\n if (!pos) {\n return pos;\n }\n var container = pos.container(), offset = pos.offset();\n if (forward) {\n if (isCaretContainerInline(container)) {\n if (NodeType.isText(container.nextSibling)) {\n return CaretPosition$1(container.nextSibling, 0);\n } else {\n return CaretPosition$1.after(container);\n }\n } else {\n return isBeforeInline(pos) ? CaretPosition$1(container, offset + 1) : pos;\n }\n } else {\n if (isCaretContainerInline(container)) {\n if (NodeType.isText(container.previousSibling)) {\n return CaretPosition$1(container.previousSibling, container.previousSibling.data.length);\n } else {\n return CaretPosition$1.before(container);\n }\n } else {\n return isAfterInline(pos) ? CaretPosition$1(container, offset - 1) : pos;\n }\n }\n };\n var normalizeForwards = curry(normalizePosition, true);\n var normalizeBackwards = curry(normalizePosition, false);\n var InlineUtils = {\n isInlineTarget: isInlineTarget,\n findRootInline: findRootInline,\n isRtl: isRtl$1,\n isAtZwsp: isAtZwsp,\n normalizePosition: normalizePosition,\n normalizeForwards: normalizeForwards,\n normalizeBackwards: normalizeBackwards,\n hasSameParentBlock: hasSameParentBlock\n };\n\n var evaluateUntil = function (fns, args) {\n for (var i = 0; i < fns.length; i++) {\n var result = fns[i].apply(null, args);\n if (result.isSome()) {\n return result;\n }\n }\n return Option.none();\n };\n var LazyEvaluator = { evaluateUntil: evaluateUntil };\n\n var Location = Adt.generate([\n { before: ['element'] },\n { start: ['element'] },\n { end: ['element'] },\n { after: ['element'] }\n ]);\n var rescope = function (rootNode, node) {\n var parentBlock = getParentBlock(node, rootNode);\n return parentBlock ? parentBlock : rootNode;\n };\n var before$4 = function (isInlineTarget, rootNode, pos) {\n var nPos = InlineUtils.normalizeForwards(pos);\n var scope = rescope(rootNode, nPos.container());\n return InlineUtils.findRootInline(isInlineTarget, scope, nPos).fold(function () {\n return CaretFinder.nextPosition(scope, nPos).bind(curry(InlineUtils.findRootInline, isInlineTarget, scope)).map(function (inline) {\n return Location.before(inline);\n });\n }, Option.none);\n };\n var isNotInsideFormatCaretContainer = function (rootNode, elm) {\n return getParentCaretContainer(rootNode, elm) === null;\n };\n var findInsideRootInline = function (isInlineTarget, rootNode, pos) {\n return InlineUtils.findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode));\n };\n var start$1 = function (isInlineTarget, rootNode, pos) {\n var nPos = InlineUtils.normalizeBackwards(pos);\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) {\n var prevPos = CaretFinder.prevPosition(inline, nPos);\n return prevPos.isNone() ? Option.some(Location.start(inline)) : Option.none();\n });\n };\n var end = function (isInlineTarget, rootNode, pos) {\n var nPos = InlineUtils.normalizeForwards(pos);\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) {\n var nextPos = CaretFinder.nextPosition(inline, nPos);\n return nextPos.isNone() ? Option.some(Location.end(inline)) : Option.none();\n });\n };\n var after$3 = function (isInlineTarget, rootNode, pos) {\n var nPos = InlineUtils.normalizeBackwards(pos);\n var scope = rescope(rootNode, nPos.container());\n return InlineUtils.findRootInline(isInlineTarget, scope, nPos).fold(function () {\n return CaretFinder.prevPosition(scope, nPos).bind(curry(InlineUtils.findRootInline, isInlineTarget, scope)).map(function (inline) {\n return Location.after(inline);\n });\n }, Option.none);\n };\n var isValidLocation = function (location) {\n return InlineUtils.isRtl(getElement(location)) === false;\n };\n var readLocation = function (isInlineTarget, rootNode, pos) {\n var location = LazyEvaluator.evaluateUntil([\n before$4,\n start$1,\n end,\n after$3\n ], [\n isInlineTarget,\n rootNode,\n pos\n ]);\n return location.filter(isValidLocation);\n };\n var getElement = function (location) {\n return location.fold(identity, identity, identity, identity);\n };\n var getName = function (location) {\n return location.fold(constant('before'), constant('start'), constant('end'), constant('after'));\n };\n var outside = function (location) {\n return location.fold(Location.before, Location.before, Location.after, Location.after);\n };\n var inside = function (location) {\n return location.fold(Location.start, Location.start, Location.end, Location.end);\n };\n var isEq$5 = function (location1, location2) {\n return getName(location1) === getName(location2) && getElement(location1) === getElement(location2);\n };\n var betweenInlines = function (forward, isInlineTarget, rootNode, from, to, location) {\n return lift2(InlineUtils.findRootInline(isInlineTarget, rootNode, from), InlineUtils.findRootInline(isInlineTarget, rootNode, to), function (fromInline, toInline) {\n if (fromInline !== toInline && InlineUtils.hasSameParentBlock(rootNode, fromInline, toInline)) {\n return Location.after(forward ? fromInline : toInline);\n } else {\n return location;\n }\n }).getOr(location);\n };\n var skipNoMovement = function (fromLocation, toLocation) {\n return fromLocation.fold(constant(true), function (fromLocation) {\n return !isEq$5(fromLocation, toLocation);\n });\n };\n var findLocationTraverse = function (forward, isInlineTarget, rootNode, fromLocation, pos) {\n var from = InlineUtils.normalizePosition(forward, pos);\n var to = CaretFinder.fromPosition(forward, rootNode, from).map(curry(InlineUtils.normalizePosition, forward));\n var location = to.fold(function () {\n return fromLocation.map(outside);\n }, function (to) {\n return readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation));\n });\n return location.filter(isValidLocation);\n };\n var findLocationSimple = function (forward, location) {\n if (forward) {\n return location.fold(compose(Option.some, Location.start), Option.none, compose(Option.some, Location.after), Option.none);\n } else {\n return location.fold(Option.none, compose(Option.some, Location.before), Option.none, compose(Option.some, Location.end));\n }\n };\n var findLocation = function (forward, isInlineTarget, rootNode, pos) {\n var from = InlineUtils.normalizePosition(forward, pos);\n var fromLocation = readLocation(isInlineTarget, rootNode, from);\n return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(function () {\n return findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos);\n });\n };\n var BoundaryLocation = {\n readLocation: readLocation,\n findLocation: findLocation,\n prevLocation: curry(findLocation, false),\n nextLocation: curry(findLocation, true),\n getElement: getElement,\n outside: outside,\n inside: inside\n };\n\n var hasSelectionModifyApi = function (editor) {\n return isFunction(editor.selection.getSel().modify);\n };\n var moveRel = function (forward, selection, pos) {\n var delta = forward ? 1 : -1;\n selection.setRng(CaretPosition$1(pos.container(), pos.offset() + delta).toRange());\n selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word');\n return true;\n };\n var moveByWord = function (forward, editor) {\n var rng = editor.selection.getRng();\n var pos = forward ? CaretPosition$1.fromRangeEnd(rng) : CaretPosition$1.fromRangeStart(rng);\n if (!hasSelectionModifyApi(editor)) {\n return false;\n } else if (forward && isBeforeInline(pos)) {\n return moveRel(true, editor.selection, pos);\n } else if (!forward && isAfterInline(pos)) {\n return moveRel(false, editor.selection, pos);\n } else {\n return false;\n }\n };\n var WordSelection = {\n hasSelectionModifyApi: hasSelectionModifyApi,\n moveByWord: moveByWord\n };\n\n var setCaretPosition = function (editor, pos) {\n var rng = editor.dom.createRng();\n rng.setStart(pos.container(), pos.offset());\n rng.setEnd(pos.container(), pos.offset());\n editor.selection.setRng(rng);\n };\n var isFeatureEnabled = function (editor) {\n return editor.settings.inline_boundaries !== false;\n };\n var setSelected = function (state, elm) {\n if (state) {\n elm.setAttribute('data-mce-selected', 'inline-boundary');\n } else {\n elm.removeAttribute('data-mce-selected');\n }\n };\n var renderCaretLocation = function (editor, caret, location) {\n return BoundaryCaret.renderCaret(caret, location).map(function (pos) {\n setCaretPosition(editor, pos);\n return location;\n });\n };\n var findLocation$1 = function (editor, caret, forward) {\n var rootNode = editor.getBody();\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n var location = BoundaryLocation.findLocation(forward, isInlineTarget, rootNode, from);\n return location.bind(function (location) {\n return renderCaretLocation(editor, caret, location);\n });\n };\n var toggleInlines = function (isInlineTarget, dom, elms) {\n var selectedInlines = filter(dom.select('*[data-mce-selected=\"inline-boundary\"]'), isInlineTarget);\n var targetInlines = filter(elms, isInlineTarget);\n each(difference(selectedInlines, targetInlines), curry(setSelected, false));\n each(difference(targetInlines, selectedInlines), curry(setSelected, true));\n };\n var safeRemoveCaretContainer = function (editor, caret) {\n if (editor.selection.isCollapsed() && editor.composing !== true && caret.get()) {\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n if (CaretPosition$1.isTextPosition(pos) && InlineUtils.isAtZwsp(pos) === false) {\n setCaretPosition(editor, CaretContainerRemove.removeAndReposition(caret.get(), pos));\n caret.set(null);\n }\n }\n };\n var renderInsideInlineCaret = function (isInlineTarget, editor, caret, elms) {\n if (editor.selection.isCollapsed()) {\n var inlines = filter(elms, isInlineTarget);\n each(inlines, function (inline) {\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), pos).bind(function (location) {\n return renderCaretLocation(editor, caret, location);\n });\n });\n }\n };\n var move$1 = function (editor, caret, forward) {\n return function () {\n return isFeatureEnabled(editor) ? findLocation$1(editor, caret, forward).isSome() : false;\n };\n };\n var moveWord = function (forward, editor, caret) {\n return function () {\n return isFeatureEnabled(editor) ? WordSelection.moveByWord(forward, editor) : false;\n };\n };\n var setupSelectedState = function (editor) {\n var caret = Cell(null);\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n editor.on('NodeChange', function (e) {\n if (isFeatureEnabled(editor)) {\n toggleInlines(isInlineTarget, editor.dom, e.parents);\n safeRemoveCaretContainer(editor, caret);\n renderInsideInlineCaret(isInlineTarget, editor, caret, e.parents);\n }\n });\n return caret;\n };\n var moveNextWord = curry(moveWord, true);\n var movePrevWord = curry(moveWord, false);\n var BoundarySelection = {\n move: move$1,\n moveNextWord: moveNextWord,\n movePrevWord: movePrevWord,\n setupSelectedState: setupSelectedState,\n setCaretPosition: setCaretPosition\n };\n\n var BreakType;\n (function (BreakType) {\n BreakType[BreakType['Br'] = 0] = 'Br';\n BreakType[BreakType['Block'] = 1] = 'Block';\n BreakType[BreakType['Wrap'] = 2] = 'Wrap';\n BreakType[BreakType['Eol'] = 3] = 'Eol';\n }(BreakType || (BreakType = {})));\n var flip = function (direction, positions) {\n return direction === HDirection.Backwards ? positions.reverse() : positions;\n };\n var walk$3 = function (direction, caretWalker, pos) {\n return direction === HDirection.Forwards ? caretWalker.next(pos) : caretWalker.prev(pos);\n };\n var getBreakType = function (scope, direction, currentPos, nextPos) {\n if (NodeType.isBr(nextPos.getNode(direction === HDirection.Forwards))) {\n return BreakType.Br;\n } else if (isInSameBlock(currentPos, nextPos) === false) {\n return BreakType.Block;\n } else {\n return BreakType.Wrap;\n }\n };\n var getPositionsUntil = function (predicate, direction, scope, start) {\n var caretWalker = CaretWalker(scope);\n var currentPos = start, nextPos;\n var positions = [];\n while (currentPos) {\n nextPos = walk$3(direction, caretWalker, currentPos);\n if (!nextPos) {\n break;\n }\n if (NodeType.isBr(nextPos.getNode(false))) {\n if (direction === HDirection.Forwards) {\n return {\n positions: flip(direction, positions).concat([nextPos]),\n breakType: BreakType.Br,\n breakAt: Option.some(nextPos)\n };\n } else {\n return {\n positions: flip(direction, positions),\n breakType: BreakType.Br,\n breakAt: Option.some(nextPos)\n };\n }\n }\n if (!nextPos.isVisible()) {\n currentPos = nextPos;\n continue;\n }\n if (predicate(currentPos, nextPos)) {\n var breakType = getBreakType(scope, direction, currentPos, nextPos);\n return {\n positions: flip(direction, positions),\n breakType: breakType,\n breakAt: Option.some(nextPos)\n };\n }\n positions.push(nextPos);\n currentPos = nextPos;\n }\n return {\n positions: flip(direction, positions),\n breakType: BreakType.Eol,\n breakAt: Option.none()\n };\n };\n var getAdjacentLinePositions = function (direction, getPositionsUntilBreak, scope, start) {\n return getPositionsUntilBreak(scope, start).breakAt.map(function (pos) {\n var positions = getPositionsUntilBreak(scope, pos).positions;\n return direction === HDirection.Backwards ? positions.concat(pos) : [pos].concat(positions);\n }).getOr([]);\n };\n var findClosestHorizontalPositionFromPoint = function (positions, x) {\n return foldl(positions, function (acc, newPos) {\n return acc.fold(function () {\n return Option.some(newPos);\n }, function (lastPos) {\n return lift2(head(lastPos.getClientRects()), head(newPos.getClientRects()), function (lastRect, newRect) {\n var lastDist = Math.abs(x - lastRect.left);\n var newDist = Math.abs(x - newRect.left);\n return newDist <= lastDist ? newPos : lastPos;\n }).or(acc);\n });\n }, Option.none());\n };\n var findClosestHorizontalPosition = function (positions, pos) {\n return head(pos.getClientRects()).bind(function (targetRect) {\n return findClosestHorizontalPositionFromPoint(positions, targetRect.left);\n });\n };\n var getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1);\n var getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1);\n var isAtFirstLine = function (scope, pos) {\n return getPositionsUntilPreviousLine(scope, pos).breakAt.isNone();\n };\n var isAtLastLine = function (scope, pos) {\n return getPositionsUntilNextLine(scope, pos).breakAt.isNone();\n };\n var getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);\n var getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);\n var getFirstLinePositions = function (scope) {\n return CaretFinder.firstPositionIn(scope).map(function (pos) {\n return [pos].concat(getPositionsUntilNextLine(scope, pos).positions);\n }).getOr([]);\n };\n var getLastLinePositions = function (scope) {\n return CaretFinder.lastPositionIn(scope).map(function (pos) {\n return getPositionsUntilPreviousLine(scope, pos).positions.concat(pos);\n }).getOr([]);\n };\n\n var isContentEditableFalse$b = NodeType.isContentEditableFalse;\n var getSelectedNode$1 = getSelectedNode;\n var moveToCeFalseHorizontally = function (direction, editor, getNextPosFn, range) {\n var forwards = direction === HDirection.Forwards;\n var isBeforeContentEditableFalseFn = forwards ? isBeforeContentEditableFalse : isAfterContentEditableFalse;\n if (!range.collapsed) {\n var node = getSelectedNode$1(range);\n if (isContentEditableFalse$b(node)) {\n return showCaret(direction, editor, node, direction === HDirection.Backwards, true);\n }\n }\n var rangeIsInContainerBlock = isRangeInCaretContainerBlock(range);\n var caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n if (isBeforeContentEditableFalseFn(caretPosition)) {\n return selectNode(editor, caretPosition.getNode(!forwards));\n }\n var nextCaretPosition = InlineUtils.normalizePosition(forwards, getNextPosFn(caretPosition));\n if (!nextCaretPosition) {\n if (rangeIsInContainerBlock) {\n return range;\n }\n return null;\n }\n if (isBeforeContentEditableFalseFn(nextCaretPosition)) {\n return showCaret(direction, editor, nextCaretPosition.getNode(!forwards), forwards, true);\n }\n var peekCaretPosition = getNextPosFn(nextCaretPosition);\n if (peekCaretPosition && isBeforeContentEditableFalseFn(peekCaretPosition)) {\n if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) {\n return showCaret(direction, editor, peekCaretPosition.getNode(!forwards), forwards, true);\n }\n }\n if (rangeIsInContainerBlock) {\n return renderRangeCaret(editor, nextCaretPosition.toRange(), true);\n }\n return null;\n };\n var moveToCeFalseVertically = function (direction, editor, walkerFn, range) {\n var caretPosition, linePositions, nextLinePositions;\n var closestNextLineRect, caretClientRect, clientX;\n var dist1, dist2, contentEditableFalseNode;\n contentEditableFalseNode = getSelectedNode$1(range);\n caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n linePositions = walkerFn(editor.getBody(), isAboveLine(1), caretPosition);\n nextLinePositions = filter(linePositions, isLine(1));\n caretClientRect = ArrUtils.last(caretPosition.getClientRects());\n if (isBeforeContentEditableFalse(caretPosition) || isBeforeTable(caretPosition)) {\n contentEditableFalseNode = caretPosition.getNode();\n }\n if (isAfterContentEditableFalse(caretPosition) || isAfterTable(caretPosition)) {\n contentEditableFalseNode = caretPosition.getNode(true);\n }\n if (!caretClientRect) {\n return null;\n }\n clientX = caretClientRect.left;\n closestNextLineRect = findClosestClientRect(nextLinePositions, clientX);\n if (closestNextLineRect) {\n if (isContentEditableFalse$b(closestNextLineRect.node)) {\n dist1 = Math.abs(clientX - closestNextLineRect.left);\n dist2 = Math.abs(clientX - closestNextLineRect.right);\n return showCaret(direction, editor, closestNextLineRect.node, dist1 < dist2, true);\n }\n }\n if (contentEditableFalseNode) {\n var caretPositions = positionsUntil(direction, editor.getBody(), isAboveLine(1), contentEditableFalseNode);\n closestNextLineRect = findClosestClientRect(filter(caretPositions, isLine(1)), clientX);\n if (closestNextLineRect) {\n return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true);\n }\n closestNextLineRect = ArrUtils.last(filter(caretPositions, isLine(0)));\n if (closestNextLineRect) {\n return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true);\n }\n }\n };\n var createTextBlock = function (editor) {\n var textBlock = editor.dom.create(Settings.getForcedRootBlock(editor));\n if (!Env.ie || Env.ie >= 11) {\n textBlock.innerHTML = '<br data-mce-bogus=\"1\">';\n }\n return textBlock;\n };\n var exitPreBlock = function (editor, direction, range) {\n var pre, caretPos, newBlock;\n var caretWalker = CaretWalker(editor.getBody());\n var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next);\n var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev);\n if (range.collapsed && editor.settings.forced_root_block) {\n pre = editor.dom.getParent(range.startContainer, 'PRE');\n if (!pre) {\n return;\n }\n if (direction === 1) {\n caretPos = getNextVisualCaretPosition(CaretPosition$1.fromRangeStart(range));\n } else {\n caretPos = getPrevVisualCaretPosition(CaretPosition$1.fromRangeStart(range));\n }\n if (!caretPos) {\n newBlock = createTextBlock(editor);\n if (direction === 1) {\n editor.$(pre).after(newBlock);\n } else {\n editor.$(pre).before(newBlock);\n }\n editor.selection.select(newBlock, true);\n editor.selection.collapse();\n }\n }\n };\n var getHorizontalRange = function (editor, forward) {\n var caretWalker = CaretWalker(editor.getBody());\n var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next);\n var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev);\n var newRange;\n var direction = forward ? HDirection.Forwards : HDirection.Backwards;\n var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition;\n var range = editor.selection.getRng();\n newRange = moveToCeFalseHorizontally(direction, editor, getNextPosFn, range);\n if (newRange) {\n return newRange;\n }\n newRange = exitPreBlock(editor, direction, range);\n if (newRange) {\n return newRange;\n }\n return null;\n };\n var getVerticalRange = function (editor, down) {\n var newRange;\n var direction = down ? 1 : -1;\n var walkerFn = down ? downUntil : upUntil;\n var range = editor.selection.getRng();\n newRange = moveToCeFalseVertically(direction, editor, walkerFn, range);\n if (newRange) {\n return newRange;\n }\n newRange = exitPreBlock(editor, direction, range);\n if (newRange) {\n return newRange;\n }\n return null;\n };\n var moveH = function (editor, forward) {\n return function () {\n var newRng = getHorizontalRange(editor, forward);\n if (newRng) {\n editor.selection.setRng(newRng);\n return true;\n } else {\n return false;\n }\n };\n };\n var moveV = function (editor, down) {\n return function () {\n var newRng = getVerticalRange(editor, down);\n if (newRng) {\n editor.selection.setRng(newRng);\n return true;\n } else {\n return false;\n }\n };\n };\n var isCefPosition = function (forward) {\n return function (pos) {\n return forward ? isAfterContentEditableFalse(pos) : isBeforeContentEditableFalse(pos);\n };\n };\n var moveToLineEndPoint = function (editor, forward) {\n return function () {\n var from = forward ? CaretPosition$1.fromRangeEnd(editor.selection.getRng()) : CaretPosition$1.fromRangeStart(editor.selection.getRng());\n var result = forward ? getPositionsUntilNextLine(editor.getBody(), from) : getPositionsUntilPreviousLine(editor.getBody(), from);\n var to = forward ? last(result.positions) : head(result.positions);\n return to.filter(isCefPosition(forward)).fold(constant(false), function (pos) {\n editor.selection.setRng(pos.toRange());\n return true;\n });\n };\n };\n\n var deflate = function (rect, delta) {\n return {\n left: rect.left - delta,\n top: rect.top - delta,\n right: rect.right + delta * 2,\n bottom: rect.bottom + delta * 2,\n width: rect.width + delta,\n height: rect.height + delta\n };\n };\n var getCorners = function (getYAxisValue, tds) {\n return bind(tds, function (td) {\n var rect = deflate(clone$1(td.getBoundingClientRect()), -1);\n return [\n {\n x: rect.left,\n y: getYAxisValue(rect),\n cell: td\n },\n {\n x: rect.right,\n y: getYAxisValue(rect),\n cell: td\n }\n ];\n });\n };\n var findClosestCorner = function (corners, x, y) {\n return foldl(corners, function (acc, newCorner) {\n return acc.fold(function () {\n return Option.some(newCorner);\n }, function (oldCorner) {\n var oldDist = Math.sqrt(Math.abs(oldCorner.x - x) + Math.abs(oldCorner.y - y));\n var newDist = Math.sqrt(Math.abs(newCorner.x - x) + Math.abs(newCorner.y - y));\n return Option.some(newDist < oldDist ? newCorner : oldCorner);\n });\n }, Option.none());\n };\n var getClosestCell = function (getYAxisValue, isTargetCorner, table, x, y) {\n var cells = descendants$1(Element.fromDom(table), 'td,th,caption').map(function (e) {\n return e.dom();\n });\n var corners = filter(getCorners(getYAxisValue, cells), function (corner) {\n return isTargetCorner(corner, y);\n });\n return findClosestCorner(corners, x, y).map(function (corner) {\n return corner.cell;\n });\n };\n var getBottomValue = function (rect) {\n return rect.bottom;\n };\n var getTopValue = function (rect) {\n return rect.top;\n };\n var isAbove$1 = function (corner, y) {\n return corner.y < y;\n };\n var isBelow$1 = function (corner, y) {\n return corner.y > y;\n };\n var getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove$1);\n var getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow$1);\n var findClosestPositionInAboveCell = function (table, pos) {\n return head(pos.getClientRects()).bind(function (rect) {\n return getClosestCellAbove(table, rect.left, rect.top);\n }).bind(function (cell) {\n return findClosestHorizontalPosition(getLastLinePositions(cell), pos);\n });\n };\n var findClosestPositionInBelowCell = function (table, pos) {\n return last(pos.getClientRects()).bind(function (rect) {\n return getClosestCellBelow(table, rect.left, rect.top);\n }).bind(function (cell) {\n return findClosestHorizontalPosition(getFirstLinePositions(cell), pos);\n });\n };\n\n var moveToRange = function (editor, rng) {\n editor.selection.setRng(rng);\n ScrollIntoView.scrollRangeIntoView(editor, rng);\n };\n var hasNextBreak = function (getPositionsUntil, scope, lineInfo) {\n return lineInfo.breakAt.map(function (breakPos) {\n return getPositionsUntil(scope, breakPos).breakAt.isSome();\n }).getOr(false);\n };\n var startsWithWrapBreak = function (lineInfo) {\n return lineInfo.breakType === BreakType.Wrap && lineInfo.positions.length === 0;\n };\n var startsWithBrBreak = function (lineInfo) {\n return lineInfo.breakType === BreakType.Br && lineInfo.positions.length === 1;\n };\n var isAtTableCellLine = function (getPositionsUntil, scope, pos) {\n var lineInfo = getPositionsUntil(scope, pos);\n if (startsWithWrapBreak(lineInfo) || !NodeType.isBr(pos.getNode()) && startsWithBrBreak(lineInfo)) {\n return !hasNextBreak(getPositionsUntil, scope, lineInfo);\n } else {\n return lineInfo.breakAt.isNone();\n }\n };\n var isAtFirstTableCellLine = curry(isAtTableCellLine, getPositionsUntilPreviousLine);\n var isAtLastTableCellLine = curry(isAtTableCellLine, getPositionsUntilNextLine);\n var isCaretAtStartOrEndOfTable = function (forward, rng, table) {\n var caretPos = CaretPosition$1.fromRangeStart(rng);\n return CaretFinder.positionIn(!forward, table).map(function (pos) {\n return pos.isEqual(caretPos);\n }).getOr(false);\n };\n var navigateHorizontally = function (editor, forward, table, td) {\n var rng = editor.selection.getRng();\n var direction = forward ? 1 : -1;\n if (isFakeCaretTableBrowser() && isCaretAtStartOrEndOfTable(forward, rng, table)) {\n var newRng = showCaret(direction, editor, table, !forward, true);\n moveToRange(editor, newRng);\n return true;\n }\n return false;\n };\n var getClosestAbovePosition = function (root, table, start) {\n return findClosestPositionInAboveCell(table, start).orThunk(function () {\n return head(start.getClientRects()).bind(function (rect) {\n return findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition$1.before(table)), rect.left);\n });\n }).getOr(CaretPosition$1.before(table));\n };\n var getClosestBelowPosition = function (root, table, start) {\n return findClosestPositionInBelowCell(table, start).orThunk(function () {\n return head(start.getClientRects()).bind(function (rect) {\n return findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition$1.after(table)), rect.left);\n });\n }).getOr(CaretPosition$1.after(table));\n };\n var getTable = function (previous, pos) {\n var node = pos.getNode(previous);\n return NodeType.isElement(node) && node.nodeName === 'TABLE' ? Option.some(node) : Option.none();\n };\n var renderBlock = function (down, editor, table, pos) {\n var forcedRootBlock = Settings.getForcedRootBlock(editor);\n if (forcedRootBlock) {\n editor.undoManager.transact(function () {\n var element = Element.fromTag(forcedRootBlock);\n setAll(element, Settings.getForcedRootBlockAttrs(editor));\n append(element, Element.fromTag('br'));\n if (down) {\n after(Element.fromDom(table), element);\n } else {\n before(Element.fromDom(table), element);\n }\n var rng = editor.dom.createRng();\n rng.setStart(element.dom(), 0);\n rng.setEnd(element.dom(), 0);\n moveToRange(editor, rng);\n });\n } else {\n moveToRange(editor, pos.toRange());\n }\n };\n var moveCaret = function (editor, down, pos) {\n var table = down ? getTable(true, pos) : getTable(false, pos);\n var last = down === false;\n table.fold(function () {\n return moveToRange(editor, pos.toRange());\n }, function (table) {\n return CaretFinder.positionIn(last, editor.getBody()).filter(function (lastPos) {\n return lastPos.isEqual(pos);\n }).fold(function () {\n return moveToRange(editor, pos.toRange());\n }, function (_) {\n return renderBlock(down, editor, table, pos);\n });\n });\n };\n var navigateVertically = function (editor, down, table, td) {\n var rng = editor.selection.getRng();\n var pos = CaretPosition$1.fromRangeStart(rng);\n var root = editor.getBody();\n if (!down && isAtFirstTableCellLine(td, pos)) {\n var newPos = getClosestAbovePosition(root, table, pos);\n moveCaret(editor, down, newPos);\n return true;\n } else if (down && isAtLastTableCellLine(td, pos)) {\n var newPos = getClosestBelowPosition(root, table, pos);\n moveCaret(editor, down, newPos);\n return true;\n } else {\n return false;\n }\n };\n var moveH$1 = function (editor, forward) {\n return function () {\n return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) {\n return Option.from(editor.dom.getParent(td, 'table')).map(function (table) {\n return navigateHorizontally(editor, forward, table);\n });\n }).getOr(false);\n };\n };\n var moveV$1 = function (editor, forward) {\n return function () {\n return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) {\n return Option.from(editor.dom.getParent(td, 'table')).map(function (table) {\n return navigateVertically(editor, forward, table, td);\n });\n }).getOr(false);\n };\n };\n\n var isTarget = function (node) {\n return contains(['figcaption'], name(node));\n };\n var rangeBefore = function (target) {\n var rng = domGlobals.document.createRange();\n rng.setStartBefore(target.dom());\n rng.setEndBefore(target.dom());\n return rng;\n };\n var insertElement = function (root, elm, forward) {\n if (forward) {\n append(root, elm);\n } else {\n prepend(root, elm);\n }\n };\n var insertBr = function (root, forward) {\n var br = Element.fromTag('br');\n insertElement(root, br, forward);\n return rangeBefore(br);\n };\n var insertBlock$1 = function (root, forward, blockName, attrs) {\n var block = Element.fromTag(blockName);\n var br = Element.fromTag('br');\n setAll(block, attrs);\n append(block, br);\n insertElement(root, block, forward);\n return rangeBefore(br);\n };\n var insertEmptyLine = function (root, rootBlockName, attrs, forward) {\n if (rootBlockName === '') {\n return insertBr(root, forward);\n } else {\n return insertBlock$1(root, forward, rootBlockName, attrs);\n }\n };\n var getClosestTargetBlock = function (pos, root) {\n var isRoot = curry(eq, root);\n return closest(Element.fromDom(pos.container()), isBlock, isRoot).filter(isTarget);\n };\n var isAtFirstOrLastLine = function (root, forward, pos) {\n return forward ? isAtLastLine(root.dom(), pos) : isAtFirstLine(root.dom(), pos);\n };\n var moveCaretToNewEmptyLine = function (editor, forward) {\n var root = Element.fromDom(editor.getBody());\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n var rootBlock = Settings.getForcedRootBlock(editor);\n var rootBlockAttrs = Settings.getForcedRootBlockAttrs(editor);\n return getClosestTargetBlock(pos, root).exists(function () {\n if (isAtFirstOrLastLine(root, forward, pos)) {\n var rng = insertEmptyLine(root, rootBlock, rootBlockAttrs, forward);\n editor.selection.setRng(rng);\n return true;\n } else {\n return false;\n }\n });\n };\n var moveV$2 = function (editor, forward) {\n return function () {\n if (editor.selection.isCollapsed()) {\n return moveCaretToNewEmptyLine(editor, forward);\n } else {\n return false;\n }\n };\n };\n\n var defaultPatterns = function (patterns) {\n return map(patterns, function (pattern) {\n return merge({\n shiftKey: false,\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n keyCode: 0,\n action: noop\n }, pattern);\n });\n };\n var matchesEvent = function (pattern, evt) {\n return evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey;\n };\n var match$1 = function (patterns, evt) {\n return bind(defaultPatterns(patterns), function (pattern) {\n return matchesEvent(pattern, evt) ? [pattern] : [];\n });\n };\n var action = function (f) {\n var x = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n x[_i - 1] = arguments[_i];\n }\n var args = Array.prototype.slice.call(arguments, 1);\n return function () {\n return f.apply(null, args);\n };\n };\n var execute = function (patterns, evt) {\n return find(match$1(patterns, evt), function (pattern) {\n return pattern.action();\n });\n };\n var MatchKeys = {\n match: match$1,\n action: action,\n execute: execute\n };\n\n var executeKeydownOverride = function (editor, caret, evt) {\n var os = detect$3().os;\n MatchKeys.execute([\n {\n keyCode: VK.RIGHT,\n action: moveH(editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: moveH(editor, false)\n },\n {\n keyCode: VK.UP,\n action: moveV(editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: moveV(editor, true)\n },\n {\n keyCode: VK.RIGHT,\n action: moveH$1(editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: moveH$1(editor, false)\n },\n {\n keyCode: VK.UP,\n action: moveV$1(editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: moveV$1(editor, true)\n },\n {\n keyCode: VK.RIGHT,\n action: BoundarySelection.move(editor, caret, true)\n },\n {\n keyCode: VK.LEFT,\n action: BoundarySelection.move(editor, caret, false)\n },\n {\n keyCode: VK.RIGHT,\n ctrlKey: !os.isOSX(),\n altKey: os.isOSX(),\n action: BoundarySelection.moveNextWord(editor, caret)\n },\n {\n keyCode: VK.LEFT,\n ctrlKey: !os.isOSX(),\n altKey: os.isOSX(),\n action: BoundarySelection.movePrevWord(editor, caret)\n },\n {\n keyCode: VK.UP,\n action: moveV$2(editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: moveV$2(editor, true)\n }\n ], evt).each(function (_) {\n evt.preventDefault();\n });\n };\n var setup$8 = function (editor, caret) {\n editor.on('keydown', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeydownOverride(editor, caret, evt);\n }\n });\n };\n var ArrowKeys = { setup: setup$8 };\n\n var isBeforeRoot = function (rootNode) {\n return function (elm) {\n return eq(rootNode, Element.fromDom(elm.dom().parentNode));\n };\n };\n var getParentBlock$1 = function (rootNode, elm) {\n return contains$2(rootNode, elm) ? closest(elm, function (element) {\n return isTextBlock(element) || isListItem(element);\n }, isBeforeRoot(rootNode)) : Option.none();\n };\n var placeCaretInEmptyBody = function (editor) {\n var body = editor.getBody();\n var node = body.firstChild && editor.dom.isBlock(body.firstChild) ? body.firstChild : body;\n editor.selection.setCursorLocation(node, 0);\n };\n var paddEmptyBody = function (editor) {\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n placeCaretInEmptyBody(editor);\n }\n };\n var willDeleteLastPositionInElement = function (forward, fromPos, elm) {\n return lift2(CaretFinder.firstPositionIn(elm), CaretFinder.lastPositionIn(elm), function (firstPos, lastPos) {\n var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos);\n var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos);\n var normalizedFromPos = InlineUtils.normalizePosition(false, fromPos);\n if (forward) {\n return CaretFinder.nextPosition(elm, normalizedFromPos).map(function (nextPos) {\n return nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos);\n }).getOr(false);\n } else {\n return CaretFinder.prevPosition(elm, normalizedFromPos).map(function (prevPos) {\n return prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos);\n }).getOr(false);\n }\n }).getOr(true);\n };\n var DeleteUtils = {\n getParentBlock: getParentBlock$1,\n paddEmptyBody: paddEmptyBody,\n willDeleteLastPositionInElement: willDeleteLastPositionInElement\n };\n\n var blockPosition = function (block, position) {\n return {\n block: constant(block),\n position: constant(position)\n };\n };\n var blockBoundary = function (from, to) {\n return {\n from: constant(from),\n to: constant(to)\n };\n };\n var getBlockPosition = function (rootNode, pos) {\n var rootElm = Element.fromDom(rootNode);\n var containerElm = Element.fromDom(pos.container());\n return DeleteUtils.getParentBlock(rootElm, containerElm).map(function (block) {\n return blockPosition(block, pos);\n });\n };\n var isDifferentBlocks = function (blockBoundary) {\n return eq(blockBoundary.from().block(), blockBoundary.to().block()) === false;\n };\n var hasSameParent = function (blockBoundary) {\n return parent(blockBoundary.from().block()).bind(function (parent1) {\n return parent(blockBoundary.to().block()).filter(function (parent2) {\n return eq(parent1, parent2);\n });\n }).isSome();\n };\n var isEditable = function (blockBoundary) {\n return NodeType.isContentEditableFalse(blockBoundary.from().block().dom()) === false && NodeType.isContentEditableFalse(blockBoundary.to().block().dom()) === false;\n };\n var skipLastBr = function (rootNode, forward, blockPosition) {\n if (NodeType.isBr(blockPosition.position().getNode()) && Empty.isEmpty(blockPosition.block()) === false) {\n return CaretFinder.positionIn(false, blockPosition.block().dom()).bind(function (lastPositionInBlock) {\n if (lastPositionInBlock.isEqual(blockPosition.position())) {\n return CaretFinder.fromPosition(forward, rootNode, lastPositionInBlock).bind(function (to) {\n return getBlockPosition(rootNode, to);\n });\n } else {\n return Option.some(blockPosition);\n }\n }).getOr(blockPosition);\n } else {\n return blockPosition;\n }\n };\n var readFromRange = function (rootNode, forward, rng) {\n var fromBlockPos = getBlockPosition(rootNode, CaretPosition$1.fromRangeStart(rng));\n var toBlockPos = fromBlockPos.bind(function (blockPos) {\n return CaretFinder.fromPosition(forward, rootNode, blockPos.position()).bind(function (to) {\n return getBlockPosition(rootNode, to).map(function (blockPos) {\n return skipLastBr(rootNode, forward, blockPos);\n });\n });\n });\n return lift2(fromBlockPos, toBlockPos, blockBoundary).filter(function (blockBoundary) {\n return isDifferentBlocks(blockBoundary) && hasSameParent(blockBoundary) && isEditable(blockBoundary);\n });\n };\n var read$3 = function (rootNode, forward, rng) {\n return rng.collapsed ? readFromRange(rootNode, forward, rng) : Option.none();\n };\n var BlockMergeBoundary = { read: read$3 };\n\n var getChildrenUntilBlockBoundary = function (block) {\n var children$1 = children(block);\n return findIndex(children$1, isBlock).fold(function () {\n return children$1;\n }, function (index) {\n return children$1.slice(0, index);\n });\n };\n var extractChildren = function (block) {\n var children = getChildrenUntilBlockBoundary(block);\n each(children, remove$1);\n return children;\n };\n var removeEmptyRoot = function (rootNode, block) {\n var parents = Parents.parentsAndSelf(block, rootNode);\n return find(parents.reverse(), Empty.isEmpty).each(remove$1);\n };\n var isEmptyBefore = function (el) {\n return filter(prevSiblings(el), function (el) {\n return !Empty.isEmpty(el);\n }).length === 0;\n };\n var nestedBlockMerge = function (rootNode, fromBlock, toBlock, insertionPoint) {\n if (Empty.isEmpty(toBlock)) {\n PaddingBr.fillWithPaddingBr(toBlock);\n return CaretFinder.firstPositionIn(toBlock.dom());\n }\n if (isEmptyBefore(insertionPoint) && Empty.isEmpty(fromBlock)) {\n before(insertionPoint, Element.fromTag('br'));\n }\n var position = CaretFinder.prevPosition(toBlock.dom(), CaretPosition$1.before(insertionPoint.dom()));\n each(extractChildren(fromBlock), function (child) {\n before(insertionPoint, child);\n });\n removeEmptyRoot(rootNode, fromBlock);\n return position;\n };\n var sidelongBlockMerge = function (rootNode, fromBlock, toBlock) {\n if (Empty.isEmpty(toBlock)) {\n remove$1(toBlock);\n if (Empty.isEmpty(fromBlock)) {\n PaddingBr.fillWithPaddingBr(fromBlock);\n }\n return CaretFinder.firstPositionIn(fromBlock.dom());\n }\n var position = CaretFinder.lastPositionIn(toBlock.dom());\n each(extractChildren(fromBlock), function (child) {\n append(toBlock, child);\n });\n removeEmptyRoot(rootNode, fromBlock);\n return position;\n };\n var findInsertionPoint = function (toBlock, block) {\n var parentsAndSelf = Parents.parentsAndSelf(block, toBlock);\n return Option.from(parentsAndSelf[parentsAndSelf.length - 1]);\n };\n var getInsertionPoint = function (fromBlock, toBlock) {\n return contains$2(toBlock, fromBlock) ? findInsertionPoint(toBlock, fromBlock) : Option.none();\n };\n var trimBr = function (first, block) {\n CaretFinder.positionIn(first, block.dom()).map(function (position) {\n return position.getNode();\n }).map(Element.fromDom).filter(isBr$1).each(remove$1);\n };\n var mergeBlockInto = function (rootNode, fromBlock, toBlock) {\n trimBr(true, fromBlock);\n trimBr(false, toBlock);\n return getInsertionPoint(fromBlock, toBlock).fold(curry(sidelongBlockMerge, rootNode, fromBlock, toBlock), curry(nestedBlockMerge, rootNode, fromBlock, toBlock));\n };\n var mergeBlocks = function (rootNode, forward, block1, block2) {\n return forward ? mergeBlockInto(rootNode, block2, block1) : mergeBlockInto(rootNode, block1, block2);\n };\n var MergeBlocks = { mergeBlocks: mergeBlocks };\n\n var backspaceDelete = function (editor, forward) {\n var rootNode = Element.fromDom(editor.getBody());\n var position = BlockMergeBoundary.read(rootNode.dom(), forward, editor.selection.getRng()).bind(function (blockBoundary) {\n return MergeBlocks.mergeBlocks(rootNode, forward, blockBoundary.from().block(), blockBoundary.to().block());\n });\n position.each(function (pos) {\n editor.selection.setRng(pos.toRange());\n });\n return position.isSome();\n };\n var BlockBoundaryDelete = { backspaceDelete: backspaceDelete };\n\n var deleteRangeMergeBlocks = function (rootNode, selection) {\n var rng = selection.getRng();\n return lift2(DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.startContainer)), DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.endContainer)), function (block1, block2) {\n if (eq(block1, block2) === false) {\n rng.deleteContents();\n MergeBlocks.mergeBlocks(rootNode, true, block1, block2).each(function (pos) {\n selection.setRng(pos.toRange());\n });\n return true;\n } else {\n return false;\n }\n }).getOr(false);\n };\n var isRawNodeInTable = function (root, rawNode) {\n var node = Element.fromDom(rawNode);\n var isRoot = curry(eq, root);\n return ancestor(node, isTableCell, isRoot).isSome();\n };\n var isSelectionInTable = function (root, rng) {\n return isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer);\n };\n var isEverythingSelected = function (root, rng) {\n var noPrevious = CaretFinder.prevPosition(root.dom(), CaretPosition$1.fromRangeStart(rng)).isNone();\n var noNext = CaretFinder.nextPosition(root.dom(), CaretPosition$1.fromRangeEnd(rng)).isNone();\n return !isSelectionInTable(root, rng) && noPrevious && noNext;\n };\n var emptyEditor = function (editor) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n return true;\n };\n var deleteRange = function (editor) {\n var rootNode = Element.fromDom(editor.getBody());\n var rng = editor.selection.getRng();\n return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection);\n };\n var backspaceDelete$1 = function (editor, forward) {\n return editor.selection.isCollapsed() ? false : deleteRange(editor);\n };\n var BlockRangeDelete = { backspaceDelete: backspaceDelete$1 };\n\n var isBr$5 = function (pos) {\n return getElementFromPosition(pos).exists(isBr$1);\n };\n var findBr = function (forward, root, pos) {\n var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);\n var scope = head(parentBlocks).getOr(root);\n return CaretFinder.fromPosition(forward, scope.dom(), pos).filter(isBr$5);\n };\n var isBeforeBr = function (root, pos) {\n return getElementFromPosition(pos).exists(isBr$1) || findBr(true, root, pos).isSome();\n };\n var isAfterBr = function (root, pos) {\n return getElementFromPrevPosition(pos).exists(isBr$1) || findBr(false, root, pos).isSome();\n };\n var findPreviousBr = curry(findBr, false);\n var findNextBr = curry(findBr, true);\n\n var isCompoundElement = function (node) {\n return isTableCell(Element.fromDom(node)) || isListItem(Element.fromDom(node));\n };\n var DeleteAction = Adt.generate([\n { remove: ['element'] },\n { moveToElement: ['element'] },\n { moveToPosition: ['position'] }\n ]);\n var isAtContentEditableBlockCaret = function (forward, from) {\n var elm = from.getNode(forward === false);\n var caretLocation = forward ? 'after' : 'before';\n return NodeType.isElement(elm) && elm.getAttribute('data-mce-caret') === caretLocation;\n };\n var isDeleteFromCefDifferentBlocks = function (root, forward, from, to) {\n var inSameBlock = function (elm) {\n return isInline(Element.fromDom(elm)) && !isInSameBlock(from, to, root);\n };\n return getRelativeCefElm(!forward, from).fold(function () {\n return getRelativeCefElm(forward, to).fold(constant(false), inSameBlock);\n }, inSameBlock);\n };\n var deleteEmptyBlockOrMoveToCef = function (root, forward, from, to) {\n var toCefElm = to.getNode(forward === false);\n return DeleteUtils.getParentBlock(Element.fromDom(root), Element.fromDom(from.getNode())).map(function (blockElm) {\n return Empty.isEmpty(blockElm) ? DeleteAction.remove(blockElm.dom()) : DeleteAction.moveToElement(toCefElm);\n }).orThunk(function () {\n return Option.some(DeleteAction.moveToElement(toCefElm));\n });\n };\n var findCefPosition = function (root, forward, from) {\n return CaretFinder.fromPosition(forward, root, from).bind(function (to) {\n if (isCompoundElement(to.getNode())) {\n return Option.none();\n } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to)) {\n return Option.none();\n } else if (forward && NodeType.isContentEditableFalse(to.getNode())) {\n return deleteEmptyBlockOrMoveToCef(root, forward, from, to);\n } else if (forward === false && NodeType.isContentEditableFalse(to.getNode(true))) {\n return deleteEmptyBlockOrMoveToCef(root, forward, from, to);\n } else if (forward && isAfterContentEditableFalse(from)) {\n return Option.some(DeleteAction.moveToPosition(to));\n } else if (forward === false && isBeforeContentEditableFalse(from)) {\n return Option.some(DeleteAction.moveToPosition(to));\n } else {\n return Option.none();\n }\n });\n };\n var getContentEditableBlockAction = function (forward, elm) {\n if (forward && NodeType.isContentEditableFalse(elm.nextSibling)) {\n return Option.some(DeleteAction.moveToElement(elm.nextSibling));\n } else if (forward === false && NodeType.isContentEditableFalse(elm.previousSibling)) {\n return Option.some(DeleteAction.moveToElement(elm.previousSibling));\n } else {\n return Option.none();\n }\n };\n var skipMoveToActionFromInlineCefToContent = function (root, from, deleteAction) {\n return deleteAction.fold(function (elm) {\n return Option.some(DeleteAction.remove(elm));\n }, function (elm) {\n return Option.some(DeleteAction.moveToElement(elm));\n }, function (to) {\n if (isInSameBlock(from, to, root)) {\n return Option.none();\n } else {\n return Option.some(DeleteAction.moveToPosition(to));\n }\n });\n };\n var getContentEditableAction = function (root, forward, from) {\n if (isAtContentEditableBlockCaret(forward, from)) {\n return getContentEditableBlockAction(forward, from.getNode(forward === false)).fold(function () {\n return findCefPosition(root, forward, from);\n }, Option.some);\n } else {\n return findCefPosition(root, forward, from).bind(function (deleteAction) {\n return skipMoveToActionFromInlineCefToContent(root, from, deleteAction);\n });\n }\n };\n var read$4 = function (root, forward, rng) {\n var normalizedRange = normalizeRange(forward ? 1 : -1, root, rng);\n var from = CaretPosition$1.fromRangeStart(normalizedRange);\n var rootElement = Element.fromDom(root);\n if (forward === false && isAfterContentEditableFalse(from)) {\n return Option.some(DeleteAction.remove(from.getNode(true)));\n } else if (forward && isBeforeContentEditableFalse(from)) {\n return Option.some(DeleteAction.remove(from.getNode()));\n } else if (forward === false && isBeforeContentEditableFalse(from) && isAfterBr(rootElement, from)) {\n return findPreviousBr(rootElement, from).map(function (br) {\n return DeleteAction.remove(br.getNode());\n });\n } else if (forward && isAfterContentEditableFalse(from) && isBeforeBr(rootElement, from)) {\n return findNextBr(rootElement, from).map(function (br) {\n return DeleteAction.remove(br.getNode());\n });\n } else {\n return getContentEditableAction(root, forward, from);\n }\n };\n\n var deleteElement$1 = function (editor, forward) {\n return function (element) {\n editor._selectionOverrides.hideFakeCaret();\n DeleteElement.deleteElement(editor, forward, Element.fromDom(element));\n return true;\n };\n };\n var moveToElement = function (editor, forward) {\n return function (element) {\n var pos = forward ? CaretPosition$1.before(element) : CaretPosition$1.after(element);\n editor.selection.setRng(pos.toRange());\n return true;\n };\n };\n var moveToPosition = function (editor) {\n return function (pos) {\n editor.selection.setRng(pos.toRange());\n return true;\n };\n };\n var getAncestorCe = function (editor, node) {\n return Option.from(getContentEditableRoot$2(editor.getBody(), node));\n };\n var backspaceDeleteCaret = function (editor, forward) {\n var selectedNode = editor.selection.getNode();\n return getAncestorCe(editor, selectedNode).filter(NodeType.isContentEditableFalse).fold(function () {\n var result = read$4(editor.getBody(), forward, editor.selection.getRng()).map(function (deleteAction) {\n return deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor));\n });\n return result.getOr(false);\n }, function () {\n return true;\n });\n };\n var deleteOffscreenSelection = function (rootElement) {\n each(descendants$1(rootElement, '.mce-offscreen-selection'), remove$1);\n };\n var backspaceDeleteRange = function (editor, forward) {\n var selectedNode = editor.selection.getNode();\n if (NodeType.isContentEditableFalse(selectedNode)) {\n var hasCefAncestor = getAncestorCe(editor, selectedNode.parentNode).filter(NodeType.isContentEditableFalse);\n return hasCefAncestor.fold(function () {\n deleteOffscreenSelection(Element.fromDom(editor.getBody()));\n DeleteElement.deleteElement(editor, forward, Element.fromDom(editor.selection.getNode()));\n DeleteUtils.paddEmptyBody(editor);\n return true;\n }, function () {\n return true;\n });\n }\n return false;\n };\n var getContentEditableRoot$2 = function (root, node) {\n while (node && node !== root) {\n if (NodeType.isContentEditableTrue(node) || NodeType.isContentEditableFalse(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var paddEmptyElement = function (editor) {\n var br;\n var ceRoot = getContentEditableRoot$2(editor.getBody(), editor.selection.getNode());\n if (NodeType.isContentEditableTrue(ceRoot) && editor.dom.isBlock(ceRoot) && editor.dom.isEmpty(ceRoot)) {\n br = editor.dom.create('br', { 'data-mce-bogus': '1' });\n editor.dom.setHTML(ceRoot, '');\n ceRoot.appendChild(br);\n editor.selection.setRng(CaretPosition$1.before(br).toRange());\n }\n return true;\n };\n var backspaceDelete$2 = function (editor, forward) {\n if (editor.selection.isCollapsed()) {\n return backspaceDeleteCaret(editor, forward);\n } else {\n return backspaceDeleteRange(editor, forward);\n }\n };\n var CefDelete = {\n backspaceDelete: backspaceDelete$2,\n paddEmptyElement: paddEmptyElement\n };\n\n var trimEmptyTextNode$1 = function (dom, node) {\n if (NodeType.isText(node) && node.data.length === 0) {\n dom.remove(node);\n }\n };\n var deleteContentAndShowCaret = function (editor, range, node, direction, forward, peekCaretPosition) {\n var caretRange = showCaret(direction, editor, peekCaretPosition.getNode(!forward), forward, true);\n if (range.collapsed) {\n var deleteRange = range.cloneRange();\n if (forward) {\n deleteRange.setEnd(caretRange.startContainer, caretRange.startOffset);\n } else {\n deleteRange.setStart(caretRange.endContainer, caretRange.endOffset);\n }\n deleteRange.deleteContents();\n } else {\n range.deleteContents();\n }\n editor.selection.setRng(caretRange);\n trimEmptyTextNode$1(editor.dom, node);\n return true;\n };\n var deleteCefBoundaryText = function (editor, forward) {\n var range = editor.selection.getRng();\n if (!NodeType.isText(range.commonAncestorContainer)) {\n return false;\n }\n var direction = forward ? HDirection.Forwards : HDirection.Backwards;\n var caretWalker = CaretWalker(editor.getBody());\n var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next);\n var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev);\n var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition;\n var isBeforeContentEditableFalseFn = forward ? isBeforeContentEditableFalse : isAfterContentEditableFalse;\n var caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n var nextCaretPosition = InlineUtils.normalizePosition(forward, getNextPosFn(caretPosition));\n if (!nextCaretPosition || !isMoveInsideSameBlock(caretPosition, nextCaretPosition)) {\n return false;\n } else if (isBeforeContentEditableFalseFn(nextCaretPosition)) {\n return deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, nextCaretPosition);\n }\n var peekCaretPosition = getNextPosFn(nextCaretPosition);\n if (peekCaretPosition && isBeforeContentEditableFalseFn(peekCaretPosition)) {\n if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) {\n return deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, peekCaretPosition);\n }\n }\n return false;\n };\n var backspaceDelete$3 = function (editor, forward) {\n return deleteCefBoundaryText(editor, forward);\n };\n var CefBoundaryDelete = { backspaceDelete: backspaceDelete$3 };\n\n var isFeatureEnabled$1 = function (editor) {\n return editor.settings.inline_boundaries !== false;\n };\n var rangeFromPositions = function (from, to) {\n var range = domGlobals.document.createRange();\n range.setStart(from.container(), from.offset());\n range.setEnd(to.container(), to.offset());\n return range;\n };\n var hasOnlyTwoOrLessPositionsLeft = function (elm) {\n return lift2(CaretFinder.firstPositionIn(elm), CaretFinder.lastPositionIn(elm), function (firstPos, lastPos) {\n var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos);\n var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos);\n return CaretFinder.nextPosition(elm, normalizedFirstPos).map(function (pos) {\n return pos.isEqual(normalizedLastPos);\n }).getOr(true);\n }).getOr(true);\n };\n var setCaretLocation = function (editor, caret) {\n return function (location) {\n return BoundaryCaret.renderCaret(caret, location).map(function (pos) {\n BoundarySelection.setCaretPosition(editor, pos);\n return true;\n }).getOr(false);\n };\n };\n var deleteFromTo = function (editor, caret, from, to) {\n var rootNode = editor.getBody();\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n editor.undoManager.ignore(function () {\n editor.selection.setRng(rangeFromPositions(from, to));\n editor.execCommand('Delete');\n BoundaryLocation.readLocation(isInlineTarget, rootNode, CaretPosition$1.fromRangeStart(editor.selection.getRng())).map(BoundaryLocation.inside).map(setCaretLocation(editor, caret));\n });\n editor.nodeChanged();\n };\n var rescope$1 = function (rootNode, node) {\n var parentBlock = getParentBlock(node, rootNode);\n return parentBlock ? parentBlock : rootNode;\n };\n var backspaceDeleteCollapsed = function (editor, caret, forward, from) {\n var rootNode = rescope$1(editor.getBody(), from.container());\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n var fromLocation = BoundaryLocation.readLocation(isInlineTarget, rootNode, from);\n return fromLocation.bind(function (location) {\n if (forward) {\n return location.fold(constant(Option.some(BoundaryLocation.inside(location))), Option.none, constant(Option.some(BoundaryLocation.outside(location))), Option.none);\n } else {\n return location.fold(Option.none, constant(Option.some(BoundaryLocation.outside(location))), Option.none, constant(Option.some(BoundaryLocation.inside(location))));\n }\n }).map(setCaretLocation(editor, caret)).getOrThunk(function () {\n var toPosition = CaretFinder.navigate(forward, rootNode, from);\n var toLocation = toPosition.bind(function (pos) {\n return BoundaryLocation.readLocation(isInlineTarget, rootNode, pos);\n });\n if (fromLocation.isSome() && toLocation.isSome()) {\n return InlineUtils.findRootInline(isInlineTarget, rootNode, from).map(function (elm) {\n if (hasOnlyTwoOrLessPositionsLeft(elm)) {\n DeleteElement.deleteElement(editor, forward, Element.fromDom(elm));\n return true;\n } else {\n return false;\n }\n }).getOr(false);\n } else {\n return toLocation.bind(function (_) {\n return toPosition.map(function (to) {\n if (forward) {\n deleteFromTo(editor, caret, from, to);\n } else {\n deleteFromTo(editor, caret, to, from);\n }\n return true;\n });\n }).getOr(false);\n }\n });\n };\n var backspaceDelete$4 = function (editor, caret, forward) {\n if (editor.selection.isCollapsed() && isFeatureEnabled$1(editor)) {\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return backspaceDeleteCollapsed(editor, caret, forward, from);\n }\n return false;\n };\n var BoundaryDelete = { backspaceDelete: backspaceDelete$4 };\n\n var getParentInlines = function (rootElm, startElm) {\n var parents = Parents.parentsAndSelf(startElm, rootElm);\n return findIndex(parents, isBlock).fold(constant(parents), function (index) {\n return parents.slice(0, index);\n });\n };\n var hasOnlyOneChild = function (elm) {\n return children(elm).length === 1;\n };\n var deleteLastPosition = function (forward, editor, target, parentInlines) {\n var isFormatElement$1 = curry(isFormatElement, editor);\n var formatNodes = map(filter(parentInlines, isFormatElement$1), function (elm) {\n return elm.dom();\n });\n if (formatNodes.length === 0) {\n DeleteElement.deleteElement(editor, forward, target);\n } else {\n var pos = replaceWithCaretFormat(target.dom(), formatNodes);\n editor.selection.setRng(pos.toRange());\n }\n };\n var deleteCaret = function (editor, forward) {\n var rootElm = Element.fromDom(editor.getBody());\n var startElm = Element.fromDom(editor.selection.getStart());\n var parentInlines = filter(getParentInlines(rootElm, startElm), hasOnlyOneChild);\n return last(parentInlines).map(function (target) {\n var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n if (DeleteUtils.willDeleteLastPositionInElement(forward, fromPos, target.dom()) && !isEmptyCaretFormatElement(target)) {\n deleteLastPosition(forward, editor, target, parentInlines);\n return true;\n } else {\n return false;\n }\n }).getOr(false);\n };\n var backspaceDelete$5 = function (editor, forward) {\n return editor.selection.isCollapsed() ? deleteCaret(editor, forward) : false;\n };\n var InlineFormatDelete = { backspaceDelete: backspaceDelete$5 };\n\n var tableCellRng = function (start, end) {\n return {\n start: constant(start),\n end: constant(end)\n };\n };\n var tableSelection = function (rng, table, cells) {\n return {\n rng: constant(rng),\n table: constant(table),\n cells: constant(cells)\n };\n };\n var deleteAction = Adt.generate([\n { removeTable: ['element'] },\n { emptyCells: ['cells'] }\n ]);\n var isRootFromElement = function (root) {\n return function (cur) {\n return eq(root, cur);\n };\n };\n var getClosestCell$1 = function (container, isRoot) {\n return closest$1(Element.fromDom(container), 'td,th', isRoot);\n };\n var getClosestTable = function (cell, isRoot) {\n return ancestor$1(cell, 'table', isRoot);\n };\n var isExpandedCellRng = function (cellRng) {\n return eq(cellRng.start(), cellRng.end()) === false;\n };\n var getTableFromCellRng = function (cellRng, isRoot) {\n return getClosestTable(cellRng.start(), isRoot).bind(function (startParentTable) {\n return getClosestTable(cellRng.end(), isRoot).bind(function (endParentTable) {\n return someIf(eq(startParentTable, endParentTable), startParentTable);\n });\n });\n };\n var getTableCells = function (table) {\n return descendants$1(table, 'td,th');\n };\n var getCellRangeFromStartTable = function (cellRng, isRoot) {\n return getClosestTable(cellRng.start(), isRoot).bind(function (table) {\n return last(getTableCells(table)).map(function (endCell) {\n return tableCellRng(cellRng.start(), endCell);\n });\n });\n };\n var partialSelection = function (isRoot, rng) {\n var startCell = getClosestCell$1(rng.startContainer, isRoot);\n var endCell = getClosestCell$1(rng.endContainer, isRoot);\n return rng.collapsed ? Option.none() : lift2(startCell, endCell, tableCellRng).fold(function () {\n return startCell.fold(function () {\n return endCell.bind(function (endCell) {\n return getClosestTable(endCell, isRoot).bind(function (table) {\n return head(getTableCells(table)).map(function (startCell) {\n return tableCellRng(startCell, endCell);\n });\n });\n });\n }, function (startCell) {\n return getClosestTable(startCell, isRoot).bind(function (table) {\n return last(getTableCells(table)).map(function (endCell) {\n return tableCellRng(startCell, endCell);\n });\n });\n });\n }, function (cellRng) {\n return isWithinSameTable(isRoot, cellRng) ? Option.none() : getCellRangeFromStartTable(cellRng, isRoot);\n });\n };\n var isWithinSameTable = function (isRoot, cellRng) {\n return getTableFromCellRng(cellRng, isRoot).isSome();\n };\n var getCellRng = function (rng, isRoot) {\n var startCell = getClosestCell$1(rng.startContainer, isRoot);\n var endCell = getClosestCell$1(rng.endContainer, isRoot);\n return lift2(startCell, endCell, tableCellRng).filter(isExpandedCellRng).filter(function (cellRng) {\n return isWithinSameTable(isRoot, cellRng);\n }).orThunk(function () {\n return partialSelection(isRoot, rng);\n });\n };\n var getTableSelectionFromCellRng = function (cellRng, isRoot) {\n return getTableFromCellRng(cellRng, isRoot).map(function (table) {\n return tableSelection(cellRng, table, getTableCells(table));\n });\n };\n var getTableSelectionFromRng = function (root, rng) {\n var isRoot = isRootFromElement(root);\n return getCellRng(rng, isRoot).bind(function (cellRng) {\n return getTableSelectionFromCellRng(cellRng, isRoot);\n });\n };\n var getCellIndex = function (cells, cell) {\n return findIndex(cells, function (x) {\n return eq(x, cell);\n });\n };\n var getSelectedCells = function (tableSelection) {\n return lift2(getCellIndex(tableSelection.cells(), tableSelection.rng().start()), getCellIndex(tableSelection.cells(), tableSelection.rng().end()), function (startIndex, endIndex) {\n return tableSelection.cells().slice(startIndex, endIndex + 1);\n });\n };\n var getAction = function (tableSelection) {\n return getSelectedCells(tableSelection).map(function (selected) {\n var cells = tableSelection.cells();\n return selected.length === cells.length ? deleteAction.removeTable(tableSelection.table()) : deleteAction.emptyCells(selected);\n });\n };\n var getActionFromRange = function (root, rng) {\n return getTableSelectionFromRng(root, rng).bind(getAction);\n };\n\n var emptyCells = function (editor, cells) {\n each(cells, PaddingBr.fillWithPaddingBr);\n editor.selection.setCursorLocation(cells[0].dom(), 0);\n return true;\n };\n var deleteTableElement = function (editor, table) {\n DeleteElement.deleteElement(editor, false, table);\n return true;\n };\n var deleteCellRange = function (editor, rootElm, rng) {\n return getActionFromRange(rootElm, rng).map(function (action) {\n return action.fold(curry(deleteTableElement, editor), curry(emptyCells, editor));\n });\n };\n var deleteCaptionRange = function (editor, caption) {\n return emptyElement(editor, caption);\n };\n var deleteTableRange = function (editor, rootElm, rng, startElm) {\n return getParentCaption(rootElm, startElm).fold(function () {\n return deleteCellRange(editor, rootElm, rng);\n }, function (caption) {\n return deleteCaptionRange(editor, caption);\n }).getOr(false);\n };\n var deleteRange$1 = function (editor, startElm) {\n var rootNode = Element.fromDom(editor.getBody());\n var rng = editor.selection.getRng();\n var selectedCells = TableCellSelection.getCellsFromEditor(editor);\n return selectedCells.length !== 0 ? emptyCells(editor, selectedCells) : deleteTableRange(editor, rootNode, rng, startElm);\n };\n var getParentCell = function (rootElm, elm) {\n return find(Parents.parentsAndSelf(elm, rootElm), isTableCell);\n };\n var getParentCaption = function (rootElm, elm) {\n return find(Parents.parentsAndSelf(elm, rootElm), function (elm) {\n return name(elm) === 'caption';\n });\n };\n var deleteBetweenCells = function (editor, rootElm, forward, fromCell, from) {\n return CaretFinder.navigate(forward, editor.getBody(), from).bind(function (to) {\n return getParentCell(rootElm, Element.fromDom(to.getNode())).map(function (toCell) {\n return eq(toCell, fromCell) === false;\n });\n });\n };\n var emptyElement = function (editor, elm) {\n PaddingBr.fillWithPaddingBr(elm);\n editor.selection.setCursorLocation(elm.dom(), 0);\n return Option.some(true);\n };\n var isDeleteOfLastCharPos = function (fromCaption, forward, from, to) {\n return CaretFinder.firstPositionIn(fromCaption.dom()).bind(function (first) {\n return CaretFinder.lastPositionIn(fromCaption.dom()).map(function (last) {\n return forward ? from.isEqual(first) && to.isEqual(last) : from.isEqual(last) && to.isEqual(first);\n });\n }).getOr(true);\n };\n var emptyCaretCaption = function (editor, elm) {\n return emptyElement(editor, elm);\n };\n var validateCaretCaption = function (rootElm, fromCaption, to) {\n return getParentCaption(rootElm, Element.fromDom(to.getNode())).map(function (toCaption) {\n return eq(toCaption, fromCaption) === false;\n });\n };\n var deleteCaretInsideCaption = function (editor, rootElm, forward, fromCaption, from) {\n return CaretFinder.navigate(forward, editor.getBody(), from).bind(function (to) {\n return isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to);\n }).or(Option.some(true));\n };\n var deleteCaretCells = function (editor, forward, rootElm, startElm) {\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return getParentCell(rootElm, startElm).bind(function (fromCell) {\n return Empty.isEmpty(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from);\n }).getOr(false);\n };\n var deleteCaretCaption = function (editor, forward, rootElm, fromCaption) {\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return Empty.isEmpty(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);\n };\n var isNearTable = function (forward, pos) {\n return forward ? isBeforeTable(pos) : isAfterTable(pos);\n };\n var isBeforeOrAfterTable = function (editor, forward) {\n var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return isNearTable(forward, fromPos) || CaretFinder.fromPosition(forward, editor.getBody(), fromPos).map(function (pos) {\n return isNearTable(forward, pos);\n }).getOr(false);\n };\n var deleteCaret$1 = function (editor, forward, startElm) {\n var rootElm = Element.fromDom(editor.getBody());\n return getParentCaption(rootElm, startElm).fold(function () {\n return deleteCaretCells(editor, forward, rootElm, startElm) || isBeforeOrAfterTable(editor, forward);\n }, function (fromCaption) {\n return deleteCaretCaption(editor, forward, rootElm, fromCaption).getOr(false);\n });\n };\n var backspaceDelete$6 = function (editor, forward) {\n var startElm = Element.fromDom(editor.selection.getStart(true));\n var cells = TableCellSelection.getCellsFromEditor(editor);\n return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret$1(editor, forward, startElm) : deleteRange$1(editor, startElm);\n };\n var TableDelete = { backspaceDelete: backspaceDelete$6 };\n\n var deleteCaret$2 = function (editor, forward) {\n var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return CaretFinder.fromPosition(forward, editor.getBody(), fromPos).filter(function (pos) {\n return forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos);\n }).bind(function (pos) {\n return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, pos));\n }).map(function (elm) {\n editor.selection.select(elm);\n return true;\n }).getOr(false);\n };\n var backspaceDelete$7 = function (editor, forward) {\n return editor.selection.isCollapsed() ? deleteCaret$2(editor, forward) : false;\n };\n var PageBreakDelete = { backspaceDelete: backspaceDelete$7 };\n\n var isEditable$1 = function (target) {\n return closest(target, function (elm) {\n return NodeType.isContentEditableTrue(elm.dom()) || NodeType.isContentEditableFalse(elm.dom());\n }).exists(function (elm) {\n return NodeType.isContentEditableTrue(elm.dom());\n });\n };\n var parseIndentValue = function (value) {\n var number = parseInt(value, 10);\n return isNaN(number) ? 0 : number;\n };\n var getIndentStyleName = function (useMargin, element) {\n var indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding';\n var suffix = get$2(element, 'direction') === 'rtl' ? '-right' : '-left';\n return indentStyleName + suffix;\n };\n var indentElement = function (dom, command, useMargin, value, unit, element) {\n var indentStyleName = getIndentStyleName(useMargin, Element.fromDom(element));\n if (command === 'outdent') {\n var styleValue = Math.max(0, parseIndentValue(element.style[indentStyleName]) - value);\n dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : '');\n } else {\n var styleValue = parseIndentValue(element.style[indentStyleName]) + value + unit;\n dom.setStyle(element, indentStyleName, styleValue);\n }\n };\n var validateBlocks = function (editor, blocks) {\n return forall(blocks, function (block) {\n var indentStyleName = getIndentStyleName(Settings.shouldIndentUseMargin(editor), block);\n var intentValue = getRaw(block, indentStyleName).map(parseIndentValue).getOr(0);\n var contentEditable = editor.dom.getContentEditable(block.dom());\n return contentEditable !== 'false' && intentValue > 0;\n });\n };\n var canOutdent = function (editor) {\n var blocks = getBlocksToIndent(editor);\n return editor.readonly !== true && (blocks.length > 1 || validateBlocks(editor, blocks));\n };\n var isListComponent = function (el) {\n return isList(el) || isListItem(el);\n };\n var parentIsListComponent = function (el) {\n return parent(el).map(isListComponent).getOr(false);\n };\n var getBlocksToIndent = function (editor) {\n return filter(map(editor.selection.getSelectedBlocks(), Element.fromDom), function (el) {\n return !isListComponent(el) && !parentIsListComponent(el) && isEditable$1(el);\n });\n };\n var handle = function (editor, command) {\n var dom = editor.dom, selection = editor.selection, formatter = editor.formatter;\n var indentation = Settings.getIndentation(editor);\n var indentUnit = /[a-z%]+$/i.exec(indentation)[0];\n var indentValue = parseInt(indentation, 10);\n var useMargin = Settings.shouldIndentUseMargin(editor);\n var forcedRootBlock = Settings.getForcedRootBlock(editor);\n if (!editor.queryCommandState('InsertUnorderedList') && !editor.queryCommandState('InsertOrderedList')) {\n if (forcedRootBlock === '' && !dom.getParent(selection.getNode(), dom.isBlock)) {\n formatter.apply('div');\n }\n }\n each(getBlocksToIndent(editor), function (block) {\n indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom());\n });\n };\n\n var navigateIgnoreEmptyTextNodes = function (forward, root, from) {\n return CaretFinder.navigateIgnore(forward, root, from, isEmptyText);\n };\n var getClosestBlock = function (root, pos) {\n return find(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);\n };\n var isAtBeforeAfterBlockBoundary = function (forward, root, pos) {\n return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {\n return getClosestBlock(root, pos).fold(function () {\n return isInSameBlock(newPos, pos, root.dom()) === false;\n }, function (fromBlock) {\n return isInSameBlock(newPos, pos, root.dom()) === false && contains$2(fromBlock, Element.fromDom(newPos.container()));\n });\n });\n };\n var isAtBlockBoundary = function (forward, root, pos) {\n return getClosestBlock(root, pos).fold(function () {\n return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {\n return isInSameBlock(newPos, pos, root.dom()) === false;\n });\n }, function (parent) {\n return navigateIgnoreEmptyTextNodes(forward, parent.dom(), pos).isNone();\n });\n };\n var isAtStartOfBlock = curry(isAtBlockBoundary, false);\n var isAtEndOfBlock = curry(isAtBlockBoundary, true);\n var isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false);\n var isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true);\n\n var backspaceDelete$8 = function (editor, _caret, _forward) {\n if (editor.selection.isCollapsed() && canOutdent(editor)) {\n var dom = editor.dom;\n var rng = editor.selection.getRng();\n var pos = CaretPosition$1.fromRangeStart(rng);\n var block = dom.getParent(rng.startContainer, dom.isBlock);\n if (block !== null && isAtStartOfBlock(Element.fromDom(block), pos)) {\n handle(editor, 'outdent');\n return true;\n }\n }\n return false;\n };\n var Outdent = { backspaceDelete: backspaceDelete$8 };\n\n var executeKeydownOverride$1 = function (editor, caret, evt) {\n MatchKeys.execute([\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(Outdent.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(CefDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(CefDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(CefBoundaryDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(CefBoundaryDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(BoundaryDelete.backspaceDelete, editor, caret, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(BoundaryDelete.backspaceDelete, editor, caret, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(TableDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(TableDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(BlockBoundaryDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(BlockBoundaryDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(InlineFormatDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(InlineFormatDelete.backspaceDelete, editor, true)\n }\n ], evt).each(function (_) {\n evt.preventDefault();\n });\n };\n var executeKeyupOverride = function (editor, evt) {\n MatchKeys.execute([\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(CefDelete.paddEmptyElement, editor)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(CefDelete.paddEmptyElement, editor)\n }\n ], evt);\n };\n var setup$9 = function (editor, caret) {\n editor.on('keydown', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeydownOverride$1(editor, caret, evt);\n }\n });\n editor.on('keyup', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeyupOverride(editor, evt);\n }\n });\n };\n var DeleteBackspaceKeys = { setup: setup$9 };\n\n var firstNonWhiteSpaceNodeSibling = function (node) {\n while (node) {\n if (node.nodeType === 1 || node.nodeType === 3 && node.data && /[\\r\\n\\s]/.test(node.data)) {\n return node;\n }\n node = node.nextSibling;\n }\n };\n var moveToCaretPosition = function (editor, root) {\n var node, rng, lastNode = root;\n var dom = editor.dom;\n var moveCaretBeforeOnEnterElementsMap = editor.schema.getMoveCaretBeforeOnEnterElements();\n if (!root) {\n return;\n }\n if (/^(LI|DT|DD)$/.test(root.nodeName)) {\n var firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild);\n if (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) {\n root.insertBefore(dom.doc.createTextNode('\\xA0'), root.firstChild);\n }\n }\n rng = dom.createRng();\n root.normalize();\n if (root.hasChildNodes()) {\n var walker = new TreeWalker(root, root);\n while (node = walker.current()) {\n if (NodeType.isText(node)) {\n rng.setStart(node, 0);\n rng.setEnd(node, 0);\n break;\n }\n if (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) {\n rng.setStartBefore(node);\n rng.setEndBefore(node);\n break;\n }\n lastNode = node;\n node = walker.next();\n }\n if (!node) {\n rng.setStart(lastNode, 0);\n rng.setEnd(lastNode, 0);\n }\n } else {\n if (NodeType.isBr(root)) {\n if (root.nextSibling && dom.isBlock(root.nextSibling)) {\n rng.setStartBefore(root);\n rng.setEndBefore(root);\n } else {\n rng.setStartAfter(root);\n rng.setEndAfter(root);\n }\n } else {\n rng.setStart(root, 0);\n rng.setEnd(root, 0);\n }\n }\n editor.selection.setRng(rng);\n editor.selection.scrollIntoView(root);\n };\n var getEditableRoot = function (dom, node) {\n var root = dom.getRoot();\n var parent, editableRoot;\n parent = node;\n while (parent !== root && dom.getContentEditable(parent) !== 'false') {\n if (dom.getContentEditable(parent) === 'true') {\n editableRoot = parent;\n }\n parent = parent.parentNode;\n }\n return parent !== root ? editableRoot : root;\n };\n var getParentBlock$2 = function (editor) {\n return Option.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock));\n };\n var getParentBlockName = function (editor) {\n return getParentBlock$2(editor).fold(constant(''), function (parentBlock) {\n return parentBlock.nodeName.toUpperCase();\n });\n };\n var isListItemParentBlock = function (editor) {\n return getParentBlock$2(editor).filter(function (elm) {\n return isListItem(Element.fromDom(elm));\n }).isSome();\n };\n var NewLineUtils = {\n moveToCaretPosition: moveToCaretPosition,\n getEditableRoot: getEditableRoot,\n getParentBlock: getParentBlock$2,\n getParentBlockName: getParentBlockName,\n isListItemParentBlock: isListItemParentBlock\n };\n\n var hasFirstChild = function (elm, name) {\n return elm.firstChild && elm.firstChild.nodeName === name;\n };\n var hasParent$1 = function (elm, parentName) {\n return elm && elm.parentNode && elm.parentNode.nodeName === parentName;\n };\n var isListBlock = function (elm) {\n return elm && /^(OL|UL|LI)$/.test(elm.nodeName);\n };\n var isNestedList = function (elm) {\n return isListBlock(elm) && isListBlock(elm.parentNode);\n };\n var getContainerBlock = function (containerBlock) {\n var containerBlockParent = containerBlock.parentNode;\n if (/^(LI|DT|DD)$/.test(containerBlockParent.nodeName)) {\n return containerBlockParent;\n }\n return containerBlock;\n };\n var isFirstOrLastLi = function (containerBlock, parentBlock, first) {\n var node = containerBlock[first ? 'firstChild' : 'lastChild'];\n while (node) {\n if (NodeType.isElement(node)) {\n break;\n }\n node = node[first ? 'nextSibling' : 'previousSibling'];\n }\n return node === parentBlock;\n };\n var insert = function (editor, createNewBlock, containerBlock, parentBlock, newBlockName) {\n var dom = editor.dom;\n var rng = editor.selection.getRng();\n if (containerBlock === editor.getBody()) {\n return;\n }\n if (isNestedList(containerBlock)) {\n newBlockName = 'LI';\n }\n var newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR');\n if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) {\n if (hasParent$1(containerBlock, 'LI')) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n } else {\n dom.replace(newBlock, containerBlock);\n }\n } else if (isFirstOrLastLi(containerBlock, parentBlock, true)) {\n if (hasParent$1(containerBlock, 'LI')) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n newBlock.appendChild(dom.doc.createTextNode(' '));\n newBlock.appendChild(containerBlock);\n } else {\n containerBlock.parentNode.insertBefore(newBlock, containerBlock);\n }\n } else if (isFirstOrLastLi(containerBlock, parentBlock, false)) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n } else {\n containerBlock = getContainerBlock(containerBlock);\n var tmpRng = rng.cloneRange();\n tmpRng.setStartAfter(parentBlock);\n tmpRng.setEndAfter(containerBlock);\n var fragment = tmpRng.extractContents();\n if (newBlockName === 'LI' && hasFirstChild(fragment, 'LI')) {\n newBlock = fragment.firstChild;\n dom.insertAfter(fragment, containerBlock);\n } else {\n dom.insertAfter(fragment, containerBlock);\n dom.insertAfter(newBlock, containerBlock);\n }\n }\n dom.remove(parentBlock);\n NewLineUtils.moveToCaretPosition(editor, newBlock);\n };\n var InsertLi = { insert: insert };\n\n var trimZwsp = function (fragment) {\n each(descendants(Element.fromDom(fragment), isText$1), function (text) {\n var rawNode = text.dom();\n rawNode.nodeValue = Zwsp.trim(rawNode.nodeValue);\n });\n };\n var isEmptyAnchor = function (dom, elm) {\n return elm && elm.nodeName === 'A' && dom.isEmpty(elm);\n };\n var isTableCell$4 = function (node) {\n return node && /^(TD|TH|CAPTION)$/.test(node.nodeName);\n };\n var emptyBlock = function (elm) {\n elm.innerHTML = '<br data-mce-bogus=\"1\">';\n };\n var containerAndSiblingName = function (container, nodeName) {\n return container.nodeName === nodeName || container.previousSibling && container.previousSibling.nodeName === nodeName;\n };\n var canSplitBlock = function (dom, node) {\n return node && dom.isBlock(node) && !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && !/^(fixed|absolute)/i.test(node.style.position) && dom.getContentEditable(node) !== 'true';\n };\n var trimInlineElementsOnLeftSideOfBlock = function (dom, nonEmptyElementsMap, block) {\n var node = block;\n var firstChilds = [];\n var i;\n if (!node) {\n return;\n }\n while (node = node.firstChild) {\n if (dom.isBlock(node)) {\n return;\n }\n if (NodeType.isElement(node) && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\n firstChilds.push(node);\n }\n }\n i = firstChilds.length;\n while (i--) {\n node = firstChilds[i];\n if (!node.hasChildNodes() || node.firstChild === node.lastChild && node.firstChild.nodeValue === '') {\n dom.remove(node);\n } else {\n if (isEmptyAnchor(dom, node)) {\n dom.remove(node);\n }\n }\n }\n };\n var normalizeZwspOffset = function (start, container, offset) {\n if (NodeType.isText(container) === false) {\n return offset;\n } else if (start) {\n return offset === 1 && container.data.charAt(offset - 1) === Zwsp.ZWSP ? 0 : offset;\n } else {\n return offset === container.data.length - 1 && container.data.charAt(offset) === Zwsp.ZWSP ? container.data.length : offset;\n }\n };\n var includeZwspInRange = function (rng) {\n var newRng = rng.cloneRange();\n newRng.setStart(rng.startContainer, normalizeZwspOffset(true, rng.startContainer, rng.startOffset));\n newRng.setEnd(rng.endContainer, normalizeZwspOffset(false, rng.endContainer, rng.endOffset));\n return newRng;\n };\n var trimLeadingLineBreaks = function (node) {\n do {\n if (NodeType.isText(node)) {\n node.nodeValue = node.nodeValue.replace(/^[\\r\\n]+/, '');\n }\n node = node.firstChild;\n } while (node);\n };\n var getEditableRoot$1 = function (dom, node) {\n var root = dom.getRoot();\n var parent, editableRoot;\n parent = node;\n while (parent !== root && dom.getContentEditable(parent) !== 'false') {\n if (dom.getContentEditable(parent) === 'true') {\n editableRoot = parent;\n }\n parent = parent.parentNode;\n }\n return parent !== root ? editableRoot : root;\n };\n var setForcedBlockAttrs = function (editor, node) {\n var forcedRootBlockName = Settings.getForcedRootBlock(editor);\n if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {\n editor.dom.setAttribs(node, Settings.getForcedRootBlockAttrs(editor));\n }\n };\n var wrapSelfAndSiblingsInDefaultBlock = function (editor, newBlockName, rng, container, offset) {\n var newBlock, parentBlock, startNode, node, next, rootBlockName;\n var blockName = newBlockName || 'P';\n var dom = editor.dom, editableRoot = getEditableRoot$1(dom, container);\n parentBlock = dom.getParent(container, dom.isBlock);\n if (!parentBlock || !canSplitBlock(dom, parentBlock)) {\n parentBlock = parentBlock || editableRoot;\n if (parentBlock === editor.getBody() || isTableCell$4(parentBlock)) {\n rootBlockName = parentBlock.nodeName.toLowerCase();\n } else {\n rootBlockName = parentBlock.parentNode.nodeName.toLowerCase();\n }\n if (!parentBlock.hasChildNodes()) {\n newBlock = dom.create(blockName);\n setForcedBlockAttrs(editor, newBlock);\n parentBlock.appendChild(newBlock);\n rng.setStart(newBlock, 0);\n rng.setEnd(newBlock, 0);\n return newBlock;\n }\n node = container;\n while (node.parentNode !== parentBlock) {\n node = node.parentNode;\n }\n while (node && !dom.isBlock(node)) {\n startNode = node;\n node = node.previousSibling;\n }\n if (startNode && editor.schema.isValidChild(rootBlockName, blockName.toLowerCase())) {\n newBlock = dom.create(blockName);\n setForcedBlockAttrs(editor, newBlock);\n startNode.parentNode.insertBefore(newBlock, startNode);\n node = startNode;\n while (node && !dom.isBlock(node)) {\n next = node.nextSibling;\n newBlock.appendChild(node);\n node = next;\n }\n rng.setStart(container, offset);\n rng.setEnd(container, offset);\n }\n }\n return container;\n };\n var addBrToBlockIfNeeded = function (dom, block) {\n var lastChild;\n block.normalize();\n lastChild = block.lastChild;\n if (!lastChild || /^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true))) {\n dom.add(block, 'br');\n }\n };\n var insert$1 = function (editor, evt) {\n var tmpRng, editableRoot, container, offset, parentBlock, shiftKey;\n var newBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer;\n var dom = editor.dom;\n var schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements();\n var rng = editor.selection.getRng();\n var createNewBlock = function (name) {\n var node = container, block, clonedNode, caretNode;\n var textInlineElements = schema.getTextInlineElements();\n if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') {\n block = dom.create(name || newBlockName);\n setForcedBlockAttrs(editor, block);\n } else {\n block = parentBlock.cloneNode(false);\n }\n caretNode = block;\n if (Settings.shouldKeepStyles(editor) === false) {\n dom.setAttrib(block, 'style', null);\n dom.setAttrib(block, 'class', null);\n } else {\n do {\n if (textInlineElements[node.nodeName]) {\n if (isCaretNode(node) || Bookmarks.isBookmarkNode(node)) {\n continue;\n }\n clonedNode = node.cloneNode(false);\n dom.setAttrib(clonedNode, 'id', '');\n if (block.hasChildNodes()) {\n clonedNode.appendChild(block.firstChild);\n block.appendChild(clonedNode);\n } else {\n caretNode = clonedNode;\n block.appendChild(clonedNode);\n }\n }\n } while ((node = node.parentNode) && node !== editableRoot);\n }\n emptyBlock(caretNode);\n return block;\n };\n var isCaretAtStartOrEndOfBlock = function (start) {\n var node, name;\n var normalizedOffset = normalizeZwspOffset(start, container, offset);\n if (NodeType.isText(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.nodeValue.length)) {\n return false;\n }\n if (container.parentNode === parentBlock && isAfterLastNodeInContainer && !start) {\n return true;\n }\n if (start && NodeType.isElement(container) && container === parentBlock.firstChild) {\n return true;\n }\n if (containerAndSiblingName(container, 'TABLE') || containerAndSiblingName(container, 'HR')) {\n return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start;\n }\n var walker = new TreeWalker(container, parentBlock);\n if (NodeType.isText(container)) {\n if (start && normalizedOffset === 0) {\n walker.prev();\n } else if (!start && normalizedOffset === container.nodeValue.length) {\n walker.next();\n }\n }\n while (node = walker.current()) {\n if (NodeType.isElement(node)) {\n if (!node.getAttribute('data-mce-bogus')) {\n name = node.nodeName.toLowerCase();\n if (nonEmptyElementsMap[name] && name !== 'br') {\n return false;\n }\n }\n } else if (NodeType.isText(node) && !/^[ \\t\\r\\n]*$/.test(node.nodeValue)) {\n return false;\n }\n if (start) {\n walker.prev();\n } else {\n walker.next();\n }\n }\n return true;\n };\n var insertNewBlockAfter = function () {\n if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName !== 'HGROUP') {\n newBlock = createNewBlock(newBlockName);\n } else {\n newBlock = createNewBlock();\n }\n if (Settings.shouldEndContainerOnEmptyBlock(editor) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock)) {\n newBlock = dom.split(containerBlock, parentBlock);\n } else {\n dom.insertAfter(newBlock, parentBlock);\n }\n NewLineUtils.moveToCaretPosition(editor, newBlock);\n };\n NormalizeRange.normalize(dom, rng).each(function (normRng) {\n rng.setStart(normRng.startContainer, normRng.startOffset);\n rng.setEnd(normRng.endContainer, normRng.endOffset);\n });\n container = rng.startContainer;\n offset = rng.startOffset;\n newBlockName = Settings.getForcedRootBlock(editor);\n shiftKey = !!(evt && evt.shiftKey);\n var ctrlKey = !!(evt && evt.ctrlKey);\n if (NodeType.isElement(container) && container.hasChildNodes()) {\n isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n if (isAfterLastNodeInContainer && NodeType.isText(container)) {\n offset = container.nodeValue.length;\n } else {\n offset = 0;\n }\n }\n editableRoot = getEditableRoot$1(dom, container);\n if (!editableRoot) {\n return;\n }\n if (newBlockName && !shiftKey || !newBlockName && shiftKey) {\n container = wrapSelfAndSiblingsInDefaultBlock(editor, newBlockName, rng, container, offset);\n }\n parentBlock = dom.getParent(container, dom.isBlock);\n containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : '';\n containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n if (containerBlockName === 'LI' && !ctrlKey) {\n parentBlock = containerBlock;\n containerBlock = containerBlock.parentNode;\n parentBlockName = containerBlockName;\n }\n if (/^(LI|DT|DD)$/.test(parentBlockName)) {\n if (dom.isEmpty(parentBlock)) {\n InsertLi.insert(editor, createNewBlock, containerBlock, parentBlock, newBlockName);\n return;\n }\n }\n if (newBlockName && parentBlock === editor.getBody()) {\n return;\n }\n newBlockName = newBlockName || 'P';\n if (isCaretContainerBlock(parentBlock)) {\n newBlock = showCaretContainerBlock(parentBlock);\n if (dom.isEmpty(parentBlock)) {\n emptyBlock(parentBlock);\n }\n NewLineUtils.moveToCaretPosition(editor, newBlock);\n } else if (isCaretAtStartOrEndOfBlock()) {\n insertNewBlockAfter();\n } else if (isCaretAtStartOrEndOfBlock(true)) {\n newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock);\n NewLineUtils.moveToCaretPosition(editor, containerAndSiblingName(parentBlock, 'HR') ? newBlock : parentBlock);\n } else {\n tmpRng = includeZwspInRange(rng).cloneRange();\n tmpRng.setEndAfter(parentBlock);\n fragment = tmpRng.extractContents();\n trimZwsp(fragment);\n trimLeadingLineBreaks(fragment);\n newBlock = fragment.firstChild;\n dom.insertAfter(fragment, parentBlock);\n trimInlineElementsOnLeftSideOfBlock(dom, nonEmptyElementsMap, newBlock);\n addBrToBlockIfNeeded(dom, parentBlock);\n if (dom.isEmpty(parentBlock)) {\n emptyBlock(parentBlock);\n }\n newBlock.normalize();\n if (dom.isEmpty(newBlock)) {\n dom.remove(newBlock);\n insertNewBlockAfter();\n } else {\n NewLineUtils.moveToCaretPosition(editor, newBlock);\n }\n }\n dom.setAttrib(newBlock, 'id', '');\n editor.fire('NewBlock', { newBlock: newBlock });\n };\n var InsertBlock = { insert: insert$1 };\n\n var hasRightSideContent = function (schema, container, parentBlock) {\n var walker = new TreeWalker(container, parentBlock);\n var node;\n var nonEmptyElementsMap = schema.getNonEmptyElements();\n while (node = walker.next()) {\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) {\n return true;\n }\n }\n };\n var scrollToBr = function (dom, selection, brElm) {\n var marker = dom.create('span', {}, '&nbsp;');\n brElm.parentNode.insertBefore(marker, brElm);\n selection.scrollIntoView(marker);\n dom.remove(marker);\n };\n var moveSelectionToBr = function (dom, selection, brElm, extraBr) {\n var rng = dom.createRng();\n if (!extraBr) {\n rng.setStartAfter(brElm);\n rng.setEndAfter(brElm);\n } else {\n rng.setStartBefore(brElm);\n rng.setEndBefore(brElm);\n }\n selection.setRng(rng);\n };\n var insertBrAtCaret = function (editor, evt) {\n var selection = editor.selection;\n var dom = editor.dom;\n var rng = selection.getRng();\n var brElm;\n var extraBr;\n NormalizeRange.normalize(dom, rng).each(function (normRng) {\n rng.setStart(normRng.startContainer, normRng.startOffset);\n rng.setEnd(normRng.endContainer, normRng.endOffset);\n });\n var offset = rng.startOffset;\n var container = rng.startContainer;\n if (container.nodeType === 1 && container.hasChildNodes()) {\n var isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n if (isAfterLastNodeInContainer && container.nodeType === 3) {\n offset = container.nodeValue.length;\n } else {\n offset = 0;\n }\n }\n var parentBlock = dom.getParent(container, dom.isBlock);\n var containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n var containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n var isControlKey = !!(evt && evt.ctrlKey);\n if (containerBlockName === 'LI' && !isControlKey) {\n parentBlock = containerBlock;\n }\n if (container && container.nodeType === 3 && offset >= container.nodeValue.length) {\n if (!hasRightSideContent(editor.schema, container, parentBlock)) {\n brElm = dom.create('br');\n rng.insertNode(brElm);\n rng.setStartAfter(brElm);\n rng.setEndAfter(brElm);\n extraBr = true;\n }\n }\n brElm = dom.create('br');\n rangeInsertNode(dom, rng, brElm);\n scrollToBr(dom, selection, brElm);\n moveSelectionToBr(dom, selection, brElm, extraBr);\n editor.undoManager.add();\n };\n var insertBrBefore = function (editor, inline) {\n var br = Element.fromTag('br');\n before(Element.fromDom(inline), br);\n editor.undoManager.add();\n };\n var insertBrAfter = function (editor, inline) {\n if (!hasBrAfter(editor.getBody(), inline)) {\n after(Element.fromDom(inline), Element.fromTag('br'));\n }\n var br = Element.fromTag('br');\n after(Element.fromDom(inline), br);\n scrollToBr(editor.dom, editor.selection, br.dom());\n moveSelectionToBr(editor.dom, editor.selection, br.dom(), false);\n editor.undoManager.add();\n };\n var isBeforeBr$1 = function (pos) {\n return NodeType.isBr(pos.getNode());\n };\n var hasBrAfter = function (rootNode, startNode) {\n if (isBeforeBr$1(CaretPosition$1.after(startNode))) {\n return true;\n } else {\n return CaretFinder.nextPosition(rootNode, CaretPosition$1.after(startNode)).map(function (pos) {\n return NodeType.isBr(pos.getNode());\n }).getOr(false);\n }\n };\n var isAnchorLink = function (elm) {\n return elm && elm.nodeName === 'A' && 'href' in elm;\n };\n var isInsideAnchor = function (location) {\n return location.fold(constant(false), isAnchorLink, isAnchorLink, constant(false));\n };\n var readInlineAnchorLocation = function (editor) {\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n var position = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), position).filter(isInsideAnchor);\n };\n var insertBrOutsideAnchor = function (editor, location) {\n location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop);\n };\n var insert$2 = function (editor, evt) {\n var anchorLocation = readInlineAnchorLocation(editor);\n if (anchorLocation.isSome()) {\n anchorLocation.each(curry(insertBrOutsideAnchor, editor));\n } else {\n insertBrAtCaret(editor, evt);\n }\n };\n var InsertBr = { insert: insert$2 };\n\n var matchesSelector = function (editor, selector) {\n return NewLineUtils.getParentBlock(editor).filter(function (parentBlock) {\n return selector.length > 0 && is(Element.fromDom(parentBlock), selector);\n }).isSome();\n };\n var shouldInsertBr = function (editor) {\n return matchesSelector(editor, Settings.getBrNewLineSelector(editor));\n };\n var shouldBlockNewLine = function (editor) {\n return matchesSelector(editor, Settings.getNoNewLineSelector(editor));\n };\n var ContextSelectors = {\n shouldInsertBr: shouldInsertBr,\n shouldBlockNewLine: shouldBlockNewLine\n };\n\n var newLineAction = Adt.generate([\n { br: [] },\n { block: [] },\n { none: [] }\n ]);\n var shouldBlockNewLine$1 = function (editor, shiftKey) {\n return ContextSelectors.shouldBlockNewLine(editor);\n };\n var isBrMode = function (requiredState) {\n return function (editor, shiftKey) {\n var brMode = Settings.getForcedRootBlock(editor) === '';\n return brMode === requiredState;\n };\n };\n var inListBlock = function (requiredState) {\n return function (editor, shiftKey) {\n return NewLineUtils.isListItemParentBlock(editor) === requiredState;\n };\n };\n var inBlock = function (blockName, requiredState) {\n return function (editor, shiftKey) {\n var state = NewLineUtils.getParentBlockName(editor) === blockName.toUpperCase();\n return state === requiredState;\n };\n };\n var inPreBlock = function (requiredState) {\n return inBlock('pre', requiredState);\n };\n var inSummaryBlock = function () {\n return inBlock('summary', true);\n };\n var shouldPutBrInPre$1 = function (requiredState) {\n return function (editor, shiftKey) {\n return Settings.shouldPutBrInPre(editor) === requiredState;\n };\n };\n var inBrContext = function (editor, shiftKey) {\n return ContextSelectors.shouldInsertBr(editor);\n };\n var hasShiftKey = function (editor, shiftKey) {\n return shiftKey;\n };\n var canInsertIntoEditableRoot = function (editor) {\n var forcedRootBlock = Settings.getForcedRootBlock(editor);\n var rootEditable = NewLineUtils.getEditableRoot(editor.dom, editor.selection.getStart());\n return rootEditable && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock ? forcedRootBlock : 'P');\n };\n var match$2 = function (predicates, action) {\n return function (editor, shiftKey) {\n var isMatch = foldl(predicates, function (res, p) {\n return res && p(editor, shiftKey);\n }, true);\n return isMatch ? Option.some(action) : Option.none();\n };\n };\n var getAction$1 = function (editor, evt) {\n return LazyEvaluator.evaluateUntil([\n match$2([shouldBlockNewLine$1], newLineAction.none()),\n match$2([inSummaryBlock()], newLineAction.br()),\n match$2([\n inPreBlock(true),\n shouldPutBrInPre$1(false),\n hasShiftKey\n ], newLineAction.br()),\n match$2([\n inPreBlock(true),\n shouldPutBrInPre$1(false)\n ], newLineAction.block()),\n match$2([\n inPreBlock(true),\n shouldPutBrInPre$1(true),\n hasShiftKey\n ], newLineAction.block()),\n match$2([\n inPreBlock(true),\n shouldPutBrInPre$1(true)\n ], newLineAction.br()),\n match$2([\n inListBlock(true),\n hasShiftKey\n ], newLineAction.br()),\n match$2([inListBlock(true)], newLineAction.block()),\n match$2([\n isBrMode(true),\n hasShiftKey,\n canInsertIntoEditableRoot\n ], newLineAction.block()),\n match$2([isBrMode(true)], newLineAction.br()),\n match$2([inBrContext], newLineAction.br()),\n match$2([\n isBrMode(false),\n hasShiftKey\n ], newLineAction.br()),\n match$2([canInsertIntoEditableRoot], newLineAction.block())\n ], [\n editor,\n !!(evt && evt.shiftKey)\n ]).getOr(newLineAction.none());\n };\n var NewLineAction = { getAction: getAction$1 };\n\n var insert$3 = function (editor, evt) {\n NewLineAction.getAction(editor, evt).fold(function () {\n InsertBr.insert(editor, evt);\n }, function () {\n InsertBlock.insert(editor, evt);\n }, noop);\n };\n var InsertNewLine = { insert: insert$3 };\n\n var handleEnterKeyEvent = function (editor, event) {\n if (event.isDefaultPrevented()) {\n return;\n }\n event.preventDefault();\n endTypingLevelIgnoreLocks(editor.undoManager);\n editor.undoManager.transact(function () {\n if (editor.selection.isCollapsed() === false) {\n editor.execCommand('Delete');\n }\n InsertNewLine.insert(editor, event);\n });\n };\n var setup$a = function (editor) {\n editor.on('keydown', function (event) {\n if (event.keyCode === VK.ENTER) {\n handleEnterKeyEvent(editor, event);\n }\n });\n };\n var EnterKey = { setup: setup$a };\n\n var insertTextAtPosition = function (text, pos) {\n var container = pos.container();\n var offset = pos.offset();\n if (NodeType.isText(container)) {\n container.insertData(offset, text);\n return Option.some(CaretPosition(container, offset + text.length));\n } else {\n return getElementFromPosition(pos).map(function (elm) {\n var textNode = Element.fromText(text);\n if (pos.isAtEnd()) {\n after(elm, textNode);\n } else {\n before(elm, textNode);\n }\n return CaretPosition(textNode.dom(), text.length);\n });\n }\n };\n var insertNbspAtPosition = curry(insertTextAtPosition, '\\xA0');\n var insertSpaceAtPosition = curry(insertTextAtPosition, ' ');\n\n var nbsp = '\\xA0';\n var isInMiddleOfText = function (pos) {\n return CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd();\n };\n var getClosestBlock$1 = function (root, pos) {\n var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);\n return head(parentBlocks).getOr(root);\n };\n var hasSpaceBefore = function (root, pos) {\n if (isInMiddleOfText(pos)) {\n return isAfterSpace(pos);\n } else {\n return isAfterSpace(pos) || CaretFinder.prevPosition(getClosestBlock$1(root, pos).dom(), pos).exists(isAfterSpace);\n }\n };\n var hasSpaceAfter = function (root, pos) {\n if (isInMiddleOfText(pos)) {\n return isBeforeSpace(pos);\n } else {\n return isBeforeSpace(pos) || CaretFinder.nextPosition(getClosestBlock$1(root, pos).dom(), pos).exists(isBeforeSpace);\n }\n };\n var isPreValue = function (value) {\n return contains([\n 'pre',\n 'pre-wrap'\n ], value);\n };\n var isInPre = function (pos) {\n return getElementFromPosition(pos).bind(function (elm) {\n return closest(elm, isElement$1);\n }).exists(function (elm) {\n return isPreValue(get$2(elm, 'white-space'));\n });\n };\n var isAtBeginningOfBody = function (root, pos) {\n return CaretFinder.prevPosition(root.dom(), pos).isNone();\n };\n var isAtEndOfBody = function (root, pos) {\n return CaretFinder.nextPosition(root.dom(), pos).isNone();\n };\n var isAtLineBoundary = function (root, pos) {\n return isAtBeginningOfBody(root, pos) || isAtEndOfBody(root, pos) || isAtStartOfBlock(root, pos) || isAtEndOfBlock(root, pos) || isAfterBr(root, pos) || isBeforeBr(root, pos);\n };\n var needsToHaveNbsp = function (root, pos) {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtLineBoundary(root, pos) || hasSpaceBefore(root, pos) || hasSpaceAfter(root, pos);\n }\n };\n var needsToBeNbspLeft = function (root, pos) {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtStartOfBlock(root, pos) || isBeforeBlock(root, pos) || isAfterBr(root, pos) || hasSpaceBefore(root, pos);\n }\n };\n var leanRight = function (pos) {\n var container = pos.container();\n var offset = pos.offset();\n if (NodeType.isText(container) && offset < container.data.length) {\n return CaretPosition(container, offset + 1);\n } else {\n return pos;\n }\n };\n var needsToBeNbspRight = function (root, pos) {\n var afterPos = leanRight(pos);\n if (isInPre(afterPos)) {\n return false;\n } else {\n return isAtEndOfBlock(root, afterPos) || isAfterBlock(root, afterPos) || isBeforeBr(root, afterPos) || hasSpaceAfter(root, afterPos);\n }\n };\n var needsToBeNbsp = function (root, pos) {\n return needsToBeNbspLeft(root, pos) || needsToBeNbspRight(root, pos);\n };\n var isNbspAt = function (text, offset) {\n return isNbsp(text.charAt(offset));\n };\n var hasNbsp = function (pos) {\n var container = pos.container();\n return NodeType.isText(container) && contains$1(container.data, nbsp);\n };\n var normalizeNbspMiddle = function (text) {\n var chars = text.split('');\n return map(chars, function (chr, i) {\n if (isNbsp(chr) && i > 0 && i < chars.length - 1 && isContent(chars[i - 1]) && isContent(chars[i + 1])) {\n return ' ';\n } else {\n return chr;\n }\n }).join('');\n };\n var normalizeNbspAtStart = function (root, node) {\n var text = node.data;\n var firstPos = CaretPosition(node, 0);\n if (isNbspAt(text, 0) && !needsToBeNbsp(root, firstPos)) {\n node.data = ' ' + text.slice(1);\n return true;\n } else {\n return false;\n }\n };\n var normalizeNbspInMiddleOfTextNode = function (node) {\n var text = node.data;\n var newText = normalizeNbspMiddle(text);\n if (newText !== text) {\n node.data = newText;\n return true;\n } else {\n return false;\n }\n };\n var normalizeNbspAtEnd = function (root, node) {\n var text = node.data;\n var lastPos = CaretPosition(node, text.length - 1);\n if (isNbspAt(text, text.length - 1) && !needsToBeNbsp(root, lastPos)) {\n node.data = text.slice(0, -1) + ' ';\n return true;\n } else {\n return false;\n }\n };\n var normalizeNbsps = function (root, pos) {\n return Option.some(pos).filter(hasNbsp).bind(function (pos) {\n var container = pos.container();\n var normalized = normalizeNbspAtStart(root, container) || normalizeNbspInMiddleOfTextNode(container) || normalizeNbspAtEnd(root, container);\n return normalized ? Option.some(pos) : Option.none();\n });\n };\n var normalizeNbspsInEditor = function (editor) {\n var root = Element.fromDom(editor.getBody());\n if (editor.selection.isCollapsed()) {\n normalizeNbsps(root, CaretPosition.fromRangeStart(editor.selection.getRng())).each(function (pos) {\n editor.selection.setRng(pos.toRange());\n });\n }\n };\n\n var locationToCaretPosition = function (root) {\n return function (location) {\n return location.fold(function (element) {\n return CaretFinder.prevPosition(root.dom(), CaretPosition$1.before(element));\n }, function (element) {\n return CaretFinder.firstPositionIn(element);\n }, function (element) {\n return CaretFinder.lastPositionIn(element);\n }, function (element) {\n return CaretFinder.nextPosition(root.dom(), CaretPosition$1.after(element));\n });\n };\n };\n var insertInlineBoundarySpaceOrNbsp = function (root, pos) {\n return function (checkPos) {\n return needsToHaveNbsp(root, checkPos) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos);\n };\n };\n var setSelection$1 = function (editor) {\n return function (pos) {\n editor.selection.setRng(pos.toRange());\n editor.nodeChanged();\n return true;\n };\n };\n var insertSpaceOrNbspAtSelection = function (editor) {\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n var root = Element.fromDom(editor.getBody());\n if (editor.selection.isCollapsed()) {\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n var caretPosition = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).bind(insertInlineBoundarySpaceOrNbsp(root, pos)).exists(setSelection$1(editor));\n } else {\n return false;\n }\n };\n\n var executeKeydownOverride$2 = function (editor, evt) {\n MatchKeys.execute([{\n keyCode: VK.SPACEBAR,\n action: MatchKeys.action(insertSpaceOrNbspAtSelection, editor)\n }], evt).each(function (_) {\n evt.preventDefault();\n });\n };\n var setup$b = function (editor) {\n editor.on('keydown', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeydownOverride$2(editor, evt);\n }\n });\n };\n var SpaceKey = { setup: setup$b };\n\n var findBlockCaretContainer = function (editor) {\n return descendant(Element.fromDom(editor.getBody()), '*[data-mce-caret]').fold(constant(null), function (elm) {\n return elm.dom();\n });\n };\n var removeIeControlRect = function (editor) {\n editor.selection.setRng(editor.selection.getRng());\n };\n var showBlockCaretContainer = function (editor, blockCaretContainer) {\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n showCaretContainerBlock(blockCaretContainer);\n removeIeControlRect(editor);\n editor.selection.scrollIntoView(blockCaretContainer);\n }\n };\n var handleBlockContainer = function (editor, e) {\n var blockCaretContainer = findBlockCaretContainer(editor);\n if (!blockCaretContainer) {\n return;\n }\n if (e.type === 'compositionstart') {\n e.preventDefault();\n e.stopPropagation();\n showBlockCaretContainer(editor, blockCaretContainer);\n return;\n }\n if (hasContent(blockCaretContainer)) {\n showBlockCaretContainer(editor, blockCaretContainer);\n editor.undoManager.add();\n }\n };\n var setup$c = function (editor) {\n editor.on('keyup compositionstart', curry(handleBlockContainer, editor));\n };\n var CaretContainerInput = { setup: setup$c };\n\n var browser$5 = detect$3().browser;\n var setupIeInput = function (editor) {\n var keypressThrotter = first(function () {\n if (!editor.composing) {\n normalizeNbspsInEditor(editor);\n }\n }, 0);\n if (browser$5.isIE()) {\n editor.on('keypress', function (e) {\n keypressThrotter.throttle();\n });\n editor.on('remove', function (e) {\n keypressThrotter.cancel();\n });\n }\n };\n var setup$d = function (editor) {\n setupIeInput(editor);\n editor.on('input', function (e) {\n if (e.isComposing === false) {\n normalizeNbspsInEditor(editor);\n }\n });\n };\n\n var executeKeydownOverride$3 = function (editor, evt) {\n MatchKeys.execute([\n {\n keyCode: VK.END,\n action: moveToLineEndPoint(editor, true)\n },\n {\n keyCode: VK.HOME,\n action: moveToLineEndPoint(editor, false)\n }\n ], evt).each(function (_) {\n evt.preventDefault();\n });\n };\n var setup$e = function (editor) {\n editor.on('keydown', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeydownOverride$3(editor, evt);\n }\n });\n };\n var HomeEndKeys = { setup: setup$e };\n\n var setup$f = function (editor) {\n var caret = BoundarySelection.setupSelectedState(editor);\n CaretContainerInput.setup(editor);\n ArrowKeys.setup(editor, caret);\n DeleteBackspaceKeys.setup(editor, caret);\n EnterKey.setup(editor);\n SpaceKey.setup(editor);\n setup$d(editor);\n HomeEndKeys.setup(editor);\n };\n var KeyboardOverrides = { setup: setup$f };\n\n var Quirks = function (editor) {\n var each = Tools.each;\n var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, settings = editor.settings, parser = editor.parser;\n var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit;\n var mceInternalUrlPrefix = 'data:text/mce-internal,';\n var mceInternalDataType = isIE ? 'Text' : 'URL';\n var setEditorCommandState = function (cmd, state) {\n try {\n editor.getDoc().execCommand(cmd, false, state);\n } catch (ex) {\n }\n };\n var isDefaultPrevented = function (e) {\n return e.isDefaultPrevented();\n };\n var setMceInternalContent = function (e) {\n var selectionHtml, internalContent;\n if (e.dataTransfer) {\n if (editor.selection.isCollapsed() && e.target.tagName === 'IMG') {\n selection.select(e.target);\n }\n selectionHtml = editor.selection.getContent();\n if (selectionHtml.length > 0) {\n internalContent = mceInternalUrlPrefix + escape(editor.id) + ',' + escape(selectionHtml);\n e.dataTransfer.setData(mceInternalDataType, internalContent);\n }\n }\n };\n var getMceInternalContent = function (e) {\n var internalContent;\n if (e.dataTransfer) {\n internalContent = e.dataTransfer.getData(mceInternalDataType);\n if (internalContent && internalContent.indexOf(mceInternalUrlPrefix) >= 0) {\n internalContent = internalContent.substr(mceInternalUrlPrefix.length).split(',');\n return {\n id: unescape(internalContent[0]),\n html: unescape(internalContent[1])\n };\n }\n }\n return null;\n };\n var insertClipboardContents = function (content, internal) {\n if (editor.queryCommandSupported('mceInsertClipboardContent')) {\n editor.execCommand('mceInsertClipboardContent', false, {\n content: content,\n internal: internal\n });\n } else {\n editor.execCommand('mceInsertContent', false, content);\n }\n };\n var emptyEditorWhenDeleting = function () {\n var serializeRng = function (rng) {\n var body = dom.create('body');\n var contents = rng.cloneContents();\n body.appendChild(contents);\n return selection.serializer.serialize(body, { format: 'html' });\n };\n var allContentsSelected = function (rng) {\n var selection = serializeRng(rng);\n var allRng = dom.createRng();\n allRng.selectNode(editor.getBody());\n var allSelection = serializeRng(allRng);\n return selection === allSelection;\n };\n editor.on('keydown', function (e) {\n var keyCode = e.keyCode;\n var isCollapsed, body;\n if (!isDefaultPrevented(e) && (keyCode === DELETE || keyCode === BACKSPACE)) {\n isCollapsed = editor.selection.isCollapsed();\n body = editor.getBody();\n if (isCollapsed && !dom.isEmpty(body)) {\n return;\n }\n if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) {\n return;\n }\n e.preventDefault();\n editor.setContent('');\n if (body.firstChild && dom.isBlock(body.firstChild)) {\n editor.selection.setCursorLocation(body.firstChild, 0);\n } else {\n editor.selection.setCursorLocation(body, 0);\n }\n editor.nodeChanged();\n }\n });\n };\n var selectAll = function () {\n editor.shortcuts.add('meta+a', null, 'SelectAll');\n };\n var inputMethodFocus = function () {\n if (!editor.inline) {\n dom.bind(editor.getDoc(), 'mousedown mouseup', function (e) {\n var rng;\n if (e.target === editor.getDoc().documentElement) {\n rng = selection.getRng();\n editor.getBody().focus();\n if (e.type === 'mousedown') {\n if (isCaretContainer(rng.startContainer)) {\n return;\n }\n selection.placeCaretAt(e.clientX, e.clientY);\n } else {\n selection.setRng(rng);\n }\n }\n });\n }\n };\n var removeHrOnBackspace = function () {\n editor.on('keydown', function (e) {\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n if (!editor.getBody().getElementsByTagName('hr').length) {\n return;\n }\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n var node = selection.getNode();\n var previousSibling = node.previousSibling;\n if (node.nodeName === 'HR') {\n dom.remove(node);\n e.preventDefault();\n return;\n }\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'hr') {\n dom.remove(previousSibling);\n e.preventDefault();\n }\n }\n }\n });\n };\n var focusBody = function () {\n if (!domGlobals.Range.prototype.getClientRects) {\n editor.on('mousedown', function (e) {\n if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') {\n var body_1 = editor.getBody();\n body_1.blur();\n Delay.setEditorTimeout(editor, function () {\n body_1.focus();\n });\n }\n });\n }\n };\n var selectControlElements = function () {\n editor.on('click', function (e) {\n var target = e.target;\n if (/^(IMG|HR)$/.test(target.nodeName) && dom.getContentEditableParent(target) !== 'false') {\n e.preventDefault();\n editor.selection.select(target);\n editor.nodeChanged();\n }\n if (target.nodeName === 'A' && dom.hasClass(target, 'mce-item-anchor')) {\n e.preventDefault();\n selection.select(target);\n }\n });\n };\n var removeStylesWhenDeletingAcrossBlockElements = function () {\n var getAttributeApplyFunction = function () {\n var template = dom.getAttribs(selection.getStart().cloneNode(false));\n return function () {\n var target = selection.getStart();\n if (target !== editor.getBody()) {\n dom.setAttrib(target, 'style', null);\n each(template, function (attr) {\n target.setAttributeNode(attr.cloneNode(true));\n });\n }\n };\n };\n var isSelectionAcrossElements = function () {\n return !selection.isCollapsed() && dom.getParent(selection.getStart(), dom.isBlock) !== dom.getParent(selection.getEnd(), dom.isBlock);\n };\n editor.on('keypress', function (e) {\n var applyAttributes;\n if (!isDefaultPrevented(e) && (e.keyCode === 8 || e.keyCode === 46) && isSelectionAcrossElements()) {\n applyAttributes = getAttributeApplyFunction();\n editor.getDoc().execCommand('delete', false, null);\n applyAttributes();\n e.preventDefault();\n return false;\n }\n });\n dom.bind(editor.getDoc(), 'cut', function (e) {\n var applyAttributes;\n if (!isDefaultPrevented(e) && isSelectionAcrossElements()) {\n applyAttributes = getAttributeApplyFunction();\n Delay.setEditorTimeout(editor, function () {\n applyAttributes();\n });\n }\n });\n };\n var disableBackspaceIntoATable = function () {\n editor.on('keydown', function (e) {\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n var previousSibling = selection.getNode().previousSibling;\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'table') {\n e.preventDefault();\n return false;\n }\n }\n }\n });\n };\n var removeBlockQuoteOnBackSpace = function () {\n editor.on('keydown', function (e) {\n var rng, container, offset, root, parent;\n if (isDefaultPrevented(e) || e.keyCode !== VK.BACKSPACE) {\n return;\n }\n rng = selection.getRng();\n container = rng.startContainer;\n offset = rng.startOffset;\n root = dom.getRoot();\n parent = container;\n if (!rng.collapsed || offset !== 0) {\n return;\n }\n while (parent && parent.parentNode && parent.parentNode.firstChild === parent && parent.parentNode !== root) {\n parent = parent.parentNode;\n }\n if (parent.tagName === 'BLOCKQUOTE') {\n editor.formatter.toggle('blockquote', null, parent);\n rng = dom.createRng();\n rng.setStart(container, 0);\n rng.setEnd(container, 0);\n selection.setRng(rng);\n }\n });\n };\n var setGeckoEditingOptions = function () {\n var setOpts = function () {\n setEditorCommandState('StyleWithCSS', false);\n setEditorCommandState('enableInlineTableEditing', false);\n if (!settings.object_resizing) {\n setEditorCommandState('enableObjectResizing', false);\n }\n };\n if (!settings.readonly) {\n editor.on('BeforeExecCommand mousedown', setOpts);\n }\n };\n var addBrAfterLastLinks = function () {\n var fixLinks = function () {\n each(dom.select('a'), function (node) {\n var parentNode = node.parentNode;\n var root = dom.getRoot();\n if (parentNode.lastChild === node) {\n while (parentNode && !dom.isBlock(parentNode)) {\n if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) {\n return;\n }\n parentNode = parentNode.parentNode;\n }\n dom.add(parentNode, 'br', { 'data-mce-bogus': 1 });\n }\n });\n };\n editor.on('SetContent ExecCommand', function (e) {\n if (e.type === 'setcontent' || e.command === 'mceInsertLink') {\n fixLinks();\n }\n });\n };\n var setDefaultBlockType = function () {\n if (settings.forced_root_block) {\n editor.on('init', function () {\n setEditorCommandState('DefaultParagraphSeparator', Settings.getForcedRootBlock(editor));\n });\n }\n };\n var normalizeSelection = function () {\n editor.on('keyup focusin mouseup', function (e) {\n if (!VK.modifierPressed(e)) {\n selection.normalize();\n }\n }, true);\n };\n var showBrokenImageIcon = function () {\n editor.contentStyles.push('img:-moz-broken {' + '-moz-force-broken-image-icon:1;' + 'min-width:24px;' + 'min-height:24px' + '}');\n };\n var restoreFocusOnKeyDown = function () {\n if (!editor.inline) {\n editor.on('keydown', function () {\n if (domGlobals.document.activeElement === domGlobals.document.body) {\n editor.getWin().focus();\n }\n });\n }\n };\n var bodyHeight = function () {\n if (!editor.inline) {\n editor.contentStyles.push('body {min-height: 150px}');\n editor.on('click', function (e) {\n var rng;\n if (e.target.nodeName === 'HTML') {\n if (Env.ie > 11) {\n editor.getBody().focus();\n return;\n }\n rng = editor.selection.getRng();\n editor.getBody().focus();\n editor.selection.setRng(rng);\n editor.selection.normalize();\n editor.nodeChanged();\n }\n });\n }\n };\n var blockCmdArrowNavigation = function () {\n if (Env.mac) {\n editor.on('keydown', function (e) {\n if (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) {\n e.preventDefault();\n var selection_1 = editor.selection.getSel();\n selection_1.modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary');\n }\n });\n }\n };\n var disableAutoUrlDetect = function () {\n setEditorCommandState('AutoUrlDetect', false);\n };\n var tapLinksAndImages = function () {\n editor.on('click', function (e) {\n var elm = e.target;\n do {\n if (elm.tagName === 'A') {\n e.preventDefault();\n return;\n }\n } while (elm = elm.parentNode);\n });\n editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}');\n };\n var blockFormSubmitInsideEditor = function () {\n editor.on('init', function () {\n editor.dom.bind(editor.getBody(), 'submit', function (e) {\n e.preventDefault();\n });\n });\n };\n var removeAppleInterchangeBrs = function () {\n parser.addNodeFilter('br', function (nodes) {\n var i = nodes.length;\n while (i--) {\n if (nodes[i].attr('class') === 'Apple-interchange-newline') {\n nodes[i].remove();\n }\n }\n });\n };\n var ieInternalDragAndDrop = function () {\n editor.on('dragstart', function (e) {\n setMceInternalContent(e);\n });\n editor.on('drop', function (e) {\n if (!isDefaultPrevented(e)) {\n var internalContent = getMceInternalContent(e);\n if (internalContent && internalContent.id !== editor.id) {\n e.preventDefault();\n var rng = CaretRangeFromPoint.fromPoint(e.x, e.y, editor.getDoc());\n selection.setRng(rng);\n insertClipboardContents(internalContent.html, true);\n }\n }\n });\n };\n var refreshContentEditable = function () {\n };\n var isHidden = function () {\n var sel;\n if (!isGecko || editor.removed) {\n return false;\n }\n sel = editor.selection.getSel();\n return !sel || !sel.rangeCount || sel.rangeCount === 0;\n };\n removeBlockQuoteOnBackSpace();\n emptyEditorWhenDeleting();\n if (!Env.windowsPhone) {\n normalizeSelection();\n }\n if (isWebKit) {\n inputMethodFocus();\n selectControlElements();\n setDefaultBlockType();\n blockFormSubmitInsideEditor();\n disableBackspaceIntoATable();\n removeAppleInterchangeBrs();\n if (Env.iOS) {\n restoreFocusOnKeyDown();\n bodyHeight();\n tapLinksAndImages();\n } else {\n selectAll();\n }\n }\n if (Env.ie >= 11) {\n bodyHeight();\n disableBackspaceIntoATable();\n }\n if (Env.ie) {\n selectAll();\n disableAutoUrlDetect();\n ieInternalDragAndDrop();\n }\n if (isGecko) {\n removeHrOnBackspace();\n focusBody();\n removeStylesWhenDeletingAcrossBlockElements();\n setGeckoEditingOptions();\n addBrAfterLastLinks();\n showBrokenImageIcon();\n blockCmdArrowNavigation();\n disableBackspaceIntoATable();\n }\n return {\n refreshContentEditable: refreshContentEditable,\n isHidden: isHidden\n };\n };\n\n var isTextBlockNode = function (node) {\n return NodeType.isElement(node) && isTextBlock(Element.fromDom(node));\n };\n var normalizeSelection$1 = function (editor) {\n var rng = editor.selection.getRng();\n var startPos = CaretPosition.fromRangeStart(rng);\n var endPos = CaretPosition.fromRangeEnd(rng);\n if (CaretPosition.isElementPosition(startPos)) {\n var container = startPos.container();\n if (isTextBlockNode(container)) {\n CaretFinder.firstPositionIn(container).each(function (pos) {\n return rng.setStart(pos.container(), pos.offset());\n });\n }\n }\n if (CaretPosition.isElementPosition(endPos)) {\n var container = startPos.container();\n if (isTextBlockNode(container)) {\n CaretFinder.lastPositionIn(container).each(function (pos) {\n return rng.setEnd(pos.container(), pos.offset());\n });\n }\n }\n editor.selection.setRng(RangeNormalizer.normalize(rng));\n };\n var setup$g = function (editor) {\n editor.on('click', function (e) {\n if (e.detail >= 3) {\n normalizeSelection$1(editor);\n }\n });\n };\n\n var preventSummaryToggle = function (editor) {\n editor.on('click', function (e) {\n if (editor.dom.getParent(e.target, 'details')) {\n e.preventDefault();\n }\n });\n };\n var filterDetails = function (editor) {\n editor.parser.addNodeFilter('details', function (elms) {\n each(elms, function (details) {\n details.attr('data-mce-open', details.attr('open'));\n details.attr('open', 'open');\n });\n });\n editor.serializer.addNodeFilter('details', function (elms) {\n each(elms, function (details) {\n var open = details.attr('data-mce-open');\n details.attr('open', isString(open) ? open : null);\n details.attr('data-mce-open', null);\n });\n });\n };\n var setup$h = function (editor) {\n preventSummaryToggle(editor);\n filterDetails(editor);\n };\n\n var DOM$3 = DOMUtils$1.DOM;\n var appendStyle = function (editor, text) {\n var head = Element.fromDom(editor.getDoc().head);\n var tag = Element.fromTag('style');\n set(tag, 'type', 'text/css');\n append(tag, Element.fromText(text));\n append(head, tag);\n };\n var createParser = function (editor) {\n var parser = DomParser(editor.settings, editor.schema);\n parser.addAttributeFilter('src,href,style,tabindex', function (nodes, name) {\n var i = nodes.length, node;\n var dom = editor.dom;\n var value, internalName;\n while (i--) {\n node = nodes[i];\n value = node.attr(name);\n internalName = 'data-mce-' + name;\n if (!node.attr(internalName)) {\n if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) {\n continue;\n }\n if (name === 'style') {\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\n if (!value.length) {\n value = null;\n }\n node.attr(internalName, value);\n node.attr(name, value);\n } else if (name === 'tabindex') {\n node.attr(internalName, value);\n node.attr(name, null);\n } else {\n node.attr(internalName, editor.convertURL(value, name, node.name));\n }\n }\n }\n });\n parser.addNodeFilter('script', function (nodes) {\n var i = nodes.length, node, type;\n while (i--) {\n node = nodes[i];\n type = node.attr('type') || 'no/type';\n if (type.indexOf('mce-') !== 0) {\n node.attr('type', 'mce-' + type);\n }\n }\n });\n parser.addNodeFilter('#cdata', function (nodes) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n node.type = 8;\n node.name = '#comment';\n node.value = '[CDATA[' + node.value + ']]';\n }\n });\n parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function (nodes) {\n var i = nodes.length, node;\n var nonEmptyElements = editor.schema.getNonEmptyElements();\n while (i--) {\n node = nodes[i];\n if (node.isEmpty(nonEmptyElements) && node.getAll('br').length === 0) {\n node.append(new Node$1('br', 1)).shortEnded = true;\n }\n }\n });\n return parser;\n };\n var autoFocus = function (editor) {\n if (editor.settings.auto_focus) {\n Delay.setEditorTimeout(editor, function () {\n var focusEditor;\n if (editor.settings.auto_focus === true) {\n focusEditor = editor;\n } else {\n focusEditor = editor.editorManager.get(editor.settings.auto_focus);\n }\n if (!focusEditor.destroyed) {\n focusEditor.focus();\n }\n }, 100);\n }\n };\n var initEditor = function (editor) {\n editor.bindPendingEventDelegates();\n editor.initialized = true;\n editor.fire('init');\n editor.focus(true);\n editor.nodeChanged({ initial: true });\n editor.execCallback('init_instance_callback', editor);\n autoFocus(editor);\n };\n var getStyleSheetLoader = function (editor) {\n return editor.inline ? DOM$3.styleSheetLoader : editor.dom.styleSheetLoader;\n };\n var initContentBody = function (editor, skipWrite) {\n var settings = editor.settings;\n var targetElm = editor.getElement();\n var doc = editor.getDoc(), body, contentCssText;\n if (!settings.inline) {\n editor.getElement().style.visibility = editor.orgVisibility;\n }\n if (!skipWrite && !editor.inline) {\n doc.open();\n doc.write(editor.iframeHTML);\n doc.close();\n }\n if (editor.inline) {\n editor.on('remove', function () {\n var bodyEl = this.getBody();\n DOM$3.removeClass(bodyEl, 'mce-content-body');\n DOM$3.removeClass(bodyEl, 'mce-edit-focus');\n DOM$3.setAttrib(bodyEl, 'contentEditable', null);\n });\n DOM$3.addClass(targetElm, 'mce-content-body');\n editor.contentDocument = doc = domGlobals.document;\n editor.contentWindow = domGlobals.window;\n editor.bodyElement = targetElm;\n editor.contentAreaContainer = targetElm;\n settings.root_name = targetElm.nodeName.toLowerCase();\n }\n body = editor.getBody();\n body.disabled = true;\n editor.readonly = settings.readonly;\n if (!editor.readonly) {\n if (editor.inline && DOM$3.getStyle(body, 'position', true) === 'static') {\n body.style.position = 'relative';\n }\n body.contentEditable = editor.getParam('content_editable_state', true);\n }\n body.disabled = false;\n editor.editorUpload = EditorUpload(editor);\n editor.schema = Schema(settings);\n editor.dom = DOMUtils$1(doc, {\n keep_values: true,\n url_converter: editor.convertURL,\n url_converter_scope: editor,\n hex_colors: settings.force_hex_style_colors,\n update_styles: true,\n root_element: editor.inline ? editor.getBody() : null,\n collect: function () {\n return editor.inline;\n },\n schema: editor.schema,\n contentCssCors: Settings.shouldUseContentCssCors(editor),\n referrerPolicy: Settings.getReferrerPolicy(editor),\n onSetAttrib: function (e) {\n editor.fire('SetAttrib', e);\n }\n });\n editor.parser = createParser(editor);\n editor.serializer = Serializer$1(settings, editor);\n editor.selection = Selection$1(editor.dom, editor.getWin(), editor.serializer, editor);\n editor.annotator = Annotator(editor);\n editor.formatter = Formatter(editor);\n editor.undoManager = UndoManager(editor);\n editor._nodeChangeDispatcher = new NodeChange(editor);\n editor._selectionOverrides = SelectionOverrides(editor);\n setup$h(editor);\n setup$g(editor);\n KeyboardOverrides.setup(editor);\n ForceBlocks.setup(editor);\n editor.fire('PreInit');\n if (!settings.browser_spellcheck && !settings.gecko_spellcheck) {\n doc.body.spellcheck = false;\n DOM$3.setAttrib(body, 'spellcheck', 'false');\n }\n editor.quirks = Quirks(editor);\n editor.fire('PostRender');\n var directionality = Settings.getDirectionality(editor);\n if (directionality !== undefined) {\n body.dir = directionality;\n }\n if (settings.protect) {\n editor.on('BeforeSetContent', function (e) {\n Tools.each(settings.protect, function (pattern) {\n e.content = e.content.replace(pattern, function (str) {\n return '<!--mce:protected ' + escape(str) + '-->';\n });\n });\n });\n }\n editor.on('SetContent', function () {\n editor.addVisual(editor.getBody());\n });\n editor.load({\n initial: true,\n format: 'html'\n });\n editor.startContent = editor.getContent({ format: 'raw' });\n editor.on('compositionstart compositionend', function (e) {\n editor.composing = e.type === 'compositionstart';\n });\n if (editor.contentStyles.length > 0) {\n contentCssText = '';\n Tools.each(editor.contentStyles, function (style) {\n contentCssText += style + '\\r\\n';\n });\n editor.dom.addStyle(contentCssText);\n }\n getStyleSheetLoader(editor).loadAll(editor.contentCSS, function (_) {\n initEditor(editor);\n }, function (urls) {\n initEditor(editor);\n });\n if (settings.content_style) {\n appendStyle(editor, settings.content_style);\n }\n };\n var InitContentBody = { initContentBody: initContentBody };\n\n var DOM$4 = DOMUtils$1.DOM;\n var relaxDomain = function (editor, ifr) {\n if (domGlobals.document.domain !== domGlobals.window.location.hostname && Env.browser.isIE()) {\n var bodyUuid = Uuid.uuid('mce');\n editor[bodyUuid] = function () {\n InitContentBody.initContentBody(editor);\n };\n var domainRelaxUrl = 'javascript:(function(){' + 'document.open();document.domain=\"' + domGlobals.document.domain + '\";' + 'var ed = window.parent.tinymce.get(\"' + editor.id + '\");document.write(ed.iframeHTML);' + 'document.close();ed.' + bodyUuid + '(true);})()';\n DOM$4.setAttrib(ifr, 'src', domainRelaxUrl);\n return true;\n }\n return false;\n };\n var createIframeElement = function (id, title, height, customAttrs) {\n var iframe = Element.fromTag('iframe');\n setAll(iframe, customAttrs);\n setAll(iframe, {\n id: id + '_ifr',\n frameBorder: '0',\n allowTransparency: 'true',\n title: title\n });\n add$3(iframe, 'tox-edit-area__iframe');\n return iframe;\n };\n var getIframeHtml = function (editor) {\n var bodyId, bodyClass, iframeHTML;\n iframeHTML = Settings.getDocType(editor) + '<html><head>';\n if (Settings.getDocumentBaseUrl(editor) !== editor.documentBaseUrl) {\n iframeHTML += '<base href=\"' + editor.documentBaseURI.getURI() + '\" />';\n }\n iframeHTML += '<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />';\n bodyId = Settings.getBodyId(editor);\n bodyClass = Settings.getBodyClass(editor);\n if (Settings.getContentSecurityPolicy(editor)) {\n iframeHTML += '<meta http-equiv=\"Content-Security-Policy\" content=\"' + Settings.getContentSecurityPolicy(editor) + '\" />';\n }\n iframeHTML += '</head><body id=\"' + bodyId + '\" class=\"mce-content-body ' + bodyClass + '\" data-id=\"' + editor.id + '\"><br></body></html>';\n return iframeHTML;\n };\n var createIframe = function (editor, o) {\n var title = editor.editorManager.translate('Rich Text Area. Press ALT-0 for help.');\n var ifr = createIframeElement(editor.id, title, o.height, Settings.getIframeAttrs(editor)).dom();\n ifr.onload = function () {\n ifr.onload = null;\n editor.fire('load');\n };\n var isDomainRelaxed = relaxDomain(editor, ifr);\n editor.contentAreaContainer = o.iframeContainer;\n editor.iframeElement = ifr;\n editor.iframeHTML = getIframeHtml(editor);\n DOM$4.add(o.iframeContainer, ifr);\n return isDomainRelaxed;\n };\n var init$1 = function (editor, boxInfo) {\n var isDomainRelaxed = createIframe(editor, boxInfo);\n if (boxInfo.editorContainer) {\n DOM$4.get(boxInfo.editorContainer).style.display = editor.orgDisplay;\n editor.hidden = DOM$4.isHidden(boxInfo.editorContainer);\n }\n editor.getElement().style.display = 'none';\n DOM$4.setAttrib(editor.id, 'aria-hidden', 'true');\n if (!isDomainRelaxed) {\n InitContentBody.initContentBody(editor);\n }\n };\n var InitIframe = { init: init$1 };\n\n var isContentCssSkinName = function (url) {\n return /^[a-z0-9\\-]+$/i.test(url);\n };\n var getContentCssUrls = function (editor) {\n var contentCss = Settings.getContentCss(editor);\n var skinUrl = editor.editorManager.baseURL + '/skins/content';\n var suffix = editor.editorManager.suffix;\n var contentCssFile = 'content' + suffix + '.css';\n var inline = editor.inline === true;\n return map(contentCss, function (url) {\n if (isContentCssSkinName(url) && !inline) {\n return skinUrl + '/' + url + '/' + contentCssFile;\n } else {\n return editor.documentBaseURI.toAbsolute(url);\n }\n });\n };\n var appendContentCssFromSettings = function (editor) {\n editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor));\n };\n\n var DOM$5 = DOMUtils$1.DOM;\n var initPlugin = function (editor, initializedPlugins, plugin) {\n var Plugin = PluginManager.get(plugin);\n var pluginUrl = PluginManager.urls[plugin] || editor.documentBaseUrl.replace(/\\/$/, '');\n plugin = Tools.trim(plugin);\n if (Plugin && Tools.inArray(initializedPlugins, plugin) === -1) {\n Tools.each(PluginManager.dependencies(plugin), function (dep) {\n initPlugin(editor, initializedPlugins, dep);\n });\n if (editor.plugins[plugin]) {\n return;\n }\n try {\n var pluginInstance = new Plugin(editor, pluginUrl, editor.$);\n editor.plugins[plugin] = pluginInstance;\n if (pluginInstance.init) {\n pluginInstance.init(editor, pluginUrl);\n initializedPlugins.push(plugin);\n }\n } catch (e) {\n ErrorReporter.pluginInitError(editor, plugin, e);\n }\n }\n };\n var trimLegacyPrefix = function (name) {\n return name.replace(/^\\-/, '');\n };\n var initPlugins = function (editor) {\n var initializedPlugins = [];\n Tools.each(editor.settings.plugins.split(/[ ,]/), function (name) {\n initPlugin(editor, initializedPlugins, trimLegacyPrefix(name));\n });\n };\n var initIcons = function (editor) {\n var iconPackName = Tools.trim(editor.settings.icons);\n var currentIcons = editor.ui.registry.getAll().icons;\n var defaultIcons = getAll();\n var loadIcons = __assign(__assign({}, defaultIcons), IconManager.get(iconPackName).icons);\n each$1(loadIcons, function (svgData, icon) {\n if (!has(currentIcons, icon)) {\n editor.ui.registry.addIcon(icon, svgData);\n }\n });\n };\n var initTheme = function (editor) {\n var theme = editor.settings.theme;\n if (isString(theme)) {\n editor.settings.theme = trimLegacyPrefix(theme);\n var Theme = ThemeManager.get(theme);\n editor.theme = new Theme(editor, ThemeManager.urls[theme]);\n if (editor.theme.init) {\n editor.theme.init(editor, ThemeManager.urls[theme] || editor.documentBaseUrl.replace(/\\/$/, ''), editor.$);\n }\n } else {\n editor.theme = {};\n }\n };\n var renderFromLoadedTheme = function (editor) {\n return editor.theme.renderUI();\n };\n var renderFromThemeFunc = function (editor) {\n var elm = editor.getElement();\n var theme = editor.settings.theme;\n var info = theme(editor, elm);\n if (info.editorContainer.nodeType) {\n info.editorContainer.id = info.editorContainer.id || editor.id + '_parent';\n }\n if (info.iframeContainer && info.iframeContainer.nodeType) {\n info.iframeContainer.id = info.iframeContainer.id || editor.id + '_iframecontainer';\n }\n info.height = info.iframeHeight ? info.iframeHeight : elm.offsetHeight;\n return info;\n };\n var createThemeFalseResult = function (element) {\n return {\n editorContainer: element,\n iframeContainer: element\n };\n };\n var renderThemeFalseIframe = function (targetElement) {\n var iframeContainer = DOM$5.create('div');\n DOM$5.insertAfter(iframeContainer, targetElement);\n return createThemeFalseResult(iframeContainer);\n };\n var renderThemeFalse = function (editor) {\n var targetElement = editor.getElement();\n return editor.inline ? createThemeFalseResult(null) : renderThemeFalseIframe(targetElement);\n };\n var renderThemeUi = function (editor) {\n var elm = editor.getElement();\n editor.orgDisplay = elm.style.display;\n if (isString(editor.settings.theme)) {\n return renderFromLoadedTheme(editor);\n } else if (isFunction(editor.settings.theme)) {\n return renderFromThemeFunc(editor);\n } else {\n return renderThemeFalse(editor);\n }\n };\n var init$2 = function (editor) {\n editor.fire('ScriptsLoaded');\n initIcons(editor);\n initTheme(editor);\n initPlugins(editor);\n var boxInfo = renderThemeUi(editor);\n editor.editorContainer = boxInfo.editorContainer ? boxInfo.editorContainer : null;\n appendContentCssFromSettings(editor);\n if (editor.inline) {\n return InitContentBody.initContentBody(editor);\n } else {\n return InitIframe.init(editor, boxInfo);\n }\n };\n var Init = { init: init$2 };\n\n var DOM$6 = DOMUtils$1.DOM;\n var hasSkipLoadPrefix = function (name) {\n return name.charAt(0) === '-';\n };\n var loadLanguage = function (scriptLoader, editor) {\n var languageCode = Settings.getLanguageCode(editor);\n var languageUrl = Settings.getLanguageUrl(editor);\n if (I18n.hasCode(languageCode) === false && languageCode !== 'en') {\n var url_1 = languageUrl !== '' ? languageUrl : editor.editorManager.baseURL + '/langs/' + languageCode + '.js';\n scriptLoader.add(url_1, noop, undefined, function () {\n ErrorReporter.languageLoadError(url_1, languageCode);\n });\n }\n };\n var loadTheme = function (scriptLoader, editor, suffix, callback) {\n var settings = editor.settings, theme = settings.theme;\n if (isString(theme)) {\n if (!hasSkipLoadPrefix(theme) && !ThemeManager.urls.hasOwnProperty(theme)) {\n var themeUrl = settings.theme_url;\n if (themeUrl) {\n ThemeManager.load(theme, editor.documentBaseURI.toAbsolute(themeUrl));\n } else {\n ThemeManager.load(theme, 'themes/' + theme + '/theme' + suffix + '.js');\n }\n }\n scriptLoader.loadQueue(function () {\n ThemeManager.waitFor(theme, callback);\n });\n } else {\n callback();\n }\n };\n var getIconsUrlMetaFromUrl = function (editor) {\n return Option.from(Settings.getIconsUrl(editor)).filter(function (url) {\n return url.length > 0;\n }).map(function (url) {\n return {\n url: url,\n name: Option.none()\n };\n });\n };\n var getIconsUrlMetaFromName = function (editor) {\n return Option.from(Settings.getIconPackName(editor)).filter(function (name) {\n return name.length > 0 && !IconManager.has(name);\n }).map(function (name) {\n return {\n url: editor.editorManager.baseURL + '/icons/' + name + '/icons.js',\n name: Option.some(name)\n };\n });\n };\n var loadIcons = function (scriptLoader, editor) {\n getIconsUrlMetaFromUrl(editor).orThunk(function () {\n return getIconsUrlMetaFromName(editor);\n }).each(function (urlMeta) {\n scriptLoader.add(urlMeta.url, noop, undefined, function () {\n ErrorReporter.iconsLoadError(urlMeta.url, urlMeta.name.getOrUndefined());\n });\n });\n };\n var loadPlugins = function (settings, suffix) {\n if (isArray(settings.plugins)) {\n settings.plugins = settings.plugins.join(' ');\n }\n Tools.each(settings.external_plugins, function (url, name) {\n PluginManager.load(name, url, noop, undefined, function () {\n ErrorReporter.pluginLoadError(name, url);\n });\n settings.plugins += ' ' + name;\n });\n Tools.each(settings.plugins.split(/[ ,]/), function (plugin) {\n plugin = Tools.trim(plugin);\n if (plugin && !PluginManager.urls[plugin]) {\n if (hasSkipLoadPrefix(plugin)) {\n plugin = plugin.substr(1, plugin.length);\n var dependencies = PluginManager.dependencies(plugin);\n Tools.each(dependencies, function (dep) {\n var defaultSettings = {\n prefix: 'plugins/',\n resource: dep,\n suffix: '/plugin' + suffix + '.js'\n };\n dep = PluginManager.createUrl(defaultSettings, dep);\n PluginManager.load(dep.resource, dep, noop, undefined, function () {\n ErrorReporter.pluginLoadError(dep.prefix + dep.resource + dep.suffix, dep.resource);\n });\n });\n } else {\n var url_2 = {\n prefix: 'plugins/',\n resource: plugin,\n suffix: '/plugin' + suffix + '.js'\n };\n PluginManager.load(plugin, url_2, noop, undefined, function () {\n ErrorReporter.pluginLoadError(url_2.prefix + url_2.resource + url_2.suffix, plugin);\n });\n }\n }\n });\n };\n var loadScripts = function (editor, suffix) {\n var scriptLoader = ScriptLoader.ScriptLoader;\n loadTheme(scriptLoader, editor, suffix, function () {\n loadLanguage(scriptLoader, editor);\n loadIcons(scriptLoader, editor);\n loadPlugins(editor.settings, suffix);\n scriptLoader.loadQueue(function () {\n if (!editor.removed) {\n Init.init(editor);\n }\n }, editor, function () {\n if (!editor.removed) {\n Init.init(editor);\n }\n });\n });\n };\n var render = function (editor) {\n var settings = editor.settings, id = editor.id;\n I18n.setCode(Settings.getLanguageCode(editor));\n var readyHandler = function () {\n DOM$6.unbind(domGlobals.window, 'ready', readyHandler);\n editor.render();\n };\n if (!EventUtils.Event.domLoaded) {\n DOM$6.bind(domGlobals.window, 'ready', readyHandler);\n return;\n }\n if (!editor.getElement()) {\n return;\n }\n if (!Env.contentEditable) {\n return;\n }\n if (!settings.inline) {\n editor.orgVisibility = editor.getElement().style.visibility;\n editor.getElement().style.visibility = 'hidden';\n } else {\n editor.inline = true;\n }\n var form = editor.getElement().form || DOM$6.getParent(id, 'form');\n if (form) {\n editor.formElement = form;\n if (settings.hidden_input && !NodeType.isTextareaOrInput(editor.getElement())) {\n DOM$6.insertAfter(DOM$6.create('input', {\n type: 'hidden',\n name: id\n }), id);\n editor.hasHiddenInput = true;\n }\n editor.formEventDelegate = function (e) {\n editor.fire(e.type, e);\n };\n DOM$6.bind(form, 'submit reset', editor.formEventDelegate);\n editor.on('reset', function () {\n editor.resetContent();\n });\n if (settings.submit_patch && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) {\n form._mceOldSubmit = form.submit;\n form.submit = function () {\n editor.editorManager.triggerSave();\n editor.setDirty(false);\n return form._mceOldSubmit(form);\n };\n }\n }\n editor.windowManager = WindowManager(editor);\n editor.notificationManager = NotificationManager(editor);\n if (settings.encoding === 'xml') {\n editor.on('GetContent', function (e) {\n if (e.save) {\n e.content = DOM$6.encode(e.content);\n }\n });\n }\n if (settings.add_form_submit_trigger) {\n editor.on('submit', function () {\n if (editor.initialized) {\n editor.save();\n }\n });\n }\n if (settings.add_unload_trigger) {\n editor._beforeUnload = function () {\n if (editor.initialized && !editor.destroyed && !editor.isHidden()) {\n editor.save({\n format: 'raw',\n no_events: true,\n set_dirty: false\n });\n }\n };\n editor.editorManager.on('BeforeUnload', editor._beforeUnload);\n }\n editor.editorManager.add(editor);\n loadScripts(editor, editor.suffix);\n };\n var Render = { render: render };\n\n var internalContentEditableAttr = 'data-mce-contenteditable';\n var toggleClass = function (elm, cls, state) {\n if (has$2(elm, cls) && state === false) {\n remove$4(elm, cls);\n } else if (state) {\n add$3(elm, cls);\n }\n };\n var setEditorCommandState = function (editor, cmd, state) {\n try {\n editor.getDoc().execCommand(cmd, false, state);\n } catch (ex) {\n }\n };\n var setContentEditable = function (elm, state) {\n elm.dom().contentEditable = state ? 'true' : 'false';\n };\n var switchOffContentEditableTrue = function (elm) {\n each(descendants$1(elm, '*[contenteditable=\"true\"]'), function (elm) {\n set(elm, internalContentEditableAttr, 'true');\n setContentEditable(elm, false);\n });\n };\n var switchOnContentEditableTrue = function (elm) {\n each(descendants$1(elm, '*[' + internalContentEditableAttr + '=\"true\"]'), function (elm) {\n remove(elm, internalContentEditableAttr);\n setContentEditable(elm, true);\n });\n };\n var removeFakeSelection = function (editor) {\n Option.from(editor.selection.getNode()).each(function (elm) {\n elm.removeAttribute('data-mce-selected');\n });\n };\n var restoreFakeSelection = function (editor) {\n editor.selection.setRng(editor.selection.getRng());\n };\n var toggleReadOnly = function (editor, state) {\n var body = Element.fromDom(editor.getBody());\n toggleClass(body, 'mce-content-readonly', state);\n if (state) {\n editor.selection.controlSelection.hideResizeRect();\n editor._selectionOverrides.hideFakeCaret();\n removeFakeSelection(editor);\n editor.readonly = true;\n setContentEditable(body, false);\n switchOffContentEditableTrue(body);\n } else {\n editor.readonly = false;\n setContentEditable(body, true);\n switchOnContentEditableTrue(body);\n setEditorCommandState(editor, 'StyleWithCSS', false);\n setEditorCommandState(editor, 'enableInlineTableEditing', false);\n setEditorCommandState(editor, 'enableObjectResizing', false);\n if (EditorFocus.hasEditorOrUiFocus(editor)) {\n editor.focus();\n }\n restoreFakeSelection(editor);\n editor.nodeChanged();\n }\n };\n var isReadOnly = function (editor) {\n return editor.readonly === true;\n };\n var registerFilters = function (editor) {\n editor.parser.addAttributeFilter('contenteditable', function (nodes) {\n if (isReadOnly(editor)) {\n each(nodes, function (node) {\n node.attr(internalContentEditableAttr, node.attr('contenteditable'));\n node.attr('contenteditable', 'false');\n });\n }\n });\n editor.serializer.addAttributeFilter(internalContentEditableAttr, function (nodes) {\n if (isReadOnly(editor)) {\n each(nodes, function (node) {\n node.attr('contenteditable', node.attr(internalContentEditableAttr));\n });\n }\n });\n editor.serializer.addTempAttr(internalContentEditableAttr);\n };\n var registerReadOnlyContentFilters = function (editor) {\n if (editor.serializer) {\n registerFilters(editor);\n } else {\n editor.on('PreInit', function () {\n registerFilters(editor);\n });\n }\n };\n var isClickEvent = function (e) {\n return e.type === 'click';\n };\n var preventReadOnlyEvents = function (e) {\n var target = e.target;\n if (isClickEvent(e) && target.tagName === 'A' && !VK.metaKeyPressed(e)) {\n e.preventDefault();\n }\n };\n var registerReadOnlySelectionBlockers = function (editor) {\n editor.on('ShowCaret', function (e) {\n if (isReadOnly(editor)) {\n e.preventDefault();\n }\n });\n editor.on('ObjectSelected', function (e) {\n if (isReadOnly(editor)) {\n e.preventDefault();\n }\n });\n };\n\n var defaultModes = [\n 'design',\n 'readonly'\n ];\n var switchToMode = function (editor, activeMode, availableModes, mode) {\n var oldMode = availableModes[activeMode.get()];\n var newMode = availableModes[mode];\n try {\n newMode.activate();\n } catch (e) {\n domGlobals.console.error('problem while activating editor mode ' + mode + ':', e);\n return;\n }\n oldMode.deactivate();\n if (oldMode.editorReadOnly !== newMode.editorReadOnly) {\n toggleReadOnly(editor, newMode.editorReadOnly);\n }\n activeMode.set(mode);\n Events.fireSwitchMode(editor, mode);\n };\n var setMode = function (editor, availableModes, activeMode, mode) {\n if (mode === activeMode.get()) {\n return;\n } else if (!has(availableModes, mode)) {\n throw new Error('Editor mode \\'' + mode + '\\' is invalid');\n }\n if (editor.initialized) {\n switchToMode(editor, activeMode, availableModes, mode);\n } else {\n editor.on('init', function () {\n return switchToMode(editor, activeMode, availableModes, mode);\n });\n }\n };\n var registerMode = function (availableModes, mode, api) {\n var _a;\n if (contains(defaultModes, mode)) {\n throw new Error('Cannot override default mode ' + mode);\n }\n return __assign(__assign({}, availableModes), (_a = {}, _a[mode] = __assign(__assign({}, api), {\n deactivate: function () {\n try {\n api.deactivate();\n } catch (e) {\n domGlobals.console.error('problem while deactivating editor mode ' + mode + ':', e);\n }\n }\n }), _a));\n };\n\n var create$4 = function (editor) {\n var activeMode = Cell('design');\n var availableModes = Cell({\n design: {\n activate: noop,\n deactivate: noop,\n editorReadOnly: false\n },\n readonly: {\n activate: noop,\n deactivate: noop,\n editorReadOnly: true\n }\n });\n registerReadOnlyContentFilters(editor);\n registerReadOnlySelectionBlockers(editor);\n return {\n isReadOnly: function () {\n return isReadOnly(editor);\n },\n set: function (mode) {\n return setMode(editor, availableModes.get(), activeMode, mode);\n },\n get: function () {\n return activeMode.get();\n },\n register: function (mode, api) {\n availableModes.set(registerMode(availableModes.get(), mode, api));\n }\n };\n };\n\n var hasOnlyOneChild$1 = function (node) {\n return node.firstChild && node.firstChild === node.lastChild;\n };\n var isPaddingNode = function (node) {\n return node.name === 'br' || node.value === '\\xA0';\n };\n var isPaddedEmptyBlock = function (schema, node) {\n var blockElements = schema.getBlockElements();\n return blockElements[node.name] && hasOnlyOneChild$1(node) && isPaddingNode(node.firstChild);\n };\n var isEmptyFragmentElement = function (schema, node) {\n var nonEmptyElements = schema.getNonEmptyElements();\n return node && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node));\n };\n var isListFragment = function (schema, fragment) {\n var firstChild = fragment.firstChild;\n var lastChild = fragment.lastChild;\n if (firstChild && firstChild.name === 'meta') {\n firstChild = firstChild.next;\n }\n if (lastChild && lastChild.attr('id') === 'mce_marker') {\n lastChild = lastChild.prev;\n }\n if (isEmptyFragmentElement(schema, lastChild)) {\n lastChild = lastChild.prev;\n }\n if (!firstChild || firstChild !== lastChild) {\n return false;\n }\n return firstChild.name === 'ul' || firstChild.name === 'ol';\n };\n var cleanupDomFragment = function (domFragment) {\n var firstChild = domFragment.firstChild;\n var lastChild = domFragment.lastChild;\n if (firstChild && firstChild.nodeName === 'META') {\n firstChild.parentNode.removeChild(firstChild);\n }\n if (lastChild && lastChild.id === 'mce_marker') {\n lastChild.parentNode.removeChild(lastChild);\n }\n return domFragment;\n };\n var toDomFragment = function (dom, serializer, fragment) {\n var html = serializer.serialize(fragment);\n var domFragment = dom.createFragment(html);\n return cleanupDomFragment(domFragment);\n };\n var listItems$1 = function (elm) {\n return Tools.grep(elm.childNodes, function (child) {\n return child.nodeName === 'LI';\n });\n };\n var isPadding = function (node) {\n return node.data === '\\xA0' || NodeType.isBr(node);\n };\n var isListItemPadded = function (node) {\n return node && node.firstChild && node.firstChild === node.lastChild && isPadding(node.firstChild);\n };\n var isEmptyOrPadded = function (elm) {\n return !elm.firstChild || isListItemPadded(elm);\n };\n var trimListItems = function (elms) {\n return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;\n };\n var getParentLi = function (dom, node) {\n var parentBlock = dom.getParent(node, dom.isBlock);\n return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;\n };\n var isParentBlockLi = function (dom, node) {\n return !!getParentLi(dom, node);\n };\n var getSplit = function (parentNode, rng) {\n var beforeRng = rng.cloneRange();\n var afterRng = rng.cloneRange();\n beforeRng.setStartBefore(parentNode);\n afterRng.setEndAfter(parentNode);\n return [\n beforeRng.cloneContents(),\n afterRng.cloneContents()\n ];\n };\n var findFirstIn = function (node, rootNode) {\n var caretPos = CaretPosition$1.before(node);\n var caretWalker = CaretWalker(rootNode);\n var newCaretPos = caretWalker.next(caretPos);\n return newCaretPos ? newCaretPos.toRange() : null;\n };\n var findLastOf = function (node, rootNode) {\n var caretPos = CaretPosition$1.after(node);\n var caretWalker = CaretWalker(rootNode);\n var newCaretPos = caretWalker.prev(caretPos);\n return newCaretPos ? newCaretPos.toRange() : null;\n };\n var insertMiddle = function (target, elms, rootNode, rng) {\n var parts = getSplit(target, rng);\n var parentElm = target.parentNode;\n parentElm.insertBefore(parts[0], target);\n Tools.each(elms, function (li) {\n parentElm.insertBefore(li, target);\n });\n parentElm.insertBefore(parts[1], target);\n parentElm.removeChild(target);\n return findLastOf(elms[elms.length - 1], rootNode);\n };\n var insertBefore$1 = function (target, elms, rootNode) {\n var parentElm = target.parentNode;\n Tools.each(elms, function (elm) {\n parentElm.insertBefore(elm, target);\n });\n return findFirstIn(target, rootNode);\n };\n var insertAfter$1 = function (target, elms, rootNode, dom) {\n dom.insertAfter(elms.reverse(), target);\n return findLastOf(elms[0], rootNode);\n };\n var insertAtCaret = function (serializer, dom, rng, fragment) {\n var domFragment = toDomFragment(dom, serializer, fragment);\n var liTarget = getParentLi(dom, rng.startContainer);\n var liElms = trimListItems(listItems$1(domFragment.firstChild));\n var BEGINNING = 1, END = 2;\n var rootNode = dom.getRoot();\n var isAt = function (location) {\n var caretPos = CaretPosition$1.fromRangeStart(rng);\n var caretWalker = CaretWalker(dom.getRoot());\n var newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);\n return newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true;\n };\n if (isAt(BEGINNING)) {\n return insertBefore$1(liTarget, liElms, rootNode);\n } else if (isAt(END)) {\n return insertAfter$1(liTarget, liElms, rootNode, dom);\n }\n return insertMiddle(liTarget, liElms, rootNode, rng);\n };\n var InsertList = {\n isListFragment: isListFragment,\n insertAtCaret: insertAtCaret,\n isParentBlockLi: isParentBlockLi,\n trimListItems: trimListItems,\n listItems: listItems$1\n };\n\n var isAfterNbsp = function (container, offset) {\n return NodeType.isText(container) && container.nodeValue[offset - 1] === '\\xA0';\n };\n var trimOrPadLeftRight = function (rng, html) {\n var container, offset;\n container = rng.startContainer;\n offset = rng.startOffset;\n var hasSiblingText = function (siblingName) {\n return container[siblingName] && container[siblingName].nodeType === 3;\n };\n if (container.nodeType === 3) {\n if (offset > 0) {\n html = html.replace(/^&nbsp;/, ' ');\n } else if (!hasSiblingText('previousSibling')) {\n html = html.replace(/^ /, '&nbsp;');\n }\n if (offset < container.length) {\n html = html.replace(/&nbsp;(<br>|)$/, ' ');\n } else if (!hasSiblingText('nextSibling')) {\n html = html.replace(/(&nbsp;| )(<br>|)$/, '&nbsp;');\n }\n }\n return html;\n };\n var trimNbspAfterDeleteAndPadValue = function (rng, value) {\n var container, offset;\n container = rng.startContainer;\n offset = rng.startOffset;\n if (container.nodeType === 3 && rng.collapsed) {\n if (container.data[offset] === '\\xA0') {\n container.deleteData(offset, 1);\n if (!/[\\u00a0| ]$/.test(value)) {\n value += ' ';\n }\n } else if (container.data[offset - 1] === '\\xA0') {\n container.deleteData(offset - 1, 1);\n if (!/[\\u00a0| ]$/.test(value)) {\n value = ' ' + value;\n }\n }\n }\n return value;\n };\n\n var isTableCell$5 = NodeType.matchNodeNames([\n 'td',\n 'th'\n ]);\n var selectionSetContent = function (editor, content) {\n var rng = editor.selection.getRng();\n var container = rng.startContainer;\n var offset = rng.startOffset;\n if (rng.collapsed && isAfterNbsp(container, offset) && NodeType.isText(container)) {\n container.insertData(offset - 1, ' ');\n container.deleteData(offset, 1);\n rng.setStart(container, offset);\n rng.setEnd(container, offset);\n editor.selection.setRng(rng);\n }\n editor.selection.setContent(content);\n };\n var validInsertion = function (editor, value, parentNode) {\n if (parentNode.getAttribute('data-mce-bogus') === 'all') {\n parentNode.parentNode.insertBefore(editor.dom.createFragment(value), parentNode);\n } else {\n var node = parentNode.firstChild;\n var node2 = parentNode.lastChild;\n if (!node || node === node2 && node.nodeName === 'BR') {\n editor.dom.setHTML(parentNode, value);\n } else {\n selectionSetContent(editor, value);\n }\n }\n };\n var trimBrsFromTableCell = function (dom, elm) {\n Option.from(dom.getParent(elm, 'td,th')).map(Element.fromDom).each(PaddingBr.trimBlockTrailingBr);\n };\n var reduceInlineTextElements = function (editor, merge) {\n var textInlineElements = editor.schema.getTextInlineElements();\n var dom = editor.dom;\n if (merge) {\n var root_1 = editor.getBody(), elementUtils_1 = new ElementUtils(dom);\n Tools.each(dom.select('*[data-mce-fragment]'), function (node) {\n for (var testNode = node.parentNode; testNode && testNode !== root_1; testNode = testNode.parentNode) {\n if (textInlineElements[node.nodeName.toLowerCase()] && elementUtils_1.compare(testNode, node)) {\n dom.remove(node, true);\n }\n }\n });\n }\n };\n var markFragmentElements = function (fragment) {\n var node = fragment;\n while (node = node.walk()) {\n if (node.type === 1) {\n node.attr('data-mce-fragment', '1');\n }\n }\n };\n var umarkFragmentElements = function (elm) {\n Tools.each(elm.getElementsByTagName('*'), function (elm) {\n elm.removeAttribute('data-mce-fragment');\n });\n };\n var isPartOfFragment = function (node) {\n return !!node.getAttribute('data-mce-fragment');\n };\n var canHaveChildren = function (editor, node) {\n return node && !editor.schema.getShortEndedElements()[node.nodeName];\n };\n var moveSelectionToMarker = function (editor, marker) {\n var parentEditableFalseElm, parentBlock, nextRng;\n var dom = editor.dom, selection = editor.selection;\n var node, node2;\n var getContentEditableFalseParent = function (node) {\n var root = editor.getBody();\n for (; node && node !== root; node = node.parentNode) {\n if (editor.dom.getContentEditable(node) === 'false') {\n return node;\n }\n }\n return null;\n };\n if (!marker) {\n return;\n }\n editor.selection.scrollIntoView(marker);\n parentEditableFalseElm = getContentEditableFalseParent(marker);\n if (parentEditableFalseElm) {\n dom.remove(marker);\n selection.select(parentEditableFalseElm);\n return;\n }\n var rng = dom.createRng();\n node = marker.previousSibling;\n if (node && node.nodeType === 3) {\n rng.setStart(node, node.nodeValue.length);\n if (!Env.ie) {\n node2 = marker.nextSibling;\n if (node2 && node2.nodeType === 3) {\n node.appendData(node2.data);\n node2.parentNode.removeChild(node2);\n }\n }\n } else {\n rng.setStartBefore(marker);\n rng.setEndBefore(marker);\n }\n var findNextCaretRng = function (rng) {\n var caretPos = CaretPosition$1.fromRangeStart(rng);\n var caretWalker = CaretWalker(editor.getBody());\n caretPos = caretWalker.next(caretPos);\n if (caretPos) {\n return caretPos.toRange();\n }\n };\n parentBlock = dom.getParent(marker, dom.isBlock);\n dom.remove(marker);\n if (parentBlock && dom.isEmpty(parentBlock)) {\n editor.$(parentBlock).empty();\n rng.setStart(parentBlock, 0);\n rng.setEnd(parentBlock, 0);\n if (!isTableCell$5(parentBlock) && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) {\n rng = nextRng;\n dom.remove(parentBlock);\n } else {\n dom.add(parentBlock, dom.create('br', { 'data-mce-bogus': '1' }));\n }\n }\n selection.setRng(rng);\n };\n var insertHtmlAtCaret = function (editor, value, details) {\n var parser, serializer, parentNode, rootNode, fragment, args;\n var marker, rng, node, bookmarkHtml, merge;\n var selection = editor.selection, dom = editor.dom;\n if (/^ | $/.test(value)) {\n value = trimOrPadLeftRight(selection.getRng(), value);\n }\n parser = editor.parser;\n merge = details.merge;\n serializer = Serializer({ validate: editor.settings.validate }, editor.schema);\n bookmarkHtml = '<span id=\"mce_marker\" data-mce-type=\"bookmark\">&#xFEFF;&#x200B;</span>';\n args = {\n content: value,\n format: 'html',\n selection: true,\n paste: details.paste\n };\n args = editor.fire('BeforeSetContent', args);\n if (args.isDefaultPrevented()) {\n editor.fire('SetContent', {\n content: args.content,\n format: 'html',\n selection: true,\n paste: details.paste\n });\n return;\n }\n value = args.content;\n if (value.indexOf('{$caret}') === -1) {\n value += '{$caret}';\n }\n value = value.replace(/\\{\\$caret\\}/, bookmarkHtml);\n rng = selection.getRng();\n var caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null);\n var body = editor.getBody();\n if (caretElement === body && selection.isCollapsed()) {\n if (dom.isBlock(body.firstChild) && canHaveChildren(editor, body.firstChild) && dom.isEmpty(body.firstChild)) {\n rng = dom.createRng();\n rng.setStart(body.firstChild, 0);\n rng.setEnd(body.firstChild, 0);\n selection.setRng(rng);\n }\n }\n if (!selection.isCollapsed()) {\n editor.selection.setRng(RangeNormalizer.normalize(editor.selection.getRng()));\n editor.getDoc().execCommand('Delete', false, null);\n value = trimNbspAfterDeleteAndPadValue(editor.selection.getRng(), value);\n }\n parentNode = selection.getNode();\n var parserArgs = {\n context: parentNode.nodeName.toLowerCase(),\n data: details.data,\n insert: true\n };\n fragment = parser.parse(value, parserArgs);\n if (details.paste === true && InsertList.isListFragment(editor.schema, fragment) && InsertList.isParentBlockLi(dom, parentNode)) {\n rng = InsertList.insertAtCaret(serializer, dom, editor.selection.getRng(), fragment);\n editor.selection.setRng(rng);\n editor.fire('SetContent', args);\n return;\n }\n markFragmentElements(fragment);\n node = fragment.lastChild;\n if (node.attr('id') === 'mce_marker') {\n marker = node;\n for (node = node.prev; node; node = node.walk(true)) {\n if (node.type === 3 || !dom.isBlock(node.name)) {\n if (editor.schema.isValidChild(node.parent.name, 'span')) {\n node.parent.insert(marker, node, node.name === 'br');\n }\n break;\n }\n }\n }\n editor._selectionOverrides.showBlockCaretContainer(parentNode);\n if (!parserArgs.invalid) {\n value = serializer.serialize(fragment);\n validInsertion(editor, value, parentNode);\n } else {\n selectionSetContent(editor, bookmarkHtml);\n parentNode = selection.getNode();\n rootNode = editor.getBody();\n if (parentNode.nodeType === 9) {\n parentNode = node = rootNode;\n } else {\n node = parentNode;\n }\n while (node !== rootNode) {\n parentNode = node;\n node = node.parentNode;\n }\n value = parentNode === rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode);\n value = serializer.serialize(parser.parse(value.replace(/<span (id=\"mce_marker\"|id=mce_marker).+?<\\/span>/i, function () {\n return serializer.serialize(fragment);\n })));\n if (parentNode === rootNode) {\n dom.setHTML(rootNode, value);\n } else {\n dom.setOuterHTML(parentNode, value);\n }\n }\n reduceInlineTextElements(editor, merge);\n moveSelectionToMarker(editor, dom.get('mce_marker'));\n umarkFragmentElements(editor.getBody());\n trimBrsFromTableCell(editor.dom, editor.selection.getStart());\n editor.fire('SetContent', args);\n editor.addVisual();\n };\n var processValue = function (value) {\n var details;\n if (typeof value !== 'string') {\n details = Tools.extend({\n paste: value.paste,\n data: { paste: value.paste }\n }, value);\n return {\n content: value.content,\n details: details\n };\n }\n return {\n content: value,\n details: {}\n };\n };\n var insertAtCaret$1 = function (editor, value) {\n var result = processValue(value);\n insertHtmlAtCaret(editor, result.content, result.details);\n };\n var InsertContent = { insertAtCaret: insertAtCaret$1 };\n\n var nativeCommand = function (editor, command) {\n editor.getDoc().execCommand(command, false, null);\n };\n var deleteCommand = function (editor) {\n if (Outdent.backspaceDelete(editor, false)) {\n return;\n } else if (CefDelete.backspaceDelete(editor, false)) {\n return;\n } else if (CefBoundaryDelete.backspaceDelete(editor, false)) {\n return;\n } else if (BoundaryDelete.backspaceDelete(editor, false)) {\n return;\n } else if (BlockBoundaryDelete.backspaceDelete(editor, false)) {\n return;\n } else if (TableDelete.backspaceDelete(editor)) {\n return;\n } else if (BlockRangeDelete.backspaceDelete(editor, false)) {\n return;\n } else if (InlineFormatDelete.backspaceDelete(editor, false)) {\n return;\n } else {\n nativeCommand(editor, 'Delete');\n DeleteUtils.paddEmptyBody(editor);\n }\n };\n var forwardDeleteCommand = function (editor) {\n if (CefDelete.backspaceDelete(editor, true)) {\n return;\n } else if (CefBoundaryDelete.backspaceDelete(editor, true)) {\n return;\n } else if (BoundaryDelete.backspaceDelete(editor, true)) {\n return;\n } else if (BlockBoundaryDelete.backspaceDelete(editor, true)) {\n return;\n } else if (TableDelete.backspaceDelete(editor)) {\n return;\n } else if (BlockRangeDelete.backspaceDelete(editor, true)) {\n return;\n } else if (InlineFormatDelete.backspaceDelete(editor, true)) {\n return;\n } else {\n nativeCommand(editor, 'ForwardDelete');\n }\n };\n var DeleteCommands = {\n deleteCommand: deleteCommand,\n forwardDeleteCommand: forwardDeleteCommand\n };\n\n var getSpecifiedFontProp = function (propName, rootElm, elm) {\n var getProperty = function (elm) {\n return getRaw(elm, propName);\n };\n var isRoot = function (elm) {\n return eq(Element.fromDom(rootElm), elm);\n };\n return closest(Element.fromDom(elm), function (elm) {\n return getProperty(elm).isSome();\n }, isRoot).bind(getProperty);\n };\n var round$1 = function (number, precision) {\n var factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n var toPt = function (fontSize, precision) {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round$1(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n }\n return fontSize;\n };\n var normalizeFontFamily = function (fontFamily) {\n return fontFamily.replace(/[\\'\\\"\\\\]/g, '').replace(/,\\s+/g, ',');\n };\n var getComputedFontProp = function (propName, elm) {\n return Option.from(DOMUtils$1.DOM.getStyle(elm, propName, true));\n };\n var getFontProp = function (propName) {\n return function (rootElm, elm) {\n return Option.from(elm).map(Element.fromDom).filter(isElement$1).bind(function (element) {\n return getSpecifiedFontProp(propName, rootElm, element.dom()).or(getComputedFontProp(propName, element.dom()));\n }).getOr('');\n };\n };\n var FontInfo = {\n getFontSize: getFontProp('font-size'),\n getFontFamily: compose(normalizeFontFamily, getFontProp('font-family')),\n toPt: toPt\n };\n\n var findFirstCaretElement = function (editor) {\n return CaretFinder.firstPositionIn(editor.getBody()).map(function (caret) {\n var container = caret.container();\n return NodeType.isText(container) ? container.parentNode : container;\n });\n };\n var isRangeAtStartOfNode = function (rng, root) {\n return rng.startContainer === root && rng.startOffset === 0;\n };\n var getCaretElement = function (editor) {\n return Option.from(editor.selection.getRng()).bind(function (rng) {\n var root = editor.getBody();\n return isRangeAtStartOfNode(rng, root) ? Option.none() : Option.from(editor.selection.getStart(true));\n });\n };\n var fromFontSizeNumber = function (editor, value) {\n if (/^[0-9\\.]+$/.test(value)) {\n var fontSizeNumber = parseInt(value, 10);\n if (fontSizeNumber >= 1 && fontSizeNumber <= 7) {\n var fontSizes = Settings.getFontStyleValues(editor);\n var fontClasses = Settings.getFontSizeClasses(editor);\n if (fontClasses) {\n return fontClasses[fontSizeNumber - 1] || value;\n } else {\n return fontSizes[fontSizeNumber - 1] || value;\n }\n } else {\n return value;\n }\n } else {\n return value;\n }\n };\n var normalizeFontNames = function (font) {\n var fonts = font.split(/\\s*,\\s*/);\n return map(fonts, function (font) {\n if (font.indexOf(' ') !== -1 && !(startsWith(font, '\"') || startsWith(font, '\\''))) {\n return '\\'' + font + '\\'';\n } else {\n return font;\n }\n }).join(',');\n };\n var fontNameAction = function (editor, value) {\n var font = fromFontSizeNumber(editor, value);\n editor.formatter.toggle('fontname', { value: normalizeFontNames(font) });\n editor.nodeChanged();\n };\n var fontNameQuery = function (editor) {\n return getCaretElement(editor).fold(function () {\n return findFirstCaretElement(editor).map(function (caretElement) {\n return FontInfo.getFontFamily(editor.getBody(), caretElement);\n }).getOr('');\n }, function (caretElement) {\n return FontInfo.getFontFamily(editor.getBody(), caretElement);\n });\n };\n var fontSizeAction = function (editor, value) {\n editor.formatter.toggle('fontsize', { value: fromFontSizeNumber(editor, value) });\n editor.nodeChanged();\n };\n var fontSizeQuery = function (editor) {\n return getCaretElement(editor).fold(function () {\n return findFirstCaretElement(editor).map(function (caretElement) {\n return FontInfo.getFontSize(editor.getBody(), caretElement);\n }).getOr('');\n }, function (caretElement) {\n return FontInfo.getFontSize(editor.getBody(), caretElement);\n });\n };\n\n var each$g = Tools.each;\n var map$3 = Tools.map, inArray$2 = Tools.inArray;\n var EditorCommands = function () {\n function EditorCommands(editor) {\n this.commands = {\n state: {},\n exec: {},\n value: {}\n };\n this.editor = editor;\n this.setupCommands(editor);\n }\n EditorCommands.prototype.execCommand = function (command, ui, value, args) {\n var func, customCommand, state = false;\n var self = this;\n if (self.editor.removed) {\n return;\n }\n if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(command) && (!args || !args.skip_focus)) {\n self.editor.focus();\n } else {\n SelectionBookmark.restore(self.editor);\n }\n args = self.editor.fire('BeforeExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n if (args.isDefaultPrevented()) {\n return false;\n }\n customCommand = command.toLowerCase();\n if (func = self.commands.exec[customCommand]) {\n func(customCommand, ui, value);\n self.editor.fire('ExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n return true;\n }\n each$g(this.editor.plugins, function (p) {\n if (p.execCommand && p.execCommand(command, ui, value)) {\n self.editor.fire('ExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n state = true;\n return false;\n }\n });\n if (state) {\n return state;\n }\n if (self.editor.theme && self.editor.theme.execCommand && self.editor.theme.execCommand(command, ui, value)) {\n self.editor.fire('ExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n return true;\n }\n try {\n state = self.editor.getDoc().execCommand(command, ui, value);\n } catch (ex) {\n }\n if (state) {\n self.editor.fire('ExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n return true;\n }\n return false;\n };\n EditorCommands.prototype.queryCommandState = function (command) {\n var func;\n if (this.editor.quirks.isHidden() || this.editor.removed) {\n return;\n }\n command = command.toLowerCase();\n if (func = this.commands.state[command]) {\n return func(command);\n }\n try {\n return this.editor.getDoc().queryCommandState(command);\n } catch (ex) {\n }\n return false;\n };\n EditorCommands.prototype.queryCommandValue = function (command) {\n var func;\n if (this.editor.quirks.isHidden() || this.editor.removed) {\n return;\n }\n command = command.toLowerCase();\n if (func = this.commands.value[command]) {\n return func(command);\n }\n try {\n return this.editor.getDoc().queryCommandValue(command);\n } catch (ex) {\n }\n };\n EditorCommands.prototype.addCommands = function (commandList, type) {\n var self = this;\n type = type || 'exec';\n each$g(commandList, function (callback, command) {\n each$g(command.toLowerCase().split(','), function (command) {\n self.commands[type][command] = callback;\n });\n });\n };\n EditorCommands.prototype.addCommand = function (command, callback, scope) {\n var _this = this;\n command = command.toLowerCase();\n this.commands.exec[command] = function (command, ui, value, args) {\n return callback.call(scope || _this.editor, ui, value, args);\n };\n };\n EditorCommands.prototype.queryCommandSupported = function (command) {\n command = command.toLowerCase();\n if (this.commands.exec[command]) {\n return true;\n }\n try {\n return this.editor.getDoc().queryCommandSupported(command);\n } catch (ex) {\n }\n return false;\n };\n EditorCommands.prototype.addQueryStateHandler = function (command, callback, scope) {\n var _this = this;\n command = command.toLowerCase();\n this.commands.state[command] = function () {\n return callback.call(scope || _this.editor);\n };\n };\n EditorCommands.prototype.addQueryValueHandler = function (command, callback, scope) {\n var _this = this;\n command = command.toLowerCase();\n this.commands.value[command] = function () {\n return callback.call(scope || _this.editor);\n };\n };\n EditorCommands.prototype.hasCustomCommand = function (command) {\n command = command.toLowerCase();\n return !!this.commands.exec[command];\n };\n EditorCommands.prototype.execNativeCommand = function (command, ui, value) {\n if (ui === undefined) {\n ui = false;\n }\n if (value === undefined) {\n value = null;\n }\n return this.editor.getDoc().execCommand(command, ui, value);\n };\n EditorCommands.prototype.isFormatMatch = function (name) {\n return this.editor.formatter.match(name);\n };\n EditorCommands.prototype.toggleFormat = function (name, value) {\n this.editor.formatter.toggle(name, value ? { value: value } : undefined);\n this.editor.nodeChanged();\n };\n EditorCommands.prototype.storeSelection = function (type) {\n this.selectionBookmark = this.editor.selection.getBookmark(type);\n };\n EditorCommands.prototype.restoreSelection = function () {\n this.editor.selection.moveToBookmark(this.selectionBookmark);\n };\n EditorCommands.prototype.setupCommands = function (editor) {\n var self = this;\n this.addCommands({\n 'mceResetDesignMode,mceBeginUndoLevel': function () {\n },\n 'mceEndUndoLevel,mceAddUndoLevel': function () {\n editor.undoManager.add();\n },\n 'Cut,Copy,Paste': function (command) {\n var doc = editor.getDoc();\n var failed;\n try {\n self.execNativeCommand(command);\n } catch (ex) {\n failed = true;\n }\n if (command === 'paste' && !doc.queryCommandEnabled(command)) {\n failed = true;\n }\n if (failed || !doc.queryCommandSupported(command)) {\n var msg = editor.translate('Your browser doesn\\'t support direct access to the clipboard. ' + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.');\n if (Env.mac) {\n msg = msg.replace(/Ctrl\\+/g, '\\u2318+');\n }\n editor.notificationManager.open({\n text: msg,\n type: 'error'\n });\n }\n },\n 'unlink': function () {\n if (editor.selection.isCollapsed()) {\n var elm = editor.dom.getParent(editor.selection.getStart(), 'a');\n if (elm) {\n editor.dom.remove(elm, true);\n }\n return;\n }\n editor.formatter.remove('link');\n },\n 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone': function (command) {\n var align = command.substring(7);\n if (align === 'full') {\n align = 'justify';\n }\n each$g('left,center,right,justify'.split(','), function (name) {\n if (align !== name) {\n editor.formatter.remove('align' + name);\n }\n });\n if (align !== 'none') {\n self.toggleFormat('align' + align);\n }\n },\n 'InsertUnorderedList,InsertOrderedList': function (command) {\n var listElm, listParent;\n self.execNativeCommand(command);\n listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul');\n if (listElm) {\n listParent = listElm.parentNode;\n if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) {\n self.storeSelection();\n editor.dom.split(listParent, listElm);\n self.restoreSelection();\n }\n }\n },\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) {\n self.toggleFormat(command);\n },\n 'ForeColor,HiliteColor': function (command, ui, value) {\n self.toggleFormat(command, value);\n },\n 'FontName': function (command, ui, value) {\n fontNameAction(editor, value);\n },\n 'FontSize': function (command, ui, value) {\n fontSizeAction(editor, value);\n },\n 'RemoveFormat': function (command) {\n editor.formatter.remove(command);\n },\n 'mceBlockQuote': function () {\n self.toggleFormat('blockquote');\n },\n 'FormatBlock': function (command, ui, value) {\n return self.toggleFormat(value || 'p');\n },\n 'mceCleanup': function () {\n var bookmark = editor.selection.getBookmark();\n editor.setContent(editor.getContent());\n editor.selection.moveToBookmark(bookmark);\n },\n 'mceRemoveNode': function (command, ui, value) {\n var node = value || editor.selection.getNode();\n if (node !== editor.getBody()) {\n self.storeSelection();\n editor.dom.remove(node, true);\n self.restoreSelection();\n }\n },\n 'mceSelectNodeDepth': function (command, ui, value) {\n var counter = 0;\n editor.dom.getParent(editor.selection.getNode(), function (node) {\n if (node.nodeType === 1 && counter++ === value) {\n editor.selection.select(node);\n return false;\n }\n }, editor.getBody());\n },\n 'mceSelectNode': function (command, ui, value) {\n editor.selection.select(value);\n },\n 'mceInsertContent': function (command, ui, value) {\n InsertContent.insertAtCaret(editor, value);\n },\n 'mceInsertRawHTML': function (command, ui, value) {\n editor.selection.setContent('tiny_mce_marker');\n var content = editor.getContent();\n editor.setContent(content.replace(/tiny_mce_marker/g, function () {\n return value;\n }));\n },\n 'mceInsertNewLine': function (command, ui, value) {\n InsertNewLine.insert(editor, value);\n },\n 'mceToggleFormat': function (command, ui, value) {\n self.toggleFormat(value);\n },\n 'mceSetContent': function (command, ui, value) {\n editor.setContent(value);\n },\n 'Indent,Outdent': function (command) {\n handle(editor, command);\n },\n 'mceRepaint': function () {\n },\n 'InsertHorizontalRule': function () {\n editor.execCommand('mceInsertContent', false, '<hr />');\n },\n 'mceToggleVisualAid': function () {\n editor.hasVisual = !editor.hasVisual;\n editor.addVisual();\n },\n 'mceReplaceContent': function (command, ui, value) {\n editor.execCommand('mceInsertContent', false, value.replace(/\\{\\$selection\\}/g, editor.selection.getContent({ format: 'text' })));\n },\n 'mceInsertLink': function (command, ui, value) {\n var anchor;\n if (typeof value === 'string') {\n value = { href: value };\n }\n anchor = editor.dom.getParent(editor.selection.getNode(), 'a');\n value.href = value.href.replace(/ /g, '%20');\n if (!anchor || !value.href) {\n editor.formatter.remove('link');\n }\n if (value.href) {\n editor.formatter.apply('link', value, anchor);\n }\n },\n 'selectAll': function () {\n var editingHost = editor.dom.getParent(editor.selection.getStart(), NodeType.isContentEditableTrue);\n if (editingHost) {\n var rng = editor.dom.createRng();\n rng.selectNodeContents(editingHost);\n editor.selection.setRng(rng);\n }\n },\n 'delete': function () {\n DeleteCommands.deleteCommand(editor);\n },\n 'forwardDelete': function () {\n DeleteCommands.forwardDeleteCommand(editor);\n },\n 'mceNewDocument': function () {\n editor.setContent('');\n },\n 'InsertLineBreak': function (command, ui, value) {\n InsertBr.insert(editor, value);\n return true;\n }\n });\n var alignStates = function (name) {\n return function () {\n var nodes = editor.selection.isCollapsed() ? [editor.dom.getParent(editor.selection.getNode(), editor.dom.isBlock)] : editor.selection.getSelectedBlocks();\n var matches = map$3(nodes, function (node) {\n return !!editor.formatter.matchNode(node, name);\n });\n return inArray$2(matches, true) !== -1;\n };\n };\n self.addCommands({\n 'JustifyLeft': alignStates('alignleft'),\n 'JustifyCenter': alignStates('aligncenter'),\n 'JustifyRight': alignStates('alignright'),\n 'JustifyFull': alignStates('alignjustify'),\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) {\n return self.isFormatMatch(command);\n },\n 'mceBlockQuote': function () {\n return self.isFormatMatch('blockquote');\n },\n 'Outdent': function () {\n return canOutdent(editor);\n },\n 'InsertUnorderedList,InsertOrderedList': function (command) {\n var list = editor.dom.getParent(editor.selection.getNode(), 'ul,ol');\n return list && (command === 'insertunorderedlist' && list.tagName === 'UL' || command === 'insertorderedlist' && list.tagName === 'OL');\n }\n }, 'state');\n self.addCommands({\n Undo: function () {\n editor.undoManager.undo();\n },\n Redo: function () {\n editor.undoManager.redo();\n }\n });\n self.addQueryValueHandler('FontName', function () {\n return fontNameQuery(editor);\n }, this);\n self.addQueryValueHandler('FontSize', function () {\n return fontSizeQuery(editor);\n }, this);\n };\n return EditorCommands;\n }();\n\n var nativeEvents = Tools.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel', ' ');\n var EventDispatcher = function () {\n function EventDispatcher(settings) {\n this.bindings = {};\n this.settings = settings || {};\n this.scope = this.settings.scope || this;\n this.toggleEvent = this.settings.toggleEvent || never;\n }\n EventDispatcher.isNative = function (name) {\n return !!nativeEvents[name.toLowerCase()];\n };\n EventDispatcher.prototype.fire = function (name, args) {\n var handlers, i, l, callback;\n name = name.toLowerCase();\n args = args || {};\n args.type = name;\n if (!args.target) {\n args.target = this.scope;\n }\n if (!args.preventDefault) {\n args.preventDefault = function () {\n args.isDefaultPrevented = always;\n };\n args.stopPropagation = function () {\n args.isPropagationStopped = always;\n };\n args.stopImmediatePropagation = function () {\n args.isImmediatePropagationStopped = always;\n };\n args.isDefaultPrevented = never;\n args.isPropagationStopped = never;\n args.isImmediatePropagationStopped = never;\n }\n if (this.settings.beforeFire) {\n this.settings.beforeFire(args);\n }\n handlers = this.bindings[name];\n if (handlers) {\n for (i = 0, l = handlers.length; i < l; i++) {\n callback = handlers[i];\n if (callback.once) {\n this.off(name, callback.func);\n }\n if (args.isImmediatePropagationStopped()) {\n args.stopPropagation();\n return args;\n }\n if (callback.func.call(this.scope, args) === false) {\n args.preventDefault();\n return args;\n }\n }\n }\n return args;\n };\n EventDispatcher.prototype.on = function (name, callback, prepend, extra) {\n var handlers, names, i;\n if (callback === false) {\n callback = never;\n }\n if (callback) {\n var wrappedCallback = { func: callback };\n if (extra) {\n Tools.extend(wrappedCallback, extra);\n }\n names = name.toLowerCase().split(' ');\n i = names.length;\n while (i--) {\n name = names[i];\n handlers = this.bindings[name];\n if (!handlers) {\n handlers = this.bindings[name] = [];\n this.toggleEvent(name, true);\n }\n if (prepend) {\n handlers.unshift(wrappedCallback);\n } else {\n handlers.push(wrappedCallback);\n }\n }\n }\n return this;\n };\n EventDispatcher.prototype.off = function (name, callback) {\n var i, handlers, bindingName, names, hi;\n if (name) {\n names = name.toLowerCase().split(' ');\n i = names.length;\n while (i--) {\n name = names[i];\n handlers = this.bindings[name];\n if (!name) {\n for (bindingName in this.bindings) {\n this.toggleEvent(bindingName, false);\n delete this.bindings[bindingName];\n }\n return this;\n }\n if (handlers) {\n if (!callback) {\n handlers.length = 0;\n } else {\n hi = handlers.length;\n while (hi--) {\n if (handlers[hi].func === callback) {\n handlers = handlers.slice(0, hi).concat(handlers.slice(hi + 1));\n this.bindings[name] = handlers;\n }\n }\n }\n if (!handlers.length) {\n this.toggleEvent(name, false);\n delete this.bindings[name];\n }\n }\n }\n } else {\n for (name in this.bindings) {\n this.toggleEvent(name, false);\n }\n this.bindings = {};\n }\n return this;\n };\n EventDispatcher.prototype.once = function (name, callback, prepend) {\n return this.on(name, callback, prepend, { once: true });\n };\n EventDispatcher.prototype.has = function (name) {\n name = name.toLowerCase();\n return !(!this.bindings[name] || this.bindings[name].length === 0);\n };\n return EventDispatcher;\n }();\n\n var getEventDispatcher = function (obj) {\n if (!obj._eventDispatcher) {\n obj._eventDispatcher = new EventDispatcher({\n scope: obj,\n toggleEvent: function (name, state) {\n if (EventDispatcher.isNative(name) && obj.toggleNativeEvent) {\n obj.toggleNativeEvent(name, state);\n }\n }\n });\n }\n return obj._eventDispatcher;\n };\n var Observable = {\n fire: function (name, args, bubble) {\n var self = this;\n if (self.removed && name !== 'remove' && name !== 'detach') {\n return args;\n }\n var dispatcherArgs = getEventDispatcher(self).fire(name, args);\n if (bubble !== false && self.parent) {\n var parent = self.parent();\n while (parent && !dispatcherArgs.isPropagationStopped()) {\n parent.fire(name, dispatcherArgs, false);\n parent = parent.parent();\n }\n }\n return dispatcherArgs;\n },\n on: function (name, callback, prepend) {\n return getEventDispatcher(this).on(name, callback, prepend);\n },\n off: function (name, callback) {\n return getEventDispatcher(this).off(name, callback);\n },\n once: function (name, callback) {\n return getEventDispatcher(this).once(name, callback);\n },\n hasEventListeners: function (name) {\n return getEventDispatcher(this).has(name);\n }\n };\n\n var DOM$7 = DOMUtils$1.DOM;\n var customEventRootDelegates;\n var getEventTarget = function (editor, eventName) {\n if (eventName === 'selectionchange') {\n return editor.getDoc();\n }\n if (!editor.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(eventName)) {\n return editor.getDoc().documentElement;\n }\n if (editor.settings.event_root) {\n if (!editor.eventRoot) {\n editor.eventRoot = DOM$7.select(editor.settings.event_root)[0];\n }\n return editor.eventRoot;\n }\n return editor.getBody();\n };\n var isListening = function (editor) {\n return !editor.hidden && !isReadOnly(editor);\n };\n var fireEvent = function (editor, eventName, e) {\n if (isListening(editor)) {\n editor.fire(eventName, e);\n } else if (isReadOnly(editor)) {\n preventReadOnlyEvents(e);\n }\n };\n var bindEventDelegate = function (editor, eventName) {\n var eventRootElm, delegate;\n if (!editor.delegates) {\n editor.delegates = {};\n }\n if (editor.delegates[eventName] || editor.removed) {\n return;\n }\n eventRootElm = getEventTarget(editor, eventName);\n if (editor.settings.event_root) {\n if (!customEventRootDelegates) {\n customEventRootDelegates = {};\n editor.editorManager.on('removeEditor', function () {\n var name;\n if (!editor.editorManager.activeEditor) {\n if (customEventRootDelegates) {\n for (name in customEventRootDelegates) {\n editor.dom.unbind(getEventTarget(editor, name));\n }\n customEventRootDelegates = null;\n }\n }\n });\n }\n if (customEventRootDelegates[eventName]) {\n return;\n }\n delegate = function (e) {\n var target = e.target;\n var editors = editor.editorManager.get();\n var i = editors.length;\n while (i--) {\n var body = editors[i].getBody();\n if (body === target || DOM$7.isChildOf(target, body)) {\n fireEvent(editors[i], eventName, e);\n }\n }\n };\n customEventRootDelegates[eventName] = delegate;\n DOM$7.bind(eventRootElm, eventName, delegate);\n } else {\n delegate = function (e) {\n fireEvent(editor, eventName, e);\n };\n DOM$7.bind(eventRootElm, eventName, delegate);\n editor.delegates[eventName] = delegate;\n }\n };\n var EditorObservable = __assign(__assign({}, Observable), {\n bindPendingEventDelegates: function () {\n var self = this;\n Tools.each(self._pendingNativeEvents, function (name) {\n bindEventDelegate(self, name);\n });\n },\n toggleNativeEvent: function (name, state) {\n var self = this;\n if (name === 'focus' || name === 'blur') {\n return;\n }\n if (state) {\n if (self.initialized) {\n bindEventDelegate(self, name);\n } else {\n if (!self._pendingNativeEvents) {\n self._pendingNativeEvents = [name];\n } else {\n self._pendingNativeEvents.push(name);\n }\n }\n } else if (self.initialized) {\n self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\n delete self.delegates[name];\n }\n },\n unbindAllNativeEvents: function () {\n var self = this;\n var body = self.getBody();\n var dom = self.dom;\n var name;\n if (self.delegates) {\n for (name in self.delegates) {\n self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\n }\n delete self.delegates;\n }\n if (!self.inline && body && dom) {\n body.onload = null;\n dom.unbind(self.getWin());\n dom.unbind(self.getDoc());\n }\n if (dom) {\n dom.unbind(body);\n dom.unbind(self.getContainer());\n }\n }\n });\n\n var each$h = Tools.each, explode$3 = Tools.explode;\n var keyCodeLookup = {\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123\n };\n var modifierNames = Tools.makeMap('alt,ctrl,shift,meta,access');\n var Shortcuts = function () {\n function Shortcuts(editor) {\n this.shortcuts = {};\n this.pendingPatterns = [];\n this.editor = editor;\n var self = this;\n editor.on('keyup keypress keydown', function (e) {\n if ((self.hasModifier(e) || self.isFunctionKey(e)) && !e.isDefaultPrevented()) {\n each$h(self.shortcuts, function (shortcut) {\n if (self.matchShortcut(e, shortcut)) {\n self.pendingPatterns = shortcut.subpatterns.slice(0);\n if (e.type === 'keydown') {\n self.executeShortcutAction(shortcut);\n }\n return true;\n }\n });\n if (self.matchShortcut(e, self.pendingPatterns[0])) {\n if (self.pendingPatterns.length === 1) {\n if (e.type === 'keydown') {\n self.executeShortcutAction(self.pendingPatterns[0]);\n }\n }\n self.pendingPatterns.shift();\n }\n }\n });\n }\n Shortcuts.prototype.add = function (pattern, desc, cmdFunc, scope) {\n var self = this;\n var cmd;\n cmd = cmdFunc;\n if (typeof cmdFunc === 'string') {\n cmdFunc = function () {\n self.editor.execCommand(cmd, false, null);\n };\n } else if (Tools.isArray(cmd)) {\n cmdFunc = function () {\n self.editor.execCommand(cmd[0], cmd[1], cmd[2]);\n };\n }\n each$h(explode$3(Tools.trim(pattern)), function (pattern) {\n var shortcut = self.createShortcut(pattern, desc, cmdFunc, scope);\n self.shortcuts[shortcut.id] = shortcut;\n });\n return true;\n };\n Shortcuts.prototype.remove = function (pattern) {\n var shortcut = this.createShortcut(pattern);\n if (this.shortcuts[shortcut.id]) {\n delete this.shortcuts[shortcut.id];\n return true;\n }\n return false;\n };\n Shortcuts.prototype.parseShortcut = function (pattern) {\n var id, key;\n var shortcut = {};\n each$h(explode$3(pattern.toLowerCase(), '+'), function (value) {\n if (value in modifierNames) {\n shortcut[value] = true;\n } else {\n if (/^[0-9]{2,}$/.test(value)) {\n shortcut.keyCode = parseInt(value, 10);\n } else {\n shortcut.charCode = value.charCodeAt(0);\n shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0);\n }\n }\n });\n id = [shortcut.keyCode];\n for (key in modifierNames) {\n if (shortcut[key]) {\n id.push(key);\n } else {\n shortcut[key] = false;\n }\n }\n shortcut.id = id.join(',');\n if (shortcut.access) {\n shortcut.alt = true;\n if (Env.mac) {\n shortcut.ctrl = true;\n } else {\n shortcut.shift = true;\n }\n }\n if (shortcut.meta) {\n if (Env.mac) {\n shortcut.meta = true;\n } else {\n shortcut.ctrl = true;\n shortcut.meta = false;\n }\n }\n return shortcut;\n };\n Shortcuts.prototype.createShortcut = function (pattern, desc, cmdFunc, scope) {\n var shortcuts;\n shortcuts = Tools.map(explode$3(pattern, '>'), this.parseShortcut);\n shortcuts[shortcuts.length - 1] = Tools.extend(shortcuts[shortcuts.length - 1], {\n func: cmdFunc,\n scope: scope || this.editor\n });\n return Tools.extend(shortcuts[0], {\n desc: this.editor.translate(desc),\n subpatterns: shortcuts.slice(1)\n });\n };\n Shortcuts.prototype.hasModifier = function (e) {\n return e.altKey || e.ctrlKey || e.metaKey;\n };\n Shortcuts.prototype.isFunctionKey = function (e) {\n return e.type === 'keydown' && e.keyCode >= 112 && e.keyCode <= 123;\n };\n Shortcuts.prototype.matchShortcut = function (e, shortcut) {\n if (!shortcut) {\n return false;\n }\n if (shortcut.ctrl !== e.ctrlKey || shortcut.meta !== e.metaKey) {\n return false;\n }\n if (shortcut.alt !== e.altKey || shortcut.shift !== e.shiftKey) {\n return false;\n }\n if (e.keyCode === shortcut.keyCode || e.charCode && e.charCode === shortcut.charCode) {\n e.preventDefault();\n return true;\n }\n return false;\n };\n Shortcuts.prototype.executeShortcutAction = function (shortcut) {\n return shortcut.func ? shortcut.func.call(shortcut.scope) : null;\n };\n return Shortcuts;\n }();\n\n var each$i = Tools.each, trim$4 = Tools.trim;\n var queryParts = 'source protocol authority userInfo user password host port relative path directory file query anchor'.split(' ');\n var DEFAULT_PORTS = {\n ftp: 21,\n http: 80,\n https: 443,\n mailto: 25\n };\n var URI = function () {\n function URI(url, settings) {\n url = trim$4(url);\n this.settings = settings || {};\n var baseUri = this.settings.base_uri;\n var self = this;\n if (/^([\\w\\-]+):([^\\/]{2})/i.test(url) || /^\\s*#/.test(url)) {\n self.source = url;\n return;\n }\n var isProtocolRelative = url.indexOf('//') === 0;\n if (url.indexOf('/') === 0 && !isProtocolRelative) {\n url = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url;\n }\n if (!/^[\\w\\-]*:?\\/\\//.test(url)) {\n var baseUrl = this.settings.base_uri ? this.settings.base_uri.path : new URI(domGlobals.document.location.href).directory;\n if (this.settings.base_uri && this.settings.base_uri.protocol == '') {\n url = '//mce_host' + self.toAbsPath(baseUrl, url);\n } else {\n var match = /([^#?]*)([#?]?.*)/.exec(url);\n url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self.toAbsPath(baseUrl, match[1]) + match[2];\n }\n }\n url = url.replace(/@@/g, '(mce_at)');\n var urlMatch = /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/.exec(url);\n each$i(queryParts, function (v, i) {\n var part = urlMatch[i];\n if (part) {\n part = part.replace(/\\(mce_at\\)/g, '@@');\n }\n self[v] = part;\n });\n if (baseUri) {\n if (!self.protocol) {\n self.protocol = baseUri.protocol;\n }\n if (!self.userInfo) {\n self.userInfo = baseUri.userInfo;\n }\n if (!self.port && self.host === 'mce_host') {\n self.port = baseUri.port;\n }\n if (!self.host || self.host === 'mce_host') {\n self.host = baseUri.host;\n }\n self.source = '';\n }\n if (isProtocolRelative) {\n self.protocol = '';\n }\n }\n URI.parseDataUri = function (uri) {\n var type;\n var uriComponents = decodeURIComponent(uri).split(',');\n var matches = /data:([^;]+)/.exec(uriComponents[0]);\n if (matches) {\n type = matches[1];\n }\n return {\n type: type,\n data: uriComponents[1]\n };\n };\n URI.getDocumentBaseUrl = function (loc) {\n var baseUrl;\n if (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') {\n baseUrl = loc.href;\n } else {\n baseUrl = loc.protocol + '//' + loc.host + loc.pathname;\n }\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(baseUrl)) {\n baseUrl = baseUrl.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n if (!/[\\/\\\\]$/.test(baseUrl)) {\n baseUrl += '/';\n }\n }\n return baseUrl;\n };\n URI.prototype.setPath = function (path) {\n var pathMatch = /^(.*?)\\/?(\\w+)?$/.exec(path);\n this.path = pathMatch[0];\n this.directory = pathMatch[1];\n this.file = pathMatch[2];\n this.source = '';\n this.getURI();\n };\n URI.prototype.toRelative = function (uri) {\n var output;\n if (uri === './') {\n return uri;\n }\n var relativeUri = new URI(uri, { base_uri: this });\n if (relativeUri.host !== 'mce_host' && this.host !== relativeUri.host && relativeUri.host || this.port !== relativeUri.port || this.protocol !== relativeUri.protocol && relativeUri.protocol !== '') {\n return relativeUri.getURI();\n }\n var tu = this.getURI(), uu = relativeUri.getURI();\n if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) {\n return tu;\n }\n output = this.toRelPath(this.path, relativeUri.path);\n if (relativeUri.query) {\n output += '?' + relativeUri.query;\n }\n if (relativeUri.anchor) {\n output += '#' + relativeUri.anchor;\n }\n return output;\n };\n URI.prototype.toAbsolute = function (uri, noHost) {\n var absoluteUri = new URI(uri, { base_uri: this });\n return absoluteUri.getURI(noHost && this.isSameOrigin(absoluteUri));\n };\n URI.prototype.isSameOrigin = function (uri) {\n if (this.host == uri.host && this.protocol == uri.protocol) {\n if (this.port == uri.port) {\n return true;\n }\n var defaultPort = DEFAULT_PORTS[this.protocol];\n if (defaultPort && (this.port || defaultPort) == (uri.port || defaultPort)) {\n return true;\n }\n }\n return false;\n };\n URI.prototype.toRelPath = function (base, path) {\n var items, breakPoint = 0, out = '', i, l;\n var normalizedBase = base.substring(0, base.lastIndexOf('/')).split('/');\n items = path.split('/');\n if (normalizedBase.length >= items.length) {\n for (i = 0, l = normalizedBase.length; i < l; i++) {\n if (i >= items.length || normalizedBase[i] !== items[i]) {\n breakPoint = i + 1;\n break;\n }\n }\n }\n if (normalizedBase.length < items.length) {\n for (i = 0, l = items.length; i < l; i++) {\n if (i >= normalizedBase.length || normalizedBase[i] !== items[i]) {\n breakPoint = i + 1;\n break;\n }\n }\n }\n if (breakPoint === 1) {\n return path;\n }\n for (i = 0, l = normalizedBase.length - (breakPoint - 1); i < l; i++) {\n out += '../';\n }\n for (i = breakPoint - 1, l = items.length; i < l; i++) {\n if (i !== breakPoint - 1) {\n out += '/' + items[i];\n } else {\n out += items[i];\n }\n }\n return out;\n };\n URI.prototype.toAbsPath = function (base, path) {\n var i, nb = 0, o = [], tr, outPath;\n tr = /\\/$/.test(path) ? '/' : '';\n var normalizedBase = base.split('/');\n var normalizedPath = path.split('/');\n each$i(normalizedBase, function (k) {\n if (k) {\n o.push(k);\n }\n });\n normalizedBase = o;\n for (i = normalizedPath.length - 1, o = []; i >= 0; i--) {\n if (normalizedPath[i].length === 0 || normalizedPath[i] === '.') {\n continue;\n }\n if (normalizedPath[i] === '..') {\n nb++;\n continue;\n }\n if (nb > 0) {\n nb--;\n continue;\n }\n o.push(normalizedPath[i]);\n }\n i = normalizedBase.length - nb;\n if (i <= 0) {\n outPath = o.reverse().join('/');\n } else {\n outPath = normalizedBase.slice(0, i).join('/') + '/' + o.reverse().join('/');\n }\n if (outPath.indexOf('/') !== 0) {\n outPath = '/' + outPath;\n }\n if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) {\n outPath += tr;\n }\n return outPath;\n };\n URI.prototype.getURI = function (noProtoHost) {\n if (noProtoHost === void 0) {\n noProtoHost = false;\n }\n var s;\n if (!this.source || noProtoHost) {\n s = '';\n if (!noProtoHost) {\n if (this.protocol) {\n s += this.protocol + '://';\n } else {\n s += '//';\n }\n if (this.userInfo) {\n s += this.userInfo + '@';\n }\n if (this.host) {\n s += this.host;\n }\n if (this.port) {\n s += ':' + this.port;\n }\n }\n if (this.path) {\n s += this.path;\n }\n if (this.query) {\n s += '?' + this.query;\n }\n if (this.anchor) {\n s += '#' + this.anchor;\n }\n this.source = s;\n }\n return this.source;\n };\n return URI;\n }();\n\n var create$5 = function () {\n var buttons = {};\n var menuItems = {};\n var popups = {};\n var icons = {};\n var contextMenus = {};\n var contextToolbars = {};\n var sidebars = {};\n var add = function (collection, type) {\n return function (name, spec) {\n return collection[name.toLowerCase()] = __assign(__assign({}, spec), { type: type });\n };\n };\n var addIcon = function (name, svgData) {\n return icons[name.toLowerCase()] = svgData;\n };\n return {\n addButton: add(buttons, 'button'),\n addToggleButton: add(buttons, 'togglebutton'),\n addMenuButton: add(buttons, 'menubutton'),\n addSplitButton: add(buttons, 'splitbutton'),\n addMenuItem: add(menuItems, 'menuitem'),\n addNestedMenuItem: add(menuItems, 'nestedmenuitem'),\n addToggleMenuItem: add(menuItems, 'togglemenuitem'),\n addAutocompleter: add(popups, 'autocompleter'),\n addContextMenu: add(contextMenus, 'contextmenu'),\n addContextToolbar: add(contextToolbars, 'contexttoolbar'),\n addContextForm: add(contextToolbars, 'contextform'),\n addSidebar: add(sidebars, 'sidebar'),\n addIcon: addIcon,\n getAll: function () {\n return {\n buttons: buttons,\n menuItems: menuItems,\n icons: icons,\n popups: popups,\n contextMenus: contextMenus,\n contextToolbars: contextToolbars,\n sidebars: sidebars\n };\n }\n };\n };\n\n var registry = function () {\n var bridge = create$5();\n return {\n addAutocompleter: bridge.addAutocompleter,\n addButton: bridge.addButton,\n addContextForm: bridge.addContextForm,\n addContextMenu: bridge.addContextMenu,\n addContextToolbar: bridge.addContextToolbar,\n addIcon: bridge.addIcon,\n addMenuButton: bridge.addMenuButton,\n addMenuItem: bridge.addMenuItem,\n addNestedMenuItem: bridge.addNestedMenuItem,\n addSidebar: bridge.addSidebar,\n addSplitButton: bridge.addSplitButton,\n addToggleButton: bridge.addToggleButton,\n addToggleMenuItem: bridge.addToggleMenuItem,\n getAll: bridge.getAll\n };\n };\n\n var DOM$8 = DOMUtils$1.DOM;\n var extend$3 = Tools.extend, each$j = Tools.each;\n var resolve$3 = Tools.resolve;\n var ie$1 = Env.ie;\n var Editor = function () {\n function Editor(id, settings, editorManager) {\n var _this = this;\n this.plugins = {};\n this.contentCSS = [];\n this.contentStyles = [];\n this.loadedCSS = {};\n this.isNotDirty = false;\n this.editorManager = editorManager;\n this.documentBaseUrl = editorManager.documentBaseURL;\n extend$3(this, EditorObservable);\n this.settings = getEditorSettings(this, id, this.documentBaseUrl, editorManager.defaultSettings, settings);\n if (this.settings.suffix) {\n editorManager.suffix = this.settings.suffix;\n }\n this.suffix = editorManager.suffix;\n if (this.settings.base_url) {\n editorManager._setBaseUrl(this.settings.base_url);\n }\n this.baseUri = editorManager.baseURI;\n if (this.settings.referrer_policy) {\n ScriptLoader.ScriptLoader._setReferrerPolicy(this.settings.referrer_policy);\n DOMUtils$1.DOM.styleSheetLoader._setReferrerPolicy(this.settings.referrer_policy);\n }\n AddOnManager$1.languageLoad = this.settings.language_load;\n AddOnManager$1.baseURL = editorManager.baseURL;\n this.id = id;\n this.setDirty(false);\n this.documentBaseURI = new URI(this.settings.document_base_url, { base_uri: this.baseUri });\n this.baseURI = this.baseUri;\n this.inline = !!this.settings.inline;\n this.shortcuts = new Shortcuts(this);\n this.editorCommands = new EditorCommands(this);\n if (this.settings.cache_suffix) {\n Env.cacheSuffix = this.settings.cache_suffix.replace(/^[\\?\\&]+/, '');\n }\n this.ui = { registry: registry() };\n var self = this;\n var modeInstance = create$4(self);\n this.mode = modeInstance;\n this.setMode = modeInstance.set;\n editorManager.fire('SetupEditor', { editor: this });\n this.execCallback('setup', this);\n this.$ = DomQuery.overrideDefaults(function () {\n return {\n context: _this.inline ? _this.getBody() : _this.getDoc(),\n element: _this.getBody()\n };\n });\n }\n Editor.prototype.render = function () {\n Render.render(this);\n };\n Editor.prototype.focus = function (skipFocus) {\n EditorFocus.focus(this, skipFocus);\n };\n Editor.prototype.hasFocus = function () {\n return EditorFocus.hasFocus(this);\n };\n Editor.prototype.execCallback = function (name) {\n var x = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n x[_i - 1] = arguments[_i];\n }\n var self = this;\n var callback = self.settings[name], scope;\n if (!callback) {\n return;\n }\n if (self.callbackLookup && (scope = self.callbackLookup[name])) {\n callback = scope.func;\n scope = scope.scope;\n }\n if (typeof callback === 'string') {\n scope = callback.replace(/\\.\\w+$/, '');\n scope = scope ? resolve$3(scope) : 0;\n callback = resolve$3(callback);\n self.callbackLookup = self.callbackLookup || {};\n self.callbackLookup[name] = {\n func: callback,\n scope: scope\n };\n }\n return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1));\n };\n Editor.prototype.translate = function (text) {\n return I18n.translate(text);\n };\n Editor.prototype.getParam = function (name, defaultVal, type) {\n return getParam(this, name, defaultVal, type);\n };\n Editor.prototype.nodeChanged = function (args) {\n this._nodeChangeDispatcher.nodeChanged(args);\n };\n Editor.prototype.addCommand = function (name, callback, scope) {\n this.editorCommands.addCommand(name, callback, scope);\n };\n Editor.prototype.addQueryStateHandler = function (name, callback, scope) {\n this.editorCommands.addQueryStateHandler(name, callback, scope);\n };\n Editor.prototype.addQueryValueHandler = function (name, callback, scope) {\n this.editorCommands.addQueryValueHandler(name, callback, scope);\n };\n Editor.prototype.addShortcut = function (pattern, desc, cmdFunc, scope) {\n this.shortcuts.add(pattern, desc, cmdFunc, scope);\n };\n Editor.prototype.execCommand = function (cmd, ui, value, args) {\n return this.editorCommands.execCommand(cmd, ui, value, args);\n };\n Editor.prototype.queryCommandState = function (cmd) {\n return this.editorCommands.queryCommandState(cmd);\n };\n Editor.prototype.queryCommandValue = function (cmd) {\n return this.editorCommands.queryCommandValue(cmd);\n };\n Editor.prototype.queryCommandSupported = function (cmd) {\n return this.editorCommands.queryCommandSupported(cmd);\n };\n Editor.prototype.show = function () {\n var self = this;\n if (self.hidden) {\n self.hidden = false;\n if (self.inline) {\n self.getBody().contentEditable = 'true';\n } else {\n DOM$8.show(self.getContainer());\n DOM$8.hide(self.id);\n }\n self.load();\n self.fire('show');\n }\n };\n Editor.prototype.hide = function () {\n var self = this, doc = self.getDoc();\n if (!self.hidden) {\n if (ie$1 && doc && !self.inline) {\n doc.execCommand('SelectAll');\n }\n self.save();\n if (self.inline) {\n self.getBody().contentEditable = 'false';\n if (self === self.editorManager.focusedEditor) {\n self.editorManager.focusedEditor = null;\n }\n } else {\n DOM$8.hide(self.getContainer());\n DOM$8.setStyle(self.id, 'display', self.orgDisplay);\n }\n self.hidden = true;\n self.fire('hide');\n }\n };\n Editor.prototype.isHidden = function () {\n return !!this.hidden;\n };\n Editor.prototype.setProgressState = function (state, time) {\n this.fire('ProgressState', {\n state: state,\n time: time\n });\n };\n Editor.prototype.load = function (args) {\n var self = this;\n var elm = self.getElement(), html;\n if (self.removed) {\n return '';\n }\n if (elm) {\n args = args || {};\n args.load = true;\n var value = NodeType.isTextareaOrInput(elm) ? elm.value : elm.innerHTML;\n html = self.setContent(value, args);\n args.element = elm;\n if (!args.no_events) {\n self.fire('LoadContent', args);\n }\n args.element = elm = null;\n return html;\n }\n };\n Editor.prototype.save = function (args) {\n var self = this;\n var elm = self.getElement(), html, form;\n if (!elm || !self.initialized || self.removed) {\n return;\n }\n args = args || {};\n args.save = true;\n args.element = elm;\n html = args.content = self.getContent(args);\n if (!args.no_events) {\n self.fire('SaveContent', args);\n }\n if (args.format === 'raw') {\n self.fire('RawSaveContent', args);\n }\n html = args.content;\n if (!NodeType.isTextareaOrInput(elm)) {\n if (args.is_removing || !self.inline) {\n elm.innerHTML = html;\n }\n if (form = DOM$8.getParent(self.id, 'form')) {\n each$j(form.elements, function (elm) {\n if (elm.name === self.id) {\n elm.value = html;\n return false;\n }\n });\n }\n } else {\n elm.value = html;\n }\n args.element = elm = null;\n if (args.set_dirty !== false) {\n self.setDirty(false);\n }\n return html;\n };\n Editor.prototype.setContent = function (content, args) {\n return setContent(this, content, args);\n };\n Editor.prototype.getContent = function (args) {\n return getContent(this, args);\n };\n Editor.prototype.insertContent = function (content, args) {\n if (args) {\n content = extend$3({ content: content }, args);\n }\n this.execCommand('mceInsertContent', false, content);\n };\n Editor.prototype.resetContent = function (initialContent) {\n if (initialContent === undefined) {\n setContent(this, this.startContent, { format: 'raw' });\n } else {\n setContent(this, initialContent);\n }\n this.undoManager.reset();\n this.setDirty(false);\n this.nodeChanged();\n };\n Editor.prototype.isDirty = function () {\n return !this.isNotDirty;\n };\n Editor.prototype.setDirty = function (state) {\n var oldState = !this.isNotDirty;\n this.isNotDirty = !state;\n if (state && state !== oldState) {\n this.fire('dirty');\n }\n };\n Editor.prototype.getContainer = function () {\n var self = this;\n if (!self.container) {\n self.container = DOM$8.get(self.editorContainer || self.id + '_parent');\n }\n return self.container;\n };\n Editor.prototype.getContentAreaContainer = function () {\n return this.contentAreaContainer;\n };\n Editor.prototype.getElement = function () {\n if (!this.targetElm) {\n this.targetElm = DOM$8.get(this.id);\n }\n return this.targetElm;\n };\n Editor.prototype.getWin = function () {\n var self = this;\n var elm;\n if (!self.contentWindow) {\n elm = self.iframeElement;\n if (elm) {\n self.contentWindow = elm.contentWindow;\n }\n }\n return self.contentWindow;\n };\n Editor.prototype.getDoc = function () {\n var self = this;\n var win;\n if (!self.contentDocument) {\n win = self.getWin();\n if (win) {\n self.contentDocument = win.document;\n }\n }\n return self.contentDocument;\n };\n Editor.prototype.getBody = function () {\n var doc = this.getDoc();\n return this.bodyElement || (doc ? doc.body : null);\n };\n Editor.prototype.convertURL = function (url, name, elm) {\n var self = this, settings = self.settings;\n if (settings.urlconverter_callback) {\n return self.execCallback('urlconverter_callback', url, elm, true, name);\n }\n if (!settings.convert_urls || elm && elm.nodeName === 'LINK' || url.indexOf('file:') === 0 || url.length === 0) {\n return url;\n }\n if (settings.relative_urls) {\n return self.documentBaseURI.toRelative(url);\n }\n url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host);\n return url;\n };\n Editor.prototype.addVisual = function (elm) {\n var self = this;\n var settings = self.settings;\n var dom = self.dom;\n var cls;\n elm = elm || self.getBody();\n if (self.hasVisual === undefined) {\n self.hasVisual = settings.visual;\n }\n each$j(dom.select('table,a', elm), function (elm) {\n var value;\n switch (elm.nodeName) {\n case 'TABLE':\n cls = settings.visual_table_class || 'mce-item-table';\n value = dom.getAttrib(elm, 'border');\n if ((!value || value === '0') && self.hasVisual) {\n dom.addClass(elm, cls);\n } else {\n dom.removeClass(elm, cls);\n }\n return;\n case 'A':\n if (!dom.getAttrib(elm, 'href')) {\n value = dom.getAttrib(elm, 'name') || elm.id;\n cls = settings.visual_anchor_class || 'mce-item-anchor';\n if (value && self.hasVisual) {\n dom.addClass(elm, cls);\n } else {\n dom.removeClass(elm, cls);\n }\n }\n return;\n }\n });\n self.fire('VisualAid', {\n element: elm,\n hasVisual: self.hasVisual\n });\n };\n Editor.prototype.remove = function () {\n remove$6(this);\n };\n Editor.prototype.destroy = function (automatic) {\n destroy(this, automatic);\n };\n Editor.prototype.uploadImages = function (callback) {\n return this.editorUpload.uploadImages(callback);\n };\n Editor.prototype._scanForImages = function () {\n return this.editorUpload.scanForImages();\n };\n Editor.prototype.addButton = function () {\n throw new Error('editor.addButton has been removed in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead');\n };\n Editor.prototype.addSidebar = function () {\n throw new Error('editor.addSidebar has been removed in tinymce 5x, use editor.ui.registry.addSidebar instead');\n };\n Editor.prototype.addMenuItem = function () {\n throw new Error('editor.addMenuItem has been removed in tinymce 5x, use editor.ui.registry.addMenuItem instead');\n };\n Editor.prototype.addContextToolbar = function () {\n throw new Error('editor.addContextToolbar has been removed in tinymce 5x, use editor.ui.registry.addContextToolbar instead');\n };\n return Editor;\n }();\n\n var DOM$9 = DOMUtils$1.DOM;\n var explode$4 = Tools.explode, each$k = Tools.each, extend$4 = Tools.extend;\n var instanceCounter = 0, boundGlobalEvents = false;\n var beforeUnloadDelegate;\n var legacyEditors = [];\n var editors = [];\n var isValidLegacyKey = function (id) {\n return id !== 'length';\n };\n var globalEventDelegate = function (e) {\n var type = e.type;\n each$k(EditorManager.get(), function (editor) {\n switch (type) {\n case 'scroll':\n editor.fire('ScrollWindow', e);\n break;\n case 'resize':\n editor.fire('ResizeWindow', e);\n break;\n }\n });\n };\n var toggleGlobalEvents = function (state) {\n if (state !== boundGlobalEvents) {\n if (state) {\n DomQuery(window).on('resize scroll', globalEventDelegate);\n } else {\n DomQuery(window).off('resize scroll', globalEventDelegate);\n }\n boundGlobalEvents = state;\n }\n };\n var removeEditorFromList = function (targetEditor) {\n var oldEditors = editors;\n delete legacyEditors[targetEditor.id];\n for (var i = 0; i < legacyEditors.length; i++) {\n if (legacyEditors[i] === targetEditor) {\n legacyEditors.splice(i, 1);\n break;\n }\n }\n editors = filter(editors, function (editor) {\n return targetEditor !== editor;\n });\n if (EditorManager.activeEditor === targetEditor) {\n EditorManager.activeEditor = editors.length > 0 ? editors[0] : null;\n }\n if (EditorManager.focusedEditor === targetEditor) {\n EditorManager.focusedEditor = null;\n }\n return oldEditors.length !== editors.length;\n };\n var purgeDestroyedEditor = function (editor) {\n if (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) {\n removeEditorFromList(editor);\n editor.unbindAllNativeEvents();\n editor.destroy(true);\n editor.removed = true;\n editor = null;\n }\n return editor;\n };\n var isQuirksMode = domGlobals.document.compatMode !== 'CSS1Compat';\n var EditorManager = __assign(__assign({}, Observable), {\n baseURI: null,\n baseURL: null,\n defaultSettings: {},\n documentBaseURL: null,\n suffix: null,\n $: DomQuery,\n majorVersion: '5',\n minorVersion: '1.4',\n releaseDate: '2019-12-11',\n editors: legacyEditors,\n i18n: I18n,\n activeEditor: null,\n focusedEditor: null,\n settings: {},\n setup: function () {\n var self = this;\n var baseURL, documentBaseURL, suffix = '';\n documentBaseURL = URI.getDocumentBaseUrl(domGlobals.document.location);\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(documentBaseURL)) {\n documentBaseURL = documentBaseURL.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n if (!/[\\/\\\\]$/.test(documentBaseURL)) {\n documentBaseURL += '/';\n }\n }\n var preInit = window.tinymce || window.tinyMCEPreInit;\n if (preInit) {\n baseURL = preInit.base || preInit.baseURL;\n suffix = preInit.suffix;\n } else {\n var scripts = domGlobals.document.getElementsByTagName('script');\n for (var i = 0; i < scripts.length; i++) {\n var src = scripts[i].src || '';\n if (src === '') {\n continue;\n }\n var srcScript = src.substring(src.lastIndexOf('/'));\n if (/tinymce(\\.full|\\.jquery|)(\\.min|\\.dev|)\\.js/.test(src)) {\n if (srcScript.indexOf('.min') !== -1) {\n suffix = '.min';\n }\n baseURL = src.substring(0, src.lastIndexOf('/'));\n break;\n }\n }\n if (!baseURL && domGlobals.document.currentScript) {\n var src = domGlobals.document.currentScript.src;\n if (src.indexOf('.min') !== -1) {\n suffix = '.min';\n }\n baseURL = src.substring(0, src.lastIndexOf('/'));\n }\n }\n self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);\n self.documentBaseURL = documentBaseURL;\n self.baseURI = new URI(self.baseURL);\n self.suffix = suffix;\n FocusController.setup(self);\n },\n overrideDefaults: function (defaultSettings) {\n var baseUrl, suffix;\n baseUrl = defaultSettings.base_url;\n if (baseUrl) {\n this._setBaseUrl(baseUrl);\n }\n suffix = defaultSettings.suffix;\n if (defaultSettings.suffix) {\n this.suffix = suffix;\n }\n this.defaultSettings = defaultSettings;\n var pluginBaseUrls = defaultSettings.plugin_base_urls;\n for (var name in pluginBaseUrls) {\n AddOnManager$1.PluginManager.urls[name] = pluginBaseUrls[name];\n }\n },\n init: function (settings) {\n var self = this;\n var result, invalidInlineTargets;\n invalidInlineTargets = Tools.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu', ' ');\n var isInvalidInlineTarget = function (settings, elm) {\n return settings.inline && elm.tagName.toLowerCase() in invalidInlineTargets;\n };\n var createId = function (elm) {\n var id = elm.id;\n if (!id) {\n id = elm.name;\n if (id && !DOM$9.get(id)) {\n id = elm.name;\n } else {\n id = DOM$9.uniqueId();\n }\n elm.setAttribute('id', id);\n }\n return id;\n };\n var execCallback = function (name) {\n var callback = settings[name];\n if (!callback) {\n return;\n }\n return callback.apply(self, Array.prototype.slice.call(arguments, 2));\n };\n var hasClass = function (elm, className) {\n return className.constructor === RegExp ? className.test(elm.className) : DOM$9.hasClass(elm, className);\n };\n var findTargets = function (settings) {\n var l, targets = [];\n if (Env.browser.isIE() && Env.browser.version.major < 11) {\n ErrorReporter.initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/');\n return [];\n } else if (isQuirksMode) {\n ErrorReporter.initError('Failed to initialize the editor as the document is not in standards mode. ' + 'TinyMCE requires standards mode.');\n return [];\n }\n if (settings.types) {\n each$k(settings.types, function (type) {\n targets = targets.concat(DOM$9.select(type.selector));\n });\n return targets;\n } else if (settings.selector) {\n return DOM$9.select(settings.selector);\n } else if (settings.target) {\n return [settings.target];\n }\n switch (settings.mode) {\n case 'exact':\n l = settings.elements || '';\n if (l.length > 0) {\n each$k(explode$4(l), function (id) {\n var elm;\n if (elm = DOM$9.get(id)) {\n targets.push(elm);\n } else {\n each$k(domGlobals.document.forms, function (f) {\n each$k(f.elements, function (e) {\n if (e.name === id) {\n id = 'mce_editor_' + instanceCounter++;\n DOM$9.setAttrib(e, 'id', id);\n targets.push(e);\n }\n });\n });\n }\n });\n }\n break;\n case 'textareas':\n case 'specific_textareas':\n each$k(DOM$9.select('textarea'), function (elm) {\n if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) {\n return;\n }\n if (!settings.editor_selector || hasClass(elm, settings.editor_selector)) {\n targets.push(elm);\n }\n });\n break;\n }\n return targets;\n };\n var provideResults = function (editors) {\n result = editors;\n };\n var initEditors = function () {\n var initCount = 0;\n var editors = [];\n var targets;\n var createEditor = function (id, settings, targetElm) {\n var editor = new Editor(id, settings, self);\n editors.push(editor);\n editor.on('init', function () {\n if (++initCount === targets.length) {\n provideResults(editors);\n }\n });\n editor.targetElm = editor.targetElm || targetElm;\n editor.render();\n };\n DOM$9.unbind(window, 'ready', initEditors);\n execCallback('onpageload');\n targets = DomQuery.unique(findTargets(settings));\n if (settings.types) {\n each$k(settings.types, function (type) {\n Tools.each(targets, function (elm) {\n if (DOM$9.is(elm, type.selector)) {\n createEditor(createId(elm), extend$4({}, settings, type), elm);\n return false;\n }\n return true;\n });\n });\n return;\n }\n Tools.each(targets, function (elm) {\n purgeDestroyedEditor(self.get(elm.id));\n });\n targets = Tools.grep(targets, function (elm) {\n return !self.get(elm.id);\n });\n if (targets.length === 0) {\n provideResults([]);\n } else {\n each$k(targets, function (elm) {\n if (isInvalidInlineTarget(settings, elm)) {\n ErrorReporter.initError('Could not initialize inline editor on invalid inline target element', elm);\n } else {\n createEditor(createId(elm), settings, elm);\n }\n });\n }\n };\n self.settings = settings;\n DOM$9.bind(window, 'ready', initEditors);\n return new promiseObj(function (resolve) {\n if (result) {\n resolve(result);\n } else {\n provideResults = function (editors) {\n resolve(editors);\n };\n }\n });\n },\n get: function (id) {\n if (arguments.length === 0) {\n return editors.slice(0);\n } else if (isString(id)) {\n return find(editors, function (editor) {\n return editor.id === id;\n }).getOr(null);\n } else if (isNumber(id)) {\n return editors[id] ? editors[id] : null;\n } else {\n return null;\n }\n },\n add: function (editor) {\n var self = this;\n var existingEditor;\n existingEditor = legacyEditors[editor.id];\n if (existingEditor === editor) {\n return editor;\n }\n if (self.get(editor.id) === null) {\n if (isValidLegacyKey(editor.id)) {\n legacyEditors[editor.id] = editor;\n }\n legacyEditors.push(editor);\n editors.push(editor);\n }\n toggleGlobalEvents(true);\n self.activeEditor = editor;\n self.fire('AddEditor', { editor: editor });\n if (!beforeUnloadDelegate) {\n beforeUnloadDelegate = function (e) {\n var event = self.fire('BeforeUnload');\n if (event.returnValue) {\n e.preventDefault();\n e.returnValue = event.returnValue;\n return event.returnValue;\n }\n };\n window.addEventListener('beforeunload', beforeUnloadDelegate);\n }\n return editor;\n },\n createEditor: function (id, settings) {\n return this.add(new Editor(id, settings, this));\n },\n remove: function (selector) {\n var self = this;\n var i, editor;\n if (!selector) {\n for (i = editors.length - 1; i >= 0; i--) {\n self.remove(editors[i]);\n }\n return;\n }\n if (isString(selector)) {\n each$k(DOM$9.select(selector), function (elm) {\n editor = self.get(elm.id);\n if (editor) {\n self.remove(editor);\n }\n });\n return;\n }\n editor = selector;\n if (isNull(self.get(editor.id))) {\n return null;\n }\n if (removeEditorFromList(editor)) {\n self.fire('RemoveEditor', { editor: editor });\n }\n if (editors.length === 0) {\n window.removeEventListener('beforeunload', beforeUnloadDelegate);\n }\n editor.remove();\n toggleGlobalEvents(editors.length > 0);\n return editor;\n },\n execCommand: function (cmd, ui, value) {\n var self = this, editor = self.get(value);\n switch (cmd) {\n case 'mceAddEditor':\n if (!self.get(value)) {\n new Editor(value, self.settings, self).render();\n }\n return true;\n case 'mceRemoveEditor':\n if (editor) {\n editor.remove();\n }\n return true;\n case 'mceToggleEditor':\n if (!editor) {\n self.execCommand('mceAddEditor', 0, value);\n return true;\n }\n if (editor.isHidden()) {\n editor.show();\n } else {\n editor.hide();\n }\n return true;\n }\n if (self.activeEditor) {\n return self.activeEditor.execCommand(cmd, ui, value);\n }\n return false;\n },\n triggerSave: function () {\n each$k(editors, function (editor) {\n editor.save();\n });\n },\n addI18n: function (code, items) {\n I18n.add(code, items);\n },\n translate: function (text) {\n return I18n.translate(text);\n },\n setActive: function (editor) {\n var activeEditor = this.activeEditor;\n if (this.activeEditor !== editor) {\n if (activeEditor) {\n activeEditor.fire('deactivate', { relatedTarget: editor });\n }\n editor.fire('activate', { relatedTarget: activeEditor });\n }\n this.activeEditor = editor;\n },\n _setBaseUrl: function (baseUrl) {\n this.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\\/+$/, ''));\n this.baseURI = new URI(this.baseURL);\n }\n });\n EditorManager.setup();\n\n function RangeUtils(dom) {\n var walk = function (rng, callback) {\n return RangeWalk.walk(dom, rng, callback);\n };\n var split = split$1;\n var normalize = function (rng) {\n return NormalizeRange.normalize(dom, rng).fold(constant(false), function (normalizedRng) {\n rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset);\n rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset);\n return true;\n });\n };\n return {\n walk: walk,\n split: split,\n normalize: normalize\n };\n }\n (function (RangeUtils) {\n RangeUtils.compareRanges = RangeCompare.isEq;\n RangeUtils.getCaretRangeFromPoint = CaretRangeFromPoint.fromPoint;\n RangeUtils.getSelectedNode = getSelectedNode;\n RangeUtils.getNode = getNode;\n }(RangeUtils || (RangeUtils = {})));\n var RangeUtils$1 = RangeUtils;\n\n var awaiter = function (resolveCb, rejectCb, timeout) {\n if (timeout === void 0) {\n timeout = 1000;\n }\n var done = false;\n var timer = null;\n var complete = function (completer) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!done) {\n done = true;\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n completer.apply(null, args);\n }\n };\n };\n var resolve = complete(resolveCb);\n var reject = complete(rejectCb);\n var start = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!done && timer === null) {\n timer = domGlobals.setTimeout(function () {\n return reject.apply(null, args);\n }, timeout);\n }\n };\n return {\n start: start,\n resolve: resolve,\n reject: reject\n };\n };\n var create$6 = function () {\n var tasks = {};\n var resultFns = {};\n var load = function (id, url) {\n var loadErrMsg = 'Script at URL \"' + url + '\" failed to load';\n var runErrMsg = 'Script at URL \"' + url + '\" did not call `tinymce.Resource.add(\\'' + id + '\\', data)` within 1 second';\n if (tasks[id] !== undefined) {\n return tasks[id];\n } else {\n var task = new promiseObj(function (resolve, reject) {\n var waiter = awaiter(resolve, reject);\n resultFns[id] = waiter.resolve;\n ScriptLoader.ScriptLoader.loadScript(url, function () {\n return waiter.start(runErrMsg);\n }, function () {\n return waiter.reject(loadErrMsg);\n });\n });\n tasks[id] = task;\n return task;\n }\n };\n var add = function (id, data) {\n if (resultFns[id] !== undefined) {\n resultFns[id](data);\n delete resultFns[id];\n }\n tasks[id] = promiseObj.resolve(data);\n };\n return {\n load: load,\n add: add\n };\n };\n var Resource = create$6();\n\n var min = Math.min, max = Math.max, round$2 = Math.round;\n var relativePosition = function (rect, targetRect, rel) {\n var x, y, w, h, targetW, targetH;\n x = targetRect.x;\n y = targetRect.y;\n w = rect.w;\n h = rect.h;\n targetW = targetRect.w;\n targetH = targetRect.h;\n rel = (rel || '').split('');\n if (rel[0] === 'b') {\n y += targetH;\n }\n if (rel[1] === 'r') {\n x += targetW;\n }\n if (rel[0] === 'c') {\n y += round$2(targetH / 2);\n }\n if (rel[1] === 'c') {\n x += round$2(targetW / 2);\n }\n if (rel[3] === 'b') {\n y -= h;\n }\n if (rel[4] === 'r') {\n x -= w;\n }\n if (rel[3] === 'c') {\n y -= round$2(h / 2);\n }\n if (rel[4] === 'c') {\n x -= round$2(w / 2);\n }\n return create$7(x, y, w, h);\n };\n var findBestRelativePosition = function (rect, targetRect, constrainRect, rels) {\n var pos, i;\n for (i = 0; i < rels.length; i++) {\n pos = relativePosition(rect, targetRect, rels[i]);\n if (pos.x >= constrainRect.x && pos.x + pos.w <= constrainRect.w + constrainRect.x && pos.y >= constrainRect.y && pos.y + pos.h <= constrainRect.h + constrainRect.y) {\n return rels[i];\n }\n }\n return null;\n };\n var inflate = function (rect, w, h) {\n return create$7(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);\n };\n var intersect = function (rect, cropRect) {\n var x1, y1, x2, y2;\n x1 = max(rect.x, cropRect.x);\n y1 = max(rect.y, cropRect.y);\n x2 = min(rect.x + rect.w, cropRect.x + cropRect.w);\n y2 = min(rect.y + rect.h, cropRect.y + cropRect.h);\n if (x2 - x1 < 0 || y2 - y1 < 0) {\n return null;\n }\n return create$7(x1, y1, x2 - x1, y2 - y1);\n };\n var clamp$1 = function (rect, clampRect, fixedSize) {\n var underflowX1, underflowY1, overflowX2, overflowY2, x1, y1, x2, y2, cx2, cy2;\n x1 = rect.x;\n y1 = rect.y;\n x2 = rect.x + rect.w;\n y2 = rect.y + rect.h;\n cx2 = clampRect.x + clampRect.w;\n cy2 = clampRect.y + clampRect.h;\n underflowX1 = max(0, clampRect.x - x1);\n underflowY1 = max(0, clampRect.y - y1);\n overflowX2 = max(0, x2 - cx2);\n overflowY2 = max(0, y2 - cy2);\n x1 += underflowX1;\n y1 += underflowY1;\n if (fixedSize) {\n x2 += underflowX1;\n y2 += underflowY1;\n x1 -= overflowX2;\n y1 -= overflowY2;\n }\n x2 -= overflowX2;\n y2 -= overflowY2;\n return create$7(x1, y1, x2 - x1, y2 - y1);\n };\n var create$7 = function (x, y, w, h) {\n return {\n x: x,\n y: y,\n w: w,\n h: h\n };\n };\n var fromClientRect = function (clientRect) {\n return create$7(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\n };\n var Rect = {\n inflate: inflate,\n relativePosition: relativePosition,\n findBestRelativePosition: findBestRelativePosition,\n intersect: intersect,\n clamp: clamp$1,\n create: create$7,\n fromClientRect: fromClientRect\n };\n\n var each$l = Tools.each, extend$5 = Tools.extend;\n var extendClass, initializing;\n var Class = function () {\n };\n Class.extend = extendClass = function (prop) {\n var self = this;\n var _super = self.prototype;\n var prototype, name, member;\n var Class = function () {\n var i, mixins, mixin;\n var self = this;\n if (!initializing) {\n if (self.init) {\n self.init.apply(self, arguments);\n }\n mixins = self.Mixins;\n if (mixins) {\n i = mixins.length;\n while (i--) {\n mixin = mixins[i];\n if (mixin.init) {\n mixin.init.apply(self, arguments);\n }\n }\n }\n }\n };\n var dummy = function () {\n return this;\n };\n var createMethod = function (name, fn) {\n return function () {\n var self = this;\n var tmp = self._super;\n var ret;\n self._super = _super[name];\n ret = fn.apply(self, arguments);\n self._super = tmp;\n return ret;\n };\n };\n initializing = true;\n prototype = new self();\n initializing = false;\n if (prop.Mixins) {\n each$l(prop.Mixins, function (mixin) {\n for (var name_1 in mixin) {\n if (name_1 !== 'init') {\n prop[name_1] = mixin[name_1];\n }\n }\n });\n if (_super.Mixins) {\n prop.Mixins = _super.Mixins.concat(prop.Mixins);\n }\n }\n if (prop.Methods) {\n each$l(prop.Methods.split(','), function (name) {\n prop[name] = dummy;\n });\n }\n if (prop.Properties) {\n each$l(prop.Properties.split(','), function (name) {\n var fieldName = '_' + name;\n prop[name] = function (value) {\n var self = this;\n if (value !== undefined) {\n self[fieldName] = value;\n return self;\n }\n return self[fieldName];\n };\n });\n }\n if (prop.Statics) {\n each$l(prop.Statics, function (func, name) {\n Class[name] = func;\n });\n }\n if (prop.Defaults && _super.Defaults) {\n prop.Defaults = extend$5({}, _super.Defaults, prop.Defaults);\n }\n for (name in prop) {\n member = prop[name];\n if (typeof member === 'function' && _super[name]) {\n prototype[name] = createMethod(name, member);\n } else {\n prototype[name] = member;\n }\n }\n Class.prototype = prototype;\n Class.constructor = Class;\n Class.extend = extendClass;\n return Class;\n };\n\n var min$1 = Math.min, max$1 = Math.max, round$3 = Math.round;\n var Color = function (value) {\n var self = {};\n var r = 0, g = 0, b = 0;\n var rgb2hsv = function (r, g, b) {\n var h, s, v, d, minRGB, maxRGB;\n h = 0;\n s = 0;\n v = 0;\n r = r / 255;\n g = g / 255;\n b = b / 255;\n minRGB = min$1(r, min$1(g, b));\n maxRGB = max$1(r, max$1(g, b));\n if (minRGB === maxRGB) {\n v = minRGB;\n return {\n h: 0,\n s: 0,\n v: v * 100\n };\n }\n d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\n h = 60 * (h - d / (maxRGB - minRGB));\n s = (maxRGB - minRGB) / maxRGB;\n v = maxRGB;\n return {\n h: round$3(h),\n s: round$3(s * 100),\n v: round$3(v * 100)\n };\n };\n var hsvToRgb = function (hue, saturation, brightness) {\n var side, chroma, x, match;\n hue = (parseInt(hue, 10) || 0) % 360;\n saturation = parseInt(saturation, 10) / 100;\n brightness = parseInt(brightness, 10) / 100;\n saturation = max$1(0, min$1(saturation, 1));\n brightness = max$1(0, min$1(brightness, 1));\n if (saturation === 0) {\n r = g = b = round$3(255 * brightness);\n return;\n }\n side = hue / 60;\n chroma = brightness * saturation;\n x = chroma * (1 - Math.abs(side % 2 - 1));\n match = brightness - chroma;\n switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n default:\n r = g = b = 0;\n }\n r = round$3(255 * (r + match));\n g = round$3(255 * (g + match));\n b = round$3(255 * (b + match));\n };\n var toHex = function () {\n var hex = function (val) {\n val = parseInt(val, 10).toString(16);\n return val.length > 1 ? val : '0' + val;\n };\n return '#' + hex(r) + hex(g) + hex(b);\n };\n var toRgb = function () {\n return {\n r: r,\n g: g,\n b: b\n };\n };\n var toHsv = function () {\n return rgb2hsv(r, g, b);\n };\n var parse = function (value) {\n var matches;\n if (typeof value === 'object') {\n if ('r' in value) {\n r = value.r;\n g = value.g;\n b = value.b;\n } else if ('v' in value) {\n hsvToRgb(value.h, value.s, value.v);\n }\n } else {\n if (matches = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)[^\\)]*\\)/gi.exec(value)) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if (matches = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(value)) {\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n } else if (matches = /#([0-F])([0-F])([0-F])/gi.exec(value)) {\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n }\n }\n r = r < 0 ? 0 : r > 255 ? 255 : r;\n g = g < 0 ? 0 : g > 255 ? 255 : g;\n b = b < 0 ? 0 : b > 255 ? 255 : b;\n return self;\n };\n if (value) {\n parse(value);\n }\n self.toRgb = toRgb;\n self.toHsv = toHsv;\n self.toHex = toHex;\n self.parse = parse;\n return self;\n };\n\n var serialize = function (obj) {\n var data = JSON.stringify(obj);\n if (!isString(data)) {\n return data;\n }\n return data.replace(/[\\u0080-\\uFFFF]/g, function (match) {\n var hexCode = match.charCodeAt(0).toString(16);\n return '\\\\u' + '0000'.substring(hexCode.length) + hexCode;\n });\n };\n var JSONUtils = {\n serialize: serialize,\n parse: function (text) {\n try {\n return JSON.parse(text);\n } catch (ex) {\n }\n }\n };\n\n var JSONP = {\n callbacks: {},\n count: 0,\n send: function (settings) {\n var self = this, dom = DOMUtils$1.DOM, count = settings.count !== undefined ? settings.count : self.count;\n var id = 'tinymce_jsonp_' + count;\n self.callbacks[count] = function (json) {\n dom.remove(id);\n delete self.callbacks[count];\n settings.callback(json);\n };\n dom.add(dom.doc.body, 'script', {\n id: id,\n src: settings.url,\n type: 'text/javascript'\n });\n self.count++;\n }\n };\n\n var XHR = __assign(__assign({}, Observable), {\n send: function (settings) {\n var xhr, count = 0;\n var ready = function () {\n if (!settings.async || xhr.readyState === 4 || count++ > 10000) {\n if (settings.success && count < 10000 && xhr.status === 200) {\n settings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings);\n } else if (settings.error) {\n settings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings);\n }\n xhr = null;\n } else {\n Delay.setTimeout(ready, 10);\n }\n };\n settings.scope = settings.scope || this;\n settings.success_scope = settings.success_scope || settings.scope;\n settings.error_scope = settings.error_scope || settings.scope;\n settings.async = settings.async !== false;\n settings.data = settings.data || '';\n XHR.fire('beforeInitialize', { settings: settings });\n xhr = new domGlobals.XMLHttpRequest();\n if (xhr) {\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType(settings.content_type);\n }\n xhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async);\n if (settings.crossDomain) {\n xhr.withCredentials = true;\n }\n if (settings.content_type) {\n xhr.setRequestHeader('Content-Type', settings.content_type);\n }\n if (settings.requestheaders) {\n Tools.each(settings.requestheaders, function (header) {\n xhr.setRequestHeader(header.key, header.value);\n });\n }\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n xhr = XHR.fire('beforeSend', {\n xhr: xhr,\n settings: settings\n }).xhr;\n xhr.send(settings.data);\n if (!settings.async) {\n return ready();\n }\n Delay.setTimeout(ready, 10);\n }\n }\n });\n\n var extend$6 = Tools.extend;\n var JSONRequest = function () {\n function JSONRequest(settings) {\n this.settings = extend$6({}, settings);\n this.count = 0;\n }\n JSONRequest.sendRPC = function (o) {\n return new JSONRequest().send(o);\n };\n JSONRequest.prototype.send = function (args) {\n var ecb = args.error, scb = args.success;\n var xhrArgs = extend$6(this.settings, args);\n xhrArgs.success = function (c, x) {\n c = JSONUtils.parse(c);\n if (typeof c === 'undefined') {\n c = { error: 'JSON Parse error.' };\n }\n if (c.error) {\n ecb.call(xhrArgs.error_scope || xhrArgs.scope, c.error, x);\n } else {\n scb.call(xhrArgs.success_scope || xhrArgs.scope, c.result);\n }\n };\n xhrArgs.error = function (ty, x) {\n if (ecb) {\n ecb.call(xhrArgs.error_scope || xhrArgs.scope, ty, x);\n }\n };\n xhrArgs.data = JSONUtils.serialize({\n id: args.id || 'c' + this.count++,\n method: args.method,\n params: args.params\n });\n xhrArgs.content_type = 'application/json';\n XHR.send(xhrArgs);\n };\n return JSONRequest;\n }();\n\n var create$8 = function () {\n return function () {\n var data = {};\n var keys = [];\n var storage = {\n getItem: function (key) {\n var item = data[key];\n return item ? item : null;\n },\n setItem: function (key, value) {\n keys.push(key);\n data[key] = String(value);\n },\n key: function (index) {\n return keys[index];\n },\n removeItem: function (key) {\n keys = keys.filter(function (k) {\n return k === key;\n });\n delete data[key];\n },\n clear: function () {\n keys = [];\n data = {};\n },\n length: 0\n };\n Object.defineProperty(storage, 'length', {\n get: function () {\n return keys.length;\n },\n configurable: false,\n enumerable: false\n });\n return storage;\n }();\n };\n\n var localStorage;\n try {\n localStorage = domGlobals.window.localStorage;\n } catch (e) {\n localStorage = create$8();\n }\n var LocalStorage = localStorage;\n\n var publicApi = {\n geom: { Rect: Rect },\n util: {\n Promise: promiseObj,\n Delay: Delay,\n Tools: Tools,\n VK: VK,\n URI: URI,\n Class: Class,\n EventDispatcher: EventDispatcher,\n Observable: Observable,\n I18n: I18n,\n XHR: XHR,\n JSON: JSONUtils,\n JSONRequest: JSONRequest,\n JSONP: JSONP,\n LocalStorage: LocalStorage,\n Color: Color\n },\n dom: {\n EventUtils: EventUtils,\n Sizzle: Sizzle,\n DomQuery: DomQuery,\n TreeWalker: TreeWalker,\n DOMUtils: DOMUtils$1,\n ScriptLoader: ScriptLoader,\n RangeUtils: RangeUtils$1,\n Serializer: Serializer$1,\n ControlSelection: ControlSelection,\n BookmarkManager: BookmarkManager$1,\n Selection: Selection$1,\n Event: EventUtils.Event\n },\n html: {\n Styles: Styles,\n Entities: Entities,\n Node: Node$1,\n Schema: Schema,\n SaxParser: SaxParser$1,\n DomParser: DomParser,\n Writer: Writer,\n Serializer: Serializer\n },\n Env: Env,\n AddOnManager: AddOnManager$1,\n Annotator: Annotator,\n Formatter: Formatter,\n UndoManager: UndoManager,\n EditorCommands: EditorCommands,\n WindowManager: WindowManager,\n NotificationManager: NotificationManager,\n EditorObservable: EditorObservable,\n Shortcuts: Shortcuts,\n Editor: Editor,\n FocusManager: FocusManager,\n EditorManager: EditorManager,\n DOM: DOMUtils$1.DOM,\n ScriptLoader: ScriptLoader.ScriptLoader,\n PluginManager: AddOnManager$1.PluginManager,\n ThemeManager: AddOnManager$1.ThemeManager,\n IconManager: IconManager,\n Resource: Resource,\n trim: Tools.trim,\n isArray: Tools.isArray,\n is: Tools.is,\n toArray: Tools.toArray,\n makeMap: Tools.makeMap,\n each: Tools.each,\n map: Tools.map,\n grep: Tools.grep,\n inArray: Tools.inArray,\n extend: Tools.extend,\n create: Tools.create,\n walk: Tools.walk,\n createNS: Tools.createNS,\n resolve: Tools.resolve,\n explode: Tools.explode,\n _addCacheSuffix: Tools._addCacheSuffix,\n isOpera: Env.opera,\n isWebKit: Env.webkit,\n isIE: Env.ie,\n isGecko: Env.gecko,\n isMac: Env.mac\n };\n var tinymce = Tools.extend(EditorManager, publicApi);\n\n var exportToModuleLoaders = function (tinymce) {\n if (typeof module === 'object') {\n try {\n module.exports = tinymce;\n } catch (_) {\n }\n }\n };\n var exportToWindowGlobal = function (tinymce) {\n window.tinymce = tinymce;\n window.tinyMCE = tinymce;\n };\n exportToWindowGlobal(tinymce);\n exportToModuleLoaders(tinymce);\n\n}(window));\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.1.4 (2019-12-11)\n */\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var noop = function () {\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var never = constant(false);\n var always = constant(true);\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n var regExps = {\n aletter: '[A-Za-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05F3\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u10a0-\\u10c5\\u10d0-\\u10fa\\u10fc\\u1100-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1a00-\\u1a16\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bc0-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u24B6-\\u24E9\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2d00-\\u2d25\\u2d30-\\u2d65\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005\\u303b\\u303c\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790\\ua791\\ua7a0-\\ua7a9\\ua7fa-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]',\n midnumlet: '[-\\'\\\\.\\u2018\\u2019\\u2024\\uFE52\\uFF07\\uFF0E]',\n midletter: '[:\\xB7\\xB7\\u05F4\\u2027\\uFE13\\uFE55\\uFF1A]',\n midnum: '[\\xB1+*/,;;\\u0589\\u060C\\u060D\\u066C\\u07F8\\u2044\\uFE10\\uFE14\\uFE50\\uFE54\\uFF0C\\uFF1B]',\n numeric: '[0-9\\u0660-\\u0669\\u066B\\u06f0-\\u06f9\\u07c0-\\u07c9\\u0966-\\u096f\\u09e6-\\u09ef\\u0a66-\\u0a6f\\u0ae6-\\u0aef\\u0b66-\\u0b6f\\u0be6-\\u0bef\\u0c66-\\u0c6f\\u0ce6-\\u0cef\\u0d66-\\u0d6f\\u0e50-\\u0e59\\u0ed0-\\u0ed9\\u0f20-\\u0f29\\u1040-\\u1049\\u1090-\\u1099\\u17e0-\\u17e9\\u1810-\\u1819\\u1946-\\u194f\\u19d0-\\u19d9\\u1a80-\\u1a89\\u1a90-\\u1a99\\u1b50-\\u1b59\\u1bb0-\\u1bb9\\u1c40-\\u1c49\\u1c50-\\u1c59\\ua620-\\ua629\\ua8d0-\\ua8d9\\ua900-\\ua909\\ua9d0-\\ua9d9\\uaa50-\\uaa59\\uabf0-\\uabf9]',\n cr: '\\\\r',\n lf: '\\\\n',\n newline: '[\\x0B\\f\\x85\\u2028\\u2029]',\n extend: '[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065f\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d02\\u0d03\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f\\u109a-\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b6-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u19b0-\\u19c0\\u19c8\\u19c9\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1baa\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2\\u1dc0-\\u1de6\\u1dfc-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\uA672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa7b\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe3-\\uabea\\uabec\\uabed\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]',\n format: '[\\xAD\\u0600-\\u0603\\u06DD\\u070F\\u17b4\\u17b5\\u200E\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u206A-\\u206F\\uFEFF\\uFFF9-\\uFFFB]',\n katakana: '[\\u3031-\\u3035\\u309B\\u309C\\u30A0-\\u30fa\\u30fc-\\u30ff\\u31f0-\\u31ff\\u32D0-\\u32FE\\u3300-\\u3357\\uff66-\\uff9d]',\n extendnumlet: '[=_\\u203f\\u2040\\u2054\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff3f\\u2200-\\u22FF<>]',\n punctuation: '[!-#%-*,-\\\\/:;?@\\\\[-\\\\]_{}\\xA1\\xAB\\xB7\\xBB\\xBF;\\xB7\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1361-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u3008\\u3009\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30\\u2E31\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uff3f\\uFF5B\\uFF5D\\uFF5F-\\uFF65]'\n };\n var characterIndices = {\n ALETTER: 0,\n MIDNUMLET: 1,\n MIDLETTER: 2,\n MIDNUM: 3,\n NUMERIC: 4,\n CR: 5,\n LF: 6,\n NEWLINE: 7,\n EXTEND: 8,\n FORMAT: 9,\n KATAKANA: 10,\n EXTENDNUMLET: 11,\n AT: 12,\n OTHER: 13\n };\n var SETS = [\n new RegExp(regExps.aletter),\n new RegExp(regExps.midnumlet),\n new RegExp(regExps.midletter),\n new RegExp(regExps.midnum),\n new RegExp(regExps.numeric),\n new RegExp(regExps.cr),\n new RegExp(regExps.lf),\n new RegExp(regExps.newline),\n new RegExp(regExps.extend),\n new RegExp(regExps.format),\n new RegExp(regExps.katakana),\n new RegExp(regExps.extendnumlet),\n new RegExp('@')\n ];\n var EMPTY_STRING = '';\n var PUNCTUATION = new RegExp('^' + regExps.punctuation + '$');\n var WHITESPACE = /^\\s+$/;\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze) {\n Object.freeze(me);\n }\n return me;\n }();\n\n var typeOf = function (x) {\n if (x === null) {\n return 'null';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isFunction = isType('function');\n\n var nativeSlice = Array.prototype.slice;\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n var from = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n\n var SETS$1 = SETS;\n var OTHER = characterIndices.OTHER;\n var getType = function (char) {\n var type = OTHER;\n var setsLength = SETS$1.length;\n for (var j = 0; j < setsLength; ++j) {\n var set = SETS$1[j];\n if (set && set.test(char)) {\n type = j;\n break;\n }\n }\n return type;\n };\n var memoize = function (func) {\n var cache = {};\n return function (char) {\n if (cache[char]) {\n return cache[char];\n } else {\n var result = func(char);\n cache[char] = result;\n return result;\n }\n };\n };\n var classify = function (characters) {\n var memoized = memoize(getType);\n return map(characters, memoized);\n };\n\n var isWordBoundary = function (map, index) {\n var prevType;\n var type = map[index];\n var nextType = map[index + 1];\n var nextNextType;\n if (index < 0 || index > map.length - 1 && index !== 0) {\n return false;\n }\n if (type === characterIndices.ALETTER && nextType === characterIndices.ALETTER) {\n return false;\n }\n nextNextType = map[index + 2];\n if (type === characterIndices.ALETTER && (nextType === characterIndices.MIDLETTER || nextType === characterIndices.MIDNUMLET || nextType === characterIndices.AT) && nextNextType === characterIndices.ALETTER) {\n return false;\n }\n prevType = map[index - 1];\n if ((type === characterIndices.MIDLETTER || type === characterIndices.MIDNUMLET || nextType === characterIndices.AT) && nextType === characterIndices.ALETTER && prevType === characterIndices.ALETTER) {\n return false;\n }\n if ((type === characterIndices.NUMERIC || type === characterIndices.ALETTER) && (nextType === characterIndices.NUMERIC || nextType === characterIndices.ALETTER)) {\n return false;\n }\n if ((type === characterIndices.MIDNUM || type === characterIndices.MIDNUMLET) && nextType === characterIndices.NUMERIC && prevType === characterIndices.NUMERIC) {\n return false;\n }\n if (type === characterIndices.NUMERIC && (nextType === characterIndices.MIDNUM || nextType === characterIndices.MIDNUMLET) && nextNextType === characterIndices.NUMERIC) {\n return false;\n }\n if (type === characterIndices.EXTEND || type === characterIndices.FORMAT || prevType === characterIndices.EXTEND || prevType === characterIndices.FORMAT || nextType === characterIndices.EXTEND || nextType === characterIndices.FORMAT) {\n return false;\n }\n if (type === characterIndices.CR && nextType === characterIndices.LF) {\n return false;\n }\n if (type === characterIndices.NEWLINE || type === characterIndices.CR || type === characterIndices.LF) {\n return true;\n }\n if (nextType === characterIndices.NEWLINE || nextType === characterIndices.CR || nextType === characterIndices.LF) {\n return true;\n }\n if (type === characterIndices.KATAKANA && nextType === characterIndices.KATAKANA) {\n return false;\n }\n if (nextType === characterIndices.EXTENDNUMLET && (type === characterIndices.ALETTER || type === characterIndices.NUMERIC || type === characterIndices.KATAKANA || type === characterIndices.EXTENDNUMLET)) {\n return false;\n }\n if (type === characterIndices.EXTENDNUMLET && (nextType === characterIndices.ALETTER || nextType === characterIndices.NUMERIC || nextType === characterIndices.KATAKANA)) {\n return false;\n }\n if (type === characterIndices.AT) {\n return false;\n }\n return true;\n };\n\n var EMPTY_STRING$1 = EMPTY_STRING;\n var WHITESPACE$1 = WHITESPACE;\n var PUNCTUATION$1 = PUNCTUATION;\n var isProtocol = function (str) {\n return str === 'http' || str === 'https';\n };\n var findWordEnd = function (characters, startIndex) {\n var i;\n for (i = startIndex; i < characters.length; i++) {\n if (WHITESPACE$1.test(characters[i])) {\n break;\n }\n }\n return i;\n };\n var findUrlEnd = function (characters, startIndex) {\n var endIndex = findWordEnd(characters, startIndex + 1);\n var peakedWord = characters.slice(startIndex + 1, endIndex).join(EMPTY_STRING$1);\n return peakedWord.substr(0, 3) === '://' ? endIndex : startIndex;\n };\n var findWords = function (chars, sChars, characterMap, options) {\n var words = [];\n var word = [];\n for (var i = 0; i < characterMap.length; ++i) {\n word.push(chars[i]);\n if (isWordBoundary(characterMap, i)) {\n var ch = sChars[i];\n if ((options.includeWhitespace || !WHITESPACE$1.test(ch)) && (options.includePunctuation || !PUNCTUATION$1.test(ch))) {\n var startOfWord = i - word.length + 1;\n var endOfWord = i + 1;\n var str = sChars.slice(startOfWord, endOfWord).join(EMPTY_STRING$1);\n if (isProtocol(str)) {\n var endOfUrl = findUrlEnd(sChars, i);\n var url = chars.slice(endOfWord, endOfUrl);\n Array.prototype.push.apply(word, url);\n i = endOfUrl;\n }\n words.push(word);\n }\n word = [];\n }\n }\n return words;\n };\n var getDefaultOptions = function () {\n return {\n includeWhitespace: false,\n includePunctuation: false\n };\n };\n var getWords = function (chars, extract, options) {\n options = __assign(__assign({}, getDefaultOptions()), options);\n var filteredChars = [];\n var extractedChars = [];\n for (var i = 0; i < chars.length; i++) {\n var ch = extract(chars[i]);\n if (ch !== '\\uFEFF') {\n filteredChars.push(chars[i]);\n extractedChars.push(ch);\n }\n }\n var characterMap = classify(extractedChars);\n return findWords(filteredChars, extractedChars, characterMap, options);\n };\n\n var getWords$1 = getWords;\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var getText = function (node, schema) {\n var blockElements = schema.getBlockElements();\n var shortEndedElements = schema.getShortEndedElements();\n var isNewline = function (node) {\n return blockElements[node.nodeName] || shortEndedElements[node.nodeName];\n };\n var textBlocks = [];\n var txt = '';\n var treeWalker = new global$1(node, node);\n while (node = treeWalker.next()) {\n if (node.nodeType === 3) {\n txt += node.data;\n } else if (isNewline(node) && txt.length) {\n textBlocks.push(txt);\n txt = '';\n }\n }\n if (txt.length) {\n textBlocks.push(txt);\n }\n return textBlocks;\n };\n\n var strLen = function (str) {\n return str.replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, '_').length;\n };\n var countWords = function (node, schema) {\n var text = getText(node, schema).join('\\n');\n return getWords$1(text.split(''), identity).length;\n };\n var countCharacters = function (node, schema) {\n var text = getText(node, schema).join('');\n return strLen(text);\n };\n var countCharactersWithoutSpaces = function (node, schema) {\n var text = getText(node, schema).join('').replace(/\\s/g, '');\n return strLen(text);\n };\n\n var createBodyCounter = function (editor, count) {\n return function () {\n return count(editor.getBody(), editor.schema);\n };\n };\n var createSelectionCounter = function (editor, count) {\n return function () {\n return count(editor.selection.getRng().cloneContents(), editor.schema);\n };\n };\n var createBodyWordCounter = function (editor) {\n return createBodyCounter(editor, countWords);\n };\n var get = function (editor) {\n return {\n body: {\n getWordCount: createBodyWordCounter(editor),\n getCharacterCount: createBodyCounter(editor, countCharacters),\n getCharacterCountWithoutSpaces: createBodyCounter(editor, countCharactersWithoutSpaces)\n },\n selection: {\n getWordCount: createSelectionCounter(editor, countWords),\n getCharacterCount: createSelectionCounter(editor, countCharacters),\n getCharacterCountWithoutSpaces: createSelectionCounter(editor, countCharactersWithoutSpaces)\n },\n getCount: createBodyWordCounter(editor)\n };\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var fireWordCountUpdate = function (editor, api) {\n editor.fire('wordCountUpdate', {\n wordCount: {\n words: api.body.getWordCount(),\n characters: api.body.getCharacterCount(),\n charactersWithoutSpaces: api.body.getCharacterCountWithoutSpaces()\n }\n });\n };\n\n var updateCount = function (editor, api) {\n fireWordCountUpdate(editor, api);\n };\n var setup = function (editor, api, delay) {\n var debouncedUpdate = global$2.debounce(function () {\n return updateCount(editor, api);\n }, delay);\n editor.on('init', function () {\n updateCount(editor, api);\n global$2.setEditorTimeout(editor, function () {\n editor.on('SetContent BeforeAddUndo Undo Redo keyup', debouncedUpdate);\n }, 0);\n });\n };\n\n var open = function (editor, api) {\n editor.windowManager.open({\n title: 'Word Count',\n body: {\n type: 'panel',\n items: [{\n type: 'table',\n header: [\n 'Count',\n 'Document',\n 'Selection'\n ],\n cells: [\n [\n 'Words',\n String(api.body.getWordCount()),\n String(api.selection.getWordCount())\n ],\n [\n 'Characters (no spaces)',\n String(api.body.getCharacterCountWithoutSpaces()),\n String(api.selection.getCharacterCountWithoutSpaces())\n ],\n [\n 'Characters',\n String(api.body.getCharacterCount()),\n String(api.selection.getCharacterCount())\n ]\n ]\n }]\n },\n buttons: [{\n type: 'cancel',\n name: 'close',\n text: 'Close',\n primary: true\n }]\n });\n };\n\n var register = function (editor, api) {\n editor.ui.registry.addButton('wordcount', {\n tooltip: 'Word count',\n icon: 'character-count',\n onAction: function () {\n return open(editor, api);\n }\n });\n editor.ui.registry.addMenuItem('wordcount', {\n text: 'Word count',\n icon: 'character-count',\n onAction: function () {\n return open(editor, api);\n }\n });\n };\n\n function Plugin (delay) {\n if (delay === void 0) {\n delay = 300;\n }\n global.add('wordcount', function (editor) {\n var api = get(editor);\n register(editor, api);\n setup(editor, api, delay);\n return api;\n });\n }\n\n Plugin();\n\n}());\n"],"sourceRoot":""}